From 8aea2c19a8674d2f6a130e907bcaf612c84d6234 Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:21:00 +0200 Subject: [PATCH 01/14] Add participants count to user results table --- app/routes/u.$identifier/results.tsx | 2 ++ public/locales/de/user.json | 1 + public/locales/en/user.json | 1 + 3 files changed, 4 insertions(+) diff --git a/app/routes/u.$identifier/results.tsx b/app/routes/u.$identifier/results.tsx index a38db68dc..fac0f2620 100644 --- a/app/routes/u.$identifier/results.tsx +++ b/app/routes/u.$identifier/results.tsx @@ -23,6 +23,7 @@ export default function UserResultsPage() { {t("results.placing")} {t("results.team")} {t("results.tournament")} + {t("results.participants")} {t("results.date")} {t("results.mates")} @@ -37,6 +38,7 @@ export default function UserResultsPage() { {result.eventName} + {result.participantCount} {databaseTimestampToDate(result.startTime).toLocaleDateString( i18n.language, diff --git a/public/locales/de/user.json b/public/locales/de/user.json index b38e807fe..e34fa88cf 100644 --- a/public/locales/de/user.json +++ b/public/locales/de/user.json @@ -13,6 +13,7 @@ "results.placing": "Platzierung", "results.team": "Team", "results.tournament": "Turnier", + "results.participants": "Teilnehmer", "results.date": "Datum", "results.mates": "Mitspieler", diff --git a/public/locales/en/user.json b/public/locales/en/user.json index 51c5a48c6..760f2a9b5 100644 --- a/public/locales/en/user.json +++ b/public/locales/en/user.json @@ -13,6 +13,7 @@ "results.placing": "Placing", "results.team": "Team", "results.tournament": "Tournament", + "results.participants": "Participants", "results.date": "Date", "results.mates": "Mates", From 7dc0e9549f5801c911c3cbf8751c88efddf39e9c Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:55:26 +0200 Subject: [PATCH 02/14] Run check-translation-jsons script --- translation-progress.md | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/translation-progress.md b/translation-progress.md index eb4ddde43..f51cb0f58 100644 --- a/translation-progress.md +++ b/translation-progress.md @@ -78,7 +78,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -91,6 +91,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -178,7 +179,7 @@ ### 🟢 user.json -**19/19** +**20/20** --- @@ -270,7 +271,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -283,6 +284,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -392,7 +394,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -405,6 +407,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -465,7 +468,7 @@ ### 🔴 user.json -**0/19** +**0/20** --- @@ -647,7 +650,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -660,6 +663,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -770,7 +774,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -783,6 +787,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -869,9 +874,16 @@
-### 🟢 user.json +### 🟡 user.json -**19/19** +**19/20** + +
+Missing + +- results.participants + +
--- @@ -976,7 +988,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -989,6 +1001,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate @@ -1099,7 +1112,7 @@ ### 🟡 user.json -**7/19** +**7/20**
Missing @@ -1112,6 +1125,7 @@ - motion - stick - sens +- results.participants - forms.errors.invalidCustomUrl.numbers - forms.errors.invalidCustomUrl.strangeCharacter - forms.errors.invalidCustomUrl.duplicate From a215e0b3e15d727237e50a3d8ee6711ba2634134 Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Thu, 13 Oct 2022 19:51:41 +0200 Subject: [PATCH 03/14] Fix overflow for user results table on narrow viewports --- app/routes/u.$identifier/results.tsx | 2 +- app/styles/u.css | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/app/routes/u.$identifier/results.tsx b/app/routes/u.$identifier/results.tsx index fac0f2620..23ada222b 100644 --- a/app/routes/u.$identifier/results.tsx +++ b/app/routes/u.$identifier/results.tsx @@ -15,7 +15,7 @@ export default function UserResultsPage() { const data = parentRoute.data as UserPageLoaderData; return ( -
+
diff --git a/app/styles/u.css b/app/styles/u.css index 9e4c9fffe..673c38771 100644 --- a/app/styles/u.css +++ b/app/styles/u.css @@ -147,11 +147,6 @@ font-weight: var(--bold); } -.u__results-main { - max-width: 52rem; - margin: 0 auto; -} - .u__results-section { overflow-x: auto; } From abfd38706236428ea20bfc8f884460529015393f Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Fri, 14 Oct 2022 16:38:16 +0200 Subject: [PATCH 04/14] Deactivate i18next interpolation escaping --- app/modules/i18n/config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/modules/i18n/config.ts b/app/modules/i18n/config.ts index a4f392437..ab8fda731 100644 --- a/app/modules/i18n/config.ts +++ b/app/modules/i18n/config.ts @@ -52,4 +52,7 @@ export const config = { fallbackLng: DEFAULT_LANGUAGE, defaultNS: "common", react: { useSuspense: false }, + interpolation: { + escapeValue: false, + } }; From 7ccfe79984ef02a8a3e7e95c98a0f5fe506b7767 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Fri, 14 Oct 2022 23:16:56 +0300 Subject: [PATCH 05/14] Add title to maps page --- app/modules/i18n/config.ts | 2 +- app/routes/maps.tsx | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/modules/i18n/config.ts b/app/modules/i18n/config.ts index ab8fda731..828ddcc48 100644 --- a/app/modules/i18n/config.ts +++ b/app/modules/i18n/config.ts @@ -54,5 +54,5 @@ export const config = { react: { useSuspense: false }, interpolation: { escapeValue: false, - } + }, }; diff --git a/app/routes/maps.tsx b/app/routes/maps.tsx index bb9b8c929..76ee80384 100644 --- a/app/routes/maps.tsx +++ b/app/routes/maps.tsx @@ -1,4 +1,9 @@ -import type { LinksFunction, LoaderArgs } from "@remix-run/node"; +import type { + LinksFunction, + LoaderArgs, + MetaFunction, + SerializeFrom, +} from "@remix-run/node"; import type { ShouldReloadFunction } from "@remix-run/react"; import { Link } from "@remix-run/react"; import { useLoaderData, useSearchParams } from "@remix-run/react"; @@ -13,6 +18,7 @@ import { Label } from "~/components/Label"; import { Main } from "~/components/Main"; import { Toggle } from "~/components/Toggle"; import { db } from "~/db"; +import { i18next } from "~/modules/i18n"; import { modes, stageIds, @@ -31,6 +37,7 @@ import { } from "~/modules/map-pool-serializer"; import type { MapPool } from "~/modules/map-pool-serializer/types"; import styles from "~/styles/maps.css"; +import { makeTitle } from "~/utils/strings"; import { calendarEventPage, ipLabsMaps, @@ -46,13 +53,24 @@ export const links: LinksFunction = () => { return [{ rel: "stylesheet", href: styles }]; }; +export const meta: MetaFunction = (args) => { + const data = args.data as SerializeFrom | null; + + if (!data) return {}; + + return { + title: data.title, + }; +}; + export const handle = { i18n: "game-misc", }; -export const loader = ({ request }: LoaderArgs) => { +export const loader = async ({ request }: LoaderArgs) => { const url = new URL(request.url); const calendarEventId = url.searchParams.get("eventId"); + const t = await i18next.getFixedT(request); const event = calendarEventId ? db.calendarEvents.findById(Number(calendarEventId)) @@ -68,6 +86,7 @@ export const loader = ({ request }: LoaderArgs) => { mapPool: event ? db.calendarEvents.findMapPoolByEventId(event.eventId) : null, + title: makeTitle([t("pages.maps")]), }; }; From e36e2137934297a5c859fc812eeb8a40fe5c62c4 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Fri, 14 Oct 2022 23:40:19 +0300 Subject: [PATCH 06/14] Fix analyzer respawn time Closes #1006 --- app/modules/analyzer/stats.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/modules/analyzer/stats.ts b/app/modules/analyzer/stats.ts index 4582d4442..beb7affba 100644 --- a/app/modules/analyzer/stats.ts +++ b/app/modules/analyzer/stats.ts @@ -515,6 +515,7 @@ function swimSpeed( const RESPAWN_CHASE_FRAME = 150; const OWN_RESPAWN_PUNISHER_EXTRA_RESPAWN_FRAMES = 68; +const SPLATOON_3_FASTER_RESPAWN = 60; function quickRespawnTime( args: StatFunctionInput ): AnalyzedBuild["stats"]["quickRespawnTime"] { @@ -546,10 +547,17 @@ function quickRespawnTime( return { baseValue: framesToSeconds( - RESPAWN_CHASE_FRAME + chase.baseEffect + around.baseEffect + RESPAWN_CHASE_FRAME + + chase.baseEffect + + around.baseEffect - + SPLATOON_3_FASTER_RESPAWN ), value: framesToSeconds( - RESPAWN_CHASE_FRAME + chase.effect + around.effect + extraFrames + RESPAWN_CHASE_FRAME + + chase.effect + + around.effect + + extraFrames - + SPLATOON_3_FASTER_RESPAWN ), modifiedBy: [QUICK_RESPAWN_TIME_ABILITY, "RP"], }; From 1a8ede563e75f35d138071ba47b4519a97f25460 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sat, 15 Oct 2022 11:54:06 +0300 Subject: [PATCH 07/14] Fix map list generation crash if small map pool --- app/modules/map-list-generator/map-list.ts | 28 +++++++++++++++++++--- app/routes/maps.tsx | 1 - 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/modules/map-list-generator/map-list.ts b/app/modules/map-list-generator/map-list.ts index fc3f125ee..58f890d97 100644 --- a/app/modules/map-list-generator/map-list.ts +++ b/app/modules/map-list-generator/map-list.ts @@ -59,7 +59,9 @@ export function generateMapList( } function isValid(stageId: StageId, mapHistory: StageId[]) { - return !mapHistory.slice(-BACKLOG, mapHistory.length).includes(stageId); + // [1,2,3,4,5,6,7,8,9,10].slice(-2) + // > (2) [9, 10] + return !mapHistory.slice(-BACKLOG).includes(stageId); } function addAndReturnMap( @@ -154,8 +156,28 @@ function getMap( for (let bucketNum = 0; bucketNum < buckets.size; bucketNum++) { const item = buckets.get(bucketNum); shuffle(item![mode]); - for (const stageId of item![mode]) { - if (isValid(stageId, mapHistory)) { + + for (const [i, stageId] of item![mode].entries()) { + // fallback solution, might happen if map pool is small + const isLast = () => { + // is actually last + if (bucketNum === buckets.size - 1 && i === item![mode].length - 1) { + return true; + } + + // is last in bucket and next is empty + const nextBucket = buckets.get(bucketNum + 1); + if ( + i === item![mode].length - 1 && + nextBucket && + nextBucket[mode].length === 0 + ) { + return true; + } + + return false; + }; + if (isLast() || isValid(stageId, mapHistory)) { return addAndReturnMap(stageId, mode, buckets, bucketNum); } } diff --git a/app/routes/maps.tsx b/app/routes/maps.tsx index 76ee80384..6d4589039 100644 --- a/app/routes/maps.tsx +++ b/app/routes/maps.tsx @@ -235,7 +235,6 @@ function MapPoolSelector({ ); } -// xxx: crashes if only one map in mode function MapListCreator({ mapPool }: { mapPool: MapPool }) { const { t } = useTranslation(["game-misc", "common"]); const [mapList, setMapList] = React.useState(); From 9bb7de7dba886fc46b7c7cbbbf7022ae154ccb99 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sat, 15 Oct 2022 12:02:52 +0300 Subject: [PATCH 08/14] Add (working) script to remove bad custom urls --- package.json | 1 + scripts/remove-bad-custom-urls.ts | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 scripts/remove-bad-custom-urls.ts diff --git a/package.json b/package.json index ae82fc4b1..5e8096080 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "create-analyzer-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-analyzer-json.ts", "check-translation-jsons": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/check-translation-jsons.ts && npm run prettier:write", "replace-img-names": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/replace-img-names.ts", + "remove-bad-custom-urls": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/remove-bad-custom-urls.ts", "lint:ts": "eslint . --ext .ts,.tsx", "lint:styles": "stylelint \"app/styles/**/*.css\"", "prettier:check": "prettier --check . --loglevel warn", diff --git a/scripts/remove-bad-custom-urls.ts b/scripts/remove-bad-custom-urls.ts new file mode 100644 index 000000000..921572c71 --- /dev/null +++ b/scripts/remove-bad-custom-urls.ts @@ -0,0 +1,9 @@ +/* eslint-disable no-console */ +import "dotenv/config"; +import { sql } from "~/db/sql"; + +sql + .prepare(`update "User" set "customUrl" = NULL where "customUrl" like '%/%'`) + .run(); + +console.log("Done"); From 9f7faa2054380d868ce42971e2fb74f820e11c03 Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Sat, 15 Oct 2022 13:16:43 +0200 Subject: [PATCH 09/14] Improve result placement display with custom medal icons --- app/components/Placement.tsx | 48 ++++++++++++++++++++++++++++ app/routes/calendar/$id/index.tsx | 7 ++-- app/routes/u.$identifier/results.tsx | 7 ++-- app/utils/strings.ts | 16 +++++++--- public/svg/placements/first.svg | 1 + public/svg/placements/second.svg | 1 + public/svg/placements/third.svg | 1 + 7 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 app/components/Placement.tsx create mode 100644 public/svg/placements/first.svg create mode 100644 public/svg/placements/second.svg create mode 100644 public/svg/placements/third.svg diff --git a/app/components/Placement.tsx b/app/components/Placement.tsx new file mode 100644 index 000000000..e7a509f44 --- /dev/null +++ b/app/components/Placement.tsx @@ -0,0 +1,48 @@ +import { getEnglishOrdinalSuffix } from "~/utils/strings" + +export type PlacementProps = { + placement: number, + iconClassName?: string, + textClassName?: string +} + +const getSpecialPlacementIconPath = (placement: number): string | null => { + switch (placement) { + case 3: + return'/svg/placements/third.svg'; + case 2: + return '/svg/placements/second.svg'; + case 1: + return '/svg/placements/first.svg'; + default: + return null; + } +} + +export function Placement({ placement, iconClassName, textClassName }: PlacementProps) { + /* + Placements are using english ordinal syntax only. + If wished for, we could look into properly adding translations here, but + english-style ordinals are commonly used internationally as well. + */ + const ordinalSuffix = getEnglishOrdinalSuffix(placement); + const iconPath = getSpecialPlacementIconPath(placement); + + if (!iconPath) { + return + {placement}{ordinalSuffix} + + } + + const placementString = `${placement}${ordinalSuffix}`; + + return {placementString} +} \ No newline at end of file diff --git a/app/routes/calendar/$id/index.tsx b/app/routes/calendar/$id/index.tsx index 5e17d4188..2ba78c7fb 100644 --- a/app/routes/calendar/$id/index.tsx +++ b/app/routes/calendar/$id/index.tsx @@ -15,6 +15,7 @@ import { Avatar } from "~/components/Avatar"; import { LinkButton } from "~/components/Button"; import { Image } from "~/components/Image"; import { Main } from "~/components/Main"; +import { Placement } from "~/components/Placement"; import { Section } from "~/components/Section"; import { db } from "~/db"; import { useIsMounted } from "~/hooks/useIsMounted"; @@ -28,7 +29,7 @@ import calendarStyles from "~/styles/calendar-event.css"; import mapsStyles from "~/styles/maps.css"; import { databaseTimestampToDate } from "~/utils/dates"; import { notFoundIfFalsy } from "~/utils/remix"; -import { discordFullName, makeTitle, placementString } from "~/utils/strings"; +import { discordFullName, makeTitle } from "~/utils/strings"; import { calendarEditPage, calendarReportWinnersPage, @@ -200,7 +201,9 @@ function Results() { {data.results.map((result, i) => ( - + {data.results.map((result) => ( - +
{placementString(result.placement)} + + {result.teamName}
    diff --git a/app/routes/u.$identifier/results.tsx b/app/routes/u.$identifier/results.tsx index 23ada222b..2a6a431e2 100644 --- a/app/routes/u.$identifier/results.tsx +++ b/app/routes/u.$identifier/results.tsx @@ -2,9 +2,10 @@ import { Link, useMatches } from "@remix-run/react"; import { useTranslation } from "react-i18next"; import invariant from "tiny-invariant"; import { Avatar } from "~/components/Avatar"; +import { Placement } from "~/components/Placement"; import { Section } from "~/components/Section"; import { databaseTimestampToDate } from "~/utils/dates"; -import { discordFullName, placementString } from "~/utils/strings"; +import { discordFullName } from "~/utils/strings"; import { calendarEventPage, userPage } from "~/utils/urls"; import type { UserPageLoaderData } from "../u.$identifier"; @@ -31,7 +32,9 @@ export default function UserResultsPage() {
{placementString(result.placement)} + + {result.teamName} diff --git a/app/utils/strings.ts b/app/utils/strings.ts index b120b99f7..25b8be8fe 100644 --- a/app/utils/strings.ts +++ b/app/utils/strings.ts @@ -10,12 +10,18 @@ export function makeTitle(title: string | string[]) { return `${Array.isArray(title) ? title.join(" | ") : title} | sendou.ink`; } -export function placementString(placement: number) { - if (placement === 1) return "🥇"; - if (placement === 2) return "🥈"; - if (placement === 3) return "🥉"; +export function getEnglishOrdinalSuffix(num: number) { + const lastDigit = num % 10; + const last2Digits = num % 100; - return `${placement}th`; + if (lastDigit === 1 && last2Digits !== 11) { + return 'st'; + } else if (lastDigit === 2 && last2Digits !== 12) { + return 'nd'; + } else if (lastDigit === 3 && last2Digits !== 13) { + return 'rd'; + } + return 'th'; } export function semiRandomId() { diff --git a/public/svg/placements/first.svg b/public/svg/placements/first.svg new file mode 100644 index 000000000..8411a9e3c --- /dev/null +++ b/public/svg/placements/first.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/svg/placements/second.svg b/public/svg/placements/second.svg new file mode 100644 index 000000000..99b3b81cd --- /dev/null +++ b/public/svg/placements/second.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/svg/placements/third.svg b/public/svg/placements/third.svg new file mode 100644 index 000000000..ee264e1fb --- /dev/null +++ b/public/svg/placements/third.svg @@ -0,0 +1 @@ + \ No newline at end of file From 6def5b9397807e1f54438907cb18d9c135bd38e3 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 16 Oct 2022 10:12:51 +0300 Subject: [PATCH 10/14] Format --- app/components/Placement.tsx | 79 ++++++++++++++++++++---------------- app/utils/strings.ts | 8 ++-- 2 files changed, 48 insertions(+), 39 deletions(-) diff --git a/app/components/Placement.tsx b/app/components/Placement.tsx index e7a509f44..05843f9de 100644 --- a/app/components/Placement.tsx +++ b/app/components/Placement.tsx @@ -1,48 +1,57 @@ -import { getEnglishOrdinalSuffix } from "~/utils/strings" +import { getEnglishOrdinalSuffix } from "~/utils/strings"; export type PlacementProps = { - placement: number, - iconClassName?: string, - textClassName?: string -} + placement: number; + iconClassName?: string; + textClassName?: string; +}; const getSpecialPlacementIconPath = (placement: number): string | null => { - switch (placement) { - case 3: - return'/svg/placements/third.svg'; - case 2: - return '/svg/placements/second.svg'; - case 1: - return '/svg/placements/first.svg'; - default: - return null; - } -} + switch (placement) { + case 3: + return "/svg/placements/third.svg"; + case 2: + return "/svg/placements/second.svg"; + case 1: + return "/svg/placements/first.svg"; + default: + return null; + } +}; -export function Placement({ placement, iconClassName, textClassName }: PlacementProps) { - /* +export function Placement({ + placement, + iconClassName, + textClassName, +}: PlacementProps) { + /* Placements are using english ordinal syntax only. If wished for, we could look into properly adding translations here, but english-style ordinals are commonly used internationally as well. */ - const ordinalSuffix = getEnglishOrdinalSuffix(placement); - const iconPath = getSpecialPlacementIconPath(placement); + const ordinalSuffix = getEnglishOrdinalSuffix(placement); + const iconPath = getSpecialPlacementIconPath(placement); - if (!iconPath) { - return - {placement}{ordinalSuffix} - - } + if (!iconPath) { + return ( + + {placement} + {ordinalSuffix} + + ); + } - const placementString = `${placement}${ordinalSuffix}`; + const placementString = `${placement}${ordinalSuffix}`; - return {placementString} -} \ No newline at end of file + ); +} diff --git a/app/utils/strings.ts b/app/utils/strings.ts index 25b8be8fe..7b3202a81 100644 --- a/app/utils/strings.ts +++ b/app/utils/strings.ts @@ -15,13 +15,13 @@ export function getEnglishOrdinalSuffix(num: number) { const last2Digits = num % 100; if (lastDigit === 1 && last2Digits !== 11) { - return 'st'; + return "st"; } else if (lastDigit === 2 && last2Digits !== 12) { - return 'nd'; + return "nd"; } else if (lastDigit === 3 && last2Digits !== 13) { - return 'rd'; + return "rd"; } - return 'th'; + return "th"; } export function semiRandomId() { From 974b65b642ca302238d6c37baf0ca31f44ba18c0 Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Sun, 16 Oct 2022 10:17:33 +0200 Subject: [PATCH 11/14] Fix edit badge dialog flickering --- app/routes/badges/$id/edit.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/routes/badges/$id/edit.tsx b/app/routes/badges/$id/edit.tsx index d597b644c..ed7fb1cf1 100644 --- a/app/routes/badges/$id/edit.tsx +++ b/app/routes/badges/$id/edit.tsx @@ -72,8 +72,8 @@ export default function EditBadgePage() { const { badgeName } = useOutletContext(); return ( - -
+ +

Editing winners of {badgeName} From 5b1b440c281110a23e372f8d902d820021f76f3b Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Sun, 16 Oct 2022 11:47:49 +0200 Subject: [PATCH 12/14] Re-encode all avif files --- README.md | 2 +- public/badges/20xx.avif | Bin 2583 -> 1481 bytes public/badges/beta_top1.avif | Bin 2088 -> 1598 bytes public/badges/beta_top2.avif | Bin 1658 -> 1183 bytes public/badges/beta_top3.avif | Bin 1716 -> 1432 bytes public/badges/cake.avif | Bin 2542 -> 1933 bytes public/badges/ebtv.avif | Bin 2109 -> 1544 bytes public/badges/girls.avif | Bin 1167 -> 749 bytes public/badges/idtga.avif | Bin 4196 -> 3041 bytes public/badges/itz_blue.avif | Bin 1126 -> 867 bytes public/badges/itz_orange.avif | Bin 1276 -> 1076 bytes public/badges/itz_pink.avif | Bin 1179 -> 938 bytes public/badges/itz_red.avif | Bin 1094 -> 885 bytes public/badges/lobster.avif | Bin 3089 -> 2488 bytes public/badges/lutiblue.avif | Bin 1063 -> 753 bytes public/badges/lutigreen.avif | Bin 1063 -> 726 bytes public/badges/lutilimegreen.avif | Bin 1128 -> 783 bytes public/badges/lutiorange.avif | Bin 1046 -> 726 bytes public/badges/lutipink.avif | Bin 1038 -> 793 bytes public/badges/lutipurple.avif | Bin 1037 -> 763 bytes public/badges/lutired.avif | Bin 1007 -> 732 bytes public/badges/lutitan.avif | Bin 971 -> 652 bytes public/badges/lutiyellow.avif | Bin 1079 -> 745 bytes public/badges/monday.avif | Bin 2490 -> 1814 bytes public/badges/pair.avif | Bin 2632 -> 2218 bytes public/badges/patreon.avif | Bin 1403 -> 1119 bytes public/badges/patreon_plus.avif | Bin 1518 -> 1110 bytes public/badges/pool1.avif | Bin 4077 -> 3765 bytes public/badges/pool2.avif | Bin 3529 -> 2981 bytes public/badges/quad.avif | Bin 3302 -> 2656 bytes public/badges/snapshot_bronze.avif | Bin 1995 -> 1586 bytes public/badges/snapshot_gold.avif | Bin 1965 -> 1540 bytes public/badges/snapshot_silver.avif | Bin 1915 -> 1407 bytes public/badges/squid_junction.avif | Bin 2425 -> 1861 bytes public/badges/sundae.avif | Bin 3923 -> 3488 bytes public/badges/superjump_alpha.avif | Bin 1570 -> 1163 bytes public/badges/superjump_beta.avif | Bin 1564 -> 1176 bytes public/badges/superjump_gamma.avif | Bin 1560 -> 1100 bytes public/badges/tidal_tuesdays.avif | Bin 3133 -> 2365 bytes public/badges/toni_kensa.avif | Bin 815 -> 596 bytes public/badges/triton.avif | Bin 2045 -> 1484 bytes public/badges/xp26.avif | Bin 1477 -> 1135 bytes public/badges/xp27.avif | Bin 1605 -> 1280 bytes public/badges/xp28.avif | Bin 1587 -> 1237 bytes public/badges/xp29.avif | Bin 1680 -> 1248 bytes public/badges/xp30.avif | Bin 1499 -> 1242 bytes public/badges/zones.avif | Bin 2714 -> 2096 bytes public/img/abilities/UNKNOWN.avif | Bin 1053 -> 1063 bytes public/img/gear/head/21011.avif | Bin 1719 -> 1942 bytes public/img/layout/admin.avif | Bin 3940 -> 4687 bytes public/img/layout/analyzer.avif | Bin 5281 -> 4908 bytes public/img/layout/badges.avif | Bin 6315 -> 7260 bytes public/img/layout/builds.avif | Bin 3899 -> 5024 bytes public/img/layout/calendar.avif | Bin 4762 -> 4987 bytes public/img/layout/error-girl.avif | Bin 24756 -> 24725 bytes public/img/layout/logo.avif | Bin 4037 -> 5452 bytes public/img/layout/maps.avif | Bin 4231 -> 4268 bytes public/img/layout/plus.avif | Bin 3185 -> 3366 bytes public/img/layout/sendou_love.avif | Bin 2318 -> 2369 bytes 59 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e988fa1ce..bc8b36783 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ npm run rename-badge -- sundae "New 4v4 Sundaes" While in the folder with the images: ```bash -for i in *; do npx @squoosh/cli --avif '{"cqLevel":33,"cqAlphaLevel":-1,"denoiseLevel":0,"tileColsLog2":0,"tileRowsLog2":0,"speed":6,"subsample":1,"chromaDeltaQ":false,"sharpness":0,"tune":0}' $i; done +for i in *.png; do npx @squoosh/cli --avif '{"cqLevel":33,"cqAlphaLevel":-1,"denoiseLevel":0,"tileColsLog2":0,"tileRowsLog2":0,"speed":6,"subsample":1,"chromaDeltaQ":false,"sharpness":0,"tune":0}' $i; done ``` ## How to... diff --git a/public/badges/20xx.avif b/public/badges/20xx.avif index 88ebf7c8338ef9dfe3859f087cfa4e826bfc7169..97f4c4459b728b79bfedb7a2a81f29d67a187d92 100644 GIT binary patch delta 1456 zcmXv|2{hDs9G`KFYupoJlp;rq45CC~;;s8wtgFe)G?QV5agDoSlB;M@6Rm5^0x=lNV^={SFwndS0xN<* z0=2-dNgxFM_~VD82oM|}FAQYR6g>nom>3+&;{gP6C>cOI0vQ_&AdC=3#_NKciLGE~to6tPd@12fK59HdlRlG*-i^s2c~L5#2toka$U?vghSJyrt2s!0Q&$r$++{Et$76 zAxB;I@~ug}kc90%bypWLd4+G!3-Kt=$3CXj&EohDd!wt7{nQoa1>-qJiSfFg-8ou^ zZU`dJM=4|CaxoS&t6l&2m>I&a%^RAuI0w_K3W+Vndi6TIiS_EY{U(Nd|nTH;0f(w9-I+LYVrk{?Wv8O7|CL8O00;geh>|O zS8-u?KSzzT)MQJ-=kE=POdU+rz0Hn;EghLtSi=1blaXbLv&xI;Z!+`iajkk<9thko z%Efdi&5wi2zd|ml7aeCAvK%QYjhkk&KFN`RV!hi^ZgxVJf~uQ_qb%-`vFc`9ywm|?CVec3q<={Dy=V1M13 zoW8ewGxmkR=e8nu^u<4J7XIz%a#-KWoxmL6=R@)0xg%%s3f0;CTaX%C_mD@ZuBq_L zX_wM;xK_XGZ89;_gZ}wz^xn54SEftuwr7#36ByP|*BB8dU4XF>V+nX?QX*|mA*c8| zpy9h4?T$;t`x-Qf7Qxiw$P$IugRdIkiZoj7=QG7m<0Hy(1Djg<`Lf>D`Pa-c=Bu#> zEHX(xKlGdGm6)KvZfRr3mD`t(s(Y#&nC&C}RV`iJ!mu5#Pr8G-tfLxHrQu15c^`G* zjQ%{5{;m~iBRr_$dWN;@tO0Gj@tnI5?2D2-d=%5|q&rm%QP9M*!Tyme%d3b2* z%jP`w`5v@-XGXlxqDP=f8rvB+tzdc%ChyFYU9HF#DRqs>#rO=0qOg-1eZi`>>XKT1 zQ)MoJho!E$6Llx&T=Vv&lwRfxzNa?Mit?{l!o@n+Hk!Vu0?cG?5G^I53GZI9#nN6k zc5`p04rqBd?pTh#PKx>S)dRWhMBxob&ghVVh5YW|Kk=KY&gPs|dc@EnGpQV;)|`B? zJS=iYvl+Z*y;3oW_kUwjn#SfI^k{2!HSZRrLY`ao#B+6W>se*A3*J&+!v?|fizZ^T zjhRf)NM2{WFdtqSnyg#D=MrWNL&=<4^EA*DX-7)n literal 2583 zcmZutc{r4P7oM?>N%rg^6(T!d48qWmrcyMLrN%TEW-}v8i?I{aNcJ@^iZn=;>{}5c zSqo#yQoTraLzZvo>iYiq&hL88xzByhx$g5E001EE>g`WN`e0lEEZdJbjH@ONgJk8v zWE|QXxzDrgnEP!k=???|h!~XjU;H=n5i#Dlg9OO(Iv6YgwV#=r0N7ZMWx!g%er4a} z{~+MlUk0SlV)ZZ>{J|Or{YO{{`p@A0Vj7zJga0F0mA~X?43R`+6-zKg6oD0mQ3Nar zkHY#LD02m}C|;zGrdbd`ngszO7%~yP4_GT%{rLc_<^3=R42b3Rkazsd_Om-AJOoEX zyB#qgwJX2I(Dq`+eP_NC0^-+h72V+4nKOHs<&L+=4s^h{2qDf<|W!d z{bW-*_n@;*@=1oUSb*TBrfmiBjgHYEb#qs4;ra(=QYd)cY@PaV%{--bs|Li5a}te@ z#zmGmM?*j6#*cyR-)9_(Xw*?_*ji-BCe1FH&q{UH8yY+{9D3a+Zx%eA)|*nOAkpFk zLd4&pbAGjb`2Y%{3W;r@wXZ6qySjT^*^rN;>gzMRidr|GCrj8*xZUQaJeyveJKeaT5O<$aX_rqE5A?1;-j6~-CYQL1HENFxvBNG@r7S=+~o zkIk!b2S_55Wq4Jsc(udghRnSJAN2rWCsZ*W6#M0o2p|X$ang1m=>o-nZxJJag_`hd8x|gD_>EkR=F?N6$4e?4{j)>fvhXw zcPq+0@ZMnS)r6+`V(-W9E@-U_doxTPbp&kYa|&qU!j9YC9)gh0yyzy|Oi9R7G^yF~ z6z^JiQn{--%Zt>G$Vj_prrL^)E@vq6@;g|)JHm-G`u2;z&dT9o3_Ktg(ZAB}8Q8yO zSmR)yd2(=ru3t7FOpBRXwi*QfSgH?~PVrHoU0?Hp6spYlo~OW#-#=B$UOV%Gai3Pk zzhRPkk@2E2cBrXTD1@L=*HD?PbE*aT%eth_T|ye@QZuO#qJjV^K306lB${46R)s06?!W1XjS`8 zL2gx7Fhor~6xiUx!IHH+Ox@^Dt74DKE_v!yYZkSzd$~ftBLgN{PM==ROnVd87;x#; z%(<$eP9tx7@co>VP@J#LX4gdq>S*QW(=+*(fzywBQWiG)koi&Uad@2@k!1Tut?x5q zXf=PqV46UwLS8|sX)ZncWzh_zKURQKxjpPGBTEKsZv`i4ylFJszT4hhD%BCwT?qQo zFK;j2wrXPYWm4f`eaa6Ze$RIXQ~mVP!yJh+gAsaZ1bG_-F#KIV!2nzl8pl9q6e6oa><{;~(?Npbh2~IQm0ROWSyOlSa>7(*yVjfpXh<{{hN_vB2lutUJz^&v$ggfKpeQ&J?eQ>X@b)wK57R;-RZAh%bbK`P1I3z>Bw21Ae`X8m`OKqJ3$&_G`NQP!3H(_?1*+n(UeZ z8JM$6QNqr5*?5nN2ifWxIqTBt1)H5oM)z7B`o6H)Ba1CKo@JkmQ)f^Zb>5EQD{Z2n zwBJ#W30=B{jvMO{*I>HN*hkOQzV|sd&&8Q-@<2@uCF_;w_Cmjpzs&hWc+fSG4vU&T zOyNT31(5 zk$<$FhILD+3)1}Bw#Ni(pr$(-`2kaLRb%sZzc1gXZQ*m3NfMBF=NPRKsvp;r;XCkc zC-W+&<<$q}5~eNp39>`uh-SR)7%a)E>3z-DQ{J|)HvyX!$L|2U)!Dx-@wLJ9V+0ZR zBO=25Zyr@V{>1wCszaC*ZuUG_+qXIbTb-hIUis2WM4b`O@Z`-E^hC+?Dzl~htF2S+ zDW*#^^y~Az9MF%cgI-$*J)@sa8EY3Q6hri5Wx~p|pxDUbiR|dj*~Y0@f^-BbbL-}>QU*+#*wS>DjfZcfoZv7Xstavp5 diff --git a/public/badges/beta_top1.avif b/public/badges/beta_top1.avif index 4933e424a70d5c3b7d682364540eb1bb79ffeefa..781c7044e6b21a810e1af6a335e28dd428ec9e91 100644 GIT binary patch delta 1574 zcmXv|3pkT|82=_Cx5!DthL}iVL+K*didw1UdI+P99ou{%2gx?uQYx1SUBot*2`MS< z(S@AHrCc^O2a#JUcbiLPF6YzpocDeH@9+Ixp6CDa)Ltv20RYe^M8|=+7$O1MfpsJk z2^caFM>y$-ae^cX86S;X_n0{{%_^$EbV z0RWDIb`v6z^81h9jy6Q_GV5U|gNs39oFhmPk?Z^~A{Yrmh$Vs{5fE-6MuGTs1B&WH zFEbprg{q8;!8p?aWk>}62#Fv?QbI_vfDF`fG)U4Uf@Ivf2NiUQEKG(W3!Py`K97r5 z2NV^z85oKeud1n8>sw|jo?yzrI2L7@5w=Bol?CquWXN9jFHBbBhLn(7Yf7_twVQX_ zzOrgWTmEEGI;Q7~^jeLm3MDBHt?p)zE$y}{2Z*ev({_aMUwUE$F+?eC@S?NQ{1{5` z%+wQE|3o;Axy?iM??+9e8)rAV+Ks_!>|eDBDH|NW)CU#6N*yu0`tr2}*T3J!{Wx_v zj*ifia82|m*H;&$Q|+g@g{l~`>Dhd~hb!U(OUu5d_grQBVhfdLO&-$mm}uo+u}1Stve`N)>{td>|*M7rEkqMvY6pGiAmh! zTur}U(u_2>r?y@7QF@0MSSF?1?C*9R^*-KGNGcIVRF0<3DX_j<+YDz`gJBg<28C&T zc}^As&B4YK-Pqj)oKcl?ym7soBc}YWbap}@#jshi7O{PXI_u_{ZC85DCs)rjAoBA? zg)?gAYkkh$Xd9Ob-@&R}r+A^l@mw41TF&OIvM<&DQ2C_hg~PaPLR3wyq+gJiXM+3+ zO0WKOQBo)Tlt0{nk7v+Y?%|&sJ({uceuFwF{g~@lz7krrQx>GX^gY?+(z0SOk#&om zY#zwSqRaT}7^hd;e)uFBdjEDtGbJ%FK#s}jA{3+6yzy-zda|DuuTNNkmQnwq4W2s!{-qf9!b7UV@gOT(P*;v^MI+dP3Q_2%}HIgbW!p=lj1?8h4db>jM^ zSv_NfSXXl6lvCbB|H`at8grzcGbt2#@4s+pc}P51u)2rkkRtA7?`mJkFoZ4QhufbI zk=~bJ&s8SNG@Y{d@iXWx3Lb;IwuEge3A7rkPd+joq>klLKxTY{>CvKZ;D+-3a^@l% z(W9_6MD>4XNB5rjn-~}uC4HUKRjt@|v=pnXpRfQw6qN9ND<|=N_?zK8WTMy7!eV0a zQj|fizr>Q!aZh3LG_Z)h;GsM-8p}OV>ht1}kyu5(L_WZtSDpjU7##PfYPn^q;P@{E zks73~4Z4%aq@{+UVrwkPG~jPw`ei8f0okxAN;4jFnUt7a>at4KBE3`*4fmHh;`^(ZtWR zUFeKY&4Ns=tU^g$><$KTph2FSvn%^%@LkP0^C~T;)C4d3p>jC8zw6>-=QuxfO!$Fo z1DiAi@X)&Wt;@|?V97Fm6&~VyV!K$r5%pwQ{B%p;z9exGylKe9aA^bQaZKNy<4aBz WyR8VG_gY$CoW1mw(V?Qbn*JY?Zp~f* literal 2088 zcmZutdpy(q7yoXSOU)*XM?AAx8)5FbhUJpvnj&+lhOxyMRz?cBR9Y9Qq(&|YLy>E4 z^+=^26{!?*dm$2_ z!ivx^8wk?3$%s0FtTCM)y1vGGKMG8!8-v2dbaaJ-|0BW5CfQAAMliu*1)b?121XhG zu#kvQ{}A@NvS>U=!6~P7trGwx5CXFFNG4SXz?Co?9{`tU(?J4&h=b0Ua*}N=%uYsx znlhNwpmk?u>QDD)nnp%PvZ#zmQ?Q2~LZ?JTn^HoUwDmJ>s9=PX|5rt7Q$<8vT&RPl zGa2iHAcg`ESVD@}1po>=Cz6y5GCSxI)Qxih00LAC5%vfVCdy(2P*~EyR?$CHaQsD- zo~$(3?h3u_vF~`1Q*~8yG+;hX0_zgS!nza&L)UABJH|sHdD>OX+lLdg@dkPU0Z{IT zK@Ip_zDIt`?awDqk?dl)OWh9Vbi4}OtjfC6X_j*yy`(Ft zp9YX|;oU!HjAP$x6Bb+T<#d7|yd9RSh8iOApJqfMXIwlY8_0J`NS&){4cSRGc^zL% zM*7_Nj&6vG5cSGJ^BYf-y7uMTKh+4ld((-78%Y@DXmc@YupSGu16Qv+bC_!9et*|G ztx6Ux{>mGi7|yRu(OwJQ3nxdGg(6D16UUP;26x7+9LvV%G?bP;9$A&aJKmr{Wxhb8 z_tvHm&AJT(=O-%%93Kq0t&AZxUC?20b_L10Mm@)TVs%>2t+Ybs=Jh#;;-mv{%tDnB z(V6~m0dcvwqC6XZvG+(E@yHnw8Q+)jIept&;K$Dg2TA9dW%(4_|9KnJtc+#tYxs=i z5MI}9@tVF#^ql_#(QBjP7NNSa*6r9B#-{de5)fT|h7B2RF$U^{ItGa;X9 z5uY#q%o$ez(=VoG9@Z#SP$n%vm-ylE8?)#8rsV(G%}HGT8gVUwW1Shx32;wl06Tr> ze3Vk>c^Wg1=ITSJan9WNmA6`@3GVNvjC#J8yd3o6-cOR4xcsBl+}5bW{XY70+Hx|K z(r~=I-nS{u$#Z)XLD;W*mNsbHTF* zYZZ*nK9}^~kt#wR?HSN5Jo=U21s#EUx~2xC#aimcmQQDUDwIT2H1|l@i|qe? z1D6qQ4Dj~SnR~H@x|0N}F0*o)S`WI6V=6VTcsD+MFTz&PzJ0_&@vnn}-CezS8$4@; zUi0FN<`I>kUS##y^`Xn9m$D83R)MbZ{?Q6m`Ui>iBLzm)u2O_LCG<68R6o&mh#ahl z>^JylWPI(~9yyDqrGYJ}Tm1$V3`r6OWj^-`CF7#*oVhg_;{#0hz!QIyPk6Eir1N(y znH<}{-KI+Np2b0nmRh~jS0Ovr4)9*Y6h~#rC7*5~Y_~1o`e`}anx3EfyNMvS8YOGx zIdwQc&RP$pj{IEBnvlC7IPp9*lR6t#-%r}Dj;V^3%B&?=dvt#k9ar-llgZ8yY{9km z;D466hS@0m86}1Ytvq_+WjpkDn&tj>2vR=TlRw~+SZa#&8(?qsGQm_WMDDEp>*Ubz zgKsC?tHR5Nk~Fio#W?NSPhgDSX@s2@^l2qdn3VtBRzQtT9_-Ey>vRpQ`|tryAvO=aT&axSekQ6 zN)q&&?`XYz)Uli^53iTJv{{ytol;e@e39XiNq!>hjVyjKJD%00cYo$dfV6?l8}Xj8 zSOl!n=XL%$L6%1^Oc%4ZWV1Tw#dUVS$2&@ih6) zb6D9BJ{S3p z_LhY9m_zXSbm_w98a*uTEDF}4riY5;ILhG$7DIv7CXPT!b~pP?EPoO*G;1-)`w2lG zFI?-Il;rVq_*Z*(;Ze(LD8;u8vr0}yY*n&dicuQ$_mkHK5&LW)Ge)+*r-zcS(5`u3 ze7o%XMJzc;GEk9Ltf=%#m;E~R*7k8bvNyA>Q(+ZxO35*~a!EOmv(i>qCAj{Z?@TF2 zThcFPU0>LZ{MlD$G=kzSKfDxt6usz1zJQyP`J>AmHGIR1mgj#DYGB`2sP!bo65psZ Xsz^OJ{1BfvET|pQR39^FS1tb!Mm}U{ diff --git a/public/badges/beta_top2.avif b/public/badges/beta_top2.avif index 6b4c39eeea2c1606fa82dab5573ebb7c2a2edced..2bc12971c139fe6ddb872bbeda79ea1bcd4548c2 100644 GIT binary patch delta 1156 zcmeyxGoRCdfq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c2If{ETO%_w4{QfmMheJDWdbP% zs!1#}Fm%q($u9!&voZ^c3V^hCW8 zaB_Z5QC@OR1p^ZhvNZsO#4`(W6G3u70CWipBU3XA&>6kCDTyUQ3|w3iN-C4wIs^nv z6pX&G`Lr-_s$Pta7CaT>t8ZWudgoF{&W(5C+4CMOF5Vnrq%uwPiJ9@SS?N&%hcpF} zr(V|TX|GSay`<&Snsq;qbvy1`V%N9lWk0eZ6z;&U=zl3h#4lgCb@$9~Z4Zz9^+= z`{wJ7eeP|EB8vZPK9#53TD0;S%OSh(U$#}tZ$oIp4-zRk30~& zvTW7dTB+v~rV4SzR<3f`D?F9qywrrmu0+>cdBz>DF8sSKo;ibXl?5PpO_Se$nF3x6gi-*xX;HwqW`N`-j=ZT-)y_ z$o)IN?}y~{%hRKtu3fy9VYaw$`05P)zS^P``nwYcSTmT@BI~a zPb9@o$t>fU6ubNw=U4ear`z@U6Ql0mSs47j?{R2B(8Q!d*K`3Fx2voZGaCO*bj^Bh zH|^3Z{rdU;ChASin^3dkt3yo2;yqa$^Vc$^^qs!C{_D@QKS9ekd2CQU(_a_h@$bOL z!;y_$w#y>=m$6m+aeS87XzTU=pK^UrslL0z$Nap!xlbBaq_EwV{Ubg1Uw!MXqtcdE zey@WLW-;DrQ2e*f==HBiVT)C}Ricc)T?&%_!F63hwxGYj-L2bsc4mvOq~OHDd?|+S z>EXNUCOZ4;a{rmk8K|eQ?&^hehYXJ#)?n*<|IqTmi`O&O_^nk9p7cOLt@=u&k=2h^ M&T}_C5_9|k082*pE&u=k literal 1658 zcmZutc{J2}6#osAW+F7U6p}P4lI_(ri80nJO&El>F{mFi3}cOFNMgozEHRmwkTrYc zDTJOZDZNKAN@LPCuPl+YIrDzQao#`ge$V&b&;8tc&*z>C0Dzi*STv0k0r~@wi6a&C zH>83jD2K7Beqkgr582KOzLd~42mmyY9JY?vqbv;!qpl_}$eVzaV6r%~!T}P{gACRV zh$~`KUqdk7Is-3;SPTdTt*)`!uLLE2YlGs&3=GAC|B+B-og4#cp){!22-3*GP*flX zQ$mBtl&Do@sd$KzAw?KkCID&>1QbC!%})%Vm3FUv09rl@TxAfD$B@FKEX7%PXb_f4 z^E}$!H4- zYCj>tcDFfK>Bw*xhsQugBt~46*VF`!vXGAP60nj3%``SKv1qr+-sON16P3LLCnX~4 zvw=@U>$^s7^8lIJ@Sxg}Wm_hi%UCW(cMe~F=GKfpe zO5w*%fw!n82SyW3Oo;V{H%O6q_=#c|!fAD&78ZR>)5Queig<`{cIl zx&1p{sSWqyYo-NK^pmovg`Vu-xZd_ldn>FoK0h{|=#g`9Z7*MWAbqJ;Uf_NAp8%$l zL~bV<_9;GmN5N5*kH;;T^^D8ji*M6iBJyi$w1Qra;Gh3NG?PK9#ZtHtZ*IQL5ITrh zo`;^K&1O2;`Tb;;-~xZZm3`4u=+SZY>hD!J@5A{=+SE9)s)0|MZ(WXTBy<^>&yW87 zn{h$IHGO$h)Z?OwwAvx5oeQ1*Q*IpioT1lYch&Z*?RGAur0qJ28~FQxM3}Al3n|BR zMSH>+r~bnx$9fHhk+A4^3tvuUgGaJEUeTei`mbl@i#6`^*wKP>NH(mKp=WMltN8GF zrhb)eK7UO6!U`81vt%}{N1<=WM@AQiu(Nt(aCUZXo~(tO>9pAVNAh|BfrDQ^ar_sE z!vxu{k5#?c+2s>*3Wr(aL-;Rc#L}bpZoYOuNZw|<@%^8GmV?1PURL1baC)2*Z)6r@ zw`{qGt9`Ss(7G5_oiZnnG+VgO$=ty=>!`QxmF#O;(4yEoAw+V!4^y9-=JqTW&yepU z(6M<+BR)zmG0f_`WMtwu>WMtyI|c8)NX(zlZxxBMt4WhSx%q@IxYJEFxP#Op9-LDt zEzthPDW6o9jgCX+$q06JUpL9ZSqjvu+9{V^1kUgoAya?0=+fE#xap^=whSLYr|`oN z;TOMHw=&t7Wj{omZkfS&?y2w$aW*Bml<}(OTDte#u1Kcm5cR$m1jtisb5kF;HHS>9 zr_?Y%K21#@XSGh53O`_Vo~GXKJb~iPm|2~{9aV4W}7s5XGBaWM5G4bNOM~2O>?VJR~itepgljW}Or;pvg z^G(RuWMKNHZluK`z@`~|51{}la4aJ|376HL3UfL5wRj*>LHS}kgZ3*?Z zs9jD{rX5C+EdH&{h99c);%94fT^a0yzurxF&zx~>FB`61*=+8+f2ylANw+Y^Luo2= z^RaynMOWhoB1+gxzkdqROsS@Jh`mQ9O?!I1qT#7@dr+h%r;WUDp%;FKdpY ANdN!< diff --git a/public/badges/beta_top3.avif b/public/badges/beta_top3.avif index 04ef26b220b541672c8fcdc65116797c72aacdc5..5834dc1dc78a3b987bd40094d76e4c8cbf8a3b7b 100644 GIT binary patch delta 1407 zcmXv|3pmqj7~k9;W|K@vYBVC!%yP*!8%J^}I!QQ~8RtKnEoR3GlUv~+%ub@*irkBI zA<=MLN-jB$6eYPtJ0#{d&iSwBIq&;?@9+Ixp67cXB5ueVK_C##U?!VEWC6k84iO^_ z2*%O?Vz8?n77t3xG%}MY_Q2B1I-6&L`M_QQdK^8i4llf=v(0)c`po)D-y z1R@m+?s@ z356+ZkabCvfRIWa zkJv}jdCE0CS6$ZG)xA@yhdYD|eg8ICXZ|*qx0}YPJ`o$?|9&*~w$9!y3N5ph9cAOs zbtsWFGN@#VlxhQsn}83h+JUIjnlr&Ik8dBa94o`T7Q|89wGa(3cz{o&M@khx~d1tY5`R z6F|J1QO#b)84}yyrv=}-X#8P>V?C@dTC6gOP{BWG*K~a+wqx#`(yqz4u zD{r2ZDRtGX0V)$s@-n&0HN;LI-Ia8rt3KP=}vVPzDRr0 zSGfw?vY%~>dd$V^@ZsdcC)w%bp=JH~^~6gxymOrX7tB}qEO!jSsk7JZ^LJg!^U>Ga zC(}gFP33|zs4naEYvk=b%x z&D=fSG-JLu4my<&r(Ym6E7V1-tWpBHctGp7vWsiA?TTV2KPi?)|h+HE2WLg79oXrdE(#*ZBj33Lu)VbxL|l)P^#BJ zjj?O~orGwFjarmQ+j`CoMKQH% zpw(9Py|tQ+VdTuh+tM0=DL2(eTfoiX++1>SrzpN-o3$1D{ywBX)}l!z$4_1q+{w0~%-jTPea0TD`HkI}5w^c8Xh+xznK z*`N0Zc9c%noYb)$pV=Mj3x6Ag+m(D7h^|5exHE5PY2T<&f&V%9y_l|9)`||TJL4ou z8ou@JXe8|JbAWtcN$cP8F;aVbe(jXI4`NqO`6J+4+T7Ce0-@;dWbTuSzHOAkO|H(V zhHG%)S3k96we+YH8dI$Wye~Y?XkTuMiQ;j4D_jE1GiI^YN-z}I7$_;}(Ij&r#T#i5 zYiCq%l;+nkYJhyI*6D=q%sN)@N65_e8ajrSb0D&gw2bw%5q|NuT&ed8&_H+}&q$3= z|Fv~)MTtCR9JUYD(ok@bw3ZE62^Sq+mR9El=DSX|7UvRX3 zo4$-U7)6To5j(#_iI(Wdy24TY%9w!;5`T3K!C`FQEBh+a@}I^Uj!T-ZbI`*JO0kY2 IVffa-e_Ca4ssI20 literal 1716 zcmZutdpwhS7=JfYNOGB-ikw+RNODO_ijq)CRLiZh#_VP944VuwbIF8{b81*gNHwXU z4K>P<;#4~t36;>rJ*g;_$$7`e=lpY?-{*ZU-|zE$zR&vr0H9B1u;|1nkPN`4h!9A& zgg_!(Bl4gi22p{-W=IL7M$D%GKnF>Tg?u4u&_MN}Lh9Pxgl%-Q5pbw`28jPd|DH3=k)A8-15hB5p$(`lT8>+5m7{B=r46?q zK;{v42MG2h?CnCu!lWu*L26>Lpw$!AeQYG6*g{OtJCsy_+xn7qW_y&*KZYOL9VRK~ z{kk7VO>vS0rMboLxkDSKZeROa*cRTw-xiX&zacH37Qt$FWaxOr-b0D>xxe&1e@^V! z>*&4Zh@2wz0vqG-pNy0RzBr8^FL@dF3DB7--~`G4;t2Yg?=jF|*KJL;a;-QN2iy8w zrRMlj6{2eQE2 z(qJ;=?%MUme584UQ1?BNg?2lD5}kW^@%oj1k$;?-}7hyTiB&~?Otki|Vs_GLHC!E1eUG6@ARF>~}%}Cj)dN#>AT#`0p zKiVTR+&^PO#))W!$e^hekF+gs+FYJm=`f=kAS{V-b*vpv6jdj9A-CPo;W&Nn*h+3d{7hl%qfF1#U=d9*ct{Aksiw|`^YjYj{ zRmf%%Y;MI~sBhLhm~LN`z>(!1ZN-j-C1bu_#y{>mzb?T4(k8#`C~}{X!<2 zB~)vt)LMP{YpnzNq}-N%AH)b70A!sr)PzAoP!0E)R{))pQQKKW}9g~geP@L z@jzLcTw0CNxoc~zd32Ab?6$Gt&?WcyrZXoSgt(+>q26mx=h5}tJ(+<&3F%Rtz4jD~ zIt$_kfvxGa@I_uX_Fu=`8;PSvymPjyL2gdQug>x~T^4yEZY6r$EY3ppT)NtiSS^8B zg5^iQ`0*4|Go^PeFT&2>={uZ$yr=pNe^B@N^UtXd?}(?BzkIpK3{W>GzpA%d$`vB? znO$BVu)lJ)8oyKtCsr8*JWV_#F|O6gPYdOhlL}({-6f^;=Nh3Wv(@kTaNVP4^vXi|tze1I74najGYOYH zr7vG^H4Yel@V=<0=8Ks-!FLSp{5BW&!1jTy_sFfN;MY>}yUP>p_ANKVrwS#nj8G+M zLw|874Y8}3`7W0d<9&ZQrA~jWBwgg+LCGQ881@&BcULGqS|Dx0IlfixYx}5)KhKRK z%*>PO?dhpqJdyKM$7M}&mxGnXxuM==@txcvXYnrunwrujOxYl6efj&HItxRWiQ4)>ds} GKKoy}i^K;2 diff --git a/public/badges/cake.avif b/public/badges/cake.avif index 599f805ebb7ea467a57247df1d7bef7330b5e451..6dc05e1ceece481426d02f36bbc71b3a58eb462a 100644 GIT binary patch delta 1912 zcmXv|2{hCT7yr)~WF9e8WEpErk>$k`GtV|iD4yk;ifm(Km>nbQ$Wj#HkqA9Zib&ap zIYah|9wlq>d4?!7$@)x)Z*YB(f6F=dF3V*|8v+2J78D*u@u%a1ggbD6M0}7D z5$_*#!P>}1D6J83;r<7nun^gL$_xTN;Q#T%6nr@GrvnmBIG#Yp9xz(~015kG0w6^I z5DOFT2t1zj^Ttm{QAlv$gRn5;Pd79|lL=(n0T01bXcQqj;VD?M5Rc%)D7XVd7#02l z$_WJ>VMzMZjnFp$$pcjmOD51rSi*GxENrm^p(Kx|5d9B4VF^EhfWS!*;Tti;K>u)A z018#mKo}oOm60)4`*l{*IT;KpGpH(_s(4=8>t*UT9txk!{IrtIj+=n`WgbSDuEfQ-WDWipt|Jk_Y<+z_n-NRcS|f?-0Q^{Ii>L? zih$HscXrWg5vnJDz-(E>V}9zzyB<*vPCIha8bg z1zeeeYFwI8Rr5Gx!6>|L=j{C$O69btmjL1!I3pP+h2Ece>$9N(N9N1NcEr-!x}P}L zLjIIhtZawoFyhgAEd>hWfAiZF%$gf29!|enV}3|7pm&EQAnJY$dZ9E@beEk{)ORN> z$gro1n-Lkk2JOC>!sE^C1{qj==}oq{jxu2sc5-vDohla0dUPtUD3VfA-})NT3CrmF zxDvWP3;hs7Ovcq8<>|oO@=0MB&dBj|YlQHU^Gd6X{3gxYwh<;GcU@zyWP`wjg4js= zAhkgZN^w0-X=lFuBL2KWusc1CJ>%tC5>d`&t*qLxS(YEOolF9=p@@Ck6dPuLH#4Br z`C%WmFXYR`n%wOL?y%yt-MQa~2Lp~v8i=ksRhoK`jX4%}@A%F)^%v?K*>d(rTJKu4 zpT#hm{#xNLFWoe-UKGn`SIVyI@*O%y62v^)Th?{78`XU zSHqg)re%>Ul@kRHJlovlSKf1YiOaD|A{>1$bMm1;9r*~mGFvNNPc+}6Kg4|RaKt_> zZz8Hr`6ACyuMeLYKNndkYj&nE3v~a68;;GWj%<+(4(3brTj&ISJ;B;{g~hkpZkTUg z#^|0#KK5M773jplejD~cbiCVmS9WIVq#$o)*iK3g8@v4Q)%Yl>c9DE4MJ zss9!i7&17ry$p!# z)Lymd{DxT4IL1ufg_{nw04Kja=yoG0{@Bjio6g7&fEbbsLA zsf~seB?(ttiys!8n!H{z6CH=-y<#M0ur<}J?7#(&o{u|m;Zt*iqBY3_0k<;yu}dtL z0IA$@+sNrD4P>8j1mLiX!4$ZSGnyf)ngNl2`PUa%FwNsaS$!khhCjXVe~m_7@A(rHJ(lGrRN4+w7T=bLo;^fT0at%dfPZ+0dBnQ0@msXeb9M1Xz_-b5`OqB#p74J$9jnCqFkL@R1->~3j} zblWTwbBkA7WLm#pcGBS*7%<e@8t8P`q=Wn$6SdEoySy4(gLwo<|upPb7 zM>Qqp2x<*F9~7Eydq$=?^p*PFw#vdre%em}65<*jUB$BJ9rh&x>-Zzp>g=W!*}x9H8)stk*oUYqbg`PhRCgf6HuAkxipl z4{I}iuE*W(2`^*p$}i~=TSHm!t;*mjDS_6 zvep$Urd}NqaCb#$=7!DOQ1{VYY0FY;aF%`VaG`rp@f~D&At#e9TGW{kzJv1X+A6qa uYj^o{hjO?Y+Z()nw&74iRYBl<{fn>0!;&ykmw#6?HN5nm&PT=?H0ysxoN@91 literal 2542 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 Ny20)_Av@Wy{{j|VRm%VX diff --git a/public/badges/ebtv.avif b/public/badges/ebtv.avif index dbfad189ee1a9ffbcf167c774ad8bca977dc42e7..ad3685e4c8bed05ce8f44c563b11d43ec9c46d91 100644 GIT binary patch delta 1520 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 literal 1167 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7;&gidtl5=7F67Rxb+V zq(U@;9A;n$(ufcQ%D@D#XBHF{03|nO79{5bY2oDjoT9wsoC>hbYz;smp2RXk=SBt@ zAd^8Pv$!A?!~i0VM3=Dig+j4;3VFU#j)9u`p#1bI}E;b1z^~=vhjRb{&$^)2Ygt;ZG z@TvE{!BP#BX<%Ypq`zf)eYsys;`JI12l+h-=R-GihEAN8ll8{q zoq|@}I}_F2d%yN|a!#2L(e79GEw*F!v&g4StqMjAjZymyy<+ozEV!02?a#+TrwQ}A zb=LkhC}vk$JtLw!cA}W=&A7!<3_AaAY}q@DFMOJQVZ6@Vkm}+updcN3#Fv%TA7rT%_~g)og9(7p4o&%lQ{yxEXyvps?gZ zQUCT;{{@$Mxo(I{G@D!Ad_!!b&b9~JRpVz(;EB7EnYI4PnHg~h`~TbTG}w0j;LleI zjAvJHR9|jM=hHG=9%fR*8S#i-9+Cb7LV%oKaT&w_%q(}#U{xkn|!TqXz(pvQJ%Um z%_#8enaBIZ%LI-w8L@6QG1yhZt081?Zd&hux9Z(z&T`iXe0#HMujZA1PB&kd?qN0T zkG{S{aYlIIw9N3FXpZ}OeCE3Tf83*E;vO|Jzsuy?|8vq>7jD~A%l{mIJaJVam&43y zT7MUBjQ_qSXa8Ayp*L$1YTiscwEJYWfxgEtMVZv(0~%*EJ7lhhy)sJvwROeY85@G0 L9eDDIUpN5(U*fDZ diff --git a/public/badges/idtga.avif b/public/badges/idtga.avif index 8480cca38c973cb17f79bde983e57e7c881f1986..ab5aa04df525c9a82bdfef89b9566ea905eb6716 100644 GIT binary patch literal 3041 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 literal 4196 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 XKrx=9pN|(GQt2+tdKlkp*W>^Iw|nP6 diff --git a/public/badges/itz_pink.avif b/public/badges/itz_pink.avif index 719157055b7a682a512285705496b6a5f3ddec6c..2735a1698f461ecff5655d5d5a0879e8eccbbe5e 100644 GIT binary patch literal 938 zcmZQzU{FXasVqn=%S>Yc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|b5Phy#&b0Y%}NJuz2Kc^@!Ij4ew2?*I5fI{M#1-XeJIUoQ!jD?Y@nFZ*o8M!Hm zB|;2bToOvEMcXwtKo&1vvMatr`rn9Eq+dgk~ z$c#;5vpkMh%yYNTTl)FQ1uZ|89u4~${AFU_yF2TwUj5x6w`R_P9m|*f?L4O1Gsn!a z=zEcy-sSfdyRXE4Ev?iDoL0Ke?&q~zR?9z6oVxe&=i86V9yy)j`=9@~@6wNbkCILQ zU!PuZC(^h6C4aD`%H*jQpX;Wt-TTouKG8^Dz2J<2bI}C-D-9R6G>H{oo_OTJqiJ_` z{NA?2FKEgQ_c)2q_p22)2$tJ<%z65@?)%BVl3OeQ}2r}Zu&Q7Y54sPx4Luf zcXO}YtSlAx7QwGsI#VbA4xCz)ljy4Xpw0F2?Z;nZ-u#^wYcCwWq5Sx(oi}G|OkWdf z^PzYR|GT{(ob)rqz4yI`7~lPOF-Kv2xR6O$>*ikWWz)P~<}|&Y z)25kun7Q&3i?haVy%!yg+KRWsyz_iJ-fL)cNBGrw?S7au``E`{-_)#CTs7&>9% WhVMOh-R9hAI-NCRrtsZeGc^E-R(tmV literal 1179 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7*`kidtl5=7F67Rxb+V zq(U@;9A;n$(ufcQ%D@D#XBHF{03|nO79{5bY2oDjoT9wsoC>hbYz;smp2RXk=SBt@ zAd^8Pv$!A?!~i-;2Z9-Zj<3iBi*Nu*i^S3jXArNnD90VM3=Dig+j4;3VFU#j)AQVv#1bI}E;b1z)uL^pMuI{>KhIRzxU1))L4%u zrwbV5r3SyB`5|hP?fj{C4)YaHR9cy=z<#OHcITT%Pw!d^tgGQ}KJ>+}+c4`%xyZH4 zkGQsJGW-dvSl@8YdI~dmVOmHB5xV>%3OcB@bgXk@)s|g`nG?a#NnOC-E|(U z4-u*ndi>{#;nBfn^3wgfblrUH(bku~U9;u>Bpx%B`#$mf zw%CtH9n_yqj#e;SZ=RbpG)p?|GOk4=hMRq{p?t=2Z^)KYPqW3*ze?!x3m19?CTji|I+5W zJ+>7K)w{E9!)ta&hAltDO`2M{7hiuYz-NAqaT}lBx3?#@HD78>D46ee;@bUuv-zKH z25=rW=ldS|{`WM?hfe8NP511)zxS$%!G$xvvS}VO3-0JETk>AqqSf5JJ;}1#z}3%e zR)0qCB!i87&p*HL5PQ74BX&m$Lw{Szp-Wc9?~6|LKRLvGX*$nYrb`==Q&0a3X1S1| z)t3{+c!;M=plHF=$axRy*)LqLn?Lv1!OQ-w_v4ug4jk7x|NTd@|Hb_EFE8qLS42;E zzsi5XO}0|s|J)Cn@4ee@ou9(hov?1<@)LnG9!?2}G-mz1=-is(ps(vE>*x1#EMWTR zd^_j$ij)`23g7+;)1BaPUpL8{bYc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|(a&Agu zi4X%9mxPjP(Y6i&0TTtIQ!G9$Oj~M=xBQRh*U^5;8N1)#eMYs>{mF?BU6f2b9Rirr z_+%C*s;rg!-7}SGO@EElx6I_N^&N&n;kMy-pUFLcQ-0Dd>+9Bs!08~^LF`$ZIPWe2ZR@YUUy}(gX+_$n?jFz zbvJI(=KFKi;0W=A*%Dzb(7e&u#JB zRGG6ZXr3SY$^8DSEOtyzU-Vu#ROoOnezkDYuEKllSDoM2-*sFV{%b|SQS;*uXCIo> zmi=qdN#e8*G-Kb_AI5c*tGx8&)y zRjKADb3a`@eqVmYX3vfXQzIguYRm0sest~nmKEpr6--`~DHkiEG}ApKXJ?C6*zuaW zg-s1F>aTuodVKBV%Af$%KbnEpxen-5HQ95&dS6qwdSbGRO8D81)64jlZ;aJt+I##+ zzYc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7+XFAC(O zLNtOLW?%@?h!6zIzyz;n78Df#B{yakBue7$GwIaEQ_j@y^t``t z+0r9BGY*s$S>2sgoVNJQxql&j`@dW+_n2ygHNNuwC@{^skGWo7<^H|h_lu4x1>d*KYVt`te{bLQL;Gia*Pn2AR$)(V ziAE&rC4ot1OFL>7PgBrYl9p4u;Moht``o-GA}gkH2Il>R7+; zzpzd=hEuuwtVzm!-kAP19vSZO5pxUdovvvLCwFvJNBG)YJaygTg;rIt>#wYZ@DqINA&qdE;pN(Ono(1cd>tep|eLr^S^b{!I$e#O=J?S5jdY5 z^zK0Pqr8=i8QPRS&E0bB#+4tOxx1PK??=CI?O^cbKQ-^8Q^BGibBdm2ubh$Y@BMk= z#ghr&k3U~ul~6qYddH{#vi&|QwFKtweYDE#YRc=pjBD(Dn>X=%7FJg~vPDGk(A1UI zcjF@0)vq$^HuP<70e&5L|b_@VyJCNZ3 diff --git a/public/badges/lobster.avif b/public/badges/lobster.avif index 1be48548e4b3c43cb4998bd42fb6af72cff991f4..39780de739b8c40fddba14205a3e670c74cb1618 100644 GIT binary patch literal 2488 zcmXv|2|N@08{dSGbI38bxv9Btg_IS>RLBt8YT6i+<3*E^+>tw1k~JabidY)2VbHobj4#^JTGxh6 zZQ@X&zK0q+)NfqFhWy(C0CaqflK@rputxLKg9(s=Bg68xw=5<$TzoDp>AEd*YMz3ntyw$3t+M*Z@3owf`J$Vy z?if_peO&d{RRID3bS#(|&=%+n(dL4{2w#w=%7-q1C<|X23na2XBDqgoI?a>+!Ngrj z`Te8=~Bg&zezn|8YC;T@(Pcjp)1Ur%Nn*Oml%5Raov zWKa=Gp2t0Au)F(|VrN%#S_`)rXVOTdj@2_Fu=+YQzju54)9bmd0r1~@;TK9j)`isg zC7u(Zop`iJW0-3ER4|PPeh(yrBsLW~6GX}OLq?mr^5u*yBQDIWS2L`wN!;)5(23|O zEmrpWg-1dzIa@1^XZzuF42PEwKQUV}*CSuv++}OR*gc`m;xab*6(?(+rne@>d(nq> zQWhsqV8x{%Yv#z0wqiqV(<8y<<|@t)pH- z*MZ)P`*Jq6R~TAZG6T)h{Bjv12d4X_SAU5&ir2a+3dA@j>J`0=zyjkaGh29lhd#BB z&xJ$!X(=29%$CI?!g$n+l79>^9k>++9mGnuBQlOWnI6{N$5_jhjMP#nDM#Z{(4CCW24Cb-cUn)Y6p|-DMRr6Io1L zy1$aFfAZ{GS^Z`z)xAU0Br}h9j|Q{f_YQyJzUhJ9zI$M-Axh7wSu}ikvDZ`S_BxlF zKa+5axfvM8k*Z!1iCz>a@(Ug&StYpaE=Ttn*wiaKMhy3UvUF00pL|+cKo`I^at~Lj z@5bNFaOLSJCuRdr81+D~~W|G~1M?^<>ta7Tgo`N0b2 zk^Qmx2CTx51>bF_%+5F%40QCeEGjxTxYn2f>>K|d@P7LSv&_g$d)y$_)L6H#(^5}e zGU_Qh>T<@it%309x1fiy_6-?tl_XMXC8`eKA9&$z)N1#u-&+@H8SO^XO));n>Ib;< z)I^D1lBn(A`(mI^pWk% z%A8q^B?#QxQs4CKkWPW;q)^XTlO1)1@I;fGHbNPa6|wlBn2LJummUIzP?e=i)19(* z64nc)oo>vvCfjB9{S+fAz0wAPm_HZ5Q6j4GaLsYhJ=~NTadJ$!IWb~O$=^_1=kvty zu@kSG&W^BF^>Uuu8*U;Kiv_MWYy0d>(v~JYp3bE}3gdkgV+vg6c!BeE0Zzzn!y{8x zbcMVko{KdMECcGMRt*s{M=lbR6=62{nO;VtlKAC^Lle93icYuM_Ri0cZs!1~toe_w ze@MAwWzHm~vTJ+Nc8q@;!T@2b85!VF^KvD5n>$ayVytLMFSn#s)%>$WOjq~b9(*Lp zo*dL%`!(ro?}Bh#d(S@Ajkzb~1il4(dOQLKFs75$JIkTcEL zR*SU<>#wW|3p;i3eAoC(vH1f{${>kybjmzH6XqN=?PFO-xqq#oM7l6S5j49U)%Q;e|}7ePHC*`x@FL(l9J{SifiVeJD5X)WF%d3+A1~5kCQp(sfsCd9<46Hm5FQ;!p)${kfmvdr5WqH z)~P(}qLn|U8+0N&|0&$A`CHsmOG~%1#y0g_##;;&p)Qt`A8!3n7^v_168wT+MP^dx z0kUzRyo={|{CES)v%ah&+qC})es9p9Iwb{!!N=Hwq%TsEOR48<`iGU>?&5% zyw>iR-#zVlX9L_*rludHvw-+I5KQ%%NeWliL1;MOGN}6_B$L0G0Xg|VJGWky$K7VS zVABash2awZO7%C7IX>EX+H}sDa*(&vv2B#SROm9(FsyG9l54|bm&85uiZqUD!OAtH zd1^C03jpF-Yt91`@)@xl`}1yysuBt jQ>0m!#?X!Hn?0ouP`6{-D6|=P|5bhN-R}Pbad%yL literal 3089 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 literal 1063 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7@#AMJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%sW>+!u|$Z0i%mjF?Q)u^k)RMzc>vRlFt>yi zKK0%=SgL`NoE9KS0R@FjqkSws4NQ!S^tTjT^f=<6e74o1?T4Z8yNwaX%<}(S(*Mc! zys=*&_U*RW4vm*DV?S4C|B7}BP%+SXHAUmjwK%nZ{~oFQ2z@s9K=a?59o_m(yS%3F ze6QsmTF!IbEvj48rcnV_xFBe&%0uF&gu%MNr%fvcdqg+ zZ`n*3P_JGEkM2C%jNAGp(&tDU-sq?{a@~TA~i>2y*{1U7= z&Dr@~?~=W4?7~Z*XaAo3*%E)(K3gqwYQ@D>?c2ZCc09d)bKPf&ZL5~$@KsC^=TR=Gd1_NHxZ$e#6T|L9 zr*_VK7vigbrM^jBAoiAH#%-+^JGlCb7F`i{TReF$@6F(l#+N(xF4|!+`^Q053ERhp zm+G01-cam)cKA?g`_YLE`Mmwdee@@n?YpLub(H<_h9#k1dmgvHXBC;Ibk#n)i_3W} zcX_eF{2BN3)UI!3cIp3?Qohu37VmjO6)zK`g`Fvf1LpJTYc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|mv!Jh0th87Uwq zl?kL6s3x(@z|c8ACm(EOR%Ss_0Z`mKvmiMiNQ-0^7o>s|0+pIWFoQrrW<@4Qgqeeb z14!{CmKi!XGVp+egp>1git>_kDj1l6kgWkIB%WE2n+TEv0-(cK7@3+`fUG0ADTyUQ z3|w3iN@|zWIs^nv6pU6g`?N4IF4A8;x$+W=zuD?r3!l|r+HL!uQFK<@_tl4M*;cl#R@vnKwj&l^`rm?AonpNGeD&1);Cw$R(+(SMxsXQT409FpE0$B(vQ)9kZI~6ns_|JmZ1s&d?yoD3 z&v-j`|9qabe=#r3S5KKL?cdksy5rm5?5F$eKd$^gYoX2|nNuP&m2#U)RxkhCRcInD zad3H__}W)b`67Qmex+c3qdtP~TGs8H&wtml-*Vo}FneQ^mcypkMt9eLidUGic9x%b FH2@U{6CMBn literal 1063 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7@#AMJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%sW>+!u|$Z0i%mjF?Q)u^k)RMzc>vRlFt>yi zKK0%=SgL`NoE9KS0R@FjqkSws4NQ!S^tTjT^f=-W-lV8?B+%B-_={}F4jI|k%#HzD zU;dFZJ(YEu$68lCzQDkG-to-uuR1u0-Bx#)M1O^S3kXTeg;A!+NprduOO0*ZPrF{-;8# ztml#_yYQ?$rcYW=t|~s;)ARA93a_q;^@-Klnx(xGQFg~W-IX_*t;wGkZR8!QJb$xW zzpjWv=Obq6EawyF#P_G>ESncAwVCD9y0_b=O%QI*oZG8psI?}So%Mo3d~PGJ|AJ+o z<~Oc;eM+?;c;m;<%lmSB!#UlIyp;1}q@*85oYJ~;>jm@CyD|HVrF^7#elHPwUA_D9 z^S~o=JEjIcnN*abn4fm+P}pOmyQT-&Ig-Ws?Y}FXJ8&Xh^OH#E7svmfjW*@{yYw!n zB(D8uz@paYc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|mv!Jh0th87Uwq zl?kL6s3x(@z|c8ACm(EOR%Ss_0Z`mKvmiMiNQ-0^7o>s|0+pIWFoQrrW<@4Qgqeeb z14!{CmKi!XGVp+egp>1git>_kDj1l6kgWkIB%WE2n+TEv0-(cK7@3+`fULi{DTyUQ z3|w3iN@|zWIs^nv6pWrQ`?N4IF4A8;x$+W=zuC^U_g9=_&A7k!fzsxHdtb{>-<;Kd z#a{4H@8o~ot#7|vx_hD{C86WO&6`x^*FFB@b2nVJ^ix@5?`+U_-|1(`>f~QL&`5^ zztR=lTGiZ~_I=9qM4{Cpo*TvYaU6STS;sN)p`BLIf?xlS9yV(cXAbXHoiI&j$4eoT z#C3l!-B_?^VQfu?`9o_Ckzd@rCnBvmCOuwevg5Yltk1vvo@VL&_`Tw3!7R(5(+tYH z%gxJn$h7-h_@A-ZS>b7Jnx|Fyp_tpv_s^fY?C|R?=lRm0{=0K0Mjv0(Yr~W@Z`-d^ z>!<8mDez{;p;Ui)iRbtF1k#w)4_m$4Djr|(YJUog#PxH_*tlL6uTGk<;(-FM(e(a; z3#!k5y^@~sr~Q5Etpvp#PiN{p^lS_@Nn_pT_(}REdsdr-&F9@+?$rwx9r8G|s(;t| zD&f8k|zWP&kpKlr4 zGo2b*Dl_XB*VJZCn$A@@F>{fOOOht9T28EZQFV~@NX?tpFHY{S M4VOI>UT(4g0Bofxv;Y7A literal 1128 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7@p8MJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%X-jTOVu=s~7n_8V+T}D+BS9gc@&Kk8VQvX4 zeCoY#uv7yjIW0hv0tyP5M*mrS8kiUt>2E2x=yAj$yh&cv%p|Sf@6fCZOA4Ppmn>n* zC<>O;=4N@|5;*rTW$#tM0w+!-2-Fj;A&#tWfB&^GQGH%HQ^z z<6A`R|5d8z&vx;s{<^$3dhLpe9cwgC;xiNmnmp$y|#b=dzCe2d|T=A;VWGGWFcUQ?@l+*5zY#mpB*eU3O!bvEi)wDt7n z%`@%R-bp<^>6gKb^*MK$=NP;?9aP=g`rc*oR$Jvwn85j2%v)=yn{-Kz_FFx;(L+{tz5N$B!v2NM# zv%2DQHd_Rj&B7R&)@g6lF14jSTx!WIW0iEuko&!Ku)_7FF3mfA%&R87s4#1s*LXbm zWG8Rgeh&|^l=zsG3CHKEUv%V^-xtvTG4It`C7F%Ky5>6QUr7Iac=4j6mJW;Ce}DTX UWYLv7%YD1*_laA@Rm+|N0CxV982|tP diff --git a/public/badges/lutiorange.avif b/public/badges/lutiorange.avif index 1a90fb6a6146ac598f72a82c5045d80032e800c5..ce09a295c3b77b589e3705cd42475e716cd57282 100644 GIT binary patch literal 726 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 diff --git a/public/badges/lutipurple.avif b/public/badges/lutipurple.avif index 29db82b8b60f0d4ecd2c54eadd2bed7c169b0485..62c817cda1e876fb1f2d66ca7d6c6d15f57c465d 100644 GIT binary patch literal 763 zcmZQzU{FXasVqn=%S>Yc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|mv!Jh0th87Uwq zl?kL6s3x(@z|c8ACm(EOR%Ss_0Z`mKvmiMiNQ-0^7o>s|0+pIWFoQrrW<@4Qgqeeb z14!{CmKi!XGVp+egp>1git>_kDj1l6kgWkIB%WE2n+TEv0-(cK7@3+`fUK9fDTyUQ z3|w3iN@|zWIs^nv6pSt~`?N4IF4A8;x$+W=zlzX)<6}lO9iI8xLghc%Z|yAK!xEMy zeV3nQ&Zdeo>vvClGO{O!WZRuO7lEe&B`REyE6TK^yB@MPrSazEAsb? z{isT+|MYRqvs*O&h_IAzyn2AO(g zNCk5H?9vPRTz_*v+lPlgZZdA>s2AjVtKZ37m8i*aZOPQhtlyt|S1>StaGKz2aHRL% z=Oxus!`5FiYV_Rl&t>MtD`{nmPQ3EExS>?U;7G}`|Dmtb`yD4e*?4%Vj)lOti_f&z z*U40y7|WY;mKFvJ%x8PLY|8vMdoCSmkza0q`0s-MGC-r_L&(6!yA*5=Ru*N>m~-BG+|aZvI_Nz?)W5Z)dN literal 1037 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7=S}MJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%DKa-Du|$Z0i%mjF?Q)u^k)RMzc>vRlFt>yi zKK0%=SgL`NoE9KS0R@Fjqa`dp4NQ!S^tTjT^f=<6{M2RTWfK!Q+iTj!^#Q;=oHOs;`Zw*e^Ev7Ng}3y$pDq7+{37dBr`6F{(-lu7eD`o#cWr4+ ze#f&H{&u1<%O32{oqbi7CdzvQV(j;6p( z57&JUuK)XdzWw)8{XZA+UW%Qv{rJ`0k7i%IwnQR<%b4j!74I>%PahIaMbtdFHAOr& zaer7@jKi$DsO+!%*LK-VnAG0hx>!b!=en`h%D5CYPya=4KFl=XuQ{cBR1{{Pu_}ShK}WN!>BRp%((_ile7Zl@{$Bc`@W#R&(tLX} zKD#_+wK6Nex3!}Gu;#Sq=@BQcwMFwq9<}~FZTpj{uU4Mi$tCuK^N-lu+BF`#CvCrK zwBq*%*FPUG{tpyT@7er5t9oIO*P#QVH|1-C4Ia%ukmWpK^|{B^M}I69zJBGq@9`SG f^VJDQmR*;r{FU@%MYc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|mv!Jh0th87Uwq zl?kL6s3x(@z|c8ACm(EOR%Ss_0Z`mKvmiMiNQ-0^7o>s|0+pIWFoQrrW<@4Qgqeeb z14!{CmKi!XGVp+egp>1git>_kDj1l6kgWkIB%WE2n+TEv0-(cK7@3+`fUHxwDTyUQ z3|w3iN@|zWIs^nv6pS`9`?N4IF4A8;x$+W=zlzYlc^mii&)xgLwR6ow_q`94HV54M z%vaFG!gYK31O!kv}vi=^0UiY?jPH^G(@JN_1>wiTtcgZr1xsfWi__Z*QtJU zZw+Hs#jjah2^ZC#D`PE>GcNRabM0G>1)P zT6X5|b$yxR*>fd+GN??u63W-F6DJ=b3v3s-y}YZ;4{o@V)qxv&kTy1THW(3 L?E6Ybm#z)~`WO?B literal 1007 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7<%)MJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%$vQVBu|$Z0i%mjF?Q)u^k)RMzc>vRlFt>yi zKK0%=SgL`NoE9KS0R@Fjqc#?w1}4Tu`dbPvdK__3`c+ovf4_O^uA@qdyY1{cE~~2WihC!nuK3Zz$-`|mS$59SxEGAB4Uwn*mA_-Z;SpfEmg~et?L|ip z-bhSNO*Ij6KKt>tSwUiK(#`pdc@wS(r)tb;XpNBix8vZ8^}jMYJ`1gj7GRkF#_fkv z_17J|PcBV))MkGC>Yk>|lhw1$!;M~kSXL{y&+?_)5nq@2+w4D`{aBM~F!B4!$}Rgo z`n~*pkAK?vEopPbH~2&+hlB|KF1pDnYE>GvqU5#VUM^jRGuPK9t`29P_V&@kzq3Al z+%!u&GQ(KlrKb2wj@*xLgAx{&o|rFK;lF?F-2KLPT_!U4r}oT9TYJbd_NZ@;uv<^$ zQNPW7_oUK)d6@~E+ws0}Z9&)BR{^KyoYMR~Ma^~6Uh%67W~*H{%@hwf%=TmT|KByA z@)?-57))o>I`sV8=#mh%>t;`LeMIy(9urlTEf%uf3oqG61qW`{E4m=wx8kJz!XA$$ zQKErAczRgfp2HZp?j0w;$F@g}!RCJ-`5Cg^G2%VS zo@`@ovp;D4vCTr&N6VBZGJmUJ=vwzAQr99UWeEqz3bhqaGJJYG#TIQBeDrwNq`9v) yl!&QM_|$y-Y4N|L_x?e0uOCfZ5r3}HXYYdBpOiKyu}SRO|Ez<Yc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|uz;=UWq=1}M zCXiyFn#3{#L+AXQe6W>SnFU1!KymNPg5-Q4Es|MWkP1==RB8^v3<3q26`3FrW)2Px zAjOkdX6W3=zylHzPR`FM%1h3vU|<45wg#Y(cxFLvB1jGhfDU6}WNKysvZ``Z5=(>_ zxVR*g)GnuW2nd)c7(Hb2X<=eqq`!J{^YZ;^GC6lYzpvm}bH#jb>>izivCfCg z{6b#4FPvN~e6_@L>g74w&b#t0c1-k*n8TqMq4guNbMJ~GUcbLy@B6;Vq~AJL?EEyK zhQ&UUS0*!I$5v&gneGMiA1yd^|NHTuhbL^eSo|hk<@2*gS48GGAG~?C=1NS)p=;e| z&q;2$|M>f()AwFX+UoT3?X;(gb5G5@yzSCG?#cQ*ET@-k6X5ncut!j8-H&HKV(Y4} zt-Tg3m-qjuvJ8jn%PU*i@@mZM)b!?^;3;-$?|$64UAyL8`|-&E9~ynT|4Fx9P!IP1 zcuQTp`QN=-y@@h4KetY`f45rC_3D9t9J{)+ID7ow%ogO3Da)@8pU1z&??aT?&KCaL z%x=d7*we12vhW<7^FYdJSI6P5rlLURX%@$X7w$SS@xPg?LHpZS{)NZ#1^L#lJhA%n d$FJs`ZzS)T+dT=WKjTo;xhdsJv*?$M2LK^w=x6`{ literal 971 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7hbYz;smp2RXk=SBt@ zAd^8Pv$!A?!~i0VM3=Dig+j4;3VFU#jlXz}QVu=s~7n_8V+T}D+BS9gc@&Kk8VQvX4 zeCoY#uv7yjIW0hv0tyP5Mvs_%8kiUt>2E2x=yAkBDRO4SSJkWK5hZKuWz_zD;!W4k zug;wvBT{PpD!;Y*;o+Mu7U?H*Ck2aVY>ZS0V_;gX+LbS_`9bRNYxjVpm^%?4E7djT z{rFsCbx{1OTCtv^+(mbbqh^vmw&&9A-YmKPYB`@*^}grFH6J%QoSXa2^WrC&?dHeN zx7QrdRbKR7VcH9GKbCUtX*HiMlwI>YQ{P!%|Z&9X_;kExxxL$AL zrf3B&{(QNp6duC1F zg^sj|$|f>Lnp!jrxqUW8t8NksN!@F>Vf)VilP^6#sS?2Tis|>wIotG=SF)xgycgG2 ze94%+b+gfhvWx>0{%%w2|8I6?SJC3Lbr+UImb!*L_F4RGrumWW;XEEmJzw^jy+6A4 z)(`8M=~8xYgEp`jO6bX$|F7TBCH&_5VQ)*0|7J=0{J%~1XwI-!?Y6KlS+F%muYc0uY^>nP!-qnV9D5Xy^nK`jnemk_eIm0*#E6oFWL5fuSHX zxdg@r(K(q(Fk|=%GD~v7a*RMyE;A=T8N_p8U|mv!Jh0th87Uwq zl?kL6s3x(@z|c8ACm(EOR%Ss_0Z`mKvmiMiNQ-0^7o>s|0+pIWFoQrrW<@4Qgqeeb z14!{CmKi!XGVp+egp>1git>_kDj1l6kgWkIB%WE2n+TEv0-(cK7@3+`fUN7eDTyUQ z3|w3iN@|zWIs^nv6pZ#U`?N4IF4A8;x$+W=zs0#bPrD_hTYTR$iq2~LzWQ)a$Mtyj z+J?-QbDD|M4t$x}`hSB~{L+L&I7==Gc|+h?|Lnb^Ny&+@J=k=v5=W%lE} z?NVAbx%219PyZR+B)?ZN$^FPWU5^9H0`K~+`v2ufgU|2Be;yuVG2hvBJ&EPDRo8o! z3$E=p7dz&As=cfgmHz0)Wi;XPgbjN>9&UQe_`dbe_nnW!S1_F0`X!LfT_G;})f|Qo z&I0pfx5^#ezA5~x=G|q_YgeX3tP72j+kV{f*wixp_+Yalmi60Mxg%iPT9DO$?vZjol{>sJNMxI z#=gA~MNhYXW(Y0(cdenRF>9Z0ZY%2-7yqK@uqhc+7-vSUns)84Wy*#6%5QDqk}(dq zSl2`eMLK`I8E!ErBKy^i&sOiBbZ}YreXKp4(V%uqcj}%?i(E;o&GMuod7yM3$= X$@yisE;m&W%s*sanNm3Ifo1~$5p5M_ literal 1079 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 literal 2490 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 URJwM!*Mhmr)^s&ps2QX6KSEy=H~;_u literal 2632 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 diff --git a/public/badges/patreon.avif b/public/badges/patreon.avif index 7430014ff539190c5adac686a8c6e6cd4413e141..569b7202cb17b544bb59877890b06fd93e440c30 100644 GIT binary patch delta 1092 zcmey(b)Un4fq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c24+_vTO%_w4{QfmMheJDWdbP% zs!1#}Fm%q($u9!&voZ^c3V^hCW8 zaB_Z5QC@OR1p^ZhvNZsO#4`(W6G3u70CWipBU3XA&>6nDDTyUQ3|w3iN~%TMIs^nv z6pXg8`Lr-?sWsm6Kl1tCm!-cx2JPzZubgo4`<1sBo9^dKa*mh05O#p$mBR1lbwcyc zu?B2ZexY9PAH}d^(XGJDmvgh02Aq&EcG`b)>7D`u!TCuK)q%~tR4l^OiC+@aw*>xV(ygqii*=b!xM(VUcM94K%4 zPGRXC?+jb9C06R2E?RBB!@sBE`14m^R-P0-Ctv!-R5Il+>wz_GZIi>#@6Do6}9~BGHF3RseqM)~Z*}Knn^(r!@ z&sl#k+1(4xJEFf~|ALnbnkz5;K9J=X;d<`n+b_?zRklg4&o@i)=vidFaDV%0hS{aR zEJ8ZpFwVU5*^*IckK6OFCo83QOv+`Rabx|HCt)>-QI*_kH7E2dUdeJ?sNK3?%ij$< zeVmjh-&9S{RxaH5=I*-N6H5*~d=kX|YuT>&`sAhF8yN zn3lF}>@i+8#aiJ)WOP;ORX^{ThbLt8XXOg*urvRYc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9VxeVKLr>i7+n$idtl5=7F67Rxb+V zq(U@;9A;n$(ufcQ%D@D#XBHF{03|nO79{5bY2oDjoT9wsoC>hbYz;smp2RXk=SBt@ zAd^8Pv$!A?!~i-;2Z9-Zj<3iBi*Nu*i^S3jXArNnD90VM3=Dig+j4;3VFU#j^YPr2#1bI}E;b1z)uL^pMuI{>uT(d)CTXr$JGN%tL9Yq+bxx-5?1n_q0Y!U#%|= zZONBkk&^z!zvT1uU9V+zcB`ajXl!d&EEj%j)xGPYL-oSuBmDOBI}gPi{rK^4_B(F% z<$_K*a?Sg~pM88$Be$}0-+gtL*Xlj>n<~q5mPnkHde~I#qB}Lnta08sv-bf?*(Plq zSNkiYU3Ig!SbGM>d0!IBdHRR>vrSjRx3d{WaZD+tflorS(_bG}x}bBHEjrXC%6-ec z)k`ZD7zrHxUt4Uhx{~u2bIHn>K+ipF* z%Qm~!hPCHJr2R|w8&>;%$Co;~hfQS)zI5Gu@-1d@ME!Eo^6N! z7H2I!{gGwy!lSQxMarZfOQmn@I}>?*=f+;~Ps$I!Zu(_-w9!ss=hCSs&PN0Uyq+|@ zao5ecRj*3q%eyWLE%-clgZ}-?PnRG6{41nCc;4AL*Ls3WR9b!|3o^@8DcL$rRk-x) z=o_JIx5=+(zS$rDmDS%b`i$`vyL#Izybj%BGD1(;yK=3g-kn*_bl~4D_0usMzKgBj zyLh#tdycosK^_5*RTE^wc5=4&2B!xvyp^)QphDJVe|+_~)63d!-umbB$-QMwTZ-V{ zyY>fKzv&zPa#$u^NxRTJm>y8XEcLJ!-2|L70l&-$TwHR(`PSk>E?7q6Z? zvVHf=Q*Lp_2bMEL@O@dNC7SGaJmmJzrL7*u^A=PtOZro4b=}NN{O9e7N4*TJ^L~2m z<$EjNd$eTV|K}b4B96&7%wjqe=Us4$zdf)2=CkJ>!Fz6|_bd>*8ffMk_CGE8_G+Hn zPfyL^nKo^$Xa1@Lx2;<$cWUVe%I#({-H_7o(*E0V?ed1l|I;=a2*s%sAayZQcW*ZU=} zFAJ{xBeX#$TJEW7<^%Vg?7R`OPbR!uyYGVX%dXRTFPa1no(ocDRb3G}(`{d#3h&;% zN~`*AovXa{bIZkC_54EdWoq+Wytsw@J4HVVH%QjJ?7A}TCeK?1mD!IoPe;CN0076y BC$s8 zaB_Z5QC@OR1p^ZhvNZsO#4`(W6G3u70CWipBU3XA&>1edDTyUQ3|w3iN}49qIs^nv z6pU80`Lr-GF4A8;Ip644{q9K@*V(_6bw9RApzzL;TF#GwCzbS1Zx0R5H5PyW`^hu~ zhHSq}68`lpuVbfrZ&~)^t=`0tsSJyHe@-}l!zrbyTdZ~JzARZ4i9F9j_MV=lQWrL= zI&JRydeEtCy07PhpPtXtw$6U|uisi-zT(`ZJ%uyR$L@%IP$GG6%`2Y+iLc*Vi)@~k zzy0`{Q%t6%TPMe!KCHR-g@WlEp(P0$SpV>T_1BW_^?x^cj$ggsq@86Q2kumgJh%C9 ze@1lRSNqjVJ?d;XWiND|_GRl*KBxM>bKSS-)NONpX8wfh=IcMb*6-uk{+(QU=fmE+ zi~T-|W?Pq^wAwFsY6VZBETf45qvjt*k!5QxHMntw2!{l?1Rl|roEc(w;7iF}owd@U zKJkp|Y`qKof7Jg-{aUriuYS|viSuMk*3JI$cZp5(mJOAgLe~|V*Sxmy&S|+9<#P3e zNaVMKKAwkBj1$?*&P&hVTa@t5BTnH*QJXu@a+BE%pY```jQy(CBHxi8_uT| zUlC&aSS0bkswy^oJC~x}$<|l7$!6~xADh~5x>E6V`OYJ0lB^4UIcc7I_d@n)r`P`X z0$JXEUsmmyaBAPqNzII$R0X; zIyhgAZhp5sd4bv69}X9``>*kCaZ8_BlKi6k;XU!2S9UzvzW?^ujTw*cZ~kH%@qOZQ z4JC(m$py6^zC^9uHt9s6+m2nQVkfiiT)k0S?AM3sx9%of-}m5Y*wN1i?e}io!LjG_ z-pKm2BW)@tqbs(ou86QaS9@{)vyfQT_?uhiZhHH7-u(9^VIp^RKGz%6|9ZXig4Dw% p#{>O$*RGj+P0hKgT+t!-QTZC%u&XB|IPQf^5r{E5zs7cB0{}<~)s_GN literal 1518 zcmZQzV30{GsVqn=%S>Yc0uY^>nP!-qnF!=F&d5zINd$=lfnr8VP7#F3z)+BxTmoam zXug8Xl3Xx{5lEV3=Hw@XcrFeMOh5<(jC&YBG9aJ?VKLr=iLeL&MJ+Nj^T5sks}}`w zQXv{a4l^(WX+#JDWnhBWGYg6efRYFlMAehD~n4~ zbBnEjYBF;&6N@UX5_1YNz`+EuMFFG}t1SXBTbMaGK=#OG7UaUhmx+OqrLm2@gMo>q ziMgc}C@Ym&lnMzB1_nN$Z8<>iFoFV%#VR)?u|$Z0i%mjF(`1^ck(dxrc>vRlFt>yi zK0--?!g+-?m(6`U3z6#@zhnMMs9J`GHai}be?Oy{U6Pn=w9W0$n}l%Myyq};=% z_h%}cm-sW+k-?BjboHSvLDP!8ciApdY}jpb^qk$AqP~3!!5o^m*S!CVzbLh`po{cuA7Wd3bnwom=U~=QB0=3CaOV9my{ycsOpU7sv)WbEW zL-XCgCWZ5}h0R&JgWX+Qd1ji+g~O47`y{_w&Zt?ptVYOn?%#zqi*39Ao?NUeY8bKP z_(tbLGd>GM?q0axjpOLe)DKl{BIns4IS^{0IZ zJJ#LP;Bsfdq|XOqt@%2qXL9+vnz=-uWNFsmRpVaga$IhEZzIR2Z&oc&*Y+=rx986j z-feN@?Oc8j?vAXbZ5+k9YIaN?D)r|ICdKbPzc_E9+Npdy2e;A)8~Ht53*u*T2&Fu8 zv9az+5#7eXw=tCE-W^5H#))59X7v_K^?fUCs~{aE`s&!X>Ay8~zjj8hc`>g^S&exy zzui>d6&sR19m=+k(w^}1z<*|un^BS-a<9A}ox85qU3>Cw^t}bOzjdcPFIB&4{k_%8 zScTX0f^yL6*_YeP)?D`yUnRfe&y#nKJCi3DP3aMQ5Fi>N&7I@HxnSd!D4wt~vqu58 zvu|GiYgom&qWxim*xcx?_x>6D41fCUackgSUC-c|Mki+&4nj)~&u49LzfDz}lsquY|7sJ)-MybH$@w zZ-u`K-(vdtIN6;`=DBCF0`G^@JHlLI%Uv|%NY%fm)nGXuMt^b zTNV55^~IYH`usT;uKSaIUB9>3a7(EP+uoSR!B^&U?rm|;*}VI~fn{HPde*&ME@N2P zb}zA22I=b`BB4$MhW zC7IjBt}NqUc)0lC=fjr|^NT!Q|9lzi;+)3f+lmjO+O48L@H_}$zBl>Q$!@oI%`R>) RWpYp2*RNGrta5R70|4n~Reb;e diff --git a/public/badges/pool1.avif b/public/badges/pool1.avif index 79cc489fa991c1bf2d5d03b66f58d246b1471d49..40a1baa92bdf3ca8e6c357fe91d93b2af5ac30f4 100644 GIT binary patch literal 3765 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 literal 4077 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 diff --git a/public/badges/pool2.avif b/public/badges/pool2.avif index b36a2c1de4062357bdf487de08dd98804e15b066..75ca237a42b9db145e8dd5fb9acc1b20e19f377c 100644 GIT binary patch literal 2981 zcmXv|1y~bo7abt!NI^m*Bt+>(9N`!>P|ASOjKL-YCNWaFC8fJ0Bm@Kn=?*DrMClF* zX-53R@A>b2-h1vn=REJd004l)%E=95jzw7k@Ntc{C@WE0l)2T@C!%0H_16~RWPYvT zgAZwmcKELa05B-H)BpQxM58SJ{|yxe|5m<6VH_}cUIT@J+vAZQ<%mIC8}U|?{~mw_ zgK|Y(Gel%$WOx9YV?~vG0l;hO7Tg}~UDp0?nDQmpkTVk|7ARchDL%z?2KMBfRG?ZxH#5rnBC0n97+^72~R4M)Mz~BWegG% zWC~)^fJ6>Hp+e6-=v}P~rtxeZmXDl*kj>HXur!_bA-A>QCT?bb%GhKAV9II=!Nwz_ zA8LUtr)tHe#^0Y~(=`&d=0p}117whnHz_kJX0g;?juSsR9&Saz}@kn`S98GaGRVreazTOpyjL%L&1gb*B zS73!%6P$7c@Wx;H9{w$d9~cv7Hx!nnO=^SnHY%JqmJ#ej9oo98^<BYLbh$slWzOjFPr1yrd%NV0T_M zrJ=!c=H=ccBn4Rz=^qW-KU-vpEz?r{^0;hKWtMVepbn(9g{A?uMe$f@6p8!%zBB0=Sy;3RQ$A{j z51iI>&jw{ITT|F?fKC?TeTIkHK5o4zepfUJ`9rHr(Yc$XpykE5CY4^oM8(Lb|D5Hi zMkVV=+!pJ{Mdna)neK{k_3r}rlz2;lHOQP(X5{3Ya75K%A(RJ4ExESCfAOxb zxJYN)@7b{#2Vt0D&tnBCO1@WSZ+zRDbR};S#OY;lr=CT0AL=+wTC_gGOsA>Wq@B6c zATHj{tyb^6ya?1Cq#JRF&87aK=v2(yNYc%p_?ZS^NTywg8#p&*`@tj;ZA5yHGUeG8 z#6giF)QHYymbtY&9$FISG7rauxp4^i%?vmSk3D#y708t5FwO}bykp3r%NQ%O6r1W#$4*%9~vZ#PXJFGaea8 zbZ~!83WsU}H`%00We#CcVuPG)>$pIr&Hh0vnI!NPJ@33=x#7X9*|iM4JSC`G9#(VA#!Q9W@xamH6Y62o7s4kG~8>Ar-|BXx~`P)JC7poVy0q z@X3-(t*B9Vt+px`9C=85ObT{LT5`S(ue*2P9Swur`P1od!;L{}v00C$D%!D&-?w*b zB(7rQInQYyDxLf5Bi}@EN3RrQ%CTO|W>nQKXX0YU znCR%emFOMej4B#jDvkDGM^UW+fOCUddSClm@TC-wjOApBVAjHcnrdjcwBiS%MDXEF z;`_0NGRAq0!gle6K(sd-hf=a;(u~sqGUz=iZ}0f4K!lL35_=wlh3%>S8zRT55O=L! z*d%ABcuV@Nq|8pl$xe9hhuabk(~3^eE|a&fMOj;fFD4P&rSAPfc|*)Rd3A1?0NQ6! z{V@;BLTV$?oa_!&EifQYcqgKP;0G0tqL z9lm_8)ndNByTz{o2wm!&wl)6jG`7%y!1TAt=9`pz`wcBdn~*+^0P?8CI};wUJu2Tl zTn`>TilB=Qi6hePy!WdkE3c=JO6rrYxBe2S0un?z89UkK!p~xhOrhp8 zX;+WQ$Z{kPmf^GCkuq~yts ziDMzho|u-eW*?6_oR#s4l%9e)#Tpz-K;v^llaaeM5-na&4`il3W1V#)@-}5kSwddz zRp<97za$zZW9DZb74d>eCdBk9yJ)4@K4*>*5(p~z`eD}vz?8E#RH$hm^e6nx#dl69 zDQcRV-3|mMcJ~Vl9bbT4+HNeuaMH2|&q{{*mB2l5K$F)3(q2hKj9u@6&3+3q58p1- zLZ_h$vYTMmaiDh9lb0`Xx%!9&h3XY?)6(=z2}tXD#8xfDYP>_kIU_3YHZgzZc-_ev zH5WUB7*xmM&LOfFRf$?>5A01Zb+7wJiGKi3UZ+-T!0G4msIVZKGcHybR_LzWV znWT}Yw*kb{tek~*PlN}Ub-efH%fgh=pqjEN;03hVZFRHl#45)_Xn0PCQ#5(vIB(_H zwO-Koo2fn*^Y7mvo4fStEg?R-xJ-zg68I;3CXJlv6>HaGi&Yo6ZUgo z;y1|cCSmgv=K~(xXvtF>~+ za!Ha2JB7+2McnK|-!7_AGf{dZx$G=!1ApH$6lE{7+DkGzB~EJP4RUx9XZ1{ z3c0TBbl;lE285{7F_U@zQ3{_MK$d@fuh`N_8eaXWO_^`^qQ14gYgIW9TrM7KZtAD? z$Wz%e%n1A*tUh5}#HEV7|0C4>s}Dr)6(Rq*t%rLTa114Kqkes~Iw`?NJuxcExQ0Do z`B36Z9KA$*+LGYLVg^&Hw{KS~b2-$1H=iO!s`#Z9NqIX?Z)n9boS|7c-DnW*rp+lx zo;p%61pZ}$Xkr9i^;px<9@J5Z$GimzQLVs ztMZv6pjbym=SJe7Ix?7h7yQ1q^{G=C?a$OIbM}@(X3=9&6>h7T7{LqUGs@S~`M^+A>@3BaLA6x31?YHLi;L<4 Gp7lRpSaBZ! literal 3529 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 KPuA$IEB^<&20?fL diff --git a/public/badges/quad.avif b/public/badges/quad.avif index 1eefef6efe6624cef0fe9294b1a4297b949e6665..ffecd84fe7c6738a72c0c0b84b26fbbed32ea2d1 100644 GIT binary patch literal 2656 zcmXv|2|N>g7@qrVj$9@2IVxw&Mng251fcK=b%(g$zG6EocdMJcNo2El{=tn`N=Ly&ad0*3SqqN4!p4$}L? zNVhuu_W-;|SUBv2VPa=zrvo<>rDFIHzr--DyT5cjQ@81%jMt;jUMh4vF=iQaL#wAZX7sGU8MGALr z#v9ZJA|zkWA6h$jzZ2aoq$V|Z`{2NPg3Gt;XB=^hg`yhDA=IJLCC9N1_sTKI)ZJQ< z$iG6ZNIOpTAl-QRJhXXcaOTaMa%GQA;?s?z9x}hJUdB7|-`Oi7WPzY&;`hoHe>7x^ zVQs^{zph>5Dzn8oUSyy!y=!E)Rs^L)((0OiuNb2J40&{+g^lS`j{`2T==WwzhGnjl zTg9yWZkvJR3}JU42F4S0XjK?jyK%gMe~%>Q2qMisLP@#SNjNq=_aZIhNF#bq^v&(| zplP!ubV0haV%c#;oDPTegTD2^olfzL(%`DlCc-H9I_mL?G4HT$Eubqy>^D&DZ9cZY zM0rP$1NnCl*3FZaZjC5Du$GxEh7nmVFCYe_sLzvxKPO_~H<$`|*7TndOvG}?I%%~B za+y9YLVJ)>-yg;_ne{`0_xI7BOxI9L@&3vwN9IgVHfl!IC6?u@OqGW1 z$0R@Wx6LW>d_qEi(^}DKTM@5itc*moq&jAyGaBJtB^#CRuIcJjTt@tv!qPhwHJa~t zTK1E#vx^r{F*AFLP>wg+*%31bHqhQLC*7ML$F+N)UsW!RJ(5-X<`4kPWUM!N2w3M* zr!HL5lS#ee<7WZhJ|v~wZGMnZd0kmm`c~;EOU%^^AM>6;~3zN`tF=+p%eJs}il4$$QV&smGmaVmUI%x+ycBk}JZnt#1S33+Z~G z@4C#k1n-vS$2)7xcx-9vg0(Ol7LK+H_r-(}AHXu=F1XlV{6S$;S2jNzMLB4XGMOxL zz1tw|>OD|-5)-rALersKO7gS%Fy=0)ZJq48E+`;$$G*YN?o2XGNmFBkTlxrB?p7Yk z8OeI(hl7k-rtO&wY=mB4L}Xsm8NK%j3yf(McK9y>mvMRnu?5i!dvS}RB$05aCt^Ws z??(AAui?4<%_VSiybN`6IA=?Z3eN8Bw@y11Y-tcEpVCy(n|7bQF2NW(Sof{xkY8Lw z9b1cuFB&Ao*tF*WZ^+N4S`>SUOF5;b4>ak{g<_osZg>C4_-g>9knk1UBlXRQYQ|R@UgNekYSylH(N?|f7ze!ZE{XPPIbSCChEHOWSZ%pYnIq(ZM=R9#(z(a#>4h!p}_l zOrhsZ#Vk-mXct?7E4(t?#_NrXB{}=`^oBvStYtac2yi(P>G72h_*tG!AYe1vjP;Eb zm_rEiR+++$=<{@Xb+1NjgxQRbP?qHwjw?6&G)bbU^-*{PiQ2zPq+6-=6CKRZ+WN{! z^%^&|hx*EKQIH`xEI5FCKRn>FHl|ED%E%Al)TF32f{c}OT!CC`q`D2UryF~N)PKh=F@XVt;>o&X#hoR#R{1WN@_Fdp86 z7^-uhsWjFtAhu@m)^(+yA^ZAkM#^EL6@5Y;)#@JaLdGQ$I21oIO{f;zU%J-OrhJh6 zv#{n1A0;)6=I*EaXvV>EOX_q?=o=-wZ>F`}{5$e`ws>#7`3f-Yt9!{KiQWM|ce9D2 z_aIamtK8cH%{7CcOd`V9bGi$ruD_U^W;&UDUkVVACaGYuHin0LZt{R;c&u zT-O1N%5mEPS$(US!0d$K#dG!ftM+=l?DE(My_m|4%QpWKxjaMkZFf6% z$-bac=wUduQg!2CYc06Zf~QuZdUa3w?t3BE8PwsMOxH%@yy14D=D_C?yzR?Rr#>pF zf3)w2)wRY=rnHp}W4jK6-KuDddj;vT-)L4&L>c-go zQ_=+q8DcdeDqh&m8Lom#UGH9EPTkjOA{FjuJ;SX11Cqc?=9A+P4(aG%RoUB+(H0>3 z2TC#k^yqB&Zht+OrkSO}G2@aiYLuJOw=tu}Od|;j8-UriyB8dD8`?^O8=Qp1H zJV#}~QD@ZQhACa<#plv%n0<=cN7)s&-7uUR1YTIBz^?13_8$>}BAkrLs~0IwlBZmJ zW`d5%D1)TRx?E||_}F}~c!EkKMMf!5IPZvS%qYnSO@ym3R#YJF?Yx$KljIdg zIO{*+@@ZMytn#~QXPj$k%0CH7Ee84H;VAO{skuQOoXLl`!D5cryjQ9nD)3KbA5Xh8 z%-|zq3tf~{R{DLal%&dSmfHM)t{1i9G^)CD+pe%;$N_>uA^29&`H`mP5`Y#Y-*X{8 z1VI*W`$0tZfK|yoyS+6Vcgq%S`XJiC0c)ajkOULCNMcJc7kWPAd+eMN%nTm#I#>2*?I1Kq7N)O{bRRK zNgly*ZK-n-w9-#F(LtLeNv9Tqyz&!S&?c(9;duo8E6O5$I`8QvfO literal 3302 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 Jy?J$M{{eF_utWd= literal 1995 zcmZutc{tSl7XJ+zyJX*9h6bf;8_Ud{bZv!t6)7X+$(S+xG-C#1Y%yevvLvKzAxg|G zuaUJu%JO(^p;Y#~-6EN|Waw7h-|%?uKlgl}-#MT2Ip;i|^E&_lXp!hKG&}<&0gwqJ z1tghMKs=Pg@+pCIypV@XH<(Bc--Q4`0}1p!ycgwYAf2+4z#wl4lBon?cH9mSfgWVA zRzO%0n%*vg&FnGz_z;T$!O)#GcKVf}Bye|7xR{x_aPWU5RM{ing0yfNROEs*0u_pi z1S&Z^lt7N&QHCc%lnkC>?wAB67hm5>nXXoED$ z-hD*?m{<~9{2Cx4c2$&>0#!A@@W9=30Dv5%MuvU|COjBil|sbR6#yx?nx0VuP8p@5 z0JXb|dlE&8<&mysA~2=rPSz(&4r3$wAeH4 zl9fAy7d`#1ODzB79{KU=rrHUQ^8tk){;ay5*(lFl4j_`P&B*RVN6WCI$_h6Um_{F4 z5)?uLRg;`ML$6lgCmgr$E%N$HRi0scp7&+y21x0c8u(RWb^RUOnCGl-h_C1V+1WLb zksP)-VOm;~I~J4f=)O7dVj>{*P-NHCMu)x0+oiGPqu< z$K)bi=F$b{&)qhI`xsNtQgVXTm*?hOCz&^lTDora|MT=fPkol=W|~ouh|UiJezrnYG4qO7+>Hakz+9 z*Ld1(18v`Zn0dJZ)Jj|mD%HR(Z1a^3vSnodIFNSxR<2~u{RZ`y^8$X=3#oss$6d(? zsd#k;Q)NuD=`BsT4_seBu2821Vq@23k&k4y*1|9@;?1H(_YlFyt=FRpR2M7ptMmC9 zMM#+0BlT@l>PC0Zli!GuplPHfRfA}1$=^EKev1_vaq^otT zB!qR=gi(PbinrcM{(|#wBpm6L)!ZH%38^&MM0=V#C!GPX1qFxTjVpLQyS1SV>0Vy# z`E*iHf%1L-4#<$1y&`G++G0bSu#3Uv}0nM9Xetd!C47%>c&LExiPQ58b4lsic2NsS+i5@hS|}%iu{LP72@h# z{mo%v=gzsO^VD8i4dgsbyh?a{JaI7kp>vM!Xvw2ve2!)x@*6kwtD^&P(o{&aVGktLc06T8=uWiId1wY}O~I@ZWGv zWGrisX&?yYkrka2vJWcQnmuK`??N;>I>+mr1E{*Kv^MzA@`UoMDXll^&$ho0mWcDE zf@(?9jej`ewTmjZME7SBg7kd*5RVlvF;;qrisS~k&OWB)ol^TZg6tRr4;v#HWUCao z2Kyzz9SA(tB8Fix>#vTTvR%8-MJ%$@M$20F7I9$h-3Q%9wonM4kyQOG_;k%tQjjdl zi=Z?ZXHOxQm#-FA=sA6kE)aXCA#I?gbFUc}YGe`Zkirz?Wq7fl{0o)!U|1$k+!pc1 zv*fmagH_p!6%1RQdJ9P`?@me&B5j(FrF;E#<+s77FLWOcO&^C>o2ccbIR^3aR#z#Go?+!k3@_PHAdNFDIVhy+LaZsdx z+nBsP!^v9>?fIjjup%y35bAP5#PC5Vtkgf%^=`Z8s8ZOSdiJ-pDalcn8N5iK_0ZeF z75u3lD>&av$uGcHdekk*YhE+!pntvrdJPZxWc+ zbcVRf=_?&vETLM8qLjt5@VUUAd1_xrZ_FsE%lstC|F@ypa*xF-QBY1o>$0lj=T6}B zqx#TYO)Q;7pxrVv;_%|#t(e&N)EK>~;t{fg)-u9;DTry}=Q%&^$x<428;&3L2>w=Gjb7>TImc5*A14RaZ00l9sLT<&O6iK>J zsiV`#B`p>frd&=qr(EXHod0^B^S;mb{@&l^dA|3yTo&8}0)c3S(34^U6DT3z4iRG% zCB!s}5*XrYYib8dU!%zMK(PlFx)7rVL{ftOk0W9z^r#<>1UNM)kvI!;3bk0P^Kh!#@8rP zAYC3JE31ssUs=mRA`fU`c{^RQplxZmwr%e@hApXnUCkB6x6!ga7p~pmE`xqs^^!i=P@Ig;OW_29Ylr`sx~+cXEK#GQW!)*V=&g;6lT1{&w8> z3uE6bg?W9q;_%L%!@J9n^671M7{QluK1#0Y)d7xb)q#w+*hu`&D!0cFRY`4`SQo7q z-ov_yV;B#ni$LY7f`cdzo#GM%lj$8&v3 z?gLuIE<|A9Cnbd`XF^uRJ&A|urL7ky*u5e%*&8kFl5>;teOw*lGg7!!!N%M0XS20QXX;#U9T=X0iF9m8#C|2wv`!m-tRdS@kb-HXAJ542(!1R0i!n)Y_4SYo zbtpEwTRPaK{y|x{HF?KY>6wTDEXTk>L-b7kQ4)}h+#@yU+5UGya);{qBP9I0@S(H6 zcHtq!ONjY5Q@9INz_MR_AqAP`M z@8xHj*k+G}>S0pV1b(ky@6Nrk7OZ8T`_LK&6h60LzxzIN0&mpoi>Mj|Hd%8QtE-85 zen9)i1I1f1X+1ZrEsR%Ar_V~MHI_H;`l$K55zhPu?@I|~Om_>8F)T*R8|MoTrU&rS zyQD*g!yWVUiHO6?y6q9EWOF4e6BR$Si~dyCcz#eridFTW=%#`x+(=?a-3tN*HNI`t zJZ+>f%|!GXpUU3ygjSy84vw?3MmMHmrn4}NjDcz2Lu|HbC%~*nNlj|5|7!ZQHg#s_7Z4a_GcU3^d3jK$(-`TofBecGH(bL0yA5F0tvE9$#wwYR& z)l7$VY~}fdmE!hghrF*erd2oujd6JvE6&@;w2_Lqm3N&HNfGR+5q0{ZrU~J75ac+xmElts1co4w24P+d3%UItczx5K7ELFy{Pf%0F*e7y} Q7aHm}z8_nk^S|ozAH}7j{{R30 literal 1965 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 m5-?*?q&1b^i$tK`#|N zh=Fn#1&<|R*gRx1KAt$@0R#X7=s`Nfhf#n4lJNTp4D#wA&fkNb8R-FV=s^Z+0N53_ z$sQos=plp1fmjU?^xI!!zh4AOum^+e#m=j+2men(l|yn6BoGNukp>bx{GoW%!yiZV z^T3h!m5~t;#fJ$}F^mKxAP5`-0|;0)fL3xi_yA~mGPuuhL0$tBNH%0=fkZzvo`Ch< zcLrz=(1U;u2nirz@d0S42gHFGVh9?8Blzr}=|DxAJ^7z1LWe3GTwH7&DUg6aye}Mp zaYn}c5C_0H?{fSe4OPWJBKF`M03ZOV;h^7vu@8o5$9rN(!T=8vC9Aj=B%&%R47FRr zDRw3|ODu%lj~w;;O`q3{1$A(1usejLr9ssMUW*8LO}JWZQPcR)q*=Vn$|Jv~rpzO^ zo&7h2vV-Pd-_+?RbIZw#bWLz|$M8SwuTWdoc*>jJzq!{^glap^sd?(r#Ndc_{0F_} z+$%a|GUsyV>lW8{hj*0fw~uDExkr#pck0AhqESJUn{ zfjghA7OcEOwck1WrLa(m0CmFtEcx>IF z*++rwklGd6+NKShO)}ICESeg;`9=ML{*#R9sKm8mCBX@&|LwW%hkH9|P?x426JKt`GcdCAnj8ZC%!6n?+31R9> zE)U@^4*TA^yXZe#CeB&$_eoyCv0E(Gs+Hv@81XU(iV|Gzt+Z|Z6Hf_teHV#VS2p9R zedb*BZgk%NL#p*neHk%b?Z?Xx&ObSxWJq>dV98TAF}u32C2@A=^U~2I>okGu!`_S< z-+O(o!Nw|%T}9M8Bn8hGotgbQpdE50=4_R;P?gr&6lN=Bsz}~CY^s$LNc|+Wa^3w` zdYS?6SfOnk^2T(mG%c^%A-Y-hXc-ZuHS^D1bFO#&?RG~Qf%Spb4%m0=s zOS+VH_^?D5Mmm-gCR1Le{`rwv+bLT1X_50!nx&{ z8cFVUyrNSy(OeY{KL3oSw_Qo$N*$dZ=FJ?iQiX znimI4EaCF^H$~L1o6vumxN`~iNA^xs70i@d(NeB1JGn7QOi?b=-k~^_m@)db@=dK^ z*dxkAJWY|-m=QZ6i7;5W=e7i_sO2Z8dycpoom4KE%dhlmP{0X{6l{NA>pPt+@v>C% zs8P3e|+-;&|e;u$O0E%@9Fy3l~H_Z3jh+~wETHjP=Tx`6ALXURtPHrq>U@d}EFH6o%j?1X39 zw4{~a7%IU`5Qr}oJ8|4I)iMb;81dgw1Fg8fT4t+N$H%WA1Omj2h`Lfk=4yHKpDRuZ zftS=$cgu@Bx@LHB_@4_CRer!O&Yo)(`%6B%B^_L5lzv^0Gq^&w^gAWnYAW$cN#@p> z)7Rvva*^D~J;p{))^k_-xs>Uejly5YRiuoK^0(6Yt0_PC+{@9ssNK8r{nQ-+bE`AB zL^l9$dG0$B%akeT%rl{VOz5j!-kdzWXA>G?o32WK`<{{$-P*naM+s1Zxw}tfx#Y3@ z=9sm>&~XvlwRrm2hkqQ!<7(oHr?idjWt{EK#wV^xcN&K~hD23p>a93^?dJ(p$iFJ0 z@Z$Dzb=%a(r#1D-vxycJBwxLFv|B{Sij>2(L4*nl-u;u%N$-Rk8E-|>gLOBuL1fkH zMw*eADwZ25taQd6b#Gu!w4&benr)I~+>VEmTR8d|gB54Z0><2iWPFe&lzK%~lLyx2 zyph4%DK&jdjQl2ZS6K>jruXY*W&D87md!xSiY%1 zZ!RL<|CpmM*Om2w#~sefb?vRkj}L3}FFO;SSK7~+MD@EE5QLxm%~5^mD_hsx^8N>W C%PfNc diff --git a/public/badges/squid_junction.avif b/public/badges/squid_junction.avif index ecf76e887ad99fcbd565feee39efa6717e31c064..e0b55a8e8313d9d987b9d4bc511ad04fa4553bd5 100644 GIT binary patch delta 1838 zcmXv|2{_Yz93Mlj*Bx5YcBv z={($=E3IJz38({)TN+tf3KR_B|9@Nz4-l}w9Uksf1TeUO19lMv;^Fqe1o1#XAc0fd zT>}8Ze*f{?fpAG6??ITGK}Esf7jPI{!~qWh@DX?}+5z|g92aGPNPOUd!HxQJU)F>S zMHCeUzYq@+JrJb>aF~d&08BK9m)inyTuBbVV^Ielx44J!@$e?_aj($BUPBS2K*GZE zC$!GUrbtNWLv`~-?Gt%x|JJMB_qO976=z)`&SFpnMzgc=`iZ?q5~=bZrrr=$Y#);H z8IgrQJfiCOWH~dG+o~uRut<48_;^C(W^jUMMvZ!sXe=^~YM|`fV>ah>!yh<|al6y% zGB)?NI`e!6Ez61s+3d3$n(}Ia0=5ROZu6sUXM0q&96t)@ob241NFUtA$o}g{Ne8AB zQx_8bDmcUA!VJsHcb~eNkvb{t))s*2 z`abu;?j-|PRJ&KO44TG+vAl>`c|F$n&Wig*!79vz0d!Y=z%OY|79SvWcPmgNV$hogS_DFaz7# zuR-4jfh_HlY1=eL!>#Ri*znZuC0G`WA@)8#&0I-{c~)v}TqjEH876&-Smf<+hNNq? z{+XO8bhRk*;j@wx&hiBEqsj)W8D4%dQ!O>*-K zys?!%cXyLm;W5{5+@LA0&Zi@!4HSW6{z#_tqGgyM?D>mI#!J4}+mpen#iH-v{$^)n z68nA?HqY{wKxmH{Q8d;i3S_j@^Qar_c=DPrHN!J5cMG1OXgOzUua-CH)SG+M%?qBr zU+v>aBKRWO1RoYQ=AV3$KSkx2aa2z_WZn1;4Dq0Q%gkn$F}#eOlpkF3U(|uM7Y+9_ z7CKIw@BZ^PY`uc`%rI-%RoN(EKksk00lrE6zF!uIu+_TdkG8)@IY%>GXa?J48=M~P z2v#?DZ7Ia&dG#f@nn%Lc#M}AJq4gsq!>`h7MFZ74KfWQQB=yQVdw~4jQ!m1*eR!6W z`hnDc8meO{s_7fuKDu&|CYWWk`sL77S01+VSb3GU$VSQ6_T4@Xk=lavd85;s!e`A4 z10NF%wQ1dfIG>@c-0dCNj#kYj^WOC0tFU%}FT04#&!4}XTF~boP-(PE{-8BjzAIM2 z?6R%82TT~T$<~3*hQ@v|SR2=HBTAWFaCG_8`s-@*agsVpISB*T$nc*~y*4bry5na$K>75}Vg znW%iyuQ_Dh5F3d0#26;dqy$d}{duxH0QpA)+1#?ZjgakSsZnoB4@x2nnw;~?+ot7Z zzB9Ekb2)m$^h;=XM##^agtty&#WhpRA($sy2aH9&9Q$bfAhqn#8mq)Jxs;>#IMaF6 z)M@DTDx@kRNG1EF%>eAHI#sTFQ5!52v6894Hck@Uu^j$VP>X?16wz!Ny+I~E`Qopp}j+wYxll? WV6_RK8%|!SxILGN0JIUMy8i()IX*rB literal 2425 zcmdr{g;x{$7au)xpblgp3RwxDx%Y>avsJS1J5a4{O!hR$v?Z9U^F*%1&3h5jJa zG@Gis!IP?^Ov1)|CB!$O__$#89yO^PMcXGmW;rwdR}&`qzzeW}8HII3hO^x*q{Mb7 zUm~Ab?FZX7ugo)l;XGYd<7rbJf`d2p9S@kMer#^d9l~-Bz?|Zj9KS*M106G5${%rC zN5@4&S?;Mb2UETtG7yOtP`37ohCcTXJbqO=3L`-?M2Akk$L9%UpWNNy2SMiDZ7Wst zrLNR|bG4ua>(5e#!$;$GEGwqwM%5m;C`|7f&`&9#s_ z%p-H7mTaYQ5}>AfX)d+bu9|Ctu^|JiScp;G?dyGo*czXfElY-5mG(H>ikA%|yh(iT zKCfj(B*;`-D{6|5X=bXAJ(J&$6jHV4f7$dnHrw^(+{J9&N@YqqrGYh0_8?9uv9dhF z)xzpY)!U~dQgtyc^FA!nk5g06RnT&~Cs)#=UijW#Dd3PbGBY$Es{9zY;Y|`WDn!w& zboH6F4{Iezs%sRH+~a*lZC>=(E!vwjJ^@81*HkRg!qA+}66W;SLy|c=1vXH3WAzM% zRrox9^hU>)%?K>f@R`MzkKlYGGtChA~qF%TWP-4_s!$!mKjKeVTWk9hw8@8MK0r!mCYslZ{EKv-~uV zkSLlIUOGDNmEH5$P^^LqEU5j&ZyOUMeNiubO5>=CPt0iZV~(?!N~5YOWW&s?AB+A; z%gbvFEKdL>A*iCxU%fprz+_i}FVL94B{iP8kJRi3*-lzTAH1%?`(`g~iKN|Cs*$^= zC`#4MAqD#;{0lY)Bjd{o~80T)*>UI_YCF=`jd9}{%#=kT$ocI zxoeteVPnxaAKa_S;f=BMR}JHJe;h%kAw?DV}96lMR$ zO7&-HotN~r1vwQmP)3V=`m5{v8$N{C4biZw>UA4`0-!TuSX+w?LSUnibqrz*I%$sY zh6XY&rav@{RM3jAOfc0fwZ0O2DPn)Z%RunjgbBrDMt3CL^x%Zd|5$SQGQ0}zGc1!C zRA0bK8EVB2+LlBHO*wv77{hUi-K(aNO>hJ-Pqs$g_Vg-|D%8_^!rdZYRiTshOAol} zl@A^KQJCxfsXV%?3y!wOgW{$shy8VDo548P&D@h;pjW-EuTtzY?w&!wwAY8;GYC0w zMij?OJrxi%h}Ig=xjMcXD8DqG)8CM>H_X=yEh#>9H&Gwbjo5jMKPX{w_got7(1!E? zXXk~A&=%G54G$4u)13FukulJtr8bUI)N~AsN&Qw0M4bd~%`{IRLpvq2-u|0Coy)R}@DZ2yrIeim3$1WY;3;Xd>if@OADMLBJsq-w(Pk;#AF3 zG*4uHP#j{);(4Ohdx5ocQK*@e$_qB@YPhdCFNU?S5ozhUEKvXEvc5f=9P^VtH+;G& z0oRf9f-Ge4cS1Y{jw#&at$dV`-?5p;xq|MA6_r;wU!6Az^Lw0wm3C)!MY789*rB_2{?H;(tIr^~zDNY4?fwV0U1j2zT-(Dt77|mR@oV^B zK6jy(O_frIQImaI;`qHceoYoO60_qO>`TV}zM;ztzM_$fM$OQoF(Jx8Uq$}-_8}Y4 z!7mRBETPcOR+x_Y3CQeaawf2_W?(8{WIuXqCy2ia zs+nmRoYHMS8pPf)Iip`c0)Wg%H-c={x+{i{2iuxp6o;O+OGvFP%O!iMo8$$A>1c-V zLx}eG+cZ!+Cc;m*gz?)vwlUu{hYE7aI=O?s`Yct`60o*0YFQ)zG-|L=Q>sNrS1;8w z*HuUYWf{?*SZ;+i6vBANtvy4j;ZOKz+##RDih5i3n8c68euY}#S=kvmMZn$ZPs$=R zxR(rygQz^|Wx^R&(XvuoD$AZMX~tBvGm~`UyQp`=P)GbRSZPh0l`@;hQ%1VIZQ?X= zo%?{-gJ~ew)_@}>sjk?+VHQ^olUUtN@7SAROe3c%o*=}ILOUnc+#j*s6|KrBw7^W@ WWDUnxjww4{VE~lg;==#cG5-Q}EL2qh diff --git a/public/badges/sundae.avif b/public/badges/sundae.avif index 49b55e37c2d4b0dd6d3a347010a3ccb588a19ad5..cf7fa67b4eabc1a8be8ee073845eb07b4808d4f6 100644 GIT binary patch literal 3488 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 literal 3923 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 MV({&&zO6I=0_fOxlK=n! diff --git a/public/badges/superjump_beta.avif b/public/badges/superjump_beta.avif index 515c867c84cf4d756b4f6a29da892479e78e1e0d..d9905e917d62f3660d45d04d4828c9917e953802 100644 GIT binary patch delta 1149 zcmbQkGlSEBfq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c2Ie{-TO%_w4{QfmMheJDWdbP% zs!1#}Fm%q($u9!&voZ^c3V^hCW8 zaB_Z5QC@OR1p^ZhvNZsO#4`(W6G3u70CWipBU3XA&>3yHDTyUQ3|w3iN@~Jv9RdO- z3Px|)d|H?o7wNCwzdX`QF}_R3d)uulK__9AH(TfLUfF*5fcT+F>iZbh8W^`&9XAf! zUZi>Ff_43w?nQYgn${jGxBOA1*}39a#2o8;>_64oE`2Lfv3#cyzie;gEt#vE#Q%F1 zFLvBCQ(#HZ@uz#tAMHASULw+TL5`&ShAkIvT&z3RBFf6v@uOg4zxJ%}OWrp%@`*q3 zl4`u^{F80#1$!2j3oaX@J}{=X-ulnBzUQ#Hm>ZX^XxWX&_v;tGnR|Dpv8r4~cE|o_ z+$JwP?9P}*o_e@D;mwYY3r(xtQy3&xP1tcv(mOKVaf6Sc*T=lb=Gj^nLOOPVk%}g! z0+zhT{Z5s)GxDkLj_#J)_A-xWf75l|ynTtn$MY_UpOK1Es-LdRWPLpSrrP5pdnUT3 zyxD)EXYy;snD(=YPfg#|TV48kPa@Xs>uLq2c0Pu~q3yoR`xM$*gl0M~h${aU^)pO+ zvemlz4^9-%4EJ<-nSYXXPeOi~2xD-d^cJTRcK?3yTybIxEI%u`e4)*oFZBnc_Sa0? z?cj91q+#D(fiqvfrEa|X^7X_|u0qlxz2a+hm+V$d=Xt%+?s|O~pC(U7x_*7J;QJc6 zpq(M?bJ7`=R@KD3bn9m?Pw(#scpdimz`U*tEU>OEYa-bKYg=>2L1X>3w+n{H1(v4DRGE z;5u-{UR-W|V}N`NQ}Wuisnv2bl3EL9-Q=FE=iQJL8+!Um|HccALB>@ACwXJO6T&FEvy)S*(Ac zT)dh8zy!aOrz%TMlm?Y#8Gd?o=Bt;rD@GmEYg;>oY=PGNlcRQ zd+vEj)lXMl+}Yezhs;>_q%OdB=e5{nfuz$*(U#db$CUb{09J7 C$lZbf literal 1564 zcmZutdo)xD7{4=^8EF~s$ZB+ilQ14>Ooc(lqP&LK$!=qe=4xhKX4o0lW8}5bHq}~6 zo{5}9laUb>n`fA!Q+aH19FI1uQ?VM4*gG6&|Jm=J`#pZY@4LV6egFU%Mezg>Edh)I zU{gdk7-h=_X>g4wWHWd)1rD1DGm;gzl>z_+(s|qYc2tKz9(%Juz}^95#n2U%hbw@D zAJ`DBfPzujw_6!vWE)X-hfx9uayHl4?AL`0#@3)>F}$r}@IMe{w!zmR6bHei7=-9C zaMY&9u;Ms$7JpM2l?FpQX$iLOLcj=40UeMFF%${B68urc3&6|s!A%4Mdjc(yY`xCqjc>w zwcvJtWMPQs>07?3KEujMFsVvVkXRfJv}?flrXdj(Hj;vrXm9g~tMb&J_TJH$sls)% z%Pf_;Bj$ks^xzu@qZ{+@A3sXT9Yy3Hu_3Vz;icfCm)9&t>_;hX)wTBFK|Na3Bp`mE zH;SeKR6AM&Mq%kYCY2^S%j)yGo4t4?^uKj7+Vy!A9_W3!`H8|hy%LH@I{)<=-egMW zAn4iIwOE{IxtBI{Bvv2W_I)$cZy8gW!;>f@7#MbPn{Dd1Ycx-kSwTSJz9O8<{PGlN=l=R zZndsjW^{hel?AC2ks+LNw`{*WHK7sFn%jrL?Tx1T0I?$(<@ns2%ld6R320PD?{)h_ z_^DPkB-Ajzt=Vm1m&leZa4L=Dqn?49r9RAtQMTQVCrM61jgz+zyz{Yob5JfnWuQ}V zLAH@dP9Av?FFDiWkCx+x3D3Q_sq|lZurZfJ2<%eFVi$)rX=bV!uD6@z%Jfv{xL26h zY5YiLH{7jcV2K9?-DWSpDc)00G30ijHa9P`d8gwlbmJ?Xq># z=UVoWe?eow?qHRpV=cwn^0QXrKB4+}PUex|u5~a;Z1A#edFFwVW-j6-H_H}jEd3V+ C^j(7h diff --git a/public/badges/superjump_gamma.avif b/public/badges/superjump_gamma.avif index 58791698e8102ba0d2e46f196dbe3156f8fe5c84..48f010a07c2d444a9246eee3cf22713ea8b1ae71 100644 GIT binary patch delta 1072 zcmbQibB4o!fq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c24*85TO%_w4{QfmMheJDWdbP% zs!1#}Fm%q($u9!&voZ^c3V^hCW< z6;962DauREsbF9NLbe8=ka%W6ZX!qy2!JkOVPtA%0XoAfHzlz|h=GesLP^b7tV2M+ zM8Rkwn@^UuWBspKmwp#qiR*472abKqTHgUFo zU(=!SZV4M}m{R%@WAa#c3O>*9BWrMd%s(H=B=8ADoI&x>WcNNQ(6Mo6ON%i~1F5Z8f!gj$yyKMi0 zpWeP-e_gGazUuz0N2hnZ*0u+3)|#ob62ey#?zmV}2OVZBymi zsPWkPQ1C~M%Qv+)y3AbM^?ntPO#E}j4Mk^ePIz}Atx)Q(Am=m1EUePr6s#kP%pLe8u%Ig|?RQ&s_tj=l{BJB{%P(?5q0O z9Em&~NAB5pgl{(FYbX!xIGh#K%aw7Xg8iOFcG}AuueG;te!uts`lpYZCTu_B*W>)h z|KsEvk2cIOEo41??Z!RE;_j2XBd&3++$UAlzvz3$(fNrJ8pHEsZJGqj9yU*y&z{IX zReHJL^6QiQTb{)8uUob`qu)&1OUnLsbx>@RNd5MpDN{`ndCw`>@Cd0St9=RNTzTC3 zh41QJ*Djkrmb&91`trbCp$Qjar!1~A?_3~1;rXd;%x{0i_*ymPp8GkU;oPp>_x&fD z6m~9}bHZP6&HDIPH?Ew#!Q1?iN6OCodD6|`Y=yW}vv!G>&y~F(ViSJF&7*I{p51=M zj}Nd%8>*$fFD|lVvv1?ioRezjxBo{8d*q@Q%&(n(N-TZ8d+Sd2RG!$dtn|Y>TaUi4 zett=tqgE|SFz)wLkC=TQzNW3e&2=$znQi0Uc?-|iY5iW(!YH@Pd-D`~1zn+Jo}Y6r f{HysV>bf>w%HTk9(V3v7|Gw(4J2myd(Q6(6#YoL3 literal 1560 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 diff --git a/public/badges/toni_kensa.avif b/public/badges/toni_kensa.avif index 42781e9a4135c8e9e8184ce2f0c686f5f3231ded..98305806f264e70b6e754d0c55b33fcdf5c55973 100644 GIT binary patch literal 596 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 literal 2045 zcmZutc{r5&7k>xgVi;qMv2Vp-l076T6?5$~*}BFUdNB+$WXA3?sNAS=nXWD(QB;B0803w?um~bAv$qBKpa&VO1>jY9 zrnZe>lRJ!{D#V(DVEEP=Tm3RnLfRhWEr!|08~i^BRd&c>kP=0KiX4zajDVsPF(ND~ zoER3nr7V~XQDTIceTP#36a)cjkV+x(0JKs#^x+@?EguVRF~X2HCq%~{=4H`Q;g)0y zDR|4-SrS1a#ga;=(nw^gCDa3kfrKc!B_WJ*dh1NvDyqE6|5QQjsPGF5^K_I!3VG+g zd;m-!g(;K?@Cl^yr=>$x1u%-VeGX_pNG%Nd9T@Lmg2%~$1R4?$5tLWguf@q2$snP2 z7rp}AQU40ZubZ6$bix!p8EW{&oY#O*RRxW5#GI1(U{?+AQT{pM#(DJ#n14k8UZ5;N+`L8V=J*%2Pvl{<#`UAMwv74)+05jREljsmJ@pvYLK8W3<{J zgMGNG=!fQS7K|@Arg708Mt0_TIFj&}0n@CJ zfwZzPr@LeE%}{XpDDxUpskP_wI5b1KSvBNpYI#FH}#| zQ6JeY{yDJ_S2>g&F28cvofw*#D#>w+b}c6M_%tHU9OrRFAgX8rZQpOhsXKOHuJ=7}0yyb={7;R;m4_&Sw|kEwXB#IMKEatJNrJ zQ`SLg&k&pUsB&Y1$N4q$D^w{V<@QRQrc<~K%H@<*FhH*&=Jg1Q;5Ty}o!>

+sTv@8&$pox&D&Fe>AscGi|%)wc&>4s(b04N-S)2 zw|mRl8x2-p8ut_PG2x$F)n2Pm`Y4>AEGbxjTcv$Av%^E82)S%Ak3bl$j$vjRV?b7p zUVyEUx@_>Hq5_5W!8V;hQcNJ$7)PbO$p5rw@w`8-eQ$brVx3*V2&F1P%fVU0BBL!2 z9&oBt-OCuA)il@WJ8G+;uP2!=8gF3Xc$#x{kz3fjIAA0nf>*eRZ=GX2(9E&Ot0qZS zVleXKNg-l_Z{8|e94E&-cx1+Qe_;<`oXYBDimsRdY<@G;6XgYWKwq}LE+jTDXR`8{ zL_7f`l)^4!X2AET$64$Dpg#yveC&HuU1dx*&(Y0@z-;XSfqF<89br zCE9bk=%`P&9|t?aaMLvid0M4~t&b$QT^0Tm03=<>y3NgN^kA<9FDxITG&R&la@p_7j zyxDuoeXwTbke2Oh8m15VvUOS{&5ys8EuE1JZbUE6)Vo%eO5QiU(H}>Hk0+FJ$=^t^ z^YIU#%eNuXb}KOhv3t%fwIE0$KV5!$p;yxH4J#YqWBgdBf*wi_W_&%7q`E5hkMH&7> z`e#(^`0iIri@S*DQ`Zws-EweNC8^(apNpMUz&mjrYAWn(1+$f;kxw`6Tk9^}=x_Q_ z4^ynL{7_xXeew4N&*82M@8&f6az)(x#AWzz4Bi+y=rR&gZgDaB+7yl0}S4o2a diff --git a/public/badges/xp26.avif b/public/badges/xp26.avif index e52106a11ace5339663f4d66290b5a259d0f7392..41caa575a1b543758efbd4113970c0bce4ef814d 100644 GIT binary patch delta 1108 zcmX@g{hq^sfq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c2If#8TO%_w4{QfmMheJDWdbP% zs!1#}Fm%q($u9!&voZ^c3V^hCW8 zaB_Z5QC@OR1p^ZhvNZsO#4`(W6G3u70CWipBU3XA&>6A0DTyUQ3|w3iN~%TMIs^nv z6pW6r`Lr-?sWsm6Kk@~))D)?^JMwhgA0+JMoi5?0l6pt?BIoNSH}0F(Zx3CFTKGD` zX4S(3rbhL9nANXrzxA2>@ee_{&GV#Nl7IRwWA)+@3)uHOy+l1L!1{BPe(oNJ)~~A8 zJJ>Y3c~bjlhzs_lT@iO@XLLDLcRu>6i|DFr;@+-z=2p8zp31Vx*sw?b^+C=>AysRp z@+e$fB5q$VEC0^!eXUdF=D?Hhh15g5_s?=DI3XNebn>)Yy+?lkRWm!W!pgTtY=130 zHhFp^1M|bq+jj&yF0631toGdUS3K6GQF+7upiQ|Sf2}L8z4NIky!x2}^Mm-??~^}Q zI`d7BulpHfw8Z%2mm}vC{`_=f5D(R>yL;QLQTO>l+3u=y${}X*oKn|(sx2<4iF8>N z#fMzX4__+c9y6P@$+`Z<@)zf(#Ywf^_~0=)C-%q&TgKhD?YG9O=q@p7+jvR;%pRRH zEs_tuUgKJx5}}?d`!Jee)7|T-YIoM z)NP8MV^)3trRWKtBd@1k`0Z6rFfSXZ5x`FYaXiyk)~RJ(=+O;0(Zm3U{_dyxsUu3~IH zb=RW~|5aaKX`ys6!Q$}^#jOiJ{JCFu-%wQM4v$IpAL%zLUyquu z$P4~TJL^92C{zC7yWJj(JbC7E?_S|q|AbH9vi{+|<>hUjZTZ6G-#+b{;yUGf4d+d> zF9ih$gBN|`trKc7*u7)kpI5tly^Y%47%B`EKg#NqX3X7wqb$};XV1^Cn-4!SU3Q+e zQcg*uO7Xy!Wt!!S%Im+FYiOu2N8X%t(6j8n4bSI~vK&`kE`QP8XU5upO7g#k*W>!? z4H5O%tz&xDPJT6$Kl?oIyfb~y`RivUYWI5==3jg}aq68X=L}>XPFRy@a+RU?>=dWU z@aY=!QyFInE6iX^5Pa`Ep`p>P@xt6Cr{8q#-|qkL>gLtF!IQjx{$0At@6SIeHs^g> zU)i}Ae_kYFWof+C_E(!z-T}>C9_J2rljwzym+F1lWGy~f#whZ0iu&^`$$~9+RvMr8 L{hau6_DTl;A*acs literal 1477 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 NGsY*sId;7~0|1r8A9Vl# literal 1605 zcmZutdpOg382@dy5gS_Oh{&yGQ4EC@au4f}Y=-m54E1BPnQ`XM2&D^2bVC<4if~e$ zlv}QqOT|&Sfr1wK7V(9~J6ce3B`M^ghfkAv#hF@KMHkzO9Nba!}k zY*A+iWpUu|5`7KxYcj1yUxIFa`es~h6SCEu(uVwfxAC(t2}KG^2Sq9_nQmsSB(<*T z?po;!bIZEIw3eCbGrLk|qiV>7Bi^NO&90D2#l?&b4ke-EL&H^XzaAc*d$k6UA1_n!5fI#Jz+!_2YGU6AGmZRDI#emCC1vzGuVJ7!6YFob>yr zi-%6N;_nEoFP(lcANAOPt05iE^;lSJM|_TUU{jO5ws~r+@giv~6lbm#prqnB3abB1t7RO}!vy zD?J`O(pX>Ne!)Ox8Qn$eRrImYQK7`OB-SKhZzna$^9Rq|)_t-4W3Z!7L&22;3g^rB zWK+zp5vyIPq1Vkv?a($Yx)Myx(xs2f7OTbFO2_xw<9;IguD4nz*kLW1+KB zKRfK3%>D`wA=QwlHD`=UWzy2MWg{l#w{;Mr)n$Inc`@wlwrlP83v%fq`dZgqP1=z4 zNU`>uPK0BhBl2>nns-qZVycR)&^tY}PlKIzgY=X!t*iU0{$LziyWk@BM%ggpUo1*= AqyPW_ diff --git a/public/badges/xp28.avif b/public/badges/xp28.avif index 10f8355861f46f490a94583dc54bfdc1a818a33f..b6aa324f5fcc3930b0fccfc4f98f44f8e23da2fd 100644 GIT binary patch delta 1210 zcmdnYbCuJ8fq_9Gt)#Lbu`DwU$Yuc1xtVE(xtWP+zK(`YK%q~$sU?XZIUvxOs3TLK zlbHll&R39Gk_(n$1d?)@Ir+&To(ls5BM^c}21Y3c2Ik#Bwnk=V9@q}Bj1-WQ$^=pj zRFha{VCbBmlV1elXJr-?6#!}P%!1^6AT5$vT#yQq04mi1;>p>JBK16pWrog;3_KuF z;pF_BqP*ms3I--1WNQEliDwq%CW7RE0O%4HMy6&Kpfe8VrX-dKF>rB7D5(~0>ktqy zQ7~G??$g4s<=p?%3IWkF7k*_+J0Jg;_VZ4?_XnHssb)=w_X}SPY~(23ad>n7pP$`| zS0w&U6|bv5WStps#W8W2vdU-a@3WSlJRlvdwCcaTP3@GwxAw&x@iW@xW2?7YdD0Jt z_m+3HxYwSt3k`MUml3$IGFC{l`2U7S4_~iNoO9^Hi&H1WranA&EYE1i1{wsF}lMFimHNq=wvzhvsLe_3w5#u3NC_>W&Lj#pKqp?s#!; zSpmb1m{$z{iy|Kh6>~QPOwOHtg!3t9?@xB8tA!%wg>7ZJmmhsT(%fZazCX9HzQiUv z_&+aex*q$LsTRj1`S&>Fd`WE-F_BpPa^IVD^|QwsF6Uh5e#HAaF1Cm(AyVcn$GtDB zw~0UeFzr~(nv=Wd9ofyYtZk~v!|j>A+jjYX=324&_{#h8d$#i$MrA~&G|M=5o^keJ z;c@ebKd?~D=J7smt*-jkW5=}_THW`087-+VQ9dDa{OpAXclyn=U!-j;x%I@n^zhY> zu2I?kXYPNy-eaI=$+73~WJh=A*G0LZp_&0U3I8U|C^gXc6Kt^J%S-kuKeC1A(}Sl1 z^0(LS{*b8r|K`REzTX45K8waa%yirK?Y(5coZEG(5r=)(%g5=LOxvN5wB^=>_O`t0 z*7Xi|H`nv7sNPep+q$mo?W7l%IZykrF8997_qxmaLD*G6*?zl?Qr}MhWS5cpJ^zAF zK(njDt8}hy`+oK=ow@OzX5ZqSQ)lR;#w`o1$$453cgTiq>T9;+OU!n-$V^?n{^jG# zZ_X^5y*6lG`RB!bZ%flELV0IurQ6Tf3ATKdFlXuV#?cRFVUXLGEJm)U%=C^1I5{NZV+|Sh~11D~u!c^W3YkL0h}4{w{6x R>ulC`%G53)gs2Ek-C2ob4p6e3c|G=CyF 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 literal 1680 zcmZutdpwhS7=OoPSi@wwq;R^C`*mptnNaOyNwHr&>T+ec8N}5YLMa?}? zxrNjb;&h^vYvd9tC%UXseRSUO@j3sT=l6M^%lG>{pYQWN0068y!r?;{9(V+RO&*!x z5o;z$fonu2lg6RQaoCKGhA>!*DF8qqm9vyDMGORTm%C7!G@>@ zW{V#HFCPgmASl@5Dcne+yyCJ#otO}f zzTn)Ps2~+`V)NM?8k6k=_kawL!s0to7|_v$GcBqZ$|wI4k*-`JNyUB0<6K+>HvRko7bZ#+b=t9>E;k~Y1`P51QK+%)qL z;?34`-yh(m-tUJ<*wPNBr%26zzS3UfiBJ@n-6n#_t-<8;rLv?%`ikO4v?M-4;A_7P zIWK4~Gx0JnIJ7p7_}cW+Rl$T(Hn)K-6NlY=MIc3Vrw#oUbqy!+@_jCdp4$*)7LMJR zKisr?c1rp!I?|;yCwZ*?s(B9uh$Iw4^EX=fzE%EPk9Qf{^3dA7Y3b??BC@q-{^iK? zeRR8*z8M|Z-rZ4y85SAWY=dXHE(2*2{n2FvbIMzM_IS&*?T6<-&!^@7u}-UHe?fyZ zXr`WyCKy`WY3n!Z1N*!p_TF7 zw#UZf*Ko9cmi?8Kkkr+&<_uB`na|GS9zfM}cmIj$^}$sO&Xr7+llbd(8I?p|KW&}U z8?k5l9_t4rP8;y;!g2}-kWDMGNd3vPVb)QUGO%Qa{R3? zPX!2mKDEHkR;uj0?)Ie_M1u@T#9?yoji>=}{d0xbdnu#!8dtrl>)R?@G3(8h{Y!f; zoak9?AH+I!Fn+eQh+s9WijSgg!QDzA3|36q+>XI&mR}cs);HN&elmLOV0+U;^z7Tr zJKhdGZDjmO5-W>pDRxa&hpxRzJkgOXGw-Z|GLI=ZT58rRnmNlHbK^cqZ|7MLtyJsN z7n`uTmuD($Ibgzwdq`#)!u77syYZgj9j7wr32foWmDP7&Uvq*i_k0u1Rh&`v3(DhF zmL2wusz(H(w(mu($bao}H_nC@c#dG2bjFycl*7Xw(E)!*S2>{E4o-5KMb~jYIv4h< zO+93}znR^;b~JW#LrG`*qx&m?KE~D%)#qQwU)J#BUO$Kp5&v+eb*hIR7GH6Uj4u2d z&gSB_Ph505ZEHNNvN`RdS&F}5F?W6YCjdvTwJUtonmmSWQEr~l^D&IL+k4-RDiXMt zxQ^U>J2cRzCo5~ijK&c>psd0zM< z%;58rAB_;*tXbT+ig-_-vYQr|$4vZ6JxDGN)yYZ$U!d%Z-Ulc>E%2$-t@9ja@1IWf z`SfzS$}2BZO7-fmGEfT4{JzEIeOD~-!P(W|vRc75=+kOlgPQVy(>b;QsFVQiSi1z} zy=w|(l7VabQcSNjF?IQ diff --git a/public/badges/xp30.avif b/public/badges/xp30.avif index acaaa4e823d38cd0b51db84da290db4aba500c01..9b7fffe8af6059f467760e9dc32862c60557165b 100644 GIT binary patch delta 1216 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 WKf$j0rX{l~^GVWg#iPAXBmM`8&ZE!( diff --git a/public/img/abilities/UNKNOWN.avif b/public/img/abilities/UNKNOWN.avif index 22a859c4c41c1288afb6848f197ea16ee049b7fd..c8f20faf6ee554d1dd7457802c32d428dfa4d0d6 100644 GIT binary patch delta 237 zcmVa8R^>>aCzb9W#(hTBSel zMt}dE3y9=EmyV4WKmY!+1ZQB!uS?!9QhkKe+C?va6)I881X9@SJ&_!l8377PDcrmV zTa89aEZZ?e%BzfSMX82i}0 n5G0tI8*k zTiRzON4!U7DI8Gt@~W)62?sNOHg(3Jy(k+#UFF_v%HgYk!76$^atI$8D9O$f zf9^84#o<-S0t6oXKs_PWvDW`q>{v(D$+xI;n_8C+o;z7pJc%Jp=|j1bc*%dLdn0kP zWIfu#zyJUM1x@J}qXM+V!trEMJL$A9P-IF*s)KPblw3qoBz1TSpx50WNS5J~2s*7o z1Lthascy2domfsY^(n#QD0GTl$xLAhe}*vYJ_YrFaR;6XVz%KoJB}(Fjyoe`3ZBX~ zK7&?+z*zhdb^BF$u{spe8t2yeSfzW{NnvRmTaC5=%qo+we3)f9FSR=5^8KqGVr4ahE%GWOAz4izE1@?-R%kAeMvF zWnS^xZ5WO$)`IIYM`ZheBG`lZ$3b2ErGWn_AMi@NxYR8adZA5}&mzXH%SZ2- zgG2Uvc;Vuaj6`mPq@nl=7S@ulaA!o5!>WH_jx2kB32{d(mSkTbc_T~*e~F>bOiy4k z+uYfN?=o6`q^t7rhRqVp83PW4pSWyhZ7RcL7K&=`oc*b66+<3W(FOf~unZUA1Kr-U zL{3?rYV<}>I?N|Zf6)GFbxt`ec8v_I;JRYw=|b;HhAWo=2f&>|rV&h_zOpMd6H+r_ z{R9A5E&c4np-y@PcE+_|f2VzamchHU9h*ZJ={xZ(`vEx!Y*e^5i-~38ZTeH{REO|* zqAe16Lp}P~G%DBh8xn#q6ywgO$LHD^PAvRk_Fq|#k_%sce^M246H6$mlPMWg;~a|T zugCG7&8qPM=9l))$XROkp~d*`y2KQWcscX(M~8e$@fS&6&lrACMow@?iGx)}*8) z_M~sPw+o(0cpoQ)7XOo}a_X6D8lL)4IMwICEw)8MKB0>fH!^yO+J9vT$^mj0!t7Gs zf4(j%bjVdN3IG5DgdO-II}1Y_^#V{1h-DH=jvSbG6Mi>_fU{#Lo>^4)5&=X5uswPy zx5q)m`OO`aipJZ)WxiuL9Z$`|en08`73C(6lCi_*0bRMV8tD13eA_r4XL0>9Z|n?f z<@W@@wct=i2B+`WMMXRAIjOtnNE&&de_^3oTvC!_bwrGSrC+qvInKcv9xd$-i0xTn zh6NRGW%skPJ632oZOGP$IqZa~(aBV_(j2*K^+i!Zf^(IBRh@6Zly@O&?OeF%w&>$ROp2mwOnq+rIafGAUf0%6hev$UqzRnUf1KPIC07zvOebsrk~@?Q|Nh}zdrTuk;*K+IrAN>5WVWkfFxo)v$S z5CO^e*kO#IxYI}%<1SKRKnKM2M`-Ld&E6$(ws90Edj})IIAg4rewe%u>)W3Sqfe%! t92aJyMxwzc8kEebGf&+4Tr%q?1N_xm(-lHKog8=`EyfLFDsH<^KqGBIW*-0m diff --git a/public/img/layout/admin.avif b/public/img/layout/admin.avif index f5c7cbe3f3a0a192c409af93b9f45c8de305d789..51ff4447faa8ffb886821e4f2d76a600b30ed747 100644 GIT binary patch delta 2968 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 delta 2215 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 byJl@-qnTYUOGXc+va^`)D7pMSbze6?T-1o} delta 3253 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⁡}w~lbOr5>~0T3+c*aV1cka_Pw_3<3(DWGe`eqEa)smp)3_W2Di?Fm z-lFaRdmp8)@#PnefT%4l1EJ=b$46G=gp}$fAKB;IKo6L>jQu9ZOu}iVcdA84H#zoG zWRjjD@_GuMsK50wx-%_zBe2!v2jA5;E+e^jg0JPFUCp`;d^~?Lw~7EQn7>D+=RrBf zH47EKO(Enpf3xmS^ax1A3_<(L2|zoV+j4o;3c&L4y#j;VrZMa<_%mqSd<$Z*OnH$U zAn52xk0j)&-*}C>%1=|@N7F+Sq3=4dhw1-mK%t`HUn)iW)K>@MR5x)b&0yTw(xv;e@fKCb}j8N#bu3f)Mmt&~ypXk(IPK;UAM<6oQ0LsAfo_D2|VC)L(pNx+DL&6Sf5F`BKp-nEcj4 zgLP??M4cnYwWueyYuXG162;qPw-yBaEvj%9@AQS4N{o*fdKlT|P`8ksDZJfd4pFbr ndjp&lAM1tqchby#Za!4QV70|ngt5q~?rBi1@*>9YN5XK>NpxNx diff --git a/public/img/layout/badges.avif b/public/img/layout/badges.avif index ccabd4494b019c098439abe9bfc62f1f66eae52f..1f65e02397f9afb94c693451f0cd9902ab439ae4 100644 GIT binary patch delta 5116 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 ek5Efw(I@ILN8pJUFea<$f?n|@1)@Hi~^qk delta 4164 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 O(kjN1co7Y^ID+7wS06k8 diff --git a/public/img/layout/builds.avif b/public/img/layout/builds.avif index f6c29166da3dec7503a66ce9feb7914353ddc552..98052299cad82840ae1d99fa022b73aa9be75e79 100644 GIT binary patch delta 3612 zcmV+%4&(8=9-t?XegX~ov4BGX0ukS{#R2gHf9M+$5D213!A;j(6v8q=Cw!{x8Jvnt z$X zbT%J=fb@#Z6q1fs;z7ag ze@;kCxrf2?sQ#LsNVROG%M1TZ+{2wm7cCc@(XXUa2;7iQI zS*dKS6aG@kP%G{Xgdm!S>c*)q&{w@tU$Y*?bs zr87Kxzzz-X$I&>iXH3bpQ7rY;>?WOs_G z|2#eI?xnziY1xl8wd+~b5NV>dSw^N#@TuFrXZ8Zj_@e7+kZ#*r^@R+o^&anRcK^ev z`!0vh2A@~IWzBo(zqnr^b27}@Hs!SIgB!i*dVFvGT6V%NcSw;OHtd*{MbiJ0f3hwo zrC^8sbR7x^_nsg;e#QeR?NXrytiX2A-wPp*03-u#`L`_WA-SnVfbk1=F(|}yWM`4V zR)<{t)?Kc8!>yqX>O?7py{oE()vrbdoo28JS&+wT!(DkFlm#x=1ax*vk+NcjMo z4q_g^tXRZILhcp8n|C@+213LOf7^c%!4JM-xN1t4v5K{cZc&|Msp;>~0+2xR{k<5Q zYmOb~FD>y#_fOb&pt*d_30)B5Hhi?}p1z@-Bf<(!_K*Y^{`of9zc++4~|` zvvVbe9!~O%FYvUaAGjs!{G}F481$y_asS7cxy|W=A z|5!UAqW#Oq4qgEvU-F0hjirwF^-@r(Kf1X+5BDd5FqWI#2 zVzPy0o$+sTumCe+3#b>q8-`!f3#9W~m7TCN5+u_6jm;tt*8&qO$1vSKCOX#p_w^!j zFg_OBgwyBJV2N$D!c8ywG4?8&+l2>dqiFa?F}V8f&!(eZ5A811{vvC4RU46m_-1Mf z)^eA_TTcMFhtp#(e|s}ZE&SQtDtDo!Ht&e7O zlksO-w6pq|^t631`S{78XHab8yY=gj9T2QDxl-kTAOmYZz1Fn^4+D8>Z3^Bhm3%vV z(LHcVICn&~e}?5ThRdq8J^{0ALJC_Nst*6>N6$@1wPV^}k(=V?wo3QDPIae^?%d`a8-_@dP@`gwT3_(A@Ww zYQ_N zp5ovihI7fdxcwxePP!4V6cNRUI<~)I%rUR2?t|V85WHHR@^Qw;v}p(wkY(AAWuV&X zmYa%-f6zhsG8=g|@92yYg=%euP%wL_HT%Et|4jxQ0Ei{G+Mhpk^=x~{b`U%kZB+IU zcp6mLthz*PGrVeI2=6KMo6kj_GBb*ywe-sQhty6h9FPmVnIiuN-beslSu=XkDVk=U zIoMP^xGWdnTsN?8P06Mok+>ytMkw%hQz1&Of1^FCe`Os3ryaxBQ?ZQ%R{-xYpTKhE zhWc+l9*xlSBR2VfHKH1G&Q>daWKO~)5R9Fru9d$?B$;Bm;+R+Sefak`dM0xyvd=I& zh|5cCYpict5C1Moq?z8+HExjld48K1Wz%+GH38c-R$PlVLG3rF~0Q16AV%Qc; zeGEaT?V)rX0 z*aMWr=M>Ub3w4djL*`8k2FSvA2@PUfp=1XD?lHl!Wo|T~$w$mruL!@5kn%b#AeHNp zBGPq$YpD~5@WcCJ#21iC8Stc7qQvoFf7uCmec*rnxAkz%-^;6+@f!O+U*!#8{r4@W z*%XP-&sA=T;{$Msz%FI&HsC9pbz}D2ACq$Sky}zLhX>TRV08GV!*M;A>a;9E$zL=Z z{ip3Mz9FKEhR5F8<}Ii8@(9vmNLl0wsiX&DCV-lOvsroj)~bo`g*^rcf8haw z6vYG=*hx_V@@G(`(F2JSK`=lh1tb##pzG%En|!=TKhYM!tZS-z@YkU1fZ3ohHs&a1 z0-M{M3IQ#r)eQ=$8{N2QpsDHgyZ(}$NW7kU*R<(&qBgGQyooJ5$SF{Zsl>}#yqMPz zsMY|CHq@?|`Jx=oAHG{s-R=Hfe>skJLM;rS1uHE^Yfc@`D+@}TRy$X`AsPHKQEOtF*5G;yp3#ONz%yx=bRvZ8}m(@Ds#0dF^)q)N8dL8^0CwL|UsG}Joe{TCC4D@gW za;eYwWa&3o%A#1I?pEwH4*Y~D*bx%3keBN-KoEXS_Y zeFefz6x<_zOB&K&Q;cUJe+xwcI-$0_o2%FayOVS)tVaS7Q_@le_P=!UB{t6)sdj(- zR5F+bszktZrDv|m3dPG)dzj^obCc1m4v9~4pJrD`>Md}aw)7J4pt>e*^^$|)SFk{W zCO>{nvznt8i3sqGJU^=~yJ1vx$NgK&;{@2=Kf>1wGc&^_ex0IBKkC)b}ZqG=;T%0(8;CMO0n{e7lov$4anTe3;SkKgK)APW$aT z1(9axTRw!7`hCMYe<|ax54m!83u^-1Cggy`Q?yiaF`EG)g*>i6c{r}Gl^kI~>&j#P@0R@HWG z+>A)uEa2|dmcB9oD9f9Lp49U_m19cBelCq8ZN`A!&$*O}e^H2S9@I17D;scxX8C%k zTw2h|@YA3oZ}Z*ET&WP&5zu~U8ufam9306%YH>K+a6L+BM@XF8x7`xZsY=VTr%TD> zxYKY1*;u5f2>o5$Y10qa#DOV(6RqlU;HS$nm)kj6?jVNQ&4h}~le8De24EI6$ijm+ zaGh6~%AqBKe@8;L37jb!Hh;-m^Mu6ncWC*FB6bpCE7Ar6z0F*`7Bz2m*FhE!T+Pya z$GEGd*0j3_M_-=D$zND@g~BP>Jjti0JeRCC)#ZUGa-k1m3Df>z@etTZ+6y|7(drv+ z-C-1|J{zC8lj}^-c-g6}om6)f8&7JuxiEW7&c4#AdTbPy-hP z+=D&uDeQqVC#WcaK$l&cqv_(cU9Mq|1G_jMNzq@H=Ft|azuz-G0Y!Dkb=O4_+>C2O z_U}(de@wB(w2J>*4D95v0lAWiiP106`<16-#nRxT=PE=T_6b*DKGJ^J>gpZ{C`i@H zi52@cHP>S$5lQNw3TT6+lAPO?ju^;>J;0RprPO}KNdwps$w7J&MnJL7VU!B($&>qg zyS)Uy?FE0A@)_JDAJH0JYNXYB%YyHk<_rHYf7zTbtBmV)huPw(eQa2m=e^4cjGXb@ zFE7E>esCTUHP4g%x@&PB3YB5)!UPx*rw07v<(j|`GYMR!D)j=>W}KK!5=AQhQQ)$* zZR_!OBXth-fodqHS;utUDhyE0Jyr&6joHm&r7Dvn4VG_MSD=dJs=4=47Ix><@P21X zf4ZN!fL=Vi;BnWgyjam(RA~~-K~>he zXJ@0DvB37^%6y)Zm&8)7-l(2sFJ`xH(T&?uSG?XUE&?FBmfE)++S8=ZbEB~y(Pm^4 ipAw}0fw1KfAdyK-ZLhJRm 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 diff --git a/public/img/layout/calendar.avif b/public/img/layout/calendar.avif index 995929ce794eaf41cc684a429f550b4cfd53d55f..d38724ea6ad3505a6e0a2afaf51ba5c097f252e4 100644 GIT binary patch delta 3646 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 L$bStp-i$IC+c^LO delta 13968 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 J>MIKZMF-h(?>+zk delta 2213 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 delta 3384 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 OsugJ~g7tZZY_cF)ZJreX diff --git a/public/img/layout/plus.avif b/public/img/layout/plus.avif index 2b763af5dc25496406253444bf54cd94df6f26dd..b49c19b2912b50365f02221afb6167ccaf23ed20 100644 GIT binary patch delta 2203 zcmV;M2xRy17^WJKegX)Cv4BGX0t;oc#R2UCfASDSgaM|HSW$J*w1DcZpNN-Pes6!% zu;*x*uLeK=|Nqa+Z#j4Sc2(@-c+p=(cL;y?GhE6IDnlIO_Bj+Q-qdGM0g-ydEd#UF%L%nS<5hek2AnHJya|1=_=+gKxQw6<`}sBMjdfkwY}^*O^M@!F^(1!`;hl5AHPxe{}3^ z8)cc_Y-Pe_1YEcdyme8|_K6bvs$tzufHF>^oqc>(|Iz$5Z8 zWeDDYgk1W$58kCBrCXlTW6SY&v*xA|)V&qBnV;vP$Z)yiBY=Qs*h8mrGL_mq=MXmT zxq}`GU_B2*t@(Uq!>MBmhR_IJf14?5)rrP3vp`vO@HWCUIO85ziH-|~bLYr?Bxz349avG(vr&tccQ+`EGX{(~W-W z4=A2OG7jqvn|@<<%p1EVdKQ{`UEZ=j{Xo?~n*zOq4y=P6esE#izW4U)dhyr3%jy1H zM=kxKQUdXHQoqJBW5L(fdwUlF=J38RzrLa=m-!rCT}6EAa*XO1o;vT=uWM}xsD^pA ztL1&!EnUV`M;l^`*^$+be?*EJqNNVCC_blqq&_VsIblml}M2}`xJ*n^Q+)`2Cka<^>6tL5N!kQll8=!Lhi?|zcSP;)F056qbBG9<3oZ|GlckPB8i)Iy|+2Ex}j1lUP zy~sQpT5peI{FNBhN4)_#TRnlu?ahJ^MwzA-l7RmR;F~4&o9E5tDhL<$)nD%H(=Bd@ zm~!Z|gG#-=Wf4xB3m65{>DusWK&m(%f43O^sS>3B_k)Xs=7k3Y1+v3(hqD|Kk z?a#>dvy3~66if^w0NI&^-Gbg@GBF?hFH=+#9i7Q>e?N1ReM!SosRpnKC1pGo#{x#w zcE7@JKaR;YU}dkYwuMqI_s#XV&D}tZ1Fx>x9`3;W9P}9fe@kyt&dh-(L)OVR;*d-> zUgL8SQixY1_5SW?z-|qMT{wObZuos(eoSMmw2K0gA^CO(f|G#b1m}>@^m6ux>{r9E z5{gew1*ZzuRWwj^gP)Hx$OJn9^z5{nL(=rxydXHzq=SZ8;h)hW&UuqP1cDX|F=}xl z&$P|?1Y-Hge~7_hsB5__B1w6iuUk`tVP#XxX!}S*Pp%!?(=Qq;6=jD6${m#>S90^Q z_5oZRR%|f&h6J^f5Y>i2saev}Esr5zn&3eX``!V!XC6yrdOm}yQ=erq2D4I;TsXC$ z;~zB@VC&NsFnTet#K^B9LAp%Q_sB_}a>`v@2#pzge|mV8OmdQ5L4)%*dEjEWqDpSO;~NX}K9wz>pEeLI+j3JbUF@0w&9w_)e#XjAO@jSdjYJnlEhIPw{ zWuowX&jY=189}N(wN5enc-W_(BL!jy>c@pzf4BQT+y0B?k?ZWo|Nm^JW-i)^D0WfR zgL7*1Y+!%#N!sA+43b)bGbljJ4y!e1KI#mUrPpKVCnlUflt=DuJ}bg zfi7`FU$h-^8aoYzO<_A4X8MZVsBhMC8=@z7qeYQ*F=2Ed#s9C(A3(n~Qph3`#jqFI ze;3!$Ags}u&(wBpqfwx%#xVs(1UY;f6}whJ%4f7!)Nquh$4rK7hV=U7=7w+ng$H&{ zd%2RIP?6Y80$&kwLKWpv3;CDpPuNH(G-E>g+X!T6V;`4LRxKHEOe>>01e2X;;1Abb zkz&}w{~w%^3#D)X9UM&=it_7FYFy9fe}miL{%VXX7H#y_5V0?RP0u9ZJ-K*E7(?4ndSf4e0$ zoO@}*;{HchE+qUyB(22pyspf{S(RF6EbG(9;=w*&SXjLf3qmt%TrrfLdDTJ<@SWxD zFFM!rf)z-28;r`VTLZ;~6OBFUQVtd%<)ZCbCga~<4zaneEI{QGEAmZQs5Cohzp^R! dGg@ui^c7m?ZHa33Z~y=Faewz{1&~Kdbif1dO85W( delta 2020 zcmVrh=F_D@9k6bDG$-(ke>5ezZAtbY&9hR_0p}wLrc4Z~Dv&7`%^d?@2RVy> zTL0$*1ZgQa!KtHrX6C=UnRQ7(0002U8=n1F<)0(XNwrCbk`l{#(6-q?;(jguu>i1U zfAi>)BrCUDjkww*Yrp0X3(pg){*oG{WrEF4WnN=;PR`aT{NxK_y4w><7HmYj2Jafc z0)Luz@=1p9QpZ-?%9+;S)87#<$rjDommWHD1+Ek8)LT3Ilpu5pfk$m&$5-Qe~ z@J*L)WSx%ESwJA_Sh7mcSG$2QK)l%*f4Ew#e^A3F&z8WEP;~FwG#55`Fel$e87c>g zcec(X6q*&9eS3;8-4gN=KYyrd-$+|FL3nNKaK6XyCNz@pS<^ih)+i{3vE-yje5leV zGpHnEcGtD)MO~qXw>v#6iHfuY@xda#%o`STeZ#DN`~P%1{$v~O`b zv(A*o~xnH3-=1-*nv^>&( z-RAV`7X2r`i-000000uFVR%@NlW{{J^9Wuz~`Dfwep2&12(3TobSo3Oo0 zeSEpr2+zIFO?czoK%Z%%QIYqe&ZuIm3~i^UiM4c*pej%^6`#&RV;dcjt03pE2st&4e^Qt!k*1y!Z zhdING#SIA+JTX}zpt%#oLPF^)a~lT* z$k{A4yHatYFr}1@MD9#Qf8lPsUNEKf3^k@&fq`>!tU8Z(d_B^j9&VNsR-|Zi1M33|dU=c>?x+MI|s%oq5k~?VcW5joV6Xt`dOM3O;d-W=m z@gq%V={jAD-6O}wip*g@t!#QF&f2a(HEi`DK$ib8dVQvEF z;ZLgkd_XgMptsFv>sfghP)50{`+C}HNH582CIp4uy<6_5ou>eXkw#sZkkP(mUb~N8 z^W43gpz=@k9Ld)m*p6n+>pl)Bo(Uhsq=BKu!XI{GxYVaPNKCVp&5$j%#qZY8ap&j^XfAXTOnPdz zEcA7L73?$|W!GW_D+q~C7e5Y4&Ote}>xH%60&5)Tf7Nwna=)$Cs4nsVv8lJ6fGyzr zg=~Vb^T6Y8$g9ci%T=txEn_D_dlnjnFYY=b##<)EDDAbJ?XhzNF_y2sigim5{R80t+mrXs z)jzIAe@kGa3vH-N`X#|*o%sDs*-TIqtBwRL7eP=h;n=PSM7e@tEI|S>2l9jeO9uL< ze>|f~(Hs?6y4d1`I9`c|<|XOL?1=wUpl~l-S$5XTH8m@eL*?9) zGAmHpPQ?=2gq}~urRoP)O2+6saEFqKE8UZse+crUOJ;HTeJ zYB-^6O6fut#t|ZWumui=YeB+>>K#N*4XUrB5-KhCdSQ37#;qz;1>W4`>r*IZ1%@irnRS}cG<%c;tx@z!tA zf92CS5=fD_4;(hs*CtJ2qJYD2mHq`03uZxJ)H0OaveGfyN@JXvP>+_q7Ao7|X-#{K z+5pyD@==9~hSw_UlK8V<6n(fwdPcfA=O8W&_}^w#e0iJ=8j|F6`=0gZXmgEXqk{|; zONS0I$|9b4LP3t`5Uh5KSF>3yGfO;sPM0_=Lo}tgfyrBp8WPg~3vSNhlZypZ9DnXE z6giVxsKCgJ%JMHu3ZFA<*vv2kJzx>4vBAhScpn%5`>$2jhzOR7^cL*pqQq!7I<24^ CcJM6# diff --git a/public/img/layout/sendou_love.avif b/public/img/layout/sendou_love.avif index 71036767f9de1777acaf88ef2dd043158620bd0b..7fe1edfd04b740cfe5550ec8b83fb534a21d4414 100644 GIT binary patch delta 1499 zcmV<11tj{862TIXe*wy|fJ6ZSfV0H`zyW`{3lb0o*GVBo*FfDXQX0%&fK3+@yT!ii zT*R-hn?F2$%BH7#tmQBhF1R*=v~IJB`gynH;zJAeo$ifP$>GAO#IF+cn(#@8fPk~W zLG}RlGQ;%7W&*=Xm#LTG;{ z1_D+4gj68jbvJmI*1i2xWH%-<9a^jEPCE!VIDgiNQ44oGM3;(p8=@Mn%X2G89V$UG zGR5e7?GBd-HUP+q#Fi0Iy)ZC6n0G@Aqku)7>LrZWioWA1d#sewC_`OIlFzyey7RzJ zk*Lm{-!>E&?Pm*tM~DW31qHuD{Re+#dk4_I?4*<(5knrc)%tR2sTYn$Ki&-f-{6Pm zOZtRkO1c^$_JCEp$ad99&D?0AY79J&gJzThQf6KpwRg9dH7wNx^#BIQZJ2<1>ZK7k zvZvMyU>bG+$jB*!~=6U+`esc4s?#IqYlz1k0ADaCYCHHJ@ z{CG|Cs^#hCmkvAsqZQ-=~81x_@&QZ&L8{E%F-fMlERku5mWllrr}2E3;j0K2s99S%uujnt}Fs(nitU{@77H zRWjlOEb>@8kD9(%vHGnG0%g@+jJ3xPW(-Q6*pmCxZwu5v?;JUYgW4iJUB1Tcl{W|H zG`e9Oz78)$#zfXTKqlG+t4u9)!eO|@-zj^5fCan%C>tfL%})_NiU)s(71fJ6G)%;RW)cE$y${Aurfh_jY7XMr>NPqCt zVcCay@FRt@cmKNuTi1moYo3wC^(;ar`NBTd_#r6D=cH65ma%^)Mc~m97I{LkZk2To zuUSqqrHSN=iHXLGl;;*KB2+U)0aRDvNeY0lP^}#N)IQaX&Lu-x_`*-!+T0{zeu||R zmB2K9!$H-s#wcum@L;-}*&!EU*zEN2%h7SM26i$r^#&Fqm4muaGQjT<;u+|1r(^_8 znX80ShXl;CC`NycTN)x|3TnM)z$B~OEHFgab0U^!cAAYO{~LGoXH62V#7l`B$urv& zu=j4;Hbgy`BVX$9a5vc+vy_B^`FFry9H&%eH}BJ~XDv+~;S>7-haeVjn<+p&6xSY9 zNqUGO>}S$tf__7uc9g6$g6c2=3rt6!xj5?#-s84vje~#HbdgCZ%7a?Oo^00x%x9V3 zGZ)_CVAhyyh#aB$S9UU}F4BBbU+nH@@6uRJ$S^FwOXa0b- z^*XwgWU}eP z1pJ|9Tep9;+X3yg{yWSa3MM{5uN+pCvlPU47oVc~d-~EfSvg1=MR%bDJXWIR5?jgN zCaBdXgf&kINs6-0Aan>UOwUqooa7%@CHS>#lN){5lk!%*+g2DF9@L9AB!2+=;GJdZ zz!Oxf&7QP?CFysw{8~?A<*w7){(vapRB$T1Bm74ctZYN$7gwgOl-h62K3A*tC&iO# zaD(J?#5Z)OH&NLlG$F3xGhO}iydFGcgsf*7_%U(?@XXPlM&J)kotKIAaod+~Lx7(u B-+%xB delta 1448 zcmV;Z1y}mP5{?p(e*u@VfJ6ZSO|!)TzyW`U3lb0p7$qS^*FfDXQX0%&fK3+@(3EIK zW24U%#Uvk=1zQ;o#c~_68xz;{Tl)frN?|q2*;1G{xJEbJ!wJ-=-TmKtz}eaA@wiOFj=g1!Tf(u zqT}#m_yNa*YBQd)0Dfya`Cw(zkO~V#Htaf0)+!qGiN8&scEKmm3(`!OSe-+;cnKeN zM$j-{bwV%g)X@YN___jPQ)_R_@}lk;bR-8!H!<=3;?hp>#?CmD8NxlizJFtHbhI#% zEIAvR&C_{(a?GT6Nl#VGY-Rp%jvRknKuYPCyj@^nT>GfcOSlXD2vPv5Z?JXP{!`ET zPNttaVwF_Vhi9zC3w|x|#7H{}zh%$)jeG&?RJB}xAz1hYo+PJ(&d+yP&J-(>=lVbR z005KLZxdbRZH#L^u%=)p|0DjV2oFy>(bnmRk=X@KA&x|War|XaI4TEw5A1)Mo|?Bm z@CxM?lJx51dIkS~y+KzH<}ftz!rZ{x#iuzO{OjE3e=>x{LV16O*q0m82JL^#CywDtA*IvSsB%YicnzvHt>9F*dt?KkK3em^9RfR`1qO57P%?RCElAE&MpYKed9$Y zFtJ7{smPJmz`br@ZyBJ5yN!RnQPUG;=pMSRo=wjYf=wU1?&!fieKk4G<1J2v`X)i~ z#jqP#P*Xv&A|po*Vpm2V7E6)Gbp2rq9!`X>=Md;uSnNdMOFX?fElS1O&x`K>I++-K ziE5Xj^)E(;vbfw1(|yMN0HGq))6~_;Ux_nU_>QHPwHTX3k)h3yqnm%N)>?XeVj@{? zG5W>`#aCr)@#VOu6pjoNox0r1ft{vS>f`71-UH#js`B=Wdpp^gx5C=eiraOIb1}CD z0Yp)uRGJulSi2#hmC3(#K1-o)G}wdJrR4H1l`Wad zK^>F4)S6~N(= zmWPAxDg}C~x$0U;Gxv3LC0_=R%~qF=Aq>?M%W{tnC-DsA`xJlAQ3J9c%QcVyEhcbB zwNGpPw4xqYs1@dr@?m-dOTDKV~b-!?N3uHsvl%@D9G$QEY?rK5Sc0;%M za$$fSd3NZoz;}lIy9Y)SK!wzzq_^|f>zG5QZTmoF1Zpk;(ZE`(>`!$Tm0QVqxk}PP z@<=uBDXw^KRqTHmrG&`MPb#0u$y->vEwAqKIO6x_eTJ-+ZFX_6>&P?^+754lze0<= z7kpxJJzMsio6hx$3tJ&IwGI8Ls3w>CI2Z$cLFQoZ-6Vl>>LuVVd%zyV6;J;>ixl;) zgOwTLg<#u|RJL0&4{}(J2-a6A02{cKOR%&;QCpv*v1Sg>qatioP)HPg;P*>d#|>!aI)1$e`R1yD45*4 z%5o4!kACaaE Date: Tue, 18 Oct 2022 01:12:52 +0300 Subject: [PATCH 13/14] Object damage calculator page initial --- app/modules/analyzer/constants.ts | 30 + app/modules/analyzer/damageMultipliers.ts | 74 + app/modules/analyzer/index.ts | 4 +- app/modules/analyzer/object-dmg.json | 5579 +++++++++++++++++++++ app/modules/analyzer/stats.ts | 10 +- app/modules/analyzer/types.ts | 15 +- app/modules/analyzer/useAnalyzeBuild.ts | 21 +- app/modules/analyzer/useObjectDamage.ts | 48 + app/modules/analyzer/utils.ts | 17 +- app/routes/object-damage.tsx | 34 + package.json | 1 + scripts/create-object-dmg-json.ts | 55 + 12 files changed, 5852 insertions(+), 36 deletions(-) create mode 100644 app/modules/analyzer/damageMultipliers.ts create mode 100644 app/modules/analyzer/object-dmg.json create mode 100644 app/modules/analyzer/useObjectDamage.ts create mode 100644 app/routes/object-damage.tsx create mode 100644 scripts/create-object-dmg-json.ts diff --git a/app/modules/analyzer/constants.ts b/app/modules/analyzer/constants.ts index 89b7e959a..031244f12 100644 --- a/app/modules/analyzer/constants.ts +++ b/app/modules/analyzer/constants.ts @@ -1,2 +1,32 @@ export const MAX_LDE_INTENSITY = 21; export const MAX_AP = 57; + +export const DAMAGE_RECEIVERS = [ + "Bomb_TorpedoBullet", // Torpedo + "Chariot", // Crab Tank + "Gachihoko_Barrier", // Rainmaker Shield + "GreatBarrier_Barrier", // Big Bubbler Shield + "GreatBarrier_WeakPoint", // Big Bubbler Weak Point + "InkRail", // InkRail + "NiceBall_Armor", // Booyah Bomb Armor + "ShockSonar", // Wave Breaker + "Sponge_Versus", // Sponge + "Wsb_Flag", // Squid Beakon + "Wsb_Shield", // Splash Wall + "Wsb_Sprinkler", // Sprinkler + "BulletUmbrellaCanopyCompact", // Undercover Brella Canopy + "BulletUmbrellaCanopyNormal", // Splat Brella Canopy + "BulletUmbrellaCanopyWide", // Tenta Brella Canopy +] as const; + +export const DAMAGE_TYPE = [ + "NORMAL_MIN", + "NORMAL_MAX", + "DIRECT", + "FULL_CHARGE", + "MAX_CHARGE", + "TAP_SHOT", + "DISTANCE", + "BOMB_NORMAL", + "BOMB_DIRECT", +] as const; diff --git a/app/modules/analyzer/damageMultipliers.ts b/app/modules/analyzer/damageMultipliers.ts new file mode 100644 index 000000000..b83fa374e --- /dev/null +++ b/app/modules/analyzer/damageMultipliers.ts @@ -0,0 +1,74 @@ +import type { DamageType } from "./types"; +import objectDamages from "./object-dmg.json"; +import type { + MainWeaponId, + SpecialWeaponId, + SubWeaponId, +} from "../in-game-lists"; +import { DAMAGE_RECEIVERS } from "./constants"; + +const objectDamageJsonKeyPriority: Record< + DamageType, + Array +> = { + NORMAL_MIN: ["Shooter"], + NORMAL_MAX: ["Shooter"], + DIRECT: [], + FULL_CHARGE: [], + MAX_CHARGE: [], + TAP_SHOT: [], + DISTANCE: [], + BOMB_NORMAL: [], + BOMB_DIRECT: [], +}; + +export function damageTypeToMultipliers({ + type, + weapon, +}: { + type: DamageType; + weapon: + | { + type: "MAIN"; + id: MainWeaponId; + } + | { + type: "SUB"; + id: SubWeaponId; + } + | { + type: "SPECIAL"; + id: SpecialWeaponId; + }; +}) { + for (const key of objectDamageJsonKeyPriority[type]) { + const objectDamagesObj = objectDamages[key]; + + let ok = false; + + if (weapon.type === "MAIN") { + ok = (objectDamagesObj.mainWeaponIds as MainWeaponId[]).includes( + weapon.id + ); + } else if (weapon.type === "SUB") { + ok = (objectDamagesObj.subWeaponIds as SubWeaponId[]).includes(weapon.id); + } else if (weapon.type === "SPECIAL") { + ok = (objectDamagesObj.specialWeaponIds as SpecialWeaponId[]).includes( + weapon.id + ); + } + + if (ok) return objectDamagesObj.rates; + } + + return null; +} + +export function fallbackRates( + multipliers: ReturnType +) { + return DAMAGE_RECEIVERS.map((receiver) => ({ + target: receiver, + rate: multipliers?.find((m) => m.target === receiver)?.rate ?? 1, + })); +} diff --git a/app/modules/analyzer/index.ts b/app/modules/analyzer/index.ts index c60392b72..31afacf81 100644 --- a/app/modules/analyzer/index.ts +++ b/app/modules/analyzer/index.ts @@ -9,6 +9,8 @@ export type { export { useAnalyzeBuild } from "./useAnalyzeBuild"; -export { MAX_LDE_INTENSITY } from "./constants"; +export { useObjectDamage } from "./useObjectDamage"; + +export { MAX_LDE_INTENSITY, DAMAGE_RECEIVERS, DAMAGE_TYPE } from "./constants"; export { lastDitchEffortIntensityToAp } from "./specialEffects"; diff --git a/app/modules/analyzer/object-dmg.json b/app/modules/analyzer/object-dmg.json new file mode 100644 index 000000000..d5f332f4b --- /dev/null +++ b/app/modules/analyzer/object-dmg.json @@ -0,0 +1,5579 @@ +{ + "Blaster_BlasterMiddle": { + "mainWeaponIds": [20900, 210, 20210, 10210, 30200, 30210], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.6 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.9 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.9 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.9 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 10 + }, + { + "target": "MsnBoxS", + "rate": 10 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 1.5 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "Blaster_BlasterShort": { + "mainWeaponIds": [200, 20200, 10200], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3.6 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.1 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 10 + }, + { + "target": "MsnBoxS", + "rate": 10 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 1.5 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "Blaster_KillOneShot": { + "mainWeaponIds": [ + 20900, 220, 20220, 10220, 210, 20210, 10210, 30200, 30210, 20200, 10200 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.6 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.9 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.9 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.9 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 10 + }, + { + "target": "MsnBoxS", + "rate": 10 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 1.5 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "Blaster": { + "mainWeaponIds": [ + 250, 20250, 10250, 230, 20230, 10230, 240, 20240, 10240, 220, 20220, 10220 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.6 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.1 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 10 + }, + { + "target": "MsnBoxS", + "rate": 10 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 1.5 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "BlowerExhale_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [8, 10008], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 7 + }, + { + "target": "Chariot", + "rate": 2.8 + }, + { + "target": "Gachihoko_Barrier", + "rate": 5.6 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 5.6 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.8 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 4 + }, + { + "target": "ShockSonar", + "rate": 5.6 + }, + { + "target": "Sponge_Versus", + "rate": 5.6 + }, + { + "target": "Wsb_Flag", + "rate": 5.6 + }, + { + "target": "Wsb_Shield", + "rate": 5.6 + }, + { + "target": "Wsb_Sprinkler", + "rate": 5.6 + } + ] + }, + "BlowerInhale": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [8, 10008], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + } + ] + }, + "BombFlower": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + } + ] + }, + "Bomb_CurlingBullet": { + "mainWeaponIds": [], + "subWeaponIds": [6, 11006, 10006, 30006], + "specialWeaponIds": [], + "rates": [ + { + "target": "AttractTarget", + "rate": 1 + }, + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "Bomb_DirectHit": { + "mainWeaponIds": [], + "subWeaponIds": [ + 2, 11002, 10002, 30002, 7, 10007, 30007, 0, 21000, 20000, 11000, 10000, + 30000 + ], + "specialWeaponIds": [], + "rates": [ + { + "target": "AttractTarget", + "rate": 1 + }, + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 1 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Bomb_Fizzy": { + "mainWeaponIds": [], + "subWeaponIds": [5], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 3.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3.6 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 3.6 + }, + { + "target": "Chariot", + "rate": 1.6 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.6 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3.6 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.9 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 5 + }, + { + "target": "MsnBoxS", + "rate": 4 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "NiceBall_Armor", + "rate": 2.4 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "ShockSonar", + "rate": 1.8 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 3.2 + }, + { + "target": "Wsb_Shield", + "rate": 3.6 + }, + { + "target": "Wsb_Sprinkler", + "rate": 3.2 + } + ] + }, + "Bomb_Suction": { + "mainWeaponIds": [], + "subWeaponIds": [1, 10001], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.5 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Bomb_TorpedoBullet": { + "mainWeaponIds": [], + "subWeaponIds": [13], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 4 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 4 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 4 + }, + { + "target": "Chariot", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "NiceBall_Armor", + "rate": 2.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 3 + }, + { + "target": "Wsb_Flag", + "rate": 3 + }, + { + "target": "Wsb_Shield", + "rate": 4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 3 + } + ] + }, + "Bomb_TorpedoSplashBurst": { + "mainWeaponIds": [], + "subWeaponIds": [13], + "specialWeaponIds": [], + "rates": [ + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "Propeller", + "rate": 5 + } + ] + }, + "Bomb_Trap": { + "mainWeaponIds": [], + "subWeaponIds": [10, 10010], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnEnemyEscape", + "rate": 2.5 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Bomb": { + "mainWeaponIds": [], + "subWeaponIds": [ + 6, 11006, 10006, 30006, 2, 11002, 10002, 30002, 7, 10007, 30007, 0, 21000, + 20000, 11000, 10000, 30000 + ], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 1 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.5 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "BrushCore": { + "mainWeaponIds": [1100, 21100, 11100, 1110, 21110, 11110, 31100, 31110], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "CoopGoldenIkuraBox", + "rate": 1 + }, + { + "target": "CoopSpawnBox", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "InkRail", + "rate": 12 + }, + { + "target": "MsnBoxHard", + "rate": 0.6 + }, + { + "target": "MsnBoxL", + "rate": 100 + }, + { + "target": "MsnBoxS", + "rate": 100 + }, + { + "target": "MsnGoal", + "rate": 6 + }, + { + "target": "Sponge_Versus", + "rate": 2.189 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "BrushSplash": { + "mainWeaponIds": [1100, 21100, 11100, 1110, 21110, 11110, 31100, 31110], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.5 + }, + { + "target": "Chariot", + "rate": 1.4 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.8 + }, + { + "target": "MsnBoxHard", + "rate": 0.8 + }, + { + "target": "MsnGoal", + "rate": 4 + }, + { + "target": "NiceBall_Armor", + "rate": 1.4 + }, + { + "target": "ShockSonar", + "rate": 1.8 + }, + { + "target": "Sponge_Versus", + "rate": 1.8 + }, + { + "target": "Wsb_Flag", + "rate": 1.8 + }, + { + "target": "Wsb_Shield", + "rate": 1.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.8 + } + ] + }, + "CannonMissile": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + } + ] + }, + "ChargerFull_Light": { + "mainWeaponIds": [22900, 2050, 22050, 12050], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 0.8 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 0.9 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1.6 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 1.6 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "ChargerFull_Long": { + "mainWeaponIds": [2040, 12040, 2030, 22030, 12030], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2.4 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.3 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.3 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.725 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.35 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2.2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "ChargerFull": { + "mainWeaponIds": [ + 2060, 22060, 12060, 2020, 12020, 2010, 22010, 12010, 2000, 22000, 12000 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Charger_Light": { + "mainWeaponIds": [22900, 2050, 22050, 12050], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 0.8 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 0.9 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1.6 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 1.6 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Charger_Long": { + "mainWeaponIds": [2040, 12040, 2030, 22030, 12030], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2.4 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.35 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2.2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Charger": { + "mainWeaponIds": [ + 2060, 22060, 12060, 2020, 12020, 2010, 22010, 12010, 2000, 22000, 12000 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Chariot_Body": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [12, 20012, 10012], + "rates": [ + { + "target": "EnemyRockBall", + "rate": 10 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 1 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Shield", + "rate": 100 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "Chariot_Cannon": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [12, 20012, 10012], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 3 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 3 + }, + { + "target": "Sponge_Versus", + "rate": 3 + }, + { + "target": "Wsb_Flag", + "rate": 3 + }, + { + "target": "Wsb_Shield", + "rate": 3 + }, + { + "target": "Wsb_Sprinkler", + "rate": 3 + } + ] + }, + "Default": { + "mainWeaponIds": [ + 20900, 220, 20220, 10220, 210, 20210, 10210, 30200, 30210, 20200, 10200, + 1100, 21100, 11100, 1110, 21110, 11110, 31100, 31110, 22900, 2060, 22060, + 12060, 2050, 22050, 12050, 2040, 12040, 2030, 42030, 22030, 12030, 2020, + 12020, 2010, 22010, 12010, 2000, 22000, 12000, 40000, 1000, 21000, 11000, + 1020, 21020, 11020, 1030, 21030, 11030, 1010, 21010, 11010, 31000, 31010, + 26900, 6020, 26020, 16020, 6000, 26000, 16000, 36000, 36010, 6010, 26010, + 16010, 40040, 40042, 40041 + ], + "subWeaponIds": [8, 6, 11006, 10006, 30006, 12, 10012, 9, 11, 10100], + "specialWeaponIds": [ + 12, 20012, 10012, 15, 20, 2, 30002, 10100, 7, 20007, 10007, 30007 + ], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 1 + } + ] + }, + "EnemyFlyingHohei_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "Propeller", + "rate": 5 + } + ] + }, + "GachihokoTimeUpBurst": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 1 + } + ] + }, + "Gachihoko_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [20], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "Gachihoko_Bullet": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [20], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.75 + }, + { + "target": "Propeller", + "rate": 1 + } + ] + }, + "Geyser": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + } + ] + }, + "GoldenIkuraAttack": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + } + ] + }, + "InkStormRain": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [5, 30005], + "rates": [ + { + "target": "BlowerInhale", + "rate": 1 + } + ] + }, + "InkStorm": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [5, 10005, 30005], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.25 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 3 + }, + { + "target": "Chariot", + "rate": 2.5 + }, + { + "target": "Gachihoko_Barrier", + "rate": 5 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 5 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 5 + }, + { + "target": "NiceBall_Armor", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 3 + }, + { + "target": "Sponge_Versus", + "rate": 5 + }, + { + "target": "Wsb_Shield", + "rate": 3 + } + ] + }, + "Jetpack_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [10], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 3.5 + }, + { + "target": "Chariot", + "rate": 1.4 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.1 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnBoxL", + "rate": 2 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.8 + }, + { + "target": "Sponge_Versus", + "rate": 2.8 + }, + { + "target": "Wsb_Flag", + "rate": 2.8 + }, + { + "target": "Wsb_Shield", + "rate": 2.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.8 + } + ] + }, + "Jetpack_Bullet": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [10, 10010, 30010], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 3.5 + }, + { + "target": "Chariot", + "rate": 0.8334 + }, + { + "target": "CoopEnemySakeTamaireOneBomb", + "rate": 1 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.1 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnBoxL", + "rate": 2 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3334 + }, + { + "target": "ShockSonar", + "rate": 2.8 + }, + { + "target": "Sponge_Versus", + "rate": 2.8 + }, + { + "target": "Wsb_Flag", + "rate": 2.8 + }, + { + "target": "Wsb_Shield", + "rate": 2.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.8 + } + ] + }, + "Jetpack_Coop": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [20010], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "ShockSonar", + "rate": 1 + }, + { + "target": "Sponge_Versus", + "rate": 1 + }, + { + "target": "Wsb_Flag", + "rate": 1 + }, + { + "target": "Wsb_Shield", + "rate": 1 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1 + } + ] + }, + "Jetpack_Jet": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [10, 20010, 30010], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.8 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 2.8 + }, + { + "target": "Wsb_Flag", + "rate": 2.8 + }, + { + "target": "Wsb_Shield", + "rate": 2.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.8 + } + ] + }, + "Maneuver_Short": { + "mainWeaponIds": [5000, 25000, 15000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.1 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + } + ] + }, + "Maneuver": { + "mainWeaponIds": [ + 5030, 25030, 15030, 5020, 25020, 15020, 5010, 25010, 15010, 35000, 35010, + 5040, 25040, 15040 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + } + ] + }, + "MicroLaser": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [9, 20009, 10009], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 0.5 + }, + { + "target": "CoopEnemySakelienTowerPart", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "ShockSonar", + "rate": 2.4 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + } + ] + }, + "MissionSalmonBuddy": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnBoxL", + "rate": 1.6 + }, + { + "target": "MsnGoal", + "rate": 45 + }, + { + "target": "NiceBall_Armor", + "rate": 1 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 5 + } + ] + }, + "MovePainter_Burst": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "MsnEnemy", + "rate": 10 + }, + { + "target": "MsnEnemyShield", + "rate": 40 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 10 + }, + { + "target": "SnakeBlock", + "rate": 8 + }, + { + "target": "Sponge_Versus", + "rate": 10 + } + ] + }, + "MovePainter_Direct": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + } + ] + }, + "MultiMissile_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [4, 10004, 30004], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.75 + }, + { + "target": "MsnBoxHard", + "rate": 2.5 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "MultiMissile_Bullet": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [4, 10004, 30004], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.5 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.75 + }, + { + "target": "MsnBoxHard", + "rate": 8 + }, + { + "target": "MsnBoxS", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "NiceBall": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [6, 20006], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2.5 + }, + { + "target": "Chariot", + "rate": 2 + }, + { + "target": "CoopEnemyHardBody", + "rate": 1 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "ShockSonar", + "rate": 3 + }, + { + "target": "Sponge_Versus", + "rate": 3 + }, + { + "target": "Wsb_Shield", + "rate": 3 + } + ] + }, + "ObjectEffect_Up": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 1.3 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.1 + }, + { + "target": "InkRail", + "rate": 1.3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.1 + }, + { + "target": "ShockSonar", + "rate": 1.25 + }, + { + "target": "Sponge_Versus", + "rate": 1.3 + }, + { + "target": "Wsb_Flag", + "rate": 10 + }, + { + "target": "Wsb_Shield", + "rate": 1.5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 10 + } + ] + }, + "RollerCore": { + "mainWeaponIds": [ + 1000, 21000, 11000, 1020, 21020, 11020, 1030, 21030, 11030, 1010, 21010, + 11010, 31000, 31010 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "CoopGoldenIkuraBox", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "InkRail", + "rate": 12 + }, + { + "target": "MsnBoxHard", + "rate": 1 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 0.5 + }, + { + "target": "Sponge_Versus", + "rate": 0.344 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "RollerSplash_Compact": { + "mainWeaponIds": [1000, 21000, 11000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.8 + }, + { + "target": "Chariot", + "rate": 1.4 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.8 + }, + { + "target": "MsnBoxHard", + "rate": 1 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.43 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 2.88 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.88 + } + ] + }, + "RollerSplash_Heavy": { + "mainWeaponIds": [1020, 21020, 11020], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.5 + }, + { + "target": "Chariot", + "rate": 1.6 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.35 + }, + { + "target": "MsnBoxHard", + "rate": 1 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 1.8 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.6 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 2.88 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.88 + } + ] + }, + "RollerSplash_Hunter": { + "mainWeaponIds": [1030, 21030, 11030], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.5 + }, + { + "target": "Chariot", + "rate": 1.4 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.35 + }, + { + "target": "MsnBoxHard", + "rate": 1 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.4 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 2.88 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.88 + } + ] + }, + "RollerSplash": { + "mainWeaponIds": [1010, 21010, 11010, 31000, 31010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.78 + }, + { + "target": "Chariot", + "rate": 1.4 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.8 + }, + { + "target": "MsnBoxHard", + "rate": 1 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.43 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 2.88 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.88 + } + ] + }, + "Saber_ChargeShot": { + "mainWeaponIds": [8010, 28010, 8000, 28000, 18000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 4.8 + }, + { + "target": "Chariot", + "rate": 2.6 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 4.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnEnemyShield", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 2.6 + }, + { + "target": "ShockSonar", + "rate": 4.8 + }, + { + "target": "Sponge_Versus", + "rate": 4.8 + }, + { + "target": "Wsb_Flag", + "rate": 4.8 + }, + { + "target": "Wsb_Shield", + "rate": 4.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 4.8 + } + ] + }, + "Saber_ChargeSlash": { + "mainWeaponIds": [8010, 28010, 8000, 28000, 18000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 1.2 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.2 + }, + { + "target": "Chariot", + "rate": 0.65 + }, + { + "target": "Gachihoko_Barrier", + "rate": 0.8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.9 + }, + { + "target": "MsnBoxHard", + "rate": 10 + }, + { + "target": "MsnEnemyShield", + "rate": 10 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 4 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 0.65 + }, + { + "target": "ShockSonar", + "rate": 1.2 + }, + { + "target": "Sponge_Versus", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 1.2 + }, + { + "target": "Wsb_Shield", + "rate": 1.2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.2 + } + ] + }, + "Saber_Shot": { + "mainWeaponIds": [8010, 28010, 8000, 28000, 18000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 4.8 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 4.8 + }, + { + "target": "Chariot", + "rate": 2.6 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 4.8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 3.6 + }, + { + "target": "MsnEnemyShield", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 2.6 + }, + { + "target": "ShockSonar", + "rate": 4.8 + }, + { + "target": "Sponge_Versus", + "rate": 4.8 + }, + { + "target": "Wsb_Flag", + "rate": 4.8 + }, + { + "target": "Wsb_Shield", + "rate": 4.8 + }, + { + "target": "Wsb_Sprinkler", + "rate": 4.8 + } + ] + }, + "Saber_Slash": { + "mainWeaponIds": [8010, 28010, 8000, 28000, 18000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2.4 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.6 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.8 + }, + { + "target": "MsnBoxHard", + "rate": 3 + }, + { + "target": "MsnEnemyShield", + "rate": 10 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "ShockSonar", + "rate": 2.4 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "SakerocketBullet": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Chariot", + "rate": 2.5 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Default", + "rate": 1 + }, + { + "target": "MsnSharkKing", + "rate": 1 + }, + { + "target": "ShockSonar", + "rate": 1 + } + ] + }, + "ShelterCanopy_Compact": { + "mainWeaponIds": [6020, 26020, 16020], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 5 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Shield", + "rate": 1 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "ShelterCanopy_Wide": { + "mainWeaponIds": [6010, 26010, 16010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 5 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Shield", + "rate": 1 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "ShelterCanopy": { + "mainWeaponIds": [26900, 6000, 26000, 16000, 36000, 36010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 5 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "Propeller", + "rate": 3 + }, + { + "target": "ShockSonar", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Shield", + "rate": 1 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "ShelterShot_Compact": { + "mainWeaponIds": [6020, 26020, 16020], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "InkRail", + "rate": 1.175 + }, + { + "target": "NiceBall_Armor", + "rate": 1.56 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.4 + }, + { + "target": "Sponge_Versus", + "rate": 2.88 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "ShelterShot_Wide": { + "mainWeaponIds": [6010, 26010, 16010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.4 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "ShelterShot": { + "mainWeaponIds": [26900, 6000, 26000, 16000, 36000, 36010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 2.4 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 1.3 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2.4 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.4 + }, + { + "target": "Wsb_Shield", + "rate": 2.4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.4 + } + ] + }, + "Shield": { + "mainWeaponIds": [], + "subWeaponIds": [4], + "specialWeaponIds": [], + "rates": [ + { + "target": "Gachihoko_Barrier", + "rate": 0.2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 0.2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.2 + }, + { + "target": "NiceBall_Armor", + "rate": 3.75 + }, + { + "target": "Sponge_Versus", + "rate": 0.2 + } + ] + }, + "ShockSonar_Wave": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [7, 20007, 10007, 30007], + "rates": [ + { + "target": "Chariot", + "rate": 2 + }, + { + "target": "Gachihoko_Barrier", + "rate": 8 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 8 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 8 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 100 + }, + { + "target": "Wsb_Shield", + "rate": 100 + }, + { + "target": "Wsb_Sprinkler", + "rate": 100 + } + ] + }, + "Shooter_Blaze": { + "mainWeaponIds": [30, 20030, 10030], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.1 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + } + ] + }, + "Shooter_Expert": { + "mainWeaponIds": [70, 20070, 10070], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + } + ] + }, + "Shooter_First": { + "mainWeaponIds": [10, 20010, 10010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.1 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + } + ] + }, + "Shooter_FlashRepeat": { + "mainWeaponIds": [400, 20400, 10400], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + }, + { + "target": "ShockSonar", + "rate": 1.1 + }, + { + "target": "Wsb_Shield", + "rate": 1.1 + } + ] + }, + "Shooter_Flash": { + "mainWeaponIds": [400, 20400, 10400], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + }, + { + "target": "ShockSonar", + "rate": 1.1 + }, + { + "target": "Wsb_Shield", + "rate": 1.1 + } + ] + }, + "Shooter_Gravity": { + "mainWeaponIds": [50], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.85 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + }, + { + "target": "ShockSonar", + "rate": 1.1 + }, + { + "target": "Wsb_Shield", + "rate": 1.1 + } + ] + }, + "Shooter_Heavy": { + "mainWeaponIds": [80], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.1 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + }, + { + "target": "ShockSonar", + "rate": 1.1 + }, + { + "target": "Wsb_Shield", + "rate": 1.1 + } + ] + }, + "Shooter_Long": { + "mainWeaponIds": [90, 20090, 10090], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + } + ] + }, + "Shooter_Precision": { + "mainWeaponIds": [20, 20020, 10020], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.1 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + } + ] + }, + "Shooter_Short": { + "mainWeaponIds": [0, 20000, 10000], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.1 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + }, + { + "target": "Sponge_Versus", + "rate": 1 + } + ] + }, + "Shooter_TripleMiddle": { + "mainWeaponIds": [310], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.8 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.8 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.8 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.2 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + }, + { + "target": "Sponge_Versus", + "rate": 1.2 + }, + { + "target": "Wsb_Flag", + "rate": 1.2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.2 + } + ] + }, + "Shooter_TripleQuick": { + "mainWeaponIds": [300], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.85 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.85 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.85 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.15 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.15 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.15 + }, + { + "target": "NiceBall_Armor", + "rate": 0.65 + }, + { + "target": "Sponge_Versus", + "rate": 1.1 + }, + { + "target": "Wsb_Flag", + "rate": 1.2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.2 + } + ] + }, + "Shooter": { + "mainWeaponIds": [ + 400, 20400, 10400, 20050, 10050, 20080, 10080, 10900, 10910, 10920, 40, + 20040, 45, 10040, 60, 20060, 10060, 30000, 30010, 20310, 10310, 20300, + 10300 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.7 + } + ] + }, + "Skewer_Body": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [13, 20013, 10013], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 100 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 100 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 100 + }, + { + "target": "Chariot", + "rate": 7.28 + }, + { + "target": "CoopEnemyHardBody", + "rate": 1 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 0.45 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 5 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 5 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 7.5 + }, + { + "target": "ShockSonar", + "rate": 5 + }, + { + "target": "Wsb_Flag", + "rate": 5 + }, + { + "target": "Wsb_Shield", + "rate": 5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 5 + } + ] + }, + "Skewer": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [13, 20013, 10013], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 9.5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 6 + }, + { + "target": "Chariot", + "rate": 7.28 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 0.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 5 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 5 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 5 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 7.5 + }, + { + "target": "ShockSonar", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 5 + }, + { + "target": "Wsb_Flag", + "rate": 5 + }, + { + "target": "Wsb_Shield", + "rate": 5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 5 + } + ] + }, + "Slosher_Bathtub": { + "mainWeaponIds": [3030, 23030, 13030], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 1.6 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.6 + }, + { + "target": "Default", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.5 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.5 + } + ] + }, + "Slosher_Bear": { + "mainWeaponIds": [23900], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemyHardBody", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1.25 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.5 + }, + { + "target": "Wsb_Shield", + "rate": 2.5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.5 + } + ] + }, + "Slosher_WashtubBombCore": { + "mainWeaponIds": [3040, 23040, 13040], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakeTamaireOneBomb", + "rate": 1 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3.2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.8 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 4 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 4 + } + ] + }, + "Slosher_Washtub": { + "mainWeaponIds": [3040, 23040, 13040], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.6 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3.6 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.9 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1.25 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 5 + }, + { + "target": "Wsb_Shield", + "rate": 2.5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 5 + } + ] + }, + "Slosher": { + "mainWeaponIds": [ + 3010, 23010, 13010, 3020, 23020, 13020, 33000, 33010, 3000, 23000, 13000 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienTowerUnite", + "rate": 1 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2.4 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.4 + }, + { + "target": "MsnBoxHard", + "rate": 1.5 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1.25 + }, + { + "target": "Sponge_Versus", + "rate": 2.4 + }, + { + "target": "Wsb_Flag", + "rate": 2.5 + }, + { + "target": "Wsb_Shield", + "rate": 2.5 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2.5 + } + ] + }, + "Spinner": { + "mainWeaponIds": [ + 4030, 24030, 14030, 4020, 24020, 14020, 4000, 24000, 14000, 4040, 24040, + 14040, 4010, 24010, 14010 + ], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 0.7 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 0.7 + }, + { + "target": "Chariot", + "rate": 1 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1 + }, + { + "target": "NiceBall_Armor", + "rate": 0.6 + } + ] + }, + "Sprinkler": { + "mainWeaponIds": [], + "subWeaponIds": [3], + "specialWeaponIds": [], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.5 + }, + { + "target": "Gachihoko_Barrier", + "rate": 0.6 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 0.6 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 0.6 + }, + { + "target": "Sponge_Versus", + "rate": 0.6 + } + ] + }, + "Stringer_Short": { + "mainWeaponIds": [7020, 27020], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 1.5556 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2.3333 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 1.5556 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.5556 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.5556 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5556 + }, + { + "target": "ShockSonar", + "rate": 1.5556 + }, + { + "target": "Sponge_Versus", + "rate": 1.5556 + }, + { + "target": "Wsb_Flag", + "rate": 1.5556 + }, + { + "target": "Wsb_Shield", + "rate": 1.5556 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.5556 + } + ] + }, + "Stringer": { + "mainWeaponIds": [27900, 7010, 27010, 17010], + "subWeaponIds": [], + "specialWeaponIds": [], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 1.3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBoxHard", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 3 + }, + { + "target": "NiceBall_Armor", + "rate": 1.3 + }, + { + "target": "Propeller", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "SuperHook": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [3, 10003], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBoxHard", + "rate": 2 + }, + { + "target": "MsnEnemy", + "rate": 2 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 2 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "SnakeBlock", + "rate": 12 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "SuperLanding": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [101, 20101, 30101], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.6 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 10 + }, + { + "target": "EnemyRockBall", + "rate": 2 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "MsnBossWeak", + "rate": 5 + }, + { + "target": "MsnBoxHard", + "rate": 5 + }, + { + "target": "MsnBoxL", + "rate": 2.5 + }, + { + "target": "MsnBoxS", + "rate": 2 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + }, + { + "target": "MsnEnemyTakopodDEV", + "rate": 4 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "MsnLeaderMoray", + "rate": 2 + }, + { + "target": "MsnMantaShadow", + "rate": 2 + }, + { + "target": "MsnRailKingHand", + "rate": 5 + }, + { + "target": "MsnSharkKing", + "rate": 2.5 + }, + { + "target": "NiceBall_Armor", + "rate": 1.5 + }, + { + "target": "Propeller", + "rate": 5 + }, + { + "target": "SnakeBlock", + "rate": 3 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "TripleTornado": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [14, 20014, 10014], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 2 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 2 + }, + { + "target": "Chariot", + "rate": 2 + }, + { + "target": "CoopEnemyHardBody", + "rate": 1 + }, + { + "target": "CoopEnemySakeTamaire", + "rate": 0.8 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2 + }, + { + "target": "NiceBall_Armor", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 2 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 2 + }, + { + "target": "Wsb_Sprinkler", + "rate": 2 + } + ] + }, + "UltraShot": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [1, 20001, 10001], + "rates": [ + { + "target": "BlowoutsRoll", + "rate": 3 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 6 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 6 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 6 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "CoopEnemySakelienCupTwins", + "rate": 1 + }, + { + "target": "EnemyRockBall", + "rate": 3 + }, + { + "target": "Gachihoko_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 2 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.5 + }, + { + "target": "MsnBoxHard", + "rate": 10 + }, + { + "target": "MsnEnemyShield", + "rate": 20 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 2 + }, + { + "target": "ShockSonar", + "rate": 1 + }, + { + "target": "SnakeBlock", + "rate": 5 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Shield", + "rate": 6 + } + ] + }, + "UltraStamp_Swing": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [11, 10011], + "rates": [ + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 20 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 20 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 20 + }, + { + "target": "Chariot", + "rate": 1.5 + }, + { + "target": "EnemyRockBall", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 3 + }, + { + "target": "MsnEnemyShield", + "rate": 10 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.8 + }, + { + "target": "ShockSonar", + "rate": 20 + }, + { + "target": "Sponge_Versus", + "rate": 2 + }, + { + "target": "Wsb_Flag", + "rate": 3 + }, + { + "target": "Wsb_Shield", + "rate": 20 + }, + { + "target": "Wsb_Sprinkler", + "rate": 3 + } + ] + }, + "UltraStamp_Throw_BombCore": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [11, 10011], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 1 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 5 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 5 + }, + { + "target": "Chariot", + "rate": 2 + }, + { + "target": "EnemyRockBall", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 3.5 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 3.5 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 2.625 + }, + { + "target": "NiceBall_Armor", + "rate": 2.5 + }, + { + "target": "ShockSonar", + "rate": 4 + }, + { + "target": "Sponge_Versus", + "rate": 3 + }, + { + "target": "Wsb_Flag", + "rate": 3 + }, + { + "target": "Wsb_Shield", + "rate": 4 + }, + { + "target": "Wsb_Sprinkler", + "rate": 3 + } + ] + }, + "UltraStamp_Throw": { + "mainWeaponIds": [], + "subWeaponIds": [], + "specialWeaponIds": [11, 10011], + "rates": [ + { + "target": "Bomb_TorpedoBullet", + "rate": 0.545 + }, + { + "target": "BulletUmbrellaCanopyCompact", + "rate": 4.091 + }, + { + "target": "BulletUmbrellaCanopyNormal", + "rate": 4.091 + }, + { + "target": "BulletUmbrellaCanopyWide", + "rate": 4.091 + }, + { + "target": "Chariot", + "rate": 1.091 + }, + { + "target": "EnemyRockBall", + "rate": 10 + }, + { + "target": "Gachihoko_Barrier", + "rate": 1.909 + }, + { + "target": "GreatBarrier_Barrier", + "rate": 1.909 + }, + { + "target": "GreatBarrier_WeakPoint", + "rate": 1.4318 + }, + { + "target": "MsnGoal", + "rate": 10 + }, + { + "target": "NiceBall_Armor", + "rate": 1.364 + }, + { + "target": "ShockSonar", + "rate": 2.182 + }, + { + "target": "Sponge_Versus", + "rate": 1.636 + }, + { + "target": "Wsb_Flag", + "rate": 1.636 + }, + { + "target": "Wsb_Shield", + "rate": 2.182 + }, + { + "target": "Wsb_Sprinkler", + "rate": 1.636 + } + ] + } +} diff --git a/app/modules/analyzer/stats.ts b/app/modules/analyzer/stats.ts index beb7affba..39812f140 100644 --- a/app/modules/analyzer/stats.ts +++ b/app/modules/analyzer/stats.ts @@ -10,7 +10,7 @@ import type { StatFunctionInput, SubWeaponParams, } from "./types"; -import { DAMAGE_TYPE } from "./types"; +import { DAMAGE_TYPE } from "./constants"; import { INK_CONSUME_TYPES } from "./types"; import invariant from "tiny-invariant"; import { @@ -24,13 +24,13 @@ import { semiRandomId } from "~/utils/strings"; import { roundToTwoDecimalPlaces } from "~/utils/number"; export function buildStats({ - abilityPoints, weaponSplId, - mainOnlyAbilities, + abilityPoints = new Map(), + mainOnlyAbilities = [], }: { - abilityPoints: AbilityPoints; weaponSplId: MainWeaponId; - mainOnlyAbilities: Array; + abilityPoints?: AbilityPoints; + mainOnlyAbilities?: Array; }): AnalyzedBuild { const mainWeaponParams = weaponParams().mainWeapons[weaponSplId]; invariant(mainWeaponParams, `Weapon with splId ${weaponSplId} not found`); diff --git a/app/modules/analyzer/types.ts b/app/modules/analyzer/types.ts index cb372e50e..3021f2e9d 100644 --- a/app/modules/analyzer/types.ts +++ b/app/modules/analyzer/types.ts @@ -7,6 +7,7 @@ import type { import type { SPECIAL_EFFECTS } from "./specialEffects"; import type weaponParams from "./weapon-params.json"; import type abilityValues from "./ability-values.json"; +import type { DAMAGE_RECEIVERS, DAMAGE_TYPE } from "./constants"; type Overwrites = Record< string, @@ -159,20 +160,10 @@ export interface FullInkTankOption { type: InkConsumeType; } -export const DAMAGE_TYPE = [ - "NORMAL_MIN", - "NORMAL_MAX", - "DIRECT", - "FULL_CHARGE", - "MAX_CHARGE", - "TAP_SHOT", - "DISTANCE", - "BOMB_NORMAL", - "BOMB_DIRECT", -] as const; - export type DamageType = typeof DAMAGE_TYPE[number]; +export type DamageReceiver = typeof DAMAGE_RECEIVERS[number]; + export interface Damage { value: number; type: DamageType; diff --git a/app/modules/analyzer/useAnalyzeBuild.ts b/app/modules/analyzer/useAnalyzeBuild.ts index 593653042..a1f8382fd 100644 --- a/app/modules/analyzer/useAnalyzeBuild.ts +++ b/app/modules/analyzer/useAnalyzeBuild.ts @@ -3,10 +3,8 @@ import { EMPTY_BUILD } from "~/constants"; import { type BuildAbilitiesTupleWithUnknown, type MainWeaponId, - mainWeaponIds, abilities, isAbility, - weaponCategories, } from "../in-game-lists"; import type { Ability, @@ -17,7 +15,10 @@ import { MAX_LDE_INTENSITY } from "./constants"; import { applySpecialEffects, SPECIAL_EFFECTS } from "./specialEffects"; import { buildStats } from "./stats"; import type { SpecialEffectType } from "./types"; -import { buildToAbilityPoints } from "./utils"; +import { + buildToAbilityPoints, + validatedWeaponIdFromSearchParams, +} from "./utils"; const UNKNOWN_SHORT = "U"; @@ -88,20 +89,6 @@ function serializeBuild(build: BuildAbilitiesTupleWithUnknown) { .join(","); } -function validatedWeaponIdFromSearchParams( - searchParams: URLSearchParams -): MainWeaponId { - const weaponId = searchParams.get("weapon") - ? Number(searchParams.get("weapon")) - : null; - - if (mainWeaponIds.includes(weaponId as any)) { - return weaponId as MainWeaponId; - } - - return weaponCategories[0].weaponIds[0]; -} - function validatedBuildFromSearchParams( searchParams: URLSearchParams ): BuildAbilitiesTupleWithUnknown { diff --git a/app/modules/analyzer/useObjectDamage.ts b/app/modules/analyzer/useObjectDamage.ts new file mode 100644 index 000000000..02ba6bcfe --- /dev/null +++ b/app/modules/analyzer/useObjectDamage.ts @@ -0,0 +1,48 @@ +import { useSearchParams } from "@remix-run/react"; +import { type MainWeaponId } from "../in-game-lists"; +import { damageTypeToMultipliers, fallbackRates } from "./damageMultipliers"; +import { buildStats } from "./stats"; +import { validatedWeaponIdFromSearchParams } from "./utils"; + +export function useObjectDamage() { + const [searchParams, setSearchParams] = useSearchParams(); + + const mainWeaponId = validatedWeaponIdFromSearchParams(searchParams); + + const handleChange = ({ + newMainWeaponId = mainWeaponId, + }: { + newMainWeaponId?: MainWeaponId; + }) => { + setSearchParams( + { + weapon: String(newMainWeaponId), + }, + { replace: true, state: { scroll: false } } + ); + }; + + const analyzed = buildStats({ + weaponSplId: mainWeaponId, + }); + + const multipliers = Object.fromEntries( + analyzed.stats.damages.map((damage) => { + return [ + damage.type, + fallbackRates( + damageTypeToMultipliers({ + type: damage.type, + weapon: { type: "MAIN", id: mainWeaponId }, + }) + ), + ]; + }) + ); + + return { + mainWeaponId, + handleChange, + multipliers, + }; +} diff --git a/app/modules/analyzer/utils.ts b/app/modules/analyzer/utils.ts index f36064971..8dcff6526 100644 --- a/app/modules/analyzer/utils.ts +++ b/app/modules/analyzer/utils.ts @@ -1,4 +1,5 @@ import type { Ability, BuildAbilitiesTupleWithUnknown } from "../in-game-lists"; +import { mainWeaponIds, weaponCategories } from "../in-game-lists"; import { abilities } from "../in-game-lists"; import weaponParamsJson from "./weapon-params.json"; import abilityValuesJson from "./ability-values.json"; @@ -10,7 +11,7 @@ import type { SubWeaponParams, } from "./types"; import invariant from "tiny-invariant"; -import type { AbilityWithUnknown } from "../in-game-lists/types"; +import type { AbilityWithUnknown, MainWeaponId } from "../in-game-lists/types"; export function weaponParams(): ParamsJson { return weaponParamsJson as ParamsJson; @@ -150,3 +151,17 @@ export function hasEffect({ return high !== mid || mid !== low; } + +export function validatedWeaponIdFromSearchParams( + searchParams: URLSearchParams +): MainWeaponId { + const weaponId = searchParams.get("weapon") + ? Number(searchParams.get("weapon")) + : null; + + if (mainWeaponIds.includes(weaponId as any)) { + return weaponId as MainWeaponId; + } + + return weaponCategories[0].weaponIds[0]; +} diff --git a/app/routes/object-damage.tsx b/app/routes/object-damage.tsx new file mode 100644 index 000000000..4cdfe3aea --- /dev/null +++ b/app/routes/object-damage.tsx @@ -0,0 +1,34 @@ +import { WeaponCombobox } from "~/components/Combobox"; +import { Main } from "~/components/Main"; +import { useObjectDamage } from "~/modules/analyzer"; +import type { MainWeaponId } from "~/modules/in-game-lists"; + +export const handle = { + i18n: ["weapons"], +}; + +export default function ObjectDamagePage() { + const { mainWeaponId, handleChange, multipliers } = useObjectDamage(); + + if (process.env.NODE_ENV !== "development") { + return

WIP :)
; + } + + return ( +
+ + opt && + handleChange({ + newMainWeaponId: Number(opt.value) as MainWeaponId, + }) + } + className="w-full-important" + clearsInputOnFocus + /> +
{JSON.stringify(multipliers, null, 2)}
+
+ ); +} diff --git a/package.json b/package.json index 5e8096080..0f27bcfd0 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "rename-badge": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/rename-badge.ts", "create-weapon-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-weapon-json.ts", "create-gear-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-gear-json.ts", + "create-object-dmg-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-object-dmg-json.ts", "create-misc-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-misc-json.ts", "create-analyzer-json": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/create-analyzer-json.ts", "check-translation-jsons": "node --experimental-specifier-resolution=node --loader ts-node/esm -r tsconfig-paths/register scripts/check-translation-jsons.ts && npm run prettier:write", diff --git a/scripts/create-object-dmg-json.ts b/scripts/create-object-dmg-json.ts new file mode 100644 index 000000000..3cf41f486 --- /dev/null +++ b/scripts/create-object-dmg-json.ts @@ -0,0 +1,55 @@ +/* eslint-disable */ +// @ts-nocheck + +// 1) WeaponInfoMain.json inside dicts +// 2) WeaponInfoSub.json inside dicts +// 3) WeaponInfoSpecial.json inside dicts +// 4) misc/spl__DamageRateInfoConfig.pp__CombinationDataTableData.json +import params from "./dicts/spl__DamageRateInfoConfig.pp__CombinationDataTableData.json"; +import weapons from "./dicts/WeaponInfoMain.json"; +import subWeapons from "./dicts/WeaponInfoSub.json"; +import specialWeapons from "./dicts/WeaponInfoSpecial.json"; +import fs from "node:fs"; +import path from "node:path"; + +const OUTPUT_DIR_PATH = path.join(__dirname, "output"); + +const weaponParamsToWeaponIds = ( + params: typeof weapons | typeof subWeapons | typeof specialWeapons, + key: string +) => { + return params + .filter((param) => { + return ( + param.DefaultDamageRateInfoRow === key || + param.ExtraDamageRateInfoRowSet?.some( + (row) => row.DamageRateInfoRow === key + ) + ); + }) + .map((weapon) => weapon.Id); +}; + +const result = {}; +for (const cell of Object.values(params.CellList)) { + if (!cell.DamageRate) continue; + + if (!result[cell.RowKey]) { + result[cell.RowKey] = { + mainWeaponIds: weaponParamsToWeaponIds(weapons, cell.RowKey), + subWeaponIds: weaponParamsToWeaponIds(subWeapons, cell.RowKey), + specialWeaponIds: weaponParamsToWeaponIds(specialWeapons, cell.RowKey), + rates: [], + }; + } + + result[cell.RowKey].rates.push({ + target: cell.ColumnKey, + rate: cell.DamageRate, + }); +} + +fs.writeFileSync( + path.join(OUTPUT_DIR_PATH, "object-dmg.json"), + JSON.stringify(result, null, 2) +); From 0af593623ba1c7df7b2b26e9b6975dd4bfe5bed8 Mon Sep 17 00:00:00 2001 From: Remmy Cat Stock <3317423+remmycat@users.noreply.github.com> Date: Tue, 18 Oct 2022 19:12:56 +0200 Subject: [PATCH 14/14] Wrap overflowing plus comments --- app/styles/plus.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/styles/plus.css b/app/styles/plus.css index efcbef581..29e6e402c 100644 --- a/app/styles/plus.css +++ b/app/styles/plus.css @@ -61,6 +61,8 @@ .plus__comment { white-space: pre-wrap; + min-width: auto; + overflow-wrap: break-word; } .plus__comment-time {