diff options
443 files changed, 1243 insertions, 1136 deletions
diff --git a/assets/avatars/biggaymikey.png b/assets/avatars/biggaymikey.png Binary files differnew file mode 100644 index 00000000..563e8af0 --- /dev/null +++ b/assets/avatars/biggaymikey.png diff --git a/assets/avatars/henriqmarq.png b/assets/avatars/henriqmarq.png Binary files differnew file mode 100644 index 00000000..a5679c9b --- /dev/null +++ b/assets/avatars/henriqmarq.png diff --git a/assets/avatars/piet290106.png b/assets/avatars/piet290106.png Binary files differnew file mode 100644 index 00000000..f5b4483b --- /dev/null +++ b/assets/avatars/piet290106.png diff --git a/assets/avatars/realnaesten.png b/assets/avatars/realnaesten.png Binary files differnew file mode 100644 index 00000000..74a0c742 --- /dev/null +++ b/assets/avatars/realnaesten.png diff --git a/assets/avatars/sandcork.png b/assets/avatars/sandcork.png Binary files differnew file mode 100644 index 00000000..8ad78d54 --- /dev/null +++ b/assets/avatars/sandcork.png diff --git a/assets/avatars/saxtonhale.png b/assets/avatars/saxtonhale.png Binary files differnew file mode 100644 index 00000000..eb679ac5 --- /dev/null +++ b/assets/avatars/saxtonhale.png diff --git a/assets/avatars/sschr15.png b/assets/avatars/sschr15.png Binary files differnew file mode 100644 index 00000000..88048a5f --- /dev/null +++ b/assets/avatars/sschr15.png diff --git a/assets/avatars/u_danielpancake.png b/assets/avatars/u_danielpancake.png Binary files differnew file mode 100644 index 00000000..8430afe4 --- /dev/null +++ b/assets/avatars/u_danielpancake.png diff --git a/assets/bible.txt b/assets/bible.txt index 42068f91..ea143757 100644 --- a/assets/bible.txt +++ b/assets/bible.txt @@ -99924,4 +99924,8 @@ mamimi___ mamimi___ mamimi___ mamimi___ mamimi___ mamimi___ mamimi___ mamimi___ zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae zoft_fae pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray pengowray sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 sun312772 -quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm
\ No newline at end of file +quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm quantumbohm +mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon mickynoon +katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna katlyranna +timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss timadiss +bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma bruxisma
\ No newline at end of file diff --git a/assets/emotes/115849 b/assets/emotes/115849 Binary files differnew file mode 100644 index 00000000..0f426f45 --- /dev/null +++ b/assets/emotes/115849 diff --git a/assets/emotes/1660776 b/assets/emotes/1660776 Binary files differnew file mode 100644 index 00000000..3444fe40 --- /dev/null +++ b/assets/emotes/1660776 diff --git a/assets/emotes/1774927 b/assets/emotes/1774927 Binary files differnew file mode 100644 index 00000000..a01061b0 --- /dev/null +++ b/assets/emotes/1774927 diff --git a/assets/emotes/300349835 b/assets/emotes/300349835 Binary files differnew file mode 100644 index 00000000..5995781f --- /dev/null +++ b/assets/emotes/300349835 diff --git a/assets/emotes/300703497 b/assets/emotes/300703497 Binary files differnew file mode 100644 index 00000000..e5ef2d4c --- /dev/null +++ b/assets/emotes/300703497 diff --git a/assets/emotes/301158222 b/assets/emotes/301158222 Binary files differnew file mode 100644 index 00000000..e83fcc2d --- /dev/null +++ b/assets/emotes/301158222 diff --git a/assets/emotes/301594376 b/assets/emotes/301594376 Binary files differnew file mode 100644 index 00000000..e9aec794 --- /dev/null +++ b/assets/emotes/301594376 diff --git a/assets/emotes/302160774 b/assets/emotes/302160774 Binary files differnew file mode 100644 index 00000000..354a5aef --- /dev/null +++ b/assets/emotes/302160774 diff --git a/assets/emotes/302303594 b/assets/emotes/302303594 Binary files differnew file mode 100644 index 00000000..3f8cc955 --- /dev/null +++ b/assets/emotes/302303594 diff --git a/assets/emotes/303141009 b/assets/emotes/303141009 Binary files differnew file mode 100644 index 00000000..9bde288c --- /dev/null +++ b/assets/emotes/303141009 diff --git a/assets/emotes/303446318 b/assets/emotes/303446318 Binary files differnew file mode 100644 index 00000000..6b9f9b06 --- /dev/null +++ b/assets/emotes/303446318 diff --git a/assets/emotes/303985776 b/assets/emotes/303985776 Binary files differnew file mode 100644 index 00000000..4ad33b48 --- /dev/null +++ b/assets/emotes/303985776 diff --git a/assets/emotes/304560154 b/assets/emotes/304560154 Binary files differnew file mode 100644 index 00000000..a250eae7 --- /dev/null +++ b/assets/emotes/304560154 diff --git a/assets/emotes/304669968 b/assets/emotes/304669968 Binary files differnew file mode 100644 index 00000000..8e60e8eb --- /dev/null +++ b/assets/emotes/304669968 diff --git a/assets/emotes/304935642 b/assets/emotes/304935642 Binary files differnew file mode 100644 index 00000000..bec8e25b --- /dev/null +++ b/assets/emotes/304935642 diff --git a/assets/emotes/305595705 b/assets/emotes/305595705 Binary files differnew file mode 100644 index 00000000..cd8805d0 --- /dev/null +++ b/assets/emotes/305595705 diff --git a/assets/emotes/306103472 b/assets/emotes/306103472 Binary files differnew file mode 100644 index 00000000..1265cd3d --- /dev/null +++ b/assets/emotes/306103472 diff --git a/assets/emotes/306834544 b/assets/emotes/306834544 Binary files differnew file mode 100644 index 00000000..dba72d1a --- /dev/null +++ b/assets/emotes/306834544 diff --git a/assets/emotes/306954813 b/assets/emotes/306954813 Binary files differnew file mode 100644 index 00000000..cbb96943 --- /dev/null +++ b/assets/emotes/306954813 diff --git a/assets/emotes/307378409 b/assets/emotes/307378409 Binary files differnew file mode 100644 index 00000000..d6bdff1a --- /dev/null +++ b/assets/emotes/307378409 diff --git a/assets/emotes/307439015 b/assets/emotes/307439015 Binary files differnew file mode 100644 index 00000000..7c243cdc --- /dev/null +++ b/assets/emotes/307439015 diff --git a/assets/emotes/307923721 b/assets/emotes/307923721 Binary files differnew file mode 100644 index 00000000..2f407040 --- /dev/null +++ b/assets/emotes/307923721 diff --git a/assets/emotes/555555579 b/assets/emotes/555555579 Binary files differnew file mode 100644 index 00000000..1a1451a0 --- /dev/null +++ b/assets/emotes/555555579 diff --git a/assets/emotes/555555598 b/assets/emotes/555555598 Binary files differnew file mode 100644 index 00000000..0ad70ccf --- /dev/null +++ b/assets/emotes/555555598 diff --git a/assets/emotes/555555607 b/assets/emotes/555555607 Binary files differnew file mode 100644 index 00000000..8dbf7555 --- /dev/null +++ b/assets/emotes/555555607 diff --git a/assets/emotes/59197 b/assets/emotes/59197 Binary files differnew file mode 100644 index 00000000..ffc454dc --- /dev/null +++ b/assets/emotes/59197 diff --git a/assets/emotes/965074 b/assets/emotes/965074 Binary files differnew file mode 100644 index 00000000..f6d6f8f1 --- /dev/null +++ b/assets/emotes/965074 diff --git a/assets/emotes/emotesv2_00d73b20810c4a9d927504e9f6cdeb36 b/assets/emotes/emotesv2_00d73b20810c4a9d927504e9f6cdeb36 Binary files differnew file mode 100644 index 00000000..a073f564 --- /dev/null +++ b/assets/emotes/emotesv2_00d73b20810c4a9d927504e9f6cdeb36 diff --git a/assets/emotes/emotesv2_0114d29bcd9948118c18b1e109f11c4c b/assets/emotes/emotesv2_0114d29bcd9948118c18b1e109f11c4c Binary files differnew file mode 100644 index 00000000..ddddda7a --- /dev/null +++ b/assets/emotes/emotesv2_0114d29bcd9948118c18b1e109f11c4c diff --git a/assets/emotes/emotesv2_0144df8700a347f6b15a9356ab7d1c8e b/assets/emotes/emotesv2_0144df8700a347f6b15a9356ab7d1c8e Binary files differnew file mode 100644 index 00000000..2f911b90 --- /dev/null +++ b/assets/emotes/emotesv2_0144df8700a347f6b15a9356ab7d1c8e diff --git a/assets/emotes/emotesv2_03d86390639442619fd0622f942c733e b/assets/emotes/emotesv2_03d86390639442619fd0622f942c733e Binary files differnew file mode 100644 index 00000000..e973348c --- /dev/null +++ b/assets/emotes/emotesv2_03d86390639442619fd0622f942c733e diff --git a/assets/emotes/emotesv2_04508324c80c4a7ebd80299d3848d4f1 b/assets/emotes/emotesv2_04508324c80c4a7ebd80299d3848d4f1 Binary files differnew file mode 100644 index 00000000..6f6fb0e4 --- /dev/null +++ b/assets/emotes/emotesv2_04508324c80c4a7ebd80299d3848d4f1 diff --git a/assets/emotes/emotesv2_046d67d12b964cca8d0ff59fd33c772d b/assets/emotes/emotesv2_046d67d12b964cca8d0ff59fd33c772d Binary files differnew file mode 100644 index 00000000..8cfacae8 --- /dev/null +++ b/assets/emotes/emotesv2_046d67d12b964cca8d0ff59fd33c772d diff --git a/assets/emotes/emotesv2_06693c5360e540cba523931b2b572067 b/assets/emotes/emotesv2_06693c5360e540cba523931b2b572067 Binary files differnew file mode 100644 index 00000000..c0d58989 --- /dev/null +++ b/assets/emotes/emotesv2_06693c5360e540cba523931b2b572067 diff --git a/assets/emotes/emotesv2_085fa9bbdafb492a87ed30c5404f3351 b/assets/emotes/emotesv2_085fa9bbdafb492a87ed30c5404f3351 Binary files differnew file mode 100644 index 00000000..cd4ba7c1 --- /dev/null +++ b/assets/emotes/emotesv2_085fa9bbdafb492a87ed30c5404f3351 diff --git a/assets/emotes/emotesv2_09e7debf334b4468bcfafdb701cb5452 b/assets/emotes/emotesv2_09e7debf334b4468bcfafdb701cb5452 Binary files differnew file mode 100644 index 00000000..e52adb6c --- /dev/null +++ b/assets/emotes/emotesv2_09e7debf334b4468bcfafdb701cb5452 diff --git a/assets/emotes/emotesv2_09f550504f554181b2872b2ad87fa87a b/assets/emotes/emotesv2_09f550504f554181b2872b2ad87fa87a Binary files differnew file mode 100644 index 00000000..1257925e --- /dev/null +++ b/assets/emotes/emotesv2_09f550504f554181b2872b2ad87fa87a diff --git a/assets/emotes/emotesv2_0a4d775bd07e42a2b6240d1ccc2ce637 b/assets/emotes/emotesv2_0a4d775bd07e42a2b6240d1ccc2ce637 Binary files differnew file mode 100644 index 00000000..d773fb1e --- /dev/null +++ b/assets/emotes/emotesv2_0a4d775bd07e42a2b6240d1ccc2ce637 diff --git a/assets/emotes/emotesv2_0b22800b20e048f0b654d9f4186021ab b/assets/emotes/emotesv2_0b22800b20e048f0b654d9f4186021ab Binary files differnew file mode 100644 index 00000000..52f2db59 --- /dev/null +++ b/assets/emotes/emotesv2_0b22800b20e048f0b654d9f4186021ab diff --git a/assets/emotes/emotesv2_0b7f1a595597464289a76f5e314b197b b/assets/emotes/emotesv2_0b7f1a595597464289a76f5e314b197b Binary files differnew file mode 100644 index 00000000..86203f8a --- /dev/null +++ b/assets/emotes/emotesv2_0b7f1a595597464289a76f5e314b197b diff --git a/assets/emotes/emotesv2_0d69ef6192df4046b8fca6da4628fab5 b/assets/emotes/emotesv2_0d69ef6192df4046b8fca6da4628fab5 Binary files differnew file mode 100644 index 00000000..13241333 --- /dev/null +++ b/assets/emotes/emotesv2_0d69ef6192df4046b8fca6da4628fab5 diff --git a/assets/emotes/emotesv2_0db450901941479d8be1aedd71bc4219 b/assets/emotes/emotesv2_0db450901941479d8be1aedd71bc4219 Binary files differnew file mode 100644 index 00000000..2e38cdcb --- /dev/null +++ b/assets/emotes/emotesv2_0db450901941479d8be1aedd71bc4219 diff --git a/assets/emotes/emotesv2_0ea0ac068b5647c49c078cf5de809cff b/assets/emotes/emotesv2_0ea0ac068b5647c49c078cf5de809cff Binary files differnew file mode 100644 index 00000000..f00a14cc --- /dev/null +++ b/assets/emotes/emotesv2_0ea0ac068b5647c49c078cf5de809cff diff --git a/assets/emotes/emotesv2_0ef6f81c5cc34decba443627e6354f5f b/assets/emotes/emotesv2_0ef6f81c5cc34decba443627e6354f5f Binary files differnew file mode 100644 index 00000000..de44eade --- /dev/null +++ b/assets/emotes/emotesv2_0ef6f81c5cc34decba443627e6354f5f diff --git a/assets/emotes/emotesv2_0f6c6b275411418e84fcd0faaeb62b8e b/assets/emotes/emotesv2_0f6c6b275411418e84fcd0faaeb62b8e Binary files differnew file mode 100644 index 00000000..af118273 --- /dev/null +++ b/assets/emotes/emotesv2_0f6c6b275411418e84fcd0faaeb62b8e diff --git a/assets/emotes/emotesv2_1007959c05e1467bb909138fb87da44c b/assets/emotes/emotesv2_1007959c05e1467bb909138fb87da44c Binary files differnew file mode 100644 index 00000000..edb5b5bb --- /dev/null +++ b/assets/emotes/emotesv2_1007959c05e1467bb909138fb87da44c diff --git a/assets/emotes/emotesv2_102e30a079c54d67ab1727fbe7771d5b b/assets/emotes/emotesv2_102e30a079c54d67ab1727fbe7771d5b Binary files differnew file mode 100644 index 00000000..a097b206 --- /dev/null +++ b/assets/emotes/emotesv2_102e30a079c54d67ab1727fbe7771d5b diff --git a/assets/emotes/emotesv2_10a256a15fa24228b668767340c56444 b/assets/emotes/emotesv2_10a256a15fa24228b668767340c56444 Binary files differnew file mode 100644 index 00000000..52b653bb --- /dev/null +++ b/assets/emotes/emotesv2_10a256a15fa24228b668767340c56444 diff --git a/assets/emotes/emotesv2_117f55be2f3846f4bf647d938e6563f7 b/assets/emotes/emotesv2_117f55be2f3846f4bf647d938e6563f7 Binary files differnew file mode 100644 index 00000000..7895fb56 --- /dev/null +++ b/assets/emotes/emotesv2_117f55be2f3846f4bf647d938e6563f7 diff --git a/assets/emotes/emotesv2_127129806d4a4af09cc0b66e859fe27b b/assets/emotes/emotesv2_127129806d4a4af09cc0b66e859fe27b Binary files differnew file mode 100644 index 00000000..ba6db86b --- /dev/null +++ b/assets/emotes/emotesv2_127129806d4a4af09cc0b66e859fe27b diff --git a/assets/emotes/emotesv2_13e7ca6c12544488b598282afb358fb7 b/assets/emotes/emotesv2_13e7ca6c12544488b598282afb358fb7 Binary files differnew file mode 100644 index 00000000..a48bceb7 --- /dev/null +++ b/assets/emotes/emotesv2_13e7ca6c12544488b598282afb358fb7 diff --git a/assets/emotes/emotesv2_15ba288acf8d455fbf665e03ccc3e2f2 b/assets/emotes/emotesv2_15ba288acf8d455fbf665e03ccc3e2f2 Binary files differnew file mode 100644 index 00000000..ace02638 --- /dev/null +++ b/assets/emotes/emotesv2_15ba288acf8d455fbf665e03ccc3e2f2 diff --git a/assets/emotes/emotesv2_162a0795f3224283a4fd0570196d2ca9 b/assets/emotes/emotesv2_162a0795f3224283a4fd0570196d2ca9 Binary files differnew file mode 100644 index 00000000..4d11284c --- /dev/null +++ b/assets/emotes/emotesv2_162a0795f3224283a4fd0570196d2ca9 diff --git a/assets/emotes/emotesv2_16cdcd452c614bb4a5c99e9fb4c9ff40 b/assets/emotes/emotesv2_16cdcd452c614bb4a5c99e9fb4c9ff40 Binary files differnew file mode 100644 index 00000000..92059398 --- /dev/null +++ b/assets/emotes/emotesv2_16cdcd452c614bb4a5c99e9fb4c9ff40 diff --git a/assets/emotes/emotesv2_172d963ff07a460e951db94069dcc3be b/assets/emotes/emotesv2_172d963ff07a460e951db94069dcc3be Binary files differnew file mode 100644 index 00000000..fe3e876c --- /dev/null +++ b/assets/emotes/emotesv2_172d963ff07a460e951db94069dcc3be diff --git a/assets/emotes/emotesv2_17a13f9699d74d4e932b977e49e9b9a5 b/assets/emotes/emotesv2_17a13f9699d74d4e932b977e49e9b9a5 Binary files differnew file mode 100644 index 00000000..75272247 --- /dev/null +++ b/assets/emotes/emotesv2_17a13f9699d74d4e932b977e49e9b9a5 diff --git a/assets/emotes/emotesv2_196135ee78f1497a8bf66a3d2e485524 b/assets/emotes/emotesv2_196135ee78f1497a8bf66a3d2e485524 Binary files differnew file mode 100644 index 00000000..b8b3063d --- /dev/null +++ b/assets/emotes/emotesv2_196135ee78f1497a8bf66a3d2e485524 diff --git a/assets/emotes/emotesv2_19dcd63feed242088d622d53c80068a6 b/assets/emotes/emotesv2_19dcd63feed242088d622d53c80068a6 Binary files differnew file mode 100644 index 00000000..c3494392 --- /dev/null +++ b/assets/emotes/emotesv2_19dcd63feed242088d622d53c80068a6 diff --git a/assets/emotes/emotesv2_1a3cf1aa33bf448588cb9954e6faf23d b/assets/emotes/emotesv2_1a3cf1aa33bf448588cb9954e6faf23d Binary files differnew file mode 100644 index 00000000..b7fccfed --- /dev/null +++ b/assets/emotes/emotesv2_1a3cf1aa33bf448588cb9954e6faf23d diff --git a/assets/emotes/emotesv2_1abce7d5e9334f94b8044e4ce81bdbd1 b/assets/emotes/emotesv2_1abce7d5e9334f94b8044e4ce81bdbd1 Binary files differnew file mode 100644 index 00000000..ee4a4cb7 --- /dev/null +++ b/assets/emotes/emotesv2_1abce7d5e9334f94b8044e4ce81bdbd1 diff --git a/assets/emotes/emotesv2_1adf9cb4c8054fdfa282f6fc174764cf b/assets/emotes/emotesv2_1adf9cb4c8054fdfa282f6fc174764cf Binary files differnew file mode 100644 index 00000000..78200255 --- /dev/null +++ b/assets/emotes/emotesv2_1adf9cb4c8054fdfa282f6fc174764cf diff --git a/assets/emotes/emotesv2_1bf4277cbbb24196a03a94b8132e27ba b/assets/emotes/emotesv2_1bf4277cbbb24196a03a94b8132e27ba Binary files differnew file mode 100644 index 00000000..35c50449 --- /dev/null +++ b/assets/emotes/emotesv2_1bf4277cbbb24196a03a94b8132e27ba diff --git a/assets/emotes/emotesv2_1c43a903c5d247808fb0a081fda6f939 b/assets/emotes/emotesv2_1c43a903c5d247808fb0a081fda6f939 Binary files differnew file mode 100644 index 00000000..bb64aced --- /dev/null +++ b/assets/emotes/emotesv2_1c43a903c5d247808fb0a081fda6f939 diff --git a/assets/emotes/emotesv2_1d2fd57f591b4bd38f1e12ea73ca9d7d b/assets/emotes/emotesv2_1d2fd57f591b4bd38f1e12ea73ca9d7d Binary files differnew file mode 100644 index 00000000..10855868 --- /dev/null +++ b/assets/emotes/emotesv2_1d2fd57f591b4bd38f1e12ea73ca9d7d diff --git a/assets/emotes/emotesv2_202f6ec2051946cfad299e6950ece887 b/assets/emotes/emotesv2_202f6ec2051946cfad299e6950ece887 Binary files differnew file mode 100644 index 00000000..287e50d1 --- /dev/null +++ b/assets/emotes/emotesv2_202f6ec2051946cfad299e6950ece887 diff --git a/assets/emotes/emotesv2_2072304653af4152aed66e471a958591 b/assets/emotes/emotesv2_2072304653af4152aed66e471a958591 Binary files differnew file mode 100644 index 00000000..cdfc53b8 --- /dev/null +++ b/assets/emotes/emotesv2_2072304653af4152aed66e471a958591 diff --git a/assets/emotes/emotesv2_20a5c29af55240d4a276e0ffd828db3e b/assets/emotes/emotesv2_20a5c29af55240d4a276e0ffd828db3e Binary files differnew file mode 100644 index 00000000..020ee725 --- /dev/null +++ b/assets/emotes/emotesv2_20a5c29af55240d4a276e0ffd828db3e diff --git a/assets/emotes/emotesv2_228ae199127d4ed4b9e9520816fe354c b/assets/emotes/emotesv2_228ae199127d4ed4b9e9520816fe354c Binary files differnew file mode 100644 index 00000000..e68c57e7 --- /dev/null +++ b/assets/emotes/emotesv2_228ae199127d4ed4b9e9520816fe354c diff --git a/assets/emotes/emotesv2_229ef85e3c77488e97a1f814a38ed9b4 b/assets/emotes/emotesv2_229ef85e3c77488e97a1f814a38ed9b4 Binary files differnew file mode 100644 index 00000000..043a1e64 --- /dev/null +++ b/assets/emotes/emotesv2_229ef85e3c77488e97a1f814a38ed9b4 diff --git a/assets/emotes/emotesv2_23d2f3e5baff4729ae053d9fc0199ff8 b/assets/emotes/emotesv2_23d2f3e5baff4729ae053d9fc0199ff8 Binary files differnew file mode 100644 index 00000000..0c4cf737 --- /dev/null +++ b/assets/emotes/emotesv2_23d2f3e5baff4729ae053d9fc0199ff8 diff --git a/assets/emotes/emotesv2_24203cb01ea043a78baaa72a7fc68471 b/assets/emotes/emotesv2_24203cb01ea043a78baaa72a7fc68471 Binary files differnew file mode 100644 index 00000000..231e2cea --- /dev/null +++ b/assets/emotes/emotesv2_24203cb01ea043a78baaa72a7fc68471 diff --git a/assets/emotes/emotesv2_24e7b9e915bb4ec7bd976c8772580a48 b/assets/emotes/emotesv2_24e7b9e915bb4ec7bd976c8772580a48 Binary files differnew file mode 100644 index 00000000..3d07f695 --- /dev/null +++ b/assets/emotes/emotesv2_24e7b9e915bb4ec7bd976c8772580a48 diff --git a/assets/emotes/emotesv2_24efb590db6849a0bfbc7f25e64b2b3a b/assets/emotes/emotesv2_24efb590db6849a0bfbc7f25e64b2b3a Binary files differnew file mode 100644 index 00000000..017e8933 --- /dev/null +++ b/assets/emotes/emotesv2_24efb590db6849a0bfbc7f25e64b2b3a diff --git a/assets/emotes/emotesv2_24fb54e0db67481e971c8cf1744a53a7 b/assets/emotes/emotesv2_24fb54e0db67481e971c8cf1744a53a7 Binary files differnew file mode 100644 index 00000000..866309e1 --- /dev/null +++ b/assets/emotes/emotesv2_24fb54e0db67481e971c8cf1744a53a7 diff --git a/assets/emotes/emotesv2_250231b9fb3c4a849d15ebd7a0c923bf b/assets/emotes/emotesv2_250231b9fb3c4a849d15ebd7a0c923bf Binary files differnew file mode 100644 index 00000000..90bad451 --- /dev/null +++ b/assets/emotes/emotesv2_250231b9fb3c4a849d15ebd7a0c923bf diff --git a/assets/emotes/emotesv2_252b80f7b02a4ffca1bd206f84981232 b/assets/emotes/emotesv2_252b80f7b02a4ffca1bd206f84981232 Binary files differnew file mode 100644 index 00000000..810ad6ca --- /dev/null +++ b/assets/emotes/emotesv2_252b80f7b02a4ffca1bd206f84981232 diff --git a/assets/emotes/emotesv2_256369ace7b54ee090390d3a17461274 b/assets/emotes/emotesv2_256369ace7b54ee090390d3a17461274 Binary files differnew file mode 100644 index 00000000..1d127eb6 --- /dev/null +++ b/assets/emotes/emotesv2_256369ace7b54ee090390d3a17461274 diff --git a/assets/emotes/emotesv2_25e1eb365e5c41169c48cc7f651e473b b/assets/emotes/emotesv2_25e1eb365e5c41169c48cc7f651e473b Binary files differnew file mode 100644 index 00000000..c72b4943 --- /dev/null +++ b/assets/emotes/emotesv2_25e1eb365e5c41169c48cc7f651e473b diff --git a/assets/emotes/emotesv2_26672983fce4494589b81a85473147ad b/assets/emotes/emotesv2_26672983fce4494589b81a85473147ad Binary files differnew file mode 100644 index 00000000..e6b78da1 --- /dev/null +++ b/assets/emotes/emotesv2_26672983fce4494589b81a85473147ad diff --git a/assets/emotes/emotesv2_27d3a101f9434c23bfcd2fde7df2aaeb b/assets/emotes/emotesv2_27d3a101f9434c23bfcd2fde7df2aaeb Binary files differnew file mode 100644 index 00000000..4e40242d --- /dev/null +++ b/assets/emotes/emotesv2_27d3a101f9434c23bfcd2fde7df2aaeb diff --git a/assets/emotes/emotesv2_2801a662aca14585aecb9b701dabdddf b/assets/emotes/emotesv2_2801a662aca14585aecb9b701dabdddf Binary files differnew file mode 100644 index 00000000..8d2e5773 --- /dev/null +++ b/assets/emotes/emotesv2_2801a662aca14585aecb9b701dabdddf diff --git a/assets/emotes/emotesv2_28d84c4284b04111b1f6d11c386cfd96 b/assets/emotes/emotesv2_28d84c4284b04111b1f6d11c386cfd96 Binary files differnew file mode 100644 index 00000000..ef22fa33 --- /dev/null +++ b/assets/emotes/emotesv2_28d84c4284b04111b1f6d11c386cfd96 diff --git a/assets/emotes/emotesv2_2b3ea10e11e943b8810abda89b760c4c b/assets/emotes/emotesv2_2b3ea10e11e943b8810abda89b760c4c Binary files differnew file mode 100644 index 00000000..6584ad7b --- /dev/null +++ b/assets/emotes/emotesv2_2b3ea10e11e943b8810abda89b760c4c diff --git a/assets/emotes/emotesv2_2cca1fc234c24812b1bfacc040a1a0cb b/assets/emotes/emotesv2_2cca1fc234c24812b1bfacc040a1a0cb Binary files differnew file mode 100644 index 00000000..727dfbb0 --- /dev/null +++ b/assets/emotes/emotesv2_2cca1fc234c24812b1bfacc040a1a0cb diff --git a/assets/emotes/emotesv2_2dfde60feba94161b23e49eb008a1ae4 b/assets/emotes/emotesv2_2dfde60feba94161b23e49eb008a1ae4 Binary files differnew file mode 100644 index 00000000..dcd2c896 --- /dev/null +++ b/assets/emotes/emotesv2_2dfde60feba94161b23e49eb008a1ae4 diff --git a/assets/emotes/emotesv2_2e563f0a9d884b5a8aa5b825f4b3ba87 b/assets/emotes/emotesv2_2e563f0a9d884b5a8aa5b825f4b3ba87 Binary files differnew file mode 100644 index 00000000..dff061f4 --- /dev/null +++ b/assets/emotes/emotesv2_2e563f0a9d884b5a8aa5b825f4b3ba87 diff --git a/assets/emotes/emotesv2_2fb3d0ac1f9f44d48a940a9974fe1be4 b/assets/emotes/emotesv2_2fb3d0ac1f9f44d48a940a9974fe1be4 Binary files differnew file mode 100644 index 00000000..d6c6866e --- /dev/null +++ b/assets/emotes/emotesv2_2fb3d0ac1f9f44d48a940a9974fe1be4 diff --git a/assets/emotes/emotesv2_2ffb6149f5f5402f97e3934a311432e1 b/assets/emotes/emotesv2_2ffb6149f5f5402f97e3934a311432e1 Binary files differnew file mode 100644 index 00000000..47aa0361 --- /dev/null +++ b/assets/emotes/emotesv2_2ffb6149f5f5402f97e3934a311432e1 diff --git a/assets/emotes/emotesv2_31bcf88bddb646ccbce3053f02d9153d b/assets/emotes/emotesv2_31bcf88bddb646ccbce3053f02d9153d Binary files differnew file mode 100644 index 00000000..e65d8e3e --- /dev/null +++ b/assets/emotes/emotesv2_31bcf88bddb646ccbce3053f02d9153d diff --git a/assets/emotes/emotesv2_337f7545c212432db52a0ea0373ba31d b/assets/emotes/emotesv2_337f7545c212432db52a0ea0373ba31d Binary files differnew file mode 100644 index 00000000..3ae02ebf --- /dev/null +++ b/assets/emotes/emotesv2_337f7545c212432db52a0ea0373ba31d diff --git a/assets/emotes/emotesv2_339c58c55dd94148844b67e9de97b2ab b/assets/emotes/emotesv2_339c58c55dd94148844b67e9de97b2ab Binary files differnew file mode 100644 index 00000000..430aa8cd --- /dev/null +++ b/assets/emotes/emotesv2_339c58c55dd94148844b67e9de97b2ab diff --git a/assets/emotes/emotesv2_34d1f8827eb641099062e3518e340575 b/assets/emotes/emotesv2_34d1f8827eb641099062e3518e340575 Binary files differnew file mode 100644 index 00000000..cbb7afa7 --- /dev/null +++ b/assets/emotes/emotesv2_34d1f8827eb641099062e3518e340575 diff --git a/assets/emotes/emotesv2_355c00cd40744178a3d05452e104e072 b/assets/emotes/emotesv2_355c00cd40744178a3d05452e104e072 Binary files differnew file mode 100644 index 00000000..bd4dbb2a --- /dev/null +++ b/assets/emotes/emotesv2_355c00cd40744178a3d05452e104e072 diff --git a/assets/emotes/emotesv2_362a8e88a8dc4b3693c9aaa4a46365d6 b/assets/emotes/emotesv2_362a8e88a8dc4b3693c9aaa4a46365d6 Binary files differnew file mode 100644 index 00000000..e7bc8674 --- /dev/null +++ b/assets/emotes/emotesv2_362a8e88a8dc4b3693c9aaa4a46365d6 diff --git a/assets/emotes/emotesv2_3753bb482cae4446a7ca69d353916990 b/assets/emotes/emotesv2_3753bb482cae4446a7ca69d353916990 Binary files differnew file mode 100644 index 00000000..c9e0b8bf --- /dev/null +++ b/assets/emotes/emotesv2_3753bb482cae4446a7ca69d353916990 diff --git a/assets/emotes/emotesv2_37a732dff9694b5ba621136ebbe4c90b b/assets/emotes/emotesv2_37a732dff9694b5ba621136ebbe4c90b Binary files differnew file mode 100644 index 00000000..2ad59a99 --- /dev/null +++ b/assets/emotes/emotesv2_37a732dff9694b5ba621136ebbe4c90b diff --git a/assets/emotes/emotesv2_38436724a19a4a839060feab98894017 b/assets/emotes/emotesv2_38436724a19a4a839060feab98894017 Binary files differnew file mode 100644 index 00000000..defc311b --- /dev/null +++ b/assets/emotes/emotesv2_38436724a19a4a839060feab98894017 diff --git a/assets/emotes/emotesv2_38f709a70a434988b3ea41dcfcde32a7 b/assets/emotes/emotesv2_38f709a70a434988b3ea41dcfcde32a7 Binary files differnew file mode 100644 index 00000000..7577fba3 --- /dev/null +++ b/assets/emotes/emotesv2_38f709a70a434988b3ea41dcfcde32a7 diff --git a/assets/emotes/emotesv2_398073c05e6f47b18d23402be38e306c b/assets/emotes/emotesv2_398073c05e6f47b18d23402be38e306c Binary files differnew file mode 100644 index 00000000..747ca532 --- /dev/null +++ b/assets/emotes/emotesv2_398073c05e6f47b18d23402be38e306c diff --git a/assets/emotes/emotesv2_3a9b8692e89440ed92db8555dd599191 b/assets/emotes/emotesv2_3a9b8692e89440ed92db8555dd599191 Binary files differnew file mode 100644 index 00000000..3afbfa0b --- /dev/null +++ b/assets/emotes/emotesv2_3a9b8692e89440ed92db8555dd599191 diff --git a/assets/emotes/emotesv2_3d0545fa611f44f6b7c25c658321fa10 b/assets/emotes/emotesv2_3d0545fa611f44f6b7c25c658321fa10 Binary files differnew file mode 100644 index 00000000..9ef59808 --- /dev/null +++ b/assets/emotes/emotesv2_3d0545fa611f44f6b7c25c658321fa10 diff --git a/assets/emotes/emotesv2_3d0c77cd056e457685f49204e9a342f3 b/assets/emotes/emotesv2_3d0c77cd056e457685f49204e9a342f3 Binary files differnew file mode 100644 index 00000000..3ed218a7 --- /dev/null +++ b/assets/emotes/emotesv2_3d0c77cd056e457685f49204e9a342f3 diff --git a/assets/emotes/emotesv2_3d57a2e80de74336b0ec9f7b6a2ffdaf b/assets/emotes/emotesv2_3d57a2e80de74336b0ec9f7b6a2ffdaf Binary files differnew file mode 100644 index 00000000..50b88767 --- /dev/null +++ b/assets/emotes/emotesv2_3d57a2e80de74336b0ec9f7b6a2ffdaf diff --git a/assets/emotes/emotesv2_3d999db390104c24b42d10d6292290d7 b/assets/emotes/emotesv2_3d999db390104c24b42d10d6292290d7 Binary files differnew file mode 100644 index 00000000..7b928c0b --- /dev/null +++ b/assets/emotes/emotesv2_3d999db390104c24b42d10d6292290d7 diff --git a/assets/emotes/emotesv2_3dfbda628997420a8d74dd0fa04d8964 b/assets/emotes/emotesv2_3dfbda628997420a8d74dd0fa04d8964 Binary files differnew file mode 100644 index 00000000..8566512a --- /dev/null +++ b/assets/emotes/emotesv2_3dfbda628997420a8d74dd0fa04d8964 diff --git a/assets/emotes/emotesv2_407d9b46b9894896b60aff7c9b10534e b/assets/emotes/emotesv2_407d9b46b9894896b60aff7c9b10534e Binary files differnew file mode 100644 index 00000000..a2bce04b --- /dev/null +++ b/assets/emotes/emotesv2_407d9b46b9894896b60aff7c9b10534e diff --git a/assets/emotes/emotesv2_4152261ae0d0473aaa84a26fdbad9f6e b/assets/emotes/emotesv2_4152261ae0d0473aaa84a26fdbad9f6e Binary files differnew file mode 100644 index 00000000..beacb10e --- /dev/null +++ b/assets/emotes/emotesv2_4152261ae0d0473aaa84a26fdbad9f6e diff --git a/assets/emotes/emotesv2_41cb3d8210e3480a80a4c5f2d871dda8 b/assets/emotes/emotesv2_41cb3d8210e3480a80a4c5f2d871dda8 Binary files differnew file mode 100644 index 00000000..d46b26cc --- /dev/null +++ b/assets/emotes/emotesv2_41cb3d8210e3480a80a4c5f2d871dda8 diff --git a/assets/emotes/emotesv2_440ef982eb47436eb09e99975a59474a b/assets/emotes/emotesv2_440ef982eb47436eb09e99975a59474a Binary files differnew file mode 100644 index 00000000..8b3b2fed --- /dev/null +++ b/assets/emotes/emotesv2_440ef982eb47436eb09e99975a59474a diff --git a/assets/emotes/emotesv2_441b0cd9a965438990b5bc69a9a35507 b/assets/emotes/emotesv2_441b0cd9a965438990b5bc69a9a35507 Binary files differnew file mode 100644 index 00000000..fc1c26ff --- /dev/null +++ b/assets/emotes/emotesv2_441b0cd9a965438990b5bc69a9a35507 diff --git a/assets/emotes/emotesv2_4669a2ba1f7f4381a3b4b0b298e23008 b/assets/emotes/emotesv2_4669a2ba1f7f4381a3b4b0b298e23008 Binary files differnew file mode 100644 index 00000000..c4c8959f --- /dev/null +++ b/assets/emotes/emotesv2_4669a2ba1f7f4381a3b4b0b298e23008 diff --git a/assets/emotes/emotesv2_4845aea689bd4044a2a67f9f7c950da0 b/assets/emotes/emotesv2_4845aea689bd4044a2a67f9f7c950da0 Binary files differnew file mode 100644 index 00000000..f6ec2eb7 --- /dev/null +++ b/assets/emotes/emotesv2_4845aea689bd4044a2a67f9f7c950da0 diff --git a/assets/emotes/emotesv2_48468328d2524efc9dede95c680200a4 b/assets/emotes/emotesv2_48468328d2524efc9dede95c680200a4 Binary files differnew file mode 100644 index 00000000..5426a339 --- /dev/null +++ b/assets/emotes/emotesv2_48468328d2524efc9dede95c680200a4 diff --git a/assets/emotes/emotesv2_48a1c027c57a4c42b3cf4af51863e6df b/assets/emotes/emotesv2_48a1c027c57a4c42b3cf4af51863e6df Binary files differnew file mode 100644 index 00000000..931bc335 --- /dev/null +++ b/assets/emotes/emotesv2_48a1c027c57a4c42b3cf4af51863e6df diff --git a/assets/emotes/emotesv2_48d82508ea81496c8fd108c2a376656f b/assets/emotes/emotesv2_48d82508ea81496c8fd108c2a376656f Binary files differnew file mode 100644 index 00000000..db844f23 --- /dev/null +++ b/assets/emotes/emotesv2_48d82508ea81496c8fd108c2a376656f diff --git a/assets/emotes/emotesv2_495d3674d06e44bbbdea34244b6b5d82 b/assets/emotes/emotesv2_495d3674d06e44bbbdea34244b6b5d82 Binary files differnew file mode 100644 index 00000000..40a6eb00 --- /dev/null +++ b/assets/emotes/emotesv2_495d3674d06e44bbbdea34244b6b5d82 diff --git a/assets/emotes/emotesv2_49abeb068b5b4705bec832c4729eb794 b/assets/emotes/emotesv2_49abeb068b5b4705bec832c4729eb794 Binary files differnew file mode 100644 index 00000000..cbe22b3a --- /dev/null +++ b/assets/emotes/emotesv2_49abeb068b5b4705bec832c4729eb794 diff --git a/assets/emotes/emotesv2_4b0234918f3f4a60a32d94f31e512505 b/assets/emotes/emotesv2_4b0234918f3f4a60a32d94f31e512505 Binary files differnew file mode 100644 index 00000000..c489daf8 --- /dev/null +++ b/assets/emotes/emotesv2_4b0234918f3f4a60a32d94f31e512505 diff --git a/assets/emotes/emotesv2_4c67ea457d434e3fa289ec9402a42551 b/assets/emotes/emotesv2_4c67ea457d434e3fa289ec9402a42551 Binary files differnew file mode 100644 index 00000000..029e11ea --- /dev/null +++ b/assets/emotes/emotesv2_4c67ea457d434e3fa289ec9402a42551 diff --git a/assets/emotes/emotesv2_4c682fe3720246c78ed925ab053d8766 b/assets/emotes/emotesv2_4c682fe3720246c78ed925ab053d8766 Binary files differnew file mode 100644 index 00000000..c9cba1dd --- /dev/null +++ b/assets/emotes/emotesv2_4c682fe3720246c78ed925ab053d8766 diff --git a/assets/emotes/emotesv2_4e98413cbeae4aceabf13666fee68809 b/assets/emotes/emotesv2_4e98413cbeae4aceabf13666fee68809 Binary files differnew file mode 100644 index 00000000..f874502e --- /dev/null +++ b/assets/emotes/emotesv2_4e98413cbeae4aceabf13666fee68809 diff --git a/assets/emotes/emotesv2_4fd3a5d71eb84c24894ec27e3ae60ff9 b/assets/emotes/emotesv2_4fd3a5d71eb84c24894ec27e3ae60ff9 Binary files differnew file mode 100644 index 00000000..f7723f68 --- /dev/null +++ b/assets/emotes/emotesv2_4fd3a5d71eb84c24894ec27e3ae60ff9 diff --git a/assets/emotes/emotesv2_5026c62f5a1b44fbb2b4eaab5d0656c3 b/assets/emotes/emotesv2_5026c62f5a1b44fbb2b4eaab5d0656c3 Binary files differnew file mode 100644 index 00000000..cdf572f6 --- /dev/null +++ b/assets/emotes/emotesv2_5026c62f5a1b44fbb2b4eaab5d0656c3 diff --git a/assets/emotes/emotesv2_50484a4550ad48d8a34456e1b5216cd4 b/assets/emotes/emotesv2_50484a4550ad48d8a34456e1b5216cd4 Binary files differnew file mode 100644 index 00000000..e4410a75 --- /dev/null +++ b/assets/emotes/emotesv2_50484a4550ad48d8a34456e1b5216cd4 diff --git a/assets/emotes/emotesv2_523cbb164f4c481caba353298c0125db b/assets/emotes/emotesv2_523cbb164f4c481caba353298c0125db Binary files differnew file mode 100644 index 00000000..80df4aa6 --- /dev/null +++ b/assets/emotes/emotesv2_523cbb164f4c481caba353298c0125db diff --git a/assets/emotes/emotesv2_52dff8e1e96d4384935d49aa0d56d38b b/assets/emotes/emotesv2_52dff8e1e96d4384935d49aa0d56d38b Binary files differnew file mode 100644 index 00000000..6ee214e0 --- /dev/null +++ b/assets/emotes/emotesv2_52dff8e1e96d4384935d49aa0d56d38b diff --git a/assets/emotes/emotesv2_536da87d32584600abde1f5af66c5288 b/assets/emotes/emotesv2_536da87d32584600abde1f5af66c5288 Binary files differnew file mode 100644 index 00000000..6a466d2a --- /dev/null +++ b/assets/emotes/emotesv2_536da87d32584600abde1f5af66c5288 diff --git a/assets/emotes/emotesv2_53a5fea263714afc96e08711d15ea780 b/assets/emotes/emotesv2_53a5fea263714afc96e08711d15ea780 Binary files differnew file mode 100644 index 00000000..d96d1644 --- /dev/null +++ b/assets/emotes/emotesv2_53a5fea263714afc96e08711d15ea780 diff --git a/assets/emotes/emotesv2_53f3c2bc4acf4735b2f79bb385b46c2d b/assets/emotes/emotesv2_53f3c2bc4acf4735b2f79bb385b46c2d Binary files differnew file mode 100644 index 00000000..bc454e4c --- /dev/null +++ b/assets/emotes/emotesv2_53f3c2bc4acf4735b2f79bb385b46c2d diff --git a/assets/emotes/emotesv2_547e8c955abf4137937b05933df0b772 b/assets/emotes/emotesv2_547e8c955abf4137937b05933df0b772 Binary files differnew file mode 100644 index 00000000..5fe6c65f --- /dev/null +++ b/assets/emotes/emotesv2_547e8c955abf4137937b05933df0b772 diff --git a/assets/emotes/emotesv2_54e7302e687b4b3387f469f21ef3c726 b/assets/emotes/emotesv2_54e7302e687b4b3387f469f21ef3c726 Binary files differnew file mode 100644 index 00000000..cb2d7b7d --- /dev/null +++ b/assets/emotes/emotesv2_54e7302e687b4b3387f469f21ef3c726 diff --git a/assets/emotes/emotesv2_55129b7cd7a444a8a649f44d4ed82fa4 b/assets/emotes/emotesv2_55129b7cd7a444a8a649f44d4ed82fa4 Binary files differnew file mode 100644 index 00000000..e6432fad --- /dev/null +++ b/assets/emotes/emotesv2_55129b7cd7a444a8a649f44d4ed82fa4 diff --git a/assets/emotes/emotesv2_555e43b97c8a42d7aabe218a6765a108 b/assets/emotes/emotesv2_555e43b97c8a42d7aabe218a6765a108 Binary files differnew file mode 100644 index 00000000..4e039e8a --- /dev/null +++ b/assets/emotes/emotesv2_555e43b97c8a42d7aabe218a6765a108 diff --git a/assets/emotes/emotesv2_55800dceae8b4a09a315a60adddd7b80 b/assets/emotes/emotesv2_55800dceae8b4a09a315a60adddd7b80 Binary files differnew file mode 100644 index 00000000..e8027da3 --- /dev/null +++ b/assets/emotes/emotesv2_55800dceae8b4a09a315a60adddd7b80 diff --git a/assets/emotes/emotesv2_58606ffb5fd54f96a7734f8fe2216928 b/assets/emotes/emotesv2_58606ffb5fd54f96a7734f8fe2216928 Binary files differnew file mode 100644 index 00000000..7b1bb087 --- /dev/null +++ b/assets/emotes/emotesv2_58606ffb5fd54f96a7734f8fe2216928 diff --git a/assets/emotes/emotesv2_596ac55cb1634c03b0cd40d671f5d762 b/assets/emotes/emotesv2_596ac55cb1634c03b0cd40d671f5d762 Binary files differnew file mode 100644 index 00000000..c84ea089 --- /dev/null +++ b/assets/emotes/emotesv2_596ac55cb1634c03b0cd40d671f5d762 diff --git a/assets/emotes/emotesv2_596bbffcdc4645e89aa802bf44043864 b/assets/emotes/emotesv2_596bbffcdc4645e89aa802bf44043864 Binary files differnew file mode 100644 index 00000000..f205a4c2 --- /dev/null +++ b/assets/emotes/emotesv2_596bbffcdc4645e89aa802bf44043864 diff --git a/assets/emotes/emotesv2_59cb01861aa6483d81b2257eb5a6e5b0 b/assets/emotes/emotesv2_59cb01861aa6483d81b2257eb5a6e5b0 Binary files differnew file mode 100644 index 00000000..ac188541 --- /dev/null +++ b/assets/emotes/emotesv2_59cb01861aa6483d81b2257eb5a6e5b0 diff --git a/assets/emotes/emotesv2_5ae132d15449480a9b65ed422ef93c7f b/assets/emotes/emotesv2_5ae132d15449480a9b65ed422ef93c7f Binary files differnew file mode 100644 index 00000000..1ddcc961 --- /dev/null +++ b/assets/emotes/emotesv2_5ae132d15449480a9b65ed422ef93c7f diff --git a/assets/emotes/emotesv2_5b1f6b74ccb8400f8b50396a7bbc3b93 b/assets/emotes/emotesv2_5b1f6b74ccb8400f8b50396a7bbc3b93 Binary files differnew file mode 100644 index 00000000..240dafbc --- /dev/null +++ b/assets/emotes/emotesv2_5b1f6b74ccb8400f8b50396a7bbc3b93 diff --git a/assets/emotes/emotesv2_5b335cd372da4e3394272117135220ab b/assets/emotes/emotesv2_5b335cd372da4e3394272117135220ab Binary files differnew file mode 100644 index 00000000..4800e127 --- /dev/null +++ b/assets/emotes/emotesv2_5b335cd372da4e3394272117135220ab diff --git a/assets/emotes/emotesv2_5c57d48d429d4828be043c26addb0bcb b/assets/emotes/emotesv2_5c57d48d429d4828be043c26addb0bcb Binary files differnew file mode 100644 index 00000000..be57bd29 --- /dev/null +++ b/assets/emotes/emotesv2_5c57d48d429d4828be043c26addb0bcb diff --git a/assets/emotes/emotesv2_5d91d0301adb4ed7b453fa9924a6aaa1 b/assets/emotes/emotesv2_5d91d0301adb4ed7b453fa9924a6aaa1 Binary files differnew file mode 100644 index 00000000..d506db09 --- /dev/null +++ b/assets/emotes/emotesv2_5d91d0301adb4ed7b453fa9924a6aaa1 diff --git a/assets/emotes/emotesv2_5dc5c73e383f46259f45baa7b6c317eb b/assets/emotes/emotesv2_5dc5c73e383f46259f45baa7b6c317eb Binary files differnew file mode 100644 index 00000000..fb26d05a --- /dev/null +++ b/assets/emotes/emotesv2_5dc5c73e383f46259f45baa7b6c317eb diff --git a/assets/emotes/emotesv2_5e07afac8d504960b02ba7b036f3d6da b/assets/emotes/emotesv2_5e07afac8d504960b02ba7b036f3d6da Binary files differnew file mode 100644 index 00000000..326a6dae --- /dev/null +++ b/assets/emotes/emotesv2_5e07afac8d504960b02ba7b036f3d6da diff --git a/assets/emotes/emotesv2_5e109c2a05094f16a46bfbc52d210f61 b/assets/emotes/emotesv2_5e109c2a05094f16a46bfbc52d210f61 Binary files differnew file mode 100644 index 00000000..f5af0dea --- /dev/null +++ b/assets/emotes/emotesv2_5e109c2a05094f16a46bfbc52d210f61 diff --git a/assets/emotes/emotesv2_5e7b7f345e8f46d0b8f27b6a4f51f28c b/assets/emotes/emotesv2_5e7b7f345e8f46d0b8f27b6a4f51f28c Binary files differnew file mode 100644 index 00000000..96ab4d08 --- /dev/null +++ b/assets/emotes/emotesv2_5e7b7f345e8f46d0b8f27b6a4f51f28c diff --git a/assets/emotes/emotesv2_5f69a9fed5d24dc79df25453c7d72a90 b/assets/emotes/emotesv2_5f69a9fed5d24dc79df25453c7d72a90 Binary files differnew file mode 100644 index 00000000..683e45b6 --- /dev/null +++ b/assets/emotes/emotesv2_5f69a9fed5d24dc79df25453c7d72a90 diff --git a/assets/emotes/emotesv2_601930df6e434791a5873d65414a5849 b/assets/emotes/emotesv2_601930df6e434791a5873d65414a5849 Binary files differnew file mode 100644 index 00000000..e1d30726 --- /dev/null +++ b/assets/emotes/emotesv2_601930df6e434791a5873d65414a5849 diff --git a/assets/emotes/emotesv2_604ae91dae224b789962e70a805f3c3f b/assets/emotes/emotesv2_604ae91dae224b789962e70a805f3c3f Binary files differnew file mode 100644 index 00000000..cb000fc9 --- /dev/null +++ b/assets/emotes/emotesv2_604ae91dae224b789962e70a805f3c3f diff --git a/assets/emotes/emotesv2_6058cffdb65341feaff3d6368536464e b/assets/emotes/emotesv2_6058cffdb65341feaff3d6368536464e Binary files differnew file mode 100644 index 00000000..8b360b41 --- /dev/null +++ b/assets/emotes/emotesv2_6058cffdb65341feaff3d6368536464e diff --git a/assets/emotes/emotesv2_613ccd272ebf450d84c457bd16c9819c b/assets/emotes/emotesv2_613ccd272ebf450d84c457bd16c9819c Binary files differnew file mode 100644 index 00000000..be98833f --- /dev/null +++ b/assets/emotes/emotesv2_613ccd272ebf450d84c457bd16c9819c diff --git a/assets/emotes/emotesv2_61d8e83a99f849118dd5489f6cdf0929 b/assets/emotes/emotesv2_61d8e83a99f849118dd5489f6cdf0929 Binary files differnew file mode 100644 index 00000000..dd70b6c9 --- /dev/null +++ b/assets/emotes/emotesv2_61d8e83a99f849118dd5489f6cdf0929 diff --git a/assets/emotes/emotesv2_62791a27ec384ccb96e27defb5277067 b/assets/emotes/emotesv2_62791a27ec384ccb96e27defb5277067 Binary files differnew file mode 100644 index 00000000..9d457bc1 --- /dev/null +++ b/assets/emotes/emotesv2_62791a27ec384ccb96e27defb5277067 diff --git a/assets/emotes/emotesv2_63d7f59fb61b4745b7ee62caf4ffc06f b/assets/emotes/emotesv2_63d7f59fb61b4745b7ee62caf4ffc06f Binary files differnew file mode 100644 index 00000000..e045908f --- /dev/null +++ b/assets/emotes/emotesv2_63d7f59fb61b4745b7ee62caf4ffc06f diff --git a/assets/emotes/emotesv2_6444f5cbf53640f1beccfcb29ed02ae6 b/assets/emotes/emotesv2_6444f5cbf53640f1beccfcb29ed02ae6 Binary files differnew file mode 100644 index 00000000..da5ca976 --- /dev/null +++ b/assets/emotes/emotesv2_6444f5cbf53640f1beccfcb29ed02ae6 diff --git a/assets/emotes/emotesv2_6456fcf4f15f4f4f80eb27becc290615 b/assets/emotes/emotesv2_6456fcf4f15f4f4f80eb27becc290615 Binary files differnew file mode 100644 index 00000000..3b0d5f57 --- /dev/null +++ b/assets/emotes/emotesv2_6456fcf4f15f4f4f80eb27becc290615 diff --git a/assets/emotes/emotesv2_64cf7ab508eb4947a73ef1d7a38e0984 b/assets/emotes/emotesv2_64cf7ab508eb4947a73ef1d7a38e0984 Binary files differnew file mode 100644 index 00000000..6b35065e --- /dev/null +++ b/assets/emotes/emotesv2_64cf7ab508eb4947a73ef1d7a38e0984 diff --git a/assets/emotes/emotesv2_64f50bf400324ec68b8207aac282e454 b/assets/emotes/emotesv2_64f50bf400324ec68b8207aac282e454 Binary files differnew file mode 100644 index 00000000..de009081 --- /dev/null +++ b/assets/emotes/emotesv2_64f50bf400324ec68b8207aac282e454 diff --git a/assets/emotes/emotesv2_64fd59354add4e3f80fdcaf32850e761 b/assets/emotes/emotesv2_64fd59354add4e3f80fdcaf32850e761 Binary files differnew file mode 100644 index 00000000..7c48f858 --- /dev/null +++ b/assets/emotes/emotesv2_64fd59354add4e3f80fdcaf32850e761 diff --git a/assets/emotes/emotesv2_65e924d6dc194a6c863845e8dfe83943 b/assets/emotes/emotesv2_65e924d6dc194a6c863845e8dfe83943 Binary files differnew file mode 100644 index 00000000..b878d6ef --- /dev/null +++ b/assets/emotes/emotesv2_65e924d6dc194a6c863845e8dfe83943 diff --git a/assets/emotes/emotesv2_662145dd4e844282affbf06df8e261b8 b/assets/emotes/emotesv2_662145dd4e844282affbf06df8e261b8 Binary files differnew file mode 100644 index 00000000..ea50807f --- /dev/null +++ b/assets/emotes/emotesv2_662145dd4e844282affbf06df8e261b8 diff --git a/assets/emotes/emotesv2_66d371de61d64d32bee1d47b26dfe238 b/assets/emotes/emotesv2_66d371de61d64d32bee1d47b26dfe238 Binary files differnew file mode 100644 index 00000000..f80e0d63 --- /dev/null +++ b/assets/emotes/emotesv2_66d371de61d64d32bee1d47b26dfe238 diff --git a/assets/emotes/emotesv2_67d8334685e94c7380f92503a30e1c48 b/assets/emotes/emotesv2_67d8334685e94c7380f92503a30e1c48 Binary files differnew file mode 100644 index 00000000..5b48ccd3 --- /dev/null +++ b/assets/emotes/emotesv2_67d8334685e94c7380f92503a30e1c48 diff --git a/assets/emotes/emotesv2_69aa5755b0454c01bebc9a35cd861722 b/assets/emotes/emotesv2_69aa5755b0454c01bebc9a35cd861722 Binary files differnew file mode 100644 index 00000000..838247eb --- /dev/null +++ b/assets/emotes/emotesv2_69aa5755b0454c01bebc9a35cd861722 diff --git a/assets/emotes/emotesv2_69f8434749e343d8926967a564dbc908 b/assets/emotes/emotesv2_69f8434749e343d8926967a564dbc908 Binary files differnew file mode 100644 index 00000000..bbcb9910 --- /dev/null +++ b/assets/emotes/emotesv2_69f8434749e343d8926967a564dbc908 diff --git a/assets/emotes/emotesv2_6a28e3adbdfd4cf69ca4b4bcb2ac77a8 b/assets/emotes/emotesv2_6a28e3adbdfd4cf69ca4b4bcb2ac77a8 Binary files differnew file mode 100644 index 00000000..52a28887 --- /dev/null +++ b/assets/emotes/emotesv2_6a28e3adbdfd4cf69ca4b4bcb2ac77a8 diff --git a/assets/emotes/emotesv2_6a4c5a8c06dc48c5ab22210c68a52e03 b/assets/emotes/emotesv2_6a4c5a8c06dc48c5ab22210c68a52e03 Binary files differnew file mode 100644 index 00000000..bacfcd75 --- /dev/null +++ b/assets/emotes/emotesv2_6a4c5a8c06dc48c5ab22210c68a52e03 diff --git a/assets/emotes/emotesv2_6ad945d63ffa47aabd1ccff4871a0283 b/assets/emotes/emotesv2_6ad945d63ffa47aabd1ccff4871a0283 Binary files differnew file mode 100644 index 00000000..59b6a028 --- /dev/null +++ b/assets/emotes/emotesv2_6ad945d63ffa47aabd1ccff4871a0283 diff --git a/assets/emotes/emotesv2_6b03a429ecd545ed98af41dba25f490a b/assets/emotes/emotesv2_6b03a429ecd545ed98af41dba25f490a Binary files differnew file mode 100644 index 00000000..df8b0de5 --- /dev/null +++ b/assets/emotes/emotesv2_6b03a429ecd545ed98af41dba25f490a diff --git a/assets/emotes/emotesv2_6b37b7e13bb94ffa8ac6af5740dd6e6b b/assets/emotes/emotesv2_6b37b7e13bb94ffa8ac6af5740dd6e6b Binary files differnew file mode 100644 index 00000000..f3ab1c26 --- /dev/null +++ b/assets/emotes/emotesv2_6b37b7e13bb94ffa8ac6af5740dd6e6b diff --git a/assets/emotes/emotesv2_6b94432ee31b4f909adab1058209a268 b/assets/emotes/emotesv2_6b94432ee31b4f909adab1058209a268 Binary files differnew file mode 100644 index 00000000..449c480e --- /dev/null +++ b/assets/emotes/emotesv2_6b94432ee31b4f909adab1058209a268 diff --git a/assets/emotes/emotesv2_6ca8feb8f3f2466eb9acc98e3089911b b/assets/emotes/emotesv2_6ca8feb8f3f2466eb9acc98e3089911b Binary files differnew file mode 100644 index 00000000..9c20d63f --- /dev/null +++ b/assets/emotes/emotesv2_6ca8feb8f3f2466eb9acc98e3089911b diff --git a/assets/emotes/emotesv2_6e7afafe028d4059b7a050d00a18a401 b/assets/emotes/emotesv2_6e7afafe028d4059b7a050d00a18a401 Binary files differnew file mode 100644 index 00000000..512a6851 --- /dev/null +++ b/assets/emotes/emotesv2_6e7afafe028d4059b7a050d00a18a401 diff --git a/assets/emotes/emotesv2_6ef79d00b5e0447ca9a3c8170f3df006 b/assets/emotes/emotesv2_6ef79d00b5e0447ca9a3c8170f3df006 Binary files differnew file mode 100644 index 00000000..f8c6a615 --- /dev/null +++ b/assets/emotes/emotesv2_6ef79d00b5e0447ca9a3c8170f3df006 diff --git a/assets/emotes/emotesv2_6f1c5d88aa8b4a7eaabf306b6dc410b7 b/assets/emotes/emotesv2_6f1c5d88aa8b4a7eaabf306b6dc410b7 Binary files differnew file mode 100644 index 00000000..e19d81e9 --- /dev/null +++ b/assets/emotes/emotesv2_6f1c5d88aa8b4a7eaabf306b6dc410b7 diff --git a/assets/emotes/emotesv2_6f1d1da892d542748afbbfef36e0aa28 b/assets/emotes/emotesv2_6f1d1da892d542748afbbfef36e0aa28 Binary files differnew file mode 100644 index 00000000..a6af8dfc --- /dev/null +++ b/assets/emotes/emotesv2_6f1d1da892d542748afbbfef36e0aa28 diff --git a/assets/emotes/emotesv2_6f47210c1f6240458420b9db0b5ec9c5 b/assets/emotes/emotesv2_6f47210c1f6240458420b9db0b5ec9c5 Binary files differnew file mode 100644 index 00000000..30957734 --- /dev/null +++ b/assets/emotes/emotesv2_6f47210c1f6240458420b9db0b5ec9c5 diff --git a/assets/emotes/emotesv2_703b0a29ebd843dcb9b02b415a56ab5d b/assets/emotes/emotesv2_703b0a29ebd843dcb9b02b415a56ab5d Binary files differnew file mode 100644 index 00000000..5382a2ad --- /dev/null +++ b/assets/emotes/emotesv2_703b0a29ebd843dcb9b02b415a56ab5d diff --git a/assets/emotes/emotesv2_70700345e3384219a35d7af9e75f9395 b/assets/emotes/emotesv2_70700345e3384219a35d7af9e75f9395 Binary files differnew file mode 100644 index 00000000..4938f0b7 --- /dev/null +++ b/assets/emotes/emotesv2_70700345e3384219a35d7af9e75f9395 diff --git a/assets/emotes/emotesv2_71276b021c024affa2a4ffab59d32c56 b/assets/emotes/emotesv2_71276b021c024affa2a4ffab59d32c56 Binary files differnew file mode 100644 index 00000000..fba90f86 --- /dev/null +++ b/assets/emotes/emotesv2_71276b021c024affa2a4ffab59d32c56 diff --git a/assets/emotes/emotesv2_732a78769b5643fd93ab2c72821b51c4 b/assets/emotes/emotesv2_732a78769b5643fd93ab2c72821b51c4 Binary files differnew file mode 100644 index 00000000..bc5a3f53 --- /dev/null +++ b/assets/emotes/emotesv2_732a78769b5643fd93ab2c72821b51c4 diff --git a/assets/emotes/emotesv2_73846909f8f24164b41a275b39658fd0 b/assets/emotes/emotesv2_73846909f8f24164b41a275b39658fd0 Binary files differnew file mode 100644 index 00000000..c0cd34af --- /dev/null +++ b/assets/emotes/emotesv2_73846909f8f24164b41a275b39658fd0 diff --git a/assets/emotes/emotesv2_73f434f2f56f48f08367155f22cd4867 b/assets/emotes/emotesv2_73f434f2f56f48f08367155f22cd4867 Binary files differnew file mode 100644 index 00000000..237f4693 --- /dev/null +++ b/assets/emotes/emotesv2_73f434f2f56f48f08367155f22cd4867 diff --git a/assets/emotes/emotesv2_75d7f2d367f248d49a82f5289a7dc03d_HF b/assets/emotes/emotesv2_75d7f2d367f248d49a82f5289a7dc03d_HF Binary files differnew file mode 100644 index 00000000..cfb1ba78 --- /dev/null +++ b/assets/emotes/emotesv2_75d7f2d367f248d49a82f5289a7dc03d_HF diff --git a/assets/emotes/emotesv2_75eea89c64dd415188edb2d2e6ffd66e b/assets/emotes/emotesv2_75eea89c64dd415188edb2d2e6ffd66e Binary files differnew file mode 100644 index 00000000..0310e693 --- /dev/null +++ b/assets/emotes/emotesv2_75eea89c64dd415188edb2d2e6ffd66e diff --git a/assets/emotes/emotesv2_75eee2ab9e8244eaae2c141dc14c62f8 b/assets/emotes/emotesv2_75eee2ab9e8244eaae2c141dc14c62f8 Binary files differnew file mode 100644 index 00000000..8c001ddd --- /dev/null +++ b/assets/emotes/emotesv2_75eee2ab9e8244eaae2c141dc14c62f8 diff --git a/assets/emotes/emotesv2_76d148292d704c348b40c48e7a906809 b/assets/emotes/emotesv2_76d148292d704c348b40c48e7a906809 Binary files differnew file mode 100644 index 00000000..896af461 --- /dev/null +++ b/assets/emotes/emotesv2_76d148292d704c348b40c48e7a906809 diff --git a/assets/emotes/emotesv2_77ce83d7905d4e09b323e4ceb0d4a94e b/assets/emotes/emotesv2_77ce83d7905d4e09b323e4ceb0d4a94e Binary files differnew file mode 100644 index 00000000..37e52407 --- /dev/null +++ b/assets/emotes/emotesv2_77ce83d7905d4e09b323e4ceb0d4a94e diff --git a/assets/emotes/emotesv2_77d15834e97240049c811ed3d967b190 b/assets/emotes/emotesv2_77d15834e97240049c811ed3d967b190 Binary files differnew file mode 100644 index 00000000..ceaf503f --- /dev/null +++ b/assets/emotes/emotesv2_77d15834e97240049c811ed3d967b190 diff --git a/assets/emotes/emotesv2_785cb1a26b244fb38f83b0278b5ff10f b/assets/emotes/emotesv2_785cb1a26b244fb38f83b0278b5ff10f Binary files differnew file mode 100644 index 00000000..91cceced --- /dev/null +++ b/assets/emotes/emotesv2_785cb1a26b244fb38f83b0278b5ff10f diff --git a/assets/emotes/emotesv2_78c9b1149e024ed1be6022f8a341e3b2 b/assets/emotes/emotesv2_78c9b1149e024ed1be6022f8a341e3b2 Binary files differnew file mode 100644 index 00000000..489cfc98 --- /dev/null +++ b/assets/emotes/emotesv2_78c9b1149e024ed1be6022f8a341e3b2 diff --git a/assets/emotes/emotesv2_78f915520b4440d68e0333c7e41e9200 b/assets/emotes/emotesv2_78f915520b4440d68e0333c7e41e9200 Binary files differnew file mode 100644 index 00000000..a2415ee5 --- /dev/null +++ b/assets/emotes/emotesv2_78f915520b4440d68e0333c7e41e9200 diff --git a/assets/emotes/emotesv2_796d85ec687047b49aea8c7e74f6b58b b/assets/emotes/emotesv2_796d85ec687047b49aea8c7e74f6b58b Binary files differnew file mode 100644 index 00000000..e1898528 --- /dev/null +++ b/assets/emotes/emotesv2_796d85ec687047b49aea8c7e74f6b58b diff --git a/assets/emotes/emotesv2_7a1f2f816fa9436cbd6579f2dbf1fa07 b/assets/emotes/emotesv2_7a1f2f816fa9436cbd6579f2dbf1fa07 Binary files differnew file mode 100644 index 00000000..4d852fcc --- /dev/null +++ b/assets/emotes/emotesv2_7a1f2f816fa9436cbd6579f2dbf1fa07 diff --git a/assets/emotes/emotesv2_7b07e86b0efe4b5dbffae545a0a246d3 b/assets/emotes/emotesv2_7b07e86b0efe4b5dbffae545a0a246d3 Binary files differnew file mode 100644 index 00000000..fd7f2982 --- /dev/null +++ b/assets/emotes/emotesv2_7b07e86b0efe4b5dbffae545a0a246d3 diff --git a/assets/emotes/emotesv2_7c526cf20bbb4cc48d70a4ffa3e58231 b/assets/emotes/emotesv2_7c526cf20bbb4cc48d70a4ffa3e58231 Binary files differnew file mode 100644 index 00000000..58c8451f --- /dev/null +++ b/assets/emotes/emotesv2_7c526cf20bbb4cc48d70a4ffa3e58231 diff --git a/assets/emotes/emotesv2_7d4909238e2c4ff29d1035967b3320ca b/assets/emotes/emotesv2_7d4909238e2c4ff29d1035967b3320ca Binary files differnew file mode 100644 index 00000000..97f3f0d2 --- /dev/null +++ b/assets/emotes/emotesv2_7d4909238e2c4ff29d1035967b3320ca diff --git a/assets/emotes/emotesv2_7e4fb21379b446bc917acf6da6173a26 b/assets/emotes/emotesv2_7e4fb21379b446bc917acf6da6173a26 Binary files differnew file mode 100644 index 00000000..74bea5c7 --- /dev/null +++ b/assets/emotes/emotesv2_7e4fb21379b446bc917acf6da6173a26 diff --git a/assets/emotes/emotesv2_8004b88a5c9c4f44bea8a5f66f2b2970 b/assets/emotes/emotesv2_8004b88a5c9c4f44bea8a5f66f2b2970 Binary files differnew file mode 100644 index 00000000..d7cac92c --- /dev/null +++ b/assets/emotes/emotesv2_8004b88a5c9c4f44bea8a5f66f2b2970 diff --git a/assets/emotes/emotesv2_8064ffd3794142749a01291e77c269aa b/assets/emotes/emotesv2_8064ffd3794142749a01291e77c269aa Binary files differnew file mode 100644 index 00000000..01ada5da --- /dev/null +++ b/assets/emotes/emotesv2_8064ffd3794142749a01291e77c269aa diff --git a/assets/emotes/emotesv2_807683797c134435b03ce421d2a69f18 b/assets/emotes/emotesv2_807683797c134435b03ce421d2a69f18 Binary files differnew file mode 100644 index 00000000..c7e3bb03 --- /dev/null +++ b/assets/emotes/emotesv2_807683797c134435b03ce421d2a69f18 diff --git a/assets/emotes/emotesv2_8235d7c49b90499687d252f5d578c4cf b/assets/emotes/emotesv2_8235d7c49b90499687d252f5d578c4cf Binary files differnew file mode 100644 index 00000000..b34450d3 --- /dev/null +++ b/assets/emotes/emotesv2_8235d7c49b90499687d252f5d578c4cf diff --git a/assets/emotes/emotesv2_834c09086613410794fc144b05205854 b/assets/emotes/emotesv2_834c09086613410794fc144b05205854 Binary files differnew file mode 100644 index 00000000..8ba8fabd --- /dev/null +++ b/assets/emotes/emotesv2_834c09086613410794fc144b05205854 diff --git a/assets/emotes/emotesv2_83fd3d36e14f4b97ac7f72a2c945ff05 b/assets/emotes/emotesv2_83fd3d36e14f4b97ac7f72a2c945ff05 Binary files differnew file mode 100644 index 00000000..726d2901 --- /dev/null +++ b/assets/emotes/emotesv2_83fd3d36e14f4b97ac7f72a2c945ff05 diff --git a/assets/emotes/emotesv2_8469d0ac664e4678aad3dbdeacd74a80 b/assets/emotes/emotesv2_8469d0ac664e4678aad3dbdeacd74a80 Binary files differnew file mode 100644 index 00000000..2ef93b6b --- /dev/null +++ b/assets/emotes/emotesv2_8469d0ac664e4678aad3dbdeacd74a80 diff --git a/assets/emotes/emotesv2_85ce95a4b41244699ae283971f4754ea b/assets/emotes/emotesv2_85ce95a4b41244699ae283971f4754ea Binary files differnew file mode 100644 index 00000000..a95d55bb --- /dev/null +++ b/assets/emotes/emotesv2_85ce95a4b41244699ae283971f4754ea diff --git a/assets/emotes/emotesv2_85faafce7d71481cb62c708820b0be84 b/assets/emotes/emotesv2_85faafce7d71481cb62c708820b0be84 Binary files differnew file mode 100644 index 00000000..2d470515 --- /dev/null +++ b/assets/emotes/emotesv2_85faafce7d71481cb62c708820b0be84 diff --git a/assets/emotes/emotesv2_867d55a7f9b644e2b15c10234383b25f b/assets/emotes/emotesv2_867d55a7f9b644e2b15c10234383b25f Binary files differnew file mode 100644 index 00000000..2ab3212f --- /dev/null +++ b/assets/emotes/emotesv2_867d55a7f9b644e2b15c10234383b25f diff --git a/assets/emotes/emotesv2_88ce587d51b048acabd8d332bcce95d5 b/assets/emotes/emotesv2_88ce587d51b048acabd8d332bcce95d5 Binary files differnew file mode 100644 index 00000000..435bc5da --- /dev/null +++ b/assets/emotes/emotesv2_88ce587d51b048acabd8d332bcce95d5 diff --git a/assets/emotes/emotesv2_8a69a54b34d345ae992f87e0a1a0b44c b/assets/emotes/emotesv2_8a69a54b34d345ae992f87e0a1a0b44c Binary files differnew file mode 100644 index 00000000..b0bc459d --- /dev/null +++ b/assets/emotes/emotesv2_8a69a54b34d345ae992f87e0a1a0b44c diff --git a/assets/emotes/emotesv2_8aef87f335cf4d3284a4a924b90b60de b/assets/emotes/emotesv2_8aef87f335cf4d3284a4a924b90b60de Binary files differnew file mode 100644 index 00000000..beb43341 --- /dev/null +++ b/assets/emotes/emotesv2_8aef87f335cf4d3284a4a924b90b60de diff --git a/assets/emotes/emotesv2_8bf198a0f83c4bc3acbf0882e0bbd98f b/assets/emotes/emotesv2_8bf198a0f83c4bc3acbf0882e0bbd98f Binary files differnew file mode 100644 index 00000000..ae70138e --- /dev/null +++ b/assets/emotes/emotesv2_8bf198a0f83c4bc3acbf0882e0bbd98f diff --git a/assets/emotes/emotesv2_8bfa9bb4113b48b8ba213f404d7371c8 b/assets/emotes/emotesv2_8bfa9bb4113b48b8ba213f404d7371c8 Binary files differnew file mode 100644 index 00000000..a6524403 --- /dev/null +++ b/assets/emotes/emotesv2_8bfa9bb4113b48b8ba213f404d7371c8 diff --git a/assets/emotes/emotesv2_8d06d108c90a458b91457714b34d0836 b/assets/emotes/emotesv2_8d06d108c90a458b91457714b34d0836 Binary files differnew file mode 100644 index 00000000..bb4ace8f --- /dev/null +++ b/assets/emotes/emotesv2_8d06d108c90a458b91457714b34d0836 diff --git a/assets/emotes/emotesv2_8d31fb106b2f41aebc507189d969be11 b/assets/emotes/emotesv2_8d31fb106b2f41aebc507189d969be11 Binary files differnew file mode 100644 index 00000000..f68cb5b6 --- /dev/null +++ b/assets/emotes/emotesv2_8d31fb106b2f41aebc507189d969be11 diff --git a/assets/emotes/emotesv2_8e8e19ad89ed4cdcacc666e84e3f616a b/assets/emotes/emotesv2_8e8e19ad89ed4cdcacc666e84e3f616a Binary files differnew file mode 100644 index 00000000..26109522 --- /dev/null +++ b/assets/emotes/emotesv2_8e8e19ad89ed4cdcacc666e84e3f616a diff --git a/assets/emotes/emotesv2_8e90b13948ff46d88867eed684c38b9d b/assets/emotes/emotesv2_8e90b13948ff46d88867eed684c38b9d Binary files differnew file mode 100644 index 00000000..52053804 --- /dev/null +++ b/assets/emotes/emotesv2_8e90b13948ff46d88867eed684c38b9d diff --git a/assets/emotes/emotesv2_8fe388f1f47946ffa4a8b0b488616944 b/assets/emotes/emotesv2_8fe388f1f47946ffa4a8b0b488616944 Binary files differnew file mode 100644 index 00000000..3056b6cb --- /dev/null +++ b/assets/emotes/emotesv2_8fe388f1f47946ffa4a8b0b488616944 diff --git a/assets/emotes/emotesv2_906dc8700ed74ee1bbef2df094683a8b b/assets/emotes/emotesv2_906dc8700ed74ee1bbef2df094683a8b Binary files differnew file mode 100644 index 00000000..70dcb352 --- /dev/null +++ b/assets/emotes/emotesv2_906dc8700ed74ee1bbef2df094683a8b diff --git a/assets/emotes/emotesv2_90dcebf25baa4478a43bcd86910ede62 b/assets/emotes/emotesv2_90dcebf25baa4478a43bcd86910ede62 Binary files differnew file mode 100644 index 00000000..746b1b6f --- /dev/null +++ b/assets/emotes/emotesv2_90dcebf25baa4478a43bcd86910ede62 diff --git a/assets/emotes/emotesv2_90ea6219add542d0ada501643a727a27 b/assets/emotes/emotesv2_90ea6219add542d0ada501643a727a27 Binary files differnew file mode 100644 index 00000000..50891216 --- /dev/null +++ b/assets/emotes/emotesv2_90ea6219add542d0ada501643a727a27 diff --git a/assets/emotes/emotesv2_916553f67e7841d3b2674fbf5aeba3cf b/assets/emotes/emotesv2_916553f67e7841d3b2674fbf5aeba3cf Binary files differnew file mode 100644 index 00000000..6504c763 --- /dev/null +++ b/assets/emotes/emotesv2_916553f67e7841d3b2674fbf5aeba3cf diff --git a/assets/emotes/emotesv2_91f4334f495446b582fe77923f4589ff b/assets/emotes/emotesv2_91f4334f495446b582fe77923f4589ff Binary files differnew file mode 100644 index 00000000..7aece3af --- /dev/null +++ b/assets/emotes/emotesv2_91f4334f495446b582fe77923f4589ff diff --git a/assets/emotes/emotesv2_920d701333c94fba94f5aed29053c077 b/assets/emotes/emotesv2_920d701333c94fba94f5aed29053c077 Binary files differnew file mode 100644 index 00000000..acb4784d --- /dev/null +++ b/assets/emotes/emotesv2_920d701333c94fba94f5aed29053c077 diff --git a/assets/emotes/emotesv2_92ebb9517ce4470ab5e574181129d4d9 b/assets/emotes/emotesv2_92ebb9517ce4470ab5e574181129d4d9 Binary files differnew file mode 100644 index 00000000..7a109193 --- /dev/null +++ b/assets/emotes/emotesv2_92ebb9517ce4470ab5e574181129d4d9 diff --git a/assets/emotes/emotesv2_93c07b986a8c427ba497e210b11fb84c b/assets/emotes/emotesv2_93c07b986a8c427ba497e210b11fb84c Binary files differnew file mode 100644 index 00000000..0deeb2bf --- /dev/null +++ b/assets/emotes/emotesv2_93c07b986a8c427ba497e210b11fb84c diff --git a/assets/emotes/emotesv2_944938feb3694525b5d91dc9e52dc615 b/assets/emotes/emotesv2_944938feb3694525b5d91dc9e52dc615 Binary files differnew file mode 100644 index 00000000..3316d410 --- /dev/null +++ b/assets/emotes/emotesv2_944938feb3694525b5d91dc9e52dc615 diff --git a/assets/emotes/emotesv2_9458ff7ff9c74dc0975db037b7eebbee b/assets/emotes/emotesv2_9458ff7ff9c74dc0975db037b7eebbee Binary files differnew file mode 100644 index 00000000..f4c57e09 --- /dev/null +++ b/assets/emotes/emotesv2_9458ff7ff9c74dc0975db037b7eebbee diff --git a/assets/emotes/emotesv2_949e6a7df0c74af28e829587741e338c b/assets/emotes/emotesv2_949e6a7df0c74af28e829587741e338c Binary files differnew file mode 100644 index 00000000..2d67d79c --- /dev/null +++ b/assets/emotes/emotesv2_949e6a7df0c74af28e829587741e338c diff --git a/assets/emotes/emotesv2_97f01191fbe24496813d18c4d98d7881 b/assets/emotes/emotesv2_97f01191fbe24496813d18c4d98d7881 Binary files differnew file mode 100644 index 00000000..1e53c6ae --- /dev/null +++ b/assets/emotes/emotesv2_97f01191fbe24496813d18c4d98d7881 diff --git a/assets/emotes/emotesv2_98bee893c21c4e1d84393278ea219e1c b/assets/emotes/emotesv2_98bee893c21c4e1d84393278ea219e1c Binary files differnew file mode 100644 index 00000000..c2bd9ac5 --- /dev/null +++ b/assets/emotes/emotesv2_98bee893c21c4e1d84393278ea219e1c diff --git a/assets/emotes/emotesv2_99696770a9ed4f24bcac6bac7a97d3d4 b/assets/emotes/emotesv2_99696770a9ed4f24bcac6bac7a97d3d4 Binary files differnew file mode 100644 index 00000000..f06aae40 --- /dev/null +++ b/assets/emotes/emotesv2_99696770a9ed4f24bcac6bac7a97d3d4 diff --git a/assets/emotes/emotesv2_997611a1e0734112a27322514282d83a b/assets/emotes/emotesv2_997611a1e0734112a27322514282d83a Binary files differnew file mode 100644 index 00000000..88a25450 --- /dev/null +++ b/assets/emotes/emotesv2_997611a1e0734112a27322514282d83a diff --git a/assets/emotes/emotesv2_99f3ad0175d8433aac306c020760bf23 b/assets/emotes/emotesv2_99f3ad0175d8433aac306c020760bf23 Binary files differnew file mode 100644 index 00000000..e3fbd78b --- /dev/null +++ b/assets/emotes/emotesv2_99f3ad0175d8433aac306c020760bf23 diff --git a/assets/emotes/emotesv2_9a1c64ab3e44491fb2c2b0dc7a767a90 b/assets/emotes/emotesv2_9a1c64ab3e44491fb2c2b0dc7a767a90 Binary files differnew file mode 100644 index 00000000..af96715b --- /dev/null +++ b/assets/emotes/emotesv2_9a1c64ab3e44491fb2c2b0dc7a767a90 diff --git a/assets/emotes/emotesv2_9a373a06200b405e8646464f1d11ca92 b/assets/emotes/emotesv2_9a373a06200b405e8646464f1d11ca92 Binary files differnew file mode 100644 index 00000000..08cb272e --- /dev/null +++ b/assets/emotes/emotesv2_9a373a06200b405e8646464f1d11ca92 diff --git a/assets/emotes/emotesv2_9a3d4ab4a6364c9fa28436d9f0984739 b/assets/emotes/emotesv2_9a3d4ab4a6364c9fa28436d9f0984739 Binary files differnew file mode 100644 index 00000000..06d864ee --- /dev/null +++ b/assets/emotes/emotesv2_9a3d4ab4a6364c9fa28436d9f0984739 diff --git a/assets/emotes/emotesv2_9a4d0ecba81d4bd0ad65c2e1bf02e479_TK b/assets/emotes/emotesv2_9a4d0ecba81d4bd0ad65c2e1bf02e479_TK Binary files differnew file mode 100644 index 00000000..c60e7620 --- /dev/null +++ b/assets/emotes/emotesv2_9a4d0ecba81d4bd0ad65c2e1bf02e479_TK diff --git a/assets/emotes/emotesv2_9b12eb15d9e34d3a85e650a4de6fd756 b/assets/emotes/emotesv2_9b12eb15d9e34d3a85e650a4de6fd756 Binary files differnew file mode 100644 index 00000000..8e895a43 --- /dev/null +++ b/assets/emotes/emotesv2_9b12eb15d9e34d3a85e650a4de6fd756 diff --git a/assets/emotes/emotesv2_9c59a8fafe554da1a07d34e418ec2b30 b/assets/emotes/emotesv2_9c59a8fafe554da1a07d34e418ec2b30 Binary files differnew file mode 100644 index 00000000..36bf94be --- /dev/null +++ b/assets/emotes/emotesv2_9c59a8fafe554da1a07d34e418ec2b30 diff --git a/assets/emotes/emotesv2_9c9d5e65cac84a1f8dd7e3347df51628 b/assets/emotes/emotesv2_9c9d5e65cac84a1f8dd7e3347df51628 Binary files differnew file mode 100644 index 00000000..ca395f8a --- /dev/null +++ b/assets/emotes/emotesv2_9c9d5e65cac84a1f8dd7e3347df51628 diff --git a/assets/emotes/emotesv2_9cf6a2b276fb487f9ee404863e65fde9 b/assets/emotes/emotesv2_9cf6a2b276fb487f9ee404863e65fde9 Binary files differnew file mode 100644 index 00000000..1e624e3d --- /dev/null +++ b/assets/emotes/emotesv2_9cf6a2b276fb487f9ee404863e65fde9 diff --git a/assets/emotes/emotesv2_9d24ff5266624d87ad21273ae8975c27 b/assets/emotes/emotesv2_9d24ff5266624d87ad21273ae8975c27 Binary files differnew file mode 100644 index 00000000..6b5e374b --- /dev/null +++ b/assets/emotes/emotesv2_9d24ff5266624d87ad21273ae8975c27 diff --git a/assets/emotes/emotesv2_9da7d4bef516407780ce83637d00d8c0 b/assets/emotes/emotesv2_9da7d4bef516407780ce83637d00d8c0 Binary files differnew file mode 100644 index 00000000..97b0e882 --- /dev/null +++ b/assets/emotes/emotesv2_9da7d4bef516407780ce83637d00d8c0 diff --git a/assets/emotes/emotesv2_9dbe9c73ba6a41aebd04b80d269b4874 b/assets/emotes/emotesv2_9dbe9c73ba6a41aebd04b80d269b4874 Binary files differnew file mode 100644 index 00000000..a68b48dd --- /dev/null +++ b/assets/emotes/emotesv2_9dbe9c73ba6a41aebd04b80d269b4874 diff --git a/assets/emotes/emotesv2_9e52134eec8a4ebeaef76d5a01df12bb b/assets/emotes/emotesv2_9e52134eec8a4ebeaef76d5a01df12bb Binary files differnew file mode 100644 index 00000000..29a256a0 --- /dev/null +++ b/assets/emotes/emotesv2_9e52134eec8a4ebeaef76d5a01df12bb diff --git a/assets/emotes/emotesv2_9f1ab1d03bba4fb0b735a9670d3361ed b/assets/emotes/emotesv2_9f1ab1d03bba4fb0b735a9670d3361ed Binary files differnew file mode 100644 index 00000000..396ac081 --- /dev/null +++ b/assets/emotes/emotesv2_9f1ab1d03bba4fb0b735a9670d3361ed diff --git a/assets/emotes/emotesv2_9f799a4bba3746a188cbe06c6deb27a5 b/assets/emotes/emotesv2_9f799a4bba3746a188cbe06c6deb27a5 Binary files differnew file mode 100644 index 00000000..e2a1a8fd --- /dev/null +++ b/assets/emotes/emotesv2_9f799a4bba3746a188cbe06c6deb27a5 diff --git a/assets/emotes/emotesv2_a08dccc1b4ad4fa5a5878fdd7b8047fb b/assets/emotes/emotesv2_a08dccc1b4ad4fa5a5878fdd7b8047fb Binary files differnew file mode 100644 index 00000000..aa830fb5 --- /dev/null +++ b/assets/emotes/emotesv2_a08dccc1b4ad4fa5a5878fdd7b8047fb diff --git a/assets/emotes/emotesv2_a21052eac36246cc8ef494e2b4ca5beb b/assets/emotes/emotesv2_a21052eac36246cc8ef494e2b4ca5beb Binary files differnew file mode 100644 index 00000000..dadc5306 --- /dev/null +++ b/assets/emotes/emotesv2_a21052eac36246cc8ef494e2b4ca5beb diff --git a/assets/emotes/emotesv2_a224841e21d942a5973c8ad2db45ddf1 b/assets/emotes/emotesv2_a224841e21d942a5973c8ad2db45ddf1 Binary files differnew file mode 100644 index 00000000..5da7b336 --- /dev/null +++ b/assets/emotes/emotesv2_a224841e21d942a5973c8ad2db45ddf1 diff --git a/assets/emotes/emotesv2_a2aa8aced4a3465fba36aababbfd18da b/assets/emotes/emotesv2_a2aa8aced4a3465fba36aababbfd18da Binary files differnew file mode 100644 index 00000000..171b8b61 --- /dev/null +++ b/assets/emotes/emotesv2_a2aa8aced4a3465fba36aababbfd18da diff --git a/assets/emotes/emotesv2_a2daa9b241b34608906b6f00f83d4ea0 b/assets/emotes/emotesv2_a2daa9b241b34608906b6f00f83d4ea0 Binary files differnew file mode 100644 index 00000000..22a677e5 --- /dev/null +++ b/assets/emotes/emotesv2_a2daa9b241b34608906b6f00f83d4ea0 diff --git a/assets/emotes/emotesv2_a39d2bff69ce426e92213f2b8685d710 b/assets/emotes/emotesv2_a39d2bff69ce426e92213f2b8685d710 Binary files differnew file mode 100644 index 00000000..bd7096e3 --- /dev/null +++ b/assets/emotes/emotesv2_a39d2bff69ce426e92213f2b8685d710 diff --git a/assets/emotes/emotesv2_a41d9735bf524aa2bcd81171327e7376 b/assets/emotes/emotesv2_a41d9735bf524aa2bcd81171327e7376 Binary files differnew file mode 100644 index 00000000..796f509f --- /dev/null +++ b/assets/emotes/emotesv2_a41d9735bf524aa2bcd81171327e7376 diff --git a/assets/emotes/emotesv2_a43387948f1241f78a30c33fba4f5dad b/assets/emotes/emotesv2_a43387948f1241f78a30c33fba4f5dad Binary files differnew file mode 100644 index 00000000..0cefef8c --- /dev/null +++ b/assets/emotes/emotesv2_a43387948f1241f78a30c33fba4f5dad diff --git a/assets/emotes/emotesv2_a439fec7855b473681dc8f797f1693dd b/assets/emotes/emotesv2_a439fec7855b473681dc8f797f1693dd Binary files differnew file mode 100644 index 00000000..d1f4bd67 --- /dev/null +++ b/assets/emotes/emotesv2_a439fec7855b473681dc8f797f1693dd diff --git a/assets/emotes/emotesv2_a5e4b28e4ee44206a6aa3ee557b35486 b/assets/emotes/emotesv2_a5e4b28e4ee44206a6aa3ee557b35486 Binary files differnew file mode 100644 index 00000000..59706133 --- /dev/null +++ b/assets/emotes/emotesv2_a5e4b28e4ee44206a6aa3ee557b35486 diff --git a/assets/emotes/emotesv2_a859e01f62e242078bfb1002ce291e3b b/assets/emotes/emotesv2_a859e01f62e242078bfb1002ce291e3b Binary files differnew file mode 100644 index 00000000..2bc09ea5 --- /dev/null +++ b/assets/emotes/emotesv2_a859e01f62e242078bfb1002ce291e3b diff --git a/assets/emotes/emotesv2_a8661b1e6169427ca02fccaac2928837 b/assets/emotes/emotesv2_a8661b1e6169427ca02fccaac2928837 Binary files differnew file mode 100644 index 00000000..24b2e97d --- /dev/null +++ b/assets/emotes/emotesv2_a8661b1e6169427ca02fccaac2928837 diff --git a/assets/emotes/emotesv2_a97550bc6cb0478e9c9a76724e7847ed b/assets/emotes/emotesv2_a97550bc6cb0478e9c9a76724e7847ed Binary files differnew file mode 100644 index 00000000..574f543f --- /dev/null +++ b/assets/emotes/emotesv2_a97550bc6cb0478e9c9a76724e7847ed diff --git a/assets/emotes/emotesv2_aa0db43abbb34a8ba19e22242283a172 b/assets/emotes/emotesv2_aa0db43abbb34a8ba19e22242283a172 Binary files differnew file mode 100644 index 00000000..297e037a --- /dev/null +++ b/assets/emotes/emotesv2_aa0db43abbb34a8ba19e22242283a172 diff --git a/assets/emotes/emotesv2_ab6a3b8cc3794feeaa65ddec04ecd630 b/assets/emotes/emotesv2_ab6a3b8cc3794feeaa65ddec04ecd630 Binary files differnew file mode 100644 index 00000000..cb453e24 --- /dev/null +++ b/assets/emotes/emotesv2_ab6a3b8cc3794feeaa65ddec04ecd630 diff --git a/assets/emotes/emotesv2_aba4cea4561b4828996cd6891db7911c b/assets/emotes/emotesv2_aba4cea4561b4828996cd6891db7911c Binary files differnew file mode 100644 index 00000000..a7096f76 --- /dev/null +++ b/assets/emotes/emotesv2_aba4cea4561b4828996cd6891db7911c diff --git a/assets/emotes/emotesv2_ae2aab1595f14c52a2eb259a4540d695 b/assets/emotes/emotesv2_ae2aab1595f14c52a2eb259a4540d695 Binary files differnew file mode 100644 index 00000000..a03cb8bf --- /dev/null +++ b/assets/emotes/emotesv2_ae2aab1595f14c52a2eb259a4540d695 diff --git a/assets/emotes/emotesv2_ae35f69d12e94ad8b6f861d9ddac93ea b/assets/emotes/emotesv2_ae35f69d12e94ad8b6f861d9ddac93ea Binary files differnew file mode 100644 index 00000000..07906a16 --- /dev/null +++ b/assets/emotes/emotesv2_ae35f69d12e94ad8b6f861d9ddac93ea diff --git a/assets/emotes/emotesv2_aeaad1bf57ed41349ec000954c82c416 b/assets/emotes/emotesv2_aeaad1bf57ed41349ec000954c82c416 Binary files differnew file mode 100644 index 00000000..770d16df --- /dev/null +++ b/assets/emotes/emotesv2_aeaad1bf57ed41349ec000954c82c416 diff --git a/assets/emotes/emotesv2_aebf67a681334939baf6fb54b31704de b/assets/emotes/emotesv2_aebf67a681334939baf6fb54b31704de Binary files differnew file mode 100644 index 00000000..65396001 --- /dev/null +++ b/assets/emotes/emotesv2_aebf67a681334939baf6fb54b31704de diff --git a/assets/emotes/emotesv2_af01dc502bc04dfe9b1f4547d649555d b/assets/emotes/emotesv2_af01dc502bc04dfe9b1f4547d649555d Binary files differnew file mode 100644 index 00000000..328947c5 --- /dev/null +++ b/assets/emotes/emotesv2_af01dc502bc04dfe9b1f4547d649555d diff --git a/assets/emotes/emotesv2_afb231ade7b84be8b91d080231c20b63 b/assets/emotes/emotesv2_afb231ade7b84be8b91d080231c20b63 Binary files differnew file mode 100644 index 00000000..dbe0bda7 --- /dev/null +++ b/assets/emotes/emotesv2_afb231ade7b84be8b91d080231c20b63 diff --git a/assets/emotes/emotesv2_b0a25a30fd0340a6acefdc59848d3f66 b/assets/emotes/emotesv2_b0a25a30fd0340a6acefdc59848d3f66 Binary files differnew file mode 100644 index 00000000..0283ecdb --- /dev/null +++ b/assets/emotes/emotesv2_b0a25a30fd0340a6acefdc59848d3f66 diff --git a/assets/emotes/emotesv2_b1003eb6f8ad4275ba18fddb0fb5f36d b/assets/emotes/emotesv2_b1003eb6f8ad4275ba18fddb0fb5f36d Binary files differnew file mode 100644 index 00000000..08df6a0c --- /dev/null +++ b/assets/emotes/emotesv2_b1003eb6f8ad4275ba18fddb0fb5f36d diff --git a/assets/emotes/emotesv2_b14f9e00c2ce41cea1a74d08dea2b392 b/assets/emotes/emotesv2_b14f9e00c2ce41cea1a74d08dea2b392 Binary files differnew file mode 100644 index 00000000..e9fdbb5f --- /dev/null +++ b/assets/emotes/emotesv2_b14f9e00c2ce41cea1a74d08dea2b392 diff --git a/assets/emotes/emotesv2_b15a8f0ff639401eb1cc4a70f8b33dcf b/assets/emotes/emotesv2_b15a8f0ff639401eb1cc4a70f8b33dcf Binary files differnew file mode 100644 index 00000000..9052dfb3 --- /dev/null +++ b/assets/emotes/emotesv2_b15a8f0ff639401eb1cc4a70f8b33dcf diff --git a/assets/emotes/emotesv2_b43ce8897c5249b79ab08c352a0d9f5e b/assets/emotes/emotesv2_b43ce8897c5249b79ab08c352a0d9f5e Binary files differnew file mode 100644 index 00000000..93a7cf58 --- /dev/null +++ b/assets/emotes/emotesv2_b43ce8897c5249b79ab08c352a0d9f5e diff --git a/assets/emotes/emotesv2_b6285d5ff45a436bb84708e0207bab81 b/assets/emotes/emotesv2_b6285d5ff45a436bb84708e0207bab81 Binary files differnew file mode 100644 index 00000000..3e2286a8 --- /dev/null +++ b/assets/emotes/emotesv2_b6285d5ff45a436bb84708e0207bab81 diff --git a/assets/emotes/emotesv2_b6ae9db72ba241d59bd01e95c3089c3c b/assets/emotes/emotesv2_b6ae9db72ba241d59bd01e95c3089c3c Binary files differnew file mode 100644 index 00000000..52fe8778 --- /dev/null +++ b/assets/emotes/emotesv2_b6ae9db72ba241d59bd01e95c3089c3c diff --git a/assets/emotes/emotesv2_b72fd3d6129c4dea8af72a3a20d80494 b/assets/emotes/emotesv2_b72fd3d6129c4dea8af72a3a20d80494 Binary files differnew file mode 100644 index 00000000..07159e29 --- /dev/null +++ b/assets/emotes/emotesv2_b72fd3d6129c4dea8af72a3a20d80494 diff --git a/assets/emotes/emotesv2_b805a1050038436a83169e5280c9e7fc b/assets/emotes/emotesv2_b805a1050038436a83169e5280c9e7fc Binary files differnew file mode 100644 index 00000000..220a8106 --- /dev/null +++ b/assets/emotes/emotesv2_b805a1050038436a83169e5280c9e7fc diff --git a/assets/emotes/emotesv2_b815cf0140e047b7808c811715ec63e4 b/assets/emotes/emotesv2_b815cf0140e047b7808c811715ec63e4 Binary files differnew file mode 100644 index 00000000..a3c98bbf --- /dev/null +++ b/assets/emotes/emotesv2_b815cf0140e047b7808c811715ec63e4 diff --git a/assets/emotes/emotesv2_b86fe2576197436c8840b50cf48e9ac9 b/assets/emotes/emotesv2_b86fe2576197436c8840b50cf48e9ac9 Binary files differnew file mode 100644 index 00000000..1253562c --- /dev/null +++ b/assets/emotes/emotesv2_b86fe2576197436c8840b50cf48e9ac9 diff --git a/assets/emotes/emotesv2_b8a91d95fc4b40ccb2dac3bed03593b5 b/assets/emotes/emotesv2_b8a91d95fc4b40ccb2dac3bed03593b5 Binary files differnew file mode 100644 index 00000000..1028510c --- /dev/null +++ b/assets/emotes/emotesv2_b8a91d95fc4b40ccb2dac3bed03593b5 diff --git a/assets/emotes/emotesv2_b8d7036477044b80b893a55d14f32373 b/assets/emotes/emotesv2_b8d7036477044b80b893a55d14f32373 Binary files differnew file mode 100644 index 00000000..0e1a4763 --- /dev/null +++ b/assets/emotes/emotesv2_b8d7036477044b80b893a55d14f32373 diff --git a/assets/emotes/emotesv2_b914697c0d4041ecba906fa112e8a0e9 b/assets/emotes/emotesv2_b914697c0d4041ecba906fa112e8a0e9 Binary files differnew file mode 100644 index 00000000..7b346b1b --- /dev/null +++ b/assets/emotes/emotesv2_b914697c0d4041ecba906fa112e8a0e9 diff --git a/assets/emotes/emotesv2_b96b2a89b5824c3b8651446418deaa5b b/assets/emotes/emotesv2_b96b2a89b5824c3b8651446418deaa5b Binary files differnew file mode 100644 index 00000000..483ed25a --- /dev/null +++ b/assets/emotes/emotesv2_b96b2a89b5824c3b8651446418deaa5b diff --git a/assets/emotes/emotesv2_ba495d150a3b47f883944ecec9251c8f b/assets/emotes/emotesv2_ba495d150a3b47f883944ecec9251c8f Binary files differnew file mode 100644 index 00000000..f7d52026 --- /dev/null +++ b/assets/emotes/emotesv2_ba495d150a3b47f883944ecec9251c8f diff --git a/assets/emotes/emotesv2_bc2f44a7844040eebdfdb68443c64b32 b/assets/emotes/emotesv2_bc2f44a7844040eebdfdb68443c64b32 Binary files differnew file mode 100644 index 00000000..72c8f730 --- /dev/null +++ b/assets/emotes/emotesv2_bc2f44a7844040eebdfdb68443c64b32 diff --git a/assets/emotes/emotesv2_bcd077bbac71449f980047a4bf439e43 b/assets/emotes/emotesv2_bcd077bbac71449f980047a4bf439e43 Binary files differnew file mode 100644 index 00000000..a16f584e --- /dev/null +++ b/assets/emotes/emotesv2_bcd077bbac71449f980047a4bf439e43 diff --git a/assets/emotes/emotesv2_bcef669a36d3437ba5ba8801dfadafd7 b/assets/emotes/emotesv2_bcef669a36d3437ba5ba8801dfadafd7 Binary files differnew file mode 100644 index 00000000..932de697 --- /dev/null +++ b/assets/emotes/emotesv2_bcef669a36d3437ba5ba8801dfadafd7 diff --git a/assets/emotes/emotesv2_c10146643c364881b52cf61cbc7e852c b/assets/emotes/emotesv2_c10146643c364881b52cf61cbc7e852c Binary files differnew file mode 100644 index 00000000..1d8f33ff --- /dev/null +++ b/assets/emotes/emotesv2_c10146643c364881b52cf61cbc7e852c diff --git a/assets/emotes/emotesv2_c1e4f7725bdc4c15aac2b14dd71cb6f4 b/assets/emotes/emotesv2_c1e4f7725bdc4c15aac2b14dd71cb6f4 Binary files differnew file mode 100644 index 00000000..4e2abc11 --- /dev/null +++ b/assets/emotes/emotesv2_c1e4f7725bdc4c15aac2b14dd71cb6f4 diff --git a/assets/emotes/emotesv2_c2524e05d8c94909a13ae5428cfab66c b/assets/emotes/emotesv2_c2524e05d8c94909a13ae5428cfab66c Binary files differnew file mode 100644 index 00000000..f32598a2 --- /dev/null +++ b/assets/emotes/emotesv2_c2524e05d8c94909a13ae5428cfab66c diff --git a/assets/emotes/emotesv2_c4297efd1428404d907bdaef9408c5be b/assets/emotes/emotesv2_c4297efd1428404d907bdaef9408c5be Binary files differnew file mode 100644 index 00000000..26af573a --- /dev/null +++ b/assets/emotes/emotesv2_c4297efd1428404d907bdaef9408c5be diff --git a/assets/emotes/emotesv2_c59ad2008b3e4746b2b5f591faf1f042 b/assets/emotes/emotesv2_c59ad2008b3e4746b2b5f591faf1f042 Binary files differnew file mode 100644 index 00000000..6ce1c324 --- /dev/null +++ b/assets/emotes/emotesv2_c59ad2008b3e4746b2b5f591faf1f042 diff --git a/assets/emotes/emotesv2_c5e17de08a2e4cb688764d6f7cc72691 b/assets/emotes/emotesv2_c5e17de08a2e4cb688764d6f7cc72691 Binary files differnew file mode 100644 index 00000000..736fc012 --- /dev/null +++ b/assets/emotes/emotesv2_c5e17de08a2e4cb688764d6f7cc72691 diff --git a/assets/emotes/emotesv2_c7760d8993db4545b8f592f6716cdff1 b/assets/emotes/emotesv2_c7760d8993db4545b8f592f6716cdff1 Binary files differnew file mode 100644 index 00000000..0717f6b3 --- /dev/null +++ b/assets/emotes/emotesv2_c7760d8993db4545b8f592f6716cdff1 diff --git a/assets/emotes/emotesv2_c7fb4e9b8c8d450ab1ecb8b9928f4c5f b/assets/emotes/emotesv2_c7fb4e9b8c8d450ab1ecb8b9928f4c5f Binary files differnew file mode 100644 index 00000000..f4bc38e9 --- /dev/null +++ b/assets/emotes/emotesv2_c7fb4e9b8c8d450ab1ecb8b9928f4c5f diff --git a/assets/emotes/emotesv2_c817be650cb94acf981ae430fb0a067e b/assets/emotes/emotesv2_c817be650cb94acf981ae430fb0a067e Binary files differnew file mode 100644 index 00000000..aae88300 --- /dev/null +++ b/assets/emotes/emotesv2_c817be650cb94acf981ae430fb0a067e diff --git a/assets/emotes/emotesv2_c9f4ba1ebad14edb842c71a76eb22058 b/assets/emotes/emotesv2_c9f4ba1ebad14edb842c71a76eb22058 Binary files differnew file mode 100644 index 00000000..27bf613a --- /dev/null +++ b/assets/emotes/emotesv2_c9f4ba1ebad14edb842c71a76eb22058 diff --git a/assets/emotes/emotesv2_ca4747f9419a48fd8466c421a1448d52 b/assets/emotes/emotesv2_ca4747f9419a48fd8466c421a1448d52 Binary files differnew file mode 100644 index 00000000..e5cfde38 --- /dev/null +++ b/assets/emotes/emotesv2_ca4747f9419a48fd8466c421a1448d52 diff --git a/assets/emotes/emotesv2_cb17fcc22a1e4952893c09051d7230ad b/assets/emotes/emotesv2_cb17fcc22a1e4952893c09051d7230ad Binary files differnew file mode 100644 index 00000000..4e590394 --- /dev/null +++ b/assets/emotes/emotesv2_cb17fcc22a1e4952893c09051d7230ad diff --git a/assets/emotes/emotesv2_cb977a2198cc477e8d87040dbc074e04 b/assets/emotes/emotesv2_cb977a2198cc477e8d87040dbc074e04 Binary files differnew file mode 100644 index 00000000..35e8f9e5 --- /dev/null +++ b/assets/emotes/emotesv2_cb977a2198cc477e8d87040dbc074e04 diff --git a/assets/emotes/emotesv2_cc1244310ec64345b621b427a64b9ff0 b/assets/emotes/emotesv2_cc1244310ec64345b621b427a64b9ff0 Binary files differnew file mode 100644 index 00000000..54c85b9e --- /dev/null +++ b/assets/emotes/emotesv2_cc1244310ec64345b621b427a64b9ff0 diff --git a/assets/emotes/emotesv2_cc1563a19eaf4518a93326208de941d8 b/assets/emotes/emotesv2_cc1563a19eaf4518a93326208de941d8 Binary files differnew file mode 100644 index 00000000..2dab3f3a --- /dev/null +++ b/assets/emotes/emotesv2_cc1563a19eaf4518a93326208de941d8 diff --git a/assets/emotes/emotesv2_cc4bae3dd6004ef8a668618d10226f34 b/assets/emotes/emotesv2_cc4bae3dd6004ef8a668618d10226f34 Binary files differnew file mode 100644 index 00000000..ad368698 --- /dev/null +++ b/assets/emotes/emotesv2_cc4bae3dd6004ef8a668618d10226f34 diff --git a/assets/emotes/emotesv2_cc58b1f534234a56b52fee76cd0b093d b/assets/emotes/emotesv2_cc58b1f534234a56b52fee76cd0b093d Binary files differnew file mode 100644 index 00000000..b6fb5d19 --- /dev/null +++ b/assets/emotes/emotesv2_cc58b1f534234a56b52fee76cd0b093d diff --git a/assets/emotes/emotesv2_cca96ad5b2be47d0bd59cd7dc160994a b/assets/emotes/emotesv2_cca96ad5b2be47d0bd59cd7dc160994a Binary files differnew file mode 100644 index 00000000..1411ce36 --- /dev/null +++ b/assets/emotes/emotesv2_cca96ad5b2be47d0bd59cd7dc160994a diff --git a/assets/emotes/emotesv2_ce44ef87650443c79061723d9368d611 b/assets/emotes/emotesv2_ce44ef87650443c79061723d9368d611 Binary files differnew file mode 100644 index 00000000..bab0c22d --- /dev/null +++ b/assets/emotes/emotesv2_ce44ef87650443c79061723d9368d611 diff --git a/assets/emotes/emotesv2_ceaff4832c4a44b9a77dcc2c74836c71 b/assets/emotes/emotesv2_ceaff4832c4a44b9a77dcc2c74836c71 Binary files differnew file mode 100644 index 00000000..678f6bcf --- /dev/null +++ b/assets/emotes/emotesv2_ceaff4832c4a44b9a77dcc2c74836c71 diff --git a/assets/emotes/emotesv2_cf162aa48e9c4082bb9a6012881db79b b/assets/emotes/emotesv2_cf162aa48e9c4082bb9a6012881db79b Binary files differnew file mode 100644 index 00000000..7b82c6a1 --- /dev/null +++ b/assets/emotes/emotesv2_cf162aa48e9c4082bb9a6012881db79b diff --git a/assets/emotes/emotesv2_cf9337c7743e4e7ba59e83b5cdde701d b/assets/emotes/emotesv2_cf9337c7743e4e7ba59e83b5cdde701d Binary files differnew file mode 100644 index 00000000..4603bf53 --- /dev/null +++ b/assets/emotes/emotesv2_cf9337c7743e4e7ba59e83b5cdde701d diff --git a/assets/emotes/emotesv2_d01a9536e5e8435b9f290f03bf6bde66 b/assets/emotes/emotesv2_d01a9536e5e8435b9f290f03bf6bde66 Binary files differnew file mode 100644 index 00000000..ce50f2af --- /dev/null +++ b/assets/emotes/emotesv2_d01a9536e5e8435b9f290f03bf6bde66 diff --git a/assets/emotes/emotesv2_d0d2ab28473d40efa93139d259a5dd43 b/assets/emotes/emotesv2_d0d2ab28473d40efa93139d259a5dd43 Binary files differnew file mode 100644 index 00000000..15f8525f --- /dev/null +++ b/assets/emotes/emotesv2_d0d2ab28473d40efa93139d259a5dd43 diff --git a/assets/emotes/emotesv2_d12afe51f6cb40478525b38e5a86e4e6 b/assets/emotes/emotesv2_d12afe51f6cb40478525b38e5a86e4e6 Binary files differnew file mode 100644 index 00000000..97008679 --- /dev/null +++ b/assets/emotes/emotesv2_d12afe51f6cb40478525b38e5a86e4e6 diff --git a/assets/emotes/emotesv2_d1419b75bec14b51a65c3c18b4f63b6b b/assets/emotes/emotesv2_d1419b75bec14b51a65c3c18b4f63b6b Binary files differnew file mode 100644 index 00000000..490d4a7b --- /dev/null +++ b/assets/emotes/emotesv2_d1419b75bec14b51a65c3c18b4f63b6b diff --git a/assets/emotes/emotesv2_d25bb3397e224ad4ae183c6e1e31b43c b/assets/emotes/emotesv2_d25bb3397e224ad4ae183c6e1e31b43c Binary files differnew file mode 100644 index 00000000..048e0ffd --- /dev/null +++ b/assets/emotes/emotesv2_d25bb3397e224ad4ae183c6e1e31b43c diff --git a/assets/emotes/emotesv2_d351c5d5e9084402b30bc39eaa3d92ae b/assets/emotes/emotesv2_d351c5d5e9084402b30bc39eaa3d92ae Binary files differnew file mode 100644 index 00000000..a714ad9c --- /dev/null +++ b/assets/emotes/emotesv2_d351c5d5e9084402b30bc39eaa3d92ae diff --git a/assets/emotes/emotesv2_d659f9f1b4d5497483c3d18ec0544343 b/assets/emotes/emotesv2_d659f9f1b4d5497483c3d18ec0544343 Binary files differnew file mode 100644 index 00000000..cb3bce4b --- /dev/null +++ b/assets/emotes/emotesv2_d659f9f1b4d5497483c3d18ec0544343 diff --git a/assets/emotes/emotesv2_d6a3268792a64e3aac81101ff5bb7d7a b/assets/emotes/emotesv2_d6a3268792a64e3aac81101ff5bb7d7a Binary files differnew file mode 100644 index 00000000..6e60fc25 --- /dev/null +++ b/assets/emotes/emotesv2_d6a3268792a64e3aac81101ff5bb7d7a diff --git a/assets/emotes/emotesv2_d8037bde20e24013bc2aa09188ee175e b/assets/emotes/emotesv2_d8037bde20e24013bc2aa09188ee175e Binary files differnew file mode 100644 index 00000000..c7ac86ba --- /dev/null +++ b/assets/emotes/emotesv2_d8037bde20e24013bc2aa09188ee175e diff --git a/assets/emotes/emotesv2_d86b5553a51a43c4acb8628b98030882 b/assets/emotes/emotesv2_d86b5553a51a43c4acb8628b98030882 Binary files differnew file mode 100644 index 00000000..92cb5e2b --- /dev/null +++ b/assets/emotes/emotesv2_d86b5553a51a43c4acb8628b98030882 diff --git a/assets/emotes/emotesv2_d92aa17179ba4eaea5fb58424932e2ab b/assets/emotes/emotesv2_d92aa17179ba4eaea5fb58424932e2ab Binary files differnew file mode 100644 index 00000000..1a56d5ae --- /dev/null +++ b/assets/emotes/emotesv2_d92aa17179ba4eaea5fb58424932e2ab diff --git a/assets/emotes/emotesv2_d970cfcb4e9d4424ad386275f354f710 b/assets/emotes/emotesv2_d970cfcb4e9d4424ad386275f354f710 Binary files differnew file mode 100644 index 00000000..44c70cdb --- /dev/null +++ b/assets/emotes/emotesv2_d970cfcb4e9d4424ad386275f354f710 diff --git a/assets/emotes/emotesv2_d997a846522c49fb897fd04ab602d400 b/assets/emotes/emotesv2_d997a846522c49fb897fd04ab602d400 Binary files differnew file mode 100644 index 00000000..0ab1ee72 --- /dev/null +++ b/assets/emotes/emotesv2_d997a846522c49fb897fd04ab602d400 diff --git a/assets/emotes/emotesv2_d9b0ba80d3da483b9413d540f8223897 b/assets/emotes/emotesv2_d9b0ba80d3da483b9413d540f8223897 Binary files differnew file mode 100644 index 00000000..e41aac7e --- /dev/null +++ b/assets/emotes/emotesv2_d9b0ba80d3da483b9413d540f8223897 diff --git a/assets/emotes/emotesv2_d9beaba77b1a4a2bb1a60f5026d6d203 b/assets/emotes/emotesv2_d9beaba77b1a4a2bb1a60f5026d6d203 Binary files differnew file mode 100644 index 00000000..33401263 --- /dev/null +++ b/assets/emotes/emotesv2_d9beaba77b1a4a2bb1a60f5026d6d203 diff --git a/assets/emotes/emotesv2_da18fbc0476a409ab9b9993dd354b1ce b/assets/emotes/emotesv2_da18fbc0476a409ab9b9993dd354b1ce Binary files differnew file mode 100644 index 00000000..0428bf84 --- /dev/null +++ b/assets/emotes/emotesv2_da18fbc0476a409ab9b9993dd354b1ce diff --git a/assets/emotes/emotesv2_da1b30dd1dd2434bb25aa3387ec519f2 b/assets/emotes/emotesv2_da1b30dd1dd2434bb25aa3387ec519f2 Binary files differnew file mode 100644 index 00000000..8cc936dc --- /dev/null +++ b/assets/emotes/emotesv2_da1b30dd1dd2434bb25aa3387ec519f2 diff --git a/assets/emotes/emotesv2_dae8bd6237ce415b8fcecf152b1935d4 b/assets/emotes/emotesv2_dae8bd6237ce415b8fcecf152b1935d4 Binary files differnew file mode 100644 index 00000000..97452f12 --- /dev/null +++ b/assets/emotes/emotesv2_dae8bd6237ce415b8fcecf152b1935d4 diff --git a/assets/emotes/emotesv2_db14210d9e5c49c98052016c215851d3 b/assets/emotes/emotesv2_db14210d9e5c49c98052016c215851d3 Binary files differnew file mode 100644 index 00000000..5f751b95 --- /dev/null +++ b/assets/emotes/emotesv2_db14210d9e5c49c98052016c215851d3 diff --git a/assets/emotes/emotesv2_dc26a4c918d64b7aafec8f851880fa22 b/assets/emotes/emotesv2_dc26a4c918d64b7aafec8f851880fa22 Binary files differnew file mode 100644 index 00000000..808a90a5 --- /dev/null +++ b/assets/emotes/emotesv2_dc26a4c918d64b7aafec8f851880fa22 diff --git a/assets/emotes/emotesv2_dd46165a1b174154a5fc9c41b4b21c9b b/assets/emotes/emotesv2_dd46165a1b174154a5fc9c41b4b21c9b Binary files differnew file mode 100644 index 00000000..f620acf6 --- /dev/null +++ b/assets/emotes/emotesv2_dd46165a1b174154a5fc9c41b4b21c9b diff --git a/assets/emotes/emotesv2_dd7976287e824779bd25fe01fde35450 b/assets/emotes/emotesv2_dd7976287e824779bd25fe01fde35450 Binary files differnew file mode 100644 index 00000000..847226cb --- /dev/null +++ b/assets/emotes/emotesv2_dd7976287e824779bd25fe01fde35450 diff --git a/assets/emotes/emotesv2_de1e958d716f4445ba071608903118ac b/assets/emotes/emotesv2_de1e958d716f4445ba071608903118ac Binary files differnew file mode 100644 index 00000000..64f9b0a4 --- /dev/null +++ b/assets/emotes/emotesv2_de1e958d716f4445ba071608903118ac diff --git a/assets/emotes/emotesv2_df3c519594b34023a9b6c39351cde471 b/assets/emotes/emotesv2_df3c519594b34023a9b6c39351cde471 Binary files differnew file mode 100644 index 00000000..b15656f9 --- /dev/null +++ b/assets/emotes/emotesv2_df3c519594b34023a9b6c39351cde471 diff --git a/assets/emotes/emotesv2_dfa6f2de3f2d409c8047cee6916177ab b/assets/emotes/emotesv2_dfa6f2de3f2d409c8047cee6916177ab Binary files differnew file mode 100644 index 00000000..079b6dcd --- /dev/null +++ b/assets/emotes/emotesv2_dfa6f2de3f2d409c8047cee6916177ab diff --git a/assets/emotes/emotesv2_e0d815be522d4cb7981901b0ad24fc0c b/assets/emotes/emotesv2_e0d815be522d4cb7981901b0ad24fc0c Binary files differnew file mode 100644 index 00000000..dc87de59 --- /dev/null +++ b/assets/emotes/emotesv2_e0d815be522d4cb7981901b0ad24fc0c diff --git a/assets/emotes/emotesv2_e28989d3765a4fe09eb00b485c4b21d3 b/assets/emotes/emotesv2_e28989d3765a4fe09eb00b485c4b21d3 Binary files differnew file mode 100644 index 00000000..f0d84125 --- /dev/null +++ b/assets/emotes/emotesv2_e28989d3765a4fe09eb00b485c4b21d3 diff --git a/assets/emotes/emotesv2_e3936760c213434f9a2274af69b86d52 b/assets/emotes/emotesv2_e3936760c213434f9a2274af69b86d52 Binary files differnew file mode 100644 index 00000000..1e6fc1bd --- /dev/null +++ b/assets/emotes/emotesv2_e3936760c213434f9a2274af69b86d52 diff --git a/assets/emotes/emotesv2_e4cc68bdd50f4b5fa817a39c1368731f b/assets/emotes/emotesv2_e4cc68bdd50f4b5fa817a39c1368731f Binary files differnew file mode 100644 index 00000000..cabc6eac --- /dev/null +++ b/assets/emotes/emotesv2_e4cc68bdd50f4b5fa817a39c1368731f diff --git a/assets/emotes/emotesv2_e4e88b54d26b49f698566e5489fdcfe4 b/assets/emotes/emotesv2_e4e88b54d26b49f698566e5489fdcfe4 Binary files differnew file mode 100644 index 00000000..55d3926d --- /dev/null +++ b/assets/emotes/emotesv2_e4e88b54d26b49f698566e5489fdcfe4 diff --git a/assets/emotes/emotesv2_e5ee44dde6564706a59ff4ecb3433df9 b/assets/emotes/emotesv2_e5ee44dde6564706a59ff4ecb3433df9 Binary files differnew file mode 100644 index 00000000..a2ebf40a --- /dev/null +++ b/assets/emotes/emotesv2_e5ee44dde6564706a59ff4ecb3433df9 diff --git a/assets/emotes/emotesv2_e691268bfafa486992762bec2441202a b/assets/emotes/emotesv2_e691268bfafa486992762bec2441202a Binary files differnew file mode 100644 index 00000000..1af72f0e --- /dev/null +++ b/assets/emotes/emotesv2_e691268bfafa486992762bec2441202a diff --git a/assets/emotes/emotesv2_e6afb65a90c24504b523a773874d12e1 b/assets/emotes/emotesv2_e6afb65a90c24504b523a773874d12e1 Binary files differnew file mode 100644 index 00000000..34de5e6a --- /dev/null +++ b/assets/emotes/emotesv2_e6afb65a90c24504b523a773874d12e1 diff --git a/assets/emotes/emotesv2_e6f3731ff902411299cabaa712eea353 b/assets/emotes/emotesv2_e6f3731ff902411299cabaa712eea353 Binary files differnew file mode 100644 index 00000000..02ec6bc5 --- /dev/null +++ b/assets/emotes/emotesv2_e6f3731ff902411299cabaa712eea353 diff --git a/assets/emotes/emotesv2_e7a36a273ffb4e57a33f226f6112800d b/assets/emotes/emotesv2_e7a36a273ffb4e57a33f226f6112800d Binary files differnew file mode 100644 index 00000000..1e5fa01e --- /dev/null +++ b/assets/emotes/emotesv2_e7a36a273ffb4e57a33f226f6112800d diff --git a/assets/emotes/emotesv2_e8503f302ad9497a99000e01b7f3b8b0 b/assets/emotes/emotesv2_e8503f302ad9497a99000e01b7f3b8b0 Binary files differnew file mode 100644 index 00000000..ff571004 --- /dev/null +++ b/assets/emotes/emotesv2_e8503f302ad9497a99000e01b7f3b8b0 diff --git a/assets/emotes/emotesv2_e9a0023b833e4c13b215c41f42f5672b b/assets/emotes/emotesv2_e9a0023b833e4c13b215c41f42f5672b Binary files differnew file mode 100644 index 00000000..7e514217 --- /dev/null +++ b/assets/emotes/emotesv2_e9a0023b833e4c13b215c41f42f5672b diff --git a/assets/emotes/emotesv2_eaafcfa9a7e746c8a349d3992da4ee3e b/assets/emotes/emotesv2_eaafcfa9a7e746c8a349d3992da4ee3e Binary files differnew file mode 100644 index 00000000..3db1c06b --- /dev/null +++ b/assets/emotes/emotesv2_eaafcfa9a7e746c8a349d3992da4ee3e diff --git a/assets/emotes/emotesv2_ec03f0b48fb74f16aca015c5c15e38f1 b/assets/emotes/emotesv2_ec03f0b48fb74f16aca015c5c15e38f1 Binary files differnew file mode 100644 index 00000000..d28fcba8 --- /dev/null +++ b/assets/emotes/emotesv2_ec03f0b48fb74f16aca015c5c15e38f1 diff --git a/assets/emotes/emotesv2_ec174a3989c645dd8623da27cdde7b73 b/assets/emotes/emotesv2_ec174a3989c645dd8623da27cdde7b73 Binary files differnew file mode 100644 index 00000000..8471307d --- /dev/null +++ b/assets/emotes/emotesv2_ec174a3989c645dd8623da27cdde7b73 diff --git a/assets/emotes/emotesv2_ed0b1401df3d452a83a3d9d10828899d b/assets/emotes/emotesv2_ed0b1401df3d452a83a3d9d10828899d Binary files differnew file mode 100644 index 00000000..7df5e0c8 --- /dev/null +++ b/assets/emotes/emotesv2_ed0b1401df3d452a83a3d9d10828899d diff --git a/assets/emotes/emotesv2_ed166ec1ca4041dab9b057827e686741 b/assets/emotes/emotesv2_ed166ec1ca4041dab9b057827e686741 Binary files differnew file mode 100644 index 00000000..d8fcfa00 --- /dev/null +++ b/assets/emotes/emotesv2_ed166ec1ca4041dab9b057827e686741 diff --git a/assets/emotes/emotesv2_ed57b8d35a5a406ebfed0f53eed4466c b/assets/emotes/emotesv2_ed57b8d35a5a406ebfed0f53eed4466c Binary files differnew file mode 100644 index 00000000..261152fb --- /dev/null +++ b/assets/emotes/emotesv2_ed57b8d35a5a406ebfed0f53eed4466c diff --git a/assets/emotes/emotesv2_ee5b7067a65a49b8be0a2eda1c1a7d03 b/assets/emotes/emotesv2_ee5b7067a65a49b8be0a2eda1c1a7d03 Binary files differnew file mode 100644 index 00000000..e6531f14 --- /dev/null +++ b/assets/emotes/emotesv2_ee5b7067a65a49b8be0a2eda1c1a7d03 diff --git a/assets/emotes/emotesv2_eed4a31efd7544b39ede266baee73115 b/assets/emotes/emotesv2_eed4a31efd7544b39ede266baee73115 Binary files differnew file mode 100644 index 00000000..22e92df1 --- /dev/null +++ b/assets/emotes/emotesv2_eed4a31efd7544b39ede266baee73115 diff --git a/assets/emotes/emotesv2_eeecc537c43145f494d38a56dff16919 b/assets/emotes/emotesv2_eeecc537c43145f494d38a56dff16919 Binary files differnew file mode 100644 index 00000000..27c674fa --- /dev/null +++ b/assets/emotes/emotesv2_eeecc537c43145f494d38a56dff16919 diff --git a/assets/emotes/emotesv2_ef855e8769bf443cb28346970e1b8ebd b/assets/emotes/emotesv2_ef855e8769bf443cb28346970e1b8ebd Binary files differnew file mode 100644 index 00000000..36e59593 --- /dev/null +++ b/assets/emotes/emotesv2_ef855e8769bf443cb28346970e1b8ebd diff --git a/assets/emotes/emotesv2_f2160050c2ac44adbfaa851e162e8fc7 b/assets/emotes/emotesv2_f2160050c2ac44adbfaa851e162e8fc7 Binary files differnew file mode 100644 index 00000000..02a89ce0 --- /dev/null +++ b/assets/emotes/emotesv2_f2160050c2ac44adbfaa851e162e8fc7 diff --git a/assets/emotes/emotesv2_f2e3c56966434c33ab251383b47fc651 b/assets/emotes/emotesv2_f2e3c56966434c33ab251383b47fc651 Binary files differnew file mode 100644 index 00000000..6fcfe5ea --- /dev/null +++ b/assets/emotes/emotesv2_f2e3c56966434c33ab251383b47fc651 diff --git a/assets/emotes/emotesv2_f2eccffec4dc4b12b804ac07c787be4a b/assets/emotes/emotesv2_f2eccffec4dc4b12b804ac07c787be4a Binary files differnew file mode 100644 index 00000000..d9b98463 --- /dev/null +++ b/assets/emotes/emotesv2_f2eccffec4dc4b12b804ac07c787be4a diff --git a/assets/emotes/emotesv2_f3e53f09d0874f10b163eb26747af9a2 b/assets/emotes/emotesv2_f3e53f09d0874f10b163eb26747af9a2 Binary files differnew file mode 100644 index 00000000..242b13a6 --- /dev/null +++ b/assets/emotes/emotesv2_f3e53f09d0874f10b163eb26747af9a2 diff --git a/assets/emotes/emotesv2_f3ef5dedf97e4323818c7dc0cd8b5e1b b/assets/emotes/emotesv2_f3ef5dedf97e4323818c7dc0cd8b5e1b Binary files differnew file mode 100644 index 00000000..b81cb722 --- /dev/null +++ b/assets/emotes/emotesv2_f3ef5dedf97e4323818c7dc0cd8b5e1b diff --git a/assets/emotes/emotesv2_f3faa6ad7aec4936bea9ac9523a3bd34 b/assets/emotes/emotesv2_f3faa6ad7aec4936bea9ac9523a3bd34 Binary files differnew file mode 100644 index 00000000..0e5105ca --- /dev/null +++ b/assets/emotes/emotesv2_f3faa6ad7aec4936bea9ac9523a3bd34 diff --git a/assets/emotes/emotesv2_f4d56acaef634ceebf587b1fd39c8a8c b/assets/emotes/emotesv2_f4d56acaef634ceebf587b1fd39c8a8c Binary files differnew file mode 100644 index 00000000..0a81f12c --- /dev/null +++ b/assets/emotes/emotesv2_f4d56acaef634ceebf587b1fd39c8a8c diff --git a/assets/emotes/emotesv2_f5749d56658d44f788f345db3e1f6aa4 b/assets/emotes/emotesv2_f5749d56658d44f788f345db3e1f6aa4 Binary files differnew file mode 100644 index 00000000..10342a22 --- /dev/null +++ b/assets/emotes/emotesv2_f5749d56658d44f788f345db3e1f6aa4 diff --git a/assets/emotes/emotesv2_f6203bf938a5429ca692bfbcb8b2582c b/assets/emotes/emotesv2_f6203bf938a5429ca692bfbcb8b2582c Binary files differnew file mode 100644 index 00000000..d42d6fd2 --- /dev/null +++ b/assets/emotes/emotesv2_f6203bf938a5429ca692bfbcb8b2582c diff --git a/assets/emotes/emotesv2_f7eae8ef8221464b9c13018354e1cbdc b/assets/emotes/emotesv2_f7eae8ef8221464b9c13018354e1cbdc Binary files differnew file mode 100644 index 00000000..49c4bf8f --- /dev/null +++ b/assets/emotes/emotesv2_f7eae8ef8221464b9c13018354e1cbdc diff --git a/assets/emotes/emotesv2_f89596826e504be6ac6b2664aa87de63 b/assets/emotes/emotesv2_f89596826e504be6ac6b2664aa87de63 Binary files differnew file mode 100644 index 00000000..78806e38 --- /dev/null +++ b/assets/emotes/emotesv2_f89596826e504be6ac6b2664aa87de63 diff --git a/assets/emotes/emotesv2_f8c4b68f134d4273a488237949d1244e b/assets/emotes/emotesv2_f8c4b68f134d4273a488237949d1244e Binary files differnew file mode 100644 index 00000000..a234eb20 --- /dev/null +++ b/assets/emotes/emotesv2_f8c4b68f134d4273a488237949d1244e diff --git a/assets/emotes/emotesv2_fb61a9ec50d146fba2ef2926505ab58b b/assets/emotes/emotesv2_fb61a9ec50d146fba2ef2926505ab58b Binary files differnew file mode 100644 index 00000000..d771d621 --- /dev/null +++ b/assets/emotes/emotesv2_fb61a9ec50d146fba2ef2926505ab58b diff --git a/assets/emotes/emotesv2_fbd8e0e6e0594242b7916cf39b727d15 b/assets/emotes/emotesv2_fbd8e0e6e0594242b7916cf39b727d15 Binary files differnew file mode 100644 index 00000000..8c064106 --- /dev/null +++ b/assets/emotes/emotesv2_fbd8e0e6e0594242b7916cf39b727d15 diff --git a/assets/emotes/emotesv2_fbdeeb07569a4eb18c3d077fcbbbb40d b/assets/emotes/emotesv2_fbdeeb07569a4eb18c3d077fcbbbb40d Binary files differnew file mode 100644 index 00000000..2a6c3ce5 --- /dev/null +++ b/assets/emotes/emotesv2_fbdeeb07569a4eb18c3d077fcbbbb40d diff --git a/assets/emotes/emotesv2_fc0f8dffa6ea4fc690999b89c69c1ae9 b/assets/emotes/emotesv2_fc0f8dffa6ea4fc690999b89c69c1ae9 Binary files differnew file mode 100644 index 00000000..6fbdc680 --- /dev/null +++ b/assets/emotes/emotesv2_fc0f8dffa6ea4fc690999b89c69c1ae9 diff --git a/assets/emotes/emotesv2_fca9eca850ae45f699ac816a023e58c3 b/assets/emotes/emotesv2_fca9eca850ae45f699ac816a023e58c3 Binary files differnew file mode 100644 index 00000000..c1b20773 --- /dev/null +++ b/assets/emotes/emotesv2_fca9eca850ae45f699ac816a023e58c3 diff --git a/assets/emotes/emotesv2_fcca511b79d148a2b5737967f0755ef9 b/assets/emotes/emotesv2_fcca511b79d148a2b5737967f0755ef9 Binary files differnew file mode 100644 index 00000000..bb82010c --- /dev/null +++ b/assets/emotes/emotesv2_fcca511b79d148a2b5737967f0755ef9 diff --git a/assets/emotes/emotesv2_fcf84937bf434ebfa2a9fd2ae89046e0 b/assets/emotes/emotesv2_fcf84937bf434ebfa2a9fd2ae89046e0 Binary files differnew file mode 100644 index 00000000..bdddd432 --- /dev/null +++ b/assets/emotes/emotesv2_fcf84937bf434ebfa2a9fd2ae89046e0 diff --git a/assets/emotes/emotesv2_fd87dfd7b4cc429aa18c44b179299055 b/assets/emotes/emotesv2_fd87dfd7b4cc429aa18c44b179299055 Binary files differnew file mode 100644 index 00000000..2bed2058 --- /dev/null +++ b/assets/emotes/emotesv2_fd87dfd7b4cc429aa18c44b179299055 diff --git a/assets/emotes/emotesv2_fee0414deb3c4d5fa1dac47c94413820 b/assets/emotes/emotesv2_fee0414deb3c4d5fa1dac47c94413820 Binary files differnew file mode 100644 index 00000000..3bbed3bc --- /dev/null +++ b/assets/emotes/emotesv2_fee0414deb3c4d5fa1dac47c94413820 diff --git a/assets/emotes/emotesv2_ff7f334cdeec4019a78a537ee0ba969f b/assets/emotes/emotesv2_ff7f334cdeec4019a78a537ee0ba969f Binary files differnew file mode 100644 index 00000000..4672e3f3 --- /dev/null +++ b/assets/emotes/emotesv2_ff7f334cdeec4019a78a537ee0ba969f diff --git a/assets/emotes/emotesv2_ffb97a63f2344a479358abbe54e98f19 b/assets/emotes/emotesv2_ffb97a63f2344a479358abbe54e98f19 Binary files differnew file mode 100644 index 00000000..5d1d0e59 --- /dev/null +++ b/assets/emotes/emotesv2_ffb97a63f2344a479358abbe54e98f19 diff --git a/assets/glossary/2025-03-14.txt b/assets/glossary/2025-03-14.txt new file mode 100644 index 00000000..15f6624a --- /dev/null +++ b/assets/glossary/2025-03-14.txt @@ -0,0 +1 @@ +fighting nix. big moments here as we see local streamer find a gpu-based 0-day. gameboy buttons are all you need, according to local streamer. happy pi and STL day to those celebrating. tale of twins ♊ happens while GCP spikes as bigbookofbug enters chat.
\ No newline at end of file diff --git a/assets/glossary/2025-03-18.txt b/assets/glossary/2025-03-18.txt new file mode 100644 index 00000000..907ad71f --- /dev/null +++ b/assets/glossary/2025-03-18.txt @@ -0,0 +1 @@ +pixel makes an appearance, we get a classic quote from local crab about his shell, friend presents the poop parade, clonk denies the podcast rumors, and we delve into performant nix fuckery.
\ No newline at end of file diff --git a/assets/glossary/2025-03-21.txt b/assets/glossary/2025-03-21.txt new file mode 100644 index 00000000..a7af05ed --- /dev/null +++ b/assets/glossary/2025-03-21.txt @@ -0,0 +1 @@ +database debugging session, clonk did well today, victim of spider, spaghetti and meatballs, "i'M GAMING" cries unpaid passenger to concerned flight attendant, clonks new seersucker suit, never giving up but perhaps letting down; rick astley is "low key violent", clonk just wants to whip donuts in the parking lot, drop a "ohoho" on 'em, what even is a.. boost ?!
\ No newline at end of file diff --git a/assets/glossary/2025-03-25.txt b/assets/glossary/2025-03-25.txt new file mode 100644 index 00000000..2723da2b --- /dev/null +++ b/assets/glossary/2025-03-25.txt @@ -0,0 +1 @@ +lcolonq tries smoking redeem, hits a type error with tokens, many viewers gain unique boostv2 scores, effort post archive proves useful, streamer fails to back up, titscord emerges, january rolls in, board deliberates on welfare boosts, clonk needs maude to save the day, rollback happens, stocks take a hit, major error discovered, streamer steps away from compiler work for an unexpected venture.
\ No newline at end of file diff --git a/assets/glossary/2025-03-28.txt b/assets/glossary/2025-03-28.txt new file mode 100644 index 00000000..5d277c51 --- /dev/null +++ b/assets/glossary/2025-03-28.txt @@ -0,0 +1 @@ +the year of the yacht. clonk addresses the shareholders with “musk is.” backups are finally implemented as chaos reigns and the mantra of “burn it all down” surfaces. warnings of beverages on the yacht emerge. fuweh >.<
\ No newline at end of file diff --git a/assets/glossary/2025-04-01.txt b/assets/glossary/2025-04-01.txt new file mode 100644 index 00000000..11e006fb --- /dev/null +++ b/assets/glossary/2025-04-01.txt @@ -0,0 +1 @@ +real gamers play 3d pinball space cadet, plink plonk, it's clonk. is miku actually a japanese spelling of michael? we asked our best micheals for their professional opinion. freaky tuesday?? local wives prod zed pod and lala amanita swap their natures. modclonk hitting us with the mandark ohhoho. local nerd experiences aero theme for the first time. linux is gone, l:q downgraded to windows.
\ No newline at end of file diff --git a/assets/glossary/2025-04-04.txt b/assets/glossary/2025-04-04.txt new file mode 100644 index 00000000..d263ec62 --- /dev/null +++ b/assets/glossary/2025-04-04.txt @@ -0,0 +1 @@ +burgle bagels is the new meta. clonk channels his inner austin tech-bro while chiptunes blare in the background, setting the perfect vibe for this session.
\ No newline at end of file diff --git a/assets/glossary/2025-04-12.txt b/assets/glossary/2025-04-12.txt new file mode 100644 index 00000000..36e5b9cc --- /dev/null +++ b/assets/glossary/2025-04-12.txt @@ -0,0 +1 @@ +fucker finders season 3 continues. LCOLONQ is now on a quest for the fucker. a hairstyle reveal turns into chaos. stale bread discourse ensues. we discuss a_tension_span's algorithm and c static links. streamer takes an oath to not end until the green hackernews website is made. master thief LeClonque is unmasked, and a thieve's guild is hinted at.
\ No newline at end of file diff --git a/assets/glossary/2025-04-15.txt b/assets/glossary/2025-04-15.txt new file mode 100644 index 00000000..e02f1894 --- /dev/null +++ b/assets/glossary/2025-04-15.txt @@ -0,0 +1 @@ +emacs guy recommends emacs again. once more, the fucker returns. clonq looks up pegging on orange site live. I am orthogonal, I feel it in my bones. I am orthogonal, I ostensibly feel no hole. chicken jockey appears. mission lock-in is blasted hardcore, oath broken, unrestorable. man goes on mission to talk to people. chicken jockey returns. we need to contort ourselves into more challenging positions. oh boy we gassin today.
\ No newline at end of file diff --git a/assets/glossary/2025-04-18.txt b/assets/glossary/2025-04-18.txt new file mode 100644 index 00000000..7b7267b0 --- /dev/null +++ b/assets/glossary/2025-04-18.txt @@ -0,0 +1 @@ +clonk attempts to create a new wiki by drafting a programming list, laying the groundwork for an elaborate knowledge base.
\ No newline at end of file diff --git a/assets/glossary/2025-04-22.txt b/assets/glossary/2025-04-22.txt new file mode 100644 index 00000000..783dba16 --- /dev/null +++ b/assets/glossary/2025-04-22.txt @@ -0,0 +1 @@ +friend is silent in mourning. mr green's shyness is noted. clonk digs deeper into the earth while adding green to la mulana. breaking news: clonk says "fuck" in discord. earth celebrates 100 together; billions join in. clonk channels statler and waldorf for easter play. chaos ensues as the fucker escapes.
\ No newline at end of file diff --git a/assets/glossary/2025-04-30.txt b/assets/glossary/2025-04-30.txt new file mode 100644 index 00000000..57659ab4 --- /dev/null +++ b/assets/glossary/2025-04-30.txt @@ -0,0 +1 @@ +local clonk enters speedrun era, struggles with coding enjoyment, misses imaginary friends on rare wednesday, fights through flu, the q stands for qlapsed, discussion on running and sports, 9 out of 10 doctors think miku, countdown to promised hour, local streamer is sick as hell, becomes pillar of salt, wants to grift, notes feeling like mice, and achieves self-clarity.
\ No newline at end of file diff --git a/assets/rats/users/GlamShatterskull.wav b/assets/rats/users/GlamShatterskull.wav Binary files differnew file mode 100644 index 00000000..0d16804e --- /dev/null +++ b/assets/rats/users/GlamShatterskull.wav diff --git a/assets/rats/users/RealNaesten.wav b/assets/rats/users/RealNaesten.wav Binary files differnew file mode 100644 index 00000000..54525879 --- /dev/null +++ b/assets/rats/users/RealNaesten.wav diff --git a/src/gizmo/wasp-alert-message.el b/src/gizmo/wasp-alert-message.el index fcd8f6b3..fb80f002 100644 --- a/src/gizmo/wasp-alert-message.el +++ b/src/gizmo/wasp-alert-message.el @@ -12,10 +12,10 @@ (defconst w/alert-message-phrases (list - "hi :3" - "Chat seems active. Considerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr" - "Witscord The Game 2025" - )) + "hi :3" + "Chat seems active. Considerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr" + "Witscord The Game 2025" + )) (defcustom w/alert-message-buffer "*wasp-alert-message*" "Name of buffer used to display alert message." @@ -49,8 +49,8 @@ (cancel-timer w/alert-message-timer)) (w/render-alert-message) (setq - w/alert-message-timer - (run-with-timer 10 nil #'w/run-alert-message-timer))) + w/alert-message-timer + (run-with-timer 10 nil #'w/run-alert-message-timer))) (w/run-alert-message-timer) (provide 'wasp-alert-message) diff --git a/src/gizmo/wasp-animism.el b/src/gizmo/wasp-animism.el new file mode 100644 index 00000000..80c6f70e --- /dev/null +++ b/src/gizmo/wasp-animism.el @@ -0,0 +1,57 @@ +;;; wasp-animism --- Superterranean Animism Overlay -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'wasp-utils) +(require 'wasp-bus) +(require 'wasp-prod) + +(add-to-list 'load-path (f-canonical "~/src/animism/")) +(require 'bulletml) + +;; src,Xway,fire^쾠㘽쾷ㅗ껋㾨먝乲뛏屚w㮇㸩멽ꝼ쓋♫릫m떫쓏䓳⩺䮻1㨧퉝ƭ쓐ǥᓌ㒵ᒄ먽乳俴㢈쿗峫ฐꙢ왽욍투ㅖ㨧슝呑㟪䁓Ɂy䏧呠3먫슎呒3⧘ɍy욋ᕈ00먫⇳ +;; this one is broken fix it -ellg, probably + +(defconst w/overlay-spellcard-names + '("Joel" "Pemis" "JoelTeachingHisSonJolHowToSpinWhileWideBorisPassesBy" "bugSegz" + "widepeepoMASTURBATION77769420GANGSHITNOMOREFORTNITE19DOLLERFORTNITECARD" + "Machine Made Of Fire, Heart Made Of Doves" + "Dream Seal" "Evil-Sealing Circle" "Dream Seal -Spread-" "Dream Seal -Concentrate-" + "Duplex Barrier" "Dream Orb" "Omnidirectional Oni-Binding Circle" "Yin-Yang Treasured Orb" + "Yin-Yang Kishin Orb" "Dream Orb String" "Yin-Yang Scattering" "Exorcising Border" + "Yin-Yang King Piece" "Illusionary Moon" "Flying Mysterious Shrine Maiden" + "Dream Seal -Blink-" "Great Duplex Barrier" "Dream Seal -Worn-" "Dream Seal -Marred-" + "Dream Seal -The Point Of The Mask-" + )) + +(defvar w/overlay-barrage-active nil) +(defvar w/overlay-last-cursor nil) +(defun w/overlay-update-cursor () + "Inform the overlay about the current cursor position." + (when (and w/overlay-barrage-active (process-live-p (get-process w/bus-process))) + (when-let ((pos (window-absolute-pixel-position))) + (when (not (equal pos w/overlay-last-cursor)) + (setf w/overlay-last-cursor pos) + (w/pub '(overlay cursor) (list (- (car pos) 1920) (cdr pos))))))) +(add-hook 'post-command-hook #'w/overlay-update-cursor) + +(defun w/overlay-start-barrage (bml) + "Start a barrage on the overlay using the BulletML source string BML." + (w/pub '(overlay barrage start) (list (w/encode-string bml)))) + +(defun w/overlay-decode-shorthand-bml (s k) + "Decode the shorthand BulletML string S. +Pass the resulting BulletML XML string to K." + ;; (w/write-log s) + (w/prod-get-raw + (format "/api/yamame?input=%s" (url-encode-url s)) + (lambda (data) + (if-let* ((bml (bml/parse-string data)) + (b (bml/initialize bml)) + ((bml/barrage-toplevel b))) + (progn + (funcall k data)) + (w/write-chat-event "That spell card is too powerful... "))))) + +(provide 'wasp-animism) +;;; wasp-animism.el ends here diff --git a/src/gizmo/wasp-aoc.el b/src/gizmo/wasp-aoc.el index 57b16c32..4c287add 100644 --- a/src/gizmo/wasp-aoc.el +++ b/src/gizmo/wasp-aoc.el @@ -19,23 +19,23 @@ (defvar w/aoc-user-stars nil) (defconst w/aoc-name-map '(("exodrifter_" . "exodrifter") - ("cephon_altera" . "lainlayer") - ("monochrome_0" . "monochrome") - ("yoink2000" . "darius1702") - ("lukeisun_" . "lukeisun") - ("dwinkley_" . "dwinkley") - ("lcolonq" . "llll colonq") - ("fn_lumi" . "lumi") - ("leadengin" . "leaden") - ("vasher_1025" . "vash3r") - ("andrewdtr" . "drawthatredstone") - ("badcop_" . "cgsdev0") - ("asrael_io" . "asrael") - ("colinahscopy_" . "@colinahscopy") - ("ctrl_o" . "control-o") - ("whimsicallymade" . "aecepoglu") - ("chromosundrift" . "christo") - )) + ("cephon_altera" . "lainlayer") + ("monochrome_0" . "monochrome") + ("yoink2000" . "darius1702") + ("lukeisun_" . "lukeisun") + ("dwinkley_" . "dwinkley") + ("lcolonq" . "llll colonq") + ("fn_lumi" . "lumi") + ("leadengin" . "leaden") + ("vasher_1025" . "vash3r") + ("andrewdtr" . "drawthatredstone") + ("badcop_" . "cgsdev0") + ("asrael_io" . "asrael") + ("colinahscopy_" . "@colinahscopy") + ("ctrl_o" . "control-o") + ("whimsicallymade" . "aecepoglu") + ("chromosundrift" . "christo") + )) (defun w/aoc-max-stars () "Return the maximum Advent of Code stars for today." @@ -44,7 +44,7 @@ (defun w/aoc-lookup-stars (user) "Retrieve the Advent of Code stars for USER." (let* ((duser (s-downcase user)) - (cuser (s-downcase (alist-get duser w/aoc-name-map duser nil #'s-equals?)))) + (cuser (s-downcase (alist-get duser w/aoc-name-map duser nil #'s-equals?)))) (alist-get cuser w/aoc-user-stars nil nil #'s-equals?))) (defun w/aoc-fetch-api (k) @@ -58,24 +58,24 @@ Pass the resulting JSON to K." :parser #'json-parse-buffer :success (cl-function - (lambda (&key data &allow-other-keys) - (setq w/aoc-last-response data) - (funcall k data)))) + (lambda (&key data &allow-other-keys) + (setq w/aoc-last-response data) + (funcall k data)))) nil) (defun w/aoc-update-user-stars () "Update the Advent of Code stars list." (w/aoc-fetch-api - (lambda (data) - (setf - w/aoc-user-stars - (--map - (cons (s-downcase (car it)) (cdr it)) - (--filter - (stringp (car it)) + (lambda (data) + (setf + w/aoc-user-stars (--map - (cons (ht-get it "name") (ht-get it "stars")) - (ht-values (ht-get data "members"))))))))) + (cons (s-downcase (car it)) (cdr it)) + (--filter + (stringp (car it)) + (--map + (cons (ht-get it "name") (ht-get it "stars")) + (ht-values (ht-get data "members"))))))))) ;; (w/aoc-update-user-stars) (provide 'wasp-aoc) diff --git a/src/gizmo/wasp-bannerads.el b/src/gizmo/wasp-bannerads.el index 70f9c8be..7d64ac1b 100644 --- a/src/gizmo/wasp-bannerads.el +++ b/src/gizmo/wasp-bannerads.el @@ -49,20 +49,18 @@ (cancel-timer w/banner-ad-timer)) (w/render-banner-ad) (setq - w/banner-ad-timer - (run-with-timer 60 nil #'w/run-banner-ad-timer))) -(w/run-banner-ad-timer) - + w/banner-ad-timer + (run-with-timer 60 nil #'w/run-banner-ad-timer))) (defun w/banner-ad-block () "Toggle adblock." (setq w/banner-ad-block t) (w/render-banner-ad) - (w/model-toggle-set "adblock") + (w/model-toggle-set "adblock") (run-with-timer 10 nil (lambda () (setq w/banner-ad-block nil) - (w/model-toggle-unset "adblock") + (w/model-toggle-unset "adblock") (w/render-banner-ad))) nil) diff --git a/src/gizmo/wasp-biblicality.el b/src/gizmo/wasp-biblicality.el index 317e87f7..db169337 100644 --- a/src/gizmo/wasp-biblicality.el +++ b/src/gizmo/wasp-biblicality.el @@ -14,17 +14,18 @@ (defun w/bible-canonize (user) "Add USER to the bible 1000 times." (w/append-file - (s-concat "\n" (s-repeat 1000 (s-concat user " "))) - (w/asset "bible.txt")) + (s-concat "\n" (s-repeat 1000 (s-concat user " "))) + (w/asset "bible.txt")) (ht-set! w/bible-table user 1000)) (defun w/populate-bible-table () "Populate `w/bible-table' from the Bible text file." (unless w/bible-table - (let* ((bible-string (s-downcase (w/slurp (w/asset "bible.txt")))) - (bible-string-nosyms (replace-regexp-in-string "[^[:alpha:]]" " " bible-string)) - (bible-words (s-split-words bible-string-nosyms)) - (ret (ht-create))) + ;; (let* ((bible-string (s-downcase (w/slurp (w/asset "bible.txt")))) + (let* ((bible-string (s-downcase (w/slurp (w/asset "medical.txt")))) + (bible-string-nosyms (replace-regexp-in-string "[^[:alpha:]]" " " bible-string)) + (bible-words (s-split-words bible-string-nosyms)) + (ret (ht-create))) (--each bible-words (let ((old (ht-get ret it))) (ht-set! ret it (+ 1 (or old 0))))) @@ -33,47 +34,46 @@ (defun w/bible-word-score (word) "Return a number between 0.0 and 1.0 representing how biblical WORD is." (if (-contains? '("Sam" "Altman") word) - -666.0 + -666.0 (let ((occs (ht-get w/bible-table (downcase (s-trim word)))) - (thresh 0.6)) + (thresh 0.6)) (if occs - ;; (+ thresh (/ (min occs 1000.0) (/ 1000.0 (- 1.0 thresh)))) - (+ thresh (/ (min occs 10.0) (/ 10.0 (- 1.0 thresh)))) + (+ thresh (/ (min occs 1000.0) (/ 1000.0 (- 1.0 thresh)))) 0.0)))) (defun w/bible-word-color (word) "Given a WORD, return an appropriate color string." (let* ((score (w/bible-word-score word)) - (others (truncate (+ 128.0 (* 127.0 score))))) - ;; (others (- 255 (truncate (+ 128.0 (* 127.0 score)))))) + (others (truncate (+ 128.0 (* 127.0 score))))) + ;; (others (- 255 (truncate (+ 128.0 (* 127.0 score)))))) (format "#ff%02x%02x" others others))) - ;; (format "#00%02x%02x" others others))) +;; (format "#00%02x%02x" others others))) (defun w/bible-colorize-sentence (sen) "Propertize SEN with colors representing word biblicality." (if w/bible-table - (let ((ret-score-total 0.0) - (ret-score-count 0)) - (save-excursion - (with-temp-buffer - (insert sen) - (goto-char (point-min)) - (while (not (eobp)) - (let ((at-word (bounds-of-thing-at-point 'word))) - (when at-word - (let* ((word (buffer-substring (car at-word) (cdr at-word))) - (score (w/bible-word-score word)) - (color (w/bible-word-color word))) - (setq ret-score-total (+ ret-score-total score)) - (cl-incf ret-score-count) - (add-text-properties - (car at-word) (cdr at-word) - `(face (:foreground ,color)) - ) - (goto-char (cdr at-word)))) - (when (not (eobp)) - (forward-char 1)))) - (cons (buffer-string) (/ ret-score-total ret-score-count))))) + (let ((ret-score-total 0.0) + (ret-score-count 0)) + (save-excursion + (with-temp-buffer + (insert sen) + (goto-char (point-min)) + (while (not (eobp)) + (let ((at-word (bounds-of-thing-at-point 'word))) + (when at-word + (let* ((word (buffer-substring (car at-word) (cdr at-word))) + (score (w/bible-word-score word)) + (color (w/bible-word-color word))) + (setq ret-score-total (+ ret-score-total score)) + (cl-incf ret-score-count) + (add-text-properties + (car at-word) (cdr at-word) + `(face (:foreground ,color)) + ) + (goto-char (cdr at-word)))) + (when (not (eobp)) + (forward-char 1)))) + (cons (buffer-string) (/ ret-score-total ret-score-count))))) (cons sen 0.0))) (provide 'wasp-biblicality) diff --git a/src/gizmo/wasp-bless.el b/src/gizmo/wasp-bless.el index 109b2f35..c3175548 100644 --- a/src/gizmo/wasp-bless.el +++ b/src/gizmo/wasp-bless.el @@ -22,21 +22,21 @@ "Construct an Emacs Lisp value representation of the value J." (let ((tag (alist-get 'tag j))) (cond - ((s-equals? tag "ValueInteger") (alist-get 'contents j)) - ((s-equals? tag "ValueArray") - (-map #'w/bless-parse-value (alist-get 'contents j))) - (t (message "Unknown Bless tag: %s" tag))))) + ((s-equals? tag "ValueInteger") (alist-get 'contents j)) + ((s-equals? tag "ValueArray") + (-map #'w/bless-parse-value (alist-get 'contents j))) + (t (message "Unknown Bless tag: %s" tag))))) (defun w/bless-parse-effect (j) "Construct an Emacs Lisp value representation of the effect J." (let ((tag (alist-get 'tag j)) - (c (alist-get 'contents j))) - (cond - ((s-equals? tag "EffectPrint") `(print ,(w/bless-parse-value c))) - ((s-equals? tag "EffectPrintBackwards") `(print-backwards ,(w/bless-parse-value c))) - ((s-equals? tag "EffectSoundboard") `(soundboard ,(w/bless-parse-value c))) - ((s-equals? tag "EffectModelToggle") `(model-toggle ,(w/bless-parse-value c))) - ))) + (c (alist-get 'contents j))) + (cond + ((s-equals? tag "EffectPrint") `(print ,(w/bless-parse-value c))) + ((s-equals? tag "EffectPrintBackwards") `(print-backwards ,(w/bless-parse-value c))) + ((s-equals? tag "EffectSoundboard") `(soundboard ,(w/bless-parse-value c))) + ((s-equals? tag "EffectModelToggle") `(model-toggle ,(w/bless-parse-value c))) + ))) (defun w/bless-parse-stack (j) "Construct an Emacs Lisp value representation of the stack J." @@ -63,32 +63,32 @@ Optionally limit evaluation to FUEL steps." (with-current-buffer buf (erase-buffer)) (make-process - :name "wasp-bless-eval" - :buffer buf - :command `("bless" "-j" "eval" ,@(if fuel (list "--fuel" (number-to-string fuel)) nil) ,str) - :sentinel - (lambda (_ _) - (let* ((s (with-current-buffer buf (buffer-string))) - (j (json-read-from-string s)) - (status (alist-get 'status j))) - (kill-buffer buf) - (if (s-equals? status "success") - (funcall + :name "wasp-bless-eval" + :buffer buf + :command `("bless" "-j" "eval" ,@(if fuel (list "--fuel" (number-to-string fuel)) nil) ,str) + :sentinel + (lambda (_ _) + (let* ((s (with-current-buffer buf (buffer-string))) + (j (json-read-from-string s)) + (status (alist-get 'status j))) + (kill-buffer buf) + (if (s-equals? status "success") + (funcall k (cons - (w/bless-parse-stack (alist-get 'stack (alist-get 'data j))) - (w/bless-parse-effects (alist-get 'effects (alist-get 'data j))))) - (w/bless-error (alist-get 'data j)))))))) + (w/bless-parse-stack (alist-get 'stack (alist-get 'data j))) + (w/bless-parse-effects (alist-get 'effects (alist-get 'data j))))) + (w/bless-error (alist-get 'data j)))))))) (defun w/bless (str &optional fuel) "Run the Bless program STR and apply its side effects. Optionally limit evaluation to FUEL steps." (w/bless-eval - str - (lambda (res) - (--each (cdr res) - (w/bless-apply-effect it))) - fuel)) + str + (lambda (res) + (--each (cdr res) + (w/bless-apply-effect it))) + fuel)) (provide 'wasp-bless) ;;; wasp-bless.el ends here diff --git a/src/gizmo/wasp-chatsummary.el b/src/gizmo/wasp-chatsummary.el index 5a6a27ae..3087c18d 100644 --- a/src/gizmo/wasp-chatsummary.el +++ b/src/gizmo/wasp-chatsummary.el @@ -26,16 +26,16 @@ (defun w/update-chatsummary () "Update the chat summary." (w/ai - (w/friend-journalism-input) - (lambda (d) - (when-let* ((d) - (resp (s-trim d))) - (with-current-buffer (w/chatsummary-get-buffer) - (let ((inhibit-read-only t)) - (erase-buffer) - (w/write-line "Chat summary" 'bold) - (w/write-line resp))))) - "Given a list of recent YouTube chatter activity, produce a summary of the topics discussed. The summary should be very short, maximum two sentences total. Do not introduce yourself. Simply provide a short summary of the chat. Do not mention specific names of chatters. Keep it succinct. Do not mention that you are summarizing YouTube activity. Be laconic.")) + (w/friend-journalism-input) + (lambda (d) + (when-let* ((d) + (resp (s-trim d))) + (with-current-buffer (w/chatsummary-get-buffer) + (let ((inhibit-read-only t)) + (erase-buffer) + (w/write-line "Chat summary" 'bold) + (w/write-line resp))))) + "Given a list of recent YouTube chatter activity, produce a summary of the topics discussed. The summary should be very short, maximum two sentences total. Do not introduce yourself. Simply provide a short summary of the chat. Do not mention specific names of chatters. Keep it succinct. Do not mention that you are summarizing YouTube activity. Be laconic.")) (defvar w/chatsummary-timer nil) (defun w/run-chatsummary-timer () @@ -44,8 +44,8 @@ (cancel-timer w/chatsummary-timer)) (w/update-chatsummary) (setq - w/chatsummary-timer - (run-with-timer 120 nil #'w/run-chatsummary-timer))) + w/chatsummary-timer + (run-with-timer 120 nil #'w/run-chatsummary-timer))) (defun w/start-chatsummary () "Enable fake chatters." diff --git a/src/gizmo/wasp-copfish.el b/src/gizmo/wasp-copfish.el index 024c27dc..7afa3414 100644 --- a/src/gizmo/wasp-copfish.el +++ b/src/gizmo/wasp-copfish.el @@ -28,20 +28,20 @@ :parser #'buffer-string :success (cl-function - (lambda (&key data &allow-other-keys) - (setq w/copfish-last-response data) - (funcall k data)))) + (lambda (&key data &allow-other-keys) + (setq w/copfish-last-response data) + (funcall k data)))) t) (defun w/copfish-get-fish (user k) "Retrieve USER's fish ratio from copfish API. Pass the resulting fraction to K." (w/copfish-get - (s-concat "fishdex/" user) - (lambda (s) - (let ((sp (s-split " " s))) - (when (= (length sp) 2) - (funcall k (cons (string-to-number (car sp)) (string-to-number (cadr sp))))))))) + (s-concat "fishdex/" user) + (lambda (s) + (let ((sp (s-split " " s))) + (when (= (length sp) 2) + (funcall k (cons (string-to-number (car sp)) (string-to-number (cadr sp))))))))) (defvar w/copfish-user-cache nil) (defun w/copfish-update-user (user) @@ -49,12 +49,12 @@ Pass the resulting fraction to K." (unless (-contains? w/copfish-user-cache user) (add-to-list 'w/copfish-user-cache user) (w/copfish-get-fish - user - (lambda (ct) - (w/user-bind - user - (lambda () - (setf (alist-get :copfish-ratio w/user-current) ct))))))) + user + (lambda (ct) + (w/user-bind + user + (lambda () + (setf (alist-get :copfish-ratio w/user-current) ct))))))) (provide 'wasp-copfish) ;;; wasp-copfish.el ends here diff --git a/src/gizmo/wasp-curse.el b/src/gizmo/wasp-curse.el index 95149fef..2b31214f 100644 --- a/src/gizmo/wasp-curse.el +++ b/src/gizmo/wasp-curse.el @@ -20,148 +20,148 @@ (defconst w/binary-ops '((or . "||") - (and . "&&") - (> . ">") - (>= . ">=") - (< . "<") - (<= . "<=") - (= . "===") - (% . "%") - (/ . "/") - (bit-or . "|") - (bit-and . "&") - (bit-xor . "^"))) + (and . "&&") + (> . ">") + (>= . ">=") + (< . "<") + (<= . "<=") + (= . "===") + (% . "%") + (/ . "/") + (bit-or . "|") + (bit-and . "&") + (bit-xor . "^"))) (defun w/curse-expr (expr) "Translate EXPR according to the nature of the curse." (cond - ((null expr) "(null)") - ((listp expr) - (pcase (car expr) - ((or '+ '- '*) - (format - "(%s)" - (s-join (format "%s" (car expr)) (-map #'w/curse-expr (cdr expr))))) - ((pred (lambda (x) (alist-get x w/binary-ops))) - (format - "(%s)" - (s-join (alist-get (car expr) w/binary-ops) (-map #'w/curse-expr (cdr expr))))) - ((or '<< '>>) - (format - "(%s%s%s)" - (w/curse-expr (cadr expr)) - (format "%s" (car expr)) - (w/curse-expr (caddr expr)))) - ('comment "(null)") - ('lambda - (format - "((%s)=>(%s))" - (s-join "," (-map #'w/curse-name (cadr expr))) - (s-join "," (-map #'w/curse-expr (cddr expr))))) - ('async-lambda - (format - "(async(%s)=>(%s))" - (s-join "," (-map #'w/curse-name (cadr expr))) - (s-join "," (-map #'w/curse-expr (cddr expr))))) - ('if - (format - "(%s?%s:%s)" - (w/curse-expr (cadr expr)) - (w/curse-expr (caddr expr)) - (w/curse-expr (cadddr expr)))) - ('define - (format - "(globalThis.%s=%s)" - (w/curse-name (cadr expr)) - (w/curse-expr (caddr expr)))) - ('set - (format - "(%s=%s)" - (w/curse-name (cadr expr)) - (w/curse-expr (caddr expr)))) - ('aset - (format - "(%s[%s]=%s)" - (w/curse-name (cadr expr)) - (w/curse-expr (caddr expr)) - (w/curse-expr (cadddr expr)))) - ('new - (format - "(new %s(%s))" - (w/curse-expr (cadr expr)) - (s-join "," (-map #'w/curse-expr (cddr expr))))) - ('await - (format - "(await %s)" - (w/curse-expr (cadr expr)))) - ('not - (format - "(!%s)" - (w/curse-expr (cadr expr)))) - ('let - (format - "(((%s)=>(%s))(%s))" - (s-join "," (--map (w/curse-name (car it)) (cadr expr))) - (s-join "," (-map #'w/curse-expr (cddr expr))) - (s-join "," (--map (w/curse-expr (cadr it)) (cadr expr))))) - ('async-let - (format - "((async(%s)=>(%s))(%s))" - (s-join "," (--map (w/curse-name (car it)) (cadr expr))) - (s-join "," (-map #'w/curse-expr (cddr expr))) - (s-join "," (--map (w/curse-expr (cadr it)) (cadr expr))))) - ('do - (format - "((()=>(%s))())" - (s-join "," (-map #'w/curse-expr (cdr expr))))) - ('iota - (format - "[...Array(%s).keys()]" - (w/curse-expr (cadr expr)))) - ('array - (format - "[%s]" - (s-join "," (-map #'w/curse-expr (cdr expr))))) - ('object - (format - "{%s}" - (s-join - "," - (--map (format "%s:%s" (w/curse-name (car it)) (w/curse-expr (cadr it))) (cdr expr))))) - ('@ - (format - "((%s)[%s])" - (w/curse-expr (cadr expr)) - (w/curse-expr (caddr expr)))) - (_ - (format - "((%s)(%s))" - (w/curse-expr (car expr)) - (s-join "," (-map #'w/curse-expr (cdr expr))))) - )) - ((symbolp expr) (w/curse-name expr)) - ((numberp expr) (format "%s" expr)) - ((stringp expr) (format "\"%s\"" expr)) - (t "(null)"))) + ((null expr) "(null)") + ((listp expr) + (pcase (car expr) + ((or '+ '- '*) + (format + "(%s)" + (s-join (format "%s" (car expr)) (-map #'w/curse-expr (cdr expr))))) + ((pred (lambda (x) (alist-get x w/binary-ops))) + (format + "(%s)" + (s-join (alist-get (car expr) w/binary-ops) (-map #'w/curse-expr (cdr expr))))) + ((or '<< '>>) + (format + "(%s%s%s)" + (w/curse-expr (cadr expr)) + (format "%s" (car expr)) + (w/curse-expr (caddr expr)))) + ('comment "(null)") + ('lambda + (format + "((%s)=>(%s))" + (s-join "," (-map #'w/curse-name (cadr expr))) + (s-join "," (-map #'w/curse-expr (cddr expr))))) + ('async-lambda + (format + "(async(%s)=>(%s))" + (s-join "," (-map #'w/curse-name (cadr expr))) + (s-join "," (-map #'w/curse-expr (cddr expr))))) + ('if + (format + "(%s?%s:%s)" + (w/curse-expr (cadr expr)) + (w/curse-expr (caddr expr)) + (w/curse-expr (cadddr expr)))) + ('define + (format + "(globalThis.%s=%s)" + (w/curse-name (cadr expr)) + (w/curse-expr (caddr expr)))) + ('set + (format + "(%s=%s)" + (w/curse-name (cadr expr)) + (w/curse-expr (caddr expr)))) + ('aset + (format + "(%s[%s]=%s)" + (w/curse-name (cadr expr)) + (w/curse-expr (caddr expr)) + (w/curse-expr (cadddr expr)))) + ('new + (format + "(new %s(%s))" + (w/curse-expr (cadr expr)) + (s-join "," (-map #'w/curse-expr (cddr expr))))) + ('await + (format + "(await %s)" + (w/curse-expr (cadr expr)))) + ('not + (format + "(!%s)" + (w/curse-expr (cadr expr)))) + ('let + (format + "(((%s)=>(%s))(%s))" + (s-join "," (--map (w/curse-name (car it)) (cadr expr))) + (s-join "," (-map #'w/curse-expr (cddr expr))) + (s-join "," (--map (w/curse-expr (cadr it)) (cadr expr))))) + ('async-let + (format + "((async(%s)=>(%s))(%s))" + (s-join "," (--map (w/curse-name (car it)) (cadr expr))) + (s-join "," (-map #'w/curse-expr (cddr expr))) + (s-join "," (--map (w/curse-expr (cadr it)) (cadr expr))))) + ('do + (format + "((()=>(%s))())" + (s-join "," (-map #'w/curse-expr (cdr expr))))) + ('iota + (format + "[...Array(%s).keys()]" + (w/curse-expr (cadr expr)))) + ('array + (format + "[%s]" + (s-join "," (-map #'w/curse-expr (cdr expr))))) + ('object + (format + "{%s}" + (s-join + "," + (--map (format "%s:%s" (w/curse-name (car it)) (w/curse-expr (cadr it))) (cdr expr))))) + ('@ + (format + "((%s)[%s])" + (w/curse-expr (cadr expr)) + (w/curse-expr (caddr expr)))) + (_ + (format + "((%s)(%s))" + (w/curse-expr (car expr)) + (s-join "," (-map #'w/curse-expr (cdr expr))))) + )) + ((symbolp expr) (w/curse-name expr)) + ((numberp expr) (format "%s" expr)) + ((stringp expr) (format "\"%s\"" expr)) + (t "(null)"))) (defun w/curse-current-buffer () "Transmute the current buffer according to the curse." (interactive) (let* ((srcfile (buffer-file-name)) - (jspath (s-concat (f-base srcfile) ".js")) - (src (buffer-string))) + (jspath (s-concat (f-base srcfile) ".js")) + (src (buffer-string))) (with-temp-buffer (insert src) (goto-char (point-min)) (let ((acc "") - (line (read (current-buffer)))) + (line (read (current-buffer)))) (while (and line (not (eobp))) (setf acc (s-concat acc (w/curse-expr line) ";")) (setf - line - (condition-case nil - (read (current-buffer)) - (error nil)))) + line + (condition-case nil + (read (current-buffer)) + (error nil)))) (write-region acc nil jspath))))) (provide 'wasp-curse) diff --git a/src/gizmo/wasp-cyclone.el b/src/gizmo/wasp-cyclone.el index d77061e7..0223e8bc 100644 --- a/src/gizmo/wasp-cyclone.el +++ b/src/gizmo/wasp-cyclone.el @@ -7,6 +7,8 @@ (require 'wasp-heartrate) (require 'wasp-chatsummary) (require 'wasp-alert-message) +(require 'wasp-fakechat) +(require 'wasp-bannerads) (defconst w/gizmo-buffer-names (list @@ -23,7 +25,7 @@ (defun w/gizmo-tag-window () "Tag the current window as containing a gizmo." (interactive) - (when-let ((w (selected-window))) + (when-let* ((w (selected-window))) (add-to-list 'w/gizmo-windows w))) (defun w/gizmo-cycle-window (w) @@ -42,6 +44,11 @@ (--each w/gizmo-windows (w/gizmo-cycle-window it))) +(defun w/gizmo-ensure-shown (buf) + "Ensure that BUF is shown in one of the windows." + (unless (--any (s-equals? (buffer-name (window-buffer it)) (buffer-name (get-buffer buf))) w/gizmo-windows) + (set-window-buffer (car w/gizmo-windows) buf))) + (defvar w/gizmo-cycle-timer nil) (defun w/run-gizmo-cycle-timer () "Run the gizmo cycle timer." @@ -49,9 +56,32 @@ (cancel-timer w/gizmo-cycle-timer)) (w/gizmo-cycle) (setq - w/gizmo-cycle-timer - (run-with-timer 300 nil #'w/run-gizmo-cycle-timer))) + w/gizmo-cycle-timer + (run-with-timer 300 nil #'w/run-gizmo-cycle-timer))) (w/run-gizmo-cycle-timer) +(require 'htmlize) +(defvar w/gizmo-html-cache (ht-create)) +(defun w/gizmo-render-html (buf) + "Render BUF to HTML with embedded images." + (let* ( (htmlize-output-type 'inline-css) + (htmlize-force-inline-images t) + (buf (htmlize-buffer buf)) + (html (with-current-buffer buf (buffer-string)))) + (kill-buffer buf) + html)) +(defun w/gizmo-upload (buf) + "Upload the HTML contents of BUF to the database." + (let* ( (b (get-buffer buf)) + (nm (buffer-name b)) + (render (w/gizmo-render-html b)) + (cached (ht-get w/gizmo-html-cache nm))) + (unless (and cached (s-equals? cached render)) + (ht-set w/gizmo-html-cache nm render) + (w/db-hset-then "gizmos" nm + render + (lambda (_) + (w/pub '(gizmo buffer update) (list nm))))))) + (provide 'wasp-cyclone) ;;; wasp-cyclone.el ends here diff --git a/src/gizmo/wasp-fakechat.el b/src/gizmo/wasp-fakechat.el index 27b6962b..ffdd750a 100644 --- a/src/gizmo/wasp-fakechat.el +++ b/src/gizmo/wasp-fakechat.el @@ -137,12 +137,12 @@ (diff (if last (time-subtract cur last) 99999999)) (d (time-convert diff 'integer))) (+ - (if (> d 300) 0.01 0.1) + (if (> d 300) 0.01 0.05) (if (--any? (s-contains? (w/fake-chatter-profile-username (w/fake-chatter-profile st)) (cdr it)) (-take 20 w/twitch-chat-history)) - 0.8 + 0.1 0.0)))) (defun w/fake-chatter-elevated-likeliness (st) diff --git a/src/gizmo/wasp-flycheck.el b/src/gizmo/wasp-flycheck.el index 27a857b4..505ad8a3 100644 --- a/src/gizmo/wasp-flycheck.el +++ b/src/gizmo/wasp-flycheck.el @@ -2,16 +2,16 @@ ;;; Commentary: ;;; Code: -(require 'flycheck) - -(flycheck-define-generic-checker 'wasp-twitch - "Checker to display errors from Twitch redeems." - :start - (lambda (c x) - (print c) - (print x)) - :modes '(fundamental-mode) - ) +;; (require 'flycheck) +;; +;; (flycheck-define-generic-checker 'wasp-twitch +;; "Checker to display errors from Twitch redeems." +;; :start +;; (lambda (c x) +;; (print c) +;; (print x)) +;; :modes '(fundamental-mode) +;; ) (provide 'wasp-flycheck) ;;; wasp-flycheck.el ends here diff --git a/src/gizmo/wasp-friend-callout.el b/src/gizmo/wasp-friend-callout.el new file mode 100644 index 00000000..510c279c --- /dev/null +++ b/src/gizmo/wasp-friend-callout.el @@ -0,0 +1,106 @@ +;;; wasp-friend-callout --- "friend" talks about things -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'dash) +(require 's) +(require 'wasp-friend) +(require 'wasp-twitch) +(require 'wasp-gcp) +(require 'wasp-aoc) +(require 'wasp-uwoomfie) + +(defun w/friend-callout-holiday () + "Call to respond to the current holiday." + (w/friend-respond "We're restoring a crumbling mansion to it's former glory. Say something about that please!")) + +(defun w/friend-callout-hexamedia () + "Call to respond to a random recent chatter's Hexamedia card collection." + (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :hexamedia-cards (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users))) + (cards (cdr user)) + (coll (and cards (nth (random (length cards)) cards)))) + (when coll + (w/friend-respond + (format + "%s has collected %s out of 20 cards in the %s collection. Please mention the collection name and the person collecting." + (car user) + (cdr coll) + (car coll)))))) + +(defun w/friend-callout-copfish () + "Call to respond to a random recent chatter's Copfish ratio." + (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :copfish-ratio (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users)))) + (when user + (w/friend-respond + (format + "%s has collected %s out of %s fish in the Copfish fish catching collection. Please mention the collection name and the person collecting." + (car user) + (cadr user) + (cddr user)))))) + +(defun w/friend-callout-uwoomfie () + "Call to respond to a random recent chatter's Uwoomfie status." + (let* ((users + (-filter + #'cdr + (--map + (cons (car it) (w/uwoomfie-get-status (car it))) + (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users)))) + (cl-case (cdr user) + (cool (w/friend-respond (format "According to UWOSLAB, %s is a very cool person. Make sure to mention their username." (car user)))) + (honored (w/friend-respond (format "According to UWOSLAB, %s is an honorary viewer. Make sure to mention their username." (car user)))) + (t nil)))) + +(defun w/friend-callout-shindaggers () + "Call to respond to a random recent chatter's Shindaggers knife collection." + (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :shindaggers-knives (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users))) + (knives (cdr user)) + (knife (and knives (nth (random (length knives)) knives)))) + (when knife + (w/friend-respond + (format + "%s has collected the %s from shindig's Shindaggers knife collection. Please mention the collection name and the person collecting and the knife." + (car user) + knife))))) + +(defun w/friend-callout-aoc () + "Call to respond to a random recent chatter's Advent of Code completion." + (let* ((users (-filter #'cdr (--map (cons (car it) (w/aoc-lookup-stars (car it))) (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users)))) + (w/friend-respond + (format + "%s has been doing Advent of Code this year, and they've completed %d out of %d problems so far." + (car user) + (cdr user) + (w/aoc-max-stars))))) + +(defun w/friend-callout-gcp () + "Call to respond to the current GCP dot." + (w/gcp-dot + (lambda (d) + (w/friend-respond + (format + "The Global Consciousness Project indicator is currently as follows: %s" + (w/gcp-describe d)))))) + +(defun w/friend-callout-resolution () + "Call to respond to a random recent chatter's resolve." + (when-let* + ((users (-filter #'cdr (--map (cons (car it) (alist-get :resolution2025 (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) + (user (and users (nth (random (length users)) users)))) + (if (s-match (rx (one-or-more digit) (zero-or-more space) "x" (zero-or-more space) (one-or-more digit)) (cdr user)) + (w/friend-respond + (format + "%s snarkily said that their New Year's resolution was a screen resolution. What do you think about this?" (car user))) + (w/friend-respond + (format + "%s made a New Year's resolution to %s. Ask them how it's going!" + (car user) + (cdr user)))))) + +(provide 'wasp-friend-callout) +;;; wasp-friend-callout.el ends here diff --git a/src/gizmo/wasp-friend-eating.el b/src/gizmo/wasp-friend-eating.el new file mode 100644 index 00000000..4bd92b8c --- /dev/null +++ b/src/gizmo/wasp-friend-eating.el @@ -0,0 +1,18 @@ +;;; wasp-friend-eating --- "friend" can eat -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: +(require 'wasp-friend) + +(defvar w/friend-tastes " You love eating cranberries and lemons.") + +(defun w/friend-feed (user food) + "Call when USER fed FOOD to \"friend\"." + (w/friend-personality + (format "%s fed you %s" user food) + (lambda (msg) + (w/friend-say msg) + (w/friend-set-state 'eating 6)) + w/friend-tastes)) + +(provide 'wasp-friend-eating) +;;; wasp-friend-eating.el ends here diff --git a/src/gizmo/wasp-friend-journalism.el b/src/gizmo/wasp-friend-journalism.el new file mode 100644 index 00000000..25d18bdb --- /dev/null +++ b/src/gizmo/wasp-friend-journalism.el @@ -0,0 +1,45 @@ +;;; wasp-friend-journalism --- "friend" writes the newspaper -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'dash) +(require 's) +(require 'wasp-friend) +(require 'wasp-newspaper) + +(defun w/friend-journalism-input () + "Collect an input for \"friend\"'s journalism based on recent activities." + (s-join + "\n" + (cons + (format "LCOLONQ: %s" (s-trim w/last-stream-transcription)) + (--map + (format "%s: %s" (car it) (cdr it)) + (reverse (-take 20 w/twitch-chat-history)))))) + +(defun w/friend-journalism (author headline) + "Retrieve \"friend\"'s opinion on current events related to HEADLINE. +AUTHOR was a contributing author btw." + (w/friend-personality + (s-concat + "Headline: " headline "\n\n" + (w/friend-journalism-input)) + (lambda (resp) + (when resp + (w/write-chat-event (format "\"friend\" finished writing about: %s" headline)) + (funcall + (if (= (random 5) 0) #'w/newspaper-screenshot (lambda (k) (funcall k nil))) + (lambda (img) + (when img + (w/write-chat-event "...and the article included some photojournalism")) + (push + (w/make-newspaper-article + :headline headline + :author (format "\"friend\" and %s" author) + :content (s-trim resp) + :image img) + w/newspaper-todays-articles))))) + "Given a headline of a newspaper article and a summary of recent user activity, please do your best journalist impression and produce a one paragraph article about the situation that fits the headline.")) + +(provide 'wasp-friend-journalism) +;;; wasp-friend-journalism.el ends here diff --git a/src/gizmo/wasp-friend-music.el b/src/gizmo/wasp-friend-music.el new file mode 100644 index 00000000..76e2c606 --- /dev/null +++ b/src/gizmo/wasp-friend-music.el @@ -0,0 +1,31 @@ +;;; wasp-friend-music --- "friend" can play music -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: +(require 'wasp-friend) + +(defconst w/friend-composition-examples + '(("My Life Is Like A Video Game" . "A/A/c/c/c/dcc/c///a/a/a/f/g/f/f///a/a/a/a/g/g/ga//f//") + ("Super Idol" . "gg[g#]gfg[CD#cG#][D#][CG#f][Cd#][Cc]C[Cd#]/[DFfd][FA#][DA#f]D[Dg][A#f][Dd#a#]f[GBgd]B[Gd#][GDc][Gd#]G[Gd#]/[D#Gc]G[D#cg][D#g][D#g#][dg][D#f][d#d#][D#Ggc]f[D#][D#Gg][D#c][D#][D#c][d#][DFdA#]F[DA#d][Dd][Dg]/[Da#g]/[D#d#][D#][D#][D#][D#][FD#][GA#][fd#][gA#]") + ("Reindeer" . "FG/FD/B/A/G/////GAGAG/c/B///////FG/FD/B/A/G/////GAGAG/d/c/////|C4~~~G3~~~C4~~~G3~~~C~~~E3~D#3~D3~~~~~~~G3~~~D3~~~G3~~~D3~~~G3~~D3G3~B3/C4"))) + +(defun w/friend-compose-song (theme) + "Compose a song about THEME to play on the bells." + (w/ai + theme + (lambda (res) + (let* ((sp (s-split ":" (s-trim res))) + (name (s-trim (car sp))) + (song (s-trim (cadr sp)))) + (when (and (stringp name) (stringp song)) + (w/friend-respond + (format "You just composed a song about %s called %s! Say something about it!" theme name) + (lambda () + (w/write-chat-event (format "The song is called %s: %s" name song)) + (w/add-song (s-concat "friend's " name) song) + (w/audio-muzak-enqueue "\"friend\"" song)))))) + "Please compose a song about the provided theme. The format for the song is a sequence of characters with meanings as follows: / represents a rest, uppercase letters A through G indicate semitones, octaves are specified with a number following a semitone, ~ extends the duration of a note, square brackets like [] group notes together into a chord. The pipe character | separates tracks. Respond only with the song's name followed by a colon folowed by the song notes. Do not explain yourself. The song should ideally be 20 to 30 notes long." + (-map #'car w/friend-composition-examples) + (--map (format "%s: %s" (car it) (cdr it)) w/friend-composition-examples))) + +(provide 'wasp-friend-music) +;;; wasp-friend-music.el ends here diff --git a/src/gizmo/wasp-friend-reading.el b/src/gizmo/wasp-friend-reading.el new file mode 100644 index 00000000..7859b2e8 --- /dev/null +++ b/src/gizmo/wasp-friend-reading.el @@ -0,0 +1,15 @@ +;;; wasp-friend-reading --- "friend" can read pages -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: +(require 'wasp-friend) +(require 'wasp-wikipedia) + +(defun w/friend-react-wikipedia (user page) + "Call when USER asks \"friend\" to react to PAGE on Wikipedia." + (w/fetch-wikipedia + page + (lambda (sum) + (w/friend-respond (format "%s asks you to react to the Wikipedia page for %s. The page summary is: %s" user page sum))))) + +(provide 'wasp-friend-reading) +;;; wasp-friend-reading.el ends here diff --git a/src/gizmo/wasp-friend-voice.el b/src/gizmo/wasp-friend-voice.el new file mode 100644 index 00000000..71519e09 --- /dev/null +++ b/src/gizmo/wasp-friend-voice.el @@ -0,0 +1,70 @@ +;;; wasp-friend-voice --- "friend" talks -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'dash) +(require 's) +(require 'wasp-friend) + +(defconst w/friend-grapheme-phonemes + '((("b" "bb") . "bug") (("d" "dd" "ed") . "dad") + (("f" "ff" "ph" "gh" "lf" "ft") . "fat") + (("g" "gg" "gh" "gu" "gue") . "gun") (("h" "wh") . "hop") + (("j" "ge" "g" "dge" "di" "gg") . "jam") + (("k" "c" "ch" "cc" "lk" "qu" "q" "ck" "x") . "kit") + (("l" "ll") . "live") (("m" "mm" "mb" "mn" "lm") . "man") + (("n" "nn" "kn" "gn" "pn" "mn") . "net") (("p" "pp") . "pin") + (("r" "rr" "wr" "rh") . "run") + (("s" "ss" "c" "sc" "ps" "st" "ce" "se") . "sit") + (("t" "tt" "th" "ed") . "tip") (("v" "f" "ph" "ve") . "vine") + (("w" "wh" "u" "o") . "wit") + (("z" "zz" "s" "ss" "x" "ze" "se") . "zed") + (("s" "si" "z") . "treasure") (("ch" "tch" "tu" "te") . "chip") + (("sh" "ce" "s" "ci" "si" "ch" "sci" "ti") . "sham") + (("th ") . "thongs") (("th") . "leather") + (("ng" "n" "ngue") . "ring") (("y" "i" "j") . "you") + (("a" "ai" "au") . "cat") + (("a" "ai" "eigh" "aigh" "ay" "er" "et" "ei" "au" "ea" "ey") . "bay") + (("e" "ea" "u" "ie" "ai" "a" "eo" "ei" "ae") . "end") + (("e" "ee" "ea" "y" "ey" "oe" "ie" "i" "ei" "eo" "ay") . "be") + (("i" "e" "o" "u" "ui" "y" "ie") . "it") + (("i" "y" "igh" "ie" "uy" "ye" "ai" "is" "eigh") . "spider") + (("a" "ho" "au" "aw" "ough") . "swan") + (("o" "oa" "oe" "ow" "ough" "eau" "oo" "ew") . "open") + (("o" "oo" "u" "ou") . "wolf") (("u" "o" "oo" "ou") . "lug") + (("o" "oo" "ew" "ue" "oe" "ough" "ui" "oew" "ou") . "who") + (("oi" "oy" "uoy") . "join") (("ow" "ou" "ough") . "now") + (("a" "er" "i" "ar" "our" "ur") . "about") + (("air" "are" "ear" "ere" "eir" "ayer") . "chair") (("a") . "arm ") + (("ir" "er" "ur" "ear" "or" "our" "yr") . "bird") + (("aw" "a" "or" "oor" "ore" "oar" "our" "augh" "ar" "ough" "au") . "paw") + (("ear" "eer" "ere" "ier") . "ear") (("ure" "our") . "cure"))) + +(defconst w/friend-phonemes + (-sort + (-on #'> (lambda (x) (length (car x)))) + (--mapcat + (-map (lambda (g) (cons g (cdr it))) (car it)) + w/friend-grapheme-phonemes))) + +(defun w/friend-replace-graphemes (str) + "Replace all graphemes with phoneme words in STR." + (let* ((phoneme-codes (--map-indexed (cons (cdr it) (format "%s," it-index)) w/friend-grapheme-phonemes)) + (grapheme-codes (--map (cons (car it) (alist-get (cdr it) phoneme-codes nil nil #'s-equals?)) w/friend-phonemes)) + (cleaned (s-downcase (replace-regexp-in-string "[^[:alpha:]]" "" str)))) + (--map (car (nth (string-to-number it) phoneme-codes)) (-filter #'s-present? (s-split "," (s-replace-all grapheme-codes cleaned)))))) + +(defun w/friend-phoneme-path (ph) + "Return a randomly chosen path to the given PH." + (let ((samples (f--entries (w/asset "friendvoice/") (s-contains? ph it) t))) + (nth (random (length samples)) samples))) +(defun w/friend-pronounce-phonemes (ph) + "Say PH." + (let ((files (-map #'w/friend-phoneme-path ph))) + (apply + #'start-process + "phoneme-say" nil "playphonemes" + files))) + +(provide 'wasp-friend-voice) +;;; wasp-friend-voice.el ends here diff --git a/src/gizmo/wasp-friend.el b/src/gizmo/wasp-friend.el index 0432040d..28403025 100644 --- a/src/gizmo/wasp-friend.el +++ b/src/gizmo/wasp-friend.el @@ -4,20 +4,13 @@ (require 'dash) (require 's) -(require 'flycheck) +(require 'cl-lib) (require 'wasp-utils) -(require 'wasp-audio) -(require 'wasp-ai) (require 'wasp-chat) +(require 'wasp-ai) (require 'wasp-twitch) -(require 'wasp-newspaper) -(require 'wasp-gcp) -(require 'wasp-aoc) -(require 'wasp-uwoomfie) -(require 'wasp-wikipedia) -(require 'muzak) -(require 'muzak-wasp) +;;;; Buffer and mode (defcustom w/friend-buffer "*wasp-friend*" "Name of buffer used to display \"friend\"." :type '(string) @@ -29,219 +22,22 @@ (message "hi i'm \"friend\"") (setq-local cursor-type nil)) -(defun w/get-friend-buffer () +(defun w/friend-get-buffer () "Return the \"friend\" buffer." (unless (get-buffer w/friend-buffer) (with-current-buffer (get-buffer-create w/friend-buffer) (w/friend-mode))) (get-buffer w/friend-buffer)) -(defun w/friend-journalism-input () - "Collect an input for \"friend\"'s journalism based on recent activities." - (s-join - "\n" - (cons - (format "LCOLONQ: %s" (s-trim w/last-stream-transcription)) - (--map - (format "%s: %s" (car it) (cdr it)) - (reverse (-take 20 w/twitch-chat-history)))))) - -(defun w/friend-journalism (author headline) - "Retrieve \"friend\"'s opinion on current events related to HEADLINE. -AUTHOR was a contributing author btw." - (w/ai - (s-concat - "Headline: " headline "\n\n" - (w/friend-journalism-input)) - (lambda (resp) - (when resp - (w/write-chat-event (format "\"friend\" finished writing about: %s" headline)) - (funcall - (if (= (random 5) 0) #'w/newspaper-screenshot (lambda (k) (funcall k nil))) - (lambda (img) - (when img - (w/write-chat-event "...and the article included some photojournalism")) - (push - (w/make-newspaper-article - :headline headline - :author (format "\"friend\" and %s" author) - :content (s-trim resp) - :image img) - w/newspaper-todays-articles))))) - "You are the personality of a desktop buddy named \"friend\". \"friend\" is irreverant but kind, and only speaks in lowercase. You are kind of dumb in a cute way and silly like a virtual pet. You live in the corner of LCOLONQ's stream and provide commentary on events. You like people, video games, emojis, learning, and food. Given a headline of a newspaper article and a summary of recent user activity, please do your best journalist impression and produce a one paragraph article about the situation that fits the headline.")) - -(defconst w/friend-grapheme-phonemes - '((("b" "bb") . "bug") (("d" "dd" "ed") . "dad") - (("f" "ff" "ph" "gh" "lf" "ft") . "fat") - (("g" "gg" "gh" "gu" "gue") . "gun") (("h" "wh") . "hop") - (("j" "ge" "g" "dge" "di" "gg") . "jam") - (("k" "c" "ch" "cc" "lk" "qu" "q" "ck" "x") . "kit") - (("l" "ll") . "live") (("m" "mm" "mb" "mn" "lm") . "man") - (("n" "nn" "kn" "gn" "pn" "mn") . "net") (("p" "pp") . "pin") - (("r" "rr" "wr" "rh") . "run") - (("s" "ss" "c" "sc" "ps" "st" "ce" "se") . "sit") - (("t" "tt" "th" "ed") . "tip") (("v" "f" "ph" "ve") . "vine") - (("w" "wh" "u" "o") . "wit") - (("z" "zz" "s" "ss" "x" "ze" "se") . "zed") - (("s" "si" "z") . "treasure") (("ch" "tch" "tu" "te") . "chip") - (("sh" "ce" "s" "ci" "si" "ch" "sci" "ti") . "sham") - (("th ") . "thongs") (("th") . "leather") - (("ng" "n" "ngue") . "ring") (("y" "i" "j") . "you") - (("a" "ai" "au") . "cat") - (("a" "ai" "eigh" "aigh" "ay" "er" "et" "ei" "au" "ea" "ey") . "bay") - (("e" "ea" "u" "ie" "ai" "a" "eo" "ei" "ae") . "end") - (("e" "ee" "ea" "y" "ey" "oe" "ie" "i" "ei" "eo" "ay") . "be") - (("i" "e" "o" "u" "ui" "y" "ie") . "it") - (("i" "y" "igh" "ie" "uy" "ye" "ai" "is" "eigh") . "spider") - (("a" "ho" "au" "aw" "ough") . "swan") - (("o" "oa" "oe" "ow" "ough" "eau" "oo" "ew") . "open") - (("o" "oo" "u" "ou") . "wolf") (("u" "o" "oo" "ou") . "lug") - (("o" "oo" "ew" "ue" "oe" "ough" "ui" "oew" "ou") . "who") - (("oi" "oy" "uoy") . "join") (("ow" "ou" "ough") . "now") - (("a" "er" "i" "ar" "our" "ur") . "about") - (("air" "are" "ear" "ere" "eir" "ayer") . "chair") (("a") . "arm ") - (("ir" "er" "ur" "ear" "or" "our" "yr") . "bird") - (("aw" "a" "or" "oor" "ore" "oar" "our" "augh" "ar" "ough" "au") . "paw") - (("ear" "eer" "ere" "ier") . "ear") (("ure" "our") . "cure"))) - -(defconst w/friend-phonemes - (-sort - (-on #'> (lambda (x) (length (car x)))) - (--mapcat - (-map (lambda (g) (cons g (cdr it))) (car it)) - w/friend-grapheme-phonemes))) - -(defun w/friend-replace-graphemes (str) - "Replace all graphemes with phoneme words in STR." - (let* ((phoneme-codes (--map-indexed (cons (cdr it) (format "%s," it-index)) w/friend-grapheme-phonemes)) - (grapheme-codes (--map (cons (car it) (alist-get (cdr it) phoneme-codes nil nil #'s-equals?)) w/friend-phonemes)) - (cleaned (s-downcase (replace-regexp-in-string "[^[:alpha:]]" "" str)))) - (--map (car (nth (string-to-number it) phoneme-codes)) (-filter #'s-present? (s-split "," (s-replace-all grapheme-codes cleaned)))))) - -(defun w/friend-phoneme-path (ph) - "Return a randomly chosen path to the given PH." - (let ((samples (f--entries (w/asset "friendvoice/") (s-contains? ph it) t))) - (nth (random (length samples)) samples))) -(defun w/friend-pronounce-phonemes (ph) - "Say PH." - (let ((files (-map #'w/friend-phoneme-path ph))) - (apply - #'start-process - "phoneme-say" nil "playphonemes" - files))) - -;; (defun w/get-friend-expensive-tastes (k) -;; "Pass non-nil to K if \"friend\" has expensive tastes this stream. -;; Also update the cached Amazon stock price for next stream." -;; (fig//load-db2-entry -;; "LCOLONQ" :amzn-price -;; (lambda (price) -;; (let ((prev (or price 0)) -;; (cur (fig//stock-price "AMZN"))) -;; (fig//update-db-number "LCOLONQ" :amzn-price (lambda (_) cur)) -;; (funcall k (> cur prev)))))) - -(defvar w/friend-tastes " You love eating cranberries and lemons.") -;; (fig//get-friend-expensive-tastes -;; (lambda (expensive) -;; (let ((moon (car (lunar-phase-for-date (calendar-current-date))))) -;; (setf -;; fig//friend-tastes -;; (s-concat -;; (cond -;; ((-contains? '("New" "Waxing Crescent") moon) " You prefer warm foods like soups.") -;; ((-contains? '("First Quarter" "Waxing Gibbous") moon) " You prefer to eat leafy greens and fruits.") -;; ((-contains? '("Full" "Waning Gibbous") moon) " You prefer to eat barbeque and grilled meats.") -;; ((-contains? '("Last Quarter" "Waning Crescent") moon) " You prefer to eat corn beans and squash.") -;; (t "") -;; ) -;; (if expensive " You have expensive taste in food and dislike any food that can be obtained cheaply." "")))))) - -;; states: -;; default -;; jumping -;; eating, eating0, eating1, eating2 -;; chatting, chatting0 +;;;; State (defvar w/friend-state 'default) (defvar w/friend-emotion "neutral") (defvar w/friend-message-cache nil) (defvar w/friend-state-timer 0) - (defvar w/friend-animation 1) (defvar w/friend-speech "") (defvar w/friend-speech-timer 0) -(defconst w/friend-composition-examples - '(("My Life Is Like A Video Game" . "A/A/c/c/c/dcc/c///a/a/a/f/g/f/f///a/a/a/a/g/g/ga//f//") - ("Super Idol" . "gg[g#]gfg[CD#cG#][D#][CG#f][Cd#][Cc]C[Cd#]/[DFfd][FA#][DA#f]D[Dg][A#f][Dd#a#]f[GBgd]B[Gd#][GDc][Gd#]G[Gd#]/[D#Gc]G[D#cg][D#g][D#g#][dg][D#f][d#d#][D#Ggc]f[D#][D#Gg][D#c][D#][D#c][d#][DFdA#]F[DA#d][Dd][Dg]/[Da#g]/[D#d#][D#][D#][D#][D#][FD#][GA#][fd#][gA#]") - ("Reindeer" . "FG/FD/B/A/G/////GAGAG/c/B///////FG/FD/B/A/G/////GAGAG/d/c/////|C4~~~G3~~~C4~~~G3~~~C~~~E3~D#3~D3~~~~~~~G3~~~D3~~~G3~~~D3~~~G3~~D3G3~B3/C4"))) - -(defun w/friend-compose-song (theme) - "Compose a song about THEME to play on the bells." - (w/ai - theme - (lambda (res) - (let* ((sp (s-split ":" (s-trim res))) - (name (s-trim (car sp))) - (song (s-trim (cadr sp)))) - (when (and (stringp name) (stringp song)) - (w/friend-respond - (format "You just composed a song about %s called %s! Say something about it!" theme name) - (lambda () - (w/write-chat-event (format "The song is called %s: %s" name song)) - (w/add-song (s-concat "friend's " name) song) - (muzak/play-tracks song)))))) - "Please compose a song about the provided theme. The format for the song is a sequence of characters with meanings as follows: / represents a rest, uppercase letters A through G indicate semitones, octaves are specified with a number following a semitone, ~ extends the duration of a note, square brackets like [] group notes together into a chord. The pipe character | separates tracks. Respond only with the song's name followed by a colon folowed by the song notes. Do not explain yourself. The song should ideally be 20 to 30 notes long." - (-map #'car w/friend-composition-examples) - (--map (format "%s: %s" (car it) (cdr it)) w/friend-composition-examples))) - -(defun w/friend-personality (msg k) - "Given MSG, pass a string with more personality to K." - (let ((call (s-concat w/friend-emotion " | " msg))) - (w/ai - call - (lambda (new) - (let ((sp (s-split "|" (s-trim new)))) - (if (= 2 (length sp)) - (progn - (when (stringp (car sp)) - (setf w/friend-emotion (s-trim (car sp)))) - (when (stringp (cadr sp)) - (let ((resp (s-trim (cadr sp)))) - (push (cons call (s-trim new)) w/friend-message-cache) - (funcall k resp)))) - (let ((resp (s-trim new))) - (push (cons call (s-trim new)) w/friend-message-cache) - (funcall k resp))))) - (s-concat - "You are the personality of a desktop buddy named \"friend\". \"friend\" is irreverant but kind, and only speaks in lowercase. You are kind of dumb in a cute way and silly like a virtual pet. You live in the corner of LCOLONQ's stream and provide commentary on events. Given an emotional state and a description of an event that happened to you, please respond with a new emotional state and a short message in response considering your emotional state. The message should only be one clause. You like people, video games, emojis, learning, and food." - "The theme of LCOLONQ's stream today is " (s-trim (w/slurp "~/today.txt")) " " - "The title of LCOLONQ's stream today is " w/twitch-current-stream-title " " - w/friend-tastes - ) - (cons "neutral | Mimeyu fed you an apple." (reverse (-take 5 (-map #'car w/friend-message-cache)))) - (cons "happy | yum apple so good" (reverse (-take 5 (-map #'cdr w/friend-message-cache)))) - ))) - -(defun w/enemy-personality (msg k) - "Given MSG, pass a string with more personality (enemy mode) to K." - (w/ai - (s-concat w/friend-emotion " | " msg) - (lambda (new) - (let ((sp (s-split "|" (s-trim new)))) - (when (= 2 (length sp)) - (when (stringp (car sp)) - (setf w/friend-emotion (s-trim (car sp)))) - (when (stringp (cadr sp)) - (funcall k (s-trim (cadr sp))))))) - (s-concat - "You are the personality of a desktop buddy named \"enemy\". \"enemy\" is irreverant and rude. You are very intelligent in a cute way and mean like a snake. You live in the corner of LCOLONQ's stream and provide commentary on events. Given an emotional state and a description of an event that happened to you, please respond with a new emotional state and a short message in response considering your emotional state. The message should only be one clause." - w/friend-tastes - ) - "neutral | notgeiser fed you bone hurting juice." - "disdainful | I really dislike you strongly, notgeiser." - )) - (defun w/friend-set-state (st &optional time) "Set \"friend\"'s state to ST for TIME seconds." (setf w/friend-state st) @@ -256,24 +52,40 @@ AUTHOR was a contributing author btw." (defun w/friend-say (msg) "Have \"friend\" say MSG." (w/daily-log (format "[FRIEND]: %s" msg)) + (w/gizmo-ensure-shown (w/friend-get-buffer)) (w/friend-pronounce-phonemes (w/friend-replace-graphemes msg)) (w/friend-set-speech msg 10) (w/friend-set-state 'chatting 10)) -(defun w/friend-feed (user food) - "Call when USER fed FOOD to \"friend\"." - (if (s-equals? "imgeiser" user) - (w/enemy-personality - (format "You dislike %s and they are your enemy. %s fed you %s" user user food) - (lambda (msg) - (w/friend-set-speech msg 6) - (w/friend-set-state 'eating 6))) - (w/friend-personality - (format "%s fed you %s" user food) - (lambda (msg) - (w/friend-set-speech msg 6) - (w/friend-set-state 'eating 6))))) - +;;;; Core +(defun w/friend-personality (msg k &optional extra) + "Given MSG, pass a string with more personality to K. +Append EXTRA to the personality." + (let ((call (s-concat w/friend-emotion " | " msg))) + (w/ai + call + (lambda (new) + (let ((sp (s-split "|" (s-trim new)))) + (if (= 2 (length sp)) + (progn + (when (stringp (car sp)) + (setf w/friend-emotion (s-trim (car sp)))) + (when (stringp (cadr sp)) + (let ((resp (s-trim (cadr sp)))) + (push (cons call (s-trim new)) w/friend-message-cache) + (funcall k resp)))) + (let ((resp (s-trim new))) + (push (cons call (s-trim new)) w/friend-message-cache) + (funcall k resp))))) + (s-concat + "You are the personality of a desktop buddy named \"friend\". \"friend\" is irreverant but kind, and only speaks in lowercase. You are kind of dumb in a cute way and silly like a virtual pet. You live in the corner of LCOLONQ's stream and provide commentary on events. You never use punctuation. You are foolish. You never use metaphors or similes or idioms. You never describe something by comparing it to another thing. You never use the words \"like\" or \"as\". Given an emotional state and a description of an event that happened to you, please respond with a new emotional state and a short message in response considering your emotional state. The message should only be one clause, but you can include an occasional emoji if it is cute only. You like people, video games, emojis, learning, and food. " + "The theme of LCOLONQ's stream today is " (s-trim (w/slurp "~/today.txt")) " " + "The title of LCOLONQ's stream today is " w/twitch-current-stream-title " " + (or extra "")) + (cons "neutral | Mimeyu fed you an apple." (reverse (-take 5 (-map #'car w/friend-message-cache)))) + (cons "happy | yum apple so good" (reverse (-take 5 (-map #'cdr w/friend-message-cache))))))) + +;;;; Interface (defun w/friend-respond (ev &optional k) "Call when an event EV happens to \"friend\". If K is specified, call it after the response." @@ -284,307 +96,109 @@ If K is specified, call it after the response." (when k (funcall k))))) -(defun w/friend-chat (user msg) - "Call when USER sends MSG to \"friend\"." - (if (s-equals? user "imgeiser") - (w/enemy-personality - (format "You dislike %s and they are your enemy. %s says: %s" user user msg) - (lambda (msg) - (w/friend-set-speech msg 10) - (w/friend-set-state 'chatting 10))) - (w/friend-respond (format "%s says: %s" user msg)))) - -(defun w/friend-gift (user gift) - "Call when USER gave GIFT to \"friend\"." - (if (s-equals? user "imgeiser") - (w/enemy-personality - (format "You dislike %s and they are your enemy. %s gave you %s as a Christmas present." user user gift) - (lambda (msg) - (w/friend-set-speech msg 6))) - (w/friend-personality - (format "%s gave you %s as a Christmas present." user gift) - (lambda (msg) - (w/friend-set-speech msg 6))))) - -(defun w/friend-tfig (user tfig) - "Call when USER took TFIG from \"friend\"." - (if (not (s-equals? "imgeiser" user)) - (w/enemy-personality - (format "You dislike %s and they are your enemy. %s took away %s from you and stole your Christmas present." user user tfig) - (lambda (msg) - (w/friend-set-speech msg 6))) - (w/friend-personality - (format "%s took away %s from you and stole your Christmas present." user tfig) - (lambda (msg) - (w/friend-set-speech msg 6))))) - -(defun w/friend-react-wikipedia (user page) - "Call when USER asks \"friend\" to react to PAGE on Wikipedia." - (w/fetch-wikipedia - page - (lambda (sum) - (w/friend-respond (format "%s asks you to react to the Wikipedia page for %s. The page summary is: %s" user page sum))))) - -(defun w/friend-callout-flycheck-error () - "Call to respond to a random Flycheck error in the current buffer." - (when-let* ((errs (--filter (eq (flycheck-error-level it) 'error) flycheck-current-errors)) - (err (nth (random (length errs)) errs))) - (w/friend-respond - (s-concat - "LCOLONQ made an error while programming: " - (flycheck-error-message err))))) - -(defun w/friend-callout-holiday () - "Call to respond to the current holiday." - (w/friend-respond "We're restoring a crumbling mansion to it's former glory. Say something about that please!")) - -(defun w/friend-callout-hexamedia () - "Call to respond to a random recent chatter's Hexamedia card collection." - (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :hexamedia-cards (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users))) - (cards (cdr user)) - (coll (and cards (nth (random (length cards)) cards)))) - (when coll - (w/friend-respond - (format - "%s has collected %s out of 20 cards in the %s collection. Please mention the collection name and the person collecting." - (car user) - (cdr coll) - (car coll)))))) - -(defun w/friend-callout-copfish () - "Call to respond to a random recent chatter's Copfish ratio." - (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :copfish-ratio (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users)))) - (when user - (w/friend-respond - (format - "%s has collected %s out of %s fish in the Copfish fish catching collection. Please mention the collection name and the person collecting." - (car user) - (cadr user) - (cddr user)))))) - -(defun w/friend-callout-uwoomfie () - "Call to respond to a random recent chatter's Uwoomfie status." - (let* ((users - (-filter - #'cdr - (--map - (cons (car it) (w/uwoomfie-get-status (car it))) - (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users)))) - (cl-case (cdr user) - (cool (w/friend-respond (format "According to UWOSLAB, %s is a very cool person. Make sure to mention their username." (car user)))) - (honored (w/friend-respond (format "According to UWOSLAB, %s is an honorary viewer. Make sure to mention their username." (car user)))) - (t nil)))) - -(defun w/friend-callout-shindaggers () - "Call to respond to a random recent chatter's Shindaggers knife collection." - (let* ((users (-filter #'cdr (--map (cons (car it) (alist-get :shindaggers-knives (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users))) - (knives (cdr user)) - (knife (and knives (nth (random (length knives)) knives)))) - (when knife - (w/friend-respond - (format - "%s has collected the %s from shindig's Shindaggers knife collection. Please mention the collection name and the person collecting and the knife." - (car user) - knife))))) - -(defun w/friend-callout-aoc () - "Call to respond to a random recent chatter's Advent of Code completion." - (let* ((users (-filter #'cdr (--map (cons (car it) (w/aoc-lookup-stars (car it))) (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users)))) - (w/friend-respond - (format - "%s has been doing Advent of Code this year, and they've completed %d out of %d problems so far." - (car user) - (cdr user) - (w/aoc-max-stars))))) - -(defun w/friend-callout-gcp () - "Call to respond to the current GCP dot." - (w/gcp-dot - (lambda (d) - (w/friend-respond - (format - "The Global Consciousness Project indicator is currently as follows: %s" - (w/gcp-describe d)))))) +;;;; Updating +(defun w/friend-random-event () + "Activate a random \"friend\" event." + (cl-case (random 10) + (9 (w/friend-set-state 'jumping)))) -(defun w/friend-callout-resolution () - "Call to respond to a random recent chatter's resolve." - (when-let* - ((users (-filter #'cdr (--map (cons (car it) (alist-get :resolution2025 (w/user-cache-get (car it)))) (-take 10 w/twitch-chat-history)))) - (user (and users (nth (random (length users)) users)))) - (if (s-match (rx (one-or-more digit) (zero-or-more space) "x" (zero-or-more space) (one-or-more digit)) (cdr user)) - (w/friend-respond - (format - "%s snarkily said that their New Year's resolution was a screen resolution. What do you think about this?" (car user))) - (w/friend-respond - (format - "%s made a New Year's resolution to %s. Ask them how it's going!" - (car user) - (cdr user)))))) +(defun w/friend-update () + "Update \"friend\"'s state per tick." + (setf w/friend-animation (% (+ w/friend-animation 1) 2)) + (if (> w/friend-state-timer 0) + (cl-decf w/friend-state-timer) + (setf w/friend-state 'default)) + (if (> w/friend-speech-timer 0) + (cl-decf w/friend-speech-timer)) + (when (= (random 120) 0) + (w/friend-random-event)) + (cl-case w/friend-state + (eating (setf w/friend-state 'eating0)) + (eating0 (setf w/friend-state 'eating1)) + (eating1 (setf w/friend-state 'eating2)) + (eating2 (setf w/friend-state 'eating1)) + (chatting (setf w/friend-state 'chatting0)) + (chatting0 (setf w/friend-state 'chatting)))) -(defun w/get-friend-offset () +;;;; Rendering +(defun w/friend-get-offset () "Return the number of newlines to print before \"friend\"." (if (-contains? '(jumping) w/friend-state) - w/friend-animation + w/friend-animation 1)) -(defun w/get-friend-face () +(defun w/friend-get-face () "Return the eyes and mouth for \"friend\" as a list of strings." (cl-case w/friend-state (jumping (list "^" "^" "ww")) - (eating (list "v" "v" "<>")) (eating0 (list "v" "v" "<>")) (eating1 (list "-" "-" "mw")) (eating2 (list "-" "-" "wm")) - (chatting (list ">" ">" "oo")) (chatting0 (list ">" ">" "~~")) - (t (list "-" "-" "ww")))) -(defun w/get-friend-bubble () +(defun w/friend-get-bubble () "Return the text bubble for \"friend\"." (if (> w/friend-speech-timer 0) - w/friend-speech + w/friend-speech nil)) -(defun w/friend-random-event () - "Activate a random \"friend\" event." - (cl-case (random 10) - (0 (w/friend-callout-flycheck-error)) - (1 (w/friend-callout-gcp)) - (2 (w/friend-callout-hexamedia)) - (3 (w/friend-callout-uwoomfie)) - (4 (w/friend-callout-shindaggers)) - (5 (w/friend-callout-copfish)) - (6 (w/friend-callout-resolution)) - (9 (w/friend-callout-holiday)) - (t (w/friend-set-state 'jumping)))) - -(defun w/update-friend () - "Update \"friend\"'s state per tick." - (setf w/friend-animation (% (+ w/friend-animation 1) 2)) - (if (> w/friend-state-timer 0) - (cl-decf w/friend-state-timer) - (setf w/friend-state 'default)) - (if (> w/friend-speech-timer 0) - (cl-decf w/friend-speech-timer)) - (when (= (random 120) 0) - (w/friend-random-event)) - (cl-case w/friend-state - (eating (setf w/friend-state 'eating0)) - (eating0 (setf w/friend-state 'eating1)) - (eating1 (setf w/friend-state 'eating2)) - (eating2 (setf w/friend-state 'eating1)) - - (chatting (setf w/friend-state 'chatting0)) - (chatting0 (setf w/friend-state 'chatting)) - )) - -(defun w/render-friend () +(defun w/friend-render () "Render the \"friend\" buffer." (save-excursion - (with-current-buffer (w/get-friend-buffer) + (with-current-buffer (w/friend-get-buffer) (setq-local cursor-type nil) (let* - ((inhibit-read-only t) - (face (w/get-friend-face)) - (bubble (w/get-friend-bubble))) + ((inhibit-read-only t) + (face (w/friend-get-face)) + (bubble (w/friend-get-bubble))) (erase-buffer) (w/write - (format-spec - "%a\ + (format-spec + "%a\ /----\\ / %l %r \\ \\ %m / +----+\ " -;; "%a\ -;; ---- -;; / \\ -;; ---------- -;; / %l %r \\ -;; \\ %m / -;; +----+\ -;; " -;; "%a\ -;; oooooo -;; oooooooo -;; oo/----\\oo -;; o/ %l %r \\o -;; \\ %m / -;; +----+\ -;; " -;; "%a\ -;; /\\ -;; /\\/\\ -;; / :3 \\ -;; /santa!\\ -;; ~~~~~~~~~~ -;; ~~~~~~~~~~ -;; / %l %r \\ -;; \\ %m / -;; +----+\ -;; " -;; "%a\ -;; /\\ -;; / *\\ -;; / * \\ -;; / * * \\ -;; ---------- -;; / %l %r \\ -;; \\ %m / -;; +----+\ -;; " -;; "%a\ -;; --- -;; / \\ -;; / [=] \\ -;; ----------- -;; / %l %r \\ -;; \\ %m / -;; +----+\ -;; " - `((?a . ,(s-repeat (w/get-friend-offset) " \n")) - (?l . ,(car face)) - (?r . ,(cadr face)) - (?m . ,(caddr face))))) + `((?a . ,(s-repeat (w/friend-get-offset) " \n")) + (?l . ,(car face)) + (?r . ,(cadr face)) + (?m . ,(caddr face))))) (goto-char (point-min)) (end-of-line) (w/write (or bubble "")) (forward-line) (end-of-line) (w/write (if bubble "/" "")) - )))) + ))) + (w/gizmo-upload (w/friend-get-buffer))) (defvar w/friend-timer nil) -(defun w/run-friend-timer () +(defun w/friend-run-timer () "Run the \"friend\" timer." (when w/friend-timer (cancel-timer w/friend-timer)) (condition-case e - (progn - (w/update-friend) - (w/render-friend)) + (progn + (w/friend-update) + (w/friend-render)) ((debug error) - (message "friend error: %s" e) - (cancel-timer w/friend-timer) - (setq w/friend-timer nil))) + (message "friend error: %s" e) + (cancel-timer w/friend-timer) + (setq w/friend-timer nil))) (setq - w/friend-timer - (run-with-timer 1 nil #'w/run-friend-timer))) + w/friend-timer + (run-with-timer 1 nil #'w/friend-run-timer))) -(defun w/start-friend () +(defun w/friend-start () "Launch \"friend\"." (interactive) - (w/run-friend-timer)) + (w/friend-run-timer)) -(defun w/stop-friend () +(defun w/friend-stop () "Stop \"friend\"." (interactive) (cancel-timer w/friend-timer) diff --git a/src/gizmo/wasp-hex.el b/src/gizmo/wasp-hex.el index 81aa4f12..1417f0c9 100644 --- a/src/gizmo/wasp-hex.el +++ b/src/gizmo/wasp-hex.el @@ -10,34 +10,37 @@ (require 'ht) (require 's) (require 'rx) +(require 'ttf) (defconst w/hex-types - '(("DIGITAL" . hexadigital) - ("ESREVER" . reverse) - ("VANYAR" . quenya) - ("LEONDIS" . emoji) - ("KOBY" . clone) - ("BIGFOOT" . hair) - ("ALTMAN" . unbiblical) - ("DECIBEL" . allcaps) - ("PIQUANT" . mild) - ("PORCINE" . piglatin) - ("PYTHON" . oldeenglishe) - ("MANIAC" . pokemon) - ("ELBERETH" . counterspell) - ("ESUNA" . decurse) - )) + '( ("DIGITAL" . hexadigital) + ("ESREVER" . reverse) + ("VANYAR" . quenya) + ("LEONDIS" . emoji) + ("KOBY" . clone) + ("BIGFOOT" . hair) + ("ALTMAN" . unbiblical) + ("DECIBEL" . allcaps) + ("PIQUANT" . mild) + ("PORCINE" . piglatin) + ("PYTHON" . oldeenglishe) + ("MANIAC" . pokemon) + ("ELBERETH" . counterspell) + ("ESUNA" . decurse) + ("DECIMAL" . decimal) + ("DROPBEAR" . upsidedown) + )) (defconst w/hex-users (ht-create 'equal)) (defconst w/hex-pokemon (w/read-sexp (w/slurp (w/asset "palcries/pokemon.eld")))) (w/defstruct - w/hex - type - caster - (timer 0) - data) + w/hex + type + caster + (timer 0) + data) (defun w/hex-get (user) "Return the active hexes for USER." @@ -46,15 +49,15 @@ (defun w/hex-add (user hex) "Add HEX to the active hexes for USER." (let* ((key (s-downcase user)) - (cur (ht-get w/hex-users key))) + (cur (ht-get w/hex-users key))) (unless (> (length cur) 10) (cl-case (w/hex-type hex) (decurse - (ht-set! w/hex-users key nil)) + (ht-set! w/hex-users key nil)) (otherwise - (if-let ((defender (--find (eq 'counterspell (w/hex-type it)) cur))) - (w/write-chat-event (format "%s counterspelled %s's hex on %s!" (w/hex-caster defender) (w/hex-caster hex) user)) - (ht-set! w/hex-users key (cons hex cur)))))))) + (if-let* ((defender (--find (eq 'counterspell (w/hex-type it)) cur))) + (w/write-chat-event (format "%s counterspelled %s's hex on %s!" (w/hex-caster defender) (w/hex-caster hex) user)) + (ht-set! w/hex-users key (cons hex cur)))))))) (defun w/hex-clear (user) "Decurse USER." @@ -63,182 +66,192 @@ (defun w/hex (user caster type) "Record that CASTER cast a hex of TYPE on USER." (w/hex-add - user - (w/make-hex - :type type - :caster caster - :timer 10 - :data - (cl-case type - (pokemon (random (length w/hex-pokemon))) - (t nil))))) + user + (w/make-hex + :type type + :caster caster + :timer 10 + :data + (cl-case type + (pokemon (random (length w/hex-pokemon))) + (t nil))))) (defun w/hex-pokemon-syllable (pkmn) "Extract a syllable from PKMN." (if (= (random 4) 0) - pkmn + pkmn (let ((vowels '("a" "e" "i" "o" "u" "y"))) (or - (->> - (-mapcat - (lambda (idx) - (--map - (substring pkmn idx (+ idx it)) - (-iota (- (length pkmn) idx)))) - (-iota (length pkmn))) - (--filter - (and - (s-present? it) - (>= (length it) 2) - (not (-contains? vowels (substring it 0 1))) - (-contains? vowels (substring it 1 2)) - (-any (lambda (v) (s-contains? v it)) vowels))) - (w/pick-random)) - pkmn)))) + (->> + (-mapcat + (lambda (idx) + (--map + (substring pkmn idx (+ idx it)) + (-iota (- (length pkmn) idx)))) + (-iota (length pkmn))) + (--filter + (and + (s-present? it) + (>= (length it) 2) + (not (-contains? vowels (substring it 0 1))) + (-contains? vowels (substring it 1 2)) + (-any (lambda (v) (s-contains? v it)) vowels))) + (w/pick-random)) + pkmn)))) (defun w/hex-transform-pokemon (msg idx) "Transform MSG as if it was spoken by Pokemon IDX." (let* ((pkmn (nth (- idx 1) w/hex-pokemon))) (s-capitalize - (s-replace-regexp - (rx (one-or-more alpha)) - (lambda (_) (w/hex-pokemon-syllable pkmn)) - msg)))) + (s-replace-regexp + (rx (one-or-more alpha)) + (lambda (_) (w/hex-pokemon-syllable pkmn)) + msg)))) (defun w/hex-transform-helper (msg hexes k) "Transform MSG according to HEXES and pass the result to K." (cond - ((car hexes) - (cl-case (w/hex-type (car hexes)) - (hexadigital - (setf (w/chat-message-user msg) "Hexadigital") - (setf (w/chat-message-user-color msg) "#AED673") - (setf - (w/chat-message-text msg) - (w/twitch-replace-emotes-randomly - (w/chat-message-text msg) - (-map - #'w/twitch-emote-path - '("emotesv2_abbaa8ac25c14148ad8c1ef8046a3659" - "emotesv2_20b76cf83c5b431085c0f8361e3dbc92" - "emotesv2_3cf549deb99e4d34846c0cae6648657b" - "emotesv2_1e2390f5092f453184f8615fb899c4b5" - "emotesv2_c088d4ad26804a51a44170b711fec283" - "emotesv2_d9130333dfaf46a0a581bc1c814a1ce5" - "emotesv2_bcfda5ce372f453e98cb6aa42b7d7cc3" - "emotesv2_c333ce14069e4120a5857e121aeea046" - "emotesv2_4e960082535a48188e139b65393aa143" - "emotesv2_079d9054ba4f4e9881fd38a2a7e7d423" - "emotesv2_f1e892a1d0b145f98964cfc7f84c6377" - "emotesv2_65efa7f9a7d246c29a618bc3447b703b" - "emotesv2_107c23f9db49457184c0b8ebebb58113" - "emotesv2_3b74375a1ecf41b18bf04dcc6f133eb6" - "emotesv2_38a6711524a245a3976732d08f2ca1d9" - "emotesv2_84de70e8bc614c88a53711978c0fc64d" - "emotesv2_18c29a371f2b4d23bcd77bba6f1d8ab3" - "emotesv2_9d1b0530ad20434888b2e380cc7acb69" - "emotesv2_f1dbb27287a04c5ab815e2fc703be6e4" - "emotesv2_7e15943fdefe4a4c8d0da79202d739aa" - "emotesv2_27453bd537c4478488abf4e0c05b3bd0" - "emotesv2_8d844e7e064a41ed999a598a4aafadfd" - "emotesv2_1c0fb90252b243a0a359c80c58b4cff4")))) - (w/hex-transform-helper msg (cdr hexes) k)) - (reverse - (setf (w/chat-message-text msg) (s-reverse (w/chat-message-text msg))) - (w/hex-transform-helper msg (cdr hexes) k)) - (oldeenglishe - (w/ai - (w/chat-message-text msg) - (lambda (new) - (setf (w/chat-message-text msg) new) + ((car hexes) + (cl-case (w/hex-type (car hexes)) + (hexadigital + (setf (w/chat-message-user msg) "Hexadigital") + (setf (w/chat-message-user-color msg) "#AED673") + (setf + (w/chat-message-text msg) + (w/twitch-replace-emotes-randomly + (w/chat-message-text msg) + (-map + #'w/twitch-emote-path + '("emotesv2_abbaa8ac25c14148ad8c1ef8046a3659" + "emotesv2_20b76cf83c5b431085c0f8361e3dbc92" + "emotesv2_3cf549deb99e4d34846c0cae6648657b" + "emotesv2_1e2390f5092f453184f8615fb899c4b5" + "emotesv2_c088d4ad26804a51a44170b711fec283" + "emotesv2_d9130333dfaf46a0a581bc1c814a1ce5" + "emotesv2_bcfda5ce372f453e98cb6aa42b7d7cc3" + "emotesv2_c333ce14069e4120a5857e121aeea046" + "emotesv2_4e960082535a48188e139b65393aa143" + "emotesv2_079d9054ba4f4e9881fd38a2a7e7d423" + "emotesv2_f1e892a1d0b145f98964cfc7f84c6377" + "emotesv2_65efa7f9a7d246c29a618bc3447b703b" + "emotesv2_107c23f9db49457184c0b8ebebb58113" + "emotesv2_3b74375a1ecf41b18bf04dcc6f133eb6" + "emotesv2_38a6711524a245a3976732d08f2ca1d9" + "emotesv2_84de70e8bc614c88a53711978c0fc64d" + "emotesv2_18c29a371f2b4d23bcd77bba6f1d8ab3" + "emotesv2_9d1b0530ad20434888b2e380cc7acb69" + "emotesv2_f1dbb27287a04c5ab815e2fc703be6e4" + "emotesv2_7e15943fdefe4a4c8d0da79202d739aa" + "emotesv2_27453bd537c4478488abf4e0c05b3bd0" + "emotesv2_8d844e7e064a41ed999a598a4aafadfd" + "emotesv2_1c0fb90252b243a0a359c80c58b4cff4")))) (w/hex-transform-helper msg (cdr hexes) k)) - "Please translate the chat message given to ye olde Englishe. Only supply the translation without any additional context, as if it were to be substituted for the original message. Do not complain or give an explanation why you cannot do this, just do your best please.")) - (quenya - (w/ai - (w/chat-message-text msg) - (lambda (new) - (setf (w/chat-message-text msg) new) + (reverse + (setf (w/chat-message-text msg) (s-reverse (w/chat-message-text msg))) (w/hex-transform-helper msg (cdr hexes) k)) - "Please translate the chat message given to Quenya, one of Tolkien's elvish languages. Only supply the translation without any additional context, as if it were to be substituted for the original message. Do not complain or give an explanation why you cannot do this, just do your best please. If you can't do it just make something up as long as it looks like Quenya.")) - (emoji - (w/ai - (w/chat-message-text msg) - (lambda (new) - (setf (w/chat-message-text msg) new) + (oldeenglishe + (w/ai + (w/chat-message-text msg) + (lambda (new) + (setf (w/chat-message-text msg) new) + (w/hex-transform-helper msg (cdr hexes) k)) + "Please translate the chat message given to ye olde Englishe. Only supply the translation without any additional context, as if it were to be substituted for the original message. Do not complain or give an explanation why you cannot do this, just do your best please.")) + (quenya + (w/ai + (w/chat-message-text msg) + (lambda (new) + (setf (w/chat-message-text msg) new) + (w/hex-transform-helper msg (cdr hexes) k)) + "Please translate the chat message given to Quenya, one of Tolkien's elvish languages. Only supply the translation without any additional context, as if it were to be substituted for the original message. Do not complain or give an explanation why you cannot do this, just do your best please. If you can't do it just make something up as long as it looks like Quenya.")) + (emoji + (w/ai + (w/chat-message-text msg) + (lambda (new) + (setf (w/chat-message-text msg) new) + (w/hex-transform-helper msg (cdr hexes) k)) + "Please translate the chat message given to exclusively emoji. Do not provide any other text, only a string of emoji that somehow correspond to the message.")) + (clone + (let* ((caster (w/hex-caster (car hexes))) + (hist (-take 10 (--filter (s-equals? (car it) caster) w/twitch-chat-history)))) + (w/ai + (w/chat-message-text msg) + (lambda (new) + (setf (w/chat-message-text msg) new) + (w/hex-transform-helper msg (cdr hexes) k)) + (format + "Please translate the given chat message from %s as if it were written by the user %s. Do not respond to the message, only create another message with similar meaning in different style. You should try to match the example messages from %s in capitalization, formatting, and tone. %s has sent messages like:\n%s" + (w/chat-message-user msg) + caster + caster + caster + (s-join "\n" (-map #'cdr hist)))))) + (hair + (w/model-region-word "hair" (w/chat-message-text msg))) + (unbiblical + (setf (w/chat-message-biblicality msg) -666) (w/hex-transform-helper msg (cdr hexes) k)) - "Please translate the chat message given to exclusively emoji. Do not provide any other text, only a string of emoji that somehow correspond to the message.")) - (clone - (let* ((caster (w/hex-caster (car hexes))) - (hist (-take 10 (--filter (s-equals? (car it) caster) w/twitch-chat-history)))) - (w/ai - (w/chat-message-text msg) - (lambda (new) - (setf (w/chat-message-text msg) new) - (w/hex-transform-helper msg (cdr hexes) k)) - (format - "Please translate the given chat message from %s as if it were written by the user %s. Do not respond to the message, only create another message with similar meaning in different style. You should try to match the example messages from %s in capitalization, formatting, and tone. %s has sent messages like:\n%s" - (w/chat-message-user msg) - caster - caster - caster - (s-join "\n" (-map #'cdr hist)))))) - (hair - (w/model-region-word "hair" (w/chat-message-text msg))) - (unbiblical - (setf (w/chat-message-biblicality msg) -666) - (w/hex-transform-helper msg (cdr hexes) k)) - (allcaps - (setf (w/chat-message-text msg) (s-upcase (w/chat-message-text msg))) - (w/hex-transform-helper msg (cdr hexes) k)) - (mild - (w/ai - (w/chat-message-text msg) - (lambda (new) - (setf (w/chat-message-text msg) new) + (allcaps + (setf (w/chat-message-text msg) (s-upcase (w/chat-message-text msg))) (w/hex-transform-helper msg (cdr hexes) k)) - "Please censor all profanity in the given message and respond with the censored version. Censor by rewriting in a very polite way like Ned Flanders. Do not provide any other text, only a censored version of the message. If there is no profanity respond with the given message verbatim.")) - (pokemon - (w/audio-play (w/asset (format "palcries/%d.mp3" (w/hex-data (car hexes)))) nil 50) - (setf - (w/chat-message-user msg) - (s-titleize (nth (- (w/hex-data (car hexes)) 1) w/hex-pokemon))) - (setf - (w/chat-message-text msg) - (w/hex-transform-pokemon (w/chat-message-text msg) (w/hex-data (car hexes)))) - (w/hex-transform-helper msg (cdr hexes) k)) - (piglatin - (setf - (w/chat-message-text msg) - (s-join - " " - (--map - (let* ((slice (s-slice-at (rx (any "a" "e" "i" "o" "u")) it)) - (consonant (car slice)) - (rest (s-join "" (cdr slice)))) - (s-concat rest consonant "ay")) - (s-split-words (w/chat-message-text msg))))) - (w/hex-transform-helper msg (cdr hexes) k)) - (t (w/hex-transform-helper msg (cdr hexes) k)))) - (t (funcall k msg)))) + (mild + (w/ai + (w/chat-message-text msg) + (lambda (new) + (setf (w/chat-message-text msg) new) + (w/hex-transform-helper msg (cdr hexes) k)) + "Please censor all profanity in the given message and respond with the censored version. Censor by rewriting in a very polite way like Ned Flanders. Do not provide any other text, only a censored version of the message. If there is no profanity respond with the given message verbatim.")) + (pokemon + (w/audio-play (w/asset (format "palcries/%d.mp3" (w/hex-data (car hexes)))) nil 50) + (setf + (w/chat-message-user msg) + (s-titleize (nth (- (w/hex-data (car hexes)) 1) w/hex-pokemon))) + (setf + (w/chat-message-text msg) + (w/hex-transform-pokemon (w/chat-message-text msg) (w/hex-data (car hexes)))) + (w/hex-transform-helper msg (cdr hexes) k)) + (piglatin + (setf + (w/chat-message-text msg) + (s-join + " " + (--map + (let* ((slice (s-slice-at (rx (any "a" "e" "i" "o" "u")) it)) + (consonant (car slice)) + (rest (s-join "" (cdr slice)))) + (s-concat rest consonant "ay")) + (s-split-words (w/chat-message-text msg))))) + (w/hex-transform-helper msg (cdr hexes) k)) + (decimal + (setf + (w/chat-message-text msg) + (s-join " " (--map (format "%d" it) (w/chat-message-text msg)))) + (w/hex-transform-helper msg (cdr hexes) k)) + (upsidedown + (setf + (w/chat-message-text msg) + (ttf/flip (w/chat-message-text msg))) + (w/hex-transform-helper msg (cdr hexes) k)) + (t (w/hex-transform-helper msg (cdr hexes) k)))) + (t (funcall k msg)))) (defun w/hex-transform (user msg) "Given MSG, write to chat based on USER's hexes." (w/hex-transform-helper - msg (w/hex-get user) - (lambda (msg) - (when msg - (w/write-chat-message msg))))) + msg (w/hex-get user) + (lambda (msg) + (when msg + (w/write-chat-message msg))))) (defun w/hex-tick (user) "Decrement timers for all of USER's hexes." - (when-let ((hexes (w/hex-get user))) + (when-let* ((hexes (w/hex-get user))) (ht-set - w/hex-users - (s-downcase user) - (-non-nil - (--map - (when (> (cl-decf (w/hex-timer it)) 0) - it) - hexes))))) + w/hex-users + (s-downcase user) + (-non-nil + (--map + (when (> (cl-decf (w/hex-timer it)) 0) + it) + hexes))))) (provide 'wasp-hex) ;;; wasp-hex.el ends here diff --git a/src/gizmo/wasp-newspaper.el b/src/gizmo/wasp-newspaper.el index 4bdb9caf..74d2b97c 100644 --- a/src/gizmo/wasp-newspaper.el +++ b/src/gizmo/wasp-newspaper.el @@ -197,8 +197,7 @@ Pass the path of the generated PDF to K." :sentinel (lambda (_ _) (w/db-set "newspaper:edition" (number-to-string (1+ edition))) - (browse-url (format "https://pub.colonq.computer/~llll/news/%03d.pdf" edition)) - )))))))) + (browse-url (format "https://pub.colonq.computer/~llll/news/%03d.pdf" edition)))))))))) (provide 'wasp-newspaper) ;;; wasp-newspaper.el ends here diff --git a/src/gizmo/wasp-wikipedia.el b/src/gizmo/wasp-wikipedia.el index af69de07..74a6adf0 100644 --- a/src/gizmo/wasp-wikipedia.el +++ b/src/gizmo/wasp-wikipedia.el @@ -29,18 +29,18 @@ Pass the resulting article summary to K." :parser #'json-parse-buffer :success (cl-function - (lambda (&key data &allow-other-keys) + (lambda (&key data &allow-other-keys) - (setq w/wikipedia-last-response data) - (if-let (((ht-p w/wikipedia-last-response)) - (query (ht-get w/wikipedia-last-response "query")) - (prepages (ht-get query "pages")) - (pages (car (ht-values prepages))) - (ext (ht-get pages "extract")) - (dom (with-temp-buffer (insert ext) (libxml-parse-html-region (point-min) (point-max)))) - ) - (funcall k (s-trim (dom-texts dom))) - (w/write-chat-event (format "Could not find Wikipedia page: %s" pagename)))))) + (setq w/wikipedia-last-response data) + (if-let* ( ((ht-p w/wikipedia-last-response)) + (query (ht-get w/wikipedia-last-response "query")) + (prepages (ht-get query "pages")) + (pages (car (ht-values prepages))) + (ext (ht-get pages "extract")) + (dom (with-temp-buffer (insert ext) (libxml-parse-html-region (point-min) (point-max)))) + ) + (funcall k (s-trim (dom-texts dom))) + (w/write-chat-event (format "Could not find Wikipedia page: %s" pagename)))))) nil)) (defcustom w/wiki-buffer "*wasp-wiki*" @@ -62,12 +62,12 @@ Pass the resulting article summary to K." (defun w/wikipedia-summary (page) "Display a summary of PAGE from Wikipedia." (w/fetch-wikipedia - page - (lambda (sum) - (with-current-buffer (w/get-wiki-buffer) - (let ((inhibit-read-only t)) - (erase-buffer) - (w/write-line sum))))) + page + (lambda (sum) + (with-current-buffer (w/get-wiki-buffer) + (let ((inhibit-read-only t)) + (erase-buffer) + (w/write-line sum))))) ) (provide 'wasp-wikipedia) diff --git a/src/wasp-ai.el b/src/wasp-ai.el index 1201ca5b..e279103e 100644 --- a/src/wasp-ai.el +++ b/src/wasp-ai.el @@ -169,16 +169,15 @@ Double-check the output to make sure it sounds normal." (defun w/ai-transcribe (path k) "Transcribe the audio file at PATH and pass the resulting string to K." - ) - ;; (let ((request-curl-options '("-F" "model=whisper-1" "-F" "language=en"))) - ;; (w/ai-openai-post-form - ;; "/v1/audio/transcriptions" - ;; `(("file" . ,(f-canonical path))) - ;; (lambda (res) - ;; (funcall - ;; k - ;; (-some-> res - ;; (ht-get "text"))))))) + (let ((request-curl-options '("-F" "model=whisper-1" "-F" "language=en"))) + (w/ai-openai-post-form + "/v1/audio/transcriptions" + `(("file" . ,(f-canonical path))) + (lambda (res) + (funcall + k + (-some-> res + (ht-get "text"))))))) (provide 'wasp-ai) ;;; wasp-ai.el ends here diff --git a/src/wasp-audio.el b/src/wasp-audio.el index 30e2bdfe..0d509f9b 100644 --- a/src/wasp-audio.el +++ b/src/wasp-audio.el @@ -4,6 +4,8 @@ (require 'wasp-utils) (require 'wasp-ai) +(require 'wasp-db) +(require 'wasp-overlay) (defcustom w/audio-play-process "wasp-audio-play" "Name of process for playing audio with mpv." @@ -157,16 +159,16 @@ USER it's your birthday today." (defun w/audio-muzak (user song) "Play SONG by USER using muzak-rs courtesy The0x539." (setq w/audio-muzak-now-playing (cons user song)) - (w/pub '(avatar overlay muzak) (list (w/encode-string user))) + (w/overlay-muzak user song) (let ((proc (make-process :name "wasp-muzak" :connection-type '(pipe . pty) :buffer " *wasp-muzak-log*" :command (list w/audio-muzak-path "play") - :sentinel + :sentinel (lambda (_ _) - (w/pub '(avatar overlay muzak clear) (list)) + (w/overlay-muzak-clear) (setq w/audio-muzak-now-playing nil))))) (process-send-string proc song) (process-send-eof proc))) @@ -191,5 +193,24 @@ USER it's your birthday today." (run-with-timer 1 nil #'w/run-audio-muzak-timer))) (w/run-audio-muzak-timer) +(defun w/add-song (title notes-string) + "Add a song to wasp db. +TITLE specifies the name of the song. +NOTES-STRING is a string of notes and rests." + (let ((hash (md5 (s-downcase title)))) + (w/db-hset "songnames" hash title) + (w/db-hset "songnotes" hash notes-string))) + +(defun w/get-song (song-name k) + "Look up notes of SONG-NAME from the database. +Pass the resulting notes to K." + (let ((hash (md5 (s-downcase song-name)))) + (w/db-hget + "songnotes" hash + (lambda (notes) + (if (and notes (stringp notes) (s-present? notes)) + (funcall k notes) + (funcall k nil)))))) + (provide 'wasp-audio) ;;; wasp-audio.el ends here diff --git a/src/wasp-chat.el b/src/wasp-chat.el index 10931b8d..e8feed89 100644 --- a/src/wasp-chat.el +++ b/src/wasp-chat.el @@ -7,6 +7,7 @@ (require 'evil) (require 'wasp-utils) (require 'wasp-user) +(require 'wasp-overlay) (defcustom w/chat-buffer "*wasp-chat*" "Name of buffer used to store the chat log." @@ -288,16 +289,13 @@ Optionally, return the buffer NM in chat mode." (insert (s-replace-all w/chat-substitutions (w/. text msg))) (when (w/. biblicality msg) (let* ((wwidth (- (window-total-width (get-buffer-window (current-buffer))) 3)) - (bible-button-text (format "[biblicality %.2f]" (w/. biblicality msg))) + ;; (bible-button-text (format "[biblicality %.2f]" (w/. biblicality msg))) + (bible-button-text (format "[medicality %.2f]" (w/. biblicality msg))) ;; (bible-button-text (format "[pollicality %.2f]" (w/. biblicality msg))) (msgwidth (line-beginning-position)) (lines (+ 1 (/ msgwidth wwidth)))) - (w/pub '(avatar overlay chat) - (list - (w/encode-string (w/. text msg)) - (format "%s" (w/unix-time)) - (format "%s" (or (w/. biblicality msg) 0.0)))) + (w/overlay-chat msg) (insert (propertize diff --git a/src/wasp-db.el b/src/wasp-db.el index 506002a1..8900cdc1 100644 --- a/src/wasp-db.el +++ b/src/wasp-db.el @@ -40,7 +40,7 @@ (defun w/db-parse-value () "Parse a single RESP value from the current buffer." ;; (w/write-log (format "parsing: %S" (buffer-string))) - (when-let ((c (char-after))) + (when-let* ((c (char-after))) (delete-char 1) (cl-case c (?+ (w/db-parse-rest)) @@ -56,7 +56,7 @@ (?* (let ((len (string-to-number (w/db-parse-rest)))) (--map (w/db-parse-value) (-iota len)))) - (otherwise (error (format "Unknown Redis sigil: %s" c)))))) + (otherwise (error (format "Unknown Redis sigil: %s (contents: %S)" c (buffer-string))))))) (defun w/db-parse-response () "Try to parse a single RESP value from the current process buffer. @@ -144,9 +144,15 @@ If not, return nil." "Get KEYS from Redis and pass the corresponding values to K." (w/db-cmd `("MGET" ,@keys) k)) +(defun w/db-hset-then (key hkey val k &rest vals) + "Set HKEY in hash KEY to VAL in Redis. +Afterward call K." + (w/db-cmd `("HSET" ,key ,hkey ,val ,@vals) k)) + (defun w/db-hset (key hkey val &rest vals) "Set HKEY in hash KEY to VAL in Redis." (w/db-cmd `("HSET" ,key ,hkey ,val ,@vals) (lambda (_) nil))) + ;; (w/db-hset-then key hkey val (lambda (_) nil) vals)) (defun w/db-hget (key hkey k) "Get HKEY in hash KEY from Redis and pass the corresponding value to K." diff --git a/src/wasp-event-handlers.el b/src/wasp-event-handlers.el index ad8c8299..0e5b8d46 100644 --- a/src/wasp-event-handlers.el +++ b/src/wasp-event-handlers.el @@ -10,113 +10,117 @@ (require 'wasp-overlay) (setf - w/bus-event-handlers - (list - (cons - '(monitor nethack test) - (lambda (data) - (w/write-chat-event (format "Nethack says hi: %s" data)))) - (cons - '(monitor nethack monster) - (lambda (data) - (when-let ((sp (s-split " " (car data)))) - (setf planet/last-monster (cons (s-join " " (cdr sp)) (string-to-number (car sp)))) - (planet/render-monster-summary)))) - (cons - '(overlay barrage started) - (lambda (_) - (w/write-chat-event "It begins...") - (setf w/overlay-barrage-active t) - (w/overlay-update-cursor))) - (cons - '(overlay barrage ended) - (lambda (msg) - (cond - ((s-equals? (car msg) "won") (w/write-chat-event "Fufufu... I win...")) - (t (w/write-chat-event "that it's over"))) - (setf w/overlay-barrage-active nil))) - (cons '(monitor twitch chat incoming) #'w/twitch-handle-incoming-chat) - (cons '(monitor twitch redeem incoming) #'w/twitch-handle-redeem) - (cons - '(frontend redeem incoming) - (lambda (msg) - (w/twitch-handle-redeem-api msg) - )) - (cons - '(monitor twitch raid) - (lambda (msg) - (let ((user (car msg))) - (soundboard//play-clip "rampage.mp3") - (w/write-chat-event (format "%s just raided!" user)) - (w/friend-respond (format "%s just came to visit" user)) - (run-with-timer - 15 nil - (lambda () - (w/twitch-get-user-recent-clips - user - (lambda (clips) - (w/model-region-word "hair" (s-concat user "_")) - (w/model-region-word "eyes" "WELCOME") - (if clips - (w/model-region-video "hair" (car clips)) - (w/model-region-user-avatar "hair" user))))))))) - (cons - '(monitor twitch follow) - (lambda (msg) - (let ((user (car msg))) - (soundboard//play-clip "firstblood.mp3") - (w/model-region-word "skin" (format "welcome_%s_" user)) - (w/friend-respond (format "%s just followed the stream" user)) - (w/write-chat-event (format "New follower: %s" user))))) - (cons - '(monitor twitch subscribe) - (lambda (msg) - (let ((user (car msg))) - (w/thank-sub user) - (w/model-region-word "skin" (format "thanks_%s_" user)) - (w/friend-respond (format "%s just subscribed to the stream" user)) - (w/write-chat-event (format "New subscriber: %s" user))))) - (cons - '(monitor twitch gift) - (lambda (msg) - (let ((user (car msg)) - (subs (cadr msg))) - (unless (s-equals? user "lcolonq") - (w/model-region-word "skin" (format "thanks_%s_" user)) - (w/friend-respond (format "%s just gifted subscriptions" user)) - (w/write-chat-event (format "%s gifted %d subs" user subs)) - (soundboard//play-monsterkill subs))))) - (cons - '(monitor twitch poll begin) - (lambda (_) - (w/write-chat-event "Poll started") - (w/friend-respond "The chatters are doing a poll"))) - (cons - '(monitor twitch poll end) - (lambda (msg) - (let ((winner (car (-max-by (-on #'> #'cadr) (cadr msg))))) - (w/write-chat-event (format "Poll finished, winner is: %s" winner)) - (when w/twitch-current-poll-callback - (funcall w/twitch-current-poll-callback winner)) - (setq w/twitch-current-poll-callback nil)))) - (cons - '(monitor twitch prediction begin) - (lambda (msg) - (w/write-chat-event "Gamble started") - (w/friend-respond "The chatters are gambling") - (setq w/twitch-current-prediction-ids msg))) - (cons - '(monitor twitch prediction end) - (lambda (_) - (w/write-chat-event "Gamble finished") - (setq w/twitch-current-prediction-ids nil))) - ;; (cons - ;; '(monitor discord chat incoming) - ;; (lambda (data) - ;; (let ((user (w/decode-string (cadr data))) - ;; (msg (w/decode-string (cadddr data)))) - ;; (w/write-chat-event (format "discord from %s: %s" user msg))))) - )) + w/bus-event-handlers + (list + (cons + '(monitor lamulana test) + (lambda (data) + (w/write-chat-event (format "LA-MULANA says hi: %s" data)))) + (cons + '(monitor nethack test) + (lambda (data) + (w/write-chat-event (format "Nethack says hi: %s" data)))) + (cons + '(monitor nethack monster) + (lambda (data) + (when-let ((sp (s-split " " (car data)))) + (setf planet/last-monster (cons (s-join " " (cdr sp)) (string-to-number (car sp)))) + (planet/render-monster-summary)))) + (cons + '(overlay barrage started) + (lambda (_) + (w/write-chat-event "It begins...") + (setf w/overlay-barrage-active t) + (w/overlay-update-cursor))) + (cons + '(overlay barrage ended) + (lambda (msg) + (cond + ((s-equals? (car msg) "won") (w/write-chat-event "Fufufu... I win...")) + (t (w/write-chat-event "that it's over"))) + (setf w/overlay-barrage-active nil))) + (cons '(monitor twitch chat incoming) #'w/twitch-handle-incoming-chat) + (cons '(monitor twitch redeem incoming) #'w/twitch-handle-redeem) + (cons + '(frontend redeem incoming) + (lambda (msg) + (w/twitch-handle-redeem-api msg) + )) + (cons + '(monitor twitch raid) + (lambda (msg) + (let ((user (car msg))) + (soundboard//play-clip "rampage.mp3") + (w/write-chat-event (format "%s just raided!" user)) + (w/friend-respond (format "%s just came to visit" user)) + (run-with-timer + 15 nil + (lambda () + (w/twitch-get-user-recent-clips + user + (lambda (clips) + (w/model-region-word "hair" (s-concat user "_")) + (w/model-region-word "eyes" "WELCOME") + (if clips + (w/model-region-video "hair" (car clips)) + (w/model-region-user-avatar "hair" user))))))))) + (cons + '(monitor twitch follow) + (lambda (msg) + (let ((user (car msg))) + (soundboard//play-clip "firstblood.mp3") + (w/model-region-word "skin" (format "welcome_%s_" user)) + (w/friend-respond (format "%s just followed the stream" user)) + (w/write-chat-event (format "New follower: %s" user))))) + (cons + '(monitor twitch subscribe) + (lambda (msg) + (let ((user (car msg))) + (w/thank-sub user) + (w/model-region-word "skin" (format "thanks_%s_" user)) + (w/friend-respond (format "%s just subscribed to the stream" user)) + (w/write-chat-event (format "New subscriber: %s" user))))) + (cons + '(monitor twitch gift) + (lambda (msg) + (let ((user (car msg)) + (subs (cadr msg))) + (unless (s-equals? user "lcolonq") + (w/model-region-word "skin" (format "thanks_%s_" user)) + (w/friend-respond (format "%s just gifted subscriptions" user)) + (w/write-chat-event (format "%s gifted %d subs" user subs)) + (soundboard//play-monsterkill subs))))) + (cons + '(monitor twitch poll begin) + (lambda (_) + (w/write-chat-event "Poll started") + (w/friend-respond "The chatters are doing a poll"))) + (cons + '(monitor twitch poll end) + (lambda (msg) + (let ((winner (car (-max-by (-on #'> #'cadr) (cadr msg))))) + (w/write-chat-event (format "Poll finished, winner is: %s" winner)) + (when w/twitch-current-poll-callback + (funcall w/twitch-current-poll-callback winner)) + (setq w/twitch-current-poll-callback nil)))) + (cons + '(monitor twitch prediction begin) + (lambda (msg) + (w/write-chat-event "Gamble started") + (w/friend-respond "The chatters are gambling") + (setq w/twitch-current-prediction-ids msg))) + (cons + '(monitor twitch prediction end) + (lambda (_) + (w/write-chat-event "Gamble finished") + (setq w/twitch-current-prediction-ids nil))) + ;; (cons + ;; '(monitor discord chat incoming) + ;; (lambda (data) + ;; (let ((user (w/decode-string (cadr data))) + ;; (msg (w/decode-string (cadddr data)))) + ;; (w/write-chat-event (format "discord from %s: %s" user msg))))) + )) (provide 'wasp-event-handlers) ;;; wasp-event-handlers.el ends here diff --git a/src/wasp-model.el b/src/wasp-model.el index 321f7dae..c38da58b 100644 --- a/src/wasp-model.el +++ b/src/wasp-model.el @@ -12,6 +12,18 @@ (require 'wasp-twitch) (require 'wasp-user) +(defun w/model-get-default-backgrounds (k) + "Retrieve the background playlist and pass it to K." + (w/db-get "modelbackgrounds" + (lambda (res) + (funcall k (if (s-present? res) (w/read-sexp res) nil))))) + +(defun w/model-add-default-background (url) + "Add URL to the background playlist." + (w/model-get-default-backgrounds + (lambda (cur) + (w/db-set "modelbackgrounds" (format "%S" (cons url cur)))))) + (defun w/model-frame-test () "Submit a test frame for the new model." (let ((data @@ -45,12 +57,10 @@ "Reset the model palette." (interactive) (w/pub '(avatar reset)) - ;; (w/model-region-color "eyes" (color-values "gold")) - ;; (w/model-region-word "eyes" "GOLDEN") - ;; (w/model-region-video "hair" "https://www.twitch.tv/kamijoan") - ;; (w/model-region-video "hair" "https://www.twitch.tv/kiwidancing") - (w/model-region-video "hair" "https://www.youtube.com/watch?v=FtutLA63Cp8") - ) + (w/model-get-default-backgrounds + (lambda (bgs) + (when bgs + (w/model-region-video "hair" (w/pick-random bgs)))))) (defun w/model-toggle (toggle) "Toggle TOGGLE on model." diff --git a/src/wasp-overlay.el b/src/wasp-overlay.el index 23786453..c4e63e3b 100644 --- a/src/wasp-overlay.el +++ b/src/wasp-overlay.el @@ -1,57 +1,49 @@ -;;; wasp-overlay --- Superterranean Animism Overlay -*- lexical-binding: t; -*- +;;; wasp-overlay --- Fullscreen overlay -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (require 'wasp-utils) (require 'wasp-bus) -(require 'wasp-prod) - -(add-to-list 'load-path (f-canonical "~/src/animism/")) -(require 'bulletml) - -;; src,Xway,fire^쾠㘽쾷ㅗ껋㾨먝乲뛏屚w㮇㸩멽ꝼ쓋♫릫m떫쓏䓳⩺䮻1㨧퉝ƭ쓐ǥᓌ㒵ᒄ먽乳俴㢈쿗峫ฐꙢ왽욍투ㅖ㨧슝呑㟪䁓Ɂy䏧呠3먫슎呒3⧘ɍy욋ᕈ00먫⇳ -;; this one is broken fix it -ellg, probably - -(defconst w/overlay-spellcard-names - '("Joel" "Pemis" "JoelTeachingHisSonJolHowToSpinWhileWideBorisPassesBy" "bugSegz" - "widepeepoMASTURBATION77769420GANGSHITNOMOREFORTNITE19DOLLERFORTNITECARD" - "Machine Made Of Fire, Heart Made Of Doves" - "Dream Seal" "Evil-Sealing Circle" "Dream Seal -Spread-" "Dream Seal -Concentrate-" - "Duplex Barrier" "Dream Orb" "Omnidirectional Oni-Binding Circle" "Yin-Yang Treasured Orb" - "Yin-Yang Kishin Orb" "Dream Orb String" "Yin-Yang Scattering" "Exorcising Border" - "Yin-Yang King Piece" "Illusionary Moon" "Flying Mysterious Shrine Maiden" - "Dream Seal -Blink-" "Great Duplex Barrier" "Dream Seal -Worn-" "Dream Seal -Marred-" - "Dream Seal -The Point Of The Mask-" - )) - -(defvar w/overlay-barrage-active nil) + +(defun w/overlay-shader (user shader) + "Set the overlay shader to SHADER by USER." + (w/pub '(avatar overlay shader) + (list (w/encode-string user) (w/encode-string shader)))) + +(defun w/overlay-chat (msg) + "Update the overlay about chat MSG." + (w/pub '(avatar overlay chat) + (list + (w/encode-string (w/. user msg)) + (w/encode-string (w/. text msg)) + (format "%s" (w/unix-time)) + (format "%s" (or (w/. biblicality msg) 0.0))))) + +(defun w/overlay-muzak (user song) + "Update the overlay about Muzak SONG played by USER." + (ignore song) + (w/pub '(avatar overlay muzak) (list (w/encode-string user)))) + +(defun w/overlay-muzak-clear () + "Tell the overlay that there is no Muzak song playing." + (w/pub '(avatar overlay muzak clear) (list))) + (defvar w/overlay-last-cursor nil) (defun w/overlay-update-cursor () "Inform the overlay about the current cursor position." - (when (and w/overlay-barrage-active (process-live-p (get-process w/bus-process))) - (when-let ((pos (window-absolute-pixel-position))) + (when (and (process-live-p (get-process w/bus-process))) + (when-let* ((pos (window-absolute-pixel-position))) (when (not (equal pos w/overlay-last-cursor)) (setf w/overlay-last-cursor pos) - (w/pub '(overlay cursor) (list (- (car pos) 1920) (cdr pos))))))) + (w/pub '(avatar overlay cursor) (list (car pos) (cdr pos))))))) (add-hook 'post-command-hook #'w/overlay-update-cursor) -(defun w/overlay-start-barrage (bml) - "Start a barrage on the overlay using the BulletML source string BML." - (w/pub '(overlay barrage start) (list (w/encode-string bml)))) - -(defun w/overlay-decode-shorthand-bml (s k) - "Decode the shorthand BulletML string S. -Pass the resulting BulletML XML string to K." - ;; (w/write-log s) - (w/prod-get-raw - (format "/api/yamame?input=%s" (url-encode-url s)) - (lambda (data) - (if-let* ((bml (bml/parse-string data)) - (b (bml/initialize bml)) - ((bml/barrage-toplevel b))) - (progn - (funcall k data)) - (w/write-chat-event "That spell card is too powerful... "))))) +(defun w/overlay-emacs () + "Update the overlay with miscellaneous data from Emacs." + (w/pub '(avatar overlay emacs) + (list + (w/get-heartrate) + ))) (provide 'wasp-overlay) ;;; wasp-overlay.el ends here diff --git a/src/wasp-setup.el b/src/wasp-setup.el index 6eeb5ded..e1488677 100644 --- a/src/wasp-setup.el +++ b/src/wasp-setup.el @@ -43,11 +43,12 @@ (w/run-audio-record-end-timer) (w/populate-bible-table) (w/user-cache-populate) + (w/run-banner-ad-timer) (w/start-audio-record) (w/start-chatsummary) (w/start-fake-chatters) - (w/start-friend) + (w/friend-start) ;; layout (eyebrowse-switch-to-window-config 0) diff --git a/src/wasp-twitch-chat-commands.el b/src/wasp-twitch-chat-commands.el index 33435d7f..d903d93c 100644 --- a/src/wasp-twitch-chat-commands.el +++ b/src/wasp-twitch-chat-commands.el @@ -14,12 +14,17 @@ w/twitch-chat-commands (list (cons + "!getpaid" + (lambda (_ _) + (w/pub '(monitor lamulana msg)))) + (cons "!commands" (lambda (_ _) (w/twitch-say - (s-concat - "Available commands: " - (s-join " " (--filter (s-contains? "!" it) (-map #'car w/twitch-chat-commands))))))) + (s-truncate 500 + (s-concat + "Available commands: " + (s-join " " (--filter (s-contains? "!" it) (-map #'car w/twitch-chat-commands)))))))) (cons "MRBEAST" (lambda (_ _) (soundboard//play-clip "mrbeast.mp3"))) (cons "NICECOCK" (lambda (_ _) (soundboard//play-clip "pantsintoashes.mp3"))) (cons "hexadiCoding" (lambda (_ _) (soundboard//play-clip "developers.ogg"))) @@ -76,6 +81,7 @@ (cons "!pronunciation" (lambda (_ _) (w/twitch-say (w/pronuciation)))) ;; (cons "!jetsWave" (lambda (_ _) (fig//twitch-say (fig/slurp "jetsWave.txt")))) ;; (cons "!forth" (lambda (_ _) (fig//twitch-say "https://github.com/lcolonq/giving"))) + (cons "!news" (lambda (_ _) (w/twitch-say "https://news.colonq.computer"))) (cons "!oub" (lambda (_ _) (w/twitch-say "https://oub.colonq.computer"))) (cons "!cellar" (lambda (_ _) (w/twitch-say "https://pub.colonq.computer/~llll/cellar/index.html"))) (cons "!game" (lambda (_ _) (w/twitch-say "https://oub.colonq.computer"))) @@ -106,6 +112,10 @@ (lambda (user _) (w/twitch-say (format "boost power for @%s: %s" user (alist-get :boost w/user-current))))) (cons + "!tsoob" + (lambda (user _) + (w/twitch-say (format "boost power for @%s: %s" user (alist-get :boost w/user-current))))) + (cons "!faction" (lambda (user _) (w/twitch-say (format "faction for %s: %s" user (alist-get :faction w/user-current))))) diff --git a/src/wasp-twitch-redeems.el b/src/wasp-twitch-redeems.el index bf7a352b..98887386 100644 --- a/src/wasp-twitch-redeems.el +++ b/src/wasp-twitch-redeems.el @@ -16,8 +16,6 @@ (require 'wasp-overlay) (require 'wasp-cyclone) (require 'wasp-bless) -(require 'muzak) -(require 'muzak-wasp) (defvar w/twitch-redeem-sound-last 0) @@ -30,7 +28,7 @@ (w/write-chat-event (format "%s threw shade" user)) (w/db-set "shader" shader) (w/model-record-change) - (w/pub '(avatar overlay shader) (list (w/encode-string user) (w/encode-string shader))))) + (w/overlay-shader user shader))) (list "lurker check in" 1 (lambda (user _) @@ -174,6 +172,10 @@ (w/bless inp 50)) (w/write-chat-event (format "%s is not authorized to run code" user))))) (list + "encoded clarity" 7 + (lambda (user _) + (w/write-chat-event (format "%s allowed the streamer to \"drink\"" user)))) + (list "feed friend" 10 (lambda (user inp) (let ((cur (float-time))) @@ -187,7 +189,7 @@ (let ((cur (float-time))) (when (> (- cur w/twitch-redeem-sound-last) 2) (w/write-chat-event (s-concat user " talks to \"friend\": " inp)) - (w/friend-chat user inp) + (w/friend-respond (format "%s says: %s" user inp)) (setq w/twitch-redeem-sound-last cur))))) (list "friend composes song" 10 @@ -301,7 +303,7 @@ (w/write-chat-event (s-concat user " established spatiotemporal clarity")) (w/obs-activate-toggle 'spatiotemporal-clarity))) (list - "total clarity" 5000 + "nasal clarity" 5000 (lambda (user _) (w/stop-all-audio) (run-with-timer @@ -314,6 +316,10 @@ (lambda (user _) (w/write-chat-event (s-concat user " was canonized!")) (w/bible-canonize user))) + (list + "cloning facility" 50000 + (lambda (user _) + (w/write-chat-event (format "%s entered the cloning facility" user)))) )) (provide 'wasp-twitch-redeems) diff --git a/src/wasp-twitch.el b/src/wasp-twitch.el index de44c735..2ff66567 100644 --- a/src/wasp-twitch.el +++ b/src/wasp-twitch.el @@ -14,6 +14,7 @@ (require 'wasp-copfish) (require 'wasp-shindaggers) (require 'wasp-hex) +(require 'wasp-user-stats) ;; gizmos (require 'wasp-biblicality) @@ -272,7 +273,7 @@ K is called when the download is finished." "Run the shoutout timer." (when w/twitch-shoutout-timer (cancel-timer w/twitch-shoutout-timer)) - (when-let ((user (pop w/twitch-shoutout-queue))) + (when-let* ((user (pop w/twitch-shoutout-queue))) (w/twitch-shoutout user)) (setq w/twitch-shoutout-timer @@ -335,7 +336,7 @@ CALLBACK will be passed the winner when the poll concludes." (let ((pos (point-min))) (while pos (let ((end (next-single-property-change pos 'display))) - (when-let ((face (get-text-property pos 'display))) + (when-let* ((face (get-text-property pos 'display))) (add-text-properties pos (or end (point-max)) `(display @@ -529,6 +530,9 @@ CALLBACK will be passed the winner when the poll concludes." ((s-equals? name "hellpie") "🥧") ((s-equals? name "steeledshield") "⛨") ((s-equals? name "asrael_io") (propertize "Q" 'display (create-image (w/twitch-emote-path "emotesv2_a9dc5935824a4d6792f4b48f91031fcf")))) + ((s-equals? name "nichepenguin") "💚") + ;; ((s-equals? name "h_ingles") "") + ;; ((s-equals? name "compilingjay") "") (t "EL."))) (when (-contains? badges "vip/1") "💎") (when (-contains? badges "subscriber/0") "💻") diff --git a/src/wasp-user-stats.el b/src/wasp-user-stats.el index 19d297a4..285754f8 100644 --- a/src/wasp-user-stats.el +++ b/src/wasp-user-stats.el @@ -2,6 +2,11 @@ ;;; Commentary: ;;; Code: +(require 'dash) +(require 's) +(require 'ht) +(require 'wasp-user) + (defvar w/user-faction-exemptions (list "LCOLONQ" @@ -54,7 +59,15 @@ (w/user-faction-total 'tony) (w/user-faction-total 'lever))) +(defun w/user-ensure-name () + "Ensure that the current user has a name assigned." + (let ((cur (alist-get :name w/user-current))) + (unless cur + (setf (alist-get :name w/user-current) w/user-current-name)))) + (defun w/user-stats-update () + "Ensure that the current user has all stats." + (w/user-ensure-name) (w/user-ensure-faction) (w/user-ensure-element)) diff --git a/src/wasp-user-whitelist.el b/src/wasp-user-whitelist.el index 5205e002..f23471d6 100644 --- a/src/wasp-user-whitelist.el +++ b/src/wasp-user-whitelist.el @@ -237,6 +237,9 @@ "quackthatsmackyo" "thelinuxdeveloper" "hrrawr" + "taske666" + "rat_not_like_noah" + "RealNaesten" ))) (setq diff --git a/src/wasp-user.el b/src/wasp-user.el index 6694b2f2..08e5c971 100644 --- a/src/wasp-user.el +++ b/src/wasp-user.el @@ -123,5 +123,25 @@ Save it back to the database after K returns." (print u) (w/user-set user u)))) +(defun w/user-decrown (user) + "Decrement USER's equity status." + (w/user-get + user + (lambda (u) + (let ((old (or (alist-get :equity u) 0))) + (setf (alist-get :equity u) (- old 1))) + (print u) + (w/user-set user u)))) + +(defun w/user-boost-compensation (user) + "Give USER a consolation BOOSTPOWER prize." + (w/user-get + user + (lambda (u) + (let ((old (or (alist-get :boost u) 0))) + (setf (alist-get :boost u) (+ old 20))) + (print u) + (w/user-set user u)))) + (provide 'wasp-user) ;;; wasp-user.el ends here diff --git a/src/wasp-utils.el b/src/wasp-utils.el index 54cc3cae..8bac37ae 100644 --- a/src/wasp-utils.el +++ b/src/wasp-utils.el @@ -170,8 +170,8 @@ If it is C, consume it and return non-nil." "Look at the character at point in the current buffer. If it is C, consume it. Otherwise, throw an error." - (if-let ((char (char-after)) - (cont (= char c))) + (if-let* ( (char (char-after)) + (cont (= char c))) (progn (delete-char 1) t) @@ -184,7 +184,7 @@ Otherwise, throw an error." (defun w/open-link () "Open URL in the primary stream window." (interactive) - (when-let ((url (thing-at-point 'url t))) + (when-let* ((url (thing-at-point 'url t))) (select-window (w/get-stream-primary-window)) (browse-url url))) @@ -192,7 +192,7 @@ Otherwise, throw an error." "Prevent focus from reaching popup frame E." (not (frame-parameter (cadr e) 'wasp-prevent-focus))) -(defconst w/asset-base-path (f-canonical "./assets/")) +(defconst w/asset-base-path (f-canonical "/home/llll/src/wasp/assets/")) (defun w/asset (path) "Return the absolute path given an asset path PATH." (f-join w/asset-base-path path)) @@ -9,8 +9,10 @@ (add-to-list 'load-path (f-canonical "./src/gizmo/")) (add-to-list 'load-path (f-canonical "./src/contrib/")) -(add-to-list 'load-path (f-canonical "~/src/muzak/")) (add-to-list 'load-path (f-canonical "~/src/soundboard/")) +(add-to-list 'load-path (f-canonical "~/src/emacs-htmlize/")) +(add-to-list 'load-path (f-canonical "~/src/ttf.el/")) +(setq elisp-flymake-byte-compile-load-path load-path) ;; do not open this on stream (require 'wasp-sensitive) @@ -38,6 +40,12 @@ (require 'wasp-glossary) (require 'wasp-newspaper) (require 'wasp-friend) +(require 'wasp-friend-journalism) +(require 'wasp-friend-voice) +(require 'wasp-friend-callout) +(require 'wasp-friend-reading) +(require 'wasp-friend-eating) +(require 'wasp-friend-music) (require 'wasp-fakechat) (require 'wasp-dna) (require 'wasp-heartrate) @@ -68,7 +76,7 @@ (require 'wasp-event-handlers) ;; user contrib -(require 'muzak) +;; (require 'muzak) ;; (defun w/fix-user-database-ok (user) ;; "Fix USER's database entry." |
