From e3dd0d93b65f38e8141430be524aa09b2dab0cba Mon Sep 17 00:00:00 2001 From: nexpid <60316309+nexpid@users.noreply.github.com> Date: Sun, 5 May 2024 18:58:09 +0200 Subject: [PATCH] side changes (#11) --- examples.tsv => .github/archive_examples.tsv | 40 ++--- .github/scripts/example_writer/index.mjs | 48 ------ .../index.mjs | 99 +++++------ .github/scripts/iconpacks_readme/index.mjs | 74 -------- .github/scripts/iconpacks_readme/template.md | 7 - .github/scripts/list_iconpacks/index.mjs | 44 +++++ .github/scripts/list_iconpacks/template.md | 8 + .github/scripts/package.json | 15 +- .github/scripts/pnpm-lock.yaml | 20 ++- .github/workflows/example-writer.yml | 47 ----- ...ee-writer.yml => iconpack_tree_writer.yml} | 115 ++++++------ ...conpacks-readme.yml => list_iconpacks.yml} | 101 +++++------ README.md | 113 ++++-------- docs/CUSTOM-ICON-OVERLAYS.md | 38 ++++ docs/ICONPACKS.md | 36 ++++ docs/PLUS-VERSION-0.md | 163 ++++++++++++++++++ docs/README.md | 28 +++ docs/assets/colors/blue.svg | 3 + docs/assets/colors/cyan.svg | 3 + docs/assets/colors/green.svg | 3 + docs/assets/colors/pink.svg | 3 + docs/assets/colors/red.svg | 3 + docs/assets/colors/white.svg | 3 + docs/assets/colors/yellow.svg | 3 + .../app_installed_check/base.png | Bin 0 -> 3820 bytes .../app_installed_check/original.png | Bin 0 -> 5488 bytes .../app_installed_check/overlay.png | Bin 0 -> 1834 bytes .../assets/custom-overlayed/ic_check/base.png | Bin 0 -> 4178 bytes .../custom-overlayed/ic_check/original.png | Bin 0 -> 6148 bytes .../custom-overlayed/ic_check/overlay.png | Bin 0 -> 1834 bytes .../custom-overlayed/ic_new_pins/base.png | Bin 0 -> 3254 bytes .../custom-overlayed/ic_new_pins/original.png | Bin 0 -> 4187 bytes .../ic_new_pins/recolored.png | Bin 0 -> 4102 bytes .../ic_new_pins_light/base.png | Bin 0 -> 4575 bytes .../ic_new_pins_light/original.png | Bin 0 -> 5417 bytes .../ic_radio_square_checked/base.png | Bin 0 -> 1598 bytes .../ic_radio_square_checked/original.png | Bin 0 -> 3694 bytes .../ic_radio_square_checked/overlay.png | Bin 0 -> 1834 bytes .../ic_radio_square_checked/recolored.png | Bin 0 -> 3478 bytes docs/assets/custom-overlays/check.png | Bin 0 -> 454 bytes docs/assets/custom-overlays/greenies/base.png | Bin 0 -> 1008 bytes docs/assets/custom-overlays/greenies/dark.png | Bin 0 -> 1070 bytes .../custom-overlays/greenies/example.png | Bin 0 -> 1076 bytes .../assets/custom-overlays/greenies/light.png | Bin 0 -> 1070 bytes .../custom-overlays/greenies/original.png | Bin 0 -> 1342 bytes .../custom-overlays/greenies/overlay.png | Bin 0 -> 482 bytes .../ic_radio_circle_checked/base.png | Bin 0 -> 1223 bytes .../ic_radio_circle_checked/example.png | Bin 0 -> 1389 bytes .../ic_radio_circle_checked/original.png | Bin 0 -> 1558 bytes .../ic_radio_circle_checked/overlay.png | Bin 0 -> 599 bytes .../ic_radio_square_checked/base.png | Bin 0 -> 602 bytes .../ic_radio_square_checked/dark.png | Bin 0 -> 1041 bytes .../ic_radio_square_checked/example.png | Bin 0 -> 1043 bytes .../ic_radio_square_checked/light.png | Bin 0 -> 983 bytes .../ic_radio_square_checked/original.png | Bin 0 -> 1157 bytes .../ic_radio_square_checked/overlay.png | Bin 0 -> 504 bytes .../ic_selection_checked/base.png | Bin 0 -> 1234 bytes .../ic_selection_checked/example.png | Bin 0 -> 1222 bytes .../ic_selection_checked/original.png | Bin 0 -> 1635 bytes .../ic_selection_checked/overlay.png | Bin 0 -> 454 bytes docs/assets/icons/AppsIcon/dark.png | Bin 0 -> 1488 bytes docs/assets/icons/AppsIcon/original.png | Bin 0 -> 1811 bytes docs/assets/icons/GlobeEarthIcon/dark.png | Bin 0 -> 1568 bytes docs/assets/icons/GlobeEarthIcon/light.png | Bin 0 -> 1547 bytes docs/assets/icons/GlobeEarthIcon/midnight.png | Bin 0 -> 1571 bytes docs/assets/icons/GlobeEarthIcon/original.png | Bin 0 -> 2142 bytes docs/assets/icons/HubIcon/all.png | Bin 0 -> 951 bytes docs/assets/icons/HubIcon/original.png | Bin 0 -> 1043 bytes docs/assets/mention-line-color/original.png | Bin 0 -> 35052 bytes docs/assets/mention-line-color/recolored.png | Bin 0 -> 35030 bytes docs/assets/unread-badge-color/original.png | Bin 0 -> 23872 bytes docs/assets/unread-badge-color/recolored.png | Bin 0 -> 23708 bytes iconpacks/configs/rosiecord-iconsax.json | 3 - iconpacks/list.json | 1 - 74 files changed, 555 insertions(+), 466 deletions(-) rename examples.tsv => .github/archive_examples.tsv (99%) delete mode 100644 .github/scripts/example_writer/index.mjs rename .github/scripts/{iconpacks_tree_writer => iconpack_tree_writer}/index.mjs (55%) delete mode 100644 .github/scripts/iconpacks_readme/index.mjs delete mode 100644 .github/scripts/iconpacks_readme/template.md create mode 100644 .github/scripts/list_iconpacks/index.mjs create mode 100644 .github/scripts/list_iconpacks/template.md delete mode 100644 .github/workflows/example-writer.yml rename .github/workflows/{iconpacks-tree-writer.yml => iconpack_tree_writer.yml} (64%) rename .github/workflows/{iconpacks-readme.yml => list_iconpacks.yml} (51%) create mode 100644 docs/CUSTOM-ICON-OVERLAYS.md create mode 100644 docs/ICONPACKS.md create mode 100644 docs/PLUS-VERSION-0.md create mode 100644 docs/README.md create mode 100644 docs/assets/colors/blue.svg create mode 100644 docs/assets/colors/cyan.svg create mode 100644 docs/assets/colors/green.svg create mode 100644 docs/assets/colors/pink.svg create mode 100644 docs/assets/colors/red.svg create mode 100644 docs/assets/colors/white.svg create mode 100644 docs/assets/colors/yellow.svg create mode 100644 docs/assets/custom-overlayed/app_installed_check/base.png create mode 100644 docs/assets/custom-overlayed/app_installed_check/original.png create mode 100644 docs/assets/custom-overlayed/app_installed_check/overlay.png create mode 100644 docs/assets/custom-overlayed/ic_check/base.png create mode 100644 docs/assets/custom-overlayed/ic_check/original.png create mode 100644 docs/assets/custom-overlayed/ic_check/overlay.png create mode 100644 docs/assets/custom-overlayed/ic_new_pins/base.png create mode 100644 docs/assets/custom-overlayed/ic_new_pins/original.png create mode 100644 docs/assets/custom-overlayed/ic_new_pins/recolored.png create mode 100644 docs/assets/custom-overlayed/ic_new_pins_light/base.png create mode 100644 docs/assets/custom-overlayed/ic_new_pins_light/original.png create mode 100644 docs/assets/custom-overlayed/ic_radio_square_checked/base.png create mode 100644 docs/assets/custom-overlayed/ic_radio_square_checked/original.png create mode 100644 docs/assets/custom-overlayed/ic_radio_square_checked/overlay.png create mode 100644 docs/assets/custom-overlayed/ic_radio_square_checked/recolored.png create mode 100644 docs/assets/custom-overlays/check.png create mode 100644 docs/assets/custom-overlays/greenies/base.png create mode 100644 docs/assets/custom-overlays/greenies/dark.png create mode 100644 docs/assets/custom-overlays/greenies/example.png create mode 100644 docs/assets/custom-overlays/greenies/light.png create mode 100644 docs/assets/custom-overlays/greenies/original.png create mode 100644 docs/assets/custom-overlays/greenies/overlay.png create mode 100644 docs/assets/custom-overlays/ic_radio_circle_checked/base.png create mode 100644 docs/assets/custom-overlays/ic_radio_circle_checked/example.png create mode 100644 docs/assets/custom-overlays/ic_radio_circle_checked/original.png create mode 100644 docs/assets/custom-overlays/ic_radio_circle_checked/overlay.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/base.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/dark.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/example.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/light.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/original.png create mode 100644 docs/assets/custom-overlays/ic_radio_square_checked/overlay.png create mode 100644 docs/assets/custom-overlays/ic_selection_checked/base.png create mode 100644 docs/assets/custom-overlays/ic_selection_checked/example.png create mode 100644 docs/assets/custom-overlays/ic_selection_checked/original.png create mode 100644 docs/assets/custom-overlays/ic_selection_checked/overlay.png create mode 100644 docs/assets/icons/AppsIcon/dark.png create mode 100644 docs/assets/icons/AppsIcon/original.png create mode 100644 docs/assets/icons/GlobeEarthIcon/dark.png create mode 100644 docs/assets/icons/GlobeEarthIcon/light.png create mode 100644 docs/assets/icons/GlobeEarthIcon/midnight.png create mode 100644 docs/assets/icons/GlobeEarthIcon/original.png create mode 100644 docs/assets/icons/HubIcon/all.png create mode 100644 docs/assets/icons/HubIcon/original.png create mode 100644 docs/assets/mention-line-color/original.png create mode 100644 docs/assets/mention-line-color/recolored.png create mode 100644 docs/assets/unread-badge-color/original.png create mode 100644 docs/assets/unread-badge-color/recolored.png delete mode 100644 iconpacks/configs/rosiecord-iconsax.json diff --git a/examples.tsv b/.github/archive_examples.tsv similarity index 99% rename from examples.tsv rename to .github/archive_examples.tsv index fbea3c9..ded60cc 100644 --- a/examples.tsv +++ b/.github/archive_examples.tsv @@ -1,21 +1,21 @@ -name channel link -Maggie's Purple 1137102371172917380 https://raw.githubusercontent.com/maggster165/vendettathemes/main/maggiespurple.json -Nord 1135824724212076644 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/Nord/nord.json -Purpdarkv3 1135824892575613019 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/Purpdark/PurpDark_BG/Purpdark_v3.json -SeaGreen 1135825053968252969 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/SeaGreen/SeaGreen.json -MediumSlateBlue 1135825255445823528 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/MediumSlateBlue/MediumSlateBlue.json -RedFeathers 1135825435972870186 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/MediumSlateBlue/MediumSlateBlue.json -Vision Pro 1137781580857872475 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Vision%20pro%202.0.json -Midnight-Espresso 1138099451026747402/1138099451026747402 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/MidnightEspresso%20Plus.json -Lavender Heaven 1138099451026747402/1138099646720393307 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/LavenderHeaven%20Plus.json -Katana 1138099451026747402/1138099827411001394 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Katana%20Plus.json -Purple Galaxy 1138099451026747402/1138100188070805575 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/PurpleGalaxy%20Plus.json -Emerald Peppermint 1138099451026747402/1138100356962865212 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/EmeraldPeppermint%20Plus.json -Pebble 1138099451026747402/1138100645921034240 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/EmeraldPeppermint%20Plus.json -Purple Kitty 1138099451026747402/1138101958645911573 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/PurpleKitty%20Plus.json -Midnight 1138416851815239791 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Midnight%20Plus.json -CityFog 1138877237857353758 https://raw.githubusercontent.com/Quinxxxx/Discord/main/Vendetta/CityFog.json -Catty 1140193359256887336 https://raw.githubusercontent.com/ArisonID/aris-silly-themes/main/Catty.json -ClearVision 1140264173457133669 https://raw.githubusercontent.com/TakiShiwa/Themes/main/ClearVision/Vendetta/ClearVision.json -MintY Green 1140677087636758559 https://raw.githubusercontent.com/Panniku/VendettaThemes/main/minty-green.json +name channel link +Maggie's Purple 1137102371172917380 https://raw.githubusercontent.com/maggster165/vendettathemes/main/maggiespurple.json +Nord 1135824724212076644 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/Nord/nord.json +Purpdarkv3 1135824892575613019 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/Purpdark/PurpDark_BG/Purpdark_v3.json +SeaGreen 1135825053968252969 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/SeaGreen/SeaGreen.json +MediumSlateBlue 1135825255445823528 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/MediumSlateBlue/MediumSlateBlue.json +RedFeathers 1135825435972870186 https://raw.githubusercontent.com/vorlie/VendettaThemes/main/MediumSlateBlue/MediumSlateBlue.json +Vision Pro 1137781580857872475 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Vision%20pro%202.0.json +Midnight-Espresso 1138099451026747402/1138099451026747402 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/MidnightEspresso%20Plus.json +Lavender Heaven 1138099451026747402/1138099646720393307 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/LavenderHeaven%20Plus.json +Katana 1138099451026747402/1138099827411001394 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Katana%20Plus.json +Purple Galaxy 1138099451026747402/1138100188070805575 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/PurpleGalaxy%20Plus.json +Emerald Peppermint 1138099451026747402/1138100356962865212 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/EmeraldPeppermint%20Plus.json +Pebble 1138099451026747402/1138100645921034240 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/EmeraldPeppermint%20Plus.json +Purple Kitty 1138099451026747402/1138101958645911573 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/PurpleKitty%20Plus.json +Midnight 1138416851815239791 https://raw.githubusercontent.com/VodkaXMartini/VendettaTheme-Plus/main/Midnight%20Plus.json +CityFog 1138877237857353758 https://raw.githubusercontent.com/Quinxxxx/Discord/main/Vendetta/CityFog.json +Catty 1140193359256887336 https://raw.githubusercontent.com/ArisonID/aris-silly-themes/main/Catty.json +ClearVision 1140264173457133669 https://raw.githubusercontent.com/TakiShiwa/Themes/main/ClearVision/Vendetta/ClearVision.json +MintY Green 1140677087636758559 https://raw.githubusercontent.com/Panniku/VendettaThemes/main/minty-green.json Nord - in light mode 1140743874747310120 https://raw.githubusercontent.com/Quinxxxx/Discord-themes/main/Vendetta/Nord/light_nord.json \ No newline at end of file diff --git a/.github/scripts/example_writer/index.mjs b/.github/scripts/example_writer/index.mjs deleted file mode 100644 index 7c6c36b..0000000 --- a/.github/scripts/example_writer/index.mjs +++ /dev/null @@ -1,48 +0,0 @@ -import { readFile, writeFile } from "fs/promises"; -import { format } from "prettier"; -import { join } from "path"; - -console.time("Done"); - -const times = { - until: null, - after: null, -}; - -const lines = (await readFile(join("../../", "README.md"), "utf8")).split("\n"); - -for (let i = 0; i < lines.length; i++) { - const l = lines[i]; - if (l.startsWith("## Examples")) times.until = i + 1; - else if (times.until && !times.after && l.startsWith("## ")) times.after = i; -} - -if (!times.until || !times.after) - throw new Error("times.until or times.after missing"); - -const data = (await readFile(join("../../examples.tsv"), "utf8")) - .replace(/\r/g, "") - .split("\n") - .slice(1) - .map((x) => x.split("\t")) - .map((x) => ({ - name: x[0], - channel: x[1], - link: x[2], - })); - -await writeFile( - join("../../README.md"), - [ - lines.slice(0, times.until).join("\n"), - data - .map( - (x) => - `- [${x.name}](https://discord.com/channels/1015931589865246730/${x.channel}) — [\\[copy theme link\\]](${x.link})` - ) - .join("\n"), - lines.slice(times.after).join("\n"), - ].join("\n\n") -); - -console.timeEnd("Done"); diff --git a/.github/scripts/iconpacks_tree_writer/index.mjs b/.github/scripts/iconpack_tree_writer/index.mjs similarity index 55% rename from .github/scripts/iconpacks_tree_writer/index.mjs rename to .github/scripts/iconpack_tree_writer/index.mjs index cafa2bb..483c1ca 100644 --- a/.github/scripts/iconpacks_tree_writer/index.mjs +++ b/.github/scripts/iconpack_tree_writer/index.mjs @@ -1,56 +1,43 @@ -import { readFile, readdir, unlink, writeFile } from "fs/promises"; -import { join } from "path"; - -console.time("Done"); - -const repo = process.env.github_repository ?? "nexpid/VendettaThemesPlus"; - -const { list } = JSON.parse( - await readFile(join("../../", "iconpacks", "list.json"), "utf8"), -); - -for (const ic of list) { - console.log(`Parsing tree for '${ic.id}'`); - - const load = ic.load && (!ic.load.endsWith("/") ? ic.load + "/" : ic.load); - - let user, path; - if (load) { - const split = load.split("/"); - user = split.slice(3, 5).join("/"); - path = split.slice(6, -1); - } else { - user = repo; - path = ["assets", ic.id]; - } - - try { - const paths = ( - await ( - await fetch( - `https://api.github.com/repos/${user}/git/trees/master?recursive=1`, - ) - ).json() - ).tree - .filter((x) => x.path.startsWith(path.join("/"))) - .map((x) => x.path.split("/").slice(path.length).join("/")) - .filter((x) => x.length > 0); - - await writeFile( - join("../../../", "trees", `${ic.id}.txt`), - paths.join("\n"), - ); - } catch (e) { - console.log(`Failed to parse tree for '${ic.id}'!`); - continue; - } -} - -for (const f of ( - await readdir(join("../../../", "trees"), { - withFileTypes: true, - }) -).filter((x) => x.isFile() && !list.some((y) => x.name === `${y.id}.txt`))) - await unlink(join("../../../", "trees", f.name)); - -console.timeEnd("Done"); +import { readFile, readdir, unlink, writeFile } from "fs/promises"; +import { join } from "path"; + +console.time("Done"); + +const { list } = JSON.parse( + await readFile(join("iconpacks", "list.json"), "utf8") +); + +for (const ic of list) { + console.log(`Parsing tree for '${ic.id}'`); + + const split = ic.load.split("/"); + const user = split.slice(3, 5).join("/"); + const path = split.slice(6, -1); + + try { + const paths = ( + await ( + await fetch( + `https://api.github.com/repos/${user}/git/trees/master?recursive=1` + ) + ).json() + ).tree + .filter((x) => x.path.startsWith(path.join("/"))) + .map((x) => x.path.split("/").slice(path.length).join("/")) + .filter((x) => x.length > 0); + + await writeFile(join("../", "trees", `${ic.id}.txt`), paths.join("\n")); + } catch (e) { + console.log(`Failed to parse tree for '${ic.id}'!`); + continue; + } +} + +for (const f of ( + await readdir("../trees", { + withFileTypes: true, + }) +).filter((x) => x.isFile() && !list.some((y) => x.name === `${y.id}.txt`))) + await unlink(join("../trees", f.name)); + +console.timeEnd("Done"); diff --git a/.github/scripts/iconpacks_readme/index.mjs b/.github/scripts/iconpacks_readme/index.mjs deleted file mode 100644 index 11a4535..0000000 --- a/.github/scripts/iconpacks_readme/index.mjs +++ /dev/null @@ -1,74 +0,0 @@ -import { readFile, writeFile } from "fs/promises"; -import { format } from "prettier"; -import { join } from "path"; - -console.time("Done"); - -const template = await readFile( - join("iconpacks_readme", "template.md"), - "utf8" -); -const { list } = JSON.parse( - await readFile(join("../../", "iconpacks", "list.json"), "utf8") -); - -const columns = 2; -const rows = []; - -const parseAuthor = (x) => { - const splat = x.split(" <"); - if (splat[1]) return [splat[0], splat[1].slice(0, -1)]; - else return [splat[0]]; -}; - -for (let i = 0; i < list.length; i += columns) { - const packs = list.slice(i, i + columns); - rows.push( - `
1?iMm zLbogeP$UHTPMayl`W1!>#n%P` zNmmzA$?}2@<#7OCnH0&03$EnVphCTtFu^Xmxl5^6ansg0d7OUri?LU9->h@;oO$}E zf7b6U4l;cD lnCHAO+)~K>n#!w@Ue;_ zpphuCduGvnvF=awNeZ`egf4N~x#Px!uE)*n__J6t+xw;0hlOAK%sJBZ(?o2AdMpa5 zA)1~5IJb_IF|S#=7VccFa~?WKW@a%`dMc~$>htE>~9LQ zZ=NWN01Sb7`l%_p%XO*r#oGPnmj*HUC5c7aR=3J5Ey(%;6Ts@ez^TJZ+M6F8((Sb* z`*|@(Ppk{VfM@y?Jy`K$xzETo$klr;=rZ((DMOaGmtk3V6^Q@@7%2f*7mmR*m6blm z00n5mWaC=JT-DXRLon2Rz8 oTULvq3c(V z06elP4Jpa4lI&xGdSI@QE`GPCAG`)nhG5$)67-55-f7CLEQnb$`3jz+^ZQO;-P5cP ziY{9S&zI%Nr}9LACkv(tbBHQl50!^m?L%)p8GJV>c$|{mWp_}hc2U`%VQCk!sda%{ zS8RYvz@{V)c8oczG!N?}=R10pl9%~75!*vL=&R&qor%+$l` z;fYpqu>AMopX*tCY2QWg<)IsOAE#~A13x_U|5^bYOMh6rp62HON~x@eM%s--SuV=5 z2q5dD6Gt~qj@Mj}epXwsZS5D??FZ=zZL)E;Zr-o2<~>3RA1i`&-836NZb@_e{gD zq7L8;IIeR%E#k=xiR6H?1X}gj!;=+2(mZv%|F!YAbl;Mq6Q_fG`ev0^sPSNrXFk$x z*7|F;nx~qexk8cpAOhwa{;V>5PL9Zx^WL)V-s?ejX?Feh?%^d!MO9c=0k64P$eujL zyVIi-c{{G#*9;a-L?VPPyUGMW0iIu;2#Rfdq$7SUp!o}CPeNa)?f7GRwmfmH-1kOG zV4EY<^sy{2TTt?8ZW}^uEbZc554h-o>jvE5?_T`2KHj 8})m z2tcdoJl$&V95@5mHOpB#884^v0vWw_7j#$&aswM>nTX@rz~p02z=K~Ru2ul?UnO(` z9OQ}X>2VqJ)1e3;)WB`Ie3SQn_uPjR5;~@&u1Pb%LO^gK;|75J^lYQgQs9V_LVq>! zHe9)6^{L=dqKqKWBk%kKj*u96cV<-k8d{74 Sl#Q~VIwygUjXDHQMINX<73c=d5JaK>_Xdu{itj$E4`3EU(|KbPx^i1xJb?ema z?qadV5;#R{&++}be$SJKpVh@2f^_oM%J2~g`)CU9BYo_RFC1C gk6O{`u#SRY59MvWwn}sD4v6NVPBC{|EfK0N3N~m4F z<5z5wS4;rPGd-zD@05^J7*wVt&Rf}Xn;L*c0zWv6%VL2MHw&5oawHzG1+sh20`0xx zQt{{;Uco3-th~&7>fZR+-PfX$ck2t1@J(nk1UZ4hnt`|(D-u8+=A72^_ &+oNOH{N^(CL^r0i@z)Y9M15vxMBDG9sF$h~(+%WqvEK8}rDX0NzLI8WW{a}=jfAC*h^HO<-b*F@Nyv+ `s+xhz`$}_d+o=5*4>VQZIY;)ADNK{UG-{ND!H*O)t z@Ma?SZZZ?Y7wcPC&^~Hn!#|>XGABShmlfXgP)F2_0A9a)r%qcYZ{ZBFx|0CVOnD@Y zg%q;_f$zyo=|0s9buSY~akvo!;HStDLxl6VkLcifdLAdm$J9GwFKBR3M{w?Wo_>E& z;ab7Z=>MFj@G#UF4V#14J^J--8tK2_Hi?37l9j+)(h?CsWfh%T2Nc%TQ9ZKj@w?nX z6!D+0Y<{fl{eG*7hR!xs+~k-B|G2I@AfOilLV#w;C#V8Sxo5@nW1OMi#wA8mD#Rww zwL()!Vd4hMh2fhd0XB*tir7IH_9bY2oJu@I6np76 Ymc;`ll ~70--+G|{=FDbkag(hwVdd{feKE$t%^LT*9CArYjREr#ZXCIDWrLDxG@ z*F8!s_WRs7=9zm(x9w=U%>|m$ nH^eo`8F zGfQFC-FiUgSzMa|*>_)BnR8U165=3T 3y%hR1Ps) zIAez&-rDP#o{lgo36~)!p0M5^#1JWAOyt3mHR2M)v(GLnkW1r3sSM5-1O*t!l@Q~+ z5?U&Fhfk%w^#1+Zeq56zjd~*D0Bw$i;ddWekuHoL2&$Kvu@k1HcREc9UnWtakOkD4 zNXk|*AH`YA*^t$tOed&@ssv`a3a6AtmfTc1gQR@H$!YIhFZ8zdc3}}BM2HX}LWBqr mB1DJ~Awq-*5h6rrBm5S#VL>pDg}dqi0000 N++$z9K}K$ovZq->l?Qj8l)AiI?}{Z)J-Qv5USr= zH;bdLlnOEwi%?^HkxaYNt`#bEgoN4mFW3*S*X!|mJs$7J`^V?K%ieBKMJ+`D0HBxL zu~$x#^0(w=Pn_)#F?kXS*WH7N0024tw?IHmt>(!HB3^NG0vJ>9cPB+U2IGYRfc8>| zI6?*hWLcN6n5(xz8?`?1YJRGt+>4=&P8ew^EC0;z8_aX=Di~`aZ@l&neAi)z9&IpF zH~v}8F2MLhr-z2|GZZ6G3pM)IDayztVeX1(b{Zh{54_*o;kD1MH<2u7w*;Q7u 6J;g-aUVuG^K9}NrMRwL`u)9>T-1#E5<_uJc zKM3wRod!=+v<2*?pw3a#<_;;^r3h=MF)WD^k=H1hPK~X|y*0Ufsx?H3z8I%6gY;F@ zO#WFMOGemAeN07npoj6tq+Gs&uk+P9 CmjpDT!!3EJsRb3 zKPqkf`1wuZ{x2S@q8RH@)I7K+p7H`z;4HTg$pgjicdhMmFv*nlhRw#**albw3TYDY z2O*o64XdXAW Me|4IpBBWD-U<2zmgDbQs05z=Lkuk3{!kQ!iJLLD zsB3sq)T?h)&}Q+>{ZLd`D9C7jZQQuTfIn>%rohvN4U7-um0j2UV>{ =Ub^V4i9C0D|F@n+u-$Fb?E-%TIbWQM$UJSX z7P%$#)_kv8H0m-h=MR*K8};$%8g$8cT1&a ^2Pc~aT zKC;k^L^}(0F6Qo0i^#2up0NLb*49_fxE@ixoNp gLY4#qB>@_&frWN9JOucdD*D zpUb}>l~c||bZycIw3pT%Wc)QfY<9>#Gn=b3GMievWhQ~s49V~Pm(ZOfyac0L@{s|p zGiL^zOLLE94yH3wAK->?{wk4mQoYQqRqG`Z4pc->9K5ZXG;gAGs3~Hj1|SmgqhR hzsN+=2Cz z8~mOGI`u1Ut$3Vi?~_HPMpl2e{dKS{U@6Twr;}aZ{YD~^y!?@VY?#~%Xt9-j;81AI_Xw( go^)^ zj6kaKUQt_qwb7B)eoPOm4yB0D8#?LM;wXm?EE%t%ty%wnM-t>LH)^aL_jHitrON)o z-iucm^sw~6A;?IbW#R^YYqCN;bt;D+ba;;F*Xtp(9?4LsO7p7Xva3s5*E5#8D{byX zABdvw@!0I)Ep=DJ;) H((8$PfHQ;QFoWzG_@?dk!`3zzakK;fM`L4RI<>hu^N-0QWFRIq@@rt}c; zGh7RgHxNWWw_dn3XguuUsUjlZ41nMlPxg?rA*e4}na302SAy?EP`$q4! 1yP$eZsmc>ybq_pJN1ZorlY`_%Ipk5S+fK+kRjTty{iz0wmMT>3( z?NX$Rrf9lI;(*=MtrY{-qJZ5^sXzsUz(#3UVp&JFhOEtuMM`|6hUDYSd-vpjhqU1& zvh(KSao!B?58%x3 ?>3yW}yzpqb}eok^1sOelM-lF^;&P$P5YT{i5h3vDYVJPFh9K z%)MeL&zkZNdLR7G$KUuA>Sa+}CW+QeNCAubUy8y~;PKpjx?B44L%MY6%uIQjD5MUj z<1E0$Me%69=pD`tonWK)lWaZ0q KbV?29#99- zc@_Y|&*$?wy&gS^?+zQ%XVG`_5c0Uy=Z`g7_*36~^7K3PJ-4GE`Ct2M{&Y`)T1f42 z28PG?Fh&@o{Y)+j{2=e+4?0Q#Qf~olk3X{LKN>O>V2URc(HDgI2!wDDa>(KXz}(jq zxsP@gDMLj<+`9yA2%&Ig7Ji>Jy>Co3Kq@W3`N_30@uCqX{UUnS2!3>$IuYRy z@K7R({))q>^zziu9Hop@SO6Qw&CeIJRqyang|~)GWX6Qlh+=^faK2MxEjW!?ScIG* zHLf$f`1Kc-2_dGxe`DPr9i6INx^&4 6BlZKUl(fXA7~5l^3hbN3f$q#W5WtmE@*4}j?)hO>i4q=2E} zG$DcDsZ0^SX{!RX%>tbN^VMf4QiJFfe+l9DAcXn~8V1Q47|8Ah2_~wb;fr|fd&2*0 zgg*S&mk#`l+CbYZfQb5%C^><6{wdyxqq?! )6<-I zu_ B`NvQ?wFQ%`6Mj4p8u#J>5#q+P z2XblwKl%wJM4}2{y?tU;VASi$5gR+91rM+W`Wz~ZMM_Ws66uuZzIFd;ok5&y=x=d{ zL8w9xIU1piuVu~r_b8CP_wq{vuTzUj!~(FUBN)d{u&OyUPWX*u+s_!56R@QBC;?h( z0c>GMlOD&*=kfIvIa X0pQEL~pXw1? zG(+Xow)Mq}7h58`mb}UQJY|Dieng3W64{JNveUL4t>!C+_&b`^8Qa!Z=O )k|)ch o9 z5j-4$19+lV-gP7jZ-<5>a0W+eZQmp<7y|V7pq05jGo2$PKoP#lq$g;5C}`$=8pDPn z_Brr|e!(nu1@0ko>>^^<82GvBy)(sPA#Aj4+^_|xWb$Lidi*R$UEgm9TpRxbFMoQt z;M+Bc4JC&f_5nijzQn9flB2CCR*xg~UZ4hPSOIY1xDoy;Iob-6LuXm5r>Q~e9s=yx z?^8Yp@8OGZAes(C9L-W&EPH3d`eY6G0(DyeEBsszW5383$tgez-~vMMBYE2?3&pxS zblnQjlZ{5$*oq(T`5C=w0Z#bAeHnh{uo^l+byBwigralX`F`n&{e`*$v8#}g7*eM0 zPFc4CAO~&h{m)_i@2b_iosA4B=C3K#VyI4HD*$TIY!`Ug4Vmm5Kji+M1xN{~!g^LF zRyI~fc78_OYh(Z6sc%pwU-0`7`aO))@3>pllP2tTHEhH3hpmh*&)$sPIb$opQ-jo_ ztpmu;`AaKE$>%c}DxB&ch%KYo3b0aH@5$7vPvR6HrNA%CXOte*+27kA_nO!W;AM^7 zJI~JeX~|3!N9(~b&>MwjSi&&&OzhYSz!IVQ$0JN`>`yH=9K;Z9LT 2Gg0hGx$zZ1D)vqLg=8N&Qi DDKL;8^4!e7iAoFF8^PWRtOb3{ &zRx;o!;u SyG3cinYfGYBFM}#JwQ40)#|WyNxMs;1nRGSlL(^g%ri! zSh9|kp{k0Z4N7p=N=I`b3uq6#T-J&=<6aX#6>RK5nrsg`h{%yntmzjna}>swQ61%A zT4ge`s5vi@BbC^rZlMHgLb~-sfESqx-hAEGg~^dh>^a9M*KgSq&*NSb-v`KKS6O&g z2|EjrR)m(=@GPXi8uyae3b1Y@G?6{pgq#IPDfWbOW1^Bh%{=Zku@xZ0VIYc@#U8Eh zNG0}od!=|zRg53^n)ps&q{|XTMJ9^<=8oNl%T*PXDC@O847|D4UxsU06cMKYDFw1A zM-^SVxw6=L1(>}|p+7oPCS?}jY0kjqER!P@Kpy3qOduO8quI-+S|0|&yqM`rXF?X) zWMZF%5 Wrd05%aq z4Y4 ZiFg s#8WMcek& zBuy*8t5ZXBq{BI+Bj=DCaOvTMf!SX`TVLDKTkq7`zDZiLGKgj0vXSTtUfrPWg(Gg} zaO<(D_Z0{XLXWQ2GwI{=Xo&)3!k%U2(QEJpZ?IE 6kv3e zDy1M_GNJh|IEDX&uXo7NYUbf_|BK=3f7`ZxdUUEK#kiJi`F80N8$1Q)F09 Y;Q6EwQB$~o|_QL9aY#(Yw?tH-p zfCAhUmf|Zv9QYGTh(x!2WiqegQyddgFXEdlY6fnP!5F}a-auPzA>nh`2rp2AB&qM9c 77TzisL&+*b=zdAT1yzwlvI)@t{$L(XEY|+iY*}IR& zg-GbKhS^u4EdBD`1Ae1N!q>yD>=I@_$eqlG{#sD}5GrS#nj)$iEBNGVw0Du(7t Rqn)zlE0%vZqDr3OxiG7imx7+VPmlgXWt!SgD(7>bpIjRgFB(CV`aS%Ic;=(j zS=1DOMXtk|l}Mt0 |_D{9>_?`dw5yZb{GC$(4LAhj7u*crAY*`Z;@SI#O!m zw3~?h4?2>OG7e=^@*;&mMS*NV6A0v&Y_j*3ox}&n18vw*{DJdtYR!AVgiV8)VuU zI(C~pjO#uWV1W&97)^6by6pSQ0ga}=$Nwf>v8Zq2qImgLzfW&OBN?Md$nY4FEOuyk z1Rv3!rPp6m45p#aOE%dp@M>ow*lqD4a5T=W-FpvS{A?7;x+s*h6&0)dsp!wll&7c9 zbo@qH-La}ugin6sX6Dr3kshjKdpt6EhIJtA^^5fnLX(xOrz2DCsU4~)^5AqcbHyIE zpeR$t@Q%nWS|g<^N~6bDgJ_*AK~L0IzPa}Q<=K;`LfW1U?Ql384u`|xa5x+ehr{7; cI2 Lsf!(^QByTBVmVD4KLm);#BrRWv4X^D(FVv%ixzzm z{FWdE+7wM6a)T1Ib!*vxg`iEGAPFVdiR0J^WlJ<|OV(1Bm6doKQcH5VJ9AFIf0l9; zg_37?XK&)cQL6h!@QNPO+zHpOxy+8Od7U*xWy!1 GtNwcX=^gn!wZtIl-}*FP zEh%6N8$1p}@wg6bgfZGpr2K+gNW1tzTQNY(YXFh>%@^Fg9#cP5@c~72vt`~4B5VL1 zlDGk=`+$+VsiClWu!x6i=fDjf7%tD2-yltI7~>B+WX~i^?r5uPgqGI;{bS@597;Q+ zwj1JiLyh-i!27RwU(NHvxO?f^>9;im!vtCCV%8Uo@g}Ja(2^S9p@Xvn*6}k;`b&_k z4BpyL?Fh@~@sK0(|CT*J_t@dyQED-?ga(i>Zfq=@EIFHci@extd^2E4WfWU50jJwF z)`HWRghogiQiD3d7e4-l2||eJu9=^6w{JgOeDu*r4K*1pp#csaw5dYM%^>8uU$Ooe z^!fmmC4a>L(Zy*vn9o2P9D|=Qlq x7Qx0CZK5=z*=>yRdy%h`MY^3j#`O=zYHXIA+-oeWI+b( z3)b*yyle^sG)x1$_X{?$v16)pT_N!a5c=b|@NQ9ypn4CjVnFN7f&q|THp5Kj$(ecc z#HG=*3opL7uS5+%Lo~pF1J>y)<&iK+_8B(Ypzize_R4egs(=*%V3PnV^cz;&x|7b9 z?z?UoU%S>$4-IkMi%oUc0FuhhTy(dvpZtg=|L<|bX>fg-V*Cy;HZI1-g-QIf)!x&& z(e(LxGl8NyLezfWx%_(aocmB~-A9tIXG&6x Rf2*_p?_z3zt;G3ufLSkq?Mv7M{}hbAU| z^^oy1hV4#h(kZF~BGmv=*wLg1@$z#x?xq+~;u(a9-}0<~BFX|%Bw?V`^A8?8n}Y4? zMQUq1iPIM&Qox_;v{E!f 5L zCUvij^|7&ok>pb%VSu@=xird~2cV(`B-2L}Cwrm>Y_(=-XScLh8fP{*J-rkGB5?v8 z&!kb^JAgd@0CTMV>jYr{Ee$iwx*IQs@ZNc<5jAUohrTc|fTYD;mgxg1@@%6Rw0*0l z_YOM2ao3(`+Z$})XVHMRd`B?$HKJw)utsO_uo({E&Y-*-gZge_>IW0Zu{jeh18_Ms z%)lAU1Y=(#A}|5^tKiDis%huA0d~Gi(``F6?Stg^Z!ODKe$G;%U@3RW(CF(vMFlXz zr YTWV8KVwPoX~8K9U*4;b>p?mK>4<#(@P z`qPgl>DALd7@$PiH+>p=Gl~)8!2TDU^!~nnSLP&El^m*?0X%YU)oeDccH(c}qNuMA z_I`^<{`C{9YrC25*r@|cxwvR)V#-1jP|Z-R-fgrQqee3TEZm^6jF5y@HTJzH5vcfm z@44|%ZqBIS5JnIKzHri`nc3RK2g#xPSt}v_Q&a^iW&p7{E~QhriFe^XY7Rr%6%y)o zq0A*}e@$0-DG(+QCvk4x()gr-IjD7ZSTI@k(gE?ws_+FWW&k06Dh1o`+jr5bW&jmP z{ tAq?jXDU+oNQ85uge5v<8j9bsFCixes7l&`T zP_Gt Ri)bpG-+x tDoz;Lor^iL+4)^wKRaA~oU;>osK z6qQPnNB3wJQYD$RS|I0?wCr7bHDxwNvs{7@eGbW;v2#9h{SDQZ8s*`n_I31$Amecg zHb53;?rN0$OE=9;@WMZKUy@LP4Ak z_-(&B;Rhz5QNWcFvc^D(N}=zh5^phK%FDZ?sLn`23ya6G|Gf^>zx3DP;!c_E#8xK~ zmfmxxXa!48Oe~UbsA6*<%%zdimsT!G^9u2`s*SZJu_Mwy@|qu%c}vB{dP_nZnV92{ zj-COmu^rdjX(MWMBsoaI?%$W7n_&O1ZnzMlX)wp&UI+dT(GPx7q++RZe?ZPDj-{k` z<(%RN)CwW~D T(e8#&R9Be%6psmVxHOsEyVy5j)^M1d6Np9 zzC^Md1zhj5f^z@84Zc?lv67BRyGXut<%sRq5%_&2XrPHD^&fS9zussG29Un`E2&pe z$!ph^wLut2V}=xL`u|4Lv7eXdIF8x;@0tWTpE!|!^uYu|y+k1SQ4s&h?=O}^y !;X()YK5)i#WlC9mH*pf>`_i%%oW}{Aq5$&0Zm4~^hUE6;nzhz5 zMC}Jo-=uAHs23@kt^qnaB(~S|nFl)pZ+}e{L8b!&r`Hj^@Ane4cb7v)e^7*4_Goh2 z2FxK19g<6sP*1KAR=eB?Cr*{1_HCeb+8N=CL5dfRweC_F7+EMN_EV-!i8S>QSH%EV zkPLz!MxH xWiLp&3AtDp}*ti;z;pkp8%zJyW7PA-NLDW%~3Dr&+xdI-%l|Fbh&U5Qy`qYwY6; zCUGFOdnMGHn{Pe4j}em%FJ)P|g|OcVp9(fbtCUk@veC_PUczFrTq_qs1+!~=WN@oz z0MP<+?7BVL?p;alWRc;^o^R1mPgK9 ULNrSMi7;K z>kf@ n0igfkv!u1KZvV1ewJ`Imt6KOARgTR0G-P80Gp!rEKV=M0g({k(@EU8A0N7 ztF1FVe*U}{98w69UVLfIY6e8|h4}yeL`01T^#*)twmjmooeBGu& bgzBm** z#Hbag-|%VL C#e5onCe%8bF+b78*JDkH&&l$&r-j6Ue10>ihSmns} z>GRy6p1>g_S=O(UZXhSf Wloj_mb zt?y?M34}g*t&k*99$trJ+oTgndH{q8>g5;;u`ge?L74Z(m c2Y)>ApW!54aNDYE4p&~>%{)-a5^h&wCs!+$xR)zS|zkh1f5Bd%lTiD}Y4xmlm zFY4T>=?l>_z{nBu-0j18Qsx{y&0)Bld1?^E6F&og;Cqi3=-KDJV9B*&gemwU2z?Rf zeDQ=wM}JtPvv0OnNf-3U2Q&d~ghnGr_Jkgt3aWu@h912a4yIi|B;c~8hSWci-V8c_ zrf15_sZ30j9W)amjpST%&S_NmE?hJLL$nn@i!x2@g3u`F4-ScntAWO sby+%;j18C;S3c?4Vb!KePRwOKt(VfD5>EmYM`f(@KFxLd0LcRIbj2QQz`C z>E;oKPrfT^-)qlqt}7UY?SBK&k(&lxs6te%0hZRG^B#I+<~J}1S-kG2CZMo1&rbXS zX#?B4O9xvnzEj;m!bq8yFAN~ny>_(uR|AIZRXm=3>hSui!t?4|!i*VGq|O?}2dIg- z43FgOISRrznLjAqK+^SlEhC7e3)4uF=Vjy+Ca2oa+g}#^Bbb1TR3)lr09KSWR#J}5 zDb!qngl|4PpqEa0L1*#KeqHVdxaM=dU;eCwd8bCbzznpx>JK0#dgD>m$+@Z-;KJ+a zlhmJeHYGMZ$K_qZnzm}FNVhbA4n1267~vxyO47h>n$ohmhb=G0IQqIrPyeJ8IDZoF zx2?zj|G0>oDCRu3qGjQ(Mb!-OwlDB`H)mU5%@|4M%r6*eil8YlgAjU+G_TpR$1m?q zx`q}OqD>+-3mEZBQ2m9W!#iq9j@R544q5sdywE`~!G3Bo777$}7=Qmqi}d4TOn>%? zj^O?Oc%l%blP}NFiUC;t+fe@%Cw{I)%?wcT{9K1}az>dPQc~Tmu!fLK78MmQ4V=QF z!W5+yVDAH1J0(g@TXkX4FXgC4M54Pt{mAqn@^b%F-Y}B;DMsBOMIZQF!zC_$<;idK zj#7HO zKO9NFQY4c@AAOW1uqr(8$n+(YiqA0V&>bl;!a=5dq3oNrR! !}t`K_3vKY(2+F7gUJJ!(ikAG|3V-zv!wLSnc?Q|O6;S}zmVXb2;4G8z< zkzctC;-4m~-l967t|`0+ADQ`|rA>`?Q;doM1~_HeW*`5?x{p$wP}c<_n9P&7i*1(F zm+(gt@oN{wct^mAp2t`%T5FFO%jc+$s4D}^%$p~=lgTaGF%MHYLl`qa2(aZjJmfj4 z9-q_2x~TpusOuU*m)4v`G>{)>qrMDoehR!jA>2(dmc`Q8j9W5CF=k(xUC2*dT0C3V zh^np(@ZvZ2mBzParftG|TCsisZ{=~9Z8zVhQ4qB+PP1ZqLB?$1Y-U= 4=8fSDqdJ&1-AjYPW>11Pxgx zPHyB<;w^W!kbes-Cr(Y4EKlRkXKD4q1_#qDlbu9uKdTj=n}yAP?Zww-8bN$P(>ggG z{M^hJ@wAf_e~DHnf}SLVd0&$_A4#6CQxnj%bpnl1FOxD;n&=r>c}z;l$Q;V5PSNey z(3+4!nFsQ}jQs9`HTHRFVxlIY>AhT^dSv<_enmerT@RO+pyP&3H){^;0^49czps L5P zI5io~@8$#!9<-@K%FTcq4uA~~ApiXV{IH$0asVIC<}lo&VDO`?&Cy)J&DGk_83kHm zwQ%VtI5w8f_0il9ouqk=J#!apzS+0-^9UI?;v*ZWy m2(V_dPy}g zUg(^>XZt@Fhp72z2@P;99y&NXU>!e$DD|uOg?J98qPG(Q24HKSgEq^N_5X!EKlj+- z+I#q-MoTil)d tOpyz5RBXnX5R{IzI14X_*z9I{S_iVgekNgbh71oN$s(p<7j9AZ((4HrLpHv= zL9)q~H^gv}nw4eoix`{{S$hv&{D|+_Ijd04R+KHRp{zSRoF5vxx9#T}tq2AH<#_ie zPbK!O-`q*XWT!(W&Cm{{ogORxfoGC7>1f}SI)hCWtzACd%v|)yFDXitVBQhA`Lm>S zQE5ngso>9XvC!#v=TFVPnIGA`$D?vLbc`4=V#J6MBSwrEF=E7s5hF&77%^hBIQ|b8 Wvp8I?nEYh`0000 N++$z9K}K$ovZq->l?Qj8l)AiI?}{Z)J-Qv5USr= zH;bdLlnOEwi%?^HkxaYNt`#bEgoN4mFW3*S*X!|mJs$7J`^V?K%ieBKMJ+`D0HBxL zu~$x#^0(w=Pn_)#F?kXS*WH7N0024tw?IHmt>(!HB3^NG0vJ>9cPB+U2IGYRfc8>| zI6?*hWLcN6n5(xz8?`?1YJRGt+>4=&P8ew^EC0;z8_aX=Di~`aZ@l&neAi)z9&IpF zH~v}8F2MLhr-z2|GZZ6G3pM)IDayztVeX1(b{Zh{54_*o;kD1MH<2u7w*;Q7u 6J;g-aUVuG^K9}NrMRwL`u)9>T-1#E5<_uJc zKM3wRod!=+v<2*?pw3a#<_;;^r3h=MF)WD^k=H1hPK~X|y*0Ufsx?H3z8I%6gY;F@ zO#WFMOGemAeN07npoj6tq+Gs&uk+P9 CmjpDT!!3EJsRb3 zKPqkf`1wuZ{x2S@q8RH@)I7K+p7H`z;4HTg$pgjicdhMmFv*nlhRw#**albw3TYDY z2O*o64XdXAW Me|4IpBBWD-U<2zmgDbQs05z=Lkuk3{!kQ!iJLLD zsB3sq)T?h)&}Q+>{ZLd`D9C7jZQQuTfIn>%rohvN4U7-um0j2UV>{ =Ub^V4i9C0D|F@n+u-$Fb?E-%TIbWQM$UJSX z7P%$#)_kv8H0m-h=MR*K8};$%8g$8cT1&a ^2Pc~aT zKC;k^L^}(0F6Qo0i^#2up0NLb*49_fxE@ixoNp gLY4#qB>@_&frWN9JOucdD*D zpUb}>l~c||bZycIw3pT%Wc)QfY<9>#Gn=b3GMievWhQ~s49V~Pm(ZOfyac0L@{s|p zGiL^zOLLE94yH3wAK->?{wk4mQoYQqRqG`Z4pc->9K5ZXG;gAGs3~Hj1|SmgqhR hzsN+=2Cz z8~mOGI`u1Ut$3Vi?~_HPMpl2e{dKS{U@6Twr;}aZ{YD~^y!?@VY?#~%Xt9-j;81AI_Xw( go^)^ zj6kaKUQt_qwb7B)eoPOm4yB0D8#?LM;wXm?EE%t%ty%wnM-t>LH)^aL_jHitrON)o z-iucm^sw~6A;?IbW#R^YYqCN;bt;D+ba;;F*Xtp(9?4LsO7p7Xva3s5*E5#8D{byX zABdvw@!0I)Ep=DJ;) H((8$PfHQ;QFoWzG_@?dk!`3zzakK;fM`L4RI<>hu^N-0QWFRIq@@rt}c; zGh7RgHxNWWw_dn3XguuUsUjlZ41nMlPxg?rA*e4}na302SAy?EP`$q4! vWCVzzh0Bk(}kq+>>RN%s-3$ZoU12kZT*Do3%0&W2Z0Ge~yP9HD=0PNk&D>;-WjxGnCPnhi}&__t4(053iNDhmCrtM;e! z<9z>D$vaO4xp+PvHWm4pOQ$eFY!g&vALxZuzet%O{%znWz&rX*!tjl+h4-bw!?Uuo z#r7W6_t{&sxGo$_tk!hdS?j`mdLA81{ ;C%h(uCaYe12IK*#YAJVyb0>Xhx)Rr!n4@8t!~=RHnr@3J{08_S zg%lm%gm)XR>hR_#~v}4Y~#90^Wk^pse zUGwki2P0o{6=?D04IJqoSkIncrybn@|1AY(YHE4m+C=TH8>O!kfs4q7Ym-4Sz&~rw zyZx$ =h`;0d6%fg2hiK{4&F?-X~`}r0SN?;4Ofto`*n}l zk>gwh-ABtD^!)T#sk^D%JF?LEz ~}eP`tk@s{0=~PFBUsVVRk+gA*s(Xh7OQ`2FTLV)3Nv^ )WuU4J-7rYeUC1oJU$v7JAc~zd7 zM_>P`6`W`J27}2}9g1sWI}B3KA0c%ZMLq1GC#y}$-N?Q>KIghxr>w-bF%PXF_l+FZ zC8o$Hfn*8Or53(`Prm`}BR%B_6zMHeb;%^pkpxS9YVU@$5!AlW#|+=uAc~g51()U$ z-nV{EFy&JuxlqwSC%rfLN6X!-fNWkN2J?BhCvuOqg8OpA`w}^Koi_cU_)Y~;G)QJ6 zn@}EV!hn+EKbW!?>2e+Iah>#Q2^wcYhJ4Fr(xxxr^LI}GR0p`d|9(FbcjL7&v_Y0d z)!|c*Gh0xp)d+mH?O`hCYdrLOLg-yb|K8pW-f>9?jzqVb&!3&U-lxd^O!j;+kFW|5 zL)^}2=!HbTu59&kVsf9MyjpS0e*cV$tzPv0xL}b!b)8lj3)WNgp8byeZ;&o@!5(x} z->QOguxC=8bBFxA1yKki?Gkmefn4h2L`XU+i?P00*j6r0o=mvT;K9|Yw)1PQYkKiM zdI^W#JU{JxmjlKG2 zS&k~oTv=oy#zFpJqm!E0Efg0N%Eud=kPZ#@3Ld-4%NjJznrwXL0}Q2tgoK2Y6F-ef zKh(jUR!u59P8xC2CG3?#PA64kah(MqdyS}KRIW|fY?A5XI3!{Qth~F1zR8FUD(8w2 zdCgwVQ7ZkBHnbeuGDY^9`s9Z`Xp@ fDndrQ1hc8AbS=~yvj1F(2 zJ*o8=Gsyk*&w%YtMzWE>;1DLC7$VfIfF2siYXA=#bc=nS*8OE(sQKgbyU3lr+{Iw? zSDUPI$y%Di;(ya=P#+iYrpbE=mA_g03dzG?Fq(hq2l0hqS7xYC$V>K& zhTfz)v-f15sBa;*7g+s(p~<&sFO(IdB8=cF`H702kQfVGl8e<;+x1!reb&0vMfY`? zmfhCjMoj^qXImY9N>36ik62O^<9>tZ=-sYM3y?pM2s^*jrc^Ez_ZM5IB~FawNPG2# zxY3x{lU)Hch!ow2r0omQcC4nc{1x>9*FvkCwwi0FwUjg>7##)vVMo7=^7SQ0)u*-Q z=$|cpDR7J0ndgKg%dui)1ne6z6w08#zrT;X)gsZf@ET%0rag?W-KVyLw_H$HD)<}* zYCpT=T-(u0AY-~l9xn+y?q{^qsuW8ghP<(%nU9y-f~kTawc&xP{8aLuTLEUVVw=hR z;WGr;Of_)bp$WV<+Q_JS6EzQ$z1>%S9(`Ph32!c)V6Sy{WQfTwSd{TvUUBN3CZu ISlhPdbu#KO7&+Tf?IKy7+agV@Pu!D&IrMMuY>-1 z2 A?uM@$oK4K5E-Jo}vK_1^DHAOS`^9>HU)ieC_4$@yrwwKH zSJho}1hy-Sf4O5(yPLEK=pNbQU>k?kb+}L@7z520 fG>Up8vV=K(m~^`4qT{OW&Ozy1$+|2v*l#QTF?BHVDLe)VF|a4 zszNwB;f@89J8AyuHp}f|!?UE}L(Li35TfTvt$o^YUG&_#_7uUaaXe`3v(46`+7dvr zGIEBk>bRY6bQSnbD )1rDo(mOAB43)TRcU>%YFApS`X53Gm4a*IcEYy>>l28YWOq9hEjXXWyeb z^a6r|V*kQ-f;lsBX?j6U1pBHF!WH6FiYQQ$+8sc1g}s%wdXpE98S2?Q%>s)AFWqh4D#k#ar9+1WD9GJR?c@QTBBRylh*l8 |W=#7_E_oIX@c7QQgZz`Bc_3qn)3zez}t2 z($n?F-22pMp>IU(oaN)v{DES_vFCvQ8C&XnA5Za9DfQPaGAT7@5*adXcPpsh4LqE6 z2qlzry)u-IVI*$Gm;Y}`YLube)qEW%8yi8dKgW`J&gx0`N>>)Pov1rDcbfPxQ#z}* zfn9klC~GZV7Wnh8ZuTm#_E*5Z>or7qCDU@uJT& rnVT@E~)2pa41Emk%oivfr zrZf8%v9BpibZcjzzPoLE1f UwIS|upQ7urFaz4RD$YJcy4z(*d|}@n!%_4J{2C^xPBv2b&QqGXMYp literal 0 HcmV?d00001 diff --git a/docs/assets/custom-overlayed/ic_new_pins/original.png b/docs/assets/custom-overlayed/ic_new_pins/original.png new file mode 100644 index 0000000000000000000000000000000000000000..883f3d7fc9ff686c9baaa08a155fba0f62f0bc51 GIT binary patch literal 4187 zcmbW5_ct31)W;J-ti-AvBWkv#GzhJxYL8m2h#hJ^XiKRXo2uGs&s3{M2}SLdDr%Ib z_7f#)l^Q`ysPXoB&-)j=KYZ`!+ u*?Pk!1qQlzMn*!yn7z5dg%c2h(0fipI5c5aA~PuQIeo=PuCN~~Q5DAM z--gF#=9TP`$FY~PzWij>dCA_W;UO%culdr!!zanvhm9996bFDSCoFm6$mEfu<09(< z38|m