diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index af842a8e16..3edecfe1b6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -29,6 +29,9 @@ packages/features/ee/impersonation @sean-brydon @calcom/core packages/features/ee/payments @alannnc @calcom/core packages/features/ee/workflows @CarinaWolli @calcom/core packages/features/tips @PeerRich @calcom/core -packages/ui @calcom/ui +# Trivial changes should be mergeable by core team as well +# Major UI changes must be reviewed by UI team +# Critical changes even if major can still be merged by core team if needed. +packages/ui @calcom/ui @calcom/core packages/config @calcom/core packages/app-store/routing-forms @hariombalhara @calcom/core diff --git a/.infisical.json b/.infisical.json deleted file mode 100644 index c7fe4ccd1f..0000000000 --- a/.infisical.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "workspaceId": "63ea8121b6e2b0543ba79616", - "defaultEnvironment": "dev", - "gitBranchToEnvironmentMapping": { - "main": "staging", - "production": "prod" - } -} diff --git a/apps/docs/pages/availability.mdx b/apps/docs/pages/availability.mdx index 878d38a398..413101f259 100644 --- a/apps/docs/pages/availability.mdx +++ b/apps/docs/pages/availability.mdx @@ -21,7 +21,7 @@ This will tell you when your calendar shows you as busy, so you can understand w 2. To the right of your screen a box saying 'Something doesn't look right?' will appear. Press the button 'Launch Troubleshooter'. 3. After pressing this, your availability will appear according to your calendar and inform you of the times booked up for that day! -By doing this you will know understand why certain times are available and others are blocked. +By doing this you will now understand why certain times are available and others are blocked. ## In team settings availability set to only Mondays but the calendar shows availability on other days as well It’s showing as available on days other than Monday because only you have set your availability to only Mondays, whereas the rest of the team haven't made that setting. diff --git a/apps/docs/pages/faq.mdx b/apps/docs/pages/faq.mdx index a7305ea3e3..dcc176fc30 100644 --- a/apps/docs/pages/faq.mdx +++ b/apps/docs/pages/faq.mdx @@ -12,6 +12,6 @@ As it stands this is currently not possible. We always keep an eye on the limita ## How to quickly block further bookings? 1. Click on the lower left corner of your dashboard where your username is displayed. -2. That initates a dropdown menu. Click on `Set youself as away`. +2. That initiates a dropdown menu. Click on `Set yourself as away`. This is a method to disable your Cal.com account which won't allow any bookings once initiated. However, bookings made before turning on *away mode* will still be booked. diff --git a/apps/web/components/apps/App.tsx b/apps/web/components/apps/App.tsx index 5f2306b2b3..3f866ebee5 100644 --- a/apps/web/components/apps/App.tsx +++ b/apps/web/components/apps/App.tsx @@ -35,7 +35,6 @@ const Component = ({ email, tos, privacy, - isProOnly, teamsPlanRequired, descriptionItems, isTemplate, @@ -151,7 +150,6 @@ const Component = ({ {!isGlobal && ( { @@ -192,7 +190,6 @@ const Component = ({ ) : ( { @@ -362,7 +359,6 @@ export default function App(props: { tos?: string; privacy?: string; licenseRequired: AppType["licenseRequired"]; - isProOnly: AppType["isProOnly"]; teamsPlanRequired: AppType["teamsPlanRequired"]; descriptionItems?: Array }>; isTemplate?: boolean; diff --git a/apps/web/components/booking/AvailableTimes.tsx b/apps/web/components/booking/AvailableTimes.tsx index 4d4eebb6ad..178efafe99 100644 --- a/apps/web/components/booking/AvailableTimes.tsx +++ b/apps/web/components/booking/AvailableTimes.tsx @@ -176,7 +176,10 @@ const AvailableTimes: FC = ({ : "text-emerald-400" } text-sm`}> {slot.attendees ? seatsPerTimeSlot - slot.attendees : seatsPerTimeSlot} /{" "} - {seatsPerTimeSlot} {t("seats_available")} + {seatsPerTimeSlot}{" "} + {t("seats_available", { + count: slot.attendees ? seatsPerTimeSlot - slot.attendees : seatsPerTimeSlot, + })}

)} diff --git a/apps/web/components/booking/pages/BookingPage.tsx b/apps/web/components/booking/pages/BookingPage.tsx index bb2c42ab83..2dc2e706ba 100644 --- a/apps/web/components/booking/pages/BookingPage.tsx +++ b/apps/web/components/booking/pages/BookingPage.tsx @@ -22,6 +22,7 @@ import { useIsEmbed, } from "@calcom/embed-core/embed-iframe"; import { createBooking, createRecurringBooking } from "@calcom/features/bookings/lib"; +import { useTimePreferences } from "@calcom/features/bookings/lib"; import { getBookingFieldsWithSystemFields, SystemField, @@ -39,7 +40,7 @@ import { useLocale } from "@calcom/lib/hooks/useLocale"; import useTheme from "@calcom/lib/hooks/useTheme"; import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery"; import { HttpError } from "@calcom/lib/http-error"; -import { parseDate, parseRecurringDates } from "@calcom/lib/parse-dates"; +import { parseDate, parseDateTimeWithTimeZone, parseRecurringDates } from "@calcom/lib/parse-dates"; import { getEveryFreqFor } from "@calcom/lib/recurringStrings"; import { telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry"; import { TimeFormat } from "@calcom/lib/timeFormat"; @@ -231,6 +232,8 @@ const BookingPage = ({ {} ); + const { timezone } = useTimePreferences(); + const reserveSlot = () => { if (queryDuration) { reserveSlotMutation.mutate({ @@ -602,7 +605,7 @@ const BookingPage = ({ {isClientTimezoneAvailable && typeof booking.startTime === "string" && - parseDate(dayjs(booking.startTime), i18n.language, { + parseDateTimeWithTimeZone(booking.startTime, i18n.language, timezone, { selectedTimeFormat: timeFormat, })}

@@ -634,7 +637,12 @@ const BookingPage = ({ {currentSlotBooking ? eventType.seatsPerTimeSlot - currentSlotBooking.attendees.length : eventType.seatsPerTimeSlot}{" "} - / {eventType.seatsPerTimeSlot} {t("seats_available")} + / {eventType.seatsPerTimeSlot}{" "} + {t("seats_available", { + count: currentSlotBooking + ? eventType.seatsPerTimeSlot - currentSlotBooking.attendees.length + : eventType.seatsPerTimeSlot, + })}

)} diff --git a/apps/web/components/eventtype/EventTeamWebhooksTab.tsx b/apps/web/components/eventtype/EventWebhooksTab.tsx similarity index 88% rename from apps/web/components/eventtype/EventTeamWebhooksTab.tsx rename to apps/web/components/eventtype/EventWebhooksTab.tsx index ec1a30ad3d..59f7bc7d36 100644 --- a/apps/web/components/eventtype/EventTeamWebhooksTab.tsx +++ b/apps/web/components/eventtype/EventWebhooksTab.tsx @@ -7,16 +7,13 @@ import useLockedFieldsManager from "@calcom/features/ee/managed-event-types/hook import { WebhookForm } from "@calcom/features/webhooks/components"; import type { WebhookFormSubmitData } from "@calcom/features/webhooks/components/WebhookForm"; import WebhookListItem from "@calcom/features/webhooks/components/WebhookListItem"; -import { APP_NAME } from "@calcom/lib/constants"; +import { subscriberUrlReserved } from "@calcom/features/webhooks/lib/subscriberUrlReserved"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; import { Alert, Button, Dialog, DialogContent, EmptyScreen, showToast } from "@calcom/ui"; import { Plus, Lock } from "@calcom/ui/components/icon"; -export const EventTeamWebhooksTab = ({ - eventType, - team, -}: Pick) => { +export const EventWebhooksTab = ({ eventType }: Pick) => { const { t } = useLocale(); const utils = trpc.useContext(); @@ -32,12 +29,6 @@ export const EventTeamWebhooksTab = ({ const [editModalOpen, setEditModalOpen] = useState(false); const [webhookToEdit, setWebhookToEdit] = useState(); - const subscriberUrlReserved = (subscriberUrl: string, id?: string): boolean => { - return !!webhooks?.find( - (webhook) => webhook.subscriberUrl === subscriberUrl && (!id || webhook.id !== id) - ); - }; - const editWebhookMutation = trpc.viewer.webhook.edit.useMutation({ async onSuccess() { setEditModalOpen(false); @@ -61,7 +52,14 @@ export const EventTeamWebhooksTab = ({ }); const onCreateWebhook = async (values: WebhookFormSubmitData) => { - if (subscriberUrlReserved(values.subscriberUrl, values.id)) { + if ( + subscriberUrlReserved({ + subscriberUrl: values.subscriberUrl, + id: values.id, + webhooks, + eventTypeId: eventType.id, + }) + ) { showToast(t("webhook_subscriber_url_reserved"), "error"); return; } @@ -102,7 +100,7 @@ export const EventTeamWebhooksTab = ({ return (
- {team && webhooks && !isLoading && ( + {webhooks && !isLoading && ( <>
@@ -139,7 +137,7 @@ export const EventTeamWebhooksTab = ({ @@ -162,6 +160,7 @@ export const EventTeamWebhooksTab = ({ title={t("create_webhook")} description={t("create_webhook_team_event_type")}> setCreateModalOpen(false)} apps={installedApps?.items.map((app) => app.slug)} @@ -172,11 +171,19 @@ export const EventTeamWebhooksTab = ({ !isOpen && setEditModalOpen(false)}> app.slug)} onCancel={() => setEditModalOpen(false)} onSubmit={(values: WebhookFormSubmitData) => { - if (subscriberUrlReserved(values.subscriberUrl, webhookToEdit?.id || "")) { + if ( + subscriberUrlReserved({ + subscriberUrl: values.subscriberUrl, + id: webhookToEdit?.id, + webhooks, + eventTypeId: eventType.id, + }) + ) { showToast(t("webhook_subscriber_url_reserved"), "error"); return; } diff --git a/apps/web/components/team/screens/Team.tsx b/apps/web/components/team/screens/Team.tsx index 5cbf3fe8ef..6503636861 100644 --- a/apps/web/components/team/screens/Team.tsx +++ b/apps/web/components/team/screens/Team.tsx @@ -1,4 +1,5 @@ import Link from "next/link"; +import { useRouter } from "next/router"; import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; @@ -14,11 +15,14 @@ type TeamTypeWithSafeHtml = Omit & { members: MemberType[] const Member = ({ member, teamName }: { member: MemberType; teamName: string | null }) => { const { t } = useLocale(); - + const router = useRouter(); const isBioEmpty = !member.bio || !member.bio.replace("


", "").length; + // slug is a route parameter, we don't want to forward it to the next route + const { slug: _slug, ...queryParamsToForward } = router.query; + return ( - +
{ const eventTrigger: WebhookTriggerEvents = "RECORDING_READY"; // Send Webhook call if hooked to BOOKING.RECORDING_READY const subscriberOptions = { - userId: booking.userId ?? 0, - eventTypeId: booking.eventTypeId ?? 0, + userId: booking.userId, + eventTypeId: booking.eventTypeId, triggerEvent: eventTrigger, + teamId: booking.teamId, }; const webhooks = await getWebhooks(subscriberOptions); @@ -87,6 +89,11 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { location: true, isRecorded: true, eventTypeId: true, + eventType: { + select: { + teamId: true, + }, + }, user: { select: { id: true, @@ -164,7 +171,11 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { await triggerWebhook({ evt, downloadLink, - booking: { userId: booking?.user?.id, eventTypeId: booking.eventTypeId }, + booking: { + userId: booking?.user?.id, + eventTypeId: booking.eventTypeId, + teamId: booking.eventType?.teamId, + }, }); const isSendingEmailsAllowed = IS_SELF_HOSTED || session?.user?.belongsToActiveTeam; diff --git a/apps/web/pages/api/teams/googleworkspace/add.ts b/apps/web/pages/api/teams/googleworkspace/add.ts new file mode 100644 index 0000000000..2955a03454 --- /dev/null +++ b/apps/web/pages/api/teams/googleworkspace/add.ts @@ -0,0 +1,35 @@ +import { google } from "googleapis"; +import type { NextApiRequest, NextApiResponse } from "next"; + +import getAppKeysFromSlug from "@calcom/app-store/_utils/getAppKeysFromSlug"; +import { WEBAPP_URL } from "@calcom/lib/constants"; + +const scopes = [ + "https://www.googleapis.com/auth/admin.directory.user.readonly", + "https://www.googleapis.com/auth/admin.directory.customer.readonly", +]; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + if (req.method === "GET") { + // Get appKeys from google-calendar + const { client_id, client_secret } = await getAppKeysFromSlug("google-calendar"); + if (!client_id || typeof client_id !== "string") + return res.status(400).json({ message: "Google client_id missing." }); + if (!client_secret || typeof client_secret !== "string") + return res.status(400).json({ message: "Google client_secret missing." }); + + // use differnt callback to normal calendar connection + const redirect_uri = WEBAPP_URL + "/api/teams/googleworkspace/callback"; + const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uri); + + const authUrl = oAuth2Client.generateAuthUrl({ + access_type: "offline", + scope: scopes, + + prompt: "consent", + state: JSON.stringify({ teamId: req.query.teamId }), + }); + + res.status(200).json({ url: authUrl }); + } +} diff --git a/apps/web/pages/api/teams/googleworkspace/callback.ts b/apps/web/pages/api/teams/googleworkspace/callback.ts new file mode 100644 index 0000000000..079353b4af --- /dev/null +++ b/apps/web/pages/api/teams/googleworkspace/callback.ts @@ -0,0 +1,63 @@ +import { google } from "googleapis"; +import type { NextApiRequest, NextApiResponse } from "next"; +import { z } from "zod"; + +import getAppKeysFromSlug from "@calcom/app-store/_utils/getAppKeysFromSlug"; +import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; +import { WEBAPP_URL } from "@calcom/lib/constants"; +import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl"; +import prisma from "@calcom/prisma"; + +const stateSchema = z.object({ + teamId: z.string(), +}); + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + const session = await getServerSession({ req, res }); + + if (!session?.user?.id) { + return res.status(401).json({ message: "You must be logged in to do this" }); + } + + const { code, state } = req.query; + const parsedState = stateSchema.parse(JSON.parse(state as string)); + const { teamId } = parsedState; + + if (code && typeof code !== "string") { + res.status(400).json({ message: "`code` must be a string" }); + return; + } + + const { client_id, client_secret } = await getAppKeysFromSlug("google-calendar"); + + if (!client_id || typeof client_id !== "string") + return res.status(400).json({ message: "Google client_id missing." }); + if (!client_secret || typeof client_secret !== "string") + return res.status(400).json({ message: "Google client_secret missing." }); + + const redirect_uri = WEBAPP_URL + "/api/teams/googleworkspace/callback"; + const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uri); + + if (!code) { + throw new Error("No code provided"); + } + + const credentials = await oAuth2Client.getToken(code); + + await prisma.credential.create({ + data: { + type: "google_workspace_directory", + key: credentials.res?.data, + userId: session.user.id, + }, + }); + + if (!teamId) { + res.redirect(getSafeRedirectUrl(WEBAPP_URL + "/settings") ?? `${WEBAPP_URL}/teams`); + } + + res.redirect( + getSafeRedirectUrl(WEBAPP_URL + `/settings/teams/${teamId}/members?inviteModal=true&bulk=true`) ?? + `${WEBAPP_URL}/teams` + ); +} diff --git a/apps/web/pages/api/trpc/googleWorkspace/[trpc].ts b/apps/web/pages/api/trpc/googleWorkspace/[trpc].ts new file mode 100644 index 0000000000..e6f07468dd --- /dev/null +++ b/apps/web/pages/api/trpc/googleWorkspace/[trpc].ts @@ -0,0 +1,4 @@ +import { createNextApiHandler } from "@calcom/trpc/server/createNextApiHandler"; +import { googleWorkspaceRouter } from "@calcom/trpc/server/routers/viewer/googleWorkspace/_router"; + +export default createNextApiHandler(googleWorkspaceRouter); diff --git a/apps/web/pages/apps/[slug]/index.tsx b/apps/web/pages/apps/[slug]/index.tsx index 841331f5d9..97a36bf74c 100644 --- a/apps/web/pages/apps/[slug]/index.tsx +++ b/apps/web/pages/apps/[slug]/index.tsx @@ -73,7 +73,6 @@ function SingleAppPage(props: inferSSRProps) { email={data.email} licenseRequired={data.licenseRequired} teamsPlanRequired={data.teamsPlanRequired} - isProOnly={data.isProOnly} descriptionItems={source.data?.items as string[] | undefined} isTemplate={data.isTemplate} dependencies={data.dependencies} diff --git a/apps/web/pages/auth/login.tsx b/apps/web/pages/auth/login.tsx index d3c1ede016..1e6ea5a74f 100644 --- a/apps/web/pages/auth/login.tsx +++ b/apps/web/pages/auth/login.tsx @@ -1,3 +1,4 @@ +import { zodResolver } from "@hookform/resolvers/zod"; import classNames from "classnames"; import { jwtVerify } from "jose"; import type { GetServerSidePropsContext } from "next"; @@ -8,6 +9,7 @@ import type { CSSProperties } from "react"; import { useState } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { FaGoogle } from "react-icons/fa"; +import { z } from "zod"; import { SAMLLogin } from "@calcom/features/auth/SAMLLogin"; import { ErrorCode } from "@calcom/features/auth/lib/ErrorCode"; @@ -39,7 +41,6 @@ interface LoginValues { totpCode: string; csrfToken: string; } - export default function Login({ csrfToken, isGoogleLoginEnabled, @@ -50,7 +51,14 @@ export default function Login({ }: inferSSRProps & WithNonceProps) { const { t } = useLocale(); const router = useRouter(); - const methods = useForm(); + const formSchema = z.object({ + email: z + .string() + .min(1, `${t("error_required_field")}`) + .email(`${t("enter_valid_email")}`), + password: z.string().min(1, `${t("error_required_field")}`), + }); + const methods = useForm({ resolver: zodResolver(formSchema) }); const { register, formState } = methods; const [twoFactorRequired, setTwoFactorRequired] = useState(!!totpEmail || false); @@ -150,7 +158,7 @@ export default function Login({ : null }> -
+
@@ -172,7 +180,7 @@ export default function Login({ className="mb-0" {...register("password")} /> -
+
{ {t("overview_of_day")}{" "} { if (e.target.value) setSelectedDate(e.target.value); diff --git a/apps/web/pages/booking/[uid].tsx b/apps/web/pages/booking/[uid].tsx index 229babba28..64db39652a 100644 --- a/apps/web/pages/booking/[uid].tsx +++ b/apps/web/pages/booking/[uid].tsx @@ -443,8 +443,10 @@ export default function Success(props: SuccessProps) { )} {bookingInfo?.attendees.map((attendee) => (
- {attendee.name &&

{attendee.name}

} -

{attendee.email}

+ {attendee.name && ( +

{attendee.name}

+ )} +

{attendee.email}

))}
diff --git a/apps/web/pages/event-types/[type]/index.tsx b/apps/web/pages/event-types/[type]/index.tsx index f9dff7ea9e..7c098997c0 100644 --- a/apps/web/pages/event-types/[type]/index.tsx +++ b/apps/web/pages/event-types/[type]/index.tsx @@ -39,8 +39,8 @@ import { EventLimitsTab } from "@components/eventtype/EventLimitsTab"; import { EventRecurringTab } from "@components/eventtype/EventRecurringTab"; import { EventSetupTab } from "@components/eventtype/EventSetupTab"; import { EventTeamTab } from "@components/eventtype/EventTeamTab"; -import { EventTeamWebhooksTab } from "@components/eventtype/EventTeamWebhooksTab"; import { EventTypeSingleLayout } from "@components/eventtype/EventTypeSingleLayout"; +import { EventWebhooksTab } from "@components/eventtype/EventWebhooksTab"; import EventWorkflowsTab from "@components/eventtype/EventWorkfowsTab"; import { ssrInit } from "@server/lib/ssr"; @@ -309,7 +309,7 @@ const EventTypePage = (props: EventTypeSetupProps) => { workflows={eventType.workflows.map((workflowOnEventType) => workflowOnEventType.workflow)} /> ), - webhooks: , + webhooks: , } as const; const handleSubmit = async (values: FormValues) => { diff --git a/apps/web/pages/team/[slug].tsx b/apps/web/pages/team/[slug].tsx index 80f03d25b5..61270c1116 100644 --- a/apps/web/pages/team/[slug].tsx +++ b/apps/web/pages/team/[slug].tsx @@ -56,6 +56,9 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio }: TeamPageProps) { ); } + // slug is a route parameter, we don't want to forward it to the next route + const { slug: _slug, ...queryParamsToForward } = router.query; + const EventTypes = () => (
    {team.eventTypes.map((type, index) => ( @@ -67,7 +70,10 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio }: TeamPageProps) { )}>
    { sdkActionManager?.fire("eventTypeSelected", { eventType: type, @@ -146,7 +152,13 @@ function TeamPage({ team, isUnpublished, markdownStrippedBio }: TeamPageProps) { color="minimal" EndIcon={ArrowRight} className="dark:hover:bg-darkgray-200" - href={`/team/${team.slug}?members=1`} + href={{ + pathname: `/team/${team.slug}`, + query: { + members: "1", + ...queryParamsToForward, + }, + }} shallow={true}> {t("book_a_team_member")} diff --git a/apps/web/playwright/booking-pages.e2e.ts b/apps/web/playwright/booking-pages.e2e.ts index d5ef9c0ef3..5c72236154 100644 --- a/apps/web/playwright/booking-pages.e2e.ts +++ b/apps/web/playwright/booking-pages.e2e.ts @@ -8,6 +8,8 @@ import { bookTimeSlot, selectFirstAvailableTimeSlotNextMonth, selectSecondAvailableTimeSlotNextMonth, + testEmail, + testName, } from "./lib/testUtils"; test.describe.configure({ mode: "parallel" }); @@ -101,6 +103,8 @@ testBothBookers.describe("pro user", () => { // Because it tests the entire booking flow + the cancellation + rebooking test.setTimeout(testInfo.timeout * 3); await bookFirstEvent(page); + await expect(page.locator(`[data-testid="attendee-email-${testEmail}"]`)).toHaveText(testEmail); + await expect(page.locator(`[data-testid="attendee-name-${testName}"]`)).toHaveText(testName); const [pro] = users.get(); await pro.login(); @@ -114,7 +118,10 @@ testBothBookers.describe("pro user", () => { const cancelledHeadline = await page.locator('[data-testid="cancelled-headline"]').innerText(); - await expect(cancelledHeadline).toBe("This event is cancelled"); + expect(cancelledHeadline).toBe("This event is cancelled"); + + await expect(page.locator(`[data-testid="attendee-email-${testEmail}"]`)).toHaveText(testEmail); + await expect(page.locator(`[data-testid="attendee-name-${testName}"]`)).toHaveText(testName); await page.goto(`/${pro.username}`); await bookFirstEvent(page); @@ -155,7 +162,7 @@ testBothBookers.describe("pro user", () => { await expect(page.locator("[data-testid=success-page]")).toBeVisible(); additionalGuests.forEach(async (email) => { - await expect(page.locator(`[data-testid="attendee-${email}"]`)).toHaveText(email); + await expect(page.locator(`[data-testid="attendee-email-${email}"]`)).toHaveText(email); }); }); }); diff --git a/apps/web/playwright/booking-seats.e2e.ts b/apps/web/playwright/booking-seats.e2e.ts index f4fd821a6d..940d566d54 100644 --- a/apps/web/playwright/booking-seats.e2e.ts +++ b/apps/web/playwright/booking-seats.e2e.ts @@ -419,9 +419,13 @@ testBothBookers.describe("Booking with Seats", (bookerVariant) => { // Go to cancel page and see that attendees are listed and myself as I'm owner of the booking await page.goto(`/booking/${booking.uid}?cancel=true&allRemainingBookings=false`); - const foundFirstAttendeeAsOwner = await page.locator('p[data-testid="attendee-first+seats@cal.com"]'); + const foundFirstAttendeeAsOwner = await page.locator( + 'p[data-testid="attendee-email-first+seats@cal.com"]' + ); await expect(foundFirstAttendeeAsOwner).toHaveCount(1); - const foundSecondAttendeeAsOwner = await page.locator('p[data-testid="attendee-second+seats@cal.com"]'); + const foundSecondAttendeeAsOwner = await page.locator( + 'p[data-testid="attendee-email-second+seats@cal.com"]' + ); await expect(foundSecondAttendeeAsOwner).toHaveCount(1); await page.pause(); await page.goto("auth/logout"); @@ -433,10 +437,12 @@ testBothBookers.describe("Booking with Seats", (bookerVariant) => { ); // No attendees should be displayed only the one that it's cancelling - const notFoundSecondAttendee = await page.locator('p[data-testid="attendee-second+seats@cal.com"]'); + const notFoundSecondAttendee = await page.locator( + 'p[data-testid="attendee-email-second+seats@cal.com"]' + ); await expect(notFoundSecondAttendee).toHaveCount(0); - const foundFirstAttendee = await page.locator('p[data-testid="attendee-first+seats@cal.com"]'); + const foundFirstAttendee = await page.locator('p[data-testid="attendee-email-first+seats@cal.com"]'); await expect(foundFirstAttendee).toHaveCount(1); await prisma.eventType.update({ @@ -453,11 +459,11 @@ testBothBookers.describe("Booking with Seats", (bookerVariant) => { ); // Now attendees should be displayed - const foundSecondAttendee = await page.locator('p[data-testid="attendee-second+seats@cal.com"]'); + const foundSecondAttendee = await page.locator('p[data-testid="attendee-email-second+seats@cal.com"]'); await expect(foundSecondAttendee).toHaveCount(1); const foundFirstAttendeeAgain = await page - .locator('p[data-testid="attendee-first+seats@cal.com"]') + .locator('p[data-testid="attendee-email-first+seats@cal.com"]') .first(); await expect(foundFirstAttendeeAgain).toHaveCount(1); }); diff --git a/apps/web/playwright/lib/testUtils.ts b/apps/web/playwright/lib/testUtils.ts index d4fc2cc3ce..ba8049f6f0 100644 --- a/apps/web/playwright/lib/testUtils.ts +++ b/apps/web/playwright/lib/testUtils.ts @@ -15,6 +15,9 @@ type Request = IncomingMessage & { body?: unknown }; type RequestHandlerOptions = { req: Request; res: ServerResponse }; type RequestHandler = (opts: RequestHandlerOptions) => void; +export const testEmail = "test@example.com"; +export const testName = "Test Testson"; + export function createHttpServer(opts: { requestHandler?: RequestHandler } = {}) { const { requestHandler = ({ res }) => { @@ -133,8 +136,8 @@ export async function bookFirstEvent(page: Page) { export const bookTimeSlot = async (page: Page, opts?: { name?: string; email?: string }) => { // --- fill form - await page.fill('[name="name"]', opts?.name ?? "Test Testson"); - await page.fill('[name="email"]', opts?.email ?? "test@example.com"); + await page.fill('[name="name"]', opts?.name ?? testName); + await page.fill('[name="email"]', opts?.email ?? testEmail); await page.press('[name="email"]', "Enter"); }; // Provide an standalone localize utility not managed by next-i18n diff --git a/apps/web/playwright/manage-booking-questions.e2e.ts b/apps/web/playwright/manage-booking-questions.e2e.ts index fb5ebde5ad..db70278def 100644 --- a/apps/web/playwright/manage-booking-questions.e2e.ts +++ b/apps/web/playwright/manage-booking-questions.e2e.ts @@ -52,8 +52,21 @@ test.describe("Manage Booking Questions", () => { // Considering there are many steps in it, it would need more than default test timeout test.setTimeout(testInfo.timeout * 3); const user = await createAndLoginUserWithEventTypes({ users }); + const team = await prisma.team.findFirst({ + where: { + members: { + some: { + userId: user.id, + }, + }, + }, + select: { + id: true, + }, + }); - const webhookReceiver = await addWebhook(user); + const teamId = team?.id ?? 0; + const webhookReceiver = await addWebhook(undefined, teamId); await test.step("Go to First Team Event", async () => { const $eventTypes = page.locator("[data-testid=event-types]").nth(1).locator("li a"); @@ -79,7 +92,6 @@ async function runTestStepsCommonForTeamAndUserEventType( bookerVariant: BookerVariants ) { await page.click('[href$="tabName=advanced"]'); - await test.step("Add Question and see that it's shown on Booking Page at appropriate position", async () => { await addQuestionAndSave({ page, @@ -391,19 +403,35 @@ async function saveEventType(page: Page) { await page.locator("[data-testid=update-eventtype]").click(); } -async function addWebhook(user: Awaited>) { +async function addWebhook( + user?: Awaited>, + teamId?: number | null +) { const webhookReceiver = createHttpServer(); - await prisma.webhook.create({ - data: { - id: uuid(), - userId: user.id, - subscriberUrl: webhookReceiver.url, - eventTriggers: [ - WebhookTriggerEvents.BOOKING_CREATED, - WebhookTriggerEvents.BOOKING_CANCELLED, - WebhookTriggerEvents.BOOKING_RESCHEDULED, - ], - }, - }); + + const data: { + id: string; + subscriberUrl: string; + eventTriggers: WebhookTriggerEvents[]; + userId?: number; + teamId?: number; + } = { + id: uuid(), + subscriberUrl: webhookReceiver.url, + eventTriggers: [ + WebhookTriggerEvents.BOOKING_CREATED, + WebhookTriggerEvents.BOOKING_CANCELLED, + WebhookTriggerEvents.BOOKING_RESCHEDULED, + ], + }; + + if (teamId) { + data.teamId = teamId; + } else if (user) { + data.userId = user.id; + } + + await prisma.webhook.create({ data }); + return webhookReceiver; } diff --git a/apps/web/public/country-flag-icons/3x2/AC.svg b/apps/web/public/country-flag-icons/3x2/AC.svg new file mode 100644 index 0000000000..a64538388a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AC.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AD.svg b/apps/web/public/country-flag-icons/3x2/AD.svg new file mode 100644 index 0000000000..b204ff7802 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AD.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AE.svg b/apps/web/public/country-flag-icons/3x2/AE.svg new file mode 100644 index 0000000000..c2329c42de --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AF.svg b/apps/web/public/country-flag-icons/3x2/AF.svg new file mode 100644 index 0000000000..7e2a4f36b7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AF.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AG.svg b/apps/web/public/country-flag-icons/3x2/AG.svg new file mode 100644 index 0000000000..af1e78f3af --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AG.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AI.svg b/apps/web/public/country-flag-icons/3x2/AI.svg new file mode 100644 index 0000000000..61532e4cab --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AI.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AL.svg b/apps/web/public/country-flag-icons/3x2/AL.svg new file mode 100644 index 0000000000..bf1a0b0f07 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AL.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AM.svg b/apps/web/public/country-flag-icons/3x2/AM.svg new file mode 100644 index 0000000000..cbcb575aa5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AM.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AO.svg b/apps/web/public/country-flag-icons/3x2/AO.svg new file mode 100644 index 0000000000..06749cc2f6 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AO.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AQ.svg b/apps/web/public/country-flag-icons/3x2/AQ.svg new file mode 100644 index 0000000000..6888c968b5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AQ.svg @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/AR.svg b/apps/web/public/country-flag-icons/3x2/AR.svg new file mode 100644 index 0000000000..be8073f48a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AR.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AS.svg b/apps/web/public/country-flag-icons/3x2/AS.svg new file mode 100644 index 0000000000..7c95bf04ec --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AS.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AT.svg b/apps/web/public/country-flag-icons/3x2/AT.svg new file mode 100644 index 0000000000..fdb45543c7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AT.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AU.svg b/apps/web/public/country-flag-icons/3x2/AU.svg new file mode 100644 index 0000000000..4acf2b0fbf --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AU.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AW.svg b/apps/web/public/country-flag-icons/3x2/AW.svg new file mode 100644 index 0000000000..f644029205 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AW.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AX.svg b/apps/web/public/country-flag-icons/3x2/AX.svg new file mode 100644 index 0000000000..f013721e1c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AX.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/AZ.svg b/apps/web/public/country-flag-icons/3x2/AZ.svg new file mode 100644 index 0000000000..0a4a671ef9 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/AZ.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BA.svg b/apps/web/public/country-flag-icons/3x2/BA.svg new file mode 100644 index 0000000000..b2d866d5ea --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BA.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BB.svg b/apps/web/public/country-flag-icons/3x2/BB.svg new file mode 100644 index 0000000000..b8235a8a69 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BB.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BD.svg b/apps/web/public/country-flag-icons/3x2/BD.svg new file mode 100644 index 0000000000..b908f6fd1b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BD.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BE.svg b/apps/web/public/country-flag-icons/3x2/BE.svg new file mode 100644 index 0000000000..53d3604fbd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BF.svg b/apps/web/public/country-flag-icons/3x2/BF.svg new file mode 100644 index 0000000000..b7d3da16bd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BF.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BG.svg b/apps/web/public/country-flag-icons/3x2/BG.svg new file mode 100644 index 0000000000..12fbcc47e0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BH.svg b/apps/web/public/country-flag-icons/3x2/BH.svg new file mode 100644 index 0000000000..5d180dbce2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BH.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BI.svg b/apps/web/public/country-flag-icons/3x2/BI.svg new file mode 100644 index 0000000000..c5bf38676c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BI.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BJ.svg b/apps/web/public/country-flag-icons/3x2/BJ.svg new file mode 100644 index 0000000000..908ceeb6e4 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BJ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BL.svg b/apps/web/public/country-flag-icons/3x2/BL.svg new file mode 100644 index 0000000000..1b193d7329 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BL.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BM.svg b/apps/web/public/country-flag-icons/3x2/BM.svg new file mode 100644 index 0000000000..c68cb95575 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BM.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BN.svg b/apps/web/public/country-flag-icons/3x2/BN.svg new file mode 100644 index 0000000000..78a8aca79a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BN.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BO.svg b/apps/web/public/country-flag-icons/3x2/BO.svg new file mode 100644 index 0000000000..75169435b6 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BO.svg @@ -0,0 +1 @@ + diff --git a/apps/web/public/country-flag-icons/3x2/BQ.svg b/apps/web/public/country-flag-icons/3x2/BQ.svg new file mode 100644 index 0000000000..ea1f01c034 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BQ.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BR.svg b/apps/web/public/country-flag-icons/3x2/BR.svg new file mode 100644 index 0000000000..9d1d2be857 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BR.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BS.svg b/apps/web/public/country-flag-icons/3x2/BS.svg new file mode 100644 index 0000000000..fef0fd13c7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BS.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BT.svg b/apps/web/public/country-flag-icons/3x2/BT.svg new file mode 100644 index 0000000000..6b2faa917e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BT.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BV.svg b/apps/web/public/country-flag-icons/3x2/BV.svg new file mode 100644 index 0000000000..153328e282 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BV.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BW.svg b/apps/web/public/country-flag-icons/3x2/BW.svg new file mode 100644 index 0000000000..d5242e7888 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BW.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BY.svg b/apps/web/public/country-flag-icons/3x2/BY.svg new file mode 100644 index 0000000000..66011c9158 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BY.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/BZ.svg b/apps/web/public/country-flag-icons/3x2/BZ.svg new file mode 100644 index 0000000000..cdde5f8fa0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/BZ.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CA.svg b/apps/web/public/country-flag-icons/3x2/CA.svg new file mode 100644 index 0000000000..4368ff3d63 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CA.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CC.svg b/apps/web/public/country-flag-icons/3x2/CC.svg new file mode 100644 index 0000000000..31c5b0d1ef --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CC.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CD.svg b/apps/web/public/country-flag-icons/3x2/CD.svg new file mode 100644 index 0000000000..6634ef3533 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CD.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CF.svg b/apps/web/public/country-flag-icons/3x2/CF.svg new file mode 100644 index 0000000000..ea8c8234aa --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CF.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CG.svg b/apps/web/public/country-flag-icons/3x2/CG.svg new file mode 100644 index 0000000000..2cfb669faf --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CH.svg b/apps/web/public/country-flag-icons/3x2/CH.svg new file mode 100644 index 0000000000..206accf406 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CH.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CI.svg b/apps/web/public/country-flag-icons/3x2/CI.svg new file mode 100644 index 0000000000..c0a83b2c8b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CI.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CK.svg b/apps/web/public/country-flag-icons/3x2/CK.svg new file mode 100644 index 0000000000..e5d5f86bfd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CK.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CL.svg b/apps/web/public/country-flag-icons/3x2/CL.svg new file mode 100644 index 0000000000..60c658eb09 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CM.svg b/apps/web/public/country-flag-icons/3x2/CM.svg new file mode 100644 index 0000000000..cbb4fc832d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CM.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CN.svg b/apps/web/public/country-flag-icons/3x2/CN.svg new file mode 100644 index 0000000000..3c41abe614 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CN.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CO.svg b/apps/web/public/country-flag-icons/3x2/CO.svg new file mode 100644 index 0000000000..efa16d1293 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CR.svg b/apps/web/public/country-flag-icons/3x2/CR.svg new file mode 100644 index 0000000000..b79c12f502 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CR.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CU.svg b/apps/web/public/country-flag-icons/3x2/CU.svg new file mode 100644 index 0000000000..60d9cbe018 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CU.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CV.svg b/apps/web/public/country-flag-icons/3x2/CV.svg new file mode 100644 index 0000000000..6e00e99683 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CV.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CW.svg b/apps/web/public/country-flag-icons/3x2/CW.svg new file mode 100644 index 0000000000..51821fc185 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CW.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CX.svg b/apps/web/public/country-flag-icons/3x2/CX.svg new file mode 100644 index 0000000000..890b21dd88 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CX.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CY.svg b/apps/web/public/country-flag-icons/3x2/CY.svg new file mode 100644 index 0000000000..ca65570d72 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CY.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/CZ.svg b/apps/web/public/country-flag-icons/3x2/CZ.svg new file mode 100644 index 0000000000..73d7c2931c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/CZ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DE.svg b/apps/web/public/country-flag-icons/3x2/DE.svg new file mode 100644 index 0000000000..8d831b22e9 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DJ.svg b/apps/web/public/country-flag-icons/3x2/DJ.svg new file mode 100644 index 0000000000..1713fac66f --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DJ.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DK.svg b/apps/web/public/country-flag-icons/3x2/DK.svg new file mode 100644 index 0000000000..f3aa677093 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DK.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DM.svg b/apps/web/public/country-flag-icons/3x2/DM.svg new file mode 100644 index 0000000000..08fc291690 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DM.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DO.svg b/apps/web/public/country-flag-icons/3x2/DO.svg new file mode 100644 index 0000000000..714f2fb222 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DO.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/DZ.svg b/apps/web/public/country-flag-icons/3x2/DZ.svg new file mode 100644 index 0000000000..0b5e895a47 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/DZ.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/EC.svg b/apps/web/public/country-flag-icons/3x2/EC.svg new file mode 100644 index 0000000000..465a9ec795 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/EC.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/EE.svg b/apps/web/public/country-flag-icons/3x2/EE.svg new file mode 100644 index 0000000000..19da80e092 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/EE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/EG.svg b/apps/web/public/country-flag-icons/3x2/EG.svg new file mode 100644 index 0000000000..fac70f89ee --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/EG.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/EH.svg b/apps/web/public/country-flag-icons/3x2/EH.svg new file mode 100644 index 0000000000..2f8c8b6774 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/EH.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ER.svg b/apps/web/public/country-flag-icons/3x2/ER.svg new file mode 100644 index 0000000000..a53a02d344 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ER.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ES.svg b/apps/web/public/country-flag-icons/3x2/ES.svg new file mode 100644 index 0000000000..7d69a244c9 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ES.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ET.svg b/apps/web/public/country-flag-icons/3x2/ET.svg new file mode 100644 index 0000000000..3b9de37415 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ET.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/EU.svg b/apps/web/public/country-flag-icons/3x2/EU.svg new file mode 100644 index 0000000000..7415224792 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/EU.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/FI.svg b/apps/web/public/country-flag-icons/3x2/FI.svg new file mode 100644 index 0000000000..0356243f97 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FI.svg @@ -0,0 +1,6 @@ + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/FJ.svg b/apps/web/public/country-flag-icons/3x2/FJ.svg new file mode 100644 index 0000000000..aad5b82fef --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FJ.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/FK.svg b/apps/web/public/country-flag-icons/3x2/FK.svg new file mode 100644 index 0000000000..e838ed842a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FK.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/FM.svg b/apps/web/public/country-flag-icons/3x2/FM.svg new file mode 100644 index 0000000000..6d6420bafa --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FM.svg @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/FO.svg b/apps/web/public/country-flag-icons/3x2/FO.svg new file mode 100644 index 0000000000..74fe35c393 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FO.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/FR.svg b/apps/web/public/country-flag-icons/3x2/FR.svg new file mode 100644 index 0000000000..18abd34a8e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/FR.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GA.svg b/apps/web/public/country-flag-icons/3x2/GA.svg new file mode 100644 index 0000000000..d1c24e948a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GA.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GB.svg b/apps/web/public/country-flag-icons/3x2/GB.svg new file mode 100644 index 0000000000..b8183555e5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GB.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GD.svg b/apps/web/public/country-flag-icons/3x2/GD.svg new file mode 100644 index 0000000000..6ba7be1b8b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GD.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GE-AB.svg b/apps/web/public/country-flag-icons/3x2/GE-AB.svg new file mode 100644 index 0000000000..91663abe43 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GE-AB.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GE-OS.svg b/apps/web/public/country-flag-icons/3x2/GE-OS.svg new file mode 100644 index 0000000000..23c05f3dea --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GE-OS.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/GE.svg b/apps/web/public/country-flag-icons/3x2/GE.svg new file mode 100644 index 0000000000..3b555ad6db --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GE.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GF.svg b/apps/web/public/country-flag-icons/3x2/GF.svg new file mode 100644 index 0000000000..4d7fc61a93 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GF.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GG.svg b/apps/web/public/country-flag-icons/3x2/GG.svg new file mode 100644 index 0000000000..ef65c3a247 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GG.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GH.svg b/apps/web/public/country-flag-icons/3x2/GH.svg new file mode 100644 index 0000000000..a272492e78 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GH.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GI.svg b/apps/web/public/country-flag-icons/3x2/GI.svg new file mode 100644 index 0000000000..6195a59b18 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GI.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GL.svg b/apps/web/public/country-flag-icons/3x2/GL.svg new file mode 100644 index 0000000000..021ce8d40f --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GM.svg b/apps/web/public/country-flag-icons/3x2/GM.svg new file mode 100644 index 0000000000..9f73e3a02d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GN.svg b/apps/web/public/country-flag-icons/3x2/GN.svg new file mode 100644 index 0000000000..f42ee766db --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GN.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GP.svg b/apps/web/public/country-flag-icons/3x2/GP.svg new file mode 100644 index 0000000000..18abd34a8e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GP.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GQ.svg b/apps/web/public/country-flag-icons/3x2/GQ.svg new file mode 100644 index 0000000000..16c76383c2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GQ.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GR.svg b/apps/web/public/country-flag-icons/3x2/GR.svg new file mode 100644 index 0000000000..33f543a8b4 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GR.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GS.svg b/apps/web/public/country-flag-icons/3x2/GS.svg new file mode 100644 index 0000000000..309f799ed5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GS.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GT.svg b/apps/web/public/country-flag-icons/3x2/GT.svg new file mode 100644 index 0000000000..e2562464b5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GT.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GU.svg b/apps/web/public/country-flag-icons/3x2/GU.svg new file mode 100644 index 0000000000..58430cc793 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GU.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GW.svg b/apps/web/public/country-flag-icons/3x2/GW.svg new file mode 100644 index 0000000000..e9f7bc5291 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GW.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/GY.svg b/apps/web/public/country-flag-icons/3x2/GY.svg new file mode 100644 index 0000000000..f40e7eb825 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/GY.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/HK.svg b/apps/web/public/country-flag-icons/3x2/HK.svg new file mode 100644 index 0000000000..96da922a80 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HK.svg @@ -0,0 +1 @@ + diff --git a/apps/web/public/country-flag-icons/3x2/HM.svg b/apps/web/public/country-flag-icons/3x2/HM.svg new file mode 100644 index 0000000000..eea4cd8e9a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HM.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/HN.svg b/apps/web/public/country-flag-icons/3x2/HN.svg new file mode 100644 index 0000000000..feade7c501 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HN.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/HR.svg b/apps/web/public/country-flag-icons/3x2/HR.svg new file mode 100644 index 0000000000..4e8c8d627f --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HR.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/HT.svg b/apps/web/public/country-flag-icons/3x2/HT.svg new file mode 100644 index 0000000000..f61e93484c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HT.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/HU.svg b/apps/web/public/country-flag-icons/3x2/HU.svg new file mode 100644 index 0000000000..e3111edff7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/HU.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IC.svg b/apps/web/public/country-flag-icons/3x2/IC.svg new file mode 100644 index 0000000000..beba9955f1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ID.svg b/apps/web/public/country-flag-icons/3x2/ID.svg new file mode 100644 index 0000000000..581b841370 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ID.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IE.svg b/apps/web/public/country-flag-icons/3x2/IE.svg new file mode 100644 index 0000000000..7afad087f6 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IL.svg b/apps/web/public/country-flag-icons/3x2/IL.svg new file mode 100644 index 0000000000..7fab796832 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IL.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IM.svg b/apps/web/public/country-flag-icons/3x2/IM.svg new file mode 100644 index 0000000000..58ffb5b61e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IM.svg @@ -0,0 +1,17 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IN.svg b/apps/web/public/country-flag-icons/3x2/IN.svg new file mode 100644 index 0000000000..fc0483c4e8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IN.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IO.svg b/apps/web/public/country-flag-icons/3x2/IO.svg new file mode 100644 index 0000000000..3da3f2f9de --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IO.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/IQ.svg b/apps/web/public/country-flag-icons/3x2/IQ.svg new file mode 100644 index 0000000000..b9136bb7e2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IQ.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IR.svg b/apps/web/public/country-flag-icons/3x2/IR.svg new file mode 100644 index 0000000000..4e8f896cc3 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IR.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IS.svg b/apps/web/public/country-flag-icons/3x2/IS.svg new file mode 100644 index 0000000000..340f12be59 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IS.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/IT.svg b/apps/web/public/country-flag-icons/3x2/IT.svg new file mode 100644 index 0000000000..49d1ab8a2b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/IT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/JE.svg b/apps/web/public/country-flag-icons/3x2/JE.svg new file mode 100644 index 0000000000..b7e9b8608c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/JE.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/JM.svg b/apps/web/public/country-flag-icons/3x2/JM.svg new file mode 100644 index 0000000000..38bc1be73d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/JM.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/JO.svg b/apps/web/public/country-flag-icons/3x2/JO.svg new file mode 100644 index 0000000000..90da07ec35 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/JO.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/JP.svg b/apps/web/public/country-flag-icons/3x2/JP.svg new file mode 100644 index 0000000000..8e763ae27e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/JP.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KE.svg b/apps/web/public/country-flag-icons/3x2/KE.svg new file mode 100644 index 0000000000..1bd29b1fe0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KE.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KG.svg b/apps/web/public/country-flag-icons/3x2/KG.svg new file mode 100644 index 0000000000..7b25a1af76 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KG.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KH.svg b/apps/web/public/country-flag-icons/3x2/KH.svg new file mode 100644 index 0000000000..32e2f56ffc --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KH.svg @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KI.svg b/apps/web/public/country-flag-icons/3x2/KI.svg new file mode 100644 index 0000000000..6526090ea1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KI.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KM.svg b/apps/web/public/country-flag-icons/3x2/KM.svg new file mode 100644 index 0000000000..240850c215 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KM.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KN.svg b/apps/web/public/country-flag-icons/3x2/KN.svg new file mode 100644 index 0000000000..16e00745bd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KN.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KP.svg b/apps/web/public/country-flag-icons/3x2/KP.svg new file mode 100644 index 0000000000..0ecacd6be8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KP.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KR.svg b/apps/web/public/country-flag-icons/3x2/KR.svg new file mode 100644 index 0000000000..5381c03d4c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KR.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KW.svg b/apps/web/public/country-flag-icons/3x2/KW.svg new file mode 100644 index 0000000000..4e2a245876 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KW.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KY.svg b/apps/web/public/country-flag-icons/3x2/KY.svg new file mode 100644 index 0000000000..52edc3aed8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KY.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/KZ.svg b/apps/web/public/country-flag-icons/3x2/KZ.svg new file mode 100644 index 0000000000..e597a4d25a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/KZ.svg @@ -0,0 +1,28 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LA.svg b/apps/web/public/country-flag-icons/3x2/LA.svg new file mode 100644 index 0000000000..9d05bcaca4 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LB.svg b/apps/web/public/country-flag-icons/3x2/LB.svg new file mode 100644 index 0000000000..e4374bddc3 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LB.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LC.svg b/apps/web/public/country-flag-icons/3x2/LC.svg new file mode 100644 index 0000000000..b4f1153335 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LC.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LI.svg b/apps/web/public/country-flag-icons/3x2/LI.svg new file mode 100644 index 0000000000..1fb4821115 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LI.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LK.svg b/apps/web/public/country-flag-icons/3x2/LK.svg new file mode 100644 index 0000000000..8cda3c21af --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LK.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LR.svg b/apps/web/public/country-flag-icons/3x2/LR.svg new file mode 100644 index 0000000000..69e3cb3039 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LR.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LS.svg b/apps/web/public/country-flag-icons/3x2/LS.svg new file mode 100644 index 0000000000..d01e6f9af7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LS.svg @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LT.svg b/apps/web/public/country-flag-icons/3x2/LT.svg new file mode 100644 index 0000000000..80e64e1c5e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LU.svg b/apps/web/public/country-flag-icons/3x2/LU.svg new file mode 100644 index 0000000000..8e1ae088c2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LU.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LV.svg b/apps/web/public/country-flag-icons/3x2/LV.svg new file mode 100644 index 0000000000..33e1eaf73b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LV.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/LY.svg b/apps/web/public/country-flag-icons/3x2/LY.svg new file mode 100644 index 0000000000..5b18a6703b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/LY.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MA.svg b/apps/web/public/country-flag-icons/3x2/MA.svg new file mode 100644 index 0000000000..e0500dbcb1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MC.svg b/apps/web/public/country-flag-icons/3x2/MC.svg new file mode 100644 index 0000000000..faf536ea2c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MC.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MD.svg b/apps/web/public/country-flag-icons/3x2/MD.svg new file mode 100644 index 0000000000..2c6fa60cb4 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MD.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ME.svg b/apps/web/public/country-flag-icons/3x2/ME.svg new file mode 100644 index 0000000000..db42f40981 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ME.svg @@ -0,0 +1,26 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MF.svg b/apps/web/public/country-flag-icons/3x2/MF.svg new file mode 100644 index 0000000000..3c7e589828 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MF.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/MG.svg b/apps/web/public/country-flag-icons/3x2/MG.svg new file mode 100644 index 0000000000..876ae96695 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MG.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MH.svg b/apps/web/public/country-flag-icons/3x2/MH.svg new file mode 100644 index 0000000000..eb38bd8548 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MH.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MK.svg b/apps/web/public/country-flag-icons/3x2/MK.svg new file mode 100644 index 0000000000..6a74ede4ab --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MK.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ML.svg b/apps/web/public/country-flag-icons/3x2/ML.svg new file mode 100644 index 0000000000..302bf8dff9 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ML.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MM.svg b/apps/web/public/country-flag-icons/3x2/MM.svg new file mode 100644 index 0000000000..3ce41b3cc0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MM.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MN.svg b/apps/web/public/country-flag-icons/3x2/MN.svg new file mode 100644 index 0000000000..d4ccdcfe82 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MN.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MO.svg b/apps/web/public/country-flag-icons/3x2/MO.svg new file mode 100644 index 0000000000..fc2fb4ab81 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MO.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MP.svg b/apps/web/public/country-flag-icons/3x2/MP.svg new file mode 100644 index 0000000000..dda0de6001 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/MQ.svg b/apps/web/public/country-flag-icons/3x2/MQ.svg new file mode 100644 index 0000000000..f32123cfb8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MQ.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MR.svg b/apps/web/public/country-flag-icons/3x2/MR.svg new file mode 100644 index 0000000000..1155cebe8e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MR.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MS.svg b/apps/web/public/country-flag-icons/3x2/MS.svg new file mode 100644 index 0000000000..1711a40e40 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MS.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MT.svg b/apps/web/public/country-flag-icons/3x2/MT.svg new file mode 100644 index 0000000000..fb809cd29b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MT.svg @@ -0,0 +1,7 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MU.svg b/apps/web/public/country-flag-icons/3x2/MU.svg new file mode 100644 index 0000000000..5efc93aab6 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MU.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MV.svg b/apps/web/public/country-flag-icons/3x2/MV.svg new file mode 100644 index 0000000000..4cd4e9a421 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MV.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MW.svg b/apps/web/public/country-flag-icons/3x2/MW.svg new file mode 100644 index 0000000000..dcf2a3d745 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MW.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MX.svg b/apps/web/public/country-flag-icons/3x2/MX.svg new file mode 100644 index 0000000000..de445397a5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MX.svg @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MY.svg b/apps/web/public/country-flag-icons/3x2/MY.svg new file mode 100644 index 0000000000..6d53873fe5 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MY.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/MZ.svg b/apps/web/public/country-flag-icons/3x2/MZ.svg new file mode 100644 index 0000000000..5d482bffcc --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/MZ.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NA.svg b/apps/web/public/country-flag-icons/3x2/NA.svg new file mode 100644 index 0000000000..ffe732ac52 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NC.svg b/apps/web/public/country-flag-icons/3x2/NC.svg new file mode 100644 index 0000000000..a338b538b8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NC.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NE.svg b/apps/web/public/country-flag-icons/3x2/NE.svg new file mode 100644 index 0000000000..843d636f1d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NE.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NF.svg b/apps/web/public/country-flag-icons/3x2/NF.svg new file mode 100644 index 0000000000..34ae19a994 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NF.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NG.svg b/apps/web/public/country-flag-icons/3x2/NG.svg new file mode 100644 index 0000000000..7207647f93 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NG.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NI.svg b/apps/web/public/country-flag-icons/3x2/NI.svg new file mode 100644 index 0000000000..e43b29dd1e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NI.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NL.svg b/apps/web/public/country-flag-icons/3x2/NL.svg new file mode 100644 index 0000000000..1ce9b741ca --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NO.svg b/apps/web/public/country-flag-icons/3x2/NO.svg new file mode 100644 index 0000000000..a87b556152 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NP.svg b/apps/web/public/country-flag-icons/3x2/NP.svg new file mode 100644 index 0000000000..c37289dc1d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NP.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NR.svg b/apps/web/public/country-flag-icons/3x2/NR.svg new file mode 100644 index 0000000000..5b99c79082 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NR.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NU.svg b/apps/web/public/country-flag-icons/3x2/NU.svg new file mode 100644 index 0000000000..a733cf1234 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NU.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/NZ.svg b/apps/web/public/country-flag-icons/3x2/NZ.svg new file mode 100644 index 0000000000..4628c85f2a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/NZ.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/OM.svg b/apps/web/public/country-flag-icons/3x2/OM.svg new file mode 100644 index 0000000000..3fadd6fca6 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/OM.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PA.svg b/apps/web/public/country-flag-icons/3x2/PA.svg new file mode 100644 index 0000000000..a41df7d42a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PA.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PE.svg b/apps/web/public/country-flag-icons/3x2/PE.svg new file mode 100644 index 0000000000..1b3e6eb4c3 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PE.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PF.svg b/apps/web/public/country-flag-icons/3x2/PF.svg new file mode 100644 index 0000000000..06e3f53964 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PF.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PG.svg b/apps/web/public/country-flag-icons/3x2/PG.svg new file mode 100644 index 0000000000..eac6784a24 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PG.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PH.svg b/apps/web/public/country-flag-icons/3x2/PH.svg new file mode 100644 index 0000000000..5508cd6a98 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PH.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PK.svg b/apps/web/public/country-flag-icons/3x2/PK.svg new file mode 100644 index 0000000000..3adf79ee2b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PK.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PL.svg b/apps/web/public/country-flag-icons/3x2/PL.svg new file mode 100644 index 0000000000..4b13fa7a4a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PL.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PM.svg b/apps/web/public/country-flag-icons/3x2/PM.svg new file mode 100644 index 0000000000..425af9ab49 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PM.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PN.svg b/apps/web/public/country-flag-icons/3x2/PN.svg new file mode 100644 index 0000000000..55d239f3cf --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PN.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PR.svg b/apps/web/public/country-flag-icons/3x2/PR.svg new file mode 100644 index 0000000000..8a3a5e5388 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PR.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PS.svg b/apps/web/public/country-flag-icons/3x2/PS.svg new file mode 100644 index 0000000000..5261a6b0b8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PS.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PT.svg b/apps/web/public/country-flag-icons/3x2/PT.svg new file mode 100644 index 0000000000..7407d4f0a3 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PT.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PW.svg b/apps/web/public/country-flag-icons/3x2/PW.svg new file mode 100644 index 0000000000..fef0d1e2ab --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PW.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/PY.svg b/apps/web/public/country-flag-icons/3x2/PY.svg new file mode 100644 index 0000000000..0e95710f32 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/PY.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/QA.svg b/apps/web/public/country-flag-icons/3x2/QA.svg new file mode 100644 index 0000000000..ad00201e2e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/QA.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/RE.svg b/apps/web/public/country-flag-icons/3x2/RE.svg new file mode 100644 index 0000000000..425af9ab49 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/RE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/RO.svg b/apps/web/public/country-flag-icons/3x2/RO.svg new file mode 100644 index 0000000000..da216326ec --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/RO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/RS.svg b/apps/web/public/country-flag-icons/3x2/RS.svg new file mode 100644 index 0000000000..696e2113e1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/RS.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/RU.svg b/apps/web/public/country-flag-icons/3x2/RU.svg new file mode 100644 index 0000000000..f3114436ce --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/RU.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/RW.svg b/apps/web/public/country-flag-icons/3x2/RW.svg new file mode 100644 index 0000000000..fc62f5563e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/RW.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SA.svg b/apps/web/public/country-flag-icons/3x2/SA.svg new file mode 100644 index 0000000000..a8ea577701 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SA.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SB.svg b/apps/web/public/country-flag-icons/3x2/SB.svg new file mode 100644 index 0000000000..935f4e8a7e --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SB.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SC.svg b/apps/web/public/country-flag-icons/3x2/SC.svg new file mode 100644 index 0000000000..ae1c146251 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SC.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SD.svg b/apps/web/public/country-flag-icons/3x2/SD.svg new file mode 100644 index 0000000000..0da9cb03e2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SD.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SE.svg b/apps/web/public/country-flag-icons/3x2/SE.svg new file mode 100644 index 0000000000..bb7b029f10 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SE.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SG.svg b/apps/web/public/country-flag-icons/3x2/SG.svg new file mode 100644 index 0000000000..8e929ed5c1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SG.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SH.svg b/apps/web/public/country-flag-icons/3x2/SH.svg new file mode 100644 index 0000000000..3c6af9131f --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SH.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SI.svg b/apps/web/public/country-flag-icons/3x2/SI.svg new file mode 100644 index 0000000000..d293119d45 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SI.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SJ.svg b/apps/web/public/country-flag-icons/3x2/SJ.svg new file mode 100644 index 0000000000..a87b556152 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SJ.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SK.svg b/apps/web/public/country-flag-icons/3x2/SK.svg new file mode 100644 index 0000000000..53422f6c36 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SK.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SL.svg b/apps/web/public/country-flag-icons/3x2/SL.svg new file mode 100644 index 0000000000..07427fd29c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SL.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SM.svg b/apps/web/public/country-flag-icons/3x2/SM.svg new file mode 100644 index 0000000000..4d52e7718c --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SM.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SN.svg b/apps/web/public/country-flag-icons/3x2/SN.svg new file mode 100644 index 0000000000..9a469ceb87 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SN.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SO.svg b/apps/web/public/country-flag-icons/3x2/SO.svg new file mode 100644 index 0000000000..bbbfd1c3b2 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SO.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SR.svg b/apps/web/public/country-flag-icons/3x2/SR.svg new file mode 100644 index 0000000000..ecca3df880 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SR.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SS.svg b/apps/web/public/country-flag-icons/3x2/SS.svg new file mode 100644 index 0000000000..1975a6544b --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SS.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ST.svg b/apps/web/public/country-flag-icons/3x2/ST.svg new file mode 100644 index 0000000000..9ef96612fd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ST.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SV.svg b/apps/web/public/country-flag-icons/3x2/SV.svg new file mode 100644 index 0000000000..d692591631 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SV.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SX.svg b/apps/web/public/country-flag-icons/3x2/SX.svg new file mode 100644 index 0000000000..afcd34bc96 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SX.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SY.svg b/apps/web/public/country-flag-icons/3x2/SY.svg new file mode 100644 index 0000000000..3944191b14 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SY.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/SZ.svg b/apps/web/public/country-flag-icons/3x2/SZ.svg new file mode 100644 index 0000000000..45b9aeb397 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/SZ.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TA.svg b/apps/web/public/country-flag-icons/3x2/TA.svg new file mode 100644 index 0000000000..bc105e56db --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TA.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TC.svg b/apps/web/public/country-flag-icons/3x2/TC.svg new file mode 100644 index 0000000000..9e2f81cd17 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TC.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TD.svg b/apps/web/public/country-flag-icons/3x2/TD.svg new file mode 100644 index 0000000000..e1771147d0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TD.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TF.svg b/apps/web/public/country-flag-icons/3x2/TF.svg new file mode 100644 index 0000000000..1ac6d7e5f1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TF.svg @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TG.svg b/apps/web/public/country-flag-icons/3x2/TG.svg new file mode 100644 index 0000000000..6be16bfc4a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TG.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TH.svg b/apps/web/public/country-flag-icons/3x2/TH.svg new file mode 100644 index 0000000000..d9f36f7281 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TH.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TJ.svg b/apps/web/public/country-flag-icons/3x2/TJ.svg new file mode 100644 index 0000000000..1af0cdc575 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TJ.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TK.svg b/apps/web/public/country-flag-icons/3x2/TK.svg new file mode 100644 index 0000000000..54f502a335 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TK.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TL.svg b/apps/web/public/country-flag-icons/3x2/TL.svg new file mode 100644 index 0000000000..da85c2c774 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TL.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TM.svg b/apps/web/public/country-flag-icons/3x2/TM.svg new file mode 100644 index 0000000000..c4466e6153 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TM.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TN.svg b/apps/web/public/country-flag-icons/3x2/TN.svg new file mode 100644 index 0000000000..a9efbe2862 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TN.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TO.svg b/apps/web/public/country-flag-icons/3x2/TO.svg new file mode 100644 index 0000000000..5dae443899 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TO.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TR.svg b/apps/web/public/country-flag-icons/3x2/TR.svg new file mode 100644 index 0000000000..6c9fe61ece --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TR.svg @@ -0,0 +1,8 @@ + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TT.svg b/apps/web/public/country-flag-icons/3x2/TT.svg new file mode 100644 index 0000000000..d297d956d7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TT.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TV.svg b/apps/web/public/country-flag-icons/3x2/TV.svg new file mode 100644 index 0000000000..2fa52f6a0f --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TV.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TW.svg b/apps/web/public/country-flag-icons/3x2/TW.svg new file mode 100644 index 0000000000..17bbde7148 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TW.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/TZ.svg b/apps/web/public/country-flag-icons/3x2/TZ.svg new file mode 100644 index 0000000000..a86379d695 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/TZ.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/UA.svg b/apps/web/public/country-flag-icons/3x2/UA.svg new file mode 100644 index 0000000000..33ef1b5851 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/UA.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/UG.svg b/apps/web/public/country-flag-icons/3x2/UG.svg new file mode 100644 index 0000000000..1737736a02 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/UG.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/UM.svg b/apps/web/public/country-flag-icons/3x2/UM.svg new file mode 100644 index 0000000000..803568f967 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/UM.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/US.svg b/apps/web/public/country-flag-icons/3x2/US.svg new file mode 100644 index 0000000000..803568f967 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/US.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/UY.svg b/apps/web/public/country-flag-icons/3x2/UY.svg new file mode 100644 index 0000000000..e0c36a910d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/UY.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/UZ.svg b/apps/web/public/country-flag-icons/3x2/UZ.svg new file mode 100644 index 0000000000..61265298a0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/UZ.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VA.svg b/apps/web/public/country-flag-icons/3x2/VA.svg new file mode 100644 index 0000000000..bd16deb61d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VA.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VC.svg b/apps/web/public/country-flag-icons/3x2/VC.svg new file mode 100644 index 0000000000..6c4223c7d8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VC.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VE.svg b/apps/web/public/country-flag-icons/3x2/VE.svg new file mode 100644 index 0000000000..309d2bd445 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VE.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VG.svg b/apps/web/public/country-flag-icons/3x2/VG.svg new file mode 100644 index 0000000000..8954b73793 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VG.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VI.svg b/apps/web/public/country-flag-icons/3x2/VI.svg new file mode 100644 index 0000000000..cd1be25890 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VI.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/VN.svg b/apps/web/public/country-flag-icons/3x2/VN.svg new file mode 100644 index 0000000000..4705d8519d --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VN.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/VU.svg b/apps/web/public/country-flag-icons/3x2/VU.svg new file mode 100644 index 0000000000..123fb4e541 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/VU.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/WF.svg b/apps/web/public/country-flag-icons/3x2/WF.svg new file mode 100644 index 0000000000..71734180bd --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/WF.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/WS.svg b/apps/web/public/country-flag-icons/3x2/WS.svg new file mode 100644 index 0000000000..35227933d8 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/WS.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/XK.svg b/apps/web/public/country-flag-icons/3x2/XK.svg new file mode 100644 index 0000000000..6192b48e83 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/XK.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/YE.svg b/apps/web/public/country-flag-icons/3x2/YE.svg new file mode 100644 index 0000000000..caa31065ce --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/YE.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/YT.svg b/apps/web/public/country-flag-icons/3x2/YT.svg new file mode 100644 index 0000000000..0c830a0556 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/YT.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ZA.svg b/apps/web/public/country-flag-icons/3x2/ZA.svg new file mode 100644 index 0000000000..28eafc38b1 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ZA.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ZM.svg b/apps/web/public/country-flag-icons/3x2/ZM.svg new file mode 100644 index 0000000000..f114b87d6a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ZM.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/ZW.svg b/apps/web/public/country-flag-icons/3x2/ZW.svg new file mode 100644 index 0000000000..0110aa7fa7 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/ZW.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/apps/web/public/country-flag-icons/3x2/flags.css b/apps/web/public/country-flag-icons/3x2/flags.css new file mode 100644 index 0000000000..93f0b006b0 --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/flags.css @@ -0,0 +1,252 @@ +[class*=' flag:'],[class^='flag:'] {display:inline-block;background-size:cover;height:1em;width:1.5em;--CountryFlagIcon-height:1em;height:var(--CountryFlagIcon-height);width:calc(var(--CountryFlagIcon-height)*3/2);} +.flag\:AC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M440.1 181.1c-.1 39.2-6.4 81.4-57.4 101.5-51.1-20.1-57.3-62.3-57.4-101.5h114.8z'/%3e%3cpath fill='%2329DBFF' d='M439.6 197.7c-2.8 34.9-12.4 67.4-57 85-44.4-17.6-54.5-51.2-56.9-84.9'/%3e%3cpath fill='white' d='M437.8 214.1c-3.2 24.3-16.7 53.5-55.1 68.6-38.4-15.1-50.5-42.5-55.1-68.4'/%3e%3cpath fill='%2329DBFF' d='M434.2 230.3c-5.7 17.7-19.3 39.4-51.3 52.8-32-12.6-45.2-33.8-51.4-53'/%3e%3cpath fill='white' d='M426.7 246.9c-6.5 11.3-17.7 25.4-44 35.9-27.5-11.5-37.4-25.3-44-36.1'/%3e%3cpath fill='%2329DBFF' d='M412.4 265.1c-8.1 7.2-12 11.2-29.6 17.9-20.1-7.9-22.6-11.6-29.2-17.5'/%3e%3cpath fill='%235CC85C' d='M383.3 231.6c-.2-.2-27.9 35.7-27.9 35.7-1.8-1.3-10-9.5-13.3-15l41.3-50.1 40.2 49.7c-3.9 6.5-11.4 13.6-13.2 15M382.6 85.3l-26.5 45h53z'/%3e%3cellipse transform='rotate(-82.3 291.431 225.686)' fill='%23F7A226' cx='291.4' cy='225.7' rx='48.7' ry='15.7'/%3e%3cellipse transform='rotate(-68.099 303.087 164.67)' fill='%23DDC7AB' cx='303.1' cy='164.7' rx='11.7' ry='7.2'/%3e%3cellipse transform='rotate(-81.738 291.697 271.697)' fill='%23DDC7AB' cx='291.7' cy='271.7' rx='11.4' ry='3.3'/%3e%3cellipse transform='matrix(.9986 -.05353 .05353 .9986 -13.992 16.424)' fill='%23DDC7AB' cx='299.6' cy='269.4' rx='3.3' ry='11'/%3e%3cellipse transform='rotate(-21.518 314.54 201.06)' fill='%23DDC7AB' cx='314.5' cy='201.1' rx='4.1' ry='13.7'/%3e%3cellipse transform='rotate(-21.518 317.511 178.077)' fill='%23DDC7AB' cx='317.5' cy='178.1' rx='13.7' ry='4.1'/%3e%3cellipse transform='rotate(-7.7 473.781 225.857)' fill='%23F7A226' cx='473.6' cy='225.9' rx='15.7' ry='48.7'/%3e%3cellipse transform='rotate(-21.901 462.057 164.866)' fill='%23DDC7AB' cx='462' cy='164.9' rx='7.2' ry='11.7'/%3e%3cellipse transform='rotate(-8.27 473.27 271.908)' fill='%23DDC7AB' cx='473.4' cy='271.9' rx='3.3' ry='11.4'/%3e%3cellipse transform='matrix(.05353 -.9986 .9986 .05353 171.34 719.998)' fill='%23DDC7AB' cx='465.5' cy='269.6' rx='11' ry='3.3'/%3e%3cellipse transform='rotate(-68.482 450.552 201.247)' fill='%23DDC7AB' cx='450.6' cy='201.2' rx='13.7' ry='4.1'/%3e%3cellipse transform='rotate(-68.482 447.58 178.265)' fill='%23DDC7AB' cx='447.6' cy='178.3' rx='4.1' ry='13.7'/%3e%3cpath fill='%23B0C6CC' d='M373.3 130.3L356.1 155l17.8 26.1H396l4.7-25.4-5.4-25.4z'/%3e%3cpath fill='white' d='M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z'/%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cg%3e%3cpath fill='%23D80027' d='M0 170.7v-11l62.5-42.3h22.6L7.3 170.7z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zM248.7 170.7l-77.8-53.3h22.6l62.5 42.3v11z'/%3e%3c/svg%3e")} +.flag\:AD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23FFDA44' d='M0 0h513v342H0z'/%3e%3cpath fill='%230052B4' d='M0 0h171v342H0z'/%3e%3cpath fill='%23D80027' d='M342 0h171v342H342zM198.92 113.58H256v64.8h-57.08zM309.16 228.68L256 243.18v-64.8h57.08z'/%3e%3cpath fill='%23BC8B00' d='M182.24 95.92v92.2c0 34.32 27.26 54.17 48.63 64.46-.8 1.37 25.13 8.26 25.13 8.26s25.93-6.9 25.13-8.26c21.38-10.29 48.63-30.14 48.63-64.46v-92.2H182.24zm129.86 92.2c0 16.88-10 29.43-32.76 43.9-8.62 5.48-17.54 9.03-23.34 11.01-5.8-1.98-14.72-5.53-23.34-11.01-22.76-14.47-32.76-28.02-32.76-43.9v-74.54h112.2v74.54z'/%3e%3c/svg%3e")} +.flag\:AE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%236DA544' d='M0 0h513v114H0z'/%3e%3cpath d='M0 228h513v114H0z'/%3e%3cpath fill='%23dd0d12' d='M0 0h171v342H0z'/%3e%3c/svg%3e")} +.flag\:AF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23DB3E00' d='M0 0h513v342H0z'/%3e%3cpath fill='%23479900' d='M331 0h182v342H331z'/%3e%3cpath d='M0 0h181.8v342H0z'/%3e%3cpath fill='white' d='M256 126.7c-19.4 0-35.2 15.8-35.2 35.2v52.8h70.4v-52.8c0-19.5-15.8-35.2-35.2-35.2z'/%3e%3cpath fill='white' d='M256 84.3c-47.7 0-86.4 38.7-86.4 86.4S208.3 257 256 257s86.4-38.7 86.4-86.4-38.7-86.3-86.4-86.3zm0 157.7c-39.4 0-71.4-32-71.4-71.4 0-39.4 32-71.4 71.4-71.4 39.4 0 71.4 32 71.4 71.4 0 39.5-32 71.4-71.4 71.4z'/%3e%3c/svg%3e")} +.flag\:AG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath d='M0 0h513v342H0z'/%3e%3cpath fill='%23186DD2' d='M88.8 136.5c-2.2 12.9-3.4 26.2-3.4 39.8 0 13.6 1.2 27 3.4 39.8L256 228.3l167.2-12.1c2.2-12.9 3.4-26.2 3.4-39.8s-1.2-27-3.4-39.8'/%3e%3cpath fill='white' d='M423.2 219H88.8c15.8 69.8 84.7 122.3 167.2 122.3S407.4 288.8 423.2 219z'/%3e%3cpath fill='%23FFDA44' d='M365.9 136.5H146.1l44.9-21.1-23.9-43.5 48.8 9.4L222 32l34 36.2L290 32l6.1 49.3 48.8-9.4-23.9 43.5z'/%3e%3cg fill='%23C32500'%3e%3cpath d='M256.5 342L0 0v342z'/%3e%3cpath d='M513 342V0L256 342z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:AI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M454.8 265.38c7.94-10.93 13.24-24.27 13.24-40.42V104.89a59.754 59.754 0 01-36.02 12.01c-19.64 0-37.07-9.43-48.03-24.01-10.95 14.58-28.39 24.01-48.03 24.01-13.52 0-25.99-4.47-36.02-12v120.06c0 16.16 5.3 29.5 13.24 40.42H454.8z'/%3e%3cpath fill='%238DCCFF' d='M310.23 260.98C332.65 296.96 384 309 384 309s51.35-12.04 73.77-48.02H310.23z'/%3e%3cpath fill='%23D87B00' d='M396.66 172.21c.32 1.42 8.72 10.17 17.56 20.15 1.39 1.57-8.74 12.63-6.91 12.59 4.75-.12 19.27-17.26 19.34 6.65.05 15.94-30 27.51-30 27.51h17.47l.65 14.96s4.97-13.34 7.59-16.57c8.1-9.97 20.18-30.07 34.59-27.1 14.41 2.97-13.66-13.92-13.66-13.92s-5.2-15.19-16.63-16.97c-10.06-1.57-14.29-2.51-26.64-7.3-1.68-.65-3.88-2.32-3.36 0z'/%3e%3cpath fill='%23D87B00' d='M359.69 198.69c1.07-.99 4.46-12.63 8.69-25.28.67-1.99 15.31 1.27 14.35-.3-2.47-4.06-24.58-8.08-3.9-20.08 13.79-8 38.82 12.27 38.82 12.27l-8.72-15.14 12.64-8.03s-14.05 2.35-18.14 1.69c-12.68-2.04-36.13-2.48-40.75-16.45-4.62-13.97-5.25 18.79-5.25 18.79s-10.56 12.08-6.4 22.88c3.66 9.5 4.96 13.64 6.97 26.73.29 1.79-.06 4.53 1.69 2.92z'/%3e%3cpath fill='%23D87B00' d='M395.67 219.87c-1.39-.43-13.16 2.49-26.22 5.18-2.06.42-6.59-13.88-7.47-12.26-2.27 4.17 5.36 25.31-15.41 13.45-13.84-7.91-8.89-39.73-8.89-39.73l-8.71 15.14-13.29-6.9s9.09 10.96 10.57 14.84c4.6 11.99 16 32.49 6.24 43.49-9.76 11.01 18.88-4.9 18.88-4.9s15.76 3.07 23-5.96c6.38-7.94 9.3-11.14 19.61-19.45 1.43-1.12 3.97-2.19 1.69-2.9z'/%3e%3cpath fill='white' d='M256.5 0h-23.1L160 48.9V0H96v48.9L22.6 0H0v22.7l46.1 30.7H0v64h46.1L0 148.1V171h22.6L96 121.8V171h64v-49.2l73.4 49.2h23.1v-22.9l-46.6-30.7h46.6v-64h-46.6l46.6-30.7z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.4H0v32h112V171h32v-69.6h112.5v-32H144z'/%3e%3cpath fill='%23D80027' d='M0 171v-11.3l62.5-42.3h22.6L7.3 171zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256.5.1v11l-63 42.3h-22.6L248.7.1zM248.7 171l-77.8-53.6h22.6l63 42.3V171z'/%3e%3c/svg%3e")} +.flag\:AL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 60'%3e%3cpath fill='%23ED2024' d='M0 0h90v60H0z'/%3e%3cpath fill='%23212121' d='M32.5 12.2v16l7.1 2.5-5 4.9 2.4 3 5.3-5.5 1.2 2.3-3 4.9 3.6 5.6-1.8 2.6 2.8 3.6 2.7-3.7-1.5-2.6 3-5.8-2.7-4.6 1.2-2.3 5.2 5.5 2.5-2.9-5.2-5.1 7.2-2.6V12.2l-5.2 1.9-.1 3.8-3.3.3v-2.6l1.7-2.3 5.6-2.2-2.3-.4 1.4-1.2.9.4-.8-1.4L54 9l-1-1.1L47.5 9l1.4 1.1-3.8 4.9-3.8-4.8 1.3-1.1-5-1.2L36.2 9l-1.5-.4-.8 1.4.9-.6 1.6 1.1-2.3.5 5.5 2 1.6 2.3v2.9l-3.3-.3v-3.6z'/%3e%3cg fill='%23212121'%3e%3cpath d='M26.2 25h6.4v2.5h-6.4zM26.2 20.9h6.4v2.7h-6.4zM26.2 16.7h6.4v2.6h-6.4zM26.2 12.7h6.4v2.5h-6.4z'/%3e%3c/g%3e%3cg fill='%23212121'%3e%3cpath d='M57.4 25h6.4v2.5h-6.4zM57.4 20.9h6.4v2.7h-6.4zM57.4 16.7h6.4v2.6h-6.4zM57.4 12.7h6.4v2.5h-6.4z'/%3e%3c/g%3e%3cpath fill='%23212121' d='M53.4 36.1h6.4V38h-6.4zM30.2 36.1h6.4V38h-6.4z'/%3e%3c/svg%3e")} +.flag\:AM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M0 0h513v114H0z'/%3e%3cpath fill='%23FF9811' d='M0 228h513v114H0z'/%3e%3c/svg%3e")} +.flag\:AO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath d='M0 171h513v171H0z'/%3e%3cpath fill='%23D80027' d='M0 0h513v171H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M197.01 139.81c-9.32 12.37-9 27.81 3.37 37.12 0 0 162.62 122.13 164.64 123.93 2.02 1.8 6.3 2.38 11-3.27 4.46-5.36 3.31-9.78 1.04-11.63S197.01 139.81 197.01 139.81zM264.42 79.12l11.72 24.03 26.45 3.96-19.23 18.58 4.4 26.38-23.61-12.55-23.73 12.33 4.64-26.33L226 106.77l26.47-3.73z'/%3e%3cpath d='M268.67 39.2l-3.2 22.04c51.81 3.9 92.64 47.18 92.64 99.99 0 55.38-44.9 100.28-100.28 100.28-40.82 0-75.94-24.39-91.59-59.4l-18.4 13.11c19.96 40.59 61.71 68.52 110 68.52 67.66 0 122.51-54.85 122.51-122.51-.01-64.01-49.1-116.54-111.68-122.03z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:AQ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 744 496'%3e%3cpath fill='%233A7DCE' d='M0 0h744v496H0V0z'/%3e%3cpath fill='white' d='M120 125l90 63 54-14 23-81 61-36 92 14 105 55 6 90 34 12v92l-65 115-78 24-72-17 18-30-8-32-10 9-162-25-49-85 20-46-49-62z'/%3e%3c/svg%3e")} +.flag\:AR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h512v342H0z'/%3e%3cpath fill='%23338AF3' d='M0 0h512v114H0zM0 228h512v114H0z'/%3e%3ccircle fill='%23FFDA44' stroke='%23d6ab00' stroke-width='5' cx='256.5' cy='171' r='40'/%3e%3c/svg%3e")} +.flag\:AS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M513 33L95.3 171 513 310.76v30.57L0 171 513 0z'/%3e%3cpath fill='white' d='M513 287.18v24.58L81.72 171 513 30v24.16'/%3e%3cpath fill='%23A2001D' d='M476.98 140.21l-21.89 10.68-3.18-15.32 31.19-29.77s-9.42-40.65-13.75-44.98l-112.32 55.82-6.84 36.76-31.9 28.59-.4 34.2 34.29-22.76 67.23-2.66-1.51 38.11h22.23l11.9-44.64 31.55-24.61-6.6-19.42z'/%3e%3cpath fill='%23EFC100' stroke='%23231F20' stroke-miterlimit='10' d='M317.89 238.41l-22.24-11.11 22.24-11.11h144.46v22.22z'/%3e%3c/svg%3e")} +.flag\:AT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 114h513v114H0z'/%3e%3cpath fill='%23D80027' d='M0 0h513v114H0zM0 228h513v114H0z'/%3e%3c/svg%3e")} +.flag\:AU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cg fill='white'%3e%3cpath d='M222.2 170.7c.3-.3.5-.6.8-.9-.2.3-.5.6-.8.9zM188 212.6l11 22.9 24.7-5.7-11 22.8 19.9 15.8-24.8 5.6.1 25.4-19.9-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zM385.9 241.1l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM337.3 125.1l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9L332 136zM385.9 58.9l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zM428.4 108.6l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.4-7.6-9.5 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM398 166.5l4.1 12.7h13.3l-10.8 7.8 4.2 12.7-10.8-7.9-10.8 7.9 4.1-12.7-10.7-7.8h13.3z'/%3e%3cpath d='M254.8 0v30.6l-45.1 25.1h45.1V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9H99v-48.6l-87.4 48.6H-1.2v-30.6L44 115H-1.2V55.7h59.1L-1.2 22.8V0h26.7L99 40.8V0h55.6v48.6L242.1 0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M142.8 0h-32v69.3h-112v32h112v69.4h32v-69.4h112v-32h-112z'/%3e%3cpath fill='%230052B4' d='M154.6 115l100.2 55.7v-15.8L183 115z'/%3e%3cpath fill='white' d='M154.6 115l100.2 55.7v-15.8L183 115z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M154.6 115l100.2 55.7v-15.8L183 115zM70.7 115l-71.9 39.9v15.8L99 115z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M99 55.7L-1.2 0v15.7l71.9 40z'/%3e%3cpath fill='white' d='M99 55.7L-1.2 0v15.7l71.9 40z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M99 55.7L-1.2 0v15.7l71.9 40zM183 55.7l71.8-40V0L154.6 55.7z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:AW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 363 242'%3e%3cpath fill='%23338AF3' d='M0 0h363v242H0z'/%3e%3cpath fill='white' d='M57 96.9L14.7 78.2 57 59.6l18.6-42.2 18.6 42.2 42.3 18.6-42.3 18.7-18.6 42.2z'/%3e%3cpath fill='%23D80027' d='M75.6 40.6l11.5 26.1 26.1 11.5-26.1 11.5-11.5 26.1-11.5-26.1L38 78.2l26.1-11.5z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M0 152.2h363v15.7H0zM0 183.6h363v15.7H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:AX{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cpath fill='%23FFDA44' d='M513 210.9H202.2V342h-79.8V210.9H0V131.1h122.4V0h79.8v131.1H513v61.2z'/%3e%3cpath fill='%23D80027' d='M513 149.7v42.6H183.7V342H141V192.3H0v-42.6h141V0h42.7v149.7z'/%3e%3c/svg%3e")} +.flag\:AZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='%23338AF3' d='M0 0h513v114H0z'/%3e%3cpath fill='%236DA544' d='M0 228h513v114H0z'/%3e%3cg fill='white'%3e%3cpath d='M265.6 212.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6c7.2 0 13.9 1.8 19.8 5-9.2-9-21.9-14.6-35.8-14.6-28.3 0-51.2 22.9-51.2 51.2s22.9 51.2 51.2 51.2c13.9 0 26.6-5.6 35.8-14.6-5.9 3.2-12.6 5-19.8 5z'/%3e%3cpath d='M297.6 142.2l5.5 15.5 14.9-7.1-7.1 14.9 15.5 5.5-15.5 5.5 7.1 14.9-14.9-7.1-5.5 15.5-5.5-15.5-14.9 7.1 7.1-14.9-15.5-5.5 15.5-5.5-7.1-14.9 14.9 7.1z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='%23FFDA44' d='M99.905 85.329h341.333v341.334'/%3e%3cg fill='white'%3e%3cpath d='M36.561 100.645l14.843-10.807 14.867 10.794-4.979-15.302H41.525z'/%3e%3cpath d='M88.332 103.632L82.649 86.16l-5.672 17.472-18.365.012 14.867 10.796-5.661 17.461 14.843-10.806 14.866 10.795-5.684-17.474 14.854-10.795z'/%3e%3cpath d='M119.59 134.89l-5.684-17.474-5.673 17.474-18.365.011 14.867 10.795-5.661 17.462 14.844-10.807 14.866 10.796-5.685-17.474 14.856-10.794z'/%3e%3cpath d='M150.846 166.146l-5.683-17.473-5.673 17.473-18.364.011 14.866 10.796-5.661 17.461 14.843-10.806 14.866 10.795-5.683-17.474 14.855-10.794z'/%3e%3cpath d='M182.103 197.403l-5.683-17.474-5.672 17.474-18.366.011 14.866 10.795-5.66 17.462 14.843-10.807 14.866 10.796-5.684-17.473 14.855-10.795z'/%3e%3cpath d='M213.359 228.659l-5.683-17.472-5.672 17.472-18.365.012 14.866 10.795-5.66 17.462 14.842-10.806 14.866 10.794-5.683-17.473 14.855-10.795z'/%3e%3cpath d='M244.616 259.916l-5.683-17.473-5.672 17.473-18.366.012 14.867 10.795-5.661 17.462 14.844-10.807 14.866 10.794-5.685-17.472 14.855-10.794z'/%3e%3cpath d='M275.872 291.173L270.19 273.7l-5.673 17.473-18.365.011 14.867 10.796-5.661 17.461 14.843-10.806 14.866 10.795-5.683-17.474 14.853-10.794z'/%3e%3cpath d='M307.13 322.43l-5.683-17.474-5.674 17.474-18.364.011 14.866 10.795-5.661 17.462 14.844-10.807 14.866 10.796-5.684-17.474 14.855-10.794z'/%3e%3cpath d='M338.386 353.686l-5.683-17.472-5.672 17.472-18.365.012 14.866 10.795-5.661 17.462 14.843-10.807 14.866 10.795-5.683-17.472 14.855-10.796z'/%3e%3cpath d='M369.643 384.943l-5.683-17.473-5.672 17.473-18.366.012 14.866 10.794-5.66 17.463 14.843-10.807 14.866 10.795-5.684-17.473 14.855-10.795z'/%3e%3cpath d='M395.216 398.727l-5.672 17.472-18.365.012 14.394 10.453h19.278l14.414-10.476-18.366.011z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BB{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.33'%3e%3cpath fill='%23FFDA44' d='M0 0h512v341.34H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 0h170.66v341.34H0zM341.34 0H512v341.34H341.34z'/%3e%3c/g%3e%3cpath d='M325.74 101.02l-31.97 12.4c-.68 1.35-5.79 7.54-8.18 53.06h-17.05v-60.42L256 78.68l-12.54 27v60.8H226.4c-2.39-45.53-7.8-52.48-8.47-53.84l-31.68-11.63c.15.31 15.4 31.34 15.4 78.01v12.54h41.81v71.07h25.08v-71.07h41.81v-12.54c0-24.13 4.17-44.02 7.68-56.46 3.82-13.57 7.7-21.49 7.74-21.57l-.03.03z'/%3e%3c/svg%3e")} +.flag\:BD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.331h512v341.337H0z'/%3e%3ccircle fill='%23F40B32' cx='218.902' cy='255.994' r='115'/%3e%3c/svg%3e")} +.flag\:BE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.326H0z'/%3e%3cpath d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:BF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%236DA544' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23D80027' d='M0 0h512v170.7H0z'/%3e%3cpath fill='%23FFDA44' d='M256 66.9l25.8 79.3h83.3l-67.4 49 25.7 79.3-67.4-49-67.4 49 25.7-79.3-67.4-49h83.3z'/%3e%3c/svg%3e")} +.flag\:BG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='white' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:BH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M2.216 86.076H512v339.848H2.216z'/%3e%3cpath fill='white' d='M209.455 154.969l-50.236 25.267 50.236 25.257-50.236 25.267 50.236 25.257-50.236 25.266 50.236 25.257-50.236 25.268 50.236 25.257-50.236 25.267 50.236 25.268-36.45 18.33H0V86.07h172.939l36.516 18.364-50.236 25.267z'/%3e%3c/svg%3e")} +.flag\:BI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23D80027' d='M0 0h512v341.3H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M215.9 170.7L0 314.6V26.8zM512 26.8v287.8L296.1 170.7z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M512 26.8L296.1 170.7 512 314.6v26.7h-40.1L256 197.4 40.1 341.3H0v-26.7l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H512z'/%3e%3cpath fill='white' d='M512 26.8L296.1 170.7 512 314.6v26.7h-40.1L256 197.4 40.1 341.3H0v-26.7l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H512z'/%3e%3ccircle fill='white' cx='251.6' cy='170.7' r='100.2'/%3e%3cg fill='%23D80027'%3e%3cpath d='M251.6 93.3l10.1 17.5h20.2l-10.1 17.5 10.1 17.5h-20.2l-10.1 17.5-10.1-17.5h-20.2l10.1-17.5-10.1-17.5h20.2zM210.3 163.4l10.1 17.5h20.3l-10.1 17.5 10.1 17.5h-20.3l-10.1 17.5-10.1-17.5H180l10.1-17.5-10.1-17.5h20.2zM292.8 163.4l10.1 17.5h20.2L313 198.4l10.1 17.5h-20.2l-10.1 17.5-10.1-17.5h-20.2l10.1-17.5-10.1-17.5h20.2z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BJ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M196.641 85.337H512V256H196.641z'/%3e%3cpath fill='%23D80027' d='M196.641 256H512v170.663H196.641z'/%3e%3c/svg%3e")} +.flag\:BL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.33'%3e%3cpath fill='white' d='M0 0h512v341.33H0z'/%3e%3cpath fill='%23E6BC00' d='M157.31 199.76s-9.04 43.93-19.31 40.39c-10.62-3.54-17.53-18.76-17.53-18.76l-14.52 21.24s38.18 8.48 41.01 5.47c1.22-1.14 8.21-15.1 10.34-26.05v-22.29zm-56.13 60.57s-2.48 20.18-1.06 22.66c1.24 2.3 39.48 11.33 39.48 11.33s-24.96 16.46-29.74 20.54L91.8 284.94l-.71-24.61h10.09zM112.51 94.64s39.65 41.6 40.36 45.5c.71 3.72-4.25 3.19-4.25 3.19s-44.79-37.53-49.92-41.07c-5.31-3.55 13.81-7.62 13.81-7.62z'/%3e%3cpath fill='%23ADADAD' d='M99.41 104.73s16.99-.71 16.64-11.51c-.35-10.62-11.15-14.87-19.12-12.39-7.97 2.3-23.01 13.45-13.63 35.05 9.38 21.42 23.37 29.39 26.2 47.8 0 0-5.46 9.86-19.12.35-16.9-11.77-6.2-38.24-10.44-44.96-4.25-7.08-40.95-38.92-40.95-38.92s-30.24 39.37-18 74.92c16.95 49.21 51.74 31.98 64.61 36.76 0 0-42.13 61.96-49.57 67.09 0 0 24.08 8.32 47.8-18.76 0 0 5.84 9.74 7.08 20.18h10.27c4.78-26.2 51.51-64.26 49.92-82.32-1.77-21.25-49.21-49.39-51.69-73.29z'/%3e%3cpath fill='%23E6BC00' d='M359.17 201.27s8.96 42.43 19.23 38.89c10.62-3.54 17.53-18.76 17.53-18.76l14.52 21.24s-37 8.48-39.83 5.47c-1.21-1.14-9.32-13.79-11.52-24.66l.07-22.18zm56.05 59.06s2.48 20.18 1.06 22.66c-1.24 2.3-39.48 11.33-39.48 11.33s24.96 16.46 29.74 20.54l18.06-29.92.71-24.61h-10.09zM403.89 94.64s-39.65 41.6-40.36 45.5c-.71 3.72 4.25 3.19 4.25 3.19s44.79-37.53 49.92-41.07c5.14-3.55-13.81-7.62-13.81-7.62z'/%3e%3cpath fill='%23125ECC' d='M157.31 87.06H359.1v145.46c0 16.06-9.69 21.39-21.91 31.85l-45.92 39.41c-18.25 15.62-47.91 15.57-66.07 0l-46.01-39.43c-12.08-10.35-21.88-15.71-21.88-31.82V87.06z'/%3e%3cpath fill='%23FFE600' d='M200.55 147.71c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65-3c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65 3c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zM214.96 274.43c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41c.01 7.96-6.45 14.41-14.41 14.41zm43.24 14.42c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41c0 7.95-6.45 14.41-14.41 14.41zm43.24-14.42c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41z'/%3e%3cpath fill='%23D60537' d='M157.31 175.36H359.1v57.65H157.31v-57.65z'/%3e%3cpath fill='%23EACE00' d='M142.9 43.82s57.65-14.41 115.31-14.41 115.31 14.41 115.31 14.41l-14.41 57.65s-50.45-14.41-100.89-14.41-100.89 14.41-100.89 14.41L142.9 43.82z'/%3e%3cpath fill='%237A6920' d='M258.2 72.65c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm57.65 5c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41zm-115.3 0c-7.96 0-14.41-6.45-14.41-14.41s6.45-14.41 14.41-14.41 14.41 6.45 14.41 14.41-6.45 14.41-14.41 14.41z'/%3e%3cpath fill='%23ADADAD' d='M365.08 178.02c-1.59 18.06 45.14 56.12 49.92 82.32h10.27c1.24-10.44 7.08-20.18 7.08-20.18 23.72 27.09 47.8 18.76 47.8 18.76-7.44-5.13-49.57-67.09-49.57-67.09 12.88-4.78 47.67 12.45 64.61-36.76 12.24-35.55-18-74.92-18-74.92s-36.7 31.84-40.95 38.92c-4.25 6.73 6.46 33.2-10.44 44.96-13.66 9.51-19.12-.35-19.12-.35 2.83-18.41 16.82-26.38 26.2-47.8 9.38-21.6-5.66-32.75-13.63-35.05-7.97-2.48-18.76 1.77-19.12 12.39-.35 10.8 16.64 11.51 16.64 11.51-2.48 23.9-49.92 52.04-51.69 73.29z'/%3e%3ccircle fill='white' cx='258.2' cy='204.19' r='16.93'/%3e%3c/svg%3e")} +.flag\:BM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.33'%3e%3cpath fill='%23D80027' d='M0 0h512v341.34H0z'/%3e%3cpath fill='%230052B4' d='M0 .1h256v170.6H0z'/%3e%3cpath fill='white' d='M256 0h-22.6L160 48.9V0H96v48.9L22.6 0H0v22.7l46.1 30.7H0v64h46.1L0 148.1v22.6h22.6L96 121.8v48.9h64v-48.9l73.4 48.9H256v-22.6l-46.1-30.7H256v-64h-46.1L256 22.7z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z'/%3e%3cpath fill='%23D80027' d='M0 170.7v-11l62.5-42.3h22.6L7.3 170.7zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zM248.7 170.7l-77.8-53.3h22.6l62.5 42.3v11z'/%3e%3cg transform='translate(13 5)'%3e%3cpath fill='white' d='M303.9 94.94v99.69c0 59.81 79.75 99.69 79.75 99.69s79.75-39.88 79.75-99.69V94.94H303.9z'/%3e%3cpath fill='%232F8F22' d='M436.37 254.44H330.93c23.13 25.08 52.72 39.88 52.72 39.88s29.59-14.8 52.72-39.88z'/%3e%3ccircle fill='%2365B5D2' cx='383.65' cy='214.56' r='39.88'/%3e%3ccircle fill='%23D80027' cx='343.77' cy='194.63' r='19.94'/%3e%3ccircle fill='%23D80027' cx='423.52' cy='194.63' r='19.94'/%3e%3ccircle fill='%23D80027' cx='383.65' cy='154.75' r='19.94'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.33'%3e%3cpath fill='%23FFDA44' d='M0 0h512v341.33H0z'/%3e%3cpath d='M0 193.74l512 127.19V214.26L0 97.08z'/%3e%3cpath fill='white' d='M512 234.26v-86.67L0 20.41v86.67'/%3e%3cg fill='%23D80027' stroke='%23231F20' stroke-width='3' stroke-miterlimit='10'%3e%3cpath d='M306.4 134.01a50.28 50.28 0 016.07 24.02c0 21.55-13.51 39.94-32.52 47.19v-59.51c5.7-1.19 10-6.37 10-12.59 6.9 0 12.5-5.75 12.5-12.85h-.42c6.9 0 12.91-5.75 12.91-12.85h-34.99V76.58l-14.99-27.71-15 27.71v30.84h-34.99c0 7.1 6.01 12.85 12.91 12.85h-.42c0 7.1 5.6 12.85 12.5 12.85 0 6.22 4.29 11.4 9.99 12.59v61.37c-22.09-5.39-38.48-25.3-38.48-49.05 0-8.7 2.2-16.88 6.07-24.02-10.96 11.21-17.72 26.53-17.72 43.44 0 34.32 27.82 62.15 62.15 62.15s62.15-27.83 62.15-62.15c0-16.91-6.77-32.24-17.72-43.44z'/%3e%3cpath d='M198.46 226.81s20.69 27.71 66.5 27.71 66.5-27.71 66.5-27.71l13.47 28.37s-21.03 27.71-79.97 27.71-79.97-27.71-79.97-27.71l13.47-28.37zM129.24 133.18h20.88l24.93 27.26v73.45h-26.28v-68.37zM400 133.18h-20.88l-24.93 27.26v73.45h26.27v-68.37z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:BQ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%230052B4' d='M0 341.3h512V0z'/%3e%3cpath fill='%23FFDA44' d='M250.4 0H0v166.9z'/%3e%3cpath fill='%23D80027' d='M140.4 118.3l12.2 21.2h24.5l-12.3 21.1 12.3 21.2h-24.5L140.4 203l-12.2-21.2h-24.5l12.3-21.2-12.3-21.1h24.5z'/%3e%3ccircle fill='none' stroke='black' stroke-width='9' stroke-miterlimit='10' cx='140.4' cy='160.6' r='57.7'/%3e%3c/svg%3e")} +.flag\:BR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%236DA544' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23FFDA44' d='M256 19.3l205.4 151.4L256 322 50.6 170.7z'/%3e%3ccircle fill='white' cx='256' cy='170.7' r='86.5'/%3e%3cg fill='%230052B4'%3e%3cpath d='M212.8 165.3c-15 0-29.5 2.3-43.2 6.5.6 47.2 39.1 85.3 86.4 85.3 29.3 0 55.2-14.6 70.8-36.9-26.7-33.4-67.9-54.9-114-54.9zM340.9 187.2c1-5.4 1.6-10.9 1.6-16.6 0-47.8-38.7-86.5-86.5-86.5-35.6 0-66.2 21.6-79.5 52.3 11.7-2.4 23.8-3.7 36.2-3.7 50.3.1 95.7 21 128.2 54.5z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:BS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath d='M256 256.006L0 426.668V85.331z'/%3e%3c/svg%3e")} +.flag\:BT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23FF7415' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23FFDA44' d='M512 0H0v341.3'/%3e%3cpath fill='none' stroke='white' stroke-width='42' stroke-miterlimit='10' d='M128.7 255.5s35 54 67.3 32.4c56.9-37.9-68.9-108.6-2.9-152.6 58.3-38.8 76.6 103.5 137.6 62.8 59-39.3-64.7-111.4-9.2-148.4 33.4-22.2 67.1 32.6 67.1 32.6'/%3e%3c/svg%3e")} +.flag\:BV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 33.333 1100 733.333'%3e%3cpath fill='%23ef2b2d' d='M0 0h1100v800H0z'/%3e%3cpath fill='white' d='M300 0h200v800H300z'/%3e%3cpath fill='white' d='M0 300h1100v200H0z'/%3e%3cpath fill='%23002868' d='M350 0h100v800H350z'/%3e%3cpath fill='%23002868' d='M0 350h1100v100H0z'/%3e%3c/svg%3e")} +.flag\:BW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 322.783h512v103.88H0zM0 85.337h512v104.515H0z'/%3e%3c/g%3e%3cpath d='M0 210.877h512v89.656H0z'/%3e%3c/svg%3e")} +.flag\:BY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%2375AF2B' d='M.6.2H512v341H.6z'/%3e%3cpath fill='%23D32424' d='M0 230h512V.2H0'/%3e%3cpath fill='white' d='M100.1 230V.2H0v340.9h511.4-411.3z'/%3e%3cpath fill='%23D32424' d='M51.6 218l-38-47.7 38-46.9 38 46.9zM51.6 113.4l-38-47.7 38-46.9 38 46.9zM51.6 322.6l-38-47.7 38-46.9 38 46.9z'/%3e%3c/svg%3e")} +.flag\:BZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3ccircle fill='white' cx='260.9' cy='170.9' r='118.9'/%3e%3ccircle fill='none' stroke='%236DA544' stroke-width='18' stroke-miterlimit='10' cx='261.9' cy='173.1' r='94.5'/%3e%3cg stroke='black'%3e%3cpath fill='%230052B4' d='M261.9 151.5l-50.6 23.4v20c0 11.8 6.1 22.8 16.2 28.9L262 239l34.5-15.2c10-6.2 16.2-17.1 16.2-28.9v-20l-50.8-23.4z'/%3e%3cpath fill='%23FFDA44' d='M211.3 128.1h101.3v46.7H211.3z'/%3e%3c/g%3e%3cg fill='%23BC0029'%3e%3cpath d='M0 0h512v35H0zM0 306h512v35H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 0h142v341.3H0zM370 0h142v341.3H370zM306.5 206l50.4-25.2-25.2-12.6V143l-50.4 25.2 25.2-50.4h-25.2L256.1 80l-25.2 37.8h-25.2l25.2 50.4-50.4-25.2v25.2l-25.2 12.6 50.4 25.2-12.6 25.2h50.4V269h25.2v-37.8h50.4z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%236DA544' d='M0 0h512v341.3H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M422.7 252.4l6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.2V301l-11.1-8.9-11.1 8.9v-14.2l-13.8-3.2 11.1-8.8-6.2-12.8 13.9 3.2zM376.1 116.1l6.2 12.9 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.1v14.3l-11.1-8.9-11.1 8.9.1-14.3-13.9-3.1 11.1-8.8-6.2-12.8L370 129zM413.1 38.3l6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.9-13.9 3.1v14.2L413.1 78 402 86.9l.1-14.2-13.9-3.1 11.1-8.9-6.2-12.8 13.9 3.2zM464.9 96.7l6.2 12.8 13.9-3.2-6.3 12.8 11.2 8.9-13.9 3.1.1 14.2-11.2-8.9-11.1 8.9.1-14.2L440 128l11.2-8.9-6.3-12.8 13.9 3.2zM436.9 164.8l4.9 14.8h15.6l-12.6 9.2 4.8 14.9-12.7-9.2-12.6 9.2 4.8-14.9-12.6-9.2h15.6z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M306.8 254.7c-49.2 0-89.1-39.9-89.1-89.1s39.9-89.1 89.1-89.1c15.3 0 29.8 3.9 42.4 10.7C329.4 67.9 302.3 56 272.5 56c-60.5 0-109.6 49.1-109.6 109.6S212 275.3 272.5 275.3c29.8 0 56.9-11.9 76.6-31.3-12.6 6.8-27 10.7-42.3 10.7zM140.4 59.5C129.7 41 109.7 28.6 86.8 28.6S44 41 33.3 59.5h107.1zM140.6 59.9l-53.8 53.8-53.7-53.8C28 68.9 25 79.3 25 90.5c0 34.2 27.7 61.9 61.9 61.9s61.9-27.7 61.9-61.9c-.1-11.2-3.1-21.6-8.2-30.6z'/%3e%3cpath fill='%23A2001D' d='M71.4 98.2v52.2c4.9 1.3 10.1 1.9 15.5 1.9s10.5-.7 15.5-1.9V98.2h-31z'/%3e%3c/svg%3e")} +.flag\:CD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23338AF3' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23FFDA44' d='M512 66.9V0H411.7L0 274.4v66.9h100.3z'/%3e%3cpath fill='%23D80027' d='M512 0v40.1L60.2 341.3H0v-40.1L451.8 0z'/%3e%3cpath fill='%23FFDA44' d='M93.6 31.2l16.3 50.4H163l-42.9 31.2 16.4 50.5-42.9-31.2-43 31.2L67 112.8 24.1 81.6h53.1z'/%3e%3c/svg%3e")} +.flag\:CF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23D80027' d='M0 0h512v341.3H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M0 170.7h211.5V256H0zM300.5 170.7H512V256H300.5z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M0 0v85.3h211.5V0h89v85.3H512V0z'/%3e%3cg fill='white'%3e%3cpath d='M300.5 85.3H512v85.3H300.5zM0 85.3h211.5v85.3H0z'/%3e%3c/g%3e%3cg fill='%23FFDA44'%3e%3cpath d='M300.5 341.3h-89V256H0v85.3h512V256H300.5zM105.7 8.6l8.6 26.2h27.5L119.5 51l8.6 26.2L105.7 61 83.4 77.2 91.9 51 69.6 34.8h27.6z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%236DA544' d='M443.726 85.331L102.4 426.657H0V85.331z'/%3e%3cpath fill='%23FFDA44' d='M500.124 85.331L158.798 426.657H11.876L353.202 85.331z'/%3e%3c/svg%3e")} +.flag\:CH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='white' d='M356.174 222.609h-66.783v-66.783h-66.782v66.783h-66.783v66.782h66.783v66.783h66.782v-66.783h66.783z'/%3e%3c/svg%3e")} +.flag\:CI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M330.207 85.331H512v341.337H330.207z'/%3e%3cpath fill='%23FF9811' d='M0 85.331h181.793v341.337H0z'/%3e%3c/svg%3e")} +.flag\:CK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.332h512v341.337H0z'/%3e%3cg fill='white'%3e%3cpath d='M384 156.705l5.283 16.254h17.089l-13.826 10.045 5.281 16.254L384 189.211l-13.825 10.047 5.28-16.254-13.825-10.045h17.089zM313.791 185.786l15.228 7.758 12.084-12.083-2.673 16.879 15.227 7.759-16.879 2.673-2.674 16.88-7.76-15.227-16.878 2.673 12.086-12.084zM284.71 255.995l16.254-5.281.001-17.089 10.044 13.825 16.254-5.282-10.046 13.827 10.046 13.826-16.254-5.28-10.044 13.825v-17.09zM313.791 326.204l7.759-15.229-12.084-12.084 16.881 2.674 7.757-15.227 2.674 16.879 16.879 2.672-15.227 7.759 2.673 16.882-12.084-12.087zM384 355.284l-5.281-16.253h-17.091l13.827-10.045-5.28-16.254L384 322.776l13.827-10.044-5.281 16.254 13.826 10.045h-17.089zM454.209 326.204l-15.229-7.758-12.083 12.084 2.673-16.882-15.227-7.756 16.879-2.675 2.675-16.879 7.756 15.227 16.881-2.674-12.086 12.085zM483.29 255.995l-16.254 5.281v17.09l-10.045-13.826-16.254 5.281 10.046-13.826-10.046-13.827 16.254 5.282 10.045-13.825v17.089zM454.209 185.788l-7.757 15.226 12.082 12.084-16.881-2.673-7.756 15.227-2.675-16.88-16.879-2.675 15.227-7.757-2.673-16.878 12.084 12.082zM0 186.665v16h46.069L0 233.377v7.539l57.377-38.252H80L0 255.998h112v-69.334H0zm96 69.331H22.628L96 207.083v48.913zM176 138.665l80-53.334H144v69.334h112v-16h-46.069L256 107.951v-7.539l-57.377 38.251H176v.002zm-16-53.332h73.372L160 134.246V85.333zM144 255.998h112l-80-53.334h22.623L256 240.917v-7.539l-46.069-30.713H256v-16H144v69.333zm16-48.915l73.372 48.913H160v-48.913zM112 85.331H0l80 53.334H57.377L0 100.413v7.539l46.069 30.712H0v16h112V85.331zm-16 48.915L22.628 85.333H96v48.913z'/%3e%3c/g%3e%3cg fill='%23D80027'%3e%3cpath d='M144 85.331h-32v69.334H0v32h112v69.333h32v-69.333h112v-32H144z'/%3e%3cpath d='M80 138.665L0 85.331v15.082l57.377 38.252zM176 138.665h22.623L256 100.413V85.331zM57.377 202.665L0 240.917v15.081l80-53.333zM176 202.665l80 53.333v-15.081l-57.377-38.252z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='white' d='M256 85.337h256V256H256z'/%3e%3cpath fill='%230052B4' d='M0 85.337h256V256H0z'/%3e%3cpath fill='white' d='M128 109.801l15.108 46.498H192l-39.554 28.739 15.108 46.498L128 202.799l-39.554 28.737 15.108-46.498L64 156.299h48.892z'/%3e%3c/svg%3e")} +.flag\:CM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23D80027' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23496E2D' d='M0 0h170.7v341.3H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M341.3 0H512v341.3H341.3zM256 102.2l17.2 53H329L283.9 188l17.2 53-45.1-32.7-45.1 32.7 17.2-53-45.1-32.8h55.8z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23D80027' d='M0 0h512v341.3H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M352.3 312.6L328 294.9l-24.4 17.7 9.3-28.6-24.3-17.7h30.1l9.3-28.6 9.3 28.6h30.1L343 284zM415.9 120.9l-24.4 17.7 9.3 28.6-24.3-17.7-24.4 17.7 9.3-28.6-24.3-17.7h30.1l9.3-28.6 9.3 28.6zM367.4 57.4L343 75l9.3 28.7L328 86l-24.4 17.7 9.3-28.7-24.3-17.6h30.1l9.3-28.7 9.3 28.7zM415.9 204.4L391.5 222l9.3 28.7-24.3-17.7-24.4 17.7 9.3-28.7-24.3-17.6h30.1l9.3-28.7 9.3 28.7z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M167.6 64.4l26 80.3h84.5l-68.3 49.6 26.1 80.4-68.3-49.7-68.4 49.7 26.1-80.4L57 144.7h84.5z'/%3e%3c/svg%3e")} +.flag\:CO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 343.096h512v83.567H0z'/%3e%3cpath fill='%230052B4' d='M0 256h512v87.096H0z'/%3e%3c/svg%3e")} +.flag\:CR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 211.473h512v89.043H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 352.462h512v74.207H0zM0 85.331h512v74.207H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23FF9811' d='M0-40.8v422.9-211.4z'/%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 0h512v68.3H0zM0 136.5h512v68.3H0zM0 273.1h512v68.3H0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M256 170.7L0 341.3V0z'/%3e%3cpath fill='white' d='M81.5 94.8l16.9 51.9H153l-44.2 32.1 16.9 52-44.2-32.1-44.2 32.1 16.9-52L10 146.7h54.6z'/%3e%3c/svg%3e")} +.flag\:CV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23D80027' d='M0 182.2h512v41.4H0z'/%3e%3cpath fill='white' d='M0 140.8h512v41.4H0zM0 223.6h512V265H0z'/%3e%3cg fill='%23FFDA44' stroke='black' stroke-miterlimit='10'%3e%3cpath d='M150.4 70l6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13.1-17.9 13.1 6.8-21.1-17.9-13.1h22.2zM150.4 279.7l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13h22.2zM52.8 208.8l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13H46zM90.1 91l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-18-13h22.3zM23.8 162H46l6.8-21.1 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13-17.9 13 6.8-21.1zM72.2 310.9l6.8-21.1-18-13h22.3l6.8-21.2 6.9 21.2h22.2l-18 13 6.9 21.1-18-13zM248 208.8l-6.9 21.1h-22.2l18 13-6.9 21.2 18-13.1 18 13.1-6.9-21.2 18-13h-22.2zM210.7 91l-6.8 21.1h-22.2l17.9 13-6.8 21.2 17.9-13.1 18 13.1-6.9-21.2 18-13h-22.2zM277.1 162h-22.2l-6.9-21.1-6.9 21.1h-22.2l18 13.1-6.9 21.1 18-13 18 13-6.9-21.1zM228.7 310.9l-6.9-21.1 18-13h-22.2l-6.9-21.2-6.8 21.2h-22.2l17.9 13-6.8 21.1 17.9-13z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23FFDA44' d='M0 233.5h512v51H0z'/%3e%3cg fill='white'%3e%3cpath d='M168.7 86.5l12.9 39.8h41.8l-33.8 24.5 12.9 39.7-33.8-24.5-33.8 24.5 12.9-39.7-33.8-24.5h41.8zM85.4 32.5l7.8 23.9h25L97.9 71.1l7.8 23.8-20.3-14.7-20.3 14.7 7.8-23.8-20.3-14.7h25.1z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:CX{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%236DA544' d='M0 0h512v341.3'/%3e%3cg fill='white'%3e%3cpath d='M77.6 272l5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9V317l-10.3-8.3-10.2 8.3v-13.2l-12.8-2.9 10.3-8.1-5.8-11.9 12.9 3zM40.5 173.1l5.7 11.9 12.8-3-5.7 11.8 10.3 8.2-12.9 2.9.1 13.2-10.3-8.3-10.3 8.3.1-13.2-12.9-2.9 10.4-8.2L22 182l12.8 3zM77.6 92.2l5.7 11.8 12.8-2.9-5.7 11.8 10.3 8.2-12.8 2.9v13.1l-10.3-8.2-10.2 8.2V124l-12.8-2.9 10.3-8.2-5.8-11.8L72 104zM123.7 155.1l5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9v13.2l-10.3-8.2-10.2 8.2v-13.2l-12.8-2.9 10.3-8.1-5.7-11.9 12.8 3zM90.8 209.1l4.4 13.7h14.5L98 231.3l4.5 13.7-11.7-8.4-11.7 8.4 4.5-13.7-11.7-8.5h14.4z'/%3e%3c/g%3e%3ccircle fill='%23FFDA44' cx='267.1' cy='170.7' r='74.5'/%3e%3cpath fill='%236DA544' d='M267.1 220.3h24.8s10.8-19 0-37.2l24.8-24.8-12.4-24.8h-12.4s-6.2 18.6-31 18.6-31-18.6-31-18.6h-12.4l12.4 24.8-12.4 24.8 12.4 12.4s12.4-24.8 37.2-12.4c0 0 10.5 15.5 0 37.2z'/%3e%3cpath fill='%23FFDA44' d='M464.4 92.2c.6-2.9-.2-17.6-.2-20.7 0-21.3-13.9-39.4-33.2-45.7 5.9 12 9.2 25.4 9.2 39.7 0 4.8-.4 9.5-1.1 14.1-2.9-4.7-6.6-8.9-11.2-12.6-17.1-13.6-40.6-14-57.9-2.5 13.4 2.9 26.3 8.9 37.7 18 9 7.1 16.2 16.8 21.7 26.1 0 0-17.8 10.9-31 15.1s-42.3 7.9-42.3 7.9c72 12 132-36 132-36-6.5-13.4-15.8-4-23.7-3.4z'/%3e%3c/svg%3e")} +.flag\:CY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%236DA544' d='M371.5 275.9l-11.1-15c-22.4 16.1-67.7 35.8-104.3 35.8-35.8 0-79.6-17.1-104.3-35.8l-11.1 15c10 10.3 46.9 27 88.4 38.4-3.9 6-1.6 6.1 2.6 10.8 8.5-6.6 17.4-1.5 24.9-7.3 7.5 5.8 16.3.7 24.9 7.3 5.4-5.6 5.4-5.6 2.5-11.1 41-11.7 77-27.6 87.5-38.1z'/%3e%3cpath fill='%23DB7D00' d='M113.7 168.7s.2 79.9 89 77.8L208 263h10.6s-8.9-49 71.7-49.4c0 0 0-32.9 32.9-32.9h49.4S294 119 442.8 40.1l2.2-15.6s-154.8 84.6-237 68.1c0 0 12.7 50.7-12.9 50.7-12.8 0-11.6-9.6-38.4-9.6-22.3 0-20.6 23.5-31.3 23.2S103 142.3 102 144.8s11.7 23.9 11.7 23.9z'/%3e%3c/svg%3e")} +.flag\:CZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M512 256v170.663H0L215.185 256z'/%3e%3cpath fill='white' d='M512 85.337V256H215.185L0 85.337z'/%3e%3c/svg%3e")} +.flag\:DE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.331h512v341.337H0z'/%3e%3cpath d='M0 85.331h512v113.775H0z'/%3e%3cpath fill='%23FFDA44' d='M0 312.882h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:DJ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%236DA544' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23338AF3' d='M512 0v166.7L0 170.8V0z'/%3e%3cpath fill='white' d='M256 170.7L0 341.3V0z'/%3e%3cpath fill='%23D80027' d='M89.8 92.5l17 52.4H162l-44.6 32.5 17 52.4-44.6-32.4-44.6 32.4 17-52.4-44.6-32.5h55.2z'/%3e%3c/svg%3e")} +.flag\:DK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M190 0h-60v140H0v60h130v142h60V200h323v-60H190z'/%3e%3c/svg%3e")} +.flag\:DM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23496E2D' d='M0 0h512v341.3H0z'/%3e%3cpath d='M0 110.7v120h512v-120z'/%3e%3cpath fill='%23FFDA44' d='M0 110.7h512v40H0z'/%3e%3cpath fill='white' d='M0 190.7h512v40H0z'/%3e%3cpath d='M196 0h120v341.3H196z'/%3e%3cpath fill='%23FFDA44' d='M196 0h40v341.3h-40z'/%3e%3cpath fill='white' d='M274.7 0h40v341.3h-40z'/%3e%3ccircle fill='%23D80027' cx='256' cy='170.7' r='123.1'/%3e%3cg fill='%23496E2D'%3e%3cpath d='M256 58.6l4.6 14.2h15l-12.1 8.9 4.6 14.2-12.1-8.8-12.1 8.8 4.6-14.2-12.1-8.9h15zM190.1 80l12.2 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15l-4.6 14.2-4.7-14.2h-15l12.1-8.8zM149.4 136h15l4.6-14.2 4.7 14.2h15l-12.2 8.8 4.7 14.3-12.2-8.8-12.1 8.8 4.6-14.3zM149.4 205.3l12.1-8.8-4.6-14.3L169 191l12.2-8.8-4.7 14.3 12.2 8.8h-15l-4.7 14.3-4.6-14.3zM190.1 261.4l4.6-14.3-12.1-8.8h15l4.7-14.3 4.6 14.3h15l-12.1 8.8 4.6 14.3-12.1-8.9zM256 282.8l-4.6-14.3h-15l12.1-8.8-4.6-14.3 12.1 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15zM321.9 261.4l-12.2-8.9-12.1 8.9 4.6-14.3-12.1-8.8h15l4.6-14.3 4.7 14.3h15l-12.1 8.8zM362.6 205.3h-15l-4.6 14.3-4.7-14.3h-15l12.2-8.8-4.7-14.3L343 191l12.1-8.8-4.6 14.3zM362.6 136l-12.1 8.8 4.6 14.3-12.1-8.8-12.2 8.8 4.7-14.3-12.2-8.8h15l4.7-14.2 4.6 14.2zM321.9 80l-4.6 14.3 12.1 8.8h-15l-4.7 14.2-4.6-14.2h-15l12.1-8.8-4.6-14.3 12.1 8.8z'/%3e%3c/g%3e%3cpath fill='%23496E2D' d='M279.3 168.7c-11-21.1-14.5-25.1-14.5-25.1s.4-9.7.4-15.6c0-8.8-7.4-15.8-16.5-15.8-8.6 0-15.7 2.9-16.5 11-4.2.9-8.6 4.1-8.6 10.7 0 4.8 1 7.3 5.2 9.3 2.1-4.6 4.3-4.8 9.3-6.4.8.6 1.7 3 2.6 3.4l.3 1s-13.3 6.6-13.3 30.9c0 29.5 22 45.4 22 45.4l-1.8.3-1.9 7.1h22v-7.2l11 17.5c.3-.3 10.2-47.6.3-66.5z'/%3e%3c/svg%3e")} +.flag\:DO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23D80027' d='M0 215.2h211.5v126.1H0z'/%3e%3cpath fill='%230052B4' d='M0 0h211.5v126.2H0z'/%3e%3cpath fill='%23D80027' d='M300.5 0H512v126.2H300.5z'/%3e%3cpath fill='%230052B4' d='M300.5 215.2H512v126.1H300.5z'/%3e%3cg stroke='white' stroke-width='5' stroke-miterlimit='10'%3e%3cpath fill='%230052B4' d='M256 130h-49.9v49.4s19.5 6 49.9 6V130z'/%3e%3cpath fill='%23D80027' d='M206.1 179.4v6c0 27.5 22.3 49.9 49.9 49.9v-49.9c-30.4 0-49.9-6-49.9-6z'/%3e%3cpath fill='%230052B4' d='M256 235.3c27.5 0 49.9-22.3 49.9-49.9v-6s-19.5 6-49.9 6v49.9z'/%3e%3cpath fill='%23D80027' d='M256 130v55.4c30.4 0 49.9-6 49.9-6V130H256z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:DZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%2341662E' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0h256v341.3H256z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M341.5 105.3l-29.4 40.4-47.5-15.4 29.4 40.4-29.4 40.4 47.5-15.4 29.4 40.4v-50l47.5-15.5-47.5-15.4z'/%3e%3cpath d='M309.9 276.7c-58.5 0-106-47.5-106-106s47.5-106 106-106c18.3 0 35.4 4.6 50.4 12.7-23.5-23-55.7-37.2-91.2-37.2-72 0-130.4 58.4-130.4 130.4S197.1 301 269.1 301c35.5 0 67.7-14.2 91.2-37.2-14.9 8.2-32.1 12.9-50.4 12.9z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:EC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23FFDA44' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%230052B4' d='M0 170.7h512V256H0z'/%3e%3cpath fill='%23D80027' d='M0 256h512v85.3H0z'/%3e%3ccircle fill='%23FFDA44' cx='256' cy='170.7' r='59.4'/%3e%3cpath fill='%234C1F00' d='M369.2 79.9s-27.2-13.8-33.9-16c-6.7-2.2-49.1-13.2-49.1-7 0 10.3-13.5 12-15.5 12s-2-5.3-14.8-5.3-13.7 4.8-15.8 4.8c-2.2 0-14.5-1-14.5-11.5 0-5.2-42.9 4-49.1 7-6.1 3.1-33.9 16-33.9 16s45.8 2.7 53.9 6.2 43.8 16.5 43.8 16.5l-2.8 13.3h37.8l-3.8-13.3s35.1-12.7 43.8-16.5 53.9-6.2 53.9-6.2z'/%3e%3cpath fill='%2357BA17' d='M217.7 171.7c0 21.1 17.2 38.3 38.3 38.3 21.1 0 38.3-17.2 38.3-38.3v-11.5h-76.5v11.5z'/%3e%3cpath fill='%23338AF3' d='M256 110.5c-21.1 0-38.3 17.2-38.3 38.3v11.5h76.5v-11.5c.1-21.1-17.1-38.3-38.2-38.3z'/%3e%3c/svg%3e")} +.flag\:EE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23111' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23368FD8' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='white' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:EG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23D80027' d='M0 0h512v113.8H0z'/%3e%3cpath d='M0 227.6h512v113.8H0z'/%3e%3cpath fill='%23C09300' d='M220.3 204.4s0-58.4 4.5-64.7c3.1-4.3 16.8 5.2 22.7 4.5 0 0 4.2-7.5 4.5-12 .3-4.6-1.1-7.6-4.9-6.2 0 0-1.2-2.1.5-3.3 1.6-1.2 5.6.1 5.6.1s-.5-1 1.6-.9c2.9.2 7.2 1.4 7.4 5.6.2 3.1.3 7.7.4 8.7.7 6.8 2.7 8.7 2.7 8.7s18.4-9.2 22-5.2c3.3 3.8 4.5 64.7 4.5 64.7l-18.1-16.8 12.1 29.5s-14.4 2.4-28.9 2.4c-14.5 0-31.1-4.2-31.1-4.2l13.8-28.2-19.3 17.3z'/%3e%3c/svg%3e")} +.flag\:EH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath d='M0 0h512v113.8H0z'/%3e%3cpath fill='%23428823' d='M0 227.6h512v113.8H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M256 170.7L0 341.3V0zM309.1 170.7c0-22.9 13.1-42.1 34.6-46.8-3.3-.7-6.7-1.1-10.3-1.1-26.4 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9c3.5 0 7-.4 10.3-1.1-21.5-4.8-34.6-23.9-34.6-46.8z'/%3e%3cpath d='M365 129.2l10.3 31.7h33.3l-27 19.6 10.3 31.7-26.9-19.6-27 19.6 10.3-31.7-27-19.6h33.4z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:ER{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23338AF3' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%2356AF35' d='M0 0h512v170.7H0z'/%3e%3cpath fill='%23D80027' d='M0 341.3l512-170.7L0 0v341.3z'/%3e%3cg fill='%23ffc945'%3e%3cpath d='M134.7 231.5c33.6 0 60.8-27.2 60.8-60.8s-27.2-60.8-60.8-60.8-60.8 27.2-60.8 60.8 27.2 60.8 60.8 60.8zm0 24.3c-47 0-85.2-38.1-85.2-85.2s38.1-85.2 85.2-85.2 85.2 38.1 85.2 85.2-38.2 85.2-85.2 85.2z'/%3e%3ccircle cx='119.5' cy='148.3' r='17.5'/%3e%3ccircle cx='148.9' cy='158.5' r='17.5'/%3e%3ccircle cx='134.7' cy='135.2' r='17.5'/%3e%3ccircle cx='119.5' cy='172.7' r='17.5'/%3e%3ccircle cx='149.9' cy='182.8' r='17.5'/%3e%3ccircle cx='122.5' cy='198' r='17.5'/%3e%3ccircle cx='145.9' cy='205.2' r='17.5'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:ES{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.337H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.331h512v113.775H0zM0 312.882h512v113.775H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:ET{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22.5 15'%3e%3cpath fill='%2320AA46' d='M0 0h22.5v5H0V0z'/%3e%3cpath fill='%23E92F3B' d='M0 10h22.5v5H0v-5z'/%3e%3cpath fill='%23FADF50' d='M0 5h22.5v5H0V5z'/%3e%3ccircle fill='%23205CCA' cx='11.3' cy='7.5' r='5.2'/%3e%3cpath fill='%23FFDB3D' d='M11.2 9.2L8.8 11l.9-2.9-2.4-1.8h3l1-2.8 1 2.9h3l-2.4 1.8.9 2.9-2.6-1.9zm0-1l.9.6-.3-1.1.9-.7h-1.1l-.4-1.1-.4 1.1H9.7l.9.7-.3 1.1c0 .1.9-.6.9-.6z'/%3e%3c/svg%3e")} +.flag\:FI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%232E52B2' d='M512 129.3V212H203.7v129.3H121V212H0v-82.7h121V0h82.7v129.3z'/%3e%3c/svg%3e")} +.flag\:FJ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%232E52B2' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0v22.6l-46.1 30.7H256v64h-46.1L256 148v22.7h-22.6l-73.4-49v49H96v-49l-73.4 49H0V148l46.1-30.7H0v-64h46.1L0 22.6V0h22.6L96 48.9V0h64v48.9L233.4 0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z'/%3e%3cpath d='M0 0v15.1l57.4 38.2H80zM256 0v15.1l-57.4 38.2H176z'/%3e%3cpath d='M0 0v15.1l57.4 38.2H80zM256 0v15.1l-57.4 38.2H176zM0 170.7v-15.1l57.4-38.3H80zM256 170.7v-15.1l-57.4-38.3H176z'/%3e%3c/g%3e%3cpath fill='%23F3F3F3' d='M307.1 127.1v92c0 61.6 80.5 80.5 80.5 80.5s80.4-19 80.4-80.6v-92l-80.5-23-80.4 23.1z'/%3e%3cpath fill='%23D80027' d='M468 132.8V98.3H307.1v34.5h69v69h-69v23h69V296c6.9 2.5 11.5 3.5 11.5 3.5s4.6-1.1 11.5-3.5v-71.2h69v-23h-69v-69H468z'/%3e%3c/svg%3e")} +.flag\:FK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0v30.6l-45.2 25.1H256V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9h-55.6v-48.6l-87.5 48.6H0v-30.6L45.2 115H0V55.7h59.1L0 22.8V0h26.7l73.5 40.8V0h55.6v48.6L243.3 0z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.8 115L256 170.7v-15.8L184.2 115z'/%3e%3cpath fill='white' d='M155.8 115L256 170.7v-15.8L184.2 115z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M155.8 115L256 170.7v-15.8L184.2 115zM71.8 115L0 154.9v15.8L100.2 115z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M100.2 55.6L0 0v15.7l71.8 39.9z'/%3e%3cpath fill='white' d='M100.2 55.6L0 0v15.7l71.8 39.9z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M100.2 55.6L0 0v15.7l71.8 39.9zM184.2 55.6L256 15.7V0L155.8 55.6z'/%3e%3c/g%3e%3cpath fill='%231F8BDE' d='M312.2 194.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3z'/%3e%3cpath fill='white' d='M312.2 194.2v-90c0-8.5 6.5-15.3 15-15.3h120.5c8.3 0 15 6.8 15 15.3v90c0 75.2-75.2 105.3-75.2 105.3s-75.3-30.1-75.3-105.3zm79.6 86.3c7.9-4.5 15.9-10 23.2-16.7 20.5-18.5 32.6-41.4 32.6-69.7v-90c0-.3-120.4-.3-120.4-.3v90.3c0 28.3 12.1 51.2 32.6 69.7 8.3 7.5 17.6 13.9 27.6 19 1.4-.6 2.8-1.4 4.4-2.3z'/%3e%3cpath fill='%23187536' d='M347.1 193.4c-2.6-7.9 1.7-14.3 10.1-14.3h60.5c8.2 0 12.8 6.3 10.1 14.3l-5.5 16.5c-2.6 7.9-8.9 9.2-15.8 4 0 0 2.6-4.8-19.1-4.8-21.7 0-19.1 4.8-19.1 4.8-6.1 5.7-13.1 4-15.8-4 .1.1-5.4-16.5-5.4-16.5z'/%3e%3cpath fill='white' d='M357.4 179.1c8.1 1.6 17.8-15 30.1-15 13.1 0 21.8 17.1 30.1 15 7.4-1.8 15-22.2 15-30.1 0-16.6-20.2-30.1-45.1-30.1-24.9 0-45.1 13.5-45.1 30.1-.1 8.5 6.6 28.5 15 30.1zM356 270.7c6.2.4 12.5-1.8 17.2-6.5l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c4.7 4.7 11 6.9 17.1 6.5 5.3-.3 32.5-33.5 25.7-32.6-4.6.6-9.1 2.8-12.7 6.3l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-3.5-3.5-7.8-5.6-12.3-6.3-6.7-1.1 20.1 32.2 25.3 32.5zM322.1 210c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0l9 9c8.8 8.7 22.9 8.7 31.7 0l9-9c2.9-2.9 7.5-2.9 10.4 0 0 0 5.5-14.8 2.5-15.9-7.9-2.9-17.2-1.2-23.5 5.2l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-8.7-8.8-22.9-8.8-31.7-.1l-.1.1-9 9c-2.9 2.9-7.5 2.9-10.4 0l-9-9c-6.2-6.2-15.1-8-22.8-5.5-3.1 1.1 1.9 16.1 1.9 16.1z'/%3e%3c/svg%3e")} +.flag\:FM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23338AF3' d='M0 0h512v341.3H0z'/%3e%3cg fill='white'%3e%3cpath d='M256 37.9l10.1 31.2H299l-26.6 19.3 10.2 31.2-26.6-19.3-26.6 19.3 10.2-31.2L213 69.1h32.9zM123.2 170.7l31.2-10.2v-32.8l19.3 26.6 31.2-10.2-19.3 26.6 19.3 26.5-31.2-10.1-19.3 26.5v-32.8zM256 303.5l-10.1-31.2H213l26.6-19.3-10.2-31.3L256 241l26.6-19.3-10.2 31.3 26.6 19.3h-32.9zM388.8 170.7l-31.2 10.1v32.8l-19.3-26.5-31.2 10.1 19.3-26.5-19.3-26.6 31.2 10.2 19.3-26.6v32.8z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:FO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%230F61A5' d='M512 214.5H206.2v126.8H118.4V214.5H0v-87.7h118.4V0H206.2v126.8H512V192z'/%3e%3cpath fill='%23E50E3D' d='M512 149.3V192H183.7v149.3H141V192H0v-42.7h141V0h42.7v149.3z'/%3e%3c/svg%3e")} +.flag\:FR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%230052B4' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:GA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%230052B4' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:GB{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='%23D80027' d='M288 85.33h-64v138.666H0v64h224v138.666h64V287.996h224v-64H288z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M393.785 315.358L512 381.034v-65.676zM311.652 315.358L512 426.662v-31.474l-143.693-79.83zM458.634 426.662l-146.982-81.664v81.664z'/%3e%3c/g%3e%3cpath fill='white' d='M311.652 315.358L512 426.662v-31.474l-143.693-79.83z'/%3e%3cpath fill='%23D80027' d='M311.652 315.358L512 426.662v-31.474l-143.693-79.83z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M90.341 315.356L0 365.546v-50.19zM200.348 329.51v97.151H25.491z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M143.693 315.358L0 395.188v31.474l200.348-111.304z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M118.215 196.634L0 130.958v65.676zM200.348 196.634L0 85.33v31.474l143.693 79.83zM53.366 85.33l146.982 81.664V85.33z'/%3e%3c/g%3e%3cpath fill='white' d='M200.348 196.634L0 85.33v31.474l143.693 79.83z'/%3e%3cpath fill='%23D80027' d='M200.348 196.634L0 85.33v31.474l143.693 79.83z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M421.659 196.636L512 146.446v50.19zM311.652 182.482V85.331h174.857z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M368.307 196.634L512 116.804V85.33L311.652 196.634z'/%3e%3c/svg%3e")} +.flag\:GD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23c60a0a' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%233E8446' d='M256 170.7L44.5 296.8V44.5z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M256 170.7l211.5 126.1h-423zM467.5 44.5L256 170.7 44.5 44.5z'/%3e%3c/g%3e%3cpath fill='%233E8446' d='M467.5 44.5v252.3L256 170.7z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M256 10.4l3.3 10.2H270l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zM170.1 10.4l3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zM341.9 10.4l3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zM256 304.2l3.3 10.2H270l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zM170.1 304.2l3.3 10.2h10.7l-8.6 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7zM341.9 304.2l3.3 10.2H356l-8.7 6.3 3.3 10.2-8.7-6.3-8.7 6.3 3.3-10.2-8.6-6.3h10.7z'/%3e%3c/g%3e%3ccircle fill='%23c60a0a' cx='244.5' cy='170.7' r='76.2'/%3e%3cpath fill='%23FFDA44' d='M244.5 110.1l13.6 41.8h44l-35.6 25.8 13.6 41.8-35.6-25.8-35.5 25.8 13.6-41.8-35.6-25.8h44zM107.7 167.8c4.4 6.9 2.3 16.1-4.6 20.5s-16.1 2.3-20.5-4.6c-7.9-12.5-3.3-33-3.3-33s20.4 4.6 28.4 17.1z'/%3e%3ccircle fill='%23A2001D' cx='99.1' cy='182.1' r='7.4'/%3e%3c/svg%3e")} +.flag\:GE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22.5 15'%3e%3cpath fill='white' d='M.8 0h21v15H.8V0z'/%3e%3cpath fill='%23eb000e' d='M9.8 6H0v3h9.8v6h3V9h9.8V6h-9.8V0h-3v6z'/%3e%3cpath fill='%23eb000e' d='M17.3 2.7l-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm-12.7 0l-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm0 9l-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2zm12.7 0l-.2-1.2h1l-.2 1.2 1.2-.2v1l-1.2-.2.2 1.2h-1l.2-1.2-1.2.2v-1l1.2.2z'/%3e%3c/svg%3e")} +.flag\:GF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 60'%3e%3cpath fill='%23FDEB01' d='M0 0l90 60H0z'/%3e%3cpath fill='%2358A846' d='M90 0v60L0 0z'/%3e%3cpath fill='%23ED3D24' stroke='%23A02021' stroke-miterlimit='10' d='M54.1 35.3l14.7-10.7H50.6L45 7.3l-5.6 17.3H21.2l14.7 10.7-5.6 17.4L45 42l14.7 10.7z'/%3e%3c/svg%3e")} +.flag\:GG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M308 0H204v118.7H0v104h204V342h104V222.7h205v-104H308z'/%3e%3cpath fill='%23FFDA44' d='M368.6 188l26 17.3V136l-26 17.3h-95.3V58.1l17.3-26h-69.2l17.3 26v95.2h-95.3l-26-17.3v69.3l26-17.3h95.3v95.2l-17.3 26h69.2l-17.3-26V188z'/%3e%3c/svg%3e")} +.flag\:GH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23496E2D' d='M0 312.888h512v113.775H0z'/%3e%3cpath d='M255.883 199.111l14.119 43.458 40.366 3.2-36.969 26.861 19.453 40.259-36.969-26.859-36.97 26.859 14.123-43.459-36.969-26.861h45.696z'/%3e%3c/svg%3e")} +.flag\:GI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M0 230h513v112H0z'/%3e%3cpath fill='%23D80027' stroke='black' stroke-miterlimit='10' d='M363.1 131.8V99.1H374V77.3h-21.9v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7h-21.8V55.5h10.9V33.7h-21.8v10.9h-10.9V33.7H254v10.9h-10.9V33.7h-21.8v21.8h10.9v76.3h-21.8V99.1h10.9V77.3h-21.8v10.9h-21.8V77.3h-21.8v21.8h10.9v32.7H145V219h239.9v-87.2z'/%3e%3cpath fill='%23FFDA44' stroke='black' stroke-miterlimit='10' d='M264.9 235.5l-24.2 18.2 19.1 14.3v31.3h-23.2v9h23v7.9h-23v9.3H270V268l19.1-14.3-24.2-18.2zm0 25.3l-10.1-7.1 10.1-7.1 10.1 7.1-10.1 7.1z'/%3e%3cpath d='M239.6 209.7v-27.9s.1-22.3 25-22.3c24.8 0 25.7 22 25.7 22v28.2h-50.7zM170.5 209.7v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8z'/%3e%3cpath d='M169.1 209.7v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zM320.9 209.7v-24.3s.1-18.7 19.6-18.7 20.2 18.4 20.2 18.4v24.5h-39.8zM329.3 132v-15.7s.1-12.1 11.3-12.1c11.3 0 11.7 11.9 11.7 11.9V132h-23zM250.5 132v-23.7s.1-18.3 14.3-18.3c14.2 0 14.7 18 14.7 18v24h-29zM177.5 132v-15.7s.1-12.1 11.3-12.1 11.7 11.9 11.7 11.9V132h-23z'/%3e%3c/svg%3e")} +.flag\:GL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M513 0v171H0V0z'/%3e%3ccircle fill='white' cx='185.8' cy='171.2' r='117.8'/%3e%3cpath fill='%23D80027' d='M68 171c0-65.1 52.8-117.8 117.8-117.8 65.1 0 117.8 52.8 117.8 117.8'/%3e%3c/svg%3e")} +.flag\:GM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%231a7e25' d='M0 322.783h512v103.88H0z'/%3e%3cpath fill='%23cf0d19' d='M0 85.337h512v104.515H0z'/%3e%3cpath fill='%230052B4' d='M0 210.877h512v89.656H0z'/%3e%3c/svg%3e")} +.flag\:GN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23FFDA44' d='M0 0h512v342H0z'/%3e%3cpath fill='%236DA544' d='M342 0h171v342H342z'/%3e%3cpath fill='%23D80027' d='M0 0h171v342H0z'/%3e%3c/svg%3e")} +.flag\:GP{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%230052B4' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:GQ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%236DA544' d='M0 0h513v113.8H0z'/%3e%3cpath fill='%23D80027' d='M0 227.6h513V342H0z'/%3e%3cpath fill='%230070C8' d='M126 170.7L0 341.3V0z'/%3e%3cpath fill='none' stroke='black' stroke-miterlimit='10' d='M233.8 139.4v40.4c0 35.6 35.6 35.6 35.6 35.6s35.6 0 35.6-35.6v-40.4h-71.2z'/%3e%3cpath fill='%23786145' d='M264.5 179.8h9.8l4 25.8h-17.8z'/%3e%3cpath fill='%236DA544' d='M287.2 162c0-9.8-8-14.8-17.8-14.8s-17.8 5-17.8 14.8c-4.9 0-8.9 4-8.9 8.9s4 8.9 8.9 8.9h35.6c4.9 0 8.9-4 8.9-8.9s-4-8.9-8.9-8.9z'/%3e%3cg fill='%23FFDA00' stroke='black' stroke-miterlimit='10'%3e%3cpath d='M230.7 120l1.9 3.3h3.8l-1.9 3.3 1.9 3.2h-3.8l-1.9 3.3-1.9-3.3H225l1.9-3.2-1.9-3.3h3.8zM246 120l1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zM261.3 120l1.9 3.3h3.7l-1.9 3.3 1.9 3.2h-3.7l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8zM277.1 120l1.9 3.3h3.8l-1.9 3.3 1.9 3.2H279l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zM293.1 120l1.9 3.3h3.8l-1.9 3.3 1.9 3.2H295l-1.9 3.3-1.9-3.3h-3.7l1.8-3.2-1.8-3.3h3.7zM308.1 120l1.9 3.3h3.7l-1.9 3.3 1.9 3.2H310l-1.9 3.3-1.9-3.3h-3.8l1.9-3.2-1.9-3.3h3.8z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:GR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%231571CC'%3e%3cpath d='M0 0h513v38H0zM0 76h513v38H0zM0 152h513v38H0zM0 228h513v38H0zM0 304h513v38H0z'/%3e%3c/g%3e%3cpath fill='%231571CC' d='M0 0h190v190H0z'/%3e%3cg fill='white'%3e%3cpath d='M0 76h190v38H0z'/%3e%3cpath d='M76 0h38v190H76z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:GS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z'/%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cpath fill='%23D80027' d='M0 170.7v-11l62.5-42.3h22.6L7.3 170.7zM7.3.1l77.8 53.2H62.5L0 11.1V.1zM256 .1v11l-62.5 42.3h-22.6L248.7.1zM248.7 170.7l-77.8-53.3h22.6l62.5 42.3v11z'/%3e%3cg%3e%3cellipse fill='white' cx='443.4' cy='233.6' rx='29' ry='43.5'/%3e%3cellipse fill='%23FFCE00' cx='406.9' cy='317.7' rx='22' ry='9.3'/%3e%3cellipse fill='%23FFCE00' cx='364' cy='317.7' rx='22' ry='9.3'/%3e%3cpath fill='%2339B200' d='M342 190.1l43.4 86.9 43.5-86.9z'/%3e%3cellipse fill='%239B9B9B' cx='327.5' cy='233.6' rx='29' ry='43.5'/%3e%3cpath fill='%23757575' d='M371 175.6l-14.5 14.5h57.9l-14.5-14.5 14.5-43.5s-13-29-29-29-29 29-29 29l14.6 43.5z'/%3e%3ccircle fill='%23C6B56F' cx='385.4' cy='67' r='29'/%3e%3ccircle fill='%23A54A00' cx='386' cy='88.7' r='29'/%3e%3ccircle fill='white' cx='443.4' cy='117.7' r='29'/%3e%3ccircle fill='%230049FF' cx='342.2' cy='146.7' r='29'/%3e%3ccircle fill='%230041F9' cx='429.8' cy='146.7' r='29'/%3e%3ccircle fill='%23F7D71E' cx='386' cy='233.6' r='29'/%3e%3ccircle fill='%23CEC851' cx='457.9' cy='190.1' r='29'/%3e%3ccircle fill='white' cx='385.4' cy='289.5' r='29'/%3e%3cpath fill='%237C0B29' d='M371 135.7l14.5-3.5 14.5 3.5c0 7.5-14.5 11-14.5 11s-14.5-3.5-14.5-11z'/%3e%3ccircle fill='white' cx='327.5' cy='117.4' r='29'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:GT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 0h171v342H0zM342 0h171v342H342z'/%3e%3c/g%3e%3ccircle fill='%23DCC26D' cx='256' cy='155.8' r='25.5'/%3e%3cpath fill='%23628A40' d='M194.2 155.9c0 22.1 11.8 42.5 30.8 53.5 5.9 3.4 13.5 1.4 16.9-4.5 3.4-5.9 1.4-13.5-4.5-16.9-11.5-6.6-18.5-18.9-18.5-32.1 0-6.8-5.5-12.4-12.4-12.4s-12.3 5.5-12.3 12.4zm95.1 52.1c17.8-11.4 28.6-31 28.5-52.1 0-6.8-5.5-12.4-12.4-12.4-6.8 0-12.4 5.5-12.4 12.4 0 12.7-6.5 24.5-17.1 31.3-5.8 3.6-7.7 11.2-4.1 17 3.6 5.8 11.2 7.7 17 4.1.2-.1.3-.2.5-.3z'/%3e%3c/svg%3e")} +.flag\:GU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%230052B4' d='M11.1 11.1h489.7v319.1H11.1z'/%3e%3cpath fill='%237DBEF1' d='M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z'/%3e%3cpath fill='%231C8AE6' d='M179.8 180.7h152.6l-29.3 64.9h-95.2z'/%3e%3cpath fill='%23FFF042' d='M192.3 205.9s40.5 38.2 51 38.2c12.4 0 12.6-18.4 25.5-25.5 20.2-11.1 51-12.7 51-12.7L297 248.7l-41 36.6-46.8-39.7-16.9-39.7z'/%3e%3cpath fill='%23259C7B' d='M256 157.5l-22.5 15.6 7.9-26.2-21.8-16.5 27.4-.5 9-25.9 9 25.9 27.4.5-21.8 16.6 7.9 26.2-22.5-15.7z'/%3e%3cpath fill='%238E5715' d='M249.7 144.6c-.9 9.2-1.5 18.4-1.7 27.6-.3 11.9.3 20.7 2 26 2.2 6.6 7.2 12.9 14.2 18.9 5.3 4.6 10.6 8.1 14.2 10.1 3.1 1.7 7 .6 8.7-2.4 1.7-3.1.6-7-2.4-8.7-4.3-2.5-8.4-5.4-12.2-8.7-5.4-4.6-9.1-9.2-10.4-13.3-1.1-3.4-1.6-11.3-1.4-21.7.2-8.9.8-17.8 1.7-26.6.4-3.5-2.2-6.6-5.7-7-3.6-.3-6.7 2.3-7 5.8z'/%3e%3cpath fill='white' d='M217.8 170.7l25.5 38.2h-25.5v-38.2z'/%3e%3cpath fill='none' stroke='%23D80027' stroke-width='12' stroke-miterlimit='10' d='M256 285.3s76.4-51.3 76.4-114.6S256 56 256 56s-76.4 51.3-76.4 114.6S256 285.3 256 285.3z'/%3e%3c/svg%3e")} +.flag\:GW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v170.663H0z'/%3e%3cpath fill='%23D80027' d='M0 85.331h181.793v341.337H0z'/%3e%3cpath d='M98.32 195.127l15.107 46.497h48.894l-39.555 28.74 15.108 46.498-39.554-28.737-39.556 28.737 15.111-46.498-39.554-28.74h48.891z'/%3e%3c/svg%3e")} +.flag\:GY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 600'%3e%3cpath fill='%23009E49' d='M0 0h900v600H0V0z'/%3e%3cpath fill='white' d='M0 0l947 300L0 600V0z'/%3e%3cpath fill='%23FFD00D' d='M0 26.1L870 300 0 573.9V26.1z'/%3e%3cpath fill='%232D2D2D' d='M0 0l450 300L0 600V0z'/%3e%3cpath fill='%23D3132F' d='M0 35l397.5 265L0 565V35z'/%3e%3c/svg%3e")} +.flag\:HK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cg fill='white'%3e%3cpath d='M274.2 119.8c-5.1 21.1-14.1 17.1-18.5 35.5-26.1-6.3-42.1-32.5-35.9-58.6 6.3-26.1 32.5-42.1 58.5-35.9-8.7 36.9.5 40.1-4.1 59zM206.6 135.4c18.5 11.3 11.9 18.7 28 28.6-14 22.9-43.9 30-66.8 16s-30-43.9-16-66.8c32.3 19.8 38.2 12.1 54.8 22.2zM200.6 204.6c16.5-14.1 21.4-5.5 35.8-17.8 17.4 20.4 15 51-5.4 68.4-20.4 17.4-51 15-68.4-5.4 28.7-24.6 23.2-32.6 38-45.2zM264.5 231.7c-8.3-20.1 1.4-22.1-5.9-39.6 24.8-10.3 53.2 1.5 63.4 26.3 10.3 24.8-1.5 53.2-26.3 63.4-14.5-35-23.8-32.2-31.2-50.1zM310 179.3c-21.6 1.7-20.6-8.1-39.5-6.6-2.1-26.7 17.9-50.1 44.6-52.2 26.7-2.1 50.1 17.9 52.2 44.6-37.7 2.9-37.9 12.7-57.3 14.2z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:HM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.333h512V426.67H0z'/%3e%3cg fill='white'%3e%3cpath d='M223.397 255.996c.273-.304.543-.609.813-.916-.27.308-.546.61-.82.916h.007zM189.217 297.923l10.958 22.913 24.747-5.718-11.083 22.853 19.9 15.781-24.776 5.585.069 25.398-19.815-15.89-19.814 15.89.069-25.398-24.776-5.585 19.9-15.781-11.083-22.853 24.746 5.718zM387.076 326.387l5.227 10.929 11.803-2.728-5.286 10.9 9.492 7.528-11.818 2.663.032 12.114-9.45-7.578-9.45 7.578.032-12.114-11.817-2.663 9.491-7.528-5.285-10.9 11.803 2.728zM338.453 210.448l5.227 10.93 11.803-2.729-5.286 10.901 9.491 7.528-11.817 2.663.032 12.115-9.45-7.58-9.451 7.58.033-12.115-11.818-2.663 9.491-7.528-5.284-10.901 11.802 2.729zM387.076 144.198l5.227 10.93 11.803-2.73-5.286 10.902 9.491 7.527-11.817 2.664.032 12.114-9.45-7.58-9.45 7.58.032-12.114-11.817-2.664 9.491-7.527-5.285-10.902 11.803 2.73zM429.547 193.886l5.227 10.929 11.802-2.728-5.284 10.9 9.491 7.527-11.818 2.664.033 12.114-9.451-7.578-9.45 7.578.032-12.114-11.817-2.664 9.491-7.527-5.286-10.9 11.803 2.728zM399.179 251.856l4.11 12.652h13.304l-10.763 7.82 4.112 12.652-10.763-7.819-10.765 7.819 4.112-12.652-10.763-7.82h13.304z'/%3e%3cpath d='M256 85.333v30.553l-45.167 25.099H256v59.359h-59.103L256 233.179v22.817h-26.68l-73.494-40.826v40.826h-55.652v-48.573l-87.43 48.573H0v-30.553l45.167-25.099H0v-59.359h59.103L0 108.139V85.333h26.68l73.494 40.827V85.333h55.652v48.573l87.43-48.573z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M144 85.33h-32v69.332H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cpath fill='white' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915zM71.846 200.344L0 240.259v15.737l100.174-55.652z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cpath fill='white' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M100.174 140.982L0 85.33v15.737l71.847 39.915zM184.154 140.982L256 101.067V85.33l-100.174 55.652z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:HN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 0h513v114H0zM0 228h513v114H0zM203.5 117.9l6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zM308.5 117.9l6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zM256 147.6l6.7 16.6 17.6 1-14 10.9 4.7 17.7-15-9.9-15 9.9 4.7-17.7-14-10.9 17.6-1zM203.5 177.3l6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1zM308.5 177.3l6.7 16.6 17.6 1-14 10.9 4.7 17.6-15-9.9-15 9.9 4.7-17.6-14-10.9 17.6-1z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:HR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M0 0h513v114H0z'/%3e%3cpath fill='%230052B4' d='M0 228h513v114H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M309.3 113.2v-44l17.5-14.4 17.7 14.4v44zM203.7 113.2v-44l-17.3-14.4-17.9 14.4v44zM238.9 113.2v-44l17.6-14.4 17.6 14.4v44z'/%3e%3c/g%3e%3cg fill='%230052B4'%3e%3cpath d='M309.3 113.2h-35.2v-44l17.5-14.4 17.7 14.4zM238.9 113.2h-35.2v-44l17.5-14.4 17.7 14.4z'/%3e%3c/g%3e%3cpath stroke='%23D80027' fill='white' d='M168.5 113.2v101.9c0 24.3 14.4 46.2 35.4 59.4 21.3 13.4 42.1 14.7 52.6 14.7s31.4-1.7 52.6-14.8c21-13 35.4-35.1 35.4-59.3V113.2h-176z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M168.5 113.2h35.2v35.2h-35.2zM238.9 113.2h35.2v35.2h-35.2zM309.3 113.2h35.2v35.2h-35.2zM203.7 148.4h35.2v35.2h-35.2zM274.1 148.4h35.2v35.2h-35.2zM168.5 183.6h35.2v35.2h-35.2zM203.7 218.8h35.2V254h-35.2zM238.9 183.6h35.2v35.2h-35.2zM309.3 183.6h35.2v35.2h-35.2zM274.1 218.8h35.2V254h-35.2zM309.3 274.3c8.6-5.4 16.2-12.3 22-20.3h-22v20.3zM181.7 254c5.8 8 13.3 14.9 22 20.4V254h-22zM238.9 254v33.7c7.2 1.2 13.3 1.5 17.6 1.5 4.3 0 10.4-.3 17.6-1.6V254h-35.2z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:HT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23A2001D' d='M0 0h513v172H0z'/%3e%3cpath fill='%230052B4' d='M0 172h513v172H0z'/%3e%3cpath fill='white' d='M381.4 251.5l-110.7-13.8-110.8 13.8V85.4h221.5z'/%3e%3ccircle fill='%230052B4' cx='270.7' cy='182.3' r='55.4'/%3e%3ccircle fill='%23A2001D' cx='270.7' cy='182.3' r='27.7'/%3e%3cpath fill='%236DA544' d='M229.1 113.1h83.1l-41.5 41.5z'/%3e%3cpath fill='%23FFDA44' d='M256.8 140.8h27.7v83h-27.7z'/%3e%3cpath fill='%236DA544' d='M314.9 215.5h-88.5l-66.5 36h221.5z'/%3e%3c/svg%3e")} +.flag\:HU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:ID{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23A2001D' d='M0 85.337h512V256H0z'/%3e%3c/svg%3e")} +.flag\:IE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23FF9811' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:IL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M340.6 122.4h-56.1l-28-48.6-28 48.6h-56.1l28 48.6-28 48.6h56.1l28 48.6 28-48.6h56.1l-28-48.6 28-48.6zM293.2 171L276 204.2h-38.9L219.8 171l17.2-33.2h38.9l17.3 33.2zm-36.7-71.8l11.9 23.3h-23.9l12-23.3zm-58.3 38.6h23.9l-10.8 21-13.1-21zm0 66.4l13-22.1 11.9 22.1h-24.9zm58.3 37.5l-11.9-22.1h23.9l-12 22.1zm59.4-37.5h-25l11.9-22.1 13.1 22.1zm-26.1-66.4h26.1l-13 22.1-13.1-22.1zM0 21.3h512V64H0zM0 277.3h512V320H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:IM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23E52D42' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M393.3 68.2h-45.8l-33.8 80.2-34.4-22.9s-24.7-59.1-34.4-68.2c-9.7-9.7-18.7-.6-48.9 7.8-29.6 8.4-30.8 18.7-42.2 18.7-4.8 0-19.9-17.5-27.7-22.3-12.1-7.8-16.9-4.2-13.9 7.2 1.2 4.8 10.9 10.9 16.9 19.9 7.8 11.5 12.7 25.9 12.7 25.9s10.9-10.3 16.9-12.1c9-2.4 19.3 1.8 31.4 0 15.1-2.4 31.4-10.9 31.4-10.9l4.2 43.4s-54.3 50.7-49.5 70.6 56.1 44.6 68.2 62.7c12.1 17.5-7.2 24.1-7.2 32.6s-1.8 19.9 7.2 16.3c9-3.6 10.3-18.1 18.7-31.4 6-9 10.3-13.9 11.5-17.5 1.8-9-23.5-32-37.4-48.9-6.6-7.8-19.9-18.7-19.9-18.7l39.2-29.6s67.6 27.7 82.6 18.7c15.1-9 19.3-98.3 19.3-98.3l47-11.5-12.1-11.7z'/%3e%3cpath fill='%23F8DD4E' d='M279.3 262.4c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.8-182.8c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm0 91.1c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6 0 11.5 4.8 11.5 11.5-.6 6.7-5.5 11.5-11.5 11.5zm-136.9 45.8c-6 0-11.5-4.8-11.5-11.5 0-6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5s-5.5 11.5-11.5 11.5zm45.2-136.9c-6 0-11.5-4.8-11.5-11.5s4.8-11.5 11.5-11.5c6 0 11.5 4.8 11.5 11.5s-4.8 11.5-11.5 11.5zm22.9 91.1c-6 0-11.5-10.3-11.5-22.9s4.8-22.9 11.5-22.9c6 0 11.5 10.3 11.5 22.9s-4.8 22.9-11.5 22.9zm-114-45.2c-6 0-11.5-4.8-11.5-11.5 0-6.6 4.8-11.5 11.5-11.5 6.6 0 11.5 4.8 11.5 11.5 0 6.6-4.8 11.5-11.5 11.5z'/%3e%3c/svg%3e")} +.flag\:IN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23181A93' d='M17.3 0h478.4v342H17.3V0z'/%3e%3cpath fill='%23FFA44A' d='M0 0h513v114H0V0z'/%3e%3cpath fill='%231A9F0B' d='M0 228h513v114H0V228z'/%3e%3cpath fill='white' d='M0 114h513v114H0V114z'/%3e%3ccircle fill='white' cx='256.5' cy='171' r='34.2'/%3e%3cpath fill='%23181A93' d='M256.5 216.6c-25.1 0-45.6-20.5-45.6-45.6s20.5-45.6 45.6-45.6 45.6 20.5 45.6 45.6-20.5 45.6-45.6 45.6zm0-11.4c18.2 0 34.2-16 34.2-34.2s-15.9-34.2-34.2-34.2-34.2 16-34.2 34.2 16 34.2 34.2 34.2z'/%3e%3ccircle fill='%23181A93' cx='256.5' cy='171' r='22.8'/%3e%3c/svg%3e")} +.flag\:IO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0-.3h513V342H0V-.3z'/%3e%3cpath fill='%230052B4' d='M462.9 198.1c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zM0 31.7l19 10c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-10 20-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-10 21-10s13 6 20 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 21 10c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-10 20-10s14 6 20 10c11 6 22 12 32.1 12s20-6 31.1-12l19-10v-22c-10 1-20 6-30.1 12-7 4-16 9-20 9s-14-5-21-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-11-30.1-12v22zm462.9 55.2c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 3.9-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 1 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-8 19-9v-23zm-50.1 133.3c-4 0-14-5-21-9-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 9-20 9s-14-5-20-9c-11-6-22-12-32.1-12-9 0-20 6-31.1 12-7 4-16 9-20 9s-13-5-20-9c-11-6-22-12-31.1-12-10 0-21 6-32.1 12-6 4-16 9-20 9s-13-5-20-9c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 9-21 9s-13-5-20-9c-10-6-20-12-30.1-12v22l19 9c11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12l19-9v-22c-10 0-20 6-30.1 12-7 4-16 9-20 9zm50.1 34c-10 1-20 6-30.1 12-7 4-16 10-20 10s-14-6-21-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-14-6-20-10c-11-6-22-12-32.1-12s-20 6-31.1 12c-7 4-16 10-20 10s-13-6-20-10c-11-6-22-12-31.1-12s-21 6-32.1 12c-6 4-16 10-20 10s-13-6-20-10c-11-6-21-12-31.1-12s-20 6-31.1 12c-7 4-17 10-21 10s-13-6-20-10c-10-6-20-11-30.1-12v23c4 0 13 5 19 9 11 6 21 12 31.1 12s21-6 32.1-12c6-4 16-9 20-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 17-9 21-9s13 5 20 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 21 9c11 6 21 12 31.1 12s20-6 31.1-12c7-4 16-9 20-9s14 5 20 9c11 6 22 12 32.1 12s20-6 31.1-12c6-4 15-9 19-9v-23z'/%3e%3cpath fill='white' d='M0-.3h256v171H0V-.3z'/%3e%3cpath d='M389.8 119.9H408v78.8h-18.3l.1-78.8zm0 117.8H408v75.1h-18.3l.1-75.1z' fill='%23A2001D'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144-.3h-32v70H0v32h112v69h32v-69h112v-32H144v-70z'/%3e%3cpath d='M0-.3v15l57 39h23L0-.3zM256-.3v15l-57 39h-23l80-54z'/%3e%3cpath d='M0-.3v15l57 39h23L0-.3zM256-.3v15l-57 39h-23l80-54zM0 170.7v-15l57-38h23l-80 53zM256 170.7v-15l-57-38h-23l80 53z'/%3e%3c/g%3e%3cg fill='%232E52B2'%3e%3cpath d='M0 22.7v31h46l-46-31zm96-23v49L23-.3h73zM256 22.7v31h-46l46-31zm-96-23v49l73-49h-73z'/%3e%3cpath d='M0 22.7v31h46l-46-31zm96-23v49L23-.3h73zM256 22.7v31h-46l46-31zm-96-23v49l73-49h-73zM0 147.7v-30h46l-46 30zm96 23v-49l-73 49h73zM256 147.7v-30h-46l46 30zm-96 23v-49l73 49h-73z'/%3e%3c/g%3e%3cpath fill='%235DA51E' stroke='%2345602C' stroke-width='4' stroke-miterlimit='10' d='M462.8 91.5h-29.1l25.7-25.7c4.5-4.4 4.5-11.4 0-15.8l-3.4-3.4c-4.4-4.4-11.4-4.4-15.8 0l-25.9 25.9V37.4c0-6.2-5.1-11.3-11.3-11.3h-4.7c-6.2 0-11.3 5.1-11.3 11.3v31.7l-23.5-23.8c-4.7-4.7-12.2-4.7-16.9 0l-3.6 3.6c-4.7 4.7-4.7 12.4 0 17.2l25 25.4h-30.6c-6 0-10.9 4.9-10.9 10.9v4.6c0 6 4.9 10.9 10.9 10.9H369l-20.7 20.7c-4.4 4.4-4.4 11.4 0 15.8l3.4 3.4c4.4 4.4 11.4 4.4 15.8 0l19.6-19.6V167c0 6.1 5.1 11.1 11.3 11.3h4.7c6.2 0 11.3-5.1 11.3-11.3v-28.3l22.2 22.6c4.7 4.7 12.4 4.7 17.1 0l3.6-3.6c4.7-4.7 4.7-12.4 0-17.2L435.2 118h27.6c5.9 0 10.7-4.9 10.9-10.9v-4.6c0-6.1-4.9-11-10.9-11z'/%3e%3cpath fill='%23E2DD24' stroke='%23525625' stroke-width='4' stroke-miterlimit='10' d='M439.2 249.1h-79.8s-.9-13.4-6-21.8c-6.2-10.4-13.9-28.1-1.4-36.7 15.9-10.9 33.7.8 48.2.8 11.8.1 26.9-14 45-.8 12.2 8.9 3.9 28.2-1.3 36.7-7 11.5-4.7 21.8-4.7 21.8z'/%3e%3c/svg%3e")} +.flag\:IQ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23CE1126' d='M0 0h513v114H0z'/%3e%3cpath d='M0 228h513v114H0z'/%3e%3cg fill='%23547C31'%3e%3cpath d='M219.2 160.7h-29.3c1.5-5.7 6.6-9.9 12.8-9.9v-19.9c-18.3 0-33.1 14.9-33.1 33.1v16.5h49.6c1.8 0 3.3 1.5 3.3 3.3v6.6h-66.2v19.9h86.1v-26.5c0-12.7-10.4-23.1-23.2-23.1zM268.8 190.5v-59.6H249v79.5h33.1v-19.9zM335 190.5v-59.6h-19.8v59.6h-6.6v-19.8h-19.9v39.7h59.6v-19.9z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:IR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h512v342H0z'/%3e%3cpath fill='%236DA544' d='M0 0h513v114H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 227.9h513v114H0zM278.8 134.8c.1 2 8.7 26.2 4.4 39.4-6.6 20.3-15.8 21.8-19.8 24.5V134l-6.9-4.2-6.9 4.2v64.7c-4-2.7-12.4-2.4-19.8-24.5-4.3-12.7 5.7-37.3 5.8-39.2 0 0-9.5 8.1-15.8 24-5.9 14.8 1.9 49.6 29.5 54.8 2.3.4 4.7 5.6 7.2 5.6 2.1 0 4.1-5.2 6-5.5 28.4-4.6 35-41.7 29.9-55.6-5.4-14.6-13.6-23.5-13.6-23.5z'/%3e%3c/g%3e%3cg fill='white' opacity='.5'%3e%3cpath d='M44.6 98.9h22.3v24.4H44.6zM0 98.9h22.3v24.4H0zM89.2 98.9h22.3v24.4H89.2zM133.8 98.9h22.3v24.4h-22.3zM178.4 98.9h22.3v24.4h-22.3zM223 98.9h22.3v24.4H223zM267.7 98.9H290v24.4h-22.3zM312.3 98.9h22.3v24.4h-22.3zM356.9 98.9h22.3v24.4h-22.3zM401.5 98.9h22.3v24.4h-22.3zM446.1 98.9h22.3v24.4h-22.3zM490.7 98.9H513v24.4h-22.3zM44.6 216.9h22.3v25.5H44.6zM0 216.9h22.3v25.5H0zM89.2 216.9h22.3v25.5H89.2zM133.8 216.9h22.3v25.5h-22.3zM178.4 216.9h22.3v25.5h-22.3zM223 216.9h22.3v25.5H223zM267.7 216.9H290v25.5h-22.3zM312.3 216.9h22.3v25.5h-22.3zM356.9 216.9h22.3v25.5h-22.3zM401.5 216.9h22.3v25.5h-22.3zM446.1 216.9h22.3v25.5h-22.3zM490.7 216.9H513v25.5h-22.3z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:IS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='white' d='M512 295.883H202.195v130.783H122.435V295.883H0V216.111h122.435V85.329H202.195v130.782H512V277.329z'/%3e%3cpath fill='%23D80027' d='M512 234.666v42.663H183.652v149.337h-42.674V277.329H0v-42.663h140.978V85.329h42.674v149.337z'/%3e%3c/svg%3e")} +.flag\:IT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M341.334 85.33H0v341.332h512V85.33z'/%3e%3cpath fill='%236DA544' d='M0 85.333h170.663V426.67H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.333H512V426.67H341.337z'/%3e%3c/svg%3e")} +.flag\:JE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M301.8 171L513 30.2V0h-45.3L256.5 140.8 45.3 0H0v30.2L211.2 171 0 311.8V342h45.3l211.2-140.8L467.7 342H513v-30.2z'/%3e%3cpath fill='%23FFDA44' d='M233.7 44.6l22.3 5.6 22.3-5.6 4-20.9-14.9 6.5L256 14.8l-11.4 15.4-14.9-6.5z'/%3e%3cpath fill='%23D80027' d='M233.7 44.6s-4 12.9-4 29.9c0 27.9 26.3 41.3 26.3 41.3s26.3-15.5 26.3-41.3c0-15.4-4-29.9-4-29.9s-8.1-5-22.3-5-22.3 5-22.3 5z'/%3e%3c/svg%3e")} +.flag\:JM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M0 85.337h512v341.326H0z'/%3e%3cpath d='M215.864 256.006L0 399.911V112.089zM512 112.089v287.822L296.136 256.006z'/%3e%3cpath fill='%230052B4' d='M512 112.089L296.136 256.006 512 399.911v26.757h-40.125L256 282.752 40.125 426.668H0v-26.757l215.864-143.905L0 112.089V85.331h40.125L256 229.248 471.875 85.331H512z'/%3e%3cpath fill='%23FFDA44' d='M512 112.089L296.136 256.006 512 399.911v26.757h-40.125L256 282.752 40.125 426.668H0v-26.757l215.864-143.905L0 112.089V85.331h40.125L256 229.248 471.875 85.331H512z'/%3e%3c/svg%3e")} +.flag\:JO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.339h512v341.326H0z'/%3e%3cpath d='M0 85.339h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M0 312.89h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M256 256.006L0 426.669V85.331z'/%3e%3cpath fill='white' d='M77.913 224.802l7.876 16.469 17.786-4.11-7.965 16.426 14.303 11.343-17.808 4.014.049 18.255-14.241-11.421-14.241 11.421.05-18.255-17.809-4.014 14.303-11.343-7.965-16.426 17.786 4.11z'/%3e%3c/svg%3e")} +.flag\:JP{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3ccircle fill='%23D80027' cx='256' cy='255.994' r='96'/%3e%3c/svg%3e")} +.flag\:KE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cpath d='M0 85.331h512v90.579H0z'/%3e%3cpath fill='%23496E2D' d='M0 336.089h512v90.568H0z'/%3e%3cpath fill='%23A2001D' d='M0 198.606h512v114.799H0z'/%3e%3cg fill='white'%3e%3cpath d='M323.265 139.803l-25.583-11.809L256 222.376l-41.682-94.382-25.583 11.809 51.749 116.191-51.749 116.192 25.583 11.808L256 289.613l41.682 94.381 25.583-11.808-51.749-116.192z'/%3e%3cpath d='M273.376 150.931C263.472 140.115 256 133.898 256 133.898s-7.472 6.216-17.376 17.032v210.127C248.528 371.873 256 378.091 256 378.091s7.472-6.216 17.376-17.033V150.931z'/%3e%3c/g%3e%3cg fill='%23A2001D'%3e%3cpath d='M209.04 191.226v129.535c10.465 18.542 23.274 33.742 32.872 43.818V147.408c-9.599 10.076-22.408 25.275-32.872 43.818zM302.96 191.226c-10.465-18.543-23.274-33.742-32.872-43.818V364.58c9.599-10.077 22.407-25.276 32.872-43.818V191.226z'/%3e%3c/g%3e%3cpath d='M302.96 191.226v129.535c10.594-18.774 18.784-40.973 18.784-64.767s-8.19-45.993-18.784-64.768zM209.04 191.226v129.535c-10.594-18.774-18.784-40.973-18.784-64.767s8.19-45.993 18.784-64.768z'/%3e%3c/svg%3e")} +.flag\:KG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 342'%3e%3cg fill='%23D80027'%3e%3cpath d='M0 0h513v342H0z'/%3e%3ccircle cx='256' cy='170.7' r='170.7'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M382.4 170.7L330.8 195l27.5 50-56.1-10.7-7.1 56.6-39.1-41.7-39.1 41.7-7.1-56.6-56.1 10.7 27.5-50-51.6-24.3 51.6-24.3-27.5-50.1 56.1 10.8 7.1-56.7L256 92.1l39.1-41.7 7.1 56.7 56.1-10.8-27.5 50.1z'/%3e%3ccircle fill='%23D80027' cx='257.4' cy='170.7' r='71.6'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M214.2 170.7c-2.1 0-4.1.1-6.2.3.1 12 4.4 22.9 11.6 31.5 3.8-10.3 9.5-19.6 16.7-27.7-6.9-2.7-14.3-4.1-22.1-4.1zM240.8 217.2c5.2 1.9 10.8 2.9 16.6 2.9 5.8 0 11.4-1 16.6-2.9-2.8-11.1-8.7-21-16.6-28.8-7.9 7.8-13.8 17.7-16.6 28.8zM300.2 146c-8.5-14.8-24.5-24.7-42.8-24.7-18.3 0-34.2 9.9-42.8 24.7 15.6.1 30.2 4.3 42.8 11.6 12.6-7.3 27.2-11.6 42.8-11.6zM278.5 174.8c7.2 8 12.9 17.4 16.7 27.7 7.2-8.5 11.5-19.5 11.6-31.5-2-.2-4.1-.3-6.2-.3-7.7 0-15.2 1.4-22.1 4.1z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:KH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath fill='white' d='M303.49 281.971v-17.809h-11.873v-23.745l-11.872-11.872-11.872 11.872v-23.744L256 204.8l-11.873 11.873v23.744l-11.872-11.872-11.872 11.872v23.745H208.51v17.809h-11.872v17.808h118.724v-17.808z'/%3e%3c/svg%3e")} +.flag\:KI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 450 300'%3e%3cpath fill='%23CE1126' d='M0 0h450v300H0V0z'/%3e%3cg fill='%23FCD116'%3e%3ccircle cx='227.6' cy='161.2' r='56.2'/%3e%3cpath d='M254.1 73.4l-23.7 26 28.6 6.5zM202.6 73.6l-4.8 33.1 28.5-8zM296.9 100.3l-34.7 8.5 20.1 23.7zM158.6 98.5l15.5 32.7 20.2-22.7zM317.6 143.8l-34.4-9.9 5.6 29.5zM135.6 141.2l31.9 19.8 5.2-27.7z'/%3e%3c/g%3e%3cpath fill='%23003F87' d='M0 175h450v125H0V175z'/%3e%3cpath fill='white' d='M0 267c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21zm0-43c15 0 30 13 45 13s30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13 30 13 45 13 30-13 45-13v-21c-15 0-30 13-45 13s-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13-30 13-45 13-30-13-45-13v21z'/%3e%3cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23FCD116' d='M183.2 48.3l-1.1-5.3 22.4-3.7s-30.1-7.1-40-10.7c-14.3-5.1-16.3-12.1-16.3-12.1s44.7 11 64.8 11c4.3 0 12.8 10.7 12.8 10.7s14.8-14.9 21.9-15.4c32.1-2.3 66.6-6.4 66.6-6.4s-10 6.7-16 8.5c-16.2 4.9-50.6 11.7-50.6 11.7l-4.8 7.5H277l-14.4 4.3 7.4 6.9s-7.8-4.1-18.1-2.1c-7.1 1.3-15.4 6-22.9 8-18.7 4.8-29.9-12.8-29.9-12.8l-15.9-.1z'/%3e%3c/svg%3e")} +.flag\:KM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v85.337H0z'/%3e%3cpath fill='white' d='M0 170.663h512V256H0z'/%3e%3cpath fill='%23D80027' d='M0 256h512v85.337H0z'/%3e%3cpath fill='%236DA544' d='M256 256.006L0 426.668V85.331z'/%3e%3cg fill='white'%3e%3cpath d='M68.638 256c0-24.865 17.476-45.638 40.812-50.734a52.059 52.059 0 00-11.13-1.208c-28.688 0-51.942 23.255-51.942 51.942s23.255 51.942 51.942 51.942c3.822 0 7.543-.425 11.13-1.208-23.337-5.096-40.812-25.869-40.812-50.734z'/%3e%3cpath d='M108.877 211.478l2.762 8.503h8.94l-7.232 5.256 2.762 8.502-7.232-5.255-7.234 5.255 2.764-8.502-7.234-5.256h8.94zM108.877 233.739l2.762 8.503h8.94l-7.232 5.255 2.762 8.503-7.232-5.255-7.234 5.255 2.764-8.503-7.234-5.255h8.94zM108.877 256l2.762 8.503h8.94l-7.232 5.255 2.762 8.503-7.232-5.255-7.234 5.255 2.764-8.503-7.234-5.255h8.94zM108.877 278.261l2.762 8.502h8.94l-7.232 5.256 2.762 8.503-7.232-5.255-7.234 5.255 2.764-8.503-7.234-5.256h8.94z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:KN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='%236DA544' d='M512 0H0v342'/%3e%3cpath fill='%23FFDA44' d='M307.7 0L0 194.5V342h206.9L513 148.5V0z'/%3e%3cpath d='M513 0H385.2L0 249.4V341l126.2 1L513 91.6z'/%3e%3cg fill='white'%3e%3cpath d='M141.1 187l31.2 24 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.3-22.2zM310.6 70.8l31.2 23.9 32.3-22.2-13.1 37 31.1 23.9-39.2-1.1-13.2 37-11.1-37.6-39.2-1.1 32.4-22.2z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:KP{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%2391DC5A' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 85.331h512v57.188H0zM0 369.48h512v57.177H0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M0 165.215h512v181.582H0z'/%3e%3ccircle fill='white' cx='190.33' cy='255.994' r='65.668'/%3e%3cpath fill='%23D80027' d='M190.332 190.332l14.734 45.346h47.757l-38.65 28.028 14.849 45.481-38.69-28.16-38.631 28.107 14.79-45.428-38.616-28.028h47.722z'/%3e%3c/svg%3e")} +.flag\:KR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 600'%3e%3cpath fill='white' d='M0 0h900v600H0z'/%3e%3cg transform='rotate(-56.31)'%3e%3cg stroke='black' stroke-width='25'%3e%3cpath d='M-75 228.3H75m-150 37.5H75m-150 37.5H75M-75 778.3H75m-150 37.5H75m-150 37.5H75'/%3e%3c/g%3e%3cpath stroke='white' stroke-width='12.5' d='M0 753.3v125'/%3e%3ccircle fill='%23ca163a' cy='540.8' r='150'/%3e%3cpath fill='%230e4896' d='M0 390.8c-41.4 0-75 33.6-75 75s33.6 75 75 75 75 33.6 75 75-33.6 75-75 75c-82.8 0-150-67.2-150-150s67.2-150 150-150z'/%3e%3c/g%3e%3cg stroke='black' stroke-width='25'%3e%3cpath d='M231.56 535.73l-83.205-124.808M262.76 514.928l-83.205-124.807m114.407 104.006l-83.205-124.808M689.187 230.644l-83.205-124.807M720.39 209.843L637.184 85.036m114.407 104.006L668.386 64.234'/%3e%3c/g%3e%3cpath stroke='white' stroke-width='12.5' d='M205.6 462.897l31.202-20.8m389.981-259.989l36.444-24.296m31.202-20.801l31.202-20.801'/%3e%3c/svg%3e")} +.flag\:KW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.888h512v113.775H0z'/%3e%3cpath d='M166.957 312.889L0 426.663V85.337l166.957 113.774z'/%3e%3c/svg%3e")} +.flag\:KY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.334h512v341.337H0z'/%3e%3ccircle fill='%236DA544' cx='384' cy='181.79' r='29.682'/%3e%3cpath fill='%23D80027' d='M332.054 174.377h103.88v44.522h-103.88z'/%3e%3cpath fill='%23496E2D' d='M435.942 255.997v-.001.001z'/%3e%3cpath fill='%23FFDA44' d='M332.058 285.678v29.682h15.616c9.364 9.176 22.18 14.84 36.326 14.84 14.147 0 26.962-5.664 36.326-14.84h15.616v-29.682H332.058z'/%3e%3cpath fill='%23338AF3' d='M332.058 211.475v44.522c0 39.759 51.942 51.942 51.942 51.942s51.942-12.182 51.942-51.942v-44.522H332.058z'/%3e%3cg fill='%23F3F3F3'%3e%3cpath d='M383.997 235.256c-12.985 0-12.985 11.873-25.97 11.873s-12.985-11.873-25.97-11.873v20.777c12.985 0 12.985 11.873 25.97 11.873s12.985-11.873 25.97-11.873c12.986 0 12.986 11.873 25.973 11.873 12.986 0 12.986-11.873 25.973-11.873v-20.777c-12.986 0-12.986 11.873-25.973 11.873-12.986-.001-12.986-11.873-25.973-11.873zM383.997 193.666c-12.985 0-12.985 11.873-25.97 11.873s-12.985-11.873-25.97-11.873v20.777c12.985 0 12.985 11.873 25.97 11.873s12.985-11.873 25.97-11.873c12.986 0 12.986 11.873 25.973 11.873 12.986 0 12.986-11.873 25.973-11.873v-20.777c-12.986 0-12.986 11.873-25.973 11.873-12.986 0-12.986-11.873-25.973-11.873z'/%3e%3c/g%3e%3cpath fill='white' d='M256 85.334v22.617l-46.069 30.709H256v64h-46.069L256 233.38v22.617h-22.628L160 207.078v48.919H96v-48.919l-73.372 48.919H0V233.38l46.069-30.72H0v-64h46.069L0 107.951V85.334h22.628L96 134.241V85.334h64v48.907l73.372-48.907z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 85.329h-32v69.334H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath d='M0 85.329v15.082l57.377 38.252H80zM256 85.329v15.082l-57.377 38.252H176z'/%3e%3cpath d='M0 85.329v15.082l57.377 38.252H80zM256 85.329v15.082l-57.377 38.252H176zM0 255.997v-15.082l57.377-38.252H80zM256 255.997v-15.082l-57.377-38.252H176z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:KZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%2336B6CC' d='M0 0h513v342H0V0z'/%3e%3ccircle fill='%23FFD400' cx='256.5' cy='170.9' r='68.4'/%3e%3cpath fill='%23FFD400' d='M256.5 251.5l-27.9 41.7-7.1-49.7-43.2 25.5 15.2-47.8-50 4.2 34.4-36.5-46.9-18 46.8-18-34.4-36.5 50 4.2-15.2-47.8 43.2 25.4 7.1-49.7 27.9 41.7 27.9-41.7 7.1 49.7 43.2-25.4-15.2 47.8 50-4.2-34.3 36.6 46.8 17.9-46.8 18 34.4 36.5-50-4.2 15.2 47.8-43.2-25.4-7.1 49.7c0-.1-27.9-41.8-27.9-41.8zm0-.8c44.1 0 79.9-35.8 79.9-79.9S300.6 91 256.5 91s-79.9 35.8-79.9 79.9 35.8 79.8 79.9 79.8zM22.8 28.3c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-.1-11.3zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6V74zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-.1-11.3zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-.1-11.3zm0 45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0 45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H28.5c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm22.8-22.8c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7V245c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-11.4zm0-45.7c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V188zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-.1-11.3zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6v-.1-11.3zm0-45.6c0-3.2 2.4-5.7 5.7-5.7h11.3c3.2 0 5.7 2.4 5.7 5.7v11.3c.1 3.1-2.4 5.7-5.6 5.7H51.3c-3.1 0-5.7-2.5-5.7-5.6V51.2z'/%3e%3c/svg%3e")} +.flag\:LA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 .1h513v90.7H0zM0 251.3h513V342H0z'/%3e%3c/g%3e%3ccircle fill='white' cx='256.5' cy='171' r='65.9'/%3e%3c/svg%3e")} +.flag\:LB{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 .2h513v90.7H0zM.5 251.3H513V342H.5z'/%3e%3c/g%3e%3cpath fill='%236DA544' d='M290.3 193.5L256 130.7l-34.3 62.8h25.7v17.2h17.2v-17.2z'/%3e%3cpath fill='%2314AF5A' d='M241.3 213.1c4.4-4.4 4.4-11.6-.1-16l4.7 4.7c-5.2-4.7-12.2-6.6-19.1-5.3l-23.5 5.9c-6.1 1.5-6.8-.4-1.8-4.2l27.1-20.3c5.1-3.8 4.2-6.9-2.3-6.9h-11c-6.4 0-7-2.3-1.5-5.1l25.3-12.7c5.6-2.8 5.1-5.1-1.5-5.1h-11c-6.4 0-7.4-3.1-2.3-6.9l27.1-20.3c5.6-3.8 12.9-3.8 18.5 0l27.1 20.3c5.1 3.8 4.2 6.9-2.3 6.9h-11c-6.4 0-7 2.3-1.5 5.1l25.3 12.7c5.6 2.8 5.1 5.1-1.5 5.1h-11c-6.4 0-7.4 3.1-2.3 6.9l27.1 20.3c5.1 3.8 4.4 5.7-1.8 4.2l-23.5-5.9c-6.8-1.3-13.9.6-19.1 5.3l4.7-4.7c-4.4 4.4-4.5 11.5-.1 16l6.8 6.8c4.4 4.4 3.1 8-3.3 8h-45.8c-6.2 0-7.7-3.6-3.3-8 .1.1 6.9-6.8 6.9-6.8z'/%3e%3c/svg%3e")} +.flag\:LC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%2355B2FF' d='M0 0h513v342H0z'/%3e%3cpath fill='%23F3F3F3' d='M148.5 298.1h216l-108-254.2z'/%3e%3cpath fill='%23333' d='M186 272.7l70.5-160.3L327 272.7z'/%3e%3cpath fill='%23FFDA44' d='M148.5 298.1h216l-108-101.7z'/%3e%3c/svg%3e")} +.flag\:LI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='%230052B4' d='M0 0h513v171H0z'/%3e%3cpath fill='%23FFDA44' d='M149.3 98.1c0-14-11.3-25.3-25.3-25.3-6.5 0-12.4 2.4-16.9 6.4V64.4h8.4V47.5h-8.4v-8.4H90.3v8.4h-8.4v16.9h8.4v14.9c-4.5-4-10.4-6.4-16.9-6.4-14 0-25.3 11.3-25.3 25.3 0 7.5 3.3 14.2 8.4 18.8v14.9h84.3V117c5.3-4.7 8.5-11.5 8.5-18.9z'/%3e%3c/svg%3e")} +.flag\:LK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.329v341.337h512V85.329H0zm489.739 319.076h-267.13V107.59h267.13v296.815z'/%3e%3cpath fill='%23A2001D' d='M222.609 107.595h267.13V404.41h-267.13z'/%3e%3cpath fill='%23D80027' d='M22.261 107.595h200.348V404.41H22.261z'/%3e%3cpath fill='%23FFDA44' d='M200.348 85.334h22.261v341.337h-22.261z'/%3e%3cpath fill='%236DA544' d='M22.261 107.595h89.043V404.41H22.261z'/%3e%3cpath fill='%23FF9811' d='M111.304 107.595h89.043V404.41h-89.043z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M358.675 250.438v-44.522c0-7.424-11.13-14.848-11.13-14.848s-11.13 7.424-11.13 14.848h-44.522v44.522h22.261v22.261c0 4.875.979 9.539 2.76 13.768l-10.184 8.493h-29.674V157.677c-12.299 0-22.261 9.973-22.261 22.261v96.467a22.19 22.19 0 007.413 16.584v35.361h14.848v-18.554h66.783v29.685H328.99v14.837h29.685v-29.685l13.601-14.837h44.288v29.685h-14.848v14.837h29.685v-29.685l13.601-14.837 12.552-40.259-11.038-19.1h-38.945c-14.169-.122-40.637.09-48.896.001z'/%3e%3cpath d='M370.551 211.844v25.229h71.513v13.365h4.452v-17.817h-71.513v-16.325h75.965v-4.452zM222.609 107.595h22.261v22.261h-22.261zM467.478 107.595h22.261v22.261h-22.261zM222.609 382.138h22.261v22.261h-22.261zM467.478 382.138h22.261v22.261h-22.261z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:LR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 91.476h512v341.337H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 91.476h512v31.031H0zM0 153.539h512v31.031H0zM0 215.603h512v31.031H0zM0 277.666h512v31.031H0zM0 339.729h512v31.031H0zM0 401.793h512v31.031H0z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M0 79.177h256v167.457H0z'/%3e%3cpath fill='white' d='M127.999 118.382l11.05 34.01h35.764l-28.932 21.021 11.05 34.012-28.932-21.021-28.933 21.021 11.053-34.012-28.932-21.021h35.762z'/%3e%3c/svg%3e")} +.flag\:LS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%230052B4' d='M0 0h513v114H0z'/%3e%3cpath fill='%236DA544' d='M0 227.6h513v114H0z'/%3e%3cpath d='M245.2 171l7.7-23.1c2-5.9 5.1-6 7.1 0l7.7 23.1 19.4 29.1c1.7 2.6 1.3 6.3-1.2 8 0 0-6.9 8-29.5 8s-29.5-8-29.5-8c-2.4-2-2.9-5.4-1.2-8l19.5-29.1z'/%3e%3cpath d='M256.5 171c-12.5 0-22.6-10.1-22.6-22.6 0-12.5 10.1-22.6 22.6-22.6s22.6 10.1 22.6 22.6c0 12.5-10.2 22.6-22.6 22.6zm0 0c6.2 0 11.3-16.3 11.3-22.6 0-6.2-5.1-11.3-11.3-11.3-6.2 0-11.3 5.1-11.3 11.3 0 6.3 5 22.6 11.3 22.6z'/%3e%3c/svg%3e")} +.flag\:LT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:LU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23338AF3' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:LV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23A2001D'%3e%3cpath class='prefix__st1' d='M0 0h513v127.6H0zM0 214.4h513V342H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:LY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23496E2D' d='M0 312.888h512v113.775H0z'/%3e%3cg fill='white'%3e%3cpath d='M281.424 236.026l8.962 12.35 14.513-4.706-8.975 12.339 8.961 12.349-14.509-4.724-8.976 12.34.01-15.258-14.51-4.725 14.514-4.706z'/%3e%3cpath d='M256.965 286.868c-17.048 0-30.868-13.821-30.868-30.868s13.821-30.868 30.868-30.868a30.742 30.742 0 0114.684 3.71c-6.851-6.698-16.218-10.833-26.556-10.833-20.982 0-37.992 17.01-37.992 37.992s17.01 37.992 37.992 37.992c10.338 0 19.706-4.135 26.556-10.833a30.738 30.738 0 01-14.684 3.708z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337v341.326h512V85.337z'/%3e%3cpath fill='%2320661b' d='M352 226.484h-73.337L256 156.738l-22.663 69.748H160l59.331 43.107-22.663 69.749L256 296.232l59.332 43.107-22.663-69.749L352 226.484zm-116.063 37.711l7.663-23.585h24.8l7.663 23.585v.001L256 278.772l-20.063-14.577zm27.873-37.711h-15.619L256 202.447l7.81 24.037zm24.269 28.982l-4.827-14.856h25.274l-20.447 14.856zm-59.331-14.856l-4.827 14.856-20.447-14.856h25.274zm-5.211 61.748l7.81-24.036 12.636 9.181-20.446 14.855zm44.479-14.856l12.636-9.181 7.81 24.036-20.446-14.855z'/%3e%3c/svg%3e")} +.flag\:MC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.34h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M512 85.334v166.69L0 256.175V85.334z'/%3e%3c/svg%3e")} +.flag\:MD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23FFDA44' d='M0 0h513v342H0z'/%3e%3cpath fill='%23D80027' d='M342 0h171v342H342z'/%3e%3cpath fill='%230052B4' d='M0 0h171v342H0z'/%3e%3cpath fill='%23AF7F59' d='M206.2 129.1h33.2L256 79.3l16.6 49.8h33.2v99.6L256 262l-49.8-33.2v-99.7zm33.2 33.3v49.8h33.2v-49.8h-33.2z'/%3e%3c/svg%3e")} +.flag\:ME{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23E6BE53' d='M0 0h513v342H0z'/%3e%3cpath fill='%23E01D24' d='M20 20h473v302H20z'/%3e%3cpath fill='%23E6BE53' d='M248.5 112.9c4.4 4.4 11.6 4.4 16 0l-4.7 4.7 22.7-22.7c4.9-4.5 12.1-5.6 18.2-2.8l2.1 1c5.7 2.9 6.7 8.7 2.3 13.1l4.7-4.7-22.8 22.8c-4.5 4.9-5.6 12.1-2.8 18.2l1 2.1c2.9 5.7 5.1 15.4 5.1 21.6v-11.3c0 6.2 4.4 9.1 10.2 6.2l2.1-1c5.7-2.9 6.7-8.7 2.3-13.1l4.7 4.7c-4.4-4.4-4.4-11.6 0-16l-4.7 4.7c5.2-5.5 9.6-11.6 13.1-18.2l1-2.1c2.9-5.7 6.3-15.1 7.9-21.2l5.8-23.3c1.5-6 5.9-6.8 9.6-1.8l20.2 26.9c3.8 5.1 6.9 14 6.9 20.6v22.4c0 6.3-2.2 15.8-5.1 21.7l-1 2.1c-3.5 6.6-7.9 12.7-13.1 18.2l-6.8 6.8c-5.4 5.2-11.5 9.6-18.2 13.1l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.2 0-6.9 2.2-1.1 5.1l2.1 1c5.7 2.9 13.8 8.7 18.2 13.1l-4.7-4.7c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L339 226c4.6 4.9 5.7 12.1 2.9 18.2l-1 2.1c-2.9 5.7-10.4 10.2-16.4 10.2-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.5-3.6-11.8-8.9-15.4-15.4l-1-2.1c-2.9-5.7-8.7-6.7-13.1-2.3l4.7-4.7c-4.4 4.7-5.2 11.8-1.8 17.3l10.3 15.4c3.4 5.1 2 12.1-3.1 15.5L266 284.4c-5.7 3.4-12.8 3.4-18.6 0L232 274.1c-5.1-3.4-6.5-10.3-3.1-15.5l10.3-15.4c3.4-5.5 2.6-12.6-1.8-17.3l4.7 4.7c-4.4-4.4-10.2-3.6-13.1 2.3l-1 2.1c-2.9 5.7-9.5 12.4-15.4 15.4l-2.1 1c-5.7 2.9-15.5 5.1-21.6 5.1-6.9-.3-13.1-4.2-16.4-10.2l-1-2.1c-2.8-6.1-1.6-13.3 2.9-18.2l-4.7 4.7c4.4-4.4 11.6-4.4 16 0L181 226c4.4 4.4 11.6 4.4 16 0l-4.7 4.7c5.5-5.2 11.6-9.6 18.2-13.1l2.1-1c5.7-2.9 5-5.1-1.1-5.1-7.5-.3-14.8-2-21.6-5.1l-2.1-1c-6.6-3.5-12.7-7.9-18.2-13.1l-6.8-6.8c-5.2-5.4-9.6-11.5-13.1-18.2l-1-2.1c-3.1-6.8-4.9-14.2-5.1-21.7V121c0-6.3 3.1-15.6 6.9-20.6l20.2-26.9c3.8-5.1 8.1-4.3 9.6 1.8l5.8 23.3c2 7.3 4.6 14.4 7.9 21.2l1 2.1c2.9 5.7 8.7 13.8 13.1 18.2l-4.7-4.7c4.4 4.4 4.4 11.6 0 16l4.7-4.7c-4.4 4.4-3.6 10.2 2.3 13.1l2.1 1c5.7 2.9 10.2 0 10.2-6.2v11.3c0-6.2 2.2-15.7 5.1-21.6l1-2.1c2.8-6.1 1.7-13.2-2.8-18.2l-22.7-22.7 4.7 4.7c-4.4-4.4-3.6-10.2 2.3-13.1l2.1-1c6.1-2.8 13.2-1.7 18.2 2.8l22.7 22.7-4.8-4.5zm-18-40.7c-4.4-4.4-3.2-9.5 2.8-11.5l12.4-4.2c6-2 15.5-2 21.5 0l12.4 4.2c6 2 7.2 7.1 2.8 11.5l-6.8 6.8c-5.3 4.7-12.1 7.5-19.2 7.9-6.2 0-14.8-3.5-19.2-7.9.1 0-6.7-6.8-6.7-6.8z'/%3e%3cpath fill='%23215F90' d='M233.9 200.2c0 6.2 1.7 6.4 4.2.5 0 0 7.1-23.2 18.4-23.2 11.3 0 18.6 23.6 18.6 23.6 2.2 5.7 4 5.3 4-1.1v-11.2c0-18.7-10.1-33.9-22.6-33.9-12.5 0-22.6 15.2-22.6 33.9v11.4z'/%3e%3c/svg%3e")} +.flag\:MF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 108 72'%3e%3cpath d='M0 0h108v72H0z' fill='%23003787'/%3e%3cpath d='M0 0h108L60 48v24H48V48z' fill='white'/%3e%3ccircle cx='54' cy='30' r='8' fill='%23f9d90f'/%3e%3cpath d='M44 30h20L54 48z' fill='white'/%3e%3cpath d='M54 48L38 33h32z' fill='%23cf142b'/%3e%3c/svg%3e")} +.flag\:MG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M512 426.666V85.329H0v341.337h512z'/%3e%3cpath fill='%23D80027' d='M512 85.331H0v170.666h512V85.331z'/%3e%3cpath fill='white' d='M0 85.334h181.793v341.337H0z'/%3e%3c/svg%3e")} +.flag\:MH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%231E509C' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M513 176.1V81.3L0 342l513-165.9z'/%3e%3cpath fill='%23F18D36' d='M513 0v81.3L0 342 513 0z'/%3e%3cpath fill='white' d='M126.7 99.3l-7.8-54.1-7.7 54.1-20.8-23.7 10.7 31.6-31.5-10.7 23.6 20.8-54.1 7.7 54.1 7.7-23.6 20.8 31.5-10.7-10.7 31.6 20.8-23.7 7.7 54.1 7.8-54.1 20.7 23.7-10.6-31.6 31.5 10.7-23.6-20.8 54-7.7-54-7.7 23.6-20.8-31.5 10.7 10.6-31.6z'/%3e%3c/svg%3e")} +.flag\:MK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.333h512V426.67H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M383.875 426.662L256 252.286l26.827 174.376zM133.565 85.33L256 252.286 230.314 85.33zM229.171 426.662L256 252.286 128.124 426.662zM0 85.33V212.9l256 39.386L28.333 85.33zM0 426.662h18.212L256 252.286 0 291.67zM256 252.286L512 212.9V85.33h-28.331zM281.686 85.33L256 252.286 378.434 85.33zM512 426.662V291.671l-256-39.385 237.787 174.376z'/%3e%3ccircle cx='256' cy='252.29' r='59.359'/%3e%3c/g%3e%3ccircle fill='%23FFDA44' cx='256' cy='252.29' r='44.522'/%3e%3c/svg%3e")} +.flag\:ML{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%236DA544' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:MM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%236DA544' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.888h512v113.775H0z'/%3e%3cpath fill='white' d='M384 227.261h-97.783L256 134.265l-30.217 92.997H128l79.108 57.475-30.217 92.998L256 320.925l79.108 56.81-30.217-92.998L384 227.261z'/%3e%3c/svg%3e")} +.flag\:MN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23095FAD' d='M0 0h513v342H0z'/%3e%3cg fill='%23BE1229'%3e%3cpath d='M342 0h171v342H342zM0 0h171v342H0z'/%3e%3c/g%3e%3cg fill='%23FFDA44'%3e%3cpath d='M108.3 166.3h14.8v74.2h-14.8zM48.9 166.3h14.8v74.2H48.9z'/%3e%3ccircle cx='86' cy='203.4' r='14.8'/%3e%3cpath d='M71.2 225.7h29.7v14.8H71.2zM71.2 166.3h29.7v14.8H71.2z'/%3e%3ccircle cx='86' cy='144' r='14.8'/%3e%3cpath d='M76.3 123.9h19.5L86 108.3z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%2300745a' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='white' d='M285.682 248.878c-4.19 0-8.166.836-11.861 2.164 2.023-4.509 3.379-9.527 3.379-14.885 0-21.201-21.201-37.101-21.201-37.101s-21.201 15.901-21.201 37.101c0 5.357 1.356 10.375 3.379 14.885-3.693-1.328-7.671-2.164-11.861-2.164-21.201 0-37.101 21.201-37.101 21.201s15.901 21.201 37.101 21.201c12.429 0 23.031-7.286 29.682-13.315 6.65 6.03 17.251 13.315 29.682 13.315 21.201 0 37.101-21.201 37.101-21.201s-15.899-21.201-37.099-21.201z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M256 152.111l4.38 13.476h14.171l-11.464 8.332 4.376 13.476-11.463-8.33-11.463 8.33 4.376-13.476-11.464-8.332h14.171zM202.112 175.683l8.425 7.585 9.818-5.667-4.61 10.355 8.423 7.588-11.274-1.185-4.611 10.355-2.358-11.088-11.275-1.185 9.818-5.669zM162.662 215.132l11.09 2.358 5.668-9.818 1.186 11.274 11.089 2.358-10.357 4.61 1.186 11.274-7.587-8.423-10.357 4.61 5.669-9.818zM309.889 175.683l-8.425 7.585-9.818-5.667 4.611 10.355-8.425 7.588 11.275-1.185 4.61 10.355 2.359-11.088 11.275-1.185-9.818-5.669zM349.338 215.132l-11.089 2.358-5.669-9.818-1.186 11.274-11.088 2.358 10.357 4.61-1.185 11.274 7.586-8.423 10.357 4.61-5.669-9.818z'/%3e%3c/g%3e%3cg fill='white'%3e%3cpath d='M256 350.642c16.84 0 32.363-5.619 44.816-15.073h-89.63c12.451 9.454 27.974 15.073 44.814 15.073zM187.977 306.12a74.138 74.138 0 008.85 15.073h118.345a74.13 74.13 0 008.85-15.073H187.977z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MP{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 750 500'%3e%3cpath fill='%230071BC' d='M0 0h750v500H0V0z'/%3e%3cg fill='white' stroke='black' stroke-width='1.9'%3e%3ccircle cx='375' cy='245' r='225' fill='white'/%3e%3ccircle cx='375' cy='245' r='165' fill='%230071BC'/%3e%3c/g%3e%3cg stroke='black'%3e%3cpath fill='%238C8A8C' stroke-width='1.9' d='M444.7 450c.7 11-7.8 20-18.8 20H323.6c-11 0-19.5-9-19-20l16.7-325c.6-11 10-20 21-20h61.4c11 0 20.5 9 21.2 20l19.8 325z'/%3e%3cpath fill='white' stroke-width='2' stroke-linejoin='round' d='M373 114l30 93h97l-78 56 29 92-78-56-78 57 30-93-79-57h97l30-92z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MQ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%230052B4' d='M0 0h513v342H0z'/%3e%3cg fill='white'%3e%3cpath d='M512 148.4v44.5H278.3v148.4h-44.6V192.9H0v-44.5h233.7V0h44.6v148.4z'/%3e%3cpath d='M101 36.1c4.2-.2 8.3-.1 12.5.2 5.5.4 9.4 1.6 9.1.5-.5-1.8-.1-2.2-.8-1.8-1.3 1 .7-.2-7.4 4.4-11.8 6.7-16.9 11.8-14.3 21 2.3 8.1 8.2 10.3 22.3 12.5l1.9.3c5.6.9 8.1 1.4 9.8 2.2.4.2-.3-1-.1-1.7-.2.6-3.9 2.1-13.3 3.9l-4.7.9c-18.1 3.7-27.1 8.5-28.5 21-1.5 13.7 12.7 23.3 30.6 25.6 18.2 2.4 34.1-3.6 35.7-18.4 1-9.4-5.5-15-15.9-17.1-7-1.4-16.3-1.4-27.4-.3-12.4 1.3-24.7 3.4-36.9 6.3-3.6.7-5.9 4.2-5.2 7.8.7 3.6 4.2 5.9 7.8 5.2.2 0 .3-.1.5-.1 11.6-2.7 23.3-4.7 35.1-5.9 9.9-1 18-1 23.4.1 4.4.9 5.3 1.7 5.2 2.6-.5 5.1-8.9 8.2-20.7 6.7-11.6-1.5-19.5-6.8-19.1-11 .5-4.3 5.3-6.8 17.9-9.4l4.6-.9c15.5-3 21.1-5.3 23.5-13.2 1.9-6.5-1.3-11.6-7.2-14.2-3.2-1.4-6.3-2.1-13.2-3.1l-1.8-.3c-8-1.3-11.4-2.6-11.5-3-.1-.4 1.8-2.3 8.1-5.9l4.4-2.5c1.5-.8 2.9-1.8 4.3-2.7 4.6-3.4 7.2-7.1 5.8-12.3-1.9-7.3-9-9.5-20.9-10.4-4.7-.3-9.3-.4-14-.3l-2 .1c-3.7.2-6.5 3.4-6.3 7 .2 3.7 3.4 6.5 7 6.3l1.7-.1zM385 36.1c4.2-.2 8.3-.1 12.5.2 5.5.4 9.4 1.6 9.1.5-.5-1.8-.1-2.2-.8-1.8-1.3 1 .7-.2-7.4 4.4-11.8 6.7-16.9 11.8-14.3 21 2.3 8.1 8.2 10.3 22.3 12.5l1.9.3c5.6.9 8.1 1.4 9.8 2.2.4.2-.3-1-.1-1.7-.2.6-3.9 2.1-13.3 3.9l-4.7.9c-18.1 3.7-27.1 8.5-28.5 21-1.5 13.7 12.7 23.3 30.6 25.6 18.2 2.4 34.1-3.6 35.7-18.4 1-9.4-5.5-15-15.9-17.1-7-1.4-16.3-1.4-27.4-.3-12.4 1.3-24.7 3.4-36.9 6.3-3.6.7-5.9 4.2-5.2 7.8.7 3.6 4.2 5.9 7.8 5.2.2 0 .3-.1.5-.1 11.6-2.7 23.3-4.7 35.1-5.9 9.9-1 18-1 23.4.1 4.4.9 5.3 1.7 5.2 2.6-.5 5.1-8.9 8.2-20.7 6.7-11.6-1.5-19.5-6.8-19.1-11 .5-4.3 5.3-6.8 17.9-9.4l4.6-.9c15.5-3 21.1-5.3 23.5-13.2 1.9-6.5-1.3-11.6-7.2-14.2-3.2-1.4-6.3-2.1-13.2-3.1l-1.8-.3c-8-1.3-11.4-2.6-11.5-3-.1-.4 1.8-2.3 8.1-5.9l4.4-2.5c1.5-.8 2.9-1.8 4.3-2.7 4.6-3.4 7.2-7.1 5.8-12.3-1.9-7.3-9-9.5-20.9-10.4-4.7-.3-9.3-.4-14-.3l-2 .1c-3.7.2-6.5 3.4-6.3 7 .2 3.7 3.4 6.5 7 6.3l1.7-.1zM379.6 235.1c4.2-.2 8.3-.1 12.5.2 5.5.4 9.4 1.6 9.1.5-.5-1.8-.1-2.2-.8-1.8-1.3 1 .7-.2-7.4 4.4-11.8 6.7-16.9 11.8-14.3 21 2.3 8.1 8.2 10.3 22.3 12.5l1.9.3c5.6.9 8.1 1.4 9.8 2.2.4.2-.3-1-.1-1.7-.2.6-3.9 2.1-13.3 3.9l-4.7.9c-18.1 3.7-27.1 8.5-28.5 21-1.5 13.7 12.7 23.3 30.6 25.6 18.2 2.4 34.1-3.6 35.7-18.4 1-9.4-5.5-15-15.9-17.1-7-1.4-16.3-1.4-27.4-.3-12.4 1.3-24.7 3.4-36.9 6.3-3.6.7-5.9 4.2-5.2 7.8.7 3.6 4.2 5.9 7.8 5.2.2 0 .3-.1.5-.1 11.6-2.7 23.3-4.7 35.1-5.9 9.9-1 18-1 23.4.1 4.4.9 5.3 1.7 5.2 2.6-.5 5.1-8.9 8.2-20.7 6.7-11.6-1.5-19.5-6.8-19.1-11 .5-4.3 5.3-6.8 17.9-9.4l4.6-.9c15.5-3 21.1-5.3 23.5-13.2 1.9-6.5-1.3-11.6-7.2-14.2-3.2-1.4-6.3-2.1-13.2-3.1l-1.8-.3c-8-1.3-11.4-2.6-11.5-3-.1-.4 1.8-2.3 8.1-5.9l4.4-2.5c1.5-.8 2.9-1.8 4.3-2.7 4.6-3.4 7.2-7.1 5.8-12.3-1.9-7.3-9-9.5-20.9-10.4-4.7-.3-9.3-.4-14-.3l-2 .1c-3.7.2-6.5 3.4-6.3 7s3.4 6.5 7 6.3l1.7-.1zM101 235.1c4.2-.2 8.3-.1 12.5.2 5.5.4 9.4 1.6 9.1.5-.5-1.8-.1-2.2-.8-1.8-1.3 1 .7-.2-7.4 4.4-11.8 6.7-16.9 11.8-14.3 21 2.3 8.1 8.2 10.3 22.3 12.5l1.9.3c5.6.9 8.1 1.4 9.8 2.2.4.2-.3-1-.1-1.7-.2.6-3.9 2.1-13.3 3.9l-4.7.9c-18.1 3.7-27.1 8.5-28.5 21-1.5 13.7 12.7 23.3 30.6 25.6 18.2 2.4 34.1-3.6 35.7-18.4 1-9.4-5.5-15-15.9-17.1-7-1.4-16.3-1.4-27.4-.3-12.4 1.3-24.7 3.4-36.9 6.3-3.6.7-5.9 4.2-5.2 7.8s4.2 5.9 7.8 5.2c.2 0 .3-.1.5-.1 11.6-2.7 23.3-4.7 35.1-5.9 9.9-1 18-1 23.4.1 4.4.9 5.3 1.7 5.2 2.6-.5 5.1-8.9 8.2-20.7 6.7-11.6-1.5-19.5-6.8-19.1-11 .5-4.3 5.3-6.8 17.9-9.4l4.6-.9c15.5-3 21.1-5.3 23.5-13.2 1.9-6.5-1.3-11.6-7.2-14.2-3.2-1.4-6.3-2.1-13.2-3.1l-1.8-.3c-8-1.3-11.4-2.6-11.5-3-.1-.4 1.8-2.3 8.1-5.9l4.4-2.5c1.5-.8 2.9-1.8 4.3-2.7 4.6-3.4 7.2-7.1 5.8-12.3-1.9-7.3-9-9.5-20.9-10.4-4.7-.3-9.3-.4-14-.3l-2 .1c-3.7.2-6.5 3.4-6.3 7 .2 3.7 3.4 6.5 7 6.3l1.7-.1z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.331h512v341.337H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M256 298.851c-45.956 0-84.348-32.298-93.767-75.429A96.288 96.288 0 00160 243.994c0 53.02 42.979 96 96 96s96-42.98 96-96c0-7.066-.785-13.942-2.233-20.572-9.419 43.131-47.811 75.429-93.767 75.429z'/%3e%3cpath d='M255.999 171.994l8.935 27.502h28.918l-23.394 16.996 8.936 27.503-23.395-16.998-23.394 16.998 8.937-27.503-23.394-16.996h28.915z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%231B4991' d='M0 0h513v342H0z'/%3e%3cpath fill='%2300A2B8' stroke='white' stroke-width='3' d='M318.2 106.7v106.5c0 51.9 67.8 67.8 67.8 67.8s67.8-15.9 67.8-67.8V106.7H318.2z'/%3e%3cpath fill='%23A35023' d='M319.7 212.7c0 50.8 66.3 66.3 66.3 66.3s66.3-15.6 66.3-66.3H319.7z'/%3e%3cpath d='M415.1 155.1h-19.4v-19.4h-19.4v19.4H357v19.4h19.3v58.1h19.4v-58.1h19.4z'/%3e%3cpath fill='white' d='M256 0v30.6l-45.2 25.1H256V115h-59.1l59.1 32.8v22.9h-26.7l-73.5-40.9v40.9h-55.6v-48.6l-87.5 48.6H0v-30.6L45.2 115H0V55.7h59.1L0 22.8V0h26.7l73.5 40.8V0h55.6v48.6L243.3 0z'/%3e%3cpath fill='%23D80027' d='M144 0h-32v69.3H0v32h112v69.4h32v-69.4h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.8 115L256 170.7v-15.8L184.2 115z'/%3e%3cpath fill='white' d='M155.8 115L256 170.7v-15.8L184.2 115z'/%3e%3cpath fill='%23D80027' d='M155.8 115L256 170.7v-15.8L184.2 115zM71.8 115L0 154.9v15.8L100.2 115z'/%3e%3cpath fill='%230052B4' d='M100.2 55.6L0 0v15.7l71.8 39.9z'/%3e%3cpath fill='white' d='M100.2 55.6L0 0v15.7l71.8 39.9z'/%3e%3cpath fill='%23D80027' d='M100.2 55.6L0 0v15.7l71.8 39.9zM184.2 55.6L256 15.7V0L155.8 55.6z'/%3e%3c/svg%3e")} +.flag\:MT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cpath fill='%23C31B28' d='M256 0h256.5v342H256z'/%3e%3cpath fill='%23ACABB1' stroke='%23C31B28' stroke-width='2' d='M101.2 68.2V33H66v35.2H30.8v35.2H66v35.2h35.2v-35.2h35.2V68.2z'/%3e%3c/svg%3e")} +.flag\:MU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23f7ce00' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%23e32737' d='M0 85.331h512v85.337H0z'/%3e%3cpath fill='%23191f6a' d='M0 170.657h512v85.337H0z'/%3e%3cpath fill='%2300a04e' d='M0 341.331h512v85.337H0z'/%3e%3c/svg%3e")} +.flag\:MV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23d01920' d='M0 85.331h512v341.333H0z'/%3e%3cpath fill='%23017c3b' d='M144.696 174.375h222.609v163.25H144.696z'/%3e%3cpath fill='white' d='M283.484 304.226c-26.637 0-48.232-21.594-48.232-48.232s21.594-48.232 48.232-48.232c8.306 0 16.12 2.1 22.943 5.797-10.703-10.467-25.341-16.927-41.494-16.927-32.784 0-59.362 26.577-59.362 59.362s26.578 59.362 59.362 59.362c16.154 0 30.791-6.461 41.494-16.927-6.822 3.698-14.636 5.797-22.943 5.797z'/%3e%3c/svg%3e")} +.flag\:MW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 342'%3e%3cpath fill='%23272727' d='M0 0h512v114H0z'/%3e%3cpath fill='%23e40112' d='M0 114h512v114H0z'/%3e%3cpath fill='%2307893f' d='M0 228h512v114H0z'/%3e%3ccircle fill='%23e40112' cx='256' cy='125' r='95'/%3e%3c/svg%3e")} +.flag\:MX{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23dc2339' d='M342 0H0v341.3h513V0z'/%3e%3cpath fill='%2311865d' d='M0 0h171v342H0z'/%3e%3cpath fill='white' d='M171 0h171v342H171z'/%3e%3cpath fill='%238C9157' d='M195.8 171.2c0 21.6 11.5 41.7 30.3 52.5 5.8 3.4 13.2 1.4 16.6-4.4 3.4-5.8 1.4-13.2-4.4-16.6-11.3-6.5-18.2-18.5-18.2-31.5 0-6.7-5.4-12.1-12.1-12.1-6.7 0-12.2 5.4-12.2 12.1zm93.4 51.1c17.5-11.1 28-30.4 28-51.1 0-6.7-5.4-12.1-12.1-12.1s-12.1 5.4-12.1 12.1c0 12.4-6.3 24-16.8 30.7-5.7 3.5-7.5 10.9-4.1 16.7s10.9 7.5 16.7 4.1c0-.2.2-.3.4-.4z'/%3e%3cellipse fill='%23C59262' cx='256.5' cy='159.1' rx='24.3' ry='36.4'/%3e%3c/svg%3e")} +.flag\:MY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 42.7h512v42.7H0zM0 128h512v42.7H0zM0 213.3h512V256H0zM0 298.7h512v42.7H0z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M0 0h256v170.7H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M141.1 134.8c-28 0-45.9-24.8-45.9-49.5 0-24.8 17.9-49.5 45.9-49.5 8.7 0 18.1 1 25.3 4.9-11.2-11-26.6-17.8-43.6-17.8-34.4 0-62.4 27.9-62.4 62.4s27.9 62.4 62.4 62.4c17 0 32.3-6.8 43.6-17.8-7.1 3.9-16.5 4.9-25.3 4.9z'/%3e%3cpath d='M171 49.7l9 18.8 20.3-4.7-9.1 18.8 16.4 12.9-20.4 4.6.1 20.9-16.3-13.1-16.2 13.1v-20.9l-20.3-4.6 16.3-12.9-9.1-18.8 20.3 4.7z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:MZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 513 342'%3e%3cpath fill='white' d='M0 85.333h513v342H0z'/%3e%3cpath fill='%23f4d900' d='M0 323.333h513v104H0z'/%3e%3cpath fill='%23006d66' d='M0 85.333h513v104H0z'/%3e%3cpath d='M0 204.333h513v104H0z'/%3e%3cpath fill='%23cb0f31' d='M256 256.006L0 426.668V85.331z'/%3e%3cpath fill='%23f4d900' d='M83.477 195.132l15.107 46.498h48.894l-39.554 28.739 15.107 46.499-39.554-28.738-39.555 28.738 15.11-46.499-39.554-28.739H68.37z'/%3e%3c/svg%3e")} +.flag\:NA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 426.663V85.337h512'/%3e%3cpath fill='white' d='M512 152.222V85.337H411.67L0 359.778v66.885h100.33z'/%3e%3cpath fill='%23A2001D' d='M512 85.337v40.125L60.193 426.663H0v-40.125L451.807 85.337z'/%3e%3cpath fill='%23FFDA44' d='M187.737 189.212l-22.741 10.696 12.11 22.024-24.693-4.724-3.129 24.945-17.199-18.347-17.2 18.347-3.129-24.945-24.693 4.723 12.109-22.023-22.739-10.696 22.74-10.697-12.11-22.022 24.693 4.722 3.13-24.944 17.199 18.347 17.2-18.347 3.128 24.944 24.693-4.722-12.108 22.024z'/%3e%3c/svg%3e")} +.flag\:NC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 426.7'%3e%3cpath fill='%23009543' d='M0 293h640v133.7H0V293z'/%3e%3cpath fill='%23ED4135' d='M0 132h640v161.3H0V132z'/%3e%3cpath fill='%230035AD' d='M0 0h640v133.3H0V0z'/%3e%3ccircle fill='%23FAE600' stroke='black' stroke-width='5.3' cx='240' cy='213.3' r='157.3'/%3e%3cpath d='M307.9 354.5l-31.8 12-36.1 4.2-37.8-2.4-35.9-15.5s28.6-29.3 40.7-33.5c8.6-3 22.4-3.7 22.4-3.7V122l-.3-66H246l-.5 67.5v191.7s15.3 1.2 22.1 4.1c11.3 4.9 40.3 35.2 40.3 35.2z'/%3e%3cpath d='M212.727 102.375l42.955-21.418 5.577 11.187-42.955 21.417z'/%3e%3cellipse cx='237.8' cy='280.5' rx='16.8' ry='26.5'/%3e%3ccircle cx='237.4' cy='143.4' r='20.9'/%3e%3cellipse cx='238.4' cy='211.1' rx='19.9' ry='12.1'/%3e%3cpath d='M213.8 177h47v10h-47zM213.8 234h47v10h-47z'/%3e%3c/svg%3e")} +.flag\:NE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23f47b10' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%2364a243' d='M0 312.888h512v113.775H0z'/%3e%3ccircle fill='%23f47b10' cx='256' cy='256' r='32'/%3e%3c/svg%3e")} +.flag\:NF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.5 513 342'%3e%3cpath fill='white' d='M0 85.5h513v342H0z'/%3e%3cg fill='%23007b23'%3e%3cpath d='M0 85.5h171v342H0zM342 85.5h171v342H342zM304 311.995l-48-152.001-48 152.001h36v39.999h24v-39.999z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:NG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.5 513 342'%3e%3cpath fill='white' d='M0 85.5h513v342H0z'/%3e%3cg fill='%23007b23'%3e%3cpath d='M0 85.5h171v342H0zM342 85.5h171v342H342z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:NI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M256 214.447c-22.949 0-41.553 18.603-41.553 41.553S233.05 297.553 256 297.553c22.949 0 41.553-18.603 41.553-41.553S278.949 214.447 256 214.447zm0 65.298c-13.114 0-23.745-10.631-23.745-23.745s10.631-23.745 23.745-23.745 23.745 10.631 23.745 23.745-10.631 23.745-23.745 23.745z'/%3e%3cpath fill='%230052B4' d='M276.563 261.936L256 256l-20.563 5.936-6.855 11.873h54.836z'/%3e%3cpath fill='%23338AF3' d='M256 226.32l-13.709 23.744L256 256l13.709-5.936z'/%3e%3cpath fill='%236DA544' d='M235.437 261.936h41.126l-6.854-11.872h-27.418z'/%3e%3c/svg%3e")} +.flag\:NL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.5 513 342'%3e%3cpath fill='white' d='M0 85.5h513v342H0z'/%3e%3cpath fill='%23cd1f2a' d='M0 85.5h513v114H0z'/%3e%3cpath fill='%231d4185' d='M0 312h513v114H0z'/%3e%3c/svg%3e")} +.flag\:NO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='white' d='M512 295.883H202.195v130.783H122.435V295.883H0V216.111h122.435V85.329H202.195v130.782H512V277.329z'/%3e%3cpath fill='%232E52B2' d='M512 234.666v42.663H183.652v149.337h-42.674V277.329H0v-42.663h140.978V85.329h42.674v149.337z'/%3e%3c/svg%3e")} +.flag\:NP{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 426.663V85.337l280.419 174.75H87.61l183.576 166.576z'/%3e%3cpath fill='%23D80027' d='M244.769 249.888L10.199 103.71v312.754h234.57L61.193 249.888z'/%3e%3cg fill='white'%3e%3cpath d='M98.003 324.433l-14.589-6.863 7.77-14.13-15.844 3.03-2.008-16.005-11.035 11.772-11.036-11.772-2.008 16.005-15.843-3.031 7.77 14.131-14.591 6.863 14.591 6.862-7.77 14.13 15.844-3.029 2.007 16.004 11.036-11.772L73.332 358.4l2.008-16.004 15.843 3.03-7.769-14.13zM88.268 191.662l-10.612-4.991 5.651-10.278-11.523 2.205-1.461-11.641-8.026 8.561-8.026-8.561-1.46 11.641-11.525-2.205 5.652 10.278-10.613 4.991 25.972 5.194z'/%3e%3cpath d='M93.462 191.662c0 17.212-13.953 31.165-31.165 31.165s-31.165-13.953-31.165-31.165'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:NR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M0 239.994h512v32H0z'/%3e%3cpath fill='white' d='M174.802 341.329l-19.124 8.996 10.184 18.521-20.767-3.973-2.631 20.978L128 370.422l-14.465 15.429-2.63-20.978-20.767 3.973 10.183-18.521-19.123-8.996 19.124-8.995-10.184-18.52 20.766 3.971 2.632-20.978L128 312.236l14.465-15.429 2.63 20.978 20.767-3.971-10.183 18.521z'/%3e%3c/svg%3e")} +.flag\:NU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='white' d='M0 85.334h256v170.663H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 85.33h-32v69.333H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath d='M0 85.329v15.083l57.377 38.251H80z'/%3e%3c/g%3e%3cg fill='%232E52B2'%3e%3cpath d='M0 107.951v30.712h46.069zM96 85.331v48.913L22.628 85.331z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M256 85.329v15.083l-57.377 38.251H176z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M256 107.951v30.712h-46.069zM160 85.331v48.913l73.372-48.913z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M0 85.329v15.083l57.377 38.251H80z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M0 107.951v30.712h46.069zM96 85.331v48.913L22.628 85.331z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M256 85.329v15.083l-57.377 38.251H176z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M256 107.951v30.712h-46.069zM160 85.331v48.913l73.372-48.913z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M0 255.997v-15.082l57.377-38.252H80z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M0 233.376v-30.713h46.069zM96 255.994v-48.912l-73.372 48.912z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M256 255.997v-15.082l-57.377-38.252H176z'/%3e%3cg fill='%232E52B2'%3e%3cpath d='M256 233.376v-30.713h-46.069zM160 255.994v-48.912l73.372 48.912z'/%3e%3ccircle cx='128' cy='170.66' r='22.627'/%3e%3c/g%3e%3cg fill='%23FFDA44'%3e%3cpath d='M128 154.663l3.97 12.222h12.854l-10.398 7.556 3.971 12.222L128 179.109l-10.398 7.554 3.972-12.222-10.398-7.556h12.853zM128 219.803l2.364 7.278h7.653l-6.19 4.498 2.364 7.278-6.191-4.498-6.191 4.498 2.364-7.278-6.19-4.498h7.652zM128 102.469l2.364 7.278h7.653l-6.19 4.498 2.364 7.278-6.191-4.498-6.191 4.498 2.364-7.278-6.19-4.498h7.652zM197.931 161.136l2.365 7.277h7.653l-6.192 4.499 2.365 7.279-6.191-4.498-6.191 4.498 2.365-7.279-6.191-4.499h7.652zM58.069 161.136l2.364 7.277h7.653l-6.191 4.499 2.364 7.279-6.19-4.498-6.191 4.498 2.365-7.279-6.192-4.499h7.653z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:NZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.334h512v341.337H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M425.301 233.745l3.388 10.428h10.963l-8.87 6.444 3.388 10.427-8.869-6.444-8.871 6.444 3.388-10.427-8.87-6.444h10.963zM386.107 308.817l5.083 15.642h16.445l-13.305 9.667 5.082 15.64-13.305-9.667-13.305 9.667 5.083-15.64-13.305-9.667h16.445zM387.588 185.971l4.236 13.036h13.704l-11.088 8.054 4.235 13.034-11.087-8.056-11.088 8.056 4.235-13.034-11.087-8.054h13.704zM349.876 233.291l5.082 15.641h16.446l-13.306 9.666 5.084 15.641-13.306-9.666-13.305 9.666 5.082-15.641-13.305-9.666h16.445z'/%3e%3c/g%3e%3cpath fill='white' d='M256.003 85.329v30.564l-45.178 25.088h45.178v59.359H196.89l59.113 32.846v22.806h-26.69l-73.484-40.826v40.826h-55.652v-48.573l-87.429 48.573H.003v-30.553l45.168-25.099H.003v-59.359h59.103L.003 108.147V85.329h26.68l73.494 40.838V85.329h55.652v48.573l87.43-48.573z'/%3e%3cpath fill='%23D80027' d='M144 85.33h-32v69.334H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.826 200.344L256 255.998v-15.739l-71.847-39.915z'/%3e%3cpath fill='white' d='M155.826 200.344L256 255.998v-15.739l-71.847-39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M155.826 200.344L256 255.998v-15.739l-71.847-39.915zM71.846 200.344L0 240.259v15.739l100.174-55.654z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M100.174 140.983L0 85.33v15.738l71.847 39.915z'/%3e%3cpath fill='white' d='M100.174 140.983L0 85.33v15.738l71.847 39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M100.174 140.983L0 85.33v15.738l71.847 39.915zM184.154 140.983L256 101.068V85.33l-100.174 55.653z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:OM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='%23D80027' d='M0 0h513v342H0z'/%3e%3cpath fill='white' d='M138 0h377v114H138z'/%3e%3cpath fill='%234A7C3A' d='M138 230h377v114H138z'/%3e%3cg fill='none' stroke='white' stroke-width='10' stroke-miterlimit='2'%3e%3cpath d='M40.3 35.2s37.1 48 50.8 54.5c13.7 6.5 17.1 5.7 17.1 5.7'/%3e%3cpath d='M100 35.2S62.9 80.6 53.3 87.6c-9.6 7-18.7 7.8-18.7 7.8M51.7 65.3h37.9M70.7 35.2v30.1'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M256 256v170.663H0V256h256z'/%3e%3cpath fill='%23D80027' d='M512 85.337V256H256V85.337h256z'/%3e%3cpath fill='%230052B4' d='M128 123.034l11.824 36.389h38.263l-30.955 22.491 11.823 36.389L128 195.813l-30.955 22.49 11.823-36.389-30.955-22.491h38.263z'/%3e%3cpath fill='%23D80027' d='M384 293.697l11.824 36.389h38.263l-30.955 22.491 11.823 36.389L384 366.476l-30.955 22.49 11.823-36.389-30.955-22.491h38.263z'/%3e%3c/svg%3e")} +.flag\:PE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.326H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.331h170.663v341.337H0zM341.337 85.331H512v341.337H341.337z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M293.991 256c0 20.982-17.01 33.243-37.992 33.243S218.008 276.982 218.008 256s17.01-37.992 37.992-37.992 37.991 17.01 37.991 37.992z'/%3e%3cpath fill='%230052B4' d='M293.991 256c0 20.982-17.01 37.992-37.992 37.992s-37.992-17.01-37.992-37.992'/%3e%3cg fill='%23D80027'%3e%3cpath d='M232.259 246.506h9.498v19h-9.498zM270.247 246.506h9.498v19h-9.498zM251.247 232.259h9.498v33.243h-9.498z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='%23A2001D' d='M0 85.33h512v341.332'/%3e%3cg fill='white'%3e%3cpath d='M204.631 326.488l2.762 8.504h8.941l-7.233 5.255 2.763 8.502-7.233-5.254-7.233 5.254 2.762-8.502-7.233-5.255h8.94zM181.797 244.866l4.605 14.172h14.901l-12.056 8.757 4.605 14.172-12.055-8.759-12.055 8.759 4.606-14.172-12.056-8.757h14.901zM181.797 348.749l4.604 14.173h14.902l-12.057 8.757 4.606 14.173-12.055-8.759-12.055 8.759 4.604-14.173-12.054-8.757h14.899zM225.363 281.967l4.606 14.172h14.901l-12.056 8.758 4.605 14.172-12.056-8.759-12.054 8.759 4.606-14.172-12.056-8.758h14.901zM138.23 281.967l4.606 14.172h14.899l-12.054 8.758 4.603 14.172-12.054-8.759-12.055 8.759 4.605-14.172-12.055-8.758h14.9z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M376.526 204.163c-7.628-7.628-17.538-12.133-28.189-12.908l31.88-24.795c-12.698-12.698-29.714-18.431-46.319-17.218a44.31 44.31 0 00-11.396-19.511l-12.593 25.186a18.47 18.47 0 00-3.148-4.197c-7.245-7.245-18.991-7.244-26.234 0s-7.245 18.99 0 26.234a18.536 18.536 0 004.197 3.148l-25.186 12.593a44.303 44.303 0 0019.519 11.399c-1.217 16.606 4.511 33.619 17.209 46.317L324.12 214.6a11.053 11.053 0 017.807-3.202c2.973 0 5.768 1.158 7.87 3.26a11.055 11.055 0 013.26 7.87c0 2.974-1.158 5.768-3.26 7.87l10.494 10.494c4.905-4.905 7.607-11.428 7.607-18.364 0-5.675-1.81-11.071-5.153-15.534a29.492 29.492 0 0113.288 7.662c11.573 11.572 11.573 30.403 0 41.975l10.494 10.494c8.409-8.409 13.039-19.59 13.039-31.481-.001-11.892-4.632-23.072-13.04-31.481z'/%3e%3c/svg%3e")} +.flag\:PH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M512 85.337V256H256L0 85.337z'/%3e%3cpath fill='%23D80027' d='M512 256v170.663H0L256 256z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M161.908 256l-27.288-12.835 14.532-26.428-29.632 5.668-3.755-29.933-20.64 22.015-20.639-22.015-3.755 29.933-29.631-5.669 14.531 26.428L28.343 256l27.288 12.835L41.1 295.263l29.633-5.668 3.753 29.933 20.639-22.015 20.64 22.015 3.755-29.933 29.631 5.669-14.532-26.427zM21.789 117.607l9.081 12.696 14.879-4.714-9.268 12.56 9.081 12.694-14.809-4.932-9.268 12.559.117-15.608-14.809-4.934 14.88-4.712zM21.789 353.53l9.081 12.696 14.879-4.714-9.268 12.56 9.081 12.695-14.809-4.933-9.268 12.558.117-15.607-14.809-4.934 14.88-4.712zM210.395 235.569l-9.081 12.695-14.879-4.713 9.268 12.559-9.081 12.696 14.809-4.933 9.268 12.558-.117-15.607 14.809-4.934-14.88-4.713z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cg fill='white'%3e%3cpath d='M393.508 170.516l17.512 18.875 23.363-10.821-12.541 22.487 17.513 18.876-25.263-4.978-12.539 22.488-3.073-25.564-25.263-4.978 23.363-10.82z'/%3e%3cpath d='M0 85.343h512v341.326H0z'/%3e%3c/g%3e%3cpath fill='%23496E2D' d='M128 85.331h384v341.337H128z'/%3e%3cg fill='white'%3e%3cpath d='M361.909 298.793c-31.037 22.426-74.378 15.446-96.804-15.592-22.427-31.038-15.446-74.379 15.593-96.804 9.677-6.992 20.55-11.125 31.613-12.563-21.283-3.183-43.777 1.613-62.598 15.211-38.2 27.602-46.792 80.944-19.191 119.145 27.601 38.199 80.944 46.792 119.145 19.189 18.82-13.598 30.436-33.448 34.096-54.655-4.839 10.05-12.176 19.076-21.854 26.069zM360.58 172.889l17.484 18.842 23.322-10.802-12.519 22.447 17.483 18.844-25.219-4.968-12.519 22.45-3.067-25.521-25.22-4.969 23.323-10.802z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cg fill='white'%3e%3cpath d='M0 85.337h512v341.326H0z'/%3e%3cpath d='M0 85.337h512V256H0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M0 256h512v170.663H0z'/%3e%3c/svg%3e")} +.flag\:PM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 26.666 640 426.666'%3e%3cg fill-rule='evenodd' stroke-width='1pt'%3e%3cpath fill='white' d='M0 0h640v480H0z'/%3e%3cpath fill='%2300267f' d='M0 0h213.3v480H0z'/%3e%3cpath fill='%23f31830' d='M426.7 0H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='%23ACABB1' d='M400.696 219.822L384 225.387l-16.696-5.565-5.565-13.913 5.565-13.913h33.392l-5.566 13.913z'/%3e%3cpath fill='%23338AF3' d='M345.043 219.822v61.217c0 29.821 38.957 38.957 38.957 38.957s38.957-9.137 38.957-38.957v-61.217h-77.914z'/%3e%3cpath fill='%236DA544' d='M348.555 295.541C358.131 313.927 384 319.996 384 319.996s25.869-6.069 35.445-24.455L384 236.518l-35.445 59.023z'/%3e%3cpath fill='%23FFDA44' d='M422.957 280.421L384 219.822l-38.957 60.599v.618c0 5.518 1.337 10.328 3.512 14.503L384 240.405l35.445 55.137c2.175-4.175 3.512-8.983 3.512-14.503v-.618z'/%3e%3cpath fill='white' d='M256 85.333v30.553l-45.167 25.099H256v59.359h-59.103L256 233.179v22.817h-26.68l-73.494-40.826v40.826h-55.652v-48.573l-87.43 48.573H0v-30.554l45.167-25.098H0v-59.359h59.103L0 108.139V85.333h26.68l73.494 40.825V85.333h55.652v48.572l87.43-48.572z'/%3e%3cpath fill='%23D80027' d='M144 85.33h-32v69.332H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cpath fill='white' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915zM71.846 200.344L0 240.259v15.737l100.174-55.652z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cpath fill='white' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M100.174 140.982L0 85.33v15.737l71.847 39.915zM184.154 140.982L256 101.067V85.33l-100.174 55.652z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:PR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.337h512V153.6H0zM0 221.863h512v68.263H0zM0 358.4h512v68.263H0z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M256 256.006L0 426.668V85.331z'/%3e%3cpath fill='white' d='M83.477 195.132l15.107 46.498h48.894l-39.554 28.739 15.107 46.499-39.554-28.738-39.555 28.738 15.11-46.499-39.554-28.739H68.37z'/%3e%3c/svg%3e")} +.flag\:PS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M0 312.888h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M256 256.006L0 426.668V85.331z'/%3e%3c/svg%3e")} +.flag\:PT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M196.641 85.337v341.326H0V85.337z'/%3e%3ccircle fill='%23FFDA44' cx='196.641' cy='256' r='64'/%3e%3cpath fill='%23D80027' d='M160.638 224v40.001c0 19.882 16.118 36 36 36s36-16.118 36-36V224h-72z'/%3e%3cpath fill='white' d='M196.638 276c-6.617 0-12-5.383-12-12v-16h24.001v16c-.001 6.616-5.385 12-12.001 12z'/%3e%3c/svg%3e")} +.flag\:PW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23338AF3' d='M0 85.331h512v341.337H0z'/%3e%3ccircle fill='%23FFDA44' cx='218.902' cy='255.994' r='74.207'/%3e%3c/svg%3e")} +.flag\:PY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%230052B4' d='M0 312.888h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M289.579 216.738l-12.592 12.592c5.37 5.372 8.693 12.792 8.693 20.988 0 16.392-13.289 29.68-29.68 29.68-16.392 0-29.68-13.289-29.68-29.68 0-8.195 3.322-15.616 8.693-20.988l-12.592-12.592c-8.594 8.594-13.91 20.466-13.91 33.579 0 26.228 21.261 47.489 47.489 47.489s47.489-21.261 47.489-47.489c0-13.112-5.316-24.985-13.91-33.579z'/%3e%3cpath fill='%23FFDA44' d='M256 232.51l4.421 13.605h14.304l-11.573 8.408 4.421 13.604L256 259.719l-11.573 8.408 4.421-13.604-11.573-8.408h14.304z'/%3e%3c/svg%3e")} +.flag\:QA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23751A46' d='M2.216 86.076H512v339.848H2.216z'/%3e%3cpath fill='white' d='M209.455 154.969l-50.236 25.267 50.236 25.257-50.236 25.267 50.236 25.257-50.236 25.266 50.236 25.257-50.236 25.268 50.236 25.257-50.236 25.267 50.236 25.268-36.45 18.33H0V86.07h172.939l36.516 18.364-50.236 25.267z'/%3e%3c/svg%3e")} +.flag\:RE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 26.666 640 426.666'%3e%3cg fill-rule='evenodd' stroke-width='1pt'%3e%3cpath fill='white' d='M0 0h640v480H0z'/%3e%3cpath fill='%2300267f' d='M0 0h213.3v480H0z'/%3e%3cpath fill='%23f31830' d='M426.7 0H640v480H426.7z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:RO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:RS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23D80027' d='M0 85.331h512v113.775H0z'/%3e%3cpath fill='white' d='M0 312.882h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M129.468 181.793v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.356 256 266.929v-85.136H129.468z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M155.634 196.634h74.201v-29.681l-14.841 7.42-22.261-22.26-22.259 22.26-14.84-7.42zM241.16 278.782l-48.231-48.231-48.231 48.231 15.741 15.74 32.49-32.49 32.49 32.49z'/%3e%3c/g%3e%3cpath fill='white' d='M241.16 233.734h-22.504a14.74 14.74 0 002.001-7.418c0-8.196-6.645-14.84-14.84-14.84-5.663 0-10.581 3.172-13.083 7.836-2.502-4.663-7.421-7.836-13.083-7.836-8.195 0-14.84 6.644-14.84 14.84 0 2.706.736 5.235 2.001 7.418h-22.114c0 8.196 7.139 14.84 15.334 14.84h-.494c0 8.196 6.644 14.84 14.84 14.84 0 7.257 5.211 13.286 12.094 14.576l-11.694 26.401a48.075 48.075 0 0018.149 3.544 48.079 48.079 0 0018.149-3.544l-11.694-26.401c6.883-1.29 12.094-7.319 12.094-14.576 8.196 0 14.84-6.644 14.84-14.84h-.494c8.199 0 15.338-6.644 15.338-14.84z'/%3e%3c/svg%3e")} +.flag\:RU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.33v341.332h512V85.33z'/%3e%3cpath fill='%230052B4' d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='white' d='M0 85.333h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.884h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:RW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23338AF3' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23FFDA44' d='M0 255.994h512v81.619H0z'/%3e%3cpath fill='%23496E2D' d='M0 337.614h512v89.043H0z'/%3e%3cpath fill='%23FFDA44' d='M278.261 185.209l20.844 9.804-11.099 20.186 22.632-4.33 2.868 22.865 15.765-16.816 15.766 16.816 2.867-22.865 22.633 4.33-11.099-20.186 20.843-9.804-20.844-9.805 11.1-20.185-22.633 4.329-2.868-22.864-15.765 16.816-15.766-16.816-2.867 22.864-22.634-4.329 11.1 20.187z'/%3e%3c/svg%3e")} +.flag\:SA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23055e1c' d='M0 85.333h512v341.333H0z'/%3e%3cg fill='white'%3e%3cpath d='M183.548 289.386c0 12.295 9.731 22.261 21.736 22.261h65.208c0 10.244 8.11 18.551 18.114 18.551h21.736c10.004 0 18.114-8.306 18.114-18.551v-22.261H183.548zM330.264 181.791v51.942c0 8.183-6.5 14.84-14.491 14.84v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.942h-21.735zM174.491 233.734c0 8.183-6.5 14.84-14.491 14.84v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.942H174.49v51.942z'/%3e%3cpath d='M297.661 181.788h21.736v51.942h-21.736zM265.057 211.473c0 2.046-1.625 3.71-3.623 3.71-1.998 0-3.623-1.664-3.623-3.71v-29.682h-21.736v29.682c0 2.046-1.625 3.71-3.623 3.71s-3.623-1.664-3.623-3.71v-29.682h-21.736v29.682c0 14.32 11.376 25.971 25.358 25.971 5.385 0 10.38-1.733 14.491-4.677 4.11 2.944 9.106 4.677 14.491 4.677 1.084 0 2.15-.078 3.2-.215-1.54 6.499-7.255 11.345-14.068 11.345v22.261c19.976 0 36.226-16.643 36.226-37.101v-51.943h-21.736l.002 29.682z'/%3e%3cpath d='M207.093 248.57h32.601v22.261h-32.601z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:SB{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='%230052B4' d='M0 426.663V85.329h512'/%3e%3cpath fill='%23FFDA44' d='M0 396.494v30.169h45.255L512 115.499v-30.17h-45.255z'/%3e%3cg fill='white'%3e%3cpath d='M85.688 108.787l5.12 15.756h16.566l-13.403 9.737 5.12 15.757-13.403-9.738-13.405 9.738 5.12-15.757L64 124.543h16.567zM170.312 108.787l5.121 15.756H192l-13.403 9.737 5.12 15.757-13.405-9.738-13.403 9.738 5.12-15.757-13.403-9.737h16.566zM85.688 191.289l5.12 15.756h16.566l-13.403 9.738 5.12 15.757-13.403-9.739-13.405 9.739 5.12-15.757L64 207.045h16.567zM170.312 191.289l5.121 15.756H192l-13.403 9.738 5.12 15.757-13.405-9.739-13.403 9.739 5.12-15.757-13.403-9.738h16.566zM128 150.037l5.12 15.756h16.568l-13.405 9.738 5.12 15.758L128 181.55l-13.403 9.739 5.12-15.758-13.405-9.738h16.568z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:SC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M235.454 85.337L0 426.663 427.345 85.337z'/%3e%3cpath fill='%236DA544' d='M512 329.393L0 426.663h512z'/%3e%3cpath fill='%23D80027' d='M512 85.337h-84.655L0 426.663l512-204.512z'/%3e%3cpath fill='%230052B4' d='M0 85.337v341.326L235.454 85.337z'/%3e%3c/svg%3e")} +.flag\:SD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath d='M0 312.888h512v113.775H0z'/%3e%3cpath fill='%23496E2D' d='M0 426.668V85.331l256 170.675z'/%3e%3c/svg%3e")} +.flag\:SE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='%23FFDA44' d='M192 85.33h-64v138.666H0v64h128v138.666h64V287.996h320v-64H192z'/%3e%3c/svg%3e")} +.flag\:SG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512V256H0z'/%3e%3cg fill='white'%3e%3cpath d='M83.478 170.666c0-24.865 17.476-45.637 40.812-50.734a52.059 52.059 0 00-11.13-1.208c-28.688 0-51.942 23.254-51.942 51.941s23.255 51.942 51.942 51.942c3.822 0 7.543-.425 11.13-1.208-23.336-5.095-40.812-25.867-40.812-50.733zM150.261 122.435l3.684 11.337h11.921l-9.645 7.007 3.684 11.337-9.644-7.006-9.645 7.006 3.685-11.337-9.645-7.007h11.921z'/%3e%3cpath d='M121.344 144.696l3.683 11.337h11.921l-9.645 7.007 3.684 11.337-9.643-7.006-9.645 7.006 3.685-11.337-9.645-7.007h11.921zM179.178 144.696l3.684 11.337h11.921l-9.645 7.007 3.684 11.337-9.644-7.006-9.644 7.006 3.685-11.337-9.645-7.007h11.921zM168.047 178.087l3.684 11.337h11.921l-9.644 7.007 3.684 11.337-9.645-7.006-9.643 7.006 3.684-11.337-9.644-7.007h11.92zM132.474 178.087l3.683 11.337h11.921l-9.644 7.007 3.684 11.337-9.644-7.006-9.644 7.006 3.684-11.337-9.644-7.007h11.92z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:SH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z'/%3e%3cpath d='M0 0v15.1l57.4 38.3H80zM256 0v15.1l-57.4 38.3H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 0v15.1l57.4 38.3H80zM256 0v15.1l-57.4 38.3H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 170.7v-15.1l57.4-38.2H80zM256 170.7v-15.1l-57.4-38.2H176z'/%3e%3c/g%3e%3cpath fill='%2329DBFF' d='M449 139.7c-.1 44.4-7.2 92.1-65 114.9-57.8-22.8-64.9-70.5-65-114.9h130z'/%3e%3cpath fill='%23ffda44' d='M449 139.7c0-16.7-.9-32.9-.5-47.1C426.9 83 398.4 81 383.9 81s-42.9 2-64.6 11.6c.4 14.2-.5 30.4-.5 47.1H449z'/%3e%3cpath fill='%23BF521B' d='M369.5 204.5l.3 10.3-12.8.2 4.9 13.2h-17.3c-18-20.2-23.4-42.4-24.9-68.1l9.1-9.7 8.3 14.3 10.8-12.8 7 7.8.8 15.7 13.8 29.1z'/%3e%3cpath fill='%23474747' d='M436.6 192.5l-8.6 18.3h-47l-29.2-19.5 25.7 10.5h25.1l3.7-6.5 7.2.2 2-3z'/%3e%3c/svg%3e")} +.flag\:SI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 199.112h512v113.775H0z'/%3e%3cpath fill='%23D80027' d='M0 312.888h512v113.775H0z'/%3e%3cpath fill='white' d='M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l-.145-44.188 89.043-.266.146 44.454z'/%3e%3cpath fill='%230052B4' d='M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l-.145-44.188 89.043-.266.146 44.454z'/%3e%3cpath fill='white' d='M233.606 196.639v14.837c0 34.081-44.522 44.522-44.522 44.522s-44.522-10.44-44.522-44.522v-14.837l14.848 14.837 29.674-22.261 29.685 22.261 14.837-14.837z'/%3e%3c/svg%3e")} +.flag\:SJ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='white' d='M512 295.883H202.195v130.783H122.435V295.883H0V216.111h122.435V85.329H202.195v130.782H512V277.329z'/%3e%3cpath fill='%232E52B2' d='M512 234.666v42.663H183.652v149.337h-42.674V277.329H0v-42.663h140.978V85.329h42.674v149.337z'/%3e%3c/svg%3e")} +.flag\:SK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 196.641h512v118.717H0z'/%3e%3cpath fill='%23D80027' d='M0 315.359h512v111.304H0z'/%3e%3cpath fill='white' d='M129.468 181.799v85.136c0 48.429 63.267 63.267 63.267 63.267S256 315.362 256 266.935v-85.136H129.468z'/%3e%3cpath fill='%23D80027' d='M146.126 184.294v81.941c0 5.472 1.215 10.64 3.623 15.485h85.97c2.408-4.844 3.623-10.012 3.623-15.485v-81.941h-93.216z'/%3e%3cpath fill='white' d='M221.301 241.427h-21.425v-14.283h14.284v-14.283h-14.284v-14.284h-14.283v14.284h-14.282v14.283h14.282v14.283h-21.426v14.284h21.426v14.283h14.283v-14.283h21.425z'/%3e%3cpath fill='%230052B4' d='M169.232 301.658c9.204 5.783 18.66 9.143 23.502 10.636 4.842-1.494 14.298-4.852 23.502-10.636 9.282-5.833 15.79-12.506 19.484-19.939a24.878 24.878 0 00-14.418-4.583c-1.956 0-3.856.232-5.682.657-3.871-8.796-12.658-14.94-22.884-14.94-10.227 0-19.013 6.144-22.884 14.94a25.048 25.048 0 00-5.682-.657 24.88 24.88 0 00-14.418 4.583c3.691 7.433 10.198 14.106 19.48 19.939z'/%3e%3c/svg%3e")} +.flag\:SL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%23338AF3' d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:SM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23338AF3' d='M0 85.34h512v341.326H0z'/%3e%3cpath fill='white' d='M512 85.334v166.69L0 256.175V85.334z'/%3e%3cpath fill='%236DA544' d='M323.744 203.099L256 270.843l-67.744-67.744a81.156 81.156 0 00-13.879 45.483v22.261c0 35.744 23.097 66.193 55.148 77.213-4.277 8.385-3.556 18.848 2.712 26.671l24.258-19.439 24.258 19.439c6.342-7.915 7.011-18.534 2.564-26.968 31.614-11.261 54.308-41.485 54.308-76.916v-22.261a81.174 81.174 0 00-13.881-45.483z'/%3e%3cpath fill='%23FFDA44' d='M256 330.206c-32.732 0-59.362-26.63-59.362-59.362v-22.261c0-32.733 26.63-59.363 59.362-59.363s59.362 26.63 59.362 59.362v22.261c0 32.733-26.63 59.363-59.362 59.363z'/%3e%3cpath fill='%23338AF3' d='M293.101 270.843v-22.261c0-20.458-16.643-37.101-37.101-37.101s-37.101 16.643-37.101 37.101v22.261L256 278.264l37.101-7.421z'/%3e%3cpath fill='%236DA544' d='M218.899 270.843c0 20.458 16.643 37.101 37.101 37.101s37.101-16.643 37.101-37.101h-74.202z'/%3e%3cpath fill='%23FFDA44' d='M300.522 189.22c0-12.295-9.966-22.261-22.261-22.261a22.173 22.173 0 00-14.84 5.672v-13.093h7.421v-14.84h-7.421v-7.421h-14.84v7.421h-7.421v14.84h7.421v13.093a22.177 22.177 0 00-14.841-5.672c-12.295 0-22.261 9.966-22.261 22.261 0 6.591 2.867 12.512 7.421 16.589v13.093h74.203v-13.093c4.552-4.077 7.419-9.997 7.419-16.589z'/%3e%3c/svg%3e")} +.flag\:SN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M330.207 85.331H512v341.337H330.207z'/%3e%3cg fill='%23496E2D'%3e%3cpath d='M0 85.331h181.793v341.337H0zM255.999 196.632l14.733 45.347h47.685l-38.576 28.029 14.734 45.348-38.576-28.026-38.577 28.026 14.737-45.348-38.576-28.029h47.681z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:SO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23338AF3' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='white' d='M256 157.273l22.663 69.748H352l-59.332 43.106 22.664 69.749L256 296.769l-59.332 43.107 22.664-69.749L160 227.021h73.337z'/%3e%3c/svg%3e")} +.flag\:SR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23A2001D' d='M0 196.636h512v118.728H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M0 352.462h512v74.207H0zM0 85.331h512v74.207H0z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M256.742 218.003l9.43 29.021h30.518L272 264.963l9.431 29.023-24.689-17.937-24.689 17.937 9.431-29.023-24.69-17.939h30.518z'/%3e%3c/svg%3e")} +.flag\:SS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23496E2D' d='M0 322.783h512v103.88H0z'/%3e%3cpath d='M0 85.337h512v104.515H0z'/%3e%3cpath fill='%23A2001D' d='M0 210.877h512v89.656H0z'/%3e%3cpath fill='%230052B4' d='M256 256.006L0 426.668V85.331z'/%3e%3cpath fill='%23FFDA44' d='M73.178 209.188l20.831 29.067 34.084-10.83-21.207 28.795 20.83 29.069-33.939-11.271-21.208 28.794.234-35.762-33.94-11.273 34.083-10.83z'/%3e%3c/svg%3e")} +.flag\:ST{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M256 256.006L0 426.668V85.331z'/%3e%3cpath d='M302.049 226.318l7.368 22.674h23.842l-19.288 14.016 7.366 22.674-19.288-14.015-19.287 14.015 7.366-22.674-19.288-14.016h23.842zM376.252 226.318l7.367 22.674h23.842l-19.288 14.016 7.367 22.674-19.288-14.015-19.288 14.015 7.367-22.674-19.288-14.016h23.842z'/%3e%3c/svg%3e")} +.flag\:SV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%230052B4'%3e%3cpath d='M0 85.337h512v113.775H0zM0 312.888h512v113.775H0z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M228.582 261.936L256 214.447l27.418 47.489z'/%3e%3cpath fill='%236DA544' d='M291.616 277.616L256 295.425l-35.616-17.809v-23.744h71.232z'/%3e%3cpath fill='%23FFDA44' d='M289.579 216.485l-12.592 12.592c5.37 5.372 8.693 12.791 8.693 20.988 0 16.392-13.289 29.68-29.68 29.68-16.392 0-29.68-13.289-29.68-29.68 0-8.195 3.322-15.616 8.693-20.988l-12.592-12.592c-8.594 8.594-13.91 20.466-13.91 33.579 0 26.228 21.261 47.489 47.489 47.489s47.489-21.261 47.489-47.489c0-13.114-5.316-24.987-13.91-33.579z'/%3e%3c/svg%3e")} +.flag\:SX{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M512 85.331v166.69L0 256.173V85.331z'/%3e%3cpath fill='white' d='M256 256.006L0 426.668V85.331z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M59.621 256a59.546 59.546 0 00-.193 4.57c0 32.821 26.607 59.429 59.429 59.429s59.429-26.607 59.429-59.429c0-1.539-.078-3.061-.193-4.57H59.621z'/%3e%3ccircle cx='118.862' cy='210.287' r='18.286'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M77.715 205.714v59.429c0 31.494 41.144 41.143 41.144 41.143s41.144-9.649 41.144-41.143v-59.429H77.715z'/%3e%3cpath fill='%23338AF3' d='M118.877 287.148c-7.632-2.746-22.876-9.767-22.876-22.006v-41.144h45.715v41.144c-.001 12.28-15.244 19.283-22.839 22.006z'/%3e%3cpath fill='%23F3F3F3' d='M128.001 246.856v-9.142l-9.144-4.571-9.142 4.571v9.142l-4.571 4.573v18.285h27.428v-18.285z'/%3e%3c/svg%3e")} +.flag\:SY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23D80027' d='M0 85.331h512v113.775H0z'/%3e%3cpath d='M0 312.882h512v113.775H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M187.31 215.184l9.208 28.341h29.802l-24.11 17.518 9.209 28.342-24.109-17.516-24.11 17.516 9.209-28.342-24.109-17.518h29.801zM324.69 215.184l9.209 28.341H363.7l-24.109 17.518 9.209 28.342-24.11-17.516-24.109 17.516 9.209-28.342-24.11-17.518h29.802z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:SZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 600'%3e%3cpath fill='%232B5DEA' d='M0 0h900v600H0V0z'/%3e%3cpath fill='%23FFDF29' d='M0 100h900v400H0V100z'/%3e%3cpath fill='%23D70000' d='M0 150h900v300H0V150z'/%3e%3cpath fill='white' d='M450 171.4v257.2c114.3 0 171.4-85.7 214.3-128.6-42.9-42.9-100-128.6-214.3-128.6z'/%3e%3cpath d='M450 171.4c-100 0-171.4 85.7-214.3 128.6C278.6 342.9 350 428.6 450 428.6V171.4z'/%3e%3cpath fill='white' d='M346.3 254.3h21v91.3h-21zM398.2 254.3h21v91.3h-21z'/%3e%3cpath d='M477.8 254.3h21v91.3h-21zM529.7 254.3h21v91.3h-21z'/%3e%3c/svg%3e")} +.flag\:TA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%230052B4' d='M0 0h512v341.3H0z'/%3e%3cpath fill='white' d='M256 0v117.4h-46.1l46.1 30.7v22.6h-22.6L160 121.8v48.9H96v-48.9l-73.4 48.9H0v-22.6l46.1-30.7H0v-64h46.1L0 22.7V0h22.6L96 48.9V0h64v48.9L233.4 0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 0h-32v69.4H0v32h112v69.3h32v-69.3h112v-32H144z'/%3e%3cpath d='M0 0v15.1l57.4 38.3H80zM256 0v15.1l-57.4 38.3H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 0v15.1l57.4 38.3H80zM256 0v15.1l-57.4 38.3H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 22.7v30.7h-46.1z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 170.7v-15.1l57.4-38.2H80zM256 170.7v-15.1l-57.4-38.2H176z'/%3e%3c/g%3e%3cpath fill='%2329DBFF' d='M448.9 169.5c0 9.6-.3 29.6-1.4 39.2-4.1 34.9-23.5 68.8-62.1 85.9-45.3-17.9-60.8-51-64.9-85.9-1.1-9.6-1.5-19.4-1.5-29l.3-47.1h129.2l.4 36.9z'/%3e%3cpath fill='white' d='M447.5 208.7c-.2 1.6-.4 3.3-.6 4.9-4.8 33.1-22.9 65.4-61.5 81-43.2-17-59.4-47.9-64.2-81-.2-1.6-.4-3.2-.6-4.9'/%3e%3cpath fill='%2329DBFF' d='M385.4 251.7l-22.9-43h45.8z'/%3e%3cpath fill='white' d='M385.4 165.8l-22.9 42.9h45.8z'/%3e%3cellipse fill='%23FFBE57' cx='474.8' cy='236.8' rx='16.8' ry='43.3'/%3e%3cellipse fill='%23FFBE57' cx='295.3' cy='236.8' rx='16.8' ry='43.3'/%3e%3cpath fill='white' d='M385.4 31.5l-33.4 44h68.5zM315.5 280s33.8 29.5 69.9 29.5 67.1-29.5 67.1-29.5l8.5 14.6S439.2 326 385.4 326 307 294.6 307 294.6l8.5-14.6z'/%3e%3cellipse fill='%23A5A5A5' cx='386.3' cy='104.3' rx='34.3' ry='23.3'/%3e%3c/svg%3e")} +.flag\:TC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.333h512V426.67H0z'/%3e%3cpath fill='%23FFDA44' d='M332.058 191.996v78.221c0 38.103 51.942 49.779 51.942 49.779s51.942-11.675 51.942-49.779v-78.221H332.058z'/%3e%3cpath fill='%23FF9811' d='M376.579 220.44c0 7.855-6.644 28.445-14.84 28.445s-14.84-20.589-14.84-28.445c0-7.856 14.84-14.222 14.84-14.222s14.84 6.367 14.84 14.222z'/%3e%3cpath fill='%23A2001D' d='M415.961 235.93c2.394-5.6 4.257-13.785 4.257-17.86 0-6.546-8.904-11.852-8.904-11.852s-8.904 5.306-8.904 11.852c0 4.075 1.862 12.26 4.257 17.86l-5.141 11.123a26.898 26.898 0 009.788 1.831c3.463 0 6.766-.654 9.788-1.831l-5.141-11.123z'/%3e%3cpath fill='%236DA544' d='M372.87 270.217s-7.421 14.222-7.421 28.445h37.101c0-14.222-7.421-28.445-7.421-28.445l-11.13-7.111-11.129 7.111z'/%3e%3cpath fill='%23D80027' d='M395.13 270.217v-3.555c0-5.891-4.983-10.666-11.13-10.666-6.147 0-11.13 4.776-11.13 10.666v3.555h22.26z'/%3e%3cpath fill='white' d='M256 85.333v30.553l-45.167 25.099H256v59.359h-59.103L256 233.179v22.817h-26.68l-73.494-40.826v40.826h-55.652v-48.573l-87.43 48.573H0v-30.554l45.167-25.098H0v-59.359h59.103L0 108.139V85.333h26.68l73.494 40.825V85.333h55.652v48.572l87.43-48.572z'/%3e%3cpath fill='%23D80027' d='M144 85.33h-32v69.332H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath fill='%230052B4' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cpath fill='white' d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M155.826 200.344L256 255.996v-15.737l-71.847-39.915zM71.846 200.344L0 240.259v15.737l100.174-55.652z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cpath fill='white' d='M100.174 140.982L0 85.33v15.737l71.847 39.915z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M100.174 140.982L0 85.33v15.737l71.847 39.915zM184.154 140.982L256 101.067V85.33l-100.174 55.652z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TD{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%230052B4' d='M0 85.331h170.663v341.337H0z'/%3e%3cpath fill='%23D80027' d='M341.337 85.331H512v341.337H341.337z'/%3e%3c/svg%3e")} +.flag\:TF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22.5 15'%3e%3cpath fill='white' d='M0 0h21v15H0V0z'/%3e%3cpath fill='%23073AB6' d='M0 0h22.5v15H0V0z'/%3e%3cpath fill='white' d='M0 0h11.3v7.5H0V0z'/%3e%3cpath fill='%23F44653' d='M7.1 0h3.6v7H7.1V0z'/%3e%3cpath fill='%231035BB' d='M0 0h3.6v7H0V0z'/%3e%3cpath fill='white' d='M3.6 0h3.6v7H3.6V0zM14.5 6h5L19 7h-1.5v.5h1l-.5 1h-.5V10h-1V7H15l-.5-1zm4 2.5l1 1.5h-2l1-1.5zm-3 0l1 1.5h-2l1-1.5zm1.5 3L16 10h2l-1 1.5zM20 8c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-6 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm1 4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm4 0c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5zm-2 1c-.3 0-.5-.2-.5-.5s.2-.5.5-.5.5.2.5.5-.2.5-.5.5z'/%3e%3c/svg%3e")} +.flag\:TG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='%23496E2D'%3e%3cpath d='M0 85.337h512V153.6H0zM0 358.4h512v68.263H0zM0 221.863h512v68.263H0z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M0 85.337h204.054v204.054H0z'/%3e%3cpath fill='white' d='M102.026 133.938l13.26 40.812h42.916l-34.718 25.226 13.26 40.814-34.718-25.224-34.719 25.224 13.263-40.814-34.718-25.226h42.913z'/%3e%3c/svg%3e")} +.flag\:TH{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.334h512V426.66H0z'/%3e%3cpath fill='%230052B4' d='M0 194.056h512v123.882H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.334h512v54.522H0zM0 372.143h512v54.522H0z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TJ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath fill='%236DA544' d='M0 312.888h512v113.775H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M226.318 300.522h59.364v-25.23l-11.873 5.937L256 263.421l-17.809 17.808-11.873-5.937zM192.355 270.84l2.763 8.504h8.94l-7.233 5.255 2.763 8.502-7.233-5.255-7.234 5.255 2.763-8.502-7.233-5.255h8.94zM200.921 241.16l2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zM225.409 218.899l2.763 8.502h8.94l-7.233 5.255 2.763 8.504-7.233-5.256-7.234 5.256 2.763-8.504-7.233-5.255h8.94zM319.645 270.84l-2.763 8.504h-8.94l7.233 5.255-2.763 8.502 7.233-5.255 7.234 5.255-2.763-8.502 7.233-5.255h-8.94zM311.079 241.16l-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zM286.591 218.899l-2.763 8.502h-8.94l7.233 5.255-2.763 8.504 7.233-5.256 7.234 5.256-2.763-8.504 7.233-5.255h-8.94zM256 207.767l2.763 8.503h8.941l-7.234 5.256 2.763 8.502-7.233-5.254-7.233 5.254 2.763-8.502-7.234-5.256h8.941z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='white'%3e%3cpath d='M210.715 174.377l3.684 11.338h11.919l-9.643 7.006 3.684 11.337-9.644-7.007-9.644 7.007 3.684-11.337-9.645-7.006h11.921zM116.816 281.971l4.605 14.172h14.9l-12.055 8.757 4.606 14.173-12.056-8.76-12.055 8.76 4.604-14.173-12.054-8.757h14.899zM144.696 119.679l4.604 14.172h14.901l-12.056 8.758 4.606 14.171-12.055-8.759-12.056 8.759 4.606-14.171-12.055-8.758h14.9zM69.539 175.331l4.604 14.172h14.9l-12.055 8.758 4.606 14.171-12.055-8.758-12.056 8.758 4.606-14.171-12.055-8.758h14.9z'/%3e%3c/g%3e%3cg fill='%23FFDA44'%3e%3cpath d='M483.386 354.503H117.801s109.234-88.562 310.593-220.938c.001 0-88.443 128.935 54.992 220.938zM117.801 366.089c-11.177 0-11.195 17.37 0 17.37h365.585c11.177 0 11.195-17.37 0-17.37H117.801z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TL{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23FFDA44' d='M256 256L0 90.691v44.242L155.826 256 0 377.067v44.242z'/%3e%3cpath d='M0 90.691v330.618L189.217 256z'/%3e%3cpath fill='white' d='M44.184 213.36l24.912 23.577 30.121-16.41-14.723 30.98 24.911 23.575-34.012-4.43L60.67 301.63l-6.296-33.716-34.012-4.43 30.119-16.408z'/%3e%3c/svg%3e")} +.flag\:TM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.337h512v341.326H0z'/%3e%3cg fill='white'%3e%3cpath d='M357.208 183.679c8.397-23.404-1.036-48.858-21.281-61.536a52.131 52.131 0 0110.884 2.621c27.002 9.688 41.038 39.428 31.35 66.431s-39.428 41.038-66.431 31.35a52.182 52.182 0 01-10.069-4.895c23.686 3.084 47.15-10.566 55.547-33.971zM310.637 115.729l-7.297 9.427-11.22-4.026 6.712 9.852-7.296 9.427 11.443-3.338 6.712 9.852.361-11.914 11.444-3.339-11.221-4.025z'/%3e%3cpath d='M330.338 146.448l-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.443-3.339 6.712 9.853.36-11.915 11.445-3.34-11.221-4.024zM275.9 126.916l-7.296 9.427-11.219-4.024 6.711 9.851-7.296 9.426 11.443-3.338 6.712 9.852.361-11.915 11.444-3.337-11.221-4.027zM275.101 162.105l-7.296 9.427-11.221-4.026 6.712 9.852-7.296 9.427 11.444-3.338 6.711 9.852.362-11.915 11.443-3.338-11.22-4.026zM308.585 174.118l-7.296 9.427-11.22-4.026 6.712 9.853-7.297 9.426 11.444-3.338 6.712 9.852.36-11.915 11.443-3.338-11.219-4.025z'/%3e%3c/g%3e%3cpath fill='%23D80027' d='M83.478 85.337h89.043v341.326H83.478z'/%3e%3cpath fill='white' d='M117.458 175.191l-14.908-11.105v-15.705l14.908-11.105h21.084l14.908 11.105v15.705l-14.908 11.105z'/%3e%3cg fill='%23FF9811'%3e%3cpath d='M128 137.276h-10.542l-14.908 11.105v7.678H128zM128 175.191h10.542l14.908-11.105v-8.012H128z'/%3e%3c/g%3e%3cpath fill='white' d='M117.458 374.725l-14.908-11.106v-15.704l14.908-11.105h21.084l14.908 11.105v15.704l-14.908 11.106z'/%3e%3cg fill='%23FF9811'%3e%3cpath d='M128 336.81h-10.542l-14.908 11.105v7.678H128zM128 374.725h10.542l14.908-11.106v-8.011H128z'/%3e%3c/g%3e%3cg fill='%23496E2D'%3e%3cpath d='M117.458 274.957l-14.908-11.105v-15.703l14.908-11.106h21.084l14.908 11.106v15.703l-14.908 11.105zM153.971 299.391h-6.493v-6.493h-11.411l-8.068-8.068-8.067 8.068h-11.41v6.493h-6.493v12.986h6.493v6.492h11.41l8.068 8.069 8.068-8.069h11.41v-6.492h6.493zM153.971 199.623h-6.493v-6.492h-11.411l-8.068-8.069-8.067 8.069h-11.41v6.492h-6.493v12.986h6.493v6.492h11.41l8.068 8.07 8.068-8.07h11.41v-6.492h6.493z'/%3e%3c/g%3e%3cg fill='%23D80027'%3e%3cpath d='M120.576 248.576h14.84v14.84h-14.84z'/%3e%3ccircle cx='128' cy='206.113' r='7.421'/%3e%3ccircle cx='128' cy='305.887' r='7.421'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.331h512v341.337H0z'/%3e%3ccircle fill='white' cx='256' cy='255.994' r='96'/%3e%3cg fill='%23D80027'%3e%3cpath d='M267.826 219.291l16.47 22.695 26.673-8.649-16.496 22.676 16.468 22.695-26.664-8.681-16.495 22.676.017-28.04-26.664-8.682 26.674-8.648z'/%3e%3cpath d='M277.818 312.724c-31.33 0-56.727-25.397-56.727-56.727s25.397-56.727 56.727-56.727c9.769 0 18.96 2.47 26.985 6.819-12.589-12.31-29.804-19.909-48.803-19.909-38.558 0-69.818 31.259-69.818 69.818s31.26 69.818 69.818 69.818c18.999 0 36.215-7.599 48.803-19.909-8.026 4.347-17.216 6.817-26.985 6.817z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:TO{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='white' d='M0 85.331h256v170.663H0z'/%3e%3cpath fill='%23D80027' d='M141.357 157.303V130.59h-26.714v26.713H87.93v26.713h26.713v26.713h26.714v-26.713h26.713v-26.713z'/%3e%3c/svg%3e")} +.flag\:TR{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 450 300'%3e%3cpath fill='%23d80027' d='M0 150V0h450v300H0V150z'/%3e%3cpath fill='white' d='M247.3 118.3l35.2 5.8L307.4 99l5.1 32.8L344 150l-31.5 18.2-4.9 33.5-25.1-25.9-35.2 5.8L263 150z'/%3e%3cpath fill='white' d='M240.6 228.6c-43.3 0-78.3-35.1-78.3-78.3S197.4 72 240.6 72c8.1 0 15.8 1.2 23.2 3.5-17.3-15-39.8-24-64.5-24-54.4 0-98.6 44.1-98.6 98.6s44.1 98.6 98.6 98.6c24.2 0 46.3-8.7 63.4-23.1-7 1.9-14.4 3-22.1 3z'/%3e%3c/svg%3e")} +.flag\:TT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='white' d='M6.066 85.337l207.961 212.636 131.584 128.69h160.323L297.973 214.027 166.389 85.337z'/%3e%3cpath d='M43.364 85.337L384.69 426.663h83.946L127.31 85.337z'/%3e%3c/svg%3e")} +.flag\:TV{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 600'%3e%3cpath fill='%230052B4' d='M0 0h900v600H0z'/%3e%3cpath fill='%2300B2EE' d='M0 300h450V0h450v600H0V300z'/%3e%3cpath fill='%23FFDA44' d='M345.3 480.9l29.4 90.6-77.1-56H393l-77.1 56 29.4-90.6zM706.4 340l29.4 90.6-77.1-56H754l-77.1 56 29.5-90.6zM812.8 261.5l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM812.8 37.4l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6z'/%3e%3cpath fill='white' d='M449.9 0v206.3h-81l81 54V300h-39.7l-129-85.9V300H168.7v-85.9L39.7 300H0v-39.7l81-54H0V93.8h81L0 39.9V0h39.7l129 85.9V0h112.5v85.9L410.2 0z'/%3e%3cpath fill='%23D80027' d='M253.1 0h-56.3v122H0v56.2h196.8V300h56.3V178.2h196.8V122H253.1z'/%3e%3cpath fill='%232E52B2' d='M449.9 39.9v53.9h-81z'/%3e%3cpath fill='%23D80027' d='M0 300v-19.3l109.9-74.4h39.7L12.8 300zM12.8.1l136.8 93.7h-39.7L0 19.4V.1zM449.9.2v19.3L340 93.8h-39.7L437.1.2zM437.1 300l-136.8-93.7H340l109.9 74.4V300z'/%3e%3cpath fill='%23FFDA44' d='M719.9 131.6l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM584 187.7l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM614 430.6l29.4 90.6-77.1-56h95.3l-77.1 56 29.5-90.6zM488 332l29.4 90.6-77.1-56h95.3l-77.1 56L488 332zM488 464l29.4 90.6-77.1-56h95.3l-77.1 56L488 464z'/%3e%3c/svg%3e")} +.flag\:TW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%230052B4' d='M0 85.337h256V256H0z'/%3e%3cpath fill='white' d='M186.435 170.669L162.558 181.9l12.714 23.125-25.927-4.961-3.286 26.192L128 206.993l-18.06 19.263-3.285-26.192-25.927 4.96 12.714-23.125-23.877-11.23 23.877-11.231-12.714-23.125 25.927 4.96 3.286-26.192L128 134.344l18.06-19.263 3.285 26.192 25.928-4.96-12.715 23.125z'/%3e%3ccircle fill='%230052B4' cx='128' cy='170.674' r='29.006'/%3e%3cpath fill='white' d='M128 190.06c-10.692 0-19.391-8.7-19.391-19.391 0-10.692 8.7-19.391 19.391-19.391 10.692 0 19.391 8.7 19.391 19.391 0 10.691-8.699 19.391-19.391 19.391z'/%3e%3c/svg%3e")} +.flag\:TZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23338AF3' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 426.663V85.337h512'/%3e%3cpath fill='%23FFDA44' d='M512 152.222V85.337H411.67L0 359.778v66.885h100.33z'/%3e%3cpath d='M512 85.337v40.125L60.193 426.663H0v-40.125L451.807 85.337z'/%3e%3c/svg%3e")} +.flag\:UA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23338AF3' d='M0 85.337h512V256H0z'/%3e%3c/svg%3e")} +.flag\:UG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='%23232323' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%23FFDA44' d='M0 56.9h512v56.9H0z'/%3e%3cpath fill='%23D32300' d='M0 113.8h512v56.9H0z'/%3e%3cpath fill='%23FFDA44' d='M0 227.6h512v56.9H0z'/%3e%3cpath fill='%23D32300' d='M0 284.4h512v56.9H0z'/%3e%3ccircle fill='white' cx='256' cy='170.7' r='80.7'/%3e%3cpath d='M234.5 127.5c.9-1.4-19.6-2-19.6-2 1.7-2.5 18.4-10.5 18.4-10.5s-.9-6 2.7-9.8l-4.5-9.8s7-3.4 18.4-3.4 19.9 7 21 13.1l-6.4 3.4c-.1 4.7 1.7 11.6-4.3 17.3-5.9 5.7-8.3 6.9-8.5 18.8 0 3.9 2.3 8.2 8.8 11.7 17.4 9.3 38.6 28.2 44.6 33.9 6.1 5.7 5.1 19.2 2.6 25.2s-12.1 14.3-14.3 13.6c-2.2-.6 1.2-9.2-3.5-11.6 0 0-8.9-7.6-16.8.6s-.2 25.2 3.9 28c4.1 2.8 1.7 5-1.9 5H247c-3.8 0-5.4-2.3-1.9-5 7.6-3.8 12.4-15.3 7.4-20.3-4.9-4.9-18.3 1.5-21.5 6.3-2.8 2.8-8.8 3.6-12.9-1.4s-4.1-10.4-1.1-12.5c7-4.8 0 0 .1-.1 0 0 11.9-8.6 29.9-9 3.9 0 4.8-2.2 2.2-4.8 0 0-30.9-27.4-28.1-44.2 3-18.3 20-26.3 13.4-32.5-1.3-1.8 0 0 0 0z'/%3e%3c/svg%3e")} +.flag\:US{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 0h513v38H0zM0 76h513v38H0zM0 152h513v38H0zM0 228h513v38H0zM0 304h513v38H0z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M0 0h256.5v190H0z'/%3e%3cg fill='white'%3e%3cpath d='M47.8 141.9l-4-12.8-4.3 12.8H26.3l10.7 7.7-4 12.8 10.8-7.9 10.7 7.9-4.2-12.8 10.9-7.7zM104.2 141.9l-4.1-12.8-4.2 12.8H82.7l10.7 7.7-4.1 12.8 10.8-7.9 10.7 7.9-4-12.8 10.8-7.7zM160.6 141.9l-4.2-12.8-4 12.8h-13.5l10.9 7.7-4.2 12.8 10.8-7.9 10.9 7.9-4.2-12.8 10.8-7.7zM216.9 141.9l-4.1-12.8-4.2 12.8h-13.2l10.7 7.7-4 12.8 10.7-7.9 10.8 7.9-4.2-12.8 10.9-7.7zM100.1 78.3l-4.2 12.8H82.7L93.4 99l-4.1 12.6 10.8-7.8 10.7 7.8-4-12.6 10.8-7.9h-13.4zM43.8 78.3l-4.3 12.8H26.3L37 99l-4 12.6 10.8-7.8 10.7 7.8L50.3 99l10.9-7.9H47.8zM156.4 78.3l-4 12.8h-13.5l10.9 7.9-4.2 12.6 10.8-7.8 10.9 7.8-4.2-12.6 10.8-7.9h-13.3zM212.8 78.3l-4.2 12.8h-13.2l10.7 7.9-4 12.6 10.7-7.8 10.8 7.8-4.2-12.6 10.9-7.9h-13.4zM43.8 27.7l-4.3 12.6H26.3L37 48.2l-4 12.7L43.8 53l10.7 7.9-4.2-12.7 10.9-7.9H47.8zM100.1 27.7l-4.2 12.6H82.7l10.7 7.9-4.1 12.7 10.8-7.9 10.7 7.9-4-12.7 10.8-7.9h-13.4zM156.4 27.7l-4 12.6h-13.5l10.9 7.9-4.2 12.7 10.8-7.9 10.9 7.9-4.2-12.7 10.8-7.9h-13.3zM212.8 27.7l-4.2 12.6h-13.2l10.7 7.9-4 12.7 10.7-7.9 10.8 7.9-4.2-12.7 10.9-7.9h-13.4z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:UY{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 513 342'%3e%3cpath fill='white' d='M0 0h513v342H0z'/%3e%3cg fill='%23338AF3'%3e%3cpath d='M0 38h513v38H0zM0 114h513v38H0zM0 190h513v38H0zM0 266h513v38H0z'/%3e%3c/g%3e%3cpath fill='white' d='M0 0h256.5v190H0z'/%3e%3cpath fill='%23FFDA44' d='M192 95l-26.2 12.3 14 25.3-28.4-5.4-3.6 28.7-19.8-21.1-19.8 21.1-3.6-28.7-28.4 5.4 14-25.3L64 95l26.2-12.3-14-25.3 28.4 5.4 3.6-28.7L128 55.2l19.8-21.1 3.6 28.7 28.4-5.4-14 25.3z'/%3e%3c/svg%3e")} +.flag\:UZ{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M0 322.783h512v103.88H0z'/%3e%3cpath fill='%23338AF3' d='M0 85.337h512v104.515H0z'/%3e%3cpath fill='white' d='M0 210.877h512v89.656H0z'/%3e%3cpath fill='%23338AF3' d='M0 85.337h512v104.515H0z'/%3e%3cg fill='white'%3e%3cpath d='M188.688 137.589c0-15.984 11.234-29.339 26.236-32.614a33.531 33.531 0 00-7.155-.777c-18.442 0-33.391 14.949-33.391 33.391s14.949 33.391 33.391 33.391c2.458 0 4.85-.273 7.155-.777-15.002-3.275-26.236-16.63-26.236-32.614zM234.658 152.766l2.261 6.957h7.315l-5.918 4.301 2.261 6.956-5.919-4.3-5.918 4.3 2.261-6.956-5.918-4.301h7.315zM258.006 152.766l2.26 6.957h7.315l-5.918 4.301 2.261 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.917-4.301h7.314zM281.353 152.766l2.26 6.957h7.315l-5.917 4.301 2.26 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.918-4.301h7.315zM304.7 152.766l2.262 6.957h7.315l-5.919 4.301 2.261 6.956-5.919-4.3-5.918 4.3 2.262-6.956-5.919-4.301h7.314zM328.048 152.766l2.26 6.957h7.315l-5.918 4.301 2.261 6.956-5.918-4.3-5.918 4.3 2.26-6.956-5.917-4.301h7.314zM258.006 128.482l2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.917-4.3h7.314zM281.353 128.482l2.26 6.956h7.315l-5.917 4.3 2.26 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.918-4.3h7.315zM304.7 128.482l2.262 6.956h7.315l-5.919 4.3 2.261 6.957-5.919-4.299-5.918 4.299 2.262-6.957-5.919-4.3h7.314zM328.048 128.482l2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.299-5.918 4.299 2.26-6.957-5.917-4.3h7.314zM281.353 104.198l2.26 6.956h7.315l-5.917 4.3 2.26 6.957-5.918-4.3-5.918 4.3 2.26-6.957-5.918-4.3h7.315zM304.7 104.198l2.262 6.956h7.315l-5.919 4.3 2.261 6.957-5.919-4.3-5.918 4.3 2.262-6.957-5.919-4.3h7.314zM328.048 104.198l2.26 6.956h7.315l-5.918 4.3 2.261 6.957-5.918-4.3-5.918 4.3 2.26-6.957-5.917-4.3h7.314z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:VA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.326H0z'/%3e%3cpath fill='white' d='M256 85.331h256v341.337H256z'/%3e%3cpath fill='%23ACABB1' d='M321.353 233.837l32.073 42.43c-5.053 7.651-5.026 17.961.817 25.692 7.414 9.807 21.374 11.748 31.182 4.335 9.807-7.414 11.748-21.374 4.334-31.182-5.843-7.731-15.756-10.568-24.495-7.795l-49.988-66.129-11.838 8.949-17.759 13.424 17.899 23.677 17.775-13.401zm46.175 48.78a7.421 7.421 0 118.95 11.84 7.421 7.421 0 01-8.95-11.84z'/%3e%3cpath fill='%23FFDA44' d='M376.367 247.24l17.899-23.677-17.759-13.424-11.838-8.949-49.988 66.129c-8.74-2.775-18.651.063-24.495 7.795-7.414 9.808-5.473 23.768 4.334 31.182 9.808 7.414 23.768 5.473 31.182-4.335 5.845-7.731 5.871-18.041.817-25.692l32.073-42.43 17.775 13.401zm-62.504 45.771a7.42 7.42 0 11-11.84-8.95 7.42 7.42 0 0111.84 8.95z'/%3e%3c/svg%3e")} +.flag\:VC{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23FFDA44' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23338AF3' d='M0 85.331h170.663v341.337H0z'/%3e%3cg fill='%236DA544'%3e%3cpath d='M341.337 85.331H512v341.337H341.337zM214.261 283.82l-33.393-50.086 33.392-50.087 33.392 50.087zM297.739 283.82l-33.391-50.086 33.391-50.087 33.393 50.087zM256 350.603l-33.391-50.087L256 250.429l33.391 50.087z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:VE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22.5 15'%3e%3cpath fill='%23FFCE00' d='M0 0h22.5v5H0z'/%3e%3cpath fill='%23203899' d='M0 5h22.5v5H0z'/%3e%3cpath fill='%23D82B2B' d='M0 10h22.5v5H0z'/%3e%3cpath fill='white' d='M12.13 5.38l.14.46.45.14-.39.27.01.48-.38-.29-.45.15.15-.44-.28-.38h.47zM10.36 5.38l.27.39h.47l-.28.38.15.45-.45-.16-.38.28.01-.47-.39-.28.45-.13zM13.8 5.94l-.01.48.39.27-.46.14-.14.45-.27-.38h-.48l.29-.38-.15-.45.45.16zM8.69 5.96l.4.27.44-.18-.13.46.3.36-.47.02-.26.4-.16-.44-.46-.12.37-.3zM15.24 7.13l-.2.44.25.4-.47-.05-.31.36-.1-.46-.43-.18.41-.24.03-.47.35.31zM15.43 8.25l.21.43.47.07-.34.33.08.46-.42-.22-.42.22.08-.46-.34-.33.47-.07zM7 8.2l.21.43.47.06-.34.33.08.47L7 9.27l-.42.22.08-.47-.34-.33.47-.06zM7.31 7.05l.45.14.38-.29v.48l.39.26-.45.15-.13.46-.28-.38-.47.01.27-.38z'/%3e%3c/svg%3e")} +.flag\:VG{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%230052B4' d='M0 85.334h512v341.337H0z'/%3e%3cpath fill='white' d='M256 85.334V202.66h-46.069L256 233.38v22.617h-22.628L160 207.078v48.919H96v-48.919l-73.372 48.919H0V233.38l46.069-30.72H0v-64h46.069L0 107.951V85.334h22.628L96 134.241V85.334h64v48.907l73.372-48.907z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M144 85.33h-32v69.333H0v32h112v69.334h32v-69.334h112v-32H144z'/%3e%3cpath d='M0 85.329v15.083l57.377 38.251H80zM256 85.329v15.083l-57.377 38.251H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 107.951v30.712h-46.069z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 85.329v15.083l57.377 38.251H80zM256 85.329v15.083l-57.377 38.251H176z'/%3e%3c/g%3e%3cpath fill='%232E52B2' d='M256 107.951v30.712h-46.069z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 255.997v-15.082l57.377-38.252H80zM256 255.997v-15.082l-57.377-38.252H176z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M384 259.706l-46.129 46.129c8.645 16.675 26.051 28.074 46.129 28.074s37.484-11.4 46.129-28.074L384 259.706z'/%3e%3cpath fill='%236DA544' d='M332.058 178.084V259.708c.001 39.759 51.942 51.941 51.942 51.941s51.941-12.182 51.942-51.942v-81.623H332.058z'/%3e%3cpath fill='white' d='M372.87 215.181h22.261v59.359H372.87z'/%3e%3ccircle fill='%23A2001D' cx='384' cy='215.181' r='11.13'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M346.902 192.92h14.84v14.84h-14.84zM346.902 226.312h14.84v14.84h-14.84zM346.902 259.703h14.84v14.84h-14.84zM406.261 192.92h14.84v14.84h-14.84zM406.261 226.312h14.84v14.84h-14.84zM406.261 259.703h14.84v14.84h-14.84z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:VI{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.3'%3e%3cpath fill='white' d='M0 0h512v341.3H0z'/%3e%3cpath fill='%231583C4' d='M397.7 166.3l-51 97.7c-1.1 2-.3 4.5 1.8 5.6 2 1.1 4.5.3 5.6-1.8l51-97.7c1-2.1.1-4.6-2-5.5-2-.9-4.3-.2-5.4 1.7z'/%3e%3cpath fill='%231583C4' d='M404.9 188l-57.8 75.4c-1.3 1.9-.8 4.5 1.1 5.8 1.7 1.2 4.1.9 5.5-.7l57.8-75.4c1.4-1.8 1.1-4.4-.8-5.8-1.8-1.5-4.4-1.1-5.8.7z'/%3e%3cpath fill='%231583C4' d='M379 181.3l-32.5 83.1c-.8 2.1.2 4.6 2.4 5.4 2.1.8 4.6-.2 5.4-2.4l32.5-83.1c.7-2.2-.4-4.5-2.6-5.3-2.1-.6-4.3.4-5.2 2.3z'/%3e%3cpath fill='%23409347' d='M122.1 171.9c.4 1.7 1.2 4.7 2.2 8.5 1.7 6.4 3.6 12.8 5.6 18.7 2.3 6.9 14.7 31.4 20.2 39.1 6.9 9.7 14.1 19.3 21.5 28.6 1.6 1.9 4.5 2.1 6.4.5 1.8-1.6 2.1-4.3.7-6.2-7.3-9.2-14.4-18.6-21.2-28.2-4.2-5.8-17.2-31.1-19-36.7-2.9-8.7-5.4-17.6-7.6-26.5-.5-2.4-2.9-4-5.3-3.5s-4 2.9-3.5 5.3c-.1.2 0 .3 0 .4z'/%3e%3cg fill='%23FFD836' stroke='%23231F20' stroke-miterlimit='10'%3e%3cpath d='M297.1 114.9S279.5 42.8 261 42.8c-6.9 0-11.9-.6-15.4 6.4-.9 1.7-20.7-1.6-19.1 20.8.5 6.9 1.1-9.8 14.9-3.4 6.3 3-16.4 48.2-16.4 48.2h72.1z'/%3e%3cpath d='M466.1 48.4l-90.9 22c-75.3 18.3-42.1 44.4-42.1 44.4l-72.1 12-72.1-12s33.2-26.1-42.1-44.4l-90.9-22C43.1 45.3 38.1 51.8 45.3 63c0 0 106.6 104 126.8 112 20.2 8.1 40.8 0 40.8 0s-14.9 8.7-24 24c-9.2 15.3-4.6 34.7-38.9 40.2-5.5 6.6-5 14 2.9 19.9 7.9 5.8 72.1-48.1 72.1-48.1s-24 24.4-24 36.1c0 5.1 44.1 53.8 60.1 53.8s60.1-48.7 60.1-53.8c0-11.7-24-36.1-24-36.1s64.2 53.9 72.1 48.1 11.4-19.3 2.8-19.9c-28-1.8-29.7-24.9-38.9-40.2-9.2-15.3-24-24-24-24s20.6 8.1 40.8 0S476.7 63 476.7 63c7.2-11.2 2.3-17.7-10.6-14.6z'/%3e%3c/g%3e%3cpath fill='white' stroke='%23231F20' stroke-miterlimit='10' d='M201.3 111.8v80.3c0 45.7 59.7 59.7 59.7 59.7s59.7-14 59.7-59.7v-80.3H201.3h0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M225.2 137.7V235c8.2 6 17 10.2 23.9 12.9V137.7h-23.9zM296.8 137.7V235c-8.2 6-17 10.2-23.9 12.9V137.7h23.9z'/%3e%3c/g%3e%3cpath fill='%230052B4' d='M201.3 111.8h119.4v37.9H201.3z'/%3e%3cpath fill='%231583C4' d='M60.1 210.5l-21.9-58.1H15.7l31.8 80.8h25.2l31.5-80.8H81.7zM451.5 151.9h18.9v81.7h-18.9z'/%3e%3c/svg%3e")} +.flag\:VN{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M196.641 85.337H0v341.326h512V85.337z'/%3e%3cpath fill='%23FFDA44' d='M256 157.279l22.663 69.747H352l-59.332 43.106 22.664 69.749L256 296.774l-59.332 43.107 22.664-69.749L160 227.026h73.337z'/%3e%3c/svg%3e")} +.flag\:VU{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%236DA544' d='M512 256v170.663H0L215.185 256z'/%3e%3cpath fill='%23D80027' d='M512 85.337V256H215.185L0 85.337z'/%3e%3cpath d='M221.001 239.304L26.868 85.337H8.956l208.168 165.098H512v-11.131zM8.956 426.663h17.912l194.133-153.967H512v-11.131H217.124zM0 92.44v14.206L188.317 256 0 405.354v14.205L206.229 256z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M8.956 85.337H0v7.103L206.229 256 0 419.559v7.104h8.956l208.168-165.098H512v-11.13H217.124z'/%3e%3cpath d='M63.718 292.382v-14.295c14.265 0 25.87-11.606 25.87-25.869 0-10.092-8.211-18.303-18.304-18.303-6.875 0-12.469 5.593-12.469 12.469 0 4.397 3.577 7.974 7.974 7.974a4.514 4.514 0 004.508-4.508h14.295c0 10.368-8.435 18.804-18.802 18.804-12.279-.002-22.269-9.993-22.269-22.271 0-14.758 12.006-26.764 26.764-26.764 17.975 0 32.599 14.623 32.599 32.599 0 22.145-18.018 40.164-40.166 40.164z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:WF{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 100'%3e%3cpath fill='%23ED2939' d='M0 0h150v100H0z'/%3e%3cpath fill='%23002395' d='M0 0h20v44.33H0z'/%3e%3cpath fill='white' d='M20 0h20v44.33H20z'/%3e%3cpath fill='none' stroke='white' stroke-width='3' d='M0 44.33h62.75V0'/%3e%3cpath fill='white' d='M108.08 43.29L87.96 23.17h40.25l-20.13 20.12zm-6.7 6.71L81.25 29.88v40.25L101.38 50zm6.7 6.71L87.96 76.83h40.25l-20.13-20.12zm6.71-6.71l20.13-20.13v40.25L114.79 50z'/%3e%3c/svg%3e")} +.flag\:WS{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23D80027' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%230052B4' d='M0 85.331h256v170.663H0z'/%3e%3cg fill='white'%3e%3cpath d='M165.483 181.79l2.764 8.504h8.939l-7.232 5.254 2.763 8.503-7.234-5.255-7.233 5.255 2.763-8.503-7.233-5.254h8.94zM120.579 115.007l4.606 14.173h14.9l-12.055 8.757 4.605 14.171-12.056-8.758-12.054 8.758 4.605-14.171-12.056-8.757h14.901zM165.101 129.848l4.606 14.172h14.9l-12.055 8.757 4.604 14.173-12.055-8.76-12.054 8.76 4.604-14.173-12.055-8.757h14.9zM129.909 189.211l4.606 14.172h14.9l-12.055 8.758 4.604 14.171-12.055-8.759-12.054 8.759 4.604-14.171-12.055-8.758h14.9zM90.899 152.108l4.605 14.173h14.9l-12.055 8.757 4.604 14.173-12.054-8.76-12.055 8.76 4.604-14.173-12.055-8.757h14.9z'/%3e%3c/g%3e%3c/svg%3e")} +.flag\:XK{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 341.33'%3e%3cpath fill='%230052B4' d='M0 0h512v341.34H0z'/%3e%3cg fill='white'%3e%3cpath d='M220.72 42.63l7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.36-15.9 8.36 3.03-17.7-12.86-12.54 17.78-2.58zM291.28 42.57l7.95 16.1 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59zM353.36 53.93l7.95 16.11 17.77 2.58-12.86 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.87-12.54 17.78-2.58zM416.37 72.23l7.95 16.11 17.77 2.59-12.86 12.53 3.04 17.71-15.9-8.36-15.9 8.36 3.03-17.71-12.86-12.53 17.78-2.59zM158.64 53.93l7.95 16.11 17.78 2.58-12.87 12.54 3.04 17.7-15.9-8.35-15.9 8.35 3.04-17.7-12.86-12.54 17.77-2.58zM95.63 72.23l7.95 16.11 17.78 2.59-12.86 12.53 3.03 17.71-15.9-8.36-15.9 8.36 3.04-17.71-12.86-12.53 17.77-2.59z'/%3e%3c/g%3e%3cpath fill='%23FFDA44' d='M217.53 259.33l-27.22-13.61-27.22-54.43h27.22l27.22-27.22 13.61-27.22 27.22-13.61 13.61 13.61 27.22 13.61v13.61l13.61 13.61 40.83 27.22L340 245.73l-40.83 40.83-13.61-27.22-40.83 27.22v27.22l-13.61-13.61-13.59-40.84z'/%3e%3c/svg%3e")} +.flag\:YE{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath fill='%23D80027' d='M0 85.337h512v113.775H0z'/%3e%3cpath d='M0 312.888h512v113.775H0z'/%3e%3c/svg%3e")} +.flag\:YT{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 60'%3e%3cpath fill='white' d='M0 0h90v60H0z'/%3e%3cpath stroke='%237f7f7f' stroke-width='.25' fill='%23ABABAB' d='M12.8 38.5s4 1.6 1.2-.5c-2.4-1.7-5 2.4-5 5.1s1.2 7 7.5 7c7.6 0 11.4-5.7 11.4-11.4 0-4.8-3.7-13.5-6.5-14.6-3.1-1.2-6.7-3.5-6.8-5 0-.5 1.4-.1 3.3.9 3.1 1.7 6.6 2.5 6.6 1.4s-2.9-3.1-4-4.6c-1.2-1.6-.9-5.5-3-5.5-7.6 0-9.9 7.7-7 11.7 1.9 2.6-4.3 1-4.3 1s0 5.3 3.2 7.3c3 1.8 4.8 3.9 4.8 3.9s-.2-4.6.5-3.9c.6.7 11.1 4.5 10.3 12-.3 3-4.5 5.4-8.5 5.2-4-.2-6.8-2.4-6.4-5.4.2-4.2 2.7-4.6 2.7-4.6zM77.2 38.5s-4 1.6-1.2-.5c2.4-1.8 5.1 2.3 5.1 5.1s-1.2 7-7.5 7c-7.6 0-11.4-5.7-11.4-11.4 0-4.8 3.7-13.5 6.5-14.6 3.1-1.2 6.7-3.5 6.8-5 0-.5-1.4-.1-3.3.9-3.1 1.7-6.6 2.5-6.6 1.4s2.9-3.1 4-4.6c1.2-1.6.9-5.5 3-5.5 7.6 0 9.9 7.7 7 11.7-1.9 2.6 4.3 1 4.3 1s0 5.3-3.2 7.3c-3 1.8-4.8 3.9-4.8 3.9s.2-4.6-.5-3.9c-.6.7-11.1 4.5-10.3 12 .3 3 4.5 5.4 8.5 5.2 4-.2 6.8-2.4 6.4-5.4-.3-4.2-2.8-4.6-2.8-4.6z'/%3e%3cpath fill='%23DE393A' d='M31 28.8v14c0 1.9 2.1 1.6 2.1 1.6h9.3c1.2 0 2.6 2.3 2.6 2.3s1.4-2.3 2.5-2.3h9.6s2 .2 2-1.8V28.7H31z'/%3e%3cpath fill='%233951A3' d='M31 13.1h28v15.7H31z'/%3e%3cpath fill='white' d='M50.1 16.5c-.4 2.4-2.5 4.2-5.1 4.2-2.5 0-4.6-1.8-5.1-4.2-.5.9-.8 1.9-.8 3 0 3.3 2.6 5.9 5.9 5.9 3.3 0 5.9-2.6 5.9-5.9 0-1.1-.3-2.1-.8-3z'/%3e%3ccircle fill='%23FEE05F' cx='39.1' cy='36.5' r='3'/%3e%3ccircle fill='%23FEE05F' cx='50.9' cy='36.5' r='3'/%3e%3c/svg%3e")} +.flag\:ZA{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='white' d='M0 85.337h512v341.326H0z'/%3e%3cpath d='M114.024 256.001L0 141.926v228.17z'/%3e%3cpath fill='%23FFDA44' d='M161.192 256L0 94.7v47.226l114.024 114.075L0 370.096v47.138z'/%3e%3cpath fill='%236DA544' d='M509.833 289.391c.058-.44.804-.878 2.167-1.318v-65.464H222.602L85.33 85.337H0V94.7L161.192 256 0 417.234v9.429h85.33l137.272-137.272h287.231z'/%3e%3cpath fill='%230052B4' d='M503.181 322.783H236.433l-103.881 103.88H512v-103.88z'/%3e%3cpath fill='%23D80027' d='M503.181 189.217H512V85.337H132.552l103.881 103.88z'/%3e%3c/svg%3e")} +.flag\:ZM{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath fill='%23496E2D' d='M0 85.331h512v341.337H0z'/%3e%3cpath fill='%23FF9811' d='M490.668 195.476h-48c0-8.836-7.164-16-16-16s-16 7.164-16 16h-48c0 8.836 7.697 16 16.533 16h-.533c0 8.836 7.162 16 16 16 0 8.836 7.162 16 16 16h32c8.836 0 16-7.164 16-16 8.836 0 16-7.164 16-16h-.533c8.837 0 16.533-7.164 16.533-16z'/%3e%3cpath fill='%23D80027' d='M341.337 255.994h56.888v170.663h-56.888z'/%3e%3cpath fill='%23FF9811' d='M455.112 255.994H512v170.663h-56.888z'/%3e%3cpath d='M398.225 255.994h56.888v170.663h-56.888z'/%3e%3c/svg%3e")} +.flag\:ZW{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 85.333 512 341.333'%3e%3cpath d='M0 85.333h512V426.67H0z'/%3e%3cg fill='%23FFDA44'%3e%3cpath d='M0 134.196h512v48.868H0zM0 329.668h512v48.868H0z'/%3e%3c/g%3e%3cpath fill='%236DA544' d='M0 85.333h512v48.868H0z'/%3e%3cg fill='%23D80027'%3e%3cpath d='M0 183.069h512v48.868H0zM0 280.806h512v48.868H0z'/%3e%3c/g%3e%3cpath fill='%236DA544' d='M0 378.542h512v48.128H0z'/%3e%3cpath fill='white' d='M276.992 255.996L106.329 426.659H0V85.333h106.329z'/%3e%3cpath d='M256 255.996L85.334 426.662h20.987l170.667-170.666L106.321 85.33H85.334z'/%3e%3cpath fill='%23D80027' d='M102.465 202.57l13.259 40.812h42.917l-34.718 25.226 13.26 40.814-34.718-25.224-34.72 25.224 13.262-40.814-34.718-25.226h42.915z'/%3e%3cpath fill='%23FFDA44' d='M138.94 259.335l-34.559-12.243s-2.553-23.955-2.708-24.766c-1.173-6.18-6.603-10.851-13.123-10.851-7.376 0-13.357 5.98-13.357 13.357 0 1.223.178 2.402.486 3.528l-9.689 9.755h17.229c0 17.882-13.344 17.882-13.344 35.691l7.402 17.809h44.522l7.422-17.809h-.004a17.782 17.782 0 001.381-5.231c6.397-2.589 8.342-9.24 8.342-9.24z'/%3e%3c/svg%3e")} \ No newline at end of file diff --git a/apps/web/public/country-flag-icons/3x2/index.html b/apps/web/public/country-flag-icons/3x2/index.html new file mode 100644 index 0000000000..865d877e2a --- /dev/null +++ b/apps/web/public/country-flag-icons/3x2/index.html @@ -0,0 +1,2810 @@ + + + + Flags (3:2) + + + +
    +
    +
    + + + +
    +

    + AC +

    +
    + +
    +
    + + + +
    +

    + AD +

    +
    + +
    +
    + + + +
    +

    + AE +

    +
    + +
    +
    + + + +
    +

    + AF +

    +
    + +
    +
    + + + +
    +

    + AG +

    +
    + +
    +
    + + + +
    +

    + AI +

    +
    + +
    +
    + + + +
    +

    + AL +

    +
    + +
    +
    + + + +
    +

    + AM +

    +
    + +
    +
    + + + +
    +

    + AO +

    +
    + +
    +
    + + + +
    +

    + AQ +

    +
    + +
    +
    + + + +
    +

    + AR +

    +
    + +
    +
    + + + +
    +

    + AS +

    +
    + +
    +
    + + + +
    +

    + AT +

    +
    + +
    +
    + + + +
    +

    + AU +

    +
    + +
    +
    + + + +
    +

    + AW +

    +
    + +
    +
    + + + +
    +

    + AX +

    +
    + +
    +
    + + + +
    +

    + AZ +

    +
    + +
    +
    + + + +
    +

    + BA +

    +
    + +
    +
    + + + +
    +

    + BB +

    +
    + +
    +
    + + + +
    +

    + BD +

    +
    + +
    +
    + + + +
    +

    + BE +

    +
    + +
    +
    + + + +
    +

    + BF +

    +
    + +
    +
    + + + +
    +

    + BG +

    +
    + +
    +
    + + + +
    +

    + BH +

    +
    + +
    +
    + + + +
    +

    + BI +

    +
    + +
    +
    + + + +
    +

    + BJ +

    +
    + +
    +
    + + + +
    +

    + BL +

    +
    + +
    +
    + + + +
    +

    + BM +

    +
    + +
    +
    + + + +
    +

    + BN +

    +
    + +
    +
    + + + +
    +

    + BO +

    +
    + +
    +
    + + + +
    +

    + BQ +

    +
    + +
    +
    + + + +
    +

    + BR +

    +
    + +
    +
    + + + +
    +

    + BS +

    +
    + +
    +
    + + + +
    +

    + BT +

    +
    + +
    +
    + + + +
    +

    + BV +

    +
    + +
    +
    + + + +
    +

    + BW +

    +
    + +
    +
    + + + +
    +

    + BY +

    +
    + +
    +
    + + + +
    +

    + BZ +

    +
    + +
    +
    + + + +
    +

    + CA +

    +
    + +
    +
    + + + +
    +

    + CC +

    +
    + +
    +
    + + + +
    +

    + CD +

    +
    + +
    +
    + + + +
    +

    + CF +

    +
    + +
    +
    + + + +
    +

    + CG +

    +
    + +
    +
    + + + +
    +

    + CH +

    +
    + +
    +
    + + + +
    +

    + CI +

    +
    + +
    +
    + + + +
    +

    + CK +

    +
    + +
    +
    + + + +
    +

    + CL +

    +
    + +
    +
    + + + +
    +

    + CM +

    +
    + +
    +
    + + + +
    +

    + CN +

    +
    + +
    +
    + + + +
    +

    + CO +

    +
    + +
    +
    + + + +
    +

    + CR +

    +
    + +
    +
    + + + +
    +

    + CU +

    +
    + +
    +
    + + + +
    +

    + CV +

    +
    + +
    +
    + + + +
    +

    + CW +

    +
    + +
    +
    + + + +
    +

    + CX +

    +
    + +
    +
    + + + +
    +

    + CY +

    +
    + +
    +
    + + + +
    +

    + CZ +

    +
    + +
    +
    + + + +
    +

    + DE +

    +
    + +
    +
    + + + +
    +

    + DJ +

    +
    + +
    +
    + + + +
    +

    + DK +

    +
    + +
    +
    + + + +
    +

    + DM +

    +
    + +
    +
    + + + +
    +

    + DO +

    +
    + +
    +
    + + + +
    +

    + DZ +

    +
    + +
    +
    + + + +
    +

    + EC +

    +
    + +
    +
    + + + +
    +

    + EE +

    +
    + +
    +
    + + + +
    +

    + EG +

    +
    + +
    +
    + + + +
    +

    + EH +

    +
    + +
    +
    + + + +
    +

    + ER +

    +
    + +
    +
    + + + +
    +

    + ES +

    +
    + +
    +
    + + + +
    +

    + ET +

    +
    + +
    +
    + + + +
    +

    + FI +

    +
    + +
    +
    + + + +
    +

    + FJ +

    +
    + +
    +
    + + + +
    +

    + FK +

    +
    + +
    +
    + + + +
    +

    + FM +

    +
    + +
    +
    + + + +
    +

    + FO +

    +
    + +
    +
    + + + +
    +

    + FR +

    +
    + +
    +
    + + + +
    +

    + GA +

    +
    + +
    +
    + + + +
    +

    + GB +

    +
    + +
    +
    + + + +
    +

    + GD +

    +
    + +
    +
    + + + +
    +

    + GE +

    +
    + +
    +
    + + + +
    +

    + GF +

    +
    + +
    +
    + + + +
    +

    + GG +

    +
    + +
    +
    + + + +
    +

    + GH +

    +
    + +
    +
    + + + +
    +

    + GI +

    +
    + +
    +
    + + + +
    +

    + GL +

    +
    + +
    +
    + + + +
    +

    + GM +

    +
    + +
    +
    + + + +
    +

    + GN +

    +
    + +
    +
    + + + +
    +

    + GP +

    +
    + +
    +
    + + + +
    +

    + GQ +

    +
    + +
    +
    + + + +
    +

    + GR +

    +
    + +
    +
    + + + +
    +

    + GS +

    +
    + +
    +
    + + + +
    +

    + GT +

    +
    + +
    +
    + + + +
    +

    + GU +

    +
    + +
    +
    + + + +
    +

    + GW +

    +
    + +
    +
    + + + +
    +

    + GY +

    +
    + +
    +
    + + + +
    +

    + HK +

    +
    + +
    +
    + + + +
    +

    + HM +

    +
    + +
    +
    + + + +
    +

    + HN +

    +
    + +
    +
    + + + +
    +

    + HR +

    +
    + +
    +
    + + + +
    +

    + HT +

    +
    + +
    +
    + + + +
    +

    + HU +

    +
    + +
    +
    + + + +
    +

    + ID +

    +
    + +
    +
    + + + +
    +

    + IE +

    +
    + +
    +
    + + + +
    +

    + IL +

    +
    + +
    +
    + + + +
    +

    + IM +

    +
    + +
    +
    + + + +
    +

    + IN +

    +
    + +
    +
    + + + +
    +

    + IO +

    +
    + +
    +
    + + + +
    +

    + IQ +

    +
    + +
    +
    + + + +
    +

    + IR +

    +
    + +
    +
    + + + +
    +

    + IS +

    +
    + +
    +
    + + + +
    +

    + IT +

    +
    + +
    +
    + + + +
    +

    + JE +

    +
    + +
    +
    + + + +
    +

    + JM +

    +
    + +
    +
    + + + +
    +

    + JO +

    +
    + +
    +
    + + + +
    +

    + JP +

    +
    + +
    +
    + + + +
    +

    + KE +

    +
    + +
    +
    + + + +
    +

    + KG +

    +
    + +
    +
    + + + +
    +

    + KH +

    +
    + +
    +
    + + + +
    +

    + KI +

    +
    + +
    +
    + + + +
    +

    + KM +

    +
    + +
    +
    + + + +
    +

    + KN +

    +
    + +
    +
    + + + +
    +

    + KP +

    +
    + +
    +
    + + + +
    +

    + KR +

    +
    + +
    +
    + + + +
    +

    + KW +

    +
    + +
    +
    + + + +
    +

    + KY +

    +
    + +
    +
    + + + +
    +

    + KZ +

    +
    + +
    +
    + + + +
    +

    + LA +

    +
    + +
    +
    + + + +
    +

    + LB +

    +
    + +
    +
    + + + +
    +

    + LC +

    +
    + +
    +
    + + + +
    +

    + LI +

    +
    + +
    +
    + + + +
    +

    + LK +

    +
    + +
    +
    + + + +
    +

    + LR +

    +
    + +
    +
    + + + +
    +

    + LS +

    +
    + +
    +
    + + + +
    +

    + LT +

    +
    + +
    +
    + + + +
    +

    + LU +

    +
    + +
    +
    + + + +
    +

    + LV +

    +
    + +
    +
    + + + +
    +

    + LY +

    +
    + +
    +
    + + + +
    +

    + MA +

    +
    + +
    +
    + + + +
    +

    + MC +

    +
    + +
    +
    + + + +
    +

    + MD +

    +
    + +
    +
    + + + +
    +

    + ME +

    +
    + +
    +
    + + + +
    +

    + MF +

    +
    + +
    +
    + + + +
    +

    + MG +

    +
    + +
    +
    + + + +
    +

    + MH +

    +
    + +
    +
    + + + +
    +

    + MK +

    +
    + +
    +
    + + + +
    +

    + ML +

    +
    + +
    +
    + + + +
    +

    + MM +

    +
    + +
    +
    + + + +
    +

    + MN +

    +
    + +
    +
    + + + +
    +

    + MO +

    +
    + +
    +
    + + + +
    +

    + MP +

    +
    + +
    +
    + + + +
    +

    + MQ +

    +
    + +
    +
    + + + +
    +

    + MR +

    +
    + +
    +
    + + + +
    +

    + MS +

    +
    + +
    +
    + + + +
    +

    + MT +

    +
    + +
    +
    + + + +
    +

    + MU +

    +
    + +
    +
    + + + +
    +

    + MV +

    +
    + +
    +
    + + + +
    +

    + MW +

    +
    + +
    +
    + + + +
    +

    + MX +

    +
    + +
    +
    + + + +
    +

    + MY +

    +
    + +
    +
    + + + +
    +

    + MZ +

    +
    + +
    +
    + + + +
    +

    + NA +

    +
    + +
    +
    + + + +
    +

    + NC +

    +
    + +
    +
    + + + +
    +

    + NE +

    +
    + +
    +
    + + + +
    +

    + NF +

    +
    + +
    +
    + + + +
    +

    + NG +

    +
    + +
    +
    + + + +
    +

    + NI +

    +
    + +
    +
    + + + +
    +

    + NL +

    +
    + +
    +
    + + + +
    +

    + NO +

    +
    + +
    +
    + + + +
    +

    + NP +

    +
    + +
    +
    + + + +
    +

    + NR +

    +
    + +
    +
    + + + +
    +

    + NU +

    +
    + +
    +
    + + + +
    +

    + NZ +

    +
    + +
    +
    + + + +
    +

    + OM +

    +
    + +
    +
    + + + +
    +

    + PA +

    +
    + +
    +
    + + + +
    +

    + PE +

    +
    + +
    +
    + + + +
    +

    + PF +

    +
    + +
    +
    + + + +
    +

    + PG +

    +
    + +
    +
    + + + +
    +

    + PH +

    +
    + +
    +
    + + + +
    +

    + PK +

    +
    + +
    +
    + + + +
    +

    + PL +

    +
    + +
    +
    + + + +
    +

    + PM +

    +
    + +
    +
    + + + +
    +

    + PN +

    +
    + +
    +
    + + + +
    +

    + PR +

    +
    + +
    +
    + + + +
    +

    + PS +

    +
    + +
    +
    + + + +
    +

    + PT +

    +
    + +
    +
    + + + +
    +

    + PW +

    +
    + +
    +
    + + + +
    +

    + PY +

    +
    + +
    +
    + + + +
    +

    + QA +

    +
    + +
    +
    + + + +
    +

    + RE +

    +
    + +
    +
    + + + +
    +

    + RO +

    +
    + +
    +
    + + + +
    +

    + RS +

    +
    + +
    +
    + + + +
    +

    + RU +

    +
    + +
    +
    + + + +
    +

    + RW +

    +
    + +
    +
    + + + +
    +

    + SA +

    +
    + +
    +
    + + + +
    +

    + SB +

    +
    + +
    +
    + + + +
    +

    + SC +

    +
    + +
    +
    + + + +
    +

    + SD +

    +
    + +
    +
    + + + +
    +

    + SE +

    +
    + +
    +
    + + + +
    +

    + SG +

    +
    + +
    +
    + + + +
    +

    + SH +

    +
    + +
    +
    + + + +
    +

    + SI +

    +
    + +
    +
    + + + +
    +

    + SJ +

    +
    + +
    +
    + + + +
    +

    + SK +

    +
    + +
    +
    + + + +
    +

    + SL +

    +
    + +
    +
    + + + +
    +

    + SM +

    +
    + +
    +
    + + + +
    +

    + SN +

    +
    + +
    +
    + + + +
    +

    + SO +

    +
    + +
    +
    + + + +
    +

    + SR +

    +
    + +
    +
    + + + +
    +

    + SS +

    +
    + +
    +
    + + + +
    +

    + ST +

    +
    + +
    +
    + + + +
    +

    + SV +

    +
    + +
    +
    + + + +
    +

    + SX +

    +
    + +
    +
    + + + +
    +

    + SY +

    +
    + +
    +
    + + + +
    +

    + SZ +

    +
    + +
    +
    + + + +
    +

    + TA +

    +
    + +
    +
    + + + +
    +

    + TC +

    +
    + +
    +
    + + + +
    +

    + TD +

    +
    + +
    +
    + + + +
    +

    + TF +

    +
    + +
    +
    + + + +
    +

    + TG +

    +
    + +
    +
    + + + +
    +

    + TH +

    +
    + +
    +
    + + + +
    +

    + TJ +

    +
    + +
    +
    + + + +
    +

    + TK +

    +
    + +
    +
    + + + +
    +

    + TL +

    +
    + +
    +
    + + + +
    +

    + TM +

    +
    + +
    +
    + + + +
    +

    + TN +

    +
    + +
    +
    + + + +
    +

    + TO +

    +
    + +
    +
    + + + +
    +

    + TR +

    +
    + +
    +
    + + + +
    +

    + TT +

    +
    + +
    +
    + + + +
    +

    + TV +

    +
    + +
    +
    + + + +
    +

    + TW +

    +
    + +
    +
    + + + +
    +

    + TZ +

    +
    + +
    +
    + + + +
    +

    + UA +

    +
    + +
    +
    + + + +
    +

    + UG +

    +
    + +
    +
    + + + +
    +

    + US +

    +
    + +
    +
    + + + +
    +

    + UY +

    +
    + +
    +
    + + + +
    +

    + UZ +

    +
    + +
    +
    + + + +
    +

    + VA +

    +
    + +
    +
    + + + +
    +

    + VC +

    +
    + +
    +
    + + + +
    +

    + VE +

    +
    + +
    +
    + + + +
    +

    + VG +

    +
    + +
    +
    + + + +
    +

    + VI +

    +
    + +
    +
    + + + +
    +

    + VN +

    +
    + +
    +
    + + + +
    +

    + VU +

    +
    + +
    +
    + + + +
    +

    + WF +

    +
    + +
    +
    + + + +
    +

    + WS +

    +
    + +
    +
    + + + +
    +

    + XK +

    +
    + +
    +
    + + + +
    +

    + YE +

    +
    + +
    +
    + + + +
    +

    + YT +

    +
    + +
    +
    + + + +
    +

    + ZA +

    +
    + +
    +
    + + + +
    +

    + ZM +

    +
    + +
    +
    + + + +
    +

    + ZW +

    +
    + +
    + + diff --git a/apps/web/public/static/locales/ar/common.json b/apps/web/public/static/locales/ar/common.json index d5cf3375bf..e2dffafa48 100644 --- a/apps/web/public/static/locales/ar/common.json +++ b/apps/web/public/static/locales/ar/common.json @@ -904,7 +904,7 @@ "duplicate": "تكرار", "offer_seats": "عرض مقاعد", "offer_seats_description": "عرض مقاعد للحجز. هذا يعطل تلقائياً حجز الضيوف وحجز الاشتراك.", - "seats_available": "المقاعد المتاحة", + "seats_available_other": "المقاعد المتاحة", "number_of_seats": "عدد المقاعد لكل حجز", "enter_number_of_seats": "أدخل عدد المقاعد", "you_can_manage_your_schedules": "يمكنك إدارة الجداول الخاصة بك في صفحة الأوقات المتاحة.", diff --git a/apps/web/public/static/locales/cs/common.json b/apps/web/public/static/locales/cs/common.json index d61b5515cf..6cb1c60076 100644 --- a/apps/web/public/static/locales/cs/common.json +++ b/apps/web/public/static/locales/cs/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplikovat", "offer_seats": "Nabídka míst", "offer_seats_description": "Nabídnout místa k rezervaci. Tím se vypnou rezervace hostů a volitelné rezervace.", - "seats_available": "Dostupná místa", + "seats_available_other": "Dostupná místa", "number_of_seats": "Počet míst na rezervaci", "enter_number_of_seats": "Zadejte počet míst", "you_can_manage_your_schedules": "Své plány můžete spravovat na stránce Dostupnost.", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "Přidejte 1 možnost na řádek", "select_a_router": "Vyberte směrování", "add_a_new_route": "Přidejte nové směrování", - "make_informed_decisions": "Rozhodujte se na základě informací pomocí funkce přehledů", - "make_informed_decisions_description": "Náš panel Přehledy zobrazuje všechny aktivity vašeho týmu a trendy, které v rámci týmu umožňují lepší plánování a rozhodování.", + "make_informed_decisions": "Rozhodujte se na základě informací pomocí funkce Insights", + "make_informed_decisions_description": "Náš panel Insights zobrazuje všechny aktivity vašeho týmu a trendy, které v rámci týmu umožňují lepší plánování a rozhodování.", "view_bookings_across": "Zobrazení rezervací všech členů", "view_bookings_across_description": "Podívejte se, kdo přijímá nejvíce rezervací, a zajistěte co nejlepší rozložení v rámci celého týmu", "identify_booking_trends": "Identifikujte trendy v rezervacích", @@ -1751,15 +1751,15 @@ "events_rescheduled": "Události přesunuty", "from_last_period": "z posledního období", "from_to_date_period": "Od: {{startDate}} do: {{endDate}}", - "analytics_for_organisation": "Přehledy", + "analytics_for_organisation": "Insights", "subtitle_analytics": "Zjistěte více o činnosti vašeho týmu", "redirect_url_warning": "Přidáním přesměrování se stránka úspěchu vypne. Nezapomeňte na vlastní stránce úspěchu uvést „Rezervace potvrzena“.", "event_trends": "Trendy událostí", "clear_filters": "Vymazat filtry", - "hold": "Pozastavit", + "hold": "Blokace", "on_booking_option": "Vybrat platbu při rezervaci", "hold_option": "Účtovat poplatek za nedostavení se", - "card_held": "Karta pozastavena", + "card_held": "Blokace částky na kartě", "charge_card": "Strhnout z karty", "card_charged": "Strženo z karty", "no_show_fee_amount": "Poplatek {{amount, currency}} za nedostavení se", @@ -1773,7 +1773,7 @@ "error_charging_card": "Při strhávání poplatku za nedostavení se došlo k chybě. Zkuste to prosím později.", "collect_no_show_fee": "Vybrat poplatek za nedostavení se", "no_show_fee_charged": "Poplatek za nedostavení se stržen", - "insights": "Přehledy", + "insights": "Insights", "testing_workflow_info_message": "Při testování tohoto pracovního postupu mějte na paměti, že e-maily a SMS lze naplánovat pouze nejméně 1 hodinu předem.", "insights_no_data_found_for_filter": "Pro vybraný filtr nebo vybraná data nebyla nalezena žádná data.", "acknowledge_booking_no_show_fee": "Beru na vědomí, že pokud se této události nezúčastním, bude z mé karty stržen poplatek za nedostavení se ve výši {{amount, currency}}.", diff --git a/apps/web/public/static/locales/da/common.json b/apps/web/public/static/locales/da/common.json index 60ec96fe87..32d30c0994 100644 --- a/apps/web/public/static/locales/da/common.json +++ b/apps/web/public/static/locales/da/common.json @@ -876,7 +876,7 @@ "duplicate": "Duplikér", "offer_seats": "Tilbyd pladser", "offer_seats_description": "Tilbyd pladser til booking. Dette deaktiverer automatisk gæste- og tilvalgs bookinger.", - "seats_available": "Tilgængelige pladser", + "seats_available_other": "Tilgængelige pladser", "number_of_seats": "Antal pladser pr. booking", "enter_number_of_seats": "Angiv antal pladser", "you_can_manage_your_schedules": "Du kan administrere dine tidsplaner på siden Tilgængelighed.", diff --git a/apps/web/public/static/locales/de/common.json b/apps/web/public/static/locales/de/common.json index 3e6525a7c2..1a290e85b1 100644 --- a/apps/web/public/static/locales/de/common.json +++ b/apps/web/public/static/locales/de/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplizieren", "offer_seats": "Plätze anbieten", "offer_seats_description": "Bieten Sie Plätze für Buchungen an (dies deaktiviert Gäste & Opt-in-Buchungen)", - "seats_available": "Verfügbare Plätze", + "seats_available_other": "Verfügbare Plätze", "number_of_seats": "Anzahl der Plätze pro Termin", "enter_number_of_seats": "Anzahl der Plätze eingeben", "you_can_manage_your_schedules": "Sie können Ihren Verfügbarkeitsplan bei Ihren Verfügbarkeiten ändern.", diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index b57f17a687..c3f458020e 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -26,6 +26,8 @@ "rejection_confirmation": "Reject the booking", "manage_this_event": "Manage this event", "invite_team_member": "Invite team member", + "invite_team_individual_segment": "Invite individual", + "invite_team_bulk_segment": "Bulk import", "invite_team_notifcation_badge": "Inv.", "your_event_has_been_scheduled": "Your event has been scheduled", "your_event_has_been_scheduled_recurring": "Your recurring event has been scheduled", @@ -222,6 +224,7 @@ "go_back_login": "Go back to the login page", "error_during_login": "An error occurred when logging you in. Head back to the login screen and try again.", "request_password_reset": "Send reset email", + "send_invite": "Send invite", "forgot_password": "Forgot Password?", "forgot": "Forgot?", "done": "Done", @@ -912,7 +915,8 @@ "duplicate": "Duplicate", "offer_seats": "Offer seats", "offer_seats_description": "Offer seats for booking. This automatically disables guest & opt-in bookings.", - "seats_available": "Seats available", + "seats_available_one":"Seat available", + "seats_available_other": "Seats available", "number_of_seats": "Number of seats per booking", "enter_number_of_seats": "Enter number of seats", "you_can_manage_your_schedules": "You can manage your schedules on the Availability page.", @@ -1809,6 +1813,7 @@ "charge_attendee": "Charge attendee {{amount, currency}}", "payment_app_commission": "Require payment ({{paymentFeePercentage}}% + {{fee, currency}} commission per transaction)", "email_invite_team": "{{email}} has been invited", + "email_invite_team_bulk": "{{userCount}} users have been invited", "error_collecting_card": "Error collecting card", "image_size_limit_exceed": "Uploaded image shouldn't exceed 5mb size limit", "inline_embed": "Inline Embed", @@ -1819,10 +1824,16 @@ "open_dialog_with_element_click": "Open your Cal dialog when someone clicks an element.", "need_help_embedding": "Need help? See our guides for embedding Cal on Wix, Squarespace, or WordPress, check our common questions, or explore advanced embed options.", "book_my_cal": "Book my Cal", + "invite_as":"Invite as", "form_updated_successfully":"Form updated successfully.", "email_not_cal_member_cta": "Join your team", "disable_attendees_confirmation_emails": "Disable default confirmation emails for attendees", "disable_attendees_confirmation_emails_description": "At least one workflow is active on this event type that sends an email to the attendees when the event is booked.", "disable_host_confirmation_emails": "Disable default confirmation emails for host", - "disable_host_confirmation_emails_description": "At least one workflow is active on this event type that sends an email to the host when the event is booked." + "disable_host_confirmation_emails_description": "At least one workflow is active on this event type that sends an email to the host when the event is booked.", + "import_from_google_workspace":"Import users from Google Workspace", + "connect_google_workspace":"Connect Google Workspace", + "google_workspace_admin_tooltip":"You must be a Workspace Admin to use this feature", + "first_event_type_webhook_description": "Create your first webhook for this event type", + "create_for": "Create for" } diff --git a/apps/web/public/static/locales/es/common.json b/apps/web/public/static/locales/es/common.json index fd98748da5..5122e8a89f 100644 --- a/apps/web/public/static/locales/es/common.json +++ b/apps/web/public/static/locales/es/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplicado", "offer_seats": "Ofrecer plazas", "offer_seats_description": "Ofrecer plazas para las reservas (desactiva las reservas de invitados y las optativas)", - "seats_available": "Plazas disponibles", + "seats_available_other": "Plazas disponibles", "number_of_seats": "Número de plazas por reserva", "enter_number_of_seats": "Introduzca el número de plazas", "you_can_manage_your_schedules": "Puede administrar sus horarios en la página Disponibilidad.", diff --git a/apps/web/public/static/locales/fr/common.json b/apps/web/public/static/locales/fr/common.json index e058ebaf12..dd5a69e6d5 100644 --- a/apps/web/public/static/locales/fr/common.json +++ b/apps/web/public/static/locales/fr/common.json @@ -908,7 +908,7 @@ "duplicate": "Dupliquer", "offer_seats": "Proposer des places", "offer_seats_description": "Proposez des places de réservation. Cela désactive automatiquement les réservations d'invités et d'opt-in.", - "seats_available": "places disponibles", + "seats_available_other": "places disponibles", "number_of_seats": "Nombre de places par réservation", "enter_number_of_seats": "Saisir le nombre de sièges", "you_can_manage_your_schedules": "Vous pouvez gérer vos disponibilités sur la page Disponibilité.", diff --git a/apps/web/public/static/locales/he/common.json b/apps/web/public/static/locales/he/common.json index 99d199a292..22f745cd4c 100644 --- a/apps/web/public/static/locales/he/common.json +++ b/apps/web/public/static/locales/he/common.json @@ -880,7 +880,7 @@ "duplicate": "כפילות", "offer_seats": "הצעת מקומות", "offer_seats_description": "הצעת מקומות להזמנות (אפשרות זו משביתה באופן אוטומטי אישורי הזמנות ואורחים).", - "seats_available": "מקומות זמינים", + "seats_available_other": "מקומות זמינים", "number_of_seats": "מספר המקומות לכל הזמנה", "enter_number_of_seats": "יש להזין את מספר המקומות", "you_can_manage_your_schedules": "ניתן לנהל את לוחות הזמנים בדף 'זמינות'.", diff --git a/apps/web/public/static/locales/it/common.json b/apps/web/public/static/locales/it/common.json index 2afc031a68..5e11627d95 100644 --- a/apps/web/public/static/locales/it/common.json +++ b/apps/web/public/static/locales/it/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplica", "offer_seats": "Imposta posti", "offer_seats_description": "Indica i posti disponibili (ciò disabiliterà le prenotazioni ospite e le prenotazioni opt-in).", - "seats_available": "Posti disponibili", + "seats_available_other": "Posti disponibili", "number_of_seats": "Numero di posti per prenotazione", "enter_number_of_seats": "Immettere il numero di posti", "you_can_manage_your_schedules": "Puoi gestire i tuoi programmi dalla pagina Disponibilità.", @@ -1487,7 +1487,7 @@ "event_replaced_notice": "Un amministratore ha sostituito uno dei tuoi tipi di evento", "email_subject_slug_replacement": "Un amministratore di team ha sostituito il tuo evento /{{slug}}", "email_body_slug_replacement_notice": "Un amministratore del team {{teamName}} ha sostituito il tuo tipo di evento /{{slug}} con un tipo di evento gestito da lui controllato.", - "email_body_slug_replacement_info": "Il tuo link continuerà a funzionare, ma alcune sue impostazioni potrebbero essere state cambiate. Puoi verificarlo nella sezione Tipi di evento.", + "email_body_slug_replacement_info": "Il tuo link continuerà a funzionare, ma alcune delle sue impostazioni potrebbero essere state cambiate. Puoi verificarlo nella sezione Tipi di evento.", "email_body_slug_replacement_suggestion": "Per qualsiasi domanda sui tipi di evento, contatta il nostro amministratore.

    Ti auguriamo una piacevole esperienza di pianificazione,
    Il team Cal.com", "disable_payment_app": "L'amministratore ha disabilitato {{appName}}, il che ha effetto sul tuo tipo di evento {{title}}. I partecipanti sono ancora in grado di prenotare questo tipo di evento ma non gli verrà richiesto di pagare. Per evitarlo, è possibile nascondere questo tipo di evento fino a che l'amministratore non riattivi il tuo metodo di pagamento.", "payment_disabled_still_able_to_book": "I partecipanti sono ancora in grado di prenotare questo tipo di evento ma non gli verrà richiesto di pagare. Per evitarlo, è possibile nascondere questo tipo di evento fino a che l'amministratore non riattivi il tuo metodo di pagamento.", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "Aggiungi 1 opzione per riga", "select_a_router": "Seleziona un instradatore", "add_a_new_route": "Aggiungi un nuovo percorso", - "make_informed_decisions": "Prendi decisioni informate con Approfondimenti", - "make_informed_decisions_description": "Il pannello di controllo Approfondimenti offre una panoramica di tutte le attività del team e mostra le tendenze, il che consente di migliorare la pianificazione di gruppo e il processo decisionale.", + "make_informed_decisions": "Prendi decisioni informate con Insights", + "make_informed_decisions_description": "Il pannello di controllo Insights offre una panoramica di tutte le attività del team e mostra le tendenze, il che consente di migliorare la pianificazione di gruppo e il processo decisionale.", "view_bookings_across": "Visualizza le prenotazioni di tutti i membri", "view_bookings_across_description": "Individua la persona che riceve il maggior numero di prenotazioni e assicura la migliore distribuzione delle prenotazioni all'interno del team", "identify_booking_trends": "Identifica le tendenze di prenotazione", @@ -1704,7 +1704,7 @@ "can_you_try_again": "Riprovare specificando un orario differente.", "verify": "Verifica", "timezone_variable": "Timezone", - "timezone_info": "Il fuso orario della persona che riceve", + "timezone_info": "Il fuso orario della persona che riceve la prenotazione", "event_end_time_variable": "Ora di fine evento", "event_end_time_info": "Ora di fine dell'evento", "cancel_url_variable": "URL di annullamento", @@ -1733,7 +1733,7 @@ "managed_event_dialog_information_one": "{{names}} utilizza già l'URL /{{slug}}.", "managed_event_dialog_information_other": "{{names}} utilizzano già l'URL /{{slug}}.", "managed_event_dialog_clarification": "Se si decide di sostituirlo, ai membri ne verrà inviata una notifica. Tornare indietro e rimuoverli se non si desidera sovrascriverlo.", - "review_event_type": "Verifica tipo di evento", + "review_event_type": "Controlla tipo di evento", "looking_for_more_analytics": "Hai bisogno di più dati analitici?", "looking_for_more_insights": "Hai bisogno di maggiori approfondimenti?", "add_filter": "Aggiungi filtro", @@ -1749,9 +1749,9 @@ "events_completed": "Eventi completati", "events_cancelled": "Eventi annullati", "events_rescheduled": "Eventi riprogrammati", - "from_last_period": "dall'ultimo periodo", + "from_last_period": "dal periodo precedente", "from_to_date_period": "Da: {{startDate}} A: {{endDate}}", - "analytics_for_organisation": "Approfondimenti", + "analytics_for_organisation": "Insights", "subtitle_analytics": "Scopri di più sull'attività del tuo team", "redirect_url_warning": "Aggiungendo un reindirizzamento, viene disabilitata la pagina di conferma dell'esito. Assicurati che nella pagina di conferma dell'esito personalizzata compaia la dicitura \"Prenotazione confermata\".", "event_trends": "Tendenze eventi", @@ -1773,7 +1773,7 @@ "error_charging_card": "L'addebito della penale per mancata presentazione non è andato a buon fine. Riprovare più tardi.", "collect_no_show_fee": "Riscuoti penale per mancata presentazione", "no_show_fee_charged": "Penale per mancata presentazione addebitata", - "insights": "Approfondimenti", + "insights": "Insights", "testing_workflow_info_message": "Durante il test di questo flusso di lavoro, tieni presente che le e-mail e i messaggi SMS possono essere programmati con almeno 1 ora di anticipo", "insights_no_data_found_for_filter": "Nessun dato trovato per il filtro selezionato o le date selezionate.", "acknowledge_booking_no_show_fee": "Confermo che in caso di mia mancata partecipazione a questo evento, una penale per mancata presentazione di {{amount, currency}} verrà addebitata sulla mia carta.", diff --git a/apps/web/public/static/locales/ja/common.json b/apps/web/public/static/locales/ja/common.json index c33a7ef8e7..55de430dd0 100644 --- a/apps/web/public/static/locales/ja/common.json +++ b/apps/web/public/static/locales/ja/common.json @@ -70,8 +70,8 @@ "event_awaiting_approval_subject": "承認を待っています: {{date}} の {{title}}", "event_still_awaiting_approval": "イベントはまだあなたの承認待ちです", "booking_submitted_subject": "予約を送信しました: {{title}}、{{date}}", - "download_recording_subject": "録音のダウンロード: {{date}} の {{title}}", - "download_your_recording": "録音をダウンロード", + "download_recording_subject": "レコーディングのダウンロード: {{date}} の {{title}}", + "download_your_recording": "レコーディングをダウンロード", "your_meeting_has_been_booked": "ミーティングが予約されました", "event_type_has_been_rescheduled_on_time_date": "あなたの {{title}} は {{date}} に再スケジュールされました。", "event_has_been_rescheduled": "更新 - イベントのスケジュールが変更されました", @@ -904,7 +904,7 @@ "duplicate": "複製", "offer_seats": "座席を提供", "offer_seats_description": "予約可能な座席を設定します。これにより、ゲストおよびオプトイン予約は自動的に無効化されます。", - "seats_available": "空席あり", + "seats_available_other": "空席あり", "number_of_seats": "1予約あたりの座席数", "enter_number_of_seats": "座席数を入力", "you_can_manage_your_schedules": "スケジュール管理は、「空き状況」ページで行えます。", @@ -1279,8 +1279,8 @@ "download_responses": "回答をダウンロード", "download_responses_description": "CSV 形式ですべての回答をフォームにダウンロードします。", "download": "ダウンロード", - "download_recording": "録音をダウンロード", - "recording_from_your_recent_call": "Cal.com での最近の通話の録音がダウンロード可能です", + "download_recording": "レコーディングをダウンロード", + "recording_from_your_recent_call": "Cal.com での最近の通話のレコーディングがダウンロード可能です", "create_your_first_form": "最初のフォームを作成", "create_your_first_form_description": "ルーティングフォームを使用すれば、絞り込みの質問を通して適切な人物やイベントの種類へとルーティングを行うことができます。", "create_your_first_webhook": "最初のウェブフックを作成", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "1 行に 1 つのオプションを追加する", "select_a_router": "ルーターを選択", "add_a_new_route": "新しいルートを追加", - "make_informed_decisions": "インサイトを使って情報に基づいた決定をする", - "make_informed_decisions_description": "インサイトダッシュボードではチーム全体のアクティビティがひと目でわかります。傾向もわかるので、チームはより良いスケジューリングと決定ができます。", + "make_informed_decisions": "Insights を使って情報に基づいた決定をする", + "make_informed_decisions_description": "Insights ダッシュボードではチーム全体のアクティビティがひと目でわかります。傾向もわかるので、チームはより良いスケジューリングと決定ができます。", "view_bookings_across": "メンバー全体の予約を表示", "view_bookings_across_description": "誰が最も予約されているか確認し、チーム全体で最適な配分ができるようにします", "identify_booking_trends": "予約の傾向を明らかにする", @@ -1735,7 +1735,7 @@ "managed_event_dialog_clarification": "置き換えを選択すると、通知が送られます。上書きしたくない場合は、戻って削除してください。", "review_event_type": "イベントタイプを確認", "looking_for_more_analytics": "詳しい分析をお探しですか?", - "looking_for_more_insights": "詳しいインサイトをお探しですか?", + "looking_for_more_insights": "詳しい Insights をお探しですか?", "add_filter": "フィルターを追加", "select_user": "ユーザーを選択", "select_event_type": "イベントタイプを選択", @@ -1751,7 +1751,7 @@ "events_rescheduled": "イベントがスケジュール変更されました", "from_last_period": "最後の期間から", "from_to_date_period": "開始:{{startDate}} 終了:{{endDate}}", - "analytics_for_organisation": "インサイト", + "analytics_for_organisation": "Insights", "subtitle_analytics": "チームのアクティビティについてさらに詳しく知る", "redirect_url_warning": "リダイレクトを追加すると予約完了ページが無効化されます。必ずカスタムの予約完了ページで「予約が確認されました」と伝えてください。", "event_trends": "イベントのトレンド", @@ -1766,14 +1766,14 @@ "no_show_fee": "予約不参加料金", "submit_card": "カードを送信", "submit_payment_information": "支払い情報を送信", - "meeting_awaiting_payment_method": "会議の支払い方法を待っています", + "meeting_awaiting_payment_method": "会議は支払い方法待ちです", "no_show_fee_charged_email_subject": "{{date}} の {{title}} に {{amount, currency}} の予約不参加料金が請求されました", "no_show_fee_charged_text_body": "予約不参加料金が請求されました", "no_show_fee_charged_subtitle": "次のイベントに {{amount, currency}} の予約不参加料金が請求されました", "error_charging_card": "予約不参加料金の請求に問題が発生しました。後でもう一度お試しください。", "collect_no_show_fee": "予約不参加料金を受け取る", "no_show_fee_charged": "予約不参加料金が請求されました", - "insights": "インサイト", + "insights": "Insights", "testing_workflow_info_message": "このワークフローをテストする際は、少なくとも1時間前でないとメールとSMSをスケジュール設定できないことにご注意ください", "insights_no_data_found_for_filter": "選択したフィルターまたは選択した日付のデータが見つかりません。", "acknowledge_booking_no_show_fee": "このイベントに参加しない場合、{{amount, currency}} の予約不参加料金が私のカードに請求されることに同意します。", diff --git a/apps/web/public/static/locales/ko/common.json b/apps/web/public/static/locales/ko/common.json index 61ec386b46..01bc222676 100644 --- a/apps/web/public/static/locales/ko/common.json +++ b/apps/web/public/static/locales/ko/common.json @@ -592,16 +592,16 @@ "round_robin": "라운드 로빈", "round_robin_description": "여러 팀 구성원 간의 주기적인 회의", "managed_event": "관리형 이벤트", - "username_placeholder": "사용자 이름", + "username_placeholder": "username", "managed_event_description": "팀원들에게 대량으로 이벤트 유형 생성 및 배포", "managed": "관리됨", - "managed_event_url_clarification": "\"사용자 이름\"은 할당된 회원의 사용자 이름으로 채워집니다", + "managed_event_url_clarification": "\"username\"은 할당된 회원의 사용자 이름으로 채워집니다", "assign_to": "할당:", "add_members": "회원 추가:", "count_members_one": "회원 {{count}}명", "count_members_other": "회원 {{count}}명", "no_assigned_members": "할당된 회원 없음", - "assigned_to": "할당됨:", + "assigned_to": "할당된 이벤트 유형:", "start_assigning_members_above": "위에서 회원 할당 시작", "locked_fields_admin_description": "회원은 이 내용을 수정할 수 없게 됩니다", "locked_fields_member_description": "이 옵션은 팀 관리자에 의해 잠겼습니다", @@ -906,7 +906,7 @@ "duplicate": "복제", "offer_seats": "좌석 제공", "offer_seats_description": "예약에 좌석 제공(게스트를 비활성화하고 예약을 선택함)", - "seats_available": "사용 가능한 좌석", + "seats_available_other": "사용 가능한 좌석", "number_of_seats": "예약당 좌석 수", "enter_number_of_seats": "좌석 수 입력", "you_can_manage_your_schedules": "가용성 페이지에서 자신의 일정을 관리할 수 있습니다.", @@ -1321,7 +1321,7 @@ "exchange_authentication_standard": "기본 인증", "exchange_authentication_ntlm": "NTLM 인증", "exchange_compression": "GZip 압축", - "exchange_version": "전환 버전", + "exchange_version": "Exchange 버전", "exchange_version_2007_SP1": "2007 SP1", "exchange_version_2010": "2010", "exchange_version_2010_SP1": "2010 SP1", @@ -1717,7 +1717,7 @@ "can_you_try_again": "다른 시간으로 다시 해보시겠어요?", "verify": "인증", "timezone_variable": "시간대", - "timezone_info": "받는 사람의 시간대", + "timezone_info": "예약 수신자의 시간대", "event_end_time_variable": "이벤트 종료 시간", "event_end_time_info": "이벤트 종료 시간", "cancel_url_variable": "취소 URL", @@ -1745,7 +1745,7 @@ "managed_event_dialog_title_other": "URL /{{slug}}은(는) {{count}}명의 회원에 대해 이미 존재합니다. 바꾸시겠습니까?", "managed_event_dialog_information_one": "{{names}} 님이 이미 /{{slug}} url을 사용하는 중입니다.", "managed_event_dialog_information_other": "{{names}} 님이 이미 /{{slug}} url을 사용하는 중입니다.", - "managed_event_dialog_clarification": "바꾸기를 선택하면 알려드립니다. 덮어쓰지 않으려면 돌아가서 제거하십시오.", + "managed_event_dialog_clarification": "URL 바꾸기를 선택하면 회원에게 알려드립니다. 덮어쓰지 않으려면 돌아가서 제거하십시오.", "review_event_type": "이벤트 타입 검토", "looking_for_more_analytics": "추가적인 분석을 원하시나요?", "looking_for_more_insights": "더 많은 인사이트를 찾고계신가요?", @@ -1789,7 +1789,7 @@ "insights": "인사이트", "testing_workflow_info_message": "이 워크플로를 테스트할 때 이메일 및 SMS는 최소 1시간 전에만 예약할 수 있다는 점에 유의하세요", "insights_no_data_found_for_filter": "선택한 필터 또는 날짜에 대한 데이터를 찾을 수 없습니다.", - "acknowledge_booking_no_show_fee": "본인은 이 이벤트에 참석하지 않을 경우 {{amount, currency}}에 대한 노쇼 수수료가 내 카드에 적용됨을 인정합니다.", + "acknowledge_booking_no_show_fee": "본인은 이 이벤트에 참석하지 않을 경우 {{amount, currency}}에 대한 노쇼 수수료가 내 카드에 부과됨을 인정합니다.", "card_details": "카드 세부정보", "seats_and_no_show_fee_error": "현재 좌석을 활성화할 수 없으므로 노쇼 수수료를 부과할 수 없습니다", "complete_your_booking": "예약을 완료하세요", diff --git a/apps/web/public/static/locales/nl/common.json b/apps/web/public/static/locales/nl/common.json index 8d73f1ad84..b10182ceb6 100644 --- a/apps/web/public/static/locales/nl/common.json +++ b/apps/web/public/static/locales/nl/common.json @@ -593,7 +593,7 @@ "username_placeholder": "gebruikersnaam", "managed_event_description": "Maak en distribueer gebeurtenistypen in bulk naar teamleden", "managed": "Beheerd", - "managed_event_url_clarification": "\"gebruikersnaam\" wordt gevuld met de gebruikersnaam van de toegewezen leden", + "managed_event_url_clarification": "\"username\" wordt gevuld met de gebruikersnaam van de toegewezen leden", "assign_to": "Toewijzen aan", "add_members": "Leden toevoegen...", "count_members_one": "{{count}} lid", @@ -904,7 +904,7 @@ "duplicate": "Dupliceren", "offer_seats": "Zitplaatsen aanbieden", "offer_seats_description": "Bied beschikbare plaatsen aan voor boekingen. Hiermee worden gastboekingen en aanmeldingsboekingen automatisch uitgeschakeld.", - "seats_available": "Beschikbare zitplaatsen", + "seats_available_other": "Beschikbare zitplaatsen", "number_of_seats": "Aantal zitplaatsen per boeking", "enter_number_of_seats": "Voer het aantal zitplaatsen in", "you_can_manage_your_schedules": "U kunt uw schema's beheren op de beschikbaarheidspagina.", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "Voeg 1 optie per regel toe", "select_a_router": "Selecteer een router", "add_a_new_route": "Voeg een nieuwe route toe", - "make_informed_decisions": "Maak geïnformeerde beslissingen met Inzichten", - "make_informed_decisions_description": "Ons Inzichten-dashboard geeft alle activiteiten in uw team weer en toont u trends die betere teamplanning en besluitvorming mogelijk maken.", + "make_informed_decisions": "Maak geïnformeerde beslissingen met Insights", + "make_informed_decisions_description": "Ons Insights-dashboard geeft alle activiteiten in uw team weer en toont u trends die betere teamplanning en besluitvorming mogelijk maken.", "view_bookings_across": "Boekingen van alle leden weergeven", "view_bookings_across_description": "Bekijk wie het meest geboekt wordt en zorg voor de beste verdeling over uw team", "identify_booking_trends": "Boekingstrends identificeren", @@ -1735,7 +1735,7 @@ "managed_event_dialog_clarification": "Als u ervoor kiest om het te vervangen, informeren wij hen daar over. Ga terug en verwijder ze als u ze niet wilt overschrijven.", "review_event_type": "Gebeurtenistype bekijken", "looking_for_more_analytics": "Op zoek naar meer analyses?", - "looking_for_more_insights": "Op zoek naar meer inzichten?", + "looking_for_more_insights": "Op zoek naar meer Insights?", "add_filter": "Filter toevoegen", "select_user": "Gebruiker selecteren", "select_event_type": "Gebeurtenistype selecteren", @@ -1751,7 +1751,7 @@ "events_rescheduled": "Verplaatste gebeurtenissen", "from_last_period": "van afgelopen periode", "from_to_date_period": "Van: {{startDate}} Tot: {{endDate}}", - "analytics_for_organisation": "Inzichten", + "analytics_for_organisation": "Insights", "subtitle_analytics": "Meer informatie over de activiteit van uw team", "redirect_url_warning": "Als u een omleiding toevoegt, wordt de succespagina uitgeschakeld. Zorg ervoor dat u op uw aangepaste succespagina \"Boeking bevestigd\" vermeldt.", "event_trends": "Gebeurtenistrends", @@ -1773,7 +1773,7 @@ "error_charging_card": "Er is iets misgegaan met het in rekening brengen van de afwezigheidsvergoeding. Probeer het later opnieuw.", "collect_no_show_fee": "Afwezigheidsvergoeding ontvangen", "no_show_fee_charged": "Afwezigheidsvergoeding in rekening gebracht", - "insights": "Inzichten", + "insights": "Insights", "testing_workflow_info_message": "Let er bij het testen van deze werkstroom op dat e-mails en sms minimaal 1 uur van tevoren kunnen gepland moeten worden", "insights_no_data_found_for_filter": "Geen gegevens gevonden voor het geselecteerde filter of de geselecteerde datums.", "acknowledge_booking_no_show_fee": "Ik erken dat als ik deze gebeurtenis niet bijwoon, er {{amount, currency}} aan afwezigheidsvergoeding van mijn kaart worden afgeschreven.", diff --git a/apps/web/public/static/locales/no/common.json b/apps/web/public/static/locales/no/common.json index eb36121620..d8196dd6ec 100644 --- a/apps/web/public/static/locales/no/common.json +++ b/apps/web/public/static/locales/no/common.json @@ -861,7 +861,7 @@ "duplicate": "Dupliser", "offer_seats": "Tilby seter", "offer_seats_description": "Tilby seter for booking. Dette deaktiverer automatisk gjeste- og påmeldings-bookinger.", - "seats_available": "Tilgjengelige seter", + "seats_available_other": "Tilgjengelige seter", "number_of_seats": "Antall seter per booking", "enter_number_of_seats": "Angi antall seter", "you_can_manage_your_schedules": "Du kan administrere tidsplanene dine på Tilgjengelighet-siden.", diff --git a/apps/web/public/static/locales/pl/common.json b/apps/web/public/static/locales/pl/common.json index fc86885e8e..c31a6bacce 100644 --- a/apps/web/public/static/locales/pl/common.json +++ b/apps/web/public/static/locales/pl/common.json @@ -590,10 +590,10 @@ "round_robin": "Round Robin", "round_robin_description": "Cykl spotkań między wieloma członkami zespołu.", "managed_event": "Zarządzane wydarzenie", - "username_placeholder": "nazwa użytkownika", + "username_placeholder": "username", "managed_event_description": "Masowo twórz i udostępniaj typy wydarzeń członkom zespołu", "managed": "Zarządzane", - "managed_event_url_clarification": "Pole „nazwa użytkownika” zostanie uzupełnione nazwami przypisanych użytkowników.", + "managed_event_url_clarification": "Pole „username” zostanie uzupełnione nazwami przypisanych użytkowników.", "assign_to": "Przypisz do", "add_members": "Dodaj członków...", "count_members_one": "Liczba członków: {{count}}", @@ -904,7 +904,7 @@ "duplicate": "Duplikat", "offer_seats": "Zaproponuj miejsca", "offer_seats_description": "Zaoferuj miejsca do zarezerwowania. To automatycznie wyłącza rezerwacje gości i rezerwacje wstępne.", - "seats_available": "Dostępne miejsca", + "seats_available_other": "Dostępne miejsca", "number_of_seats": "Liczba miejsc na rezerwację", "enter_number_of_seats": "Wprowadź liczbę miejsc", "you_can_manage_your_schedules": "Możesz zarządzać swoimi harmonogramami na stronie Dostępności.", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "Dodaj 1 opcję w każdym wierszu", "select_a_router": "Wybierz formularz przekierowania", "add_a_new_route": "Dodaj nowe przekierowanie", - "make_informed_decisions": "Podejmuj świadome decyzje dzięki funkcji Statystyki", - "make_informed_decisions_description": "Panel Statystyki zawiera informacje o całej aktywności zespołu i trendach umożliwiających lepsze planowanie i podejmowanie decyzji w zespole.", + "make_informed_decisions": "Podejmuj świadome decyzje dzięki funkcji Insights", + "make_informed_decisions_description": "Panel Insights zawiera informacje o całej aktywności zespołu i trendach umożliwiających lepsze planowanie i podejmowanie decyzji w zespole.", "view_bookings_across": "Zobacz rezerwacje wszystkich członków", "view_bookings_across_description": "Zobacz, kto ma najwięcej rezerwacji i upewnij się, że Twój zespół jest równomiernie obciążony pracą.", "identify_booking_trends": "Identyfikuj trendy w rezerwacjach", @@ -1704,7 +1704,7 @@ "can_you_try_again": "Czy możesz spróbować ponownie w innym terminie?", "verify": "Zweryfikuj", "timezone_variable": "Strefa Czasowa", - "timezone_info": "Strefa czasowa osoby otrzymującej", + "timezone_info": "Strefa czasowa osoby rezerwowanej", "event_end_time_variable": "Czas zakończenia wydarzenia", "event_end_time_info": "Czas zakończenia wydarzenia", "cancel_url_variable": "Adres URL do anulowania", @@ -1749,17 +1749,17 @@ "events_completed": "Zakończone wydarzenia", "events_cancelled": "Anulowane wydarzenia", "events_rescheduled": "Przełożone wydarzenia", - "from_last_period": "w ostatnim okresie", + "from_last_period": "od ostatniego okresu", "from_to_date_period": "Od: {{startDate}} Do: {{endDate}}", - "analytics_for_organisation": "Statystyki", + "analytics_for_organisation": "Insights", "subtitle_analytics": "Dowiedz się więcej o aktywności Twojego zespołu", "redirect_url_warning": "Dodanie przekierowania sprawi, że strona powodzenia zostanie wyłączona. Upewnij się, że na Twojej niestandardowej stronie powodzenia umieścisz informację o potwierdzeniu rezerwacji.", "event_trends": "Trendy wydarzeń", "clear_filters": "Wyczyść filtry", - "hold": "Wstrzymaj", + "hold": "Zablokowano", "on_booking_option": "Pobierz płatność przy rezerwacji", "hold_option": "Pobierz opłatę za niestawienie się", - "card_held": "Posiadana karta", + "card_held": "Zablokowano środki na karcie", "charge_card": "Obciąż kartę płatniczą", "card_charged": "Obciążono kartę płatniczą", "no_show_fee_amount": "Opłata za niestawienie się w wysokości {{amount, currency}}", @@ -1773,7 +1773,7 @@ "error_charging_card": "Coś poszło nie tak podczas pobierania opłaty za niestawienie się. Spróbuj ponownie później.", "collect_no_show_fee": "Pobierz opłatę za niestawienie się", "no_show_fee_charged": "Pobrano opłatę za niestawienie się", - "insights": "Statystyki", + "insights": "Insights", "testing_workflow_info_message": "Podczas testowania tego przepływu pracy pamiętaj, że wiadomości e-mail i SMS mogą zostać zaplanowane najpóźniej godzinę przed terminem ich dostarczenia.", "insights_no_data_found_for_filter": "Nie znaleziono danych dotyczących wybranego filtra lub wskazanych dat.", "acknowledge_booking_no_show_fee": "Rozumiem, że jeśli nie wezmę udziału w wydarzeniu, z mojej karty pobrana zostanie opłata w wysokości {{amount, currency}}.", diff --git a/apps/web/public/static/locales/pt-BR/common.json b/apps/web/public/static/locales/pt-BR/common.json index 7befbd7f5c..98fe55007a 100644 --- a/apps/web/public/static/locales/pt-BR/common.json +++ b/apps/web/public/static/locales/pt-BR/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplicar", "offer_seats": "Oferecer assentos", "offer_seats_description": "Oferecer assentos para reserva. Isto desativa automaticamente reservas de convidados e confirmações.", - "seats_available": "Assentos disponíveis", + "seats_available_other": "Assentos disponíveis", "number_of_seats": "Número de assentos por reserva", "enter_number_of_seats": "Insira a quantidade de assentos", "you_can_manage_your_schedules": "Você pode gerenciar suas agendas na página de Disponibilidade.", diff --git a/apps/web/public/static/locales/pt/common.json b/apps/web/public/static/locales/pt/common.json index b6ae5d2220..65c83e4aa3 100644 --- a/apps/web/public/static/locales/pt/common.json +++ b/apps/web/public/static/locales/pt/common.json @@ -590,16 +590,16 @@ "round_robin": "Round Robin", "round_robin_description": "Reuniões de ciclo entre vários membros da equipa.", "managed_event": "Evento gerido", - "username_placeholder": "nome de utilizador", + "username_placeholder": "nome-de-utilizador", "managed_event_description": "Criar e distribuir tipos de eventos em conjunto para os membros da equipa", "managed": "Gerido", - "managed_event_url_clarification": "\"nome de utilizador\" será substituído pelo nome de utilizador dos membros atribuídos", + "managed_event_url_clarification": "\"username\" será substituído pelo nome de utilizador dos membros atribuídos", "assign_to": "Atribuir a", "add_members": "Adicionar membros...", "count_members_one": "{{count}} membro", "count_members_other": "{{count}} membros", "no_assigned_members": "Sem membros atribuídos", - "assigned_to": "Asignado a", + "assigned_to": "Atribuído a", "start_assigning_members_above": "Comece a atribuir membros acima", "locked_fields_admin_description": "Os membros não poderão editar isto", "locked_fields_member_description": "Esta opção foi bloqueada pelo administrador da equipa", @@ -904,7 +904,7 @@ "duplicate": "Duplicar", "offer_seats": "Oferecer lugares", "offer_seats_description": "Oferecer lugares para reservas (isto desactiva os convidados e confirmações nas reservas)", - "seats_available": "Lugares disponíveis", + "seats_available_other": "Lugares disponíveis", "number_of_seats": "Número de lugares por reserva", "enter_number_of_seats": "Digite um número de lugares", "you_can_manage_your_schedules": "Pode gerir os seus horários na página de Disponibilidade.", @@ -1704,7 +1704,7 @@ "can_you_try_again": "Pode tentar novamente noutra altura?", "verify": "Verificar", "timezone_variable": "Fuso Horário", - "timezone_info": "O fuso horário da pessoa que recebe", + "timezone_info": "O fuso horário do anfitrião", "event_end_time_variable": "Hora de fim do evento", "event_end_time_info": "A hora de fim do evento", "cancel_url_variable": "URL de cancelamento", @@ -1756,10 +1756,10 @@ "redirect_url_warning": "Ao adicionar um redirecionamento irá desativar a página de sucesso. Certifique-se que indica que \"A reserva foi confirmada\" na sua página de sucesso personalizada.", "event_trends": "Tendências de evento", "clear_filters": "Limpar filtros", - "hold": "Reter", + "hold": "Cativo", "on_booking_option": "Receber o pagamento na reserva", "hold_option": "Cobrar taxa de não-comparência", - "card_held": "Cartão retido", + "card_held": "Cartão cativo", "charge_card": "Debitar no cartão", "card_charged": "Cartão debitado", "no_show_fee_amount": "Taxa de não-comparência de {{amount, currency}}", diff --git a/apps/web/public/static/locales/ro/common.json b/apps/web/public/static/locales/ro/common.json index 00c718ee4f..91fcf55e5f 100644 --- a/apps/web/public/static/locales/ro/common.json +++ b/apps/web/public/static/locales/ro/common.json @@ -589,11 +589,11 @@ "minutes": "Minute", "round_robin": "Round Robin", "round_robin_description": "Întâlniri ciclice între mai mulţi membri ai echipei.", - "managed_event": "Eveniment gestionat", + "managed_event": "Eveniment configurat", "username_placeholder": "nume de utilizator", "managed_event_description": "Creați și distribuiți membrilor echipei tipuri de evenimente în masă", - "managed": "Gestionat", - "managed_event_url_clarification": "Câmpul „nume de utilizator” va fi completat cu numele de utilizator ale membrilor desemnați", + "managed": "Configurat", + "managed_event_url_clarification": "Câmpul „username” va fi completat cu numele de utilizator ale membrilor desemnați", "assign_to": "Atribuiți către", "add_members": "Adăugare membri...", "count_members_one": "{{count}} membru", @@ -904,7 +904,7 @@ "duplicate": "Duplicare", "offer_seats": "Oferiți locuri", "offer_seats_description": "Opțiunea oferă locuri pentru rezervare și dezactivează automat rezervările pentru oaspeți și cele la alegere.", - "seats_available": "Locuri disponibile", + "seats_available_other": "Locuri disponibile", "number_of_seats": "Numărul de locuri per rezervare", "enter_number_of_seats": "Introduceți numărul de locuri", "you_can_manage_your_schedules": "Vă puteți gestiona programările pe pagina Disponibilitate.", @@ -1704,7 +1704,7 @@ "can_you_try_again": "Puteți încerca din nou cu o oră diferită?", "verify": "Verificare", "timezone_variable": "Timezone", - "timezone_info": "Fusul orar al persoanei care primește", + "timezone_info": "Fusul orar al destinatarului", "event_end_time_variable": "Oră de încheiere eveniment", "event_end_time_info": "Ora de încheiere a evenimentului", "cancel_url_variable": "URL de anulare", @@ -1756,17 +1756,17 @@ "redirect_url_warning": "Adăugarea unei redirecționări va dezactiva pagina cu mesajul de succes. Nu uitați să menționați „Rezervare confirmată” pe pagina cu mesajul de succes personalizat.", "event_trends": "Tendințe eveniment", "clear_filters": "Ștergere filtre", - "hold": "Așteptare", + "hold": "Reținere", "on_booking_option": "Percepere plată pentru rezervare", "hold_option": "Percepere taxă de neprezentare", - "card_held": "Card reținut", + "card_held": "Reținere sumă card", "charge_card": "Debitare card", "card_charged": "Card debitat", "no_show_fee_amount": "Taxă de neprezentare în valoare de {{amount, currency}}", "no_show_fee": "Taxă de neprezentare", "submit_card": "Trimiteți cardul", "submit_payment_information": "Trimiteți informațiile de plată", - "meeting_awaiting_payment_method": "Ședința dvs. este în așteptarea unei metode de plată", + "meeting_awaiting_payment_method": "Ședința va începe după efectuarea plății", "no_show_fee_charged_email_subject": "Taxă de neprezentare în valoare de {{amount, currency}}, percepută pentru {{title}}, pe {{date}}", "no_show_fee_charged_text_body": "Taxa de neprezentare a fost percepută", "no_show_fee_charged_subtitle": "Taxa de neprezentare în valoare de {{amount, currency}} a fost percepută pentru următorul eveniment", diff --git a/apps/web/public/static/locales/ru/common.json b/apps/web/public/static/locales/ru/common.json index 8affc056cd..94d93fa4bf 100644 --- a/apps/web/public/static/locales/ru/common.json +++ b/apps/web/public/static/locales/ru/common.json @@ -904,7 +904,7 @@ "duplicate": "Создать копию", "offer_seats": "Предложить места", "offer_seats_description": "Предлагать места при бронировании (данная настройка автоматически отключает гостевой режим и бронирование с подтверждением).", - "seats_available": "Доступные места", + "seats_available_other": "Доступные места", "number_of_seats": "Количество мест на одну бронь", "enter_number_of_seats": "Укажите количество мест", "you_can_manage_your_schedules": "Расписаниями можно управлять на странице «Доступность».", diff --git a/apps/web/public/static/locales/sr/common.json b/apps/web/public/static/locales/sr/common.json index 60596c4c11..f49bc95a0c 100644 --- a/apps/web/public/static/locales/sr/common.json +++ b/apps/web/public/static/locales/sr/common.json @@ -904,7 +904,7 @@ "duplicate": "Dupliraj", "offer_seats": "Ponudi mesta", "offer_seats_description": "Ponudite mesta za zakazivanje. Ovo automatski onemogućava gostujuća i opciona zakazivanja.", - "seats_available": "Slobodnih mesta", + "seats_available_other": "Slobodnih mesta", "number_of_seats": "Broj mesta po zakazivanju", "enter_number_of_seats": "Unesite broj slobodnih mesta", "you_can_manage_your_schedules": "Svojim rasporedima možete upravljati na stranici Dostupnost.", diff --git a/apps/web/public/static/locales/sv/common.json b/apps/web/public/static/locales/sv/common.json index 9fb50e2812..06f6308874 100644 --- a/apps/web/public/static/locales/sv/common.json +++ b/apps/web/public/static/locales/sv/common.json @@ -904,7 +904,7 @@ "duplicate": "Duplicera", "offer_seats": "Erbjud platser", "offer_seats_description": "Erbjud platser till bokningar. Detta inaktiverar gäster och bokningar.", - "seats_available": "Tillgängliga platser", + "seats_available_other": "Tillgängliga platser", "number_of_seats": "Antal platser per bokning", "enter_number_of_seats": "Ange antal platser", "you_can_manage_your_schedules": "Du kan hantera dina scheman på sidan Tillgänglighet.", diff --git a/apps/web/public/static/locales/tr/common.json b/apps/web/public/static/locales/tr/common.json index 3a5d622e62..b3d91b918c 100644 --- a/apps/web/public/static/locales/tr/common.json +++ b/apps/web/public/static/locales/tr/common.json @@ -904,7 +904,7 @@ "duplicate": "Çoğalt", "offer_seats": "Yer teklif et", "offer_seats_description": "Rezervasyonlar için yer teklif edin. Bu işlem, misafirleri ve rezervasyon onaylarını devre dışı bırakır.", - "seats_available": "Yer mevcut", + "seats_available_other": "Yer mevcut", "number_of_seats": "Rezervasyon başına yer sayısı", "enter_number_of_seats": "Yer sayısını girin", "you_can_manage_your_schedules": "Müsaitlik durumu sayfasından planlarınızı yönetebilirsiniz.", @@ -1685,8 +1685,8 @@ "add_1_option_per_line": "Satır başına 1 seçenek ekle", "select_a_router": "Yönlendirici seçin", "add_a_new_route": "Yeni bir Yönlendirme ekle", - "make_informed_decisions": "Öngörüler ile bilinçli kararlar verin", - "make_informed_decisions_description": "Öngörüler panomuz, ekibinizdeki tüm etkinlikleri analiz eder ve size daha iyi ekip planlaması yapma ve karar verme imkanı sağlayan eğilimleri gösterir.", + "make_informed_decisions": "Insights ile bilinçli kararlar verin", + "make_informed_decisions_description": "lnsights panomuz, ekibinizdeki tüm etkinlikleri analiz eder ve size daha iyi ekip planlaması yapma ve karar verme imkanı sağlayan eğilimleri gösterir.", "view_bookings_across": "Tüm üyelerin rezervasyonlarını görüntüleyin", "view_bookings_across_description": "En çok rezervasyonu kimin aldığını görün ve tüm ekibiniz için en iyi dağılımı sağlayın", "identify_booking_trends": "Rezervasyon trendlerini belirleyin", @@ -1751,7 +1751,7 @@ "events_rescheduled": "Yeniden Planlanan Etkinlikler", "from_last_period": "son dönemden itibaren", "from_to_date_period": "İlk tarih: {{startDate}} Son tarih: {{endDate}}", - "analytics_for_organisation": "Öngörüler", + "analytics_for_organisation": "Insights", "subtitle_analytics": "Ekibinizin aktivitesi hakkında daha fazla bilgi edinin", "redirect_url_warning": "Yönlendirme eklemek başarı sayfasını devre dışı bırakır. Özel başarı sayfanızda \"Rezervasyon Onaylandı\" ifadesinden bahsetmeyi unutmayın.", "event_trends": "Etkinlik Trendleri", @@ -1773,7 +1773,7 @@ "error_charging_card": "Katılmama ücreti alınırken bir sorun oluştu. Lütfen daha sonra tekrar deneyin.", "collect_no_show_fee": "Katılmama ücretini tahsil edin", "no_show_fee_charged": "Katılmama ücreti tahsil edildi", - "insights": "Öngörüler", + "insights": "Insights", "testing_workflow_info_message": "Bu iş akışını test ederken, E-postaların ve SMS'lerin yalnızca en az 1 saat önceden planlanabileceğini unutmayın", "insights_no_data_found_for_filter": "Seçili filtre veya tarihler için veri bulunamadı.", "acknowledge_booking_no_show_fee": "Bu etkinliğe katılmadığım takdirde kartımdan {{amount, currency}} tutarında katılmama ücreti alınmasını kabul ediyorum.", diff --git a/apps/web/public/static/locales/uk/common.json b/apps/web/public/static/locales/uk/common.json index 4521b177bc..19ce9f99b3 100644 --- a/apps/web/public/static/locales/uk/common.json +++ b/apps/web/public/static/locales/uk/common.json @@ -904,7 +904,7 @@ "duplicate": "Дублювати", "offer_seats": "Запропонувати місця", "offer_seats_description": "Пропонуйте місця під час бронювання (при цьому вимикається гостьовий режим і бронювання з підтвердженням).", - "seats_available": "Доступні місця", + "seats_available_other": "Доступні місця", "number_of_seats": "Кількість місць на одне бронювання", "enter_number_of_seats": "Введіть кількість місць", "you_can_manage_your_schedules": "Керувати розкладами можна на сторінці «Доступність».", diff --git a/apps/web/public/static/locales/vi/common.json b/apps/web/public/static/locales/vi/common.json index c33b42d771..027f020650 100644 --- a/apps/web/public/static/locales/vi/common.json +++ b/apps/web/public/static/locales/vi/common.json @@ -70,7 +70,7 @@ "event_awaiting_approval_subject": "Đang chờ phê duyệt: {{title}} lúc {{date}}", "event_still_awaiting_approval": "Một sự kiện vẫn đang chờ bạn phê duyệt", "booking_submitted_subject": "Lịch hẹn đã được gửi: {{title}} lúc {{date}}", - "download_recording_subject": "Tải xuống bản ghi âm: {{title}} vào ngày {{date}}", + "download_recording_subject": "Tải xuống bản ghi: {{title}} vào ngày {{date}}", "download_your_recording": "Tải xuống bản ghi âm của bạn", "your_meeting_has_been_booked": "Cuộc họp của bạn đã được đặt", "event_type_has_been_rescheduled_on_time_date": "{{title}} của bạn đã được chuyển sang ngày {{date}}.", @@ -904,7 +904,7 @@ "duplicate": "Sao chép", "offer_seats": "Cung cấp ghế ngồi", "offer_seats_description": "Cung cấp ghế để đặt lịch. Việc này sẽ tự động vô hiệu hoá đặt lịch của khách & đặt lịch tham gia.", - "seats_available": "Số ghế trống", + "seats_available_other": "Số ghế trống", "number_of_seats": "Số ghế cho mỗi lần đặt", "enter_number_of_seats": "Điền vào số lượng ghế", "you_can_manage_your_schedules": "Bạn có thể quản lý lịch biểu của mình trên trang \bLịch khả dụng.", diff --git a/apps/web/public/static/locales/zh-CN/common.json b/apps/web/public/static/locales/zh-CN/common.json index beb1c929aa..7a7766e92c 100644 --- a/apps/web/public/static/locales/zh-CN/common.json +++ b/apps/web/public/static/locales/zh-CN/common.json @@ -593,7 +593,7 @@ "username_placeholder": "用户名", "managed_event_description": "批量创建事件类型并分发给团队成员", "managed": "托管", - "managed_event_url_clarification": "“用户名”将填写所分配的成员的用户名", + "managed_event_url_clarification": "“用户名”将填写所分配成员的用户名", "assign_to": "分配给", "add_members": "添加成员...", "count_members_one": "{{count}} 个成员", @@ -904,7 +904,7 @@ "duplicate": "复制", "offer_seats": "提供位置", "offer_seats_description": "提供位置以供预约 (这将自动禁止访客和选择加入预约)。", - "seats_available": "可用位置", + "seats_available_other": "可用位置", "number_of_seats": "每个预约的位置数目", "enter_number_of_seats": "输入位置数目", "you_can_manage_your_schedules": "您可以在“可预约时间”页面管理您的时间表。", @@ -1688,8 +1688,8 @@ "add_1_option_per_line": "每行添加 1 个选项", "select_a_router": "选择途径", "add_a_new_route": "添加新途径", - "make_informed_decisions": "使用洞察做出明智的决策", - "make_informed_decisions_description": "我们的“洞察”仪表板会显示您团队中的所有活动,并向您展示趋势,以便更好地进行团队日程安排和制定决策。", + "make_informed_decisions": "使用 Insights 做出明智的决策", + "make_informed_decisions_description": "我们的 Insights 仪表板会显示您团队中的所有活动,并向您展示趋势,以便更好地进行团队日程安排和制定决策。", "view_bookings_across": "查看所有成员的预约", "view_bookings_across_description": "查看谁收到的预约最多,并确保在团队中实现最佳分配", "identify_booking_trends": "确定预约趋势", @@ -1736,7 +1736,7 @@ "managed_event_dialog_title_other": "{{count}} 个成员的链接/{{slug}} 已存在。是否要将其替换?", "managed_event_dialog_information_one": "{{names}} 已经在使用 /{{slug}} 链接。", "managed_event_dialog_information_other": "{{names}} 已经在使用 /{{slug}} 链接。", - "managed_event_dialog_clarification": "如果您选择将其替换,我们会通知他们。如果您不想将其覆盖,请返回并移除它们。", + "managed_event_dialog_clarification": "如果您选择将其替换,我们会通知他们。如果您不想将其覆盖,请返回并移除。", "review_event_type": "查看活动类型", "looking_for_more_analytics": "寻找更多分析?", "looking_for_more_insights": "寻找更多洞察?", @@ -1755,7 +1755,7 @@ "events_rescheduled": "重新安排的活动", "from_last_period": "从上一期间", "from_to_date_period": "开始日期: {{startDate}} 结束日期: {{endDate}}", - "analytics_for_organisation": "洞察", + "analytics_for_organisation": "Insights", "subtitle_analytics": "详细了解团队的活动", "redirect_url_warning": "添加重定向将禁用成功页面。请确保在您的自定义成功页面上提及“预约已确认”。", "event_trends": "活动趋势", @@ -1764,7 +1764,7 @@ "on_booking_option": "预约时收款", "hold_option": "收取失约费", "card_held": "卡已保留", - "charge_card": "对卡收款", + "charge_card": "从卡中扣款", "card_charged": "卡已扣款", "no_show_fee_amount": "{{amount, currency}} 失约费", "no_show_fee": "失约费", @@ -1777,7 +1777,7 @@ "error_charging_card": "收取失约费时出错。请稍后再试。", "collect_no_show_fee": "收取失约费", "no_show_fee_charged": "已收取失约费", - "insights": "洞察", + "insights": "Insights", "testing_workflow_info_message": "测试此工作流程时请注意,电子邮件和短信只能提前至少 1 小时安排", "insights_no_data_found_for_filter": "未找到所选筛选器或所选日期的数据。", "acknowledge_booking_no_show_fee": "我确认,如果我不参加此活动,我的卡将被收取 {{amount, currency}} 的失约费。", @@ -1789,5 +1789,7 @@ "disable_attendees_confirmation_emails": "禁用参与者的默认确认电子邮件", "disable_attendees_confirmation_emails_description": "该活动类型中至少有一个工作流程处于活动状态,当该活动被预约时,将向参与者发送电子邮件。", "disable_host_confirmation_emails": "禁用主持人的默认确认电子邮件", - "disable_host_confirmation_emails_description": "该活动类型中至少有一个工作流程处于活动状态,当该活动被预约时,将向主持人发送电子邮件。" + "disable_host_confirmation_emails_description": "该活动类型中至少有一个工作流程处于活动状态,当该活动被预约时,将向主持人发送电子邮件。", + "first_event_type_webhook_description": "为此活动类型创建第一个 Webhook", + "create_for": "创建" } diff --git a/apps/web/public/static/locales/zh-TW/common.json b/apps/web/public/static/locales/zh-TW/common.json index c1e4469c9d..a772357ba3 100644 --- a/apps/web/public/static/locales/zh-TW/common.json +++ b/apps/web/public/static/locales/zh-TW/common.json @@ -904,7 +904,7 @@ "duplicate": "複製", "offer_seats": "提供座位", "offer_seats_description": "為預約提供座位 (這將停用賓客和選擇加入的預約)", - "seats_available": "尚有座位", + "seats_available_other": "尚有座位", "number_of_seats": "每次預約的座位數", "enter_number_of_seats": "輸入座位數", "you_can_manage_your_schedules": "在開放時間頁面可以管理行程表。", @@ -1732,7 +1732,7 @@ "managed_event_dialog_title_other": "{{count}} 位成員已有網址/{{slug}}。您要取代嗎?", "managed_event_dialog_information_one": "{{names}} 已在使用 /{{slug}} 網址。", "managed_event_dialog_information_other": "{{names}} 已在使用 /{{slug}} 網址。", - "managed_event_dialog_clarification": "如果您選擇取代,我們會通知他們;如果不想覆寫既有設定,請返回並移除。", + "managed_event_dialog_clarification": "如果您選擇取代,我們會通知他們;如果不想覆寫既有網址,請返回並移除。", "review_event_type": "檢閱活動類型", "looking_for_more_analytics": "在找更多分析嗎?", "looking_for_more_insights": "在找更多 Insights 嗎?", diff --git a/packages/app-store-cli/src/core.ts b/packages/app-store-cli/src/core.ts index 5255c4884e..cec46792da 100644 --- a/packages/app-store-cli/src/core.ts +++ b/packages/app-store-cli/src/core.ts @@ -93,8 +93,6 @@ export const BaseAppFork = { // Plan to remove it. DB already has it and name of dir is also the same. slug: slug, type: `${slug}_${category}`, - // TODO: Remove usage of imageSrc, it is being used in ConnectCalendars.tsx. After that delete imageSrc in all configs and from here - imageSrc: `icon.svg`, logo: `icon.svg`, variant: categoryToVariantMap[category as keyof typeof categoryToVariantMap] || category, categories: [category], diff --git a/packages/app-store/_components/OmniInstallAppButton.tsx b/packages/app-store/_components/OmniInstallAppButton.tsx index e181d4f362..311976e30f 100644 --- a/packages/app-store/_components/OmniInstallAppButton.tsx +++ b/packages/app-store/_components/OmniInstallAppButton.tsx @@ -46,7 +46,6 @@ export default function OmniInstallAppButton({ return ( { diff --git a/packages/app-store/apps.metadata.generated.ts b/packages/app-store/apps.metadata.generated.ts index 093ab0365f..a6e5818882 100644 --- a/packages/app-store/apps.metadata.generated.ts +++ b/packages/app-store/apps.metadata.generated.ts @@ -27,6 +27,7 @@ import { metadata as huddle01video__metadata_ts } from "./huddle01video/_metadat import { metadata as jitsivideo__metadata_ts } from "./jitsivideo/_metadata"; import { metadata as larkcalendar__metadata_ts } from "./larkcalendar/_metadata"; import metapixel_config_json from "./metapixel/config.json"; +import mirotalk_config_json from "./mirotalk/config.json"; import n8n_config_json from "./n8n/config.json"; import { metadata as office365calendar__metadata_ts } from "./office365calendar/_metadata"; import office365video_config_json from "./office365video/config.json"; @@ -92,6 +93,7 @@ export const appStoreMetadata = { jitsivideo: jitsivideo__metadata_ts, larkcalendar: larkcalendar__metadata_ts, metapixel: metapixel_config_json, + mirotalk: mirotalk_config_json, n8n: n8n_config_json, office365calendar: office365calendar__metadata_ts, office365video: office365video_config_json, diff --git a/packages/app-store/apps.server.generated.ts b/packages/app-store/apps.server.generated.ts index b9f0998801..9b9bf80f9a 100644 --- a/packages/app-store/apps.server.generated.ts +++ b/packages/app-store/apps.server.generated.ts @@ -27,6 +27,7 @@ export const apiHandlers = { jitsivideo: import("./jitsivideo/api"), larkcalendar: import("./larkcalendar/api"), metapixel: import("./metapixel/api"), + mirotalk: import("./mirotalk/api"), n8n: import("./n8n/api"), office365calendar: import("./office365calendar/api"), office365video: import("./office365video/api"), diff --git a/packages/app-store/components.tsx b/packages/app-store/components.tsx index 673fdcea98..f0ccf42598 100644 --- a/packages/app-store/components.tsx +++ b/packages/app-store/components.tsx @@ -49,7 +49,6 @@ export const InstallAppButtonWithoutPlanCheck = ( export const InstallAppButton = ( props: { - isProOnly?: App["isProOnly"]; teamsPlanRequired?: App["teamsPlanRequired"]; type: App["type"]; wrapperClassName?: string; @@ -86,7 +85,7 @@ export const InstallAppButton = ( }, true ); - }, [isUserLoading, user, router, props.isProOnly, hasTeamPlan, props.teamsPlanRequired]); + }, [isUserLoading, user, router, hasTeamPlan, props.teamsPlanRequired]); if (isUserLoading || isTeamPlanStatusLoading) { return null; diff --git a/packages/app-store/mirotalk/DESCRIPTION.md b/packages/app-store/mirotalk/DESCRIPTION.md new file mode 100644 index 0000000000..40c651cd18 --- /dev/null +++ b/packages/app-store/mirotalk/DESCRIPTION.md @@ -0,0 +1,9 @@ +--- +items: + - 1.jpeg + - 2.jpeg +--- + +{DESCRIPTION} +- Copy your room link and start scheduling calls in Mirotalk. +- Both SFU and P2P are supported. \ No newline at end of file diff --git a/packages/app-store/mirotalk/api/add.ts b/packages/app-store/mirotalk/api/add.ts new file mode 100644 index 0000000000..9a4afb9b2c --- /dev/null +++ b/packages/app-store/mirotalk/api/add.ts @@ -0,0 +1,16 @@ +import { createDefaultInstallation } from "@calcom/app-store/_utils/installation"; +import type { AppDeclarativeHandler } from "@calcom/types/AppHandler"; + +import appConfig from "../config.json"; + +const handler: AppDeclarativeHandler = { + appType: appConfig.type, + variant: appConfig.variant, + slug: appConfig.slug, + supportsMultipleInstalls: false, + handlerType: "add", + createCredential: ({ appType, user, slug }) => + createDefaultInstallation({ appType, userId: user.id, slug, key: {} }), +}; + +export default handler; diff --git a/packages/app-store/mirotalk/api/index.ts b/packages/app-store/mirotalk/api/index.ts new file mode 100644 index 0000000000..4c0d2ead01 --- /dev/null +++ b/packages/app-store/mirotalk/api/index.ts @@ -0,0 +1 @@ +export { default as add } from "./add"; diff --git a/packages/app-store/mirotalk/config.json b/packages/app-store/mirotalk/config.json new file mode 100644 index 0000000000..5732aa6408 --- /dev/null +++ b/packages/app-store/mirotalk/config.json @@ -0,0 +1,28 @@ +{ + "/*": "Don't modify slug - If required, do it using cli edit command", + "name": "Mirotalk", + "slug": "mirotalk", + "type": "mirotalk_video", + "logo": "icon.svg", + "url": "https://cal.com/apps/mirotalk", + "variant": "conferencing", + "categories": [ + "video" + ], + "publisher": "Cal.com, Inc.", + "email": "support@cal.com", + "appData": { + "location": { + "type": "integrations:{SLUG}_video", + "label": "{TITLE}", + "linkType": "static", + "organizerInputPlaceholder": "https://p2p.mirotalk.com/join/80085ShinyPhone", + "urlRegExp": "^(http|https):\\/\\/(p2p|sfu)\\.mirotalk\\.com\\/join\\/[a-zA-Z0-9]+$" + } + }, + "description": "Peer to peer real-time video conferences, optimized for small groups. Unlimited time, unlimited rooms each having 5-8 participants.", + "isTemplate": false, + "__createdUsingCli": true, + "__template": "event-type-location-video-static", + "dirName": "mirotalk" +} \ No newline at end of file diff --git a/packages/app-store/mirotalk/index.ts b/packages/app-store/mirotalk/index.ts new file mode 100644 index 0000000000..d7f3602204 --- /dev/null +++ b/packages/app-store/mirotalk/index.ts @@ -0,0 +1 @@ +export * as api from "./api"; diff --git a/packages/app-store/mirotalk/package.json b/packages/app-store/mirotalk/package.json new file mode 100644 index 0000000000..6419245e95 --- /dev/null +++ b/packages/app-store/mirotalk/package.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "private": true, + "name": "@calcom/mirotalk", + "version": "0.0.0", + "main": "./index.ts", + "dependencies": { + "@calcom/lib": "*" + }, + "devDependencies": { + "@calcom/types": "*" + }, + "description": "Free WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms." +} diff --git a/packages/app-store/mirotalk/static/1.jpeg b/packages/app-store/mirotalk/static/1.jpeg new file mode 100644 index 0000000000..221a4e6412 Binary files /dev/null and b/packages/app-store/mirotalk/static/1.jpeg differ diff --git a/packages/app-store/mirotalk/static/2.jpeg b/packages/app-store/mirotalk/static/2.jpeg new file mode 100644 index 0000000000..9d669824e7 Binary files /dev/null and b/packages/app-store/mirotalk/static/2.jpeg differ diff --git a/packages/app-store/mirotalk/static/icon.svg b/packages/app-store/mirotalk/static/icon.svg new file mode 100644 index 0000000000..e2e655cb9d --- /dev/null +++ b/packages/app-store/mirotalk/static/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/app-store/routing-forms/trpc/utils.ts b/packages/app-store/routing-forms/trpc/utils.ts index 1cb4cb65a0..a3899491b2 100644 --- a/packages/app-store/routing-forms/trpc/utils.ts +++ b/packages/app-store/routing-forms/trpc/utils.ts @@ -25,9 +25,9 @@ export async function onFormSubmission( const subscriberOptions = { userId: form.user.id, - // It isn't an eventType webhook - eventTypeId: -1, triggerEvent: WebhookTriggerEvents.FORM_SUBMITTED, + // When team routing forms are implemented, we need to make sure to add the teamId here + teamId: null, }; const webhooks = await getWebhooks(subscriberOptions); diff --git a/packages/embeds/embed-core/embed-iframe-init.ts b/packages/embeds/embed-core/embed-iframe-init.ts index e5b0d3d89d..e46f49f0a3 100644 --- a/packages/embeds/embed-core/embed-iframe-init.ts +++ b/packages/embeds/embed-core/embed-iframe-init.ts @@ -39,17 +39,23 @@ export default function EmbedInitIframe() { for (const [themeName, cssVars] of Object.entries(cssVarsPerTheme)) { cssVarsStyle.push(`.${themeName} {`); for (const [cssVarName, value] of Object.entries(cssVars)) { - cssVarsStyle.push(`--${cssVarName}: ${value};`); + // The styles are applied inline on .light/.dark elements by the codebase(useCalcomTheme). So, to make sure embed styles take precedence, we add !important + cssVarsStyle.push(`--${cssVarName}: ${value} !important;`); } cssVarsStyle.push(`}`); } } + + const existingStyleEl = document.head.querySelector("#embed-css-vars") as HTMLStyleElement; + if (existingStyleEl) { + console.warn("Existing embed CSS Vars are being reset"); + existingStyleEl.innerText = cssVarsStyle.join("\n"); + return; + } + const style = document.createElement("style"); style.id = "embed-css-vars"; style.innerText = cssVarsStyle.join("\n"); - if (document.head.querySelector("#embed-css-vars")) { - return; - } document.head.appendChild(style); }; } diff --git a/packages/embeds/embed-core/index.html b/packages/embeds/embed-core/index.html index 67559d77a5..f674a8f8c2 100644 --- a/packages/embeds/embed-core/index.html +++ b/packages/embeds/embed-core/index.html @@ -180,6 +180,10 @@ onclick="(function () {Cal.ns.second('ui', {cssVarsPerTheme:{light:{'cal-border-booker':'green', 'cal-border-booker-width':'20px'},dark:{'cal-border-booker':'red', 'cal-border-booker-width':'5px'}}})})()"> Change booker border for dark and light themes + diff --git a/packages/features/bookings/lib/handleCancelBooking.ts b/packages/features/bookings/lib/handleCancelBooking.ts index 5e631cc20f..584bcba1e1 100644 --- a/packages/features/bookings/lib/handleCancelBooking.ts +++ b/packages/features/bookings/lib/handleCancelBooking.ts @@ -306,8 +306,9 @@ async function handler(req: CustomRequest) { // Send Webhook call if hooked to BOOKING.CANCELLED const subscriberOptions = { userId: bookingToDelete.userId, - eventTypeId: (bookingToDelete.eventTypeId as number) || 0, + eventTypeId: bookingToDelete.eventTypeId as number, triggerEvent: eventTrigger, + teamId: bookingToDelete.eventType?.teamId, }; const eventTypeInfo: EventTypeInfo = { @@ -629,12 +630,6 @@ async function handler(req: CustomRequest) { return { message: "Booking successfully cancelled." }; } - const attendeeDeletes = prisma.attendee.deleteMany({ - where: { - bookingId: bookingToDelete.id, - }, - }); - const bookingReferenceDeletes = prisma.bookingReference.deleteMany({ where: { bookingId: bookingToDelete.id, @@ -657,7 +652,7 @@ async function handler(req: CustomRequest) { }); }); - const prismaPromises: Promise[] = [attendeeDeletes, bookingReferenceDeletes]; + const prismaPromises: Promise[] = [bookingReferenceDeletes]; await Promise.all(prismaPromises.concat(apiDeletes)); diff --git a/packages/features/bookings/lib/handleConfirmation.ts b/packages/features/bookings/lib/handleConfirmation.ts index f7b3a87cd8..214f3cf11a 100644 --- a/packages/features/bookings/lib/handleConfirmation.ts +++ b/packages/features/bookings/lib/handleConfirmation.ts @@ -30,6 +30,7 @@ export async function handleConfirmation(args: { price: number; requiresConfirmation: boolean; title: string; + teamId?: number | null; } | null; eventTypeId: number | null; smsReminderNumber: string | null; @@ -235,16 +236,17 @@ export async function handleConfirmation(args: { } try { - // schedule job for zapier trigger 'when meeting ends' const subscribersBookingCreated = await getWebhooks({ - userId: booking.userId || 0, - eventTypeId: booking.eventTypeId || 0, + userId: booking.userId, + eventTypeId: booking.eventTypeId, triggerEvent: WebhookTriggerEvents.BOOKING_CREATED, + teamId: booking.eventType?.teamId, }); const subscribersMeetingEnded = await getWebhooks({ - userId: booking.userId || 0, - eventTypeId: booking.eventTypeId || 0, + userId: booking.userId, + eventTypeId: booking.eventTypeId, triggerEvent: WebhookTriggerEvents.MEETING_ENDED, + teamId: booking.eventType?.teamId, }); subscribersMeetingEnded.forEach((subscriber) => { diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 733fe573f3..f09e7135b8 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -1486,6 +1486,9 @@ async function handler( * so if you modify it in a inner function it will be modified in the outer function * deep cloning evt to avoid this */ + if (!evt?.uid) { + evt.uid = booking?.uid ?? null; + } const copyEvent = cloneDeep(evt); copyEvent.uid = booking.uid; await sendScheduledSeatsEmails(copyEvent, invitee[0], newSeat, !!eventType.seatsShowAttendees); @@ -2097,12 +2100,14 @@ async function handler( userId: organizerUser.id, eventTypeId, triggerEvent: eventTrigger, + teamId: eventType.team?.id, }; const subscriberOptionsMeetingEnded = { userId: organizerUser.id, eventTypeId, triggerEvent: WebhookTriggerEvents.MEETING_ENDED, + teamId: eventType.team?.id, }; try { diff --git a/packages/features/ee/support/lib/intercom/useIntercom.ts b/packages/features/ee/support/lib/intercom/useIntercom.ts index bbf6391f37..76e7a68e1d 100644 --- a/packages/features/ee/support/lib/intercom/useIntercom.ts +++ b/packages/features/ee/support/lib/intercom/useIntercom.ts @@ -35,9 +35,9 @@ export const useIntercom = () => { } hookData.boot({ - name: data?.name ?? "", - email: data?.email, - userId: String(data?.id), + ...(data && data?.name && { name: data.name }), + ...(data && data?.email && { email: data.email }), + ...(data && data?.id && { userId: data.id }), createdAt: String(dayjs(data?.createdDate).unix()), ...(userHash && { userHash }), customAttributes: { @@ -50,6 +50,7 @@ export const useIntercom = () => { has_paid_plan: hasPaidPlan, has_team_plan: hasTeamPlan, metadata: data?.metadata, + is_logged_in: !!data, }, }); hookData.show(); diff --git a/packages/features/ee/teams/components/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/AddNewTeamMembers.tsx index f83836c074..cb9b48d628 100644 --- a/packages/features/ee/teams/components/AddNewTeamMembers.tsx +++ b/packages/features/ee/teams/components/AddNewTeamMembers.tsx @@ -40,20 +40,30 @@ export const AddNewTeamMembersForm = ({ teamId: number; }) => { const { t, i18n } = useLocale(); - const [memberInviteModal, setMemberInviteModal] = useState(false); - const utils = trpc.useContext(); const router = useRouter(); + const showDialog = router.query.inviteModal === "true"; + const [memberInviteModal, setMemberInviteModal] = useState(showDialog); + const utils = trpc.useContext(); const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ async onSuccess(data) { await utils.viewer.teams.get.invalidate(); setMemberInviteModal(false); if (data.sendEmailInvitation) { - showToast( - t("email_invite_team", { - email: data.usernameOrEmail, - }), - "success" - ); + if (Array.isArray(data.usernameOrEmail)) { + showToast( + t("email_invite_team_bulk", { + userCount: data.usernameOrEmail.length, + }), + "success" + ); + } else { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } } }, onError: (error) => { diff --git a/packages/features/ee/teams/components/GoogleWorkspaceInviteButton.tsx b/packages/features/ee/teams/components/GoogleWorkspaceInviteButton.tsx new file mode 100644 index 0000000000..1c14fe4659 --- /dev/null +++ b/packages/features/ee/teams/components/GoogleWorkspaceInviteButton.tsx @@ -0,0 +1,126 @@ +import { UsersIcon, XIcon } from "lucide-react"; +import { useRouter } from "next/router"; +import { useState } from "react"; +import type { PropsWithChildren } from "react"; + +import { useFlagMap } from "@calcom/features/flags/context/provider"; +import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { trpc } from "@calcom/trpc"; +import { Button, Tooltip, showToast } from "@calcom/ui"; + +const GoogleIcon = () => ( + + + + + + + + + + +); + +function gotoUrl(url: string, newTab?: boolean) { + if (newTab) { + window.open(url, "_blank"); + return; + } + window.location.href = url; +} + +export function GoogleWorkspaceInviteButton( + props: PropsWithChildren<{ onSuccess: (data: string[]) => void }> +) { + const router = useRouter(); + const featureFlags = useFlagMap(); + const utils = trpc.useContext(); + const { t } = useLocale(); + const teamId = Number(router.query.id); + const [googleWorkspaceLoading, setGoogleWorkspaceLoading] = useState(false); + const { data: credential } = trpc.viewer.googleWorkspace.checkForGWorkspace.useQuery(); + const { data: hasGcalInstalled } = trpc.viewer.appsRouter.checkGlobalKeys.useQuery({ + slug: "google-calendar", + }); + const mutation = trpc.viewer.googleWorkspace.getUsersFromGWorkspace.useMutation({ + onSuccess: (data) => { + if (Array.isArray(data) && data.length !== 0) { + props.onSuccess(data); + } + }, + }); + + const removeConnectionMutation = + trpc.viewer.googleWorkspace.removeCurrentGoogleWorkspaceConnection.useMutation({ + onSuccess: () => { + showToast(t("app_removed_successfully"), "success"); + }, + }); + + if (featureFlags["google-workspace-directory"] == false || !hasGcalInstalled) { + return null; + } + + // Show populate input button if they do + if (credential && credential?.id) { + return ( +
    + + + + +
    + ); + } + + // else show invite button + return ( + + ); +} diff --git a/packages/features/ee/teams/components/MemberInvitationModal.tsx b/packages/features/ee/teams/components/MemberInvitationModal.tsx index 2b9f123a52..b2a4b4aaf3 100644 --- a/packages/features/ee/teams/components/MemberInvitationModal.tsx +++ b/packages/features/ee/teams/components/MemberInvitationModal.tsx @@ -1,10 +1,11 @@ +import { PaperclipIcon, UserIcon, Users } from "lucide-react"; import { Trans } from "next-i18next"; -import { useMemo } from "react"; +import { useMemo, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { IS_TEAM_BILLING_ENABLED } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import type { MembershipRole } from "@calcom/prisma/enums"; +import { MembershipRole } from "@calcom/prisma/enums"; import { Button, Checkbox as CheckboxField, @@ -15,9 +16,12 @@ import { TextField, Label, ToggleGroup, + Select, + TextAreaField, } from "@calcom/ui"; import type { PendingMember } from "../lib/types"; +import { GoogleWorkspaceInviteButton } from "./GoogleWorkspaceInviteButton"; type MemberInvitationModalProps = { isOpen: boolean; @@ -32,19 +36,21 @@ type MembershipRoleOption = { }; export interface NewMemberForm { - emailOrUsername: string; + emailOrUsername: string | string[]; role: MembershipRole; sendInviteEmail: boolean; } +type ModalMode = "INDIVIDUAL" | "BULK"; + export default function MemberInvitationModal(props: MemberInvitationModalProps) { const { t } = useLocale(); - + const [modalImportMode, setModalInputMode] = useState("INDIVIDUAL"); const options: MembershipRoleOption[] = useMemo(() => { return [ - { value: "MEMBER", label: t("member") }, - { value: "ADMIN", label: t("admin") }, - { value: "OWNER", label: t("owner") }, + { value: MembershipRole.MEMBER, label: t("member") }, + { value: MembershipRole.ADMIN, label: t("admin") }, + { value: MembershipRole.OWNER, label: t("owner") }, ]; }, [t]); @@ -59,6 +65,7 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) return ( { props.onExit(); @@ -66,7 +73,7 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) }}> @@ -75,33 +82,104 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) on your subscription. - ) : ( - "" - ) + ) : null }> +
    + + setModalInputMode(val as ModalMode)} + defaultValue="INDIVIDUAL" + options={[ + { + value: "INDIVIDUAL", + label: t("invite_team_individual_segment"), + iconLeft: , + }, + { value: "BULK", label: t("invite_team_bulk_segment"), iconLeft: }, + ]} + /> +
    + props.onSubmit(values)}> -
    - validateUniqueInvite(value) || t("member_already_invited"), - }} - render={({ field: { onChange }, fieldState: { error } }) => ( - <> - onChange(e.target.value.trim().toLowerCase())} - /> - {error && {error.message}} - - )} - /> +
    + {/* Indivdual Invite */} + {modalImportMode === "INDIVIDUAL" && ( + { + if (typeof value === "string") + return validateUniqueInvite(value) || t("member_already_invited"); + }, + }} + render={({ field: { onChange }, fieldState: { error } }) => ( + <> + onChange(e.target.value.trim().toLowerCase())} + /> + {error && {error.message}} + + )} + /> + )} + {/* Bulk Invite */} + {modalImportMode === "BULK" && ( +
    + ( + <> + {/* TODO: Make this a fancy email input that styles on a successful email. */} + { + const emails = e.target.value + .split(",") + .map((email) => email.trim().toLocaleLowerCase()); + + return onChange(emails); + }} + /> + {error && {error.message}} + + )} + /> + + { + newMemberFormMethods.setValue("emailOrUsername", data); + }} + /> + +
    + )} (
    - { + if (val) onChange(val.value); + }} />
    )} @@ -138,7 +214,7 @@ export default function MemberInvitationModal(props: MemberInvitationModalProps) )} />
    - + diff --git a/packages/features/ee/teams/components/TeamListItem.tsx b/packages/features/ee/teams/components/TeamListItem.tsx index 637b257313..a1b21c1c6a 100644 --- a/packages/features/ee/teams/components/TeamListItem.tsx +++ b/packages/features/ee/teams/components/TeamListItem.tsx @@ -53,19 +53,30 @@ export default function TeamListItem(props: Props) { const { t, i18n } = useLocale(); const utils = trpc.useContext(); const team = props.team; - const [openMemberInvitationModal, setOpenMemberInvitationModal] = useState(false); + const router = useRouter(); + const showDialog = router.query.inviteModal === "true"; + const [openMemberInvitationModal, setOpenMemberInvitationModal] = useState(showDialog); const teamQuery = trpc.viewer.teams.get.useQuery({ teamId: team?.id }); const inviteMemberMutation = trpc.viewer.teams.inviteMember.useMutation({ async onSuccess(data) { await utils.viewer.teams.get.invalidate(); setOpenMemberInvitationModal(false); if (data.sendEmailInvitation) { - showToast( - t("email_invite_team", { - email: data.usernameOrEmail, - }), - "success" - ); + if (Array.isArray(data.usernameOrEmail)) { + showToast( + t("email_invite_team_bulk", { + userCount: data.usernameOrEmail.length, + }), + "success" + ); + } else { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } } }, onError: (error) => { diff --git a/packages/features/ee/teams/pages/team-members-view.tsx b/packages/features/ee/teams/pages/team-members-view.tsx index c4b03227a7..e52dfde225 100644 --- a/packages/features/ee/teams/pages/team-members-view.tsx +++ b/packages/features/ee/teams/pages/team-members-view.tsx @@ -66,7 +66,8 @@ const MembersView = () => { const router = useRouter(); const session = useSession(); const utils = trpc.useContext(); - const [showMemberInvitationModal, setShowMemberInvitationModal] = useState(false); + const showDialog = router.query.inviteModal === "true"; + const [showMemberInvitationModal, setShowMemberInvitationModal] = useState(showDialog); const teamId = Number(router.query.id); const { data: team, isLoading } = trpc.viewer.teams.get.useQuery( @@ -83,12 +84,21 @@ const MembersView = () => { await utils.viewer.teams.get.invalidate(); setShowMemberInvitationModal(false); if (data.sendEmailInvitation) { - showToast( - t("email_invite_team", { - email: data.usernameOrEmail, - }), - "success" - ); + if (Array.isArray(data.usernameOrEmail)) { + showToast( + t("email_invite_team_bulk", { + userCount: data.usernameOrEmail.length, + }), + "success" + ); + } else { + showToast( + t("email_invite_team", { + email: data.usernameOrEmail, + }), + "success" + ); + } } }, onError: (error) => { diff --git a/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts b/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts index 3ab7debf9a..72e13ef513 100644 --- a/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts +++ b/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts @@ -1,5 +1,6 @@ import { guessEventLocationType } from "@calcom/app-store/locations"; import type { Dayjs } from "@calcom/dayjs"; +import dayjs from "@calcom/dayjs"; import { APP_NAME, WEBAPP_URL } from "@calcom/lib/constants"; import type { CalEventResponses } from "@calcom/types/Calendar"; @@ -30,7 +31,7 @@ const customTemplate = ( month: "long", day: "numeric", year: "numeric", - }).format(variables.eventDate?.toDate()); + }).format(variables.eventDate?.add(dayjs().tz(variables.timeZone).utcOffset(), "minute").toDate()); let locationString = variables.location || ""; diff --git a/packages/features/flags/config.ts b/packages/features/flags/config.ts index 08dac2c626..0883a9ff98 100644 --- a/packages/features/flags/config.ts +++ b/packages/features/flags/config.ts @@ -10,4 +10,5 @@ export type AppFlags = { workflows: boolean; "v2-booking-page": boolean; "managed-event-types": boolean; + "google-workspace-directory": boolean; }; diff --git a/packages/features/schedules/components/Schedule.tsx b/packages/features/schedules/components/Schedule.tsx index 6cc732e6fb..7045c1eb74 100644 --- a/packages/features/schedules/components/Schedule.tsx +++ b/packages/features/schedules/components/Schedule.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useEffect, useMemo, useState } from "react"; +import { Fragment, useCallback, useEffect, useMemo, useState, useRef } from "react"; import type { ArrayPath, Control, @@ -382,6 +382,38 @@ const CopyTimes = ({ }) => { const [selected, setSelected] = useState([]); const { i18n, t } = useLocale(); + const itteratablesByKeyRef = useRef<(HTMLInputElement | HTMLButtonElement)[]>([]); + useEffect(() => { + document.addEventListener("keydown", handleKeyDown); + return () => { + document.removeEventListener("keydown", handleKeyDown); + }; + }, []); + const handleKeyDown = (event: KeyboardEvent) => { + const itteratables = itteratablesByKeyRef.current; + const isActionRequired = + event.key === "Tab" || event.key === "ArrowUp" || event.key === "ArrowDown" || event.key === "Enter"; + if (!isActionRequired || !itteratables.length) return; + event.preventDefault(); + const currentFocused = document.activeElement as HTMLInputElement | HTMLButtonElement; + let currentIndex = itteratables.findIndex((checkbox) => checkbox === currentFocused); + if (event.key === "Enter") { + if (currentIndex === -1) return; + currentFocused.click(); + return; + } + if (currentIndex === -1) { + itteratables[0].focus(); + } else { + // Move focus based on the arrow key pressed + if (event.key === "ArrowUp") { + currentIndex = (currentIndex - 1 + itteratables.length) % itteratables.length; + } else if (event.key === "ArrowDown" || event.key === "Tab") { + currentIndex = (currentIndex + 1) % itteratables.length; + } + itteratables[currentIndex].focus(); + } + }; return (
    @@ -402,6 +434,11 @@ const CopyTimes = ({ setSelected([]); } }} + ref={(ref) => { + if (ref) { + itteratablesByKeyRef.current.push(ref as HTMLInputElement); + } + }} /> @@ -423,6 +460,12 @@ const CopyTimes = ({ setSelected(selected.filter((item) => item !== weekdayIndex)); } }} + ref={(ref) => { + if (ref && disabled !== weekdayIndex) { + //we don't need to iterate over disabled elements + itteratablesByKeyRef.current.push(ref as HTMLInputElement); + } + }} /> @@ -432,10 +475,24 @@ const CopyTimes = ({

    - -
    diff --git a/packages/features/webhooks/components/WebhookForm.tsx b/packages/features/webhooks/components/WebhookForm.tsx index 56d6e06ab2..2e4fc7310c 100644 --- a/packages/features/webhooks/components/WebhookForm.tsx +++ b/packages/features/webhooks/components/WebhookForm.tsx @@ -44,6 +44,7 @@ const WebhookForm = (props: { apps?: (keyof typeof WEBHOOK_TRIGGER_EVENTS_GROUPED_BY_APP_V2)[]; onSubmit: (event: WebhookFormSubmitData) => void; onCancel?: () => void; + noRoutingFormTriggers: boolean; }) => { const { apps = [] } = props; const { t } = useLocale(); @@ -51,6 +52,7 @@ const WebhookForm = (props: { const triggerOptions = [...WEBHOOK_TRIGGER_EVENTS_GROUPED_BY_APP_V2["core"]]; if (apps) { for (const app of apps) { + if (app === "routing-forms" && props.noRoutingFormTriggers) continue; if (WEBHOOK_TRIGGER_EVENTS_GROUPED_BY_APP_V2[app]) { triggerOptions.push(...WEBHOOK_TRIGGER_EVENTS_GROUPED_BY_APP_V2[app]); } diff --git a/packages/features/webhooks/components/WebhookListItem.tsx b/packages/features/webhooks/components/WebhookListItem.tsx index f95cdd277f..3ba075dd68 100644 --- a/packages/features/webhooks/components/WebhookListItem.tsx +++ b/packages/features/webhooks/components/WebhookListItem.tsx @@ -25,6 +25,7 @@ type WebhookProps = { eventTriggers: WebhookTriggerEvents[]; secret: string | null; eventTypeId: number | null; + teamId: number | null; }; export default function WebhookListItem(props: { @@ -32,19 +33,23 @@ export default function WebhookListItem(props: { canEditWebhook?: boolean; onEditWebhook: () => void; lastItem: boolean; + readOnly?: boolean; }) { const { t } = useLocale(); const utils = trpc.useContext(); const { webhook } = props; + const canEditWebhook = props.canEditWebhook ?? true; + const deleteWebhook = trpc.viewer.webhook.delete.useMutation({ async onSuccess() { + await utils.viewer.webhook.getByViewer.invalidate(); await utils.viewer.webhook.list.invalidate(); showToast(t("webhook_removed_successfully"), "success"); }, }); const toggleWebhook = trpc.viewer.webhook.edit.useMutation({ async onSuccess(data) { - console.log("data", data); + await utils.viewer.webhook.getByViewer.invalidate(); await utils.viewer.webhook.list.invalidate(); // TODO: Better success message showToast(t(data?.active ? "enabled" : "disabled"), "success"); @@ -53,7 +58,11 @@ export default function WebhookListItem(props: { const onDeleteWebhook = () => { // TODO: Confimation dialog before deleting - deleteWebhook.mutate({ id: webhook.id, eventTypeId: webhook.eventTypeId || undefined }); + deleteWebhook.mutate({ + id: webhook.id, + eventTypeId: webhook.eventTypeId || undefined, + teamId: webhook.teamId || undefined, + }); }; return ( @@ -63,7 +72,14 @@ export default function WebhookListItem(props: { props.lastItem ? "" : "border-subtle border-b" )}>
    -

    {webhook.subscriberUrl}

    +
    +

    {webhook.subscriberUrl}

    + {!!props.readOnly && ( + + {t("readonly")} + + )} +
    {webhook.eventTriggers.map((trigger) => ( @@ -78,49 +94,54 @@ export default function WebhookListItem(props: {
    -
    - - toggleWebhook.mutate({ - id: webhook.id, - active: !webhook.active, - payloadTemplate: webhook.payloadTemplate, - eventTypeId: webhook.eventTypeId || undefined, - }) - } - /> - - + +
    + )}
    ); } diff --git a/packages/features/webhooks/lib/getWebhooks.ts b/packages/features/webhooks/lib/getWebhooks.ts index b2fc512df2..0f8f9b27d2 100644 --- a/packages/features/webhooks/lib/getWebhooks.ts +++ b/packages/features/webhooks/lib/getWebhooks.ts @@ -4,13 +4,17 @@ import defaultPrisma from "@calcom/prisma"; import type { WebhookTriggerEvents } from "@calcom/prisma/enums"; export type GetSubscriberOptions = { - userId: number; - eventTypeId: number; + userId?: number | null; + eventTypeId?: number | null; triggerEvent: WebhookTriggerEvents; + teamId?: number | null; }; const getWebhooks = async (options: GetSubscriberOptions, prisma: PrismaClient = defaultPrisma) => { - const { userId, eventTypeId } = options; + const userId = options.teamId ? 0 : options.userId ?? 0; + const eventTypeId = options.eventTypeId ?? 0; + const teamId = options.teamId ?? 0; + const allWebhooks = await prisma.webhook.findMany({ where: { OR: [ @@ -20,6 +24,9 @@ const getWebhooks = async (options: GetSubscriberOptions, prisma: PrismaClient = { eventTypeId, }, + { + teamId, + }, ], AND: { eventTriggers: { diff --git a/packages/features/webhooks/lib/subscriberUrlReserved.ts b/packages/features/webhooks/lib/subscriberUrlReserved.ts new file mode 100644 index 0000000000..28990ce93b --- /dev/null +++ b/packages/features/webhooks/lib/subscriberUrlReserved.ts @@ -0,0 +1,37 @@ +import type { Webhook } from "@calcom/prisma/client"; + +interface Params { + subscriberUrl: string; + id?: string; + webhooks?: Webhook[]; + teamId?: number; + userId?: number; + eventTypeId?: number; +} + +export const subscriberUrlReserved = ({ + subscriberUrl, + id, + webhooks, + teamId, + userId, + eventTypeId, +}: Params): boolean => { + if (!teamId && !userId && !eventTypeId) { + throw new Error("Either teamId, userId, or eventTypeId must be provided."); + } + + const findMatchingWebhook = (condition: (webhook: Webhook) => void) => { + return !!webhooks?.find( + (webhook) => webhook.subscriberUrl === subscriberUrl && (!id || webhook.id !== id) && condition(webhook) + ); + }; + + if (teamId) { + return findMatchingWebhook((webhook: Webhook) => webhook.teamId === teamId); + } + if (eventTypeId) { + return findMatchingWebhook((webhook: Webhook) => webhook.eventTypeId === eventTypeId); + } + return findMatchingWebhook((webhook: Webhook) => webhook.userId === userId); +}; diff --git a/packages/features/webhooks/pages/webhook-edit-view.tsx b/packages/features/webhooks/pages/webhook-edit-view.tsx index 511fc8e438..b3c84975df 100644 --- a/packages/features/webhooks/pages/webhook-edit-view.tsx +++ b/packages/features/webhooks/pages/webhook-edit-view.tsx @@ -9,6 +9,7 @@ import { Meta, showToast, SkeletonContainer } from "@calcom/ui"; import { getLayout } from "../../settings/layouts/SettingsLayout"; import type { WebhookFormSubmitData } from "../components/WebhookForm"; import WebhookForm from "../components/WebhookForm"; +import { subscriberUrlReserved } from "../lib/subscriberUrlReserved"; const querySchema = z.object({ id: z.string() }); @@ -47,10 +48,6 @@ const EditWebhook = () => { }, }); - const subscriberUrlReserved = (subscriberUrl: string, id: string): boolean => { - return !!webhooks?.find((webhook) => webhook.subscriberUrl === subscriberUrl && webhook.id !== id); - }; - if (isLoading || !webhook) return ; return ( @@ -62,8 +59,17 @@ const EditWebhook = () => { /> { - if (subscriberUrlReserved(values.subscriberUrl, webhook.id)) { + if ( + subscriberUrlReserved({ + subscriberUrl: values.subscriberUrl, + id: webhook.id, + webhooks, + teamId: webhook.teamId ?? undefined, + userId: webhook.userId ?? undefined, + }) + ) { showToast(t("webhook_subscriber_url_reserved"), "error"); return; } diff --git a/packages/features/webhooks/pages/webhook-new-view.tsx b/packages/features/webhooks/pages/webhook-new-view.tsx index 1a0e2cc734..08c4ea38d7 100644 --- a/packages/features/webhooks/pages/webhook-new-view.tsx +++ b/packages/features/webhooks/pages/webhook-new-view.tsx @@ -1,3 +1,4 @@ +import { useSession } from "next-auth/react"; import { useRouter } from "next/router"; import { APP_NAME } from "@calcom/lib/constants"; @@ -8,11 +9,16 @@ import { Meta, showToast, SkeletonContainer } from "@calcom/ui"; import { getLayout } from "../../settings/layouts/SettingsLayout"; import type { WebhookFormSubmitData } from "../components/WebhookForm"; import WebhookForm from "../components/WebhookForm"; +import { subscriberUrlReserved } from "../lib/subscriberUrlReserved"; const NewWebhookView = () => { const { t } = useLocale(); const utils = trpc.useContext(); const router = useRouter(); + const session = useSession(); + + const teamId = router.query.teamId ? +router.query.teamId : undefined; + const { data: installedApps, isLoading } = trpc.viewer.integrations.useQuery( { variant: "other", onlyInstalled: true }, { @@ -36,14 +42,16 @@ const NewWebhookView = () => { }, }); - const subscriberUrlReserved = (subscriberUrl: string, id?: string): boolean => { - return !!webhooks?.find( - (webhook) => webhook.subscriberUrl === subscriberUrl && (!id || webhook.id !== id) - ); - }; - const onCreateWebhook = async (values: WebhookFormSubmitData) => { - if (subscriberUrlReserved(values.subscriberUrl, values.id)) { + if ( + subscriberUrlReserved({ + subscriberUrl: values.subscriberUrl, + id: values.id, + webhooks, + teamId, + userId: session.data?.user.id, + }) + ) { showToast(t("webhook_subscriber_url_reserved"), "error"); return; } @@ -58,6 +66,7 @@ const NewWebhookView = () => { active: values.active, payloadTemplate: values.payloadTemplate, secret: values.secret, + teamId, }); }; @@ -70,8 +79,11 @@ const NewWebhookView = () => { description={t("add_webhook_description", { appName: APP_NAME })} backButton /> - - app.slug)} /> + app.slug)} + noRoutingFormTriggers={!!teamId} + /> ); }; diff --git a/packages/features/webhooks/pages/webhooks-view.tsx b/packages/features/webhooks/pages/webhooks-view.tsx index 575c553250..cfae8c4a3e 100644 --- a/packages/features/webhooks/pages/webhooks-view.tsx +++ b/packages/features/webhooks/pages/webhooks-view.tsx @@ -1,10 +1,24 @@ +import Link from "next/link"; import { useRouter } from "next/router"; import { Suspense } from "react"; import { APP_NAME, WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; -import { Button, EmptyScreen, Meta, SkeletonText } from "@calcom/ui"; +import type { WebhooksByViewer } from "@calcom/trpc/server/routers/viewer/webhook/getByViewer.handler"; +import { + Button, + Meta, + SkeletonText, + EmptyScreen, + Dropdown, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownItem, + DropdownMenuLabel, +} from "@calcom/ui"; +import { Avatar } from "@calcom/ui"; import { Plus, Link as LinkIcon } from "@calcom/ui/components/icon"; import { getLayout } from "../../settings/layouts/SettingsLayout"; @@ -12,63 +26,150 @@ import { WebhookListItem, WebhookListSkeleton } from "../components"; const WebhooksView = () => { const { t } = useLocale(); + const router = useRouter(); + + const { data } = trpc.viewer.webhook.getByViewer.useQuery(undefined, { + suspense: true, + enabled: router.isReady, + }); + + const profiles = data?.profiles.filter((profile) => !profile.readOnly); + return ( <> - + 0 ? : <>} + />
    }> - + {data && }
    ); }; -const NewWebhookButton = () => { +const NewWebhookButton = ({ + teamId, + profiles, +}: { + teamId?: number | null; + profiles?: { + readOnly?: boolean | undefined; + slug: string | null; + name: string | null; + image?: string | undefined; + teamId: number | null | undefined; + }[]; +}) => { const { t, isLocaleReady } = useLocale(); + + const url = new URL(`${WEBAPP_URL}/settings/developer/webhooks/new`); + if (!!teamId) { + url.searchParams.set("teamId", `${teamId}`); + } + const href = url.href; + + if (!profiles || profiles.length < 2) { + return ( + + ); + } return ( - + + + + + + +
    {t("create_for").toUpperCase()}
    +
    + {profiles.map((profile, idx) => ( + + ( + + )}> + + {profile.name} + + + + ))} +
    +
    ); }; -const WebhooksList = () => { +const WebhooksList = ({ webhooksByViewer }: { webhooksByViewer: WebhooksByViewer }) => { const { t } = useLocale(); const router = useRouter(); - const { data: webhooks } = trpc.viewer.webhook.list.useQuery(undefined, { - suspense: true, - enabled: router.isReady, - }); + const { profiles, webhookGroups } = webhooksByViewer; + + const hasTeams = profiles && profiles.length > 1; return ( <> - {webhooks?.length ? ( + {webhookGroups && ( <> -
    - {webhooks.map((webhook, index) => ( - router.push(`${WEBAPP_URL}/settings/developer/webhooks/${webhook.id} `)} - /> - ))} -
    - + {!!webhookGroups.length && ( + <> + {webhookGroups.map((group) => ( +
    + {hasTeams && ( +
    + +
    + {group.profile.name || ""} +
    +
    + )} +
    +
    + {group.webhooks.map((webhook, index) => ( + + router.push(`${WEBAPP_URL}/settings/developer/webhooks/${webhook.id} `) + } + /> + ))} +
    +
    +
    + ))} + + )} + {!webhookGroups.length && ( + } + /> + )} - ) : ( - } - /> )} ); diff --git a/packages/lib/CalEventParser.ts b/packages/lib/CalEventParser.ts index ff76988e9f..fe1638afab 100644 --- a/packages/lib/CalEventParser.ts +++ b/packages/lib/CalEventParser.ts @@ -194,7 +194,7 @@ ${getAppsStatus(calEvent, t)} ${ // TODO: Only the original attendee can make changes to the event // Guests cannot - !calEvent.seatsPerTimeSlot && getManageLink(calEvent, t) + calEvent.seatsPerTimeSlot ? "" : getManageLink(calEvent, t) } ${ calEvent.paymentInfo diff --git a/packages/lib/parse-dates.ts b/packages/lib/parse-dates.ts index d61d2d59d5..dcb6555b33 100644 --- a/packages/lib/parse-dates.ts +++ b/packages/lib/parse-dates.ts @@ -25,6 +25,45 @@ export const parseDate = (date: string | null | Dayjs, language: string, options return processDate(date, language, options); }; +const timeOptions: Intl.DateTimeFormatOptions = { + hour12: true, + hourCycle: "h12", + hour: "numeric", + minute: "numeric", +}; + +const dateOptions: Intl.DateTimeFormatOptions = { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", +}; + +export const parseDateTimeWithTimeZone = ( + date: Date, + language: string, + timezone: string, + options?: ExtraOptions +): string => { + timeOptions.timeZone = timezone; + dateOptions.timeZone = timezone; + + if (options?.withDefaultTimeFormat) { + timeOptions.hourCycle = "h12"; + } else if (options?.selectedTimeFormat) { + timeOptions.hourCycle = options.selectedTimeFormat === TimeFormat.TWELVE_HOUR ? "h12" : "h24"; + if (timeOptions.hourCycle === "h24") { + delete timeOptions.hour12; + } + } + const formattedDate = new Date(date).toLocaleDateString(language, dateOptions); + const formattedTime = new Date(date) + .toLocaleTimeString(language, timeOptions) + .replace(" ", "") + .toLowerCase(); + return `${formattedTime}, ${formattedDate}`; +}; + export const parseRecurringDates = ( { startDate, diff --git a/packages/lib/test/builder.ts b/packages/lib/test/builder.ts index 51656d7d0c..10b2e77a50 100644 --- a/packages/lib/test/builder.ts +++ b/packages/lib/test/builder.ts @@ -118,6 +118,7 @@ export const buildWebhook = (webhook?: Partial): Webhook => { secret: faker.lorem.slug(), active: true, eventTriggers: [], + teamId: null, ...webhook, }; }; diff --git a/packages/prisma/migrations/20230515121841_add_team_webhooks/migration.sql b/packages/prisma/migrations/20230515121841_add_team_webhooks/migration.sql new file mode 100644 index 0000000000..62e5562281 --- /dev/null +++ b/packages/prisma/migrations/20230515121841_add_team_webhooks/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "Webhook" ADD COLUMN "teamId" INTEGER; + +-- AddForeignKey +ALTER TABLE "Webhook" ADD CONSTRAINT "Webhook_teamId_fkey" FOREIGN KEY ("teamId") REFERENCES "Team"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/packages/prisma/migrations/20230518084145_add_feature_flag_google_workspace/migration.sql b/packages/prisma/migrations/20230518084145_add_feature_flag_google_workspace/migration.sql new file mode 100644 index 0000000000..2d9e9ba13b --- /dev/null +++ b/packages/prisma/migrations/20230518084145_add_feature_flag_google_workspace/migration.sql @@ -0,0 +1,9 @@ +INSERT INTO + "Feature" (slug, enabled, description, "type") +VALUES + ( + 'google-workspace-directory', + false, + 'Enable Google Workspace Directory integration - Syncing of users and groups from Google Workspace to users teams.', + 'OPERATIONAL' + ) ON CONFLICT (slug) DO NOTHING; diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma index d000df881a..000263cb42 100644 --- a/packages/prisma/schema.prisma +++ b/packages/prisma/schema.prisma @@ -255,6 +255,7 @@ model Team { brandColor String @default("#292929") darkBrandColor String @default("#fafafa") verifiedNumbers VerifiedNumber[] + webhooks Webhook[] } enum MembershipRole { @@ -503,6 +504,7 @@ enum WebhookTriggerEvents { model Webhook { id String @id @unique userId Int? + teamId Int? eventTypeId Int? /// @zod.url() subscriberUrl String @@ -511,6 +513,7 @@ model Webhook { active Boolean @default(true) eventTriggers WebhookTriggerEvents[] user User? @relation(fields: [userId], references: [id], onDelete: Cascade) + team Team? @relation(fields: [teamId], references: [id], onDelete: Cascade) eventType EventType? @relation(fields: [eventTypeId], references: [id], onDelete: Cascade) app App? @relation(fields: [appId], references: [slug], onDelete: Cascade) appId String? diff --git a/packages/prisma/zod/webhook.ts b/packages/prisma/zod/webhook.ts index 5341972772..1be40628c0 100755 --- a/packages/prisma/zod/webhook.ts +++ b/packages/prisma/zod/webhook.ts @@ -1,11 +1,12 @@ import * as z from "zod" import * as imports from "../zod-utils" import { WebhookTriggerEvents } from "@prisma/client" -import { CompleteUser, UserModel, CompleteEventType, EventTypeModel, CompleteApp, AppModel } from "./index" +import { CompleteUser, UserModel, CompleteTeam, TeamModel, CompleteEventType, EventTypeModel, CompleteApp, AppModel } from "./index" export const _WebhookModel = z.object({ id: z.string(), userId: z.number().int().nullish(), + teamId: z.number().int().nullish(), eventTypeId: z.number().int().nullish(), subscriberUrl: z.string().url(), payloadTemplate: z.string().nullish(), @@ -18,6 +19,7 @@ export const _WebhookModel = z.object({ export interface CompleteWebhook extends z.infer { user?: CompleteUser | null + team?: CompleteTeam | null eventType?: CompleteEventType | null app?: CompleteApp | null } @@ -29,6 +31,7 @@ export interface CompleteWebhook extends z.infer { */ export const WebhookModel: z.ZodSchema = z.lazy(() => _WebhookModel.extend({ user: UserModel.nullish(), + team: TeamModel.nullish(), eventType: EventTypeModel.nullish(), app: AppModel.nullish(), })) diff --git a/packages/trpc/react/trpc.ts b/packages/trpc/react/trpc.ts index 01339a319d..aa023cc3ad 100644 --- a/packages/trpc/react/trpc.ts +++ b/packages/trpc/react/trpc.ts @@ -38,6 +38,7 @@ const ENDPOINTS = [ "webhook", "workflows", "appsRouter", + "googleWorkspace", ] as const; export type Endpoint = (typeof ENDPOINTS)[number]; diff --git a/packages/trpc/server/routers/viewer/_router.tsx b/packages/trpc/server/routers/viewer/_router.tsx index 762ffb5bc7..25b595570f 100644 --- a/packages/trpc/server/routers/viewer/_router.tsx +++ b/packages/trpc/server/routers/viewer/_router.tsx @@ -14,6 +14,7 @@ import { availabilityRouter } from "./availability/_router"; import { bookingsRouter } from "./bookings/_router"; import { deploymentSetupRouter } from "./deploymentSetup/_router"; import { eventTypesRouter } from "./eventTypes/_router"; +import { googleWorkspaceRouter } from "./googleWorkspace/_router"; import { paymentsRouter } from "./payments/_router"; import { slotsRouter } from "./slots/_router"; import { ssoRouter } from "./sso/_router"; @@ -46,5 +47,6 @@ export const viewerRouter = mergeRouters( features: featureFlagRouter, appsRouter, users: userAdminRouter, + googleWorkspace: googleWorkspaceRouter, }) ); diff --git a/packages/trpc/server/routers/viewer/apps/_router.tsx b/packages/trpc/server/routers/viewer/apps/_router.tsx index 7a9c633017..86fe7d84e3 100644 --- a/packages/trpc/server/routers/viewer/apps/_router.tsx +++ b/packages/trpc/server/routers/viewer/apps/_router.tsx @@ -1,5 +1,6 @@ import authedProcedure, { authedAdminProcedure } from "../../../procedures/authedProcedure"; import { router } from "../../../trpc"; +import { checkGlobalKeysSchema } from "./checkGlobalKeys.schema"; import { ZListLocalInputSchema } from "./listLocal.schema"; import { ZQueryForDependenciesInputSchema } from "./queryForDependencies.schema"; import { ZSaveKeysInputSchema } from "./saveKeys.schema"; @@ -13,6 +14,7 @@ type AppsRouterHandlerCache = { checkForGCal?: typeof import("./checkForGCal.handler").checkForGCalHandler; updateAppCredentials?: typeof import("./updateAppCredentials.handler").updateAppCredentialsHandler; queryForDependencies?: typeof import("./queryForDependencies.handler").queryForDependenciesHandler; + checkGlobalKeys?: typeof import("./checkGlobalKeys.handler").checkForGlobalKeysHandler; }; const UNSTABLE_HANDLER_CACHE: AppsRouterHandlerCache = {}; @@ -124,4 +126,21 @@ export const appsRouter = router({ input, }); }), + checkGlobalKeys: authedProcedure.input(checkGlobalKeysSchema).query(async ({ ctx, input }) => { + if (!UNSTABLE_HANDLER_CACHE.checkGlobalKeys) { + UNSTABLE_HANDLER_CACHE.checkGlobalKeys = await import("./checkGlobalKeys.handler").then( + (mod) => mod.checkForGlobalKeysHandler + ); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.checkGlobalKeys) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.checkGlobalKeys({ + ctx, + input, + }); + }), }); diff --git a/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.handler.ts b/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.handler.ts new file mode 100644 index 0000000000..35610635d0 --- /dev/null +++ b/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.handler.ts @@ -0,0 +1,21 @@ +import { prisma } from "@calcom/prisma"; + +import type { TrpcSessionUser } from "../../../trpc"; +import type { CheckGlobalKeysSchemaType } from "./checkGlobalKeys.schema"; + +type checkForGlobalKeys = { + ctx: { + user: NonNullable; + }; + input: CheckGlobalKeysSchemaType; +}; + +export const checkForGlobalKeysHandler = async ({ ctx, input }: checkForGlobalKeys) => { + const appIsGloballyInstalled = await prisma.app.findUnique({ + where: { + slug: input.slug, + }, + }); + + return !!appIsGloballyInstalled; +}; diff --git a/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.schema.ts b/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.schema.ts new file mode 100644 index 0000000000..59fc01c89f --- /dev/null +++ b/packages/trpc/server/routers/viewer/apps/checkGlobalKeys.schema.ts @@ -0,0 +1,7 @@ +import { z } from "zod"; + +export const checkGlobalKeysSchema = z.object({ + slug: z.string(), +}); + +export type CheckGlobalKeysSchemaType = z.infer; diff --git a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts index 461a0affa6..7bb707a7da 100644 --- a/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts +++ b/packages/trpc/server/routers/viewer/bookings/requestReschedule.handler.ts @@ -238,8 +238,9 @@ export const requestRescheduleHandler = async ({ ctx, input }: RequestReschedule // Send Webhook call if hooked to BOOKING.CANCELLED const subscriberOptions = { userId: bookingToReschedule.userId, - eventTypeId: (bookingToReschedule.eventTypeId as number) || 0, + eventTypeId: bookingToReschedule.eventTypeId as number, triggerEvent: eventTrigger, + teamId: bookingToReschedule.eventType?.teamId, }; const webhooks = await getWebhooks(subscriberOptions); const promises = webhooks.map((webhook) => diff --git a/packages/trpc/server/routers/viewer/googleWorkspace/_router.tsx b/packages/trpc/server/routers/viewer/googleWorkspace/_router.tsx new file mode 100644 index 0000000000..b0a0f7f1c1 --- /dev/null +++ b/packages/trpc/server/routers/viewer/googleWorkspace/_router.tsx @@ -0,0 +1,61 @@ +import authedProcedure from "../../../procedures/authedProcedure"; +import { router } from "../../../trpc"; + +type GoogleWorkspaceCache = { + checkForGWorkspace?: typeof import("./googleWorkspace.handler").checkForGWorkspace; + getUsersFromGWorkspace?: typeof import("./googleWorkspace.handler").getUsersFromGWorkspace; + removeCurrentGoogleWorkspaceConnection?: typeof import("./googleWorkspace.handler").removeCurrentGoogleWorkspaceConnection; +}; + +const UNSTABLE_HANDLER_CACHE: GoogleWorkspaceCache = {}; + +export const googleWorkspaceRouter = router({ + checkForGWorkspace: authedProcedure.query(async ({ ctx }) => { + if (!UNSTABLE_HANDLER_CACHE.checkForGWorkspace) { + UNSTABLE_HANDLER_CACHE.checkForGWorkspace = await import("./googleWorkspace.handler").then( + (mod) => mod.checkForGWorkspace + ); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.checkForGWorkspace) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.checkForGWorkspace({ + ctx, + }); + }), + getUsersFromGWorkspace: authedProcedure.mutation(async ({ ctx }) => { + if (!UNSTABLE_HANDLER_CACHE.getUsersFromGWorkspace) { + UNSTABLE_HANDLER_CACHE.getUsersFromGWorkspace = await import("./googleWorkspace.handler").then( + (mod) => mod.getUsersFromGWorkspace + ); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.getUsersFromGWorkspace) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.getUsersFromGWorkspace({ + ctx, + }); + }), + removeCurrentGoogleWorkspaceConnection: authedProcedure.mutation(async ({ ctx }) => { + if (!UNSTABLE_HANDLER_CACHE.removeCurrentGoogleWorkspaceConnection) { + UNSTABLE_HANDLER_CACHE.removeCurrentGoogleWorkspaceConnection = await import( + "./googleWorkspace.handler" + ).then((mod) => mod.removeCurrentGoogleWorkspaceConnection); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.removeCurrentGoogleWorkspaceConnection) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.removeCurrentGoogleWorkspaceConnection({ + ctx, + }); + }), +}); diff --git a/packages/trpc/server/routers/viewer/googleWorkspace/googleWorkspace.handler.ts b/packages/trpc/server/routers/viewer/googleWorkspace/googleWorkspace.handler.ts new file mode 100644 index 0000000000..867a21248b --- /dev/null +++ b/packages/trpc/server/routers/viewer/googleWorkspace/googleWorkspace.handler.ts @@ -0,0 +1,79 @@ +import { google } from "googleapis"; +import { z } from "zod"; + +import getAppKeysFromSlug from "@calcom/app-store/_utils/getAppKeysFromSlug"; +import { prisma } from "@calcom/prisma"; + +import type { TrpcSessionUser } from "../../../trpc"; + +type CheckForGCalOptions = { + ctx: { + user: NonNullable; + }; +}; + +const credentialsSchema = z.object({ + refresh_token: z.string().optional(), + expiry_date: z.number().optional(), + access_token: z.string().optional(), + token_type: z.string().optional(), + id_token: z.string().optional(), + scope: z.string().optional(), +}); + +export const checkForGWorkspace = async ({ ctx }: CheckForGCalOptions) => { + const gWorkspacePresent = await prisma.credential.findFirst({ + where: { + type: "google_workspace_directory", + userId: ctx.user.id, + }, + }); + + return { id: gWorkspacePresent?.id }; +}; + +export const getUsersFromGWorkspace = async ({ ctx }: CheckForGCalOptions) => { + const { client_id, client_secret } = await getAppKeysFromSlug("google-calendar"); + if (!client_id || typeof client_id !== "string") throw new Error("Google client_id missing."); + if (!client_secret || typeof client_secret !== "string") throw new Error("Google client_secret missing."); + + const hasExistingCredentials = await prisma.credential.findFirst({ + where: { + type: "google_workspace_directory", + }, + }); + if (!hasExistingCredentials) { + throw new Error("No workspace credentials found"); + } + + const credentials = credentialsSchema.parse(hasExistingCredentials.key); + + const oAuth2Client = new google.auth.OAuth2(client_id, client_secret); + + // Set users credentials instead of our app credentials - allowing us to make requests on their behalf + oAuth2Client.setCredentials(credentials); + + // Create a new instance of the Admin SDK directory API + const directory = google.admin({ version: "directory_v1", auth: oAuth2Client }); + + const { data } = await directory.users.list({ + maxResults: 200, // Up this if we ever need to get more than 200 users + customer: "my_customer", // This only works for single domain setups - we'll need to change this if we ever support multi-domain setups (unlikely we'll ever need to) + }); + + // We only want their email addresses + const emails = data.users?.map((user) => user.primaryEmail as string) ?? ([] as string[]); + return emails; +}; + +export const removeCurrentGoogleWorkspaceConnection = async ({ ctx }: CheckForGCalOptions) => { + // There should only ever be one google_workspace_directory credential per user but we delete many as we can't make type unique + const gWorkspacePresent = await prisma.credential.deleteMany({ + where: { + type: "google_workspace_directory", + userId: ctx.user.id, + }, + }); + + return { deleted: gWorkspacePresent?.count }; +}; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember.handler.ts b/packages/trpc/server/routers/viewer/teams/inviteMember.handler.ts index 97067acb7a..5e85783b6d 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember.handler.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember.handler.ts @@ -37,113 +37,121 @@ export const inviteMemberHandler = async ({ ctx, input }: InviteMemberOptions) = if (!team) throw new TRPCError({ code: "NOT_FOUND", message: "Team not found" }); - // A user can exist even if they have not completed onboarding - const invitee = await prisma.user.findFirst({ - where: { - OR: [{ username: input.usernameOrEmail }, { email: input.usernameOrEmail }], - }, - }); + const emailsToInvite = Array.isArray(input.usernameOrEmail) + ? input.usernameOrEmail + : [input.usernameOrEmail]; - if (!invitee) { - // liberal email match - - if (!isEmail(input.usernameOrEmail)) - throw new TRPCError({ - code: "NOT_FOUND", - message: `Invite failed because there is no corresponding user for ${input.usernameOrEmail}`, - }); - - // valid email given, create User and add to team - await prisma.user.create({ - data: { - email: input.usernameOrEmail, - invitedTo: input.teamId, - teams: { - create: { - teamId: input.teamId, - role: input.role as MembershipRole, - }, - }, + emailsToInvite.forEach(async (usernameOrEmail) => { + const invitee = await prisma.user.findFirst({ + where: { + OR: [{ username: usernameOrEmail }, { email: usernameOrEmail }], }, }); - const token: string = randomBytes(32).toString("hex"); + if (!invitee) { + // liberal email match - await prisma.verificationToken.create({ - data: { - identifier: input.usernameOrEmail, - token, - expires: new Date(new Date().setHours(168)), // +1 week - }, - }); - if (ctx?.user?.name && team?.name) { - await sendTeamInviteEmail({ - language: translation, - from: ctx.user.name, - to: input.usernameOrEmail, - teamName: team.name, - joinLink: `${WEBAPP_URL}/signup?token=${token}&callbackUrl=/getting-started`, // we know that the user has not completed onboarding yet, so we can redirect them to the onboarding flow - isCalcomMember: false, - }); - } - } else { - // create provisional membership - try { - await prisma.membership.create({ - data: { - teamId: input.teamId, - userId: invitee.id, - role: input.role as MembershipRole, - }, - }); - } catch (e) { - if (e instanceof Prisma.PrismaClientKnownRequestError) { - if (e.code === "P2002") { - throw new TRPCError({ - code: "FORBIDDEN", - message: "This user is a member of this team / has a pending invitation.", - }); - } - } else throw e; - } - - let sendTo = input.usernameOrEmail; - if (!isEmail(input.usernameOrEmail)) { - sendTo = invitee.email; - } - // inform user of membership by email - if (input.sendEmailInvitation && ctx?.user?.name && team?.name) { - const inviteTeamOptions = { - joinLink: `${WEBAPP_URL}/auth/login?callbackUrl=/settings/teams`, - isCalcomMember: true, - }; - /** - * Here we want to redirect to a differnt place if onboarding has been completed or not. This prevents the flash of going to teams -> Then to onboarding - also show a differnt email template. - * This only changes if the user is a CAL user and has not completed onboarding and has no password - */ - if (!invitee.completedOnboarding && !invitee.password && invitee.identityProvider === "CAL") { - const token = randomBytes(32).toString("hex"); - await prisma.verificationToken.create({ - data: { - identifier: input.usernameOrEmail, - token, - expires: new Date(new Date().setHours(168)), // +1 week - }, + if (!isEmail(usernameOrEmail)) + throw new TRPCError({ + code: "NOT_FOUND", + message: `Invite failed because there is no corresponding user for ${usernameOrEmail}`, }); - inviteTeamOptions.joinLink = `${WEBAPP_URL}/signup?token=${token}&callbackUrl=/getting-started`; - inviteTeamOptions.isCalcomMember = false; + // valid email given, create User and add to team + await prisma.user.create({ + data: { + email: usernameOrEmail, + invitedTo: input.teamId, + teams: { + create: { + teamId: input.teamId, + role: input.role as MembershipRole, + }, + }, + }, + }); + + const token: string = randomBytes(32).toString("hex"); + + await prisma.verificationToken.create({ + data: { + identifier: usernameOrEmail, + token, + expires: new Date(new Date().setHours(168)), // +1 week + }, + }); + if (ctx?.user?.name && team?.name) { + await sendTeamInviteEmail({ + language: translation, + from: ctx.user.name, + to: usernameOrEmail, + teamName: team.name, + joinLink: `${WEBAPP_URL}/signup?token=${token}&callbackUrl=/getting-started`, // we know that the user has not completed onboarding yet, so we can redirect them to the onboarding flow + isCalcomMember: false, + }); + } + } else { + // create provisional membership + try { + await prisma.membership.create({ + data: { + teamId: input.teamId, + userId: invitee.id, + role: input.role as MembershipRole, + }, + }); + } catch (e) { + if (e instanceof Prisma.PrismaClientKnownRequestError) { + // Don't throw an error if the user is already a member of the team when inviting multiple users + if (!Array.isArray(input.usernameOrEmail) && e.code === "P2002") { + throw new TRPCError({ + code: "FORBIDDEN", + message: "This user is a member of this team / has a pending invitation.", + }); + } else { + console.log(`User ${invitee.id} is already a member of this team.`); + } + } else throw e; } - await sendTeamInviteEmail({ - language: translation, - from: ctx.user.name, - to: sendTo, - teamName: team.name, - ...inviteTeamOptions, - }); + let sendTo = usernameOrEmail; + if (!isEmail(usernameOrEmail)) { + sendTo = invitee.email; + } + // inform user of membership by email + if (input.sendEmailInvitation && ctx?.user?.name && team?.name) { + const inviteTeamOptions = { + joinLink: `${WEBAPP_URL}/auth/login?callbackUrl=/settings/teams`, + isCalcomMember: true, + }; + /** + * Here we want to redirect to a differnt place if onboarding has been completed or not. This prevents the flash of going to teams -> Then to onboarding - also show a differnt email template. + * This only changes if the user is a CAL user and has not completed onboarding and has no password + */ + if (!invitee.completedOnboarding && !invitee.password && invitee.identityProvider === "CAL") { + const token = randomBytes(32).toString("hex"); + await prisma.verificationToken.create({ + data: { + identifier: usernameOrEmail, + token, + expires: new Date(new Date().setHours(168)), // +1 week + }, + }); + + inviteTeamOptions.joinLink = `${WEBAPP_URL}/signup?token=${token}&callbackUrl=/getting-started`; + inviteTeamOptions.isCalcomMember = false; + } + + await sendTeamInviteEmail({ + language: translation, + from: ctx.user.name, + to: sendTo, + teamName: team.name, + ...inviteTeamOptions, + }); + } } - } + }); if (IS_TEAM_BILLING_ENABLED) await updateQuantitySubscriptionFromStripe(input.teamId); return input; }; diff --git a/packages/trpc/server/routers/viewer/teams/inviteMember.schema.ts b/packages/trpc/server/routers/viewer/teams/inviteMember.schema.ts index d743203f8e..c3d712a750 100644 --- a/packages/trpc/server/routers/viewer/teams/inviteMember.schema.ts +++ b/packages/trpc/server/routers/viewer/teams/inviteMember.schema.ts @@ -4,7 +4,12 @@ import { MembershipRole } from "@calcom/prisma/enums"; export const ZInviteMemberInputSchema = z.object({ teamId: z.number(), - usernameOrEmail: z.string().transform((usernameOrEmail) => usernameOrEmail.trim().toLowerCase()), + usernameOrEmail: z.union([z.string(), z.array(z.string())]).transform((usernameOrEmail) => { + if (typeof usernameOrEmail === "string") { + return usernameOrEmail.trim().toLowerCase(); + } + return usernameOrEmail.map((item) => item.trim().toLowerCase()); + }), role: z.nativeEnum(MembershipRole), language: z.string(), sendEmailInvitation: z.boolean(), diff --git a/packages/trpc/server/routers/viewer/webhook/_router.tsx b/packages/trpc/server/routers/viewer/webhook/_router.tsx index e4f1bc844a..bb728bd81f 100644 --- a/packages/trpc/server/routers/viewer/webhook/_router.tsx +++ b/packages/trpc/server/routers/viewer/webhook/_router.tsx @@ -14,6 +14,7 @@ type WebhookRouterHandlerCache = { edit?: typeof import("./edit.handler").editHandler; delete?: typeof import("./delete.handler").deleteHandler; testTrigger?: typeof import("./testTrigger.handler").testTriggerHandler; + getByViewer?: typeof import("./getByViewer.handler").getByViewerHandler; }; const UNSTABLE_HANDLER_CACHE: WebhookRouterHandlerCache = {}; @@ -116,4 +117,21 @@ export const webhookRouter = router({ input, }); }), + + getByViewer: webhookProcedure.query(async ({ ctx }) => { + if (!UNSTABLE_HANDLER_CACHE.getByViewer) { + UNSTABLE_HANDLER_CACHE.getByViewer = await import("./getByViewer.handler").then( + (mod) => mod.getByViewerHandler + ); + } + + // Unreachable code but required for type safety + if (!UNSTABLE_HANDLER_CACHE.getByViewer) { + throw new Error("Failed to load handler"); + } + + return UNSTABLE_HANDLER_CACHE.getByViewer({ + ctx, + }); + }), }); diff --git a/packages/trpc/server/routers/viewer/webhook/create.handler.ts b/packages/trpc/server/routers/viewer/webhook/create.handler.ts index 498e032218..03478098d6 100644 --- a/packages/trpc/server/routers/viewer/webhook/create.handler.ts +++ b/packages/trpc/server/routers/viewer/webhook/create.handler.ts @@ -13,7 +13,7 @@ type CreateOptions = { }; export const createHandler = async ({ ctx, input }: CreateOptions) => { - if (input.eventTypeId) { + if (input.eventTypeId || input.teamId) { return await prisma.webhook.create({ data: { id: v4(), diff --git a/packages/trpc/server/routers/viewer/webhook/create.schema.ts b/packages/trpc/server/routers/viewer/webhook/create.schema.ts index 2bef2f8ab2..196c388c79 100644 --- a/packages/trpc/server/routers/viewer/webhook/create.schema.ts +++ b/packages/trpc/server/routers/viewer/webhook/create.schema.ts @@ -12,6 +12,7 @@ export const ZCreateInputSchema = webhookIdAndEventTypeIdSchema.extend({ eventTypeId: z.number().optional(), appId: z.string().optional().nullable(), secret: z.string().optional().nullable(), + teamId: z.number().optional(), }); export type TCreateInputSchema = z.infer; diff --git a/packages/trpc/server/routers/viewer/webhook/delete.handler.ts b/packages/trpc/server/routers/viewer/webhook/delete.handler.ts index 601f619a30..2588a8d091 100644 --- a/packages/trpc/server/routers/viewer/webhook/delete.handler.ts +++ b/packages/trpc/server/routers/viewer/webhook/delete.handler.ts @@ -12,31 +12,32 @@ type DeleteOptions = { export const deleteHandler = async ({ ctx, input }: DeleteOptions) => { const { id } = input; - input.eventTypeId - ? await prisma.eventType.update({ - where: { - id: input.eventTypeId, - }, - data: { - webhooks: { - delete: { - id, - }, - }, - }, - }) - : await prisma.user.update({ - where: { - id: ctx.user.id, - }, - data: { - webhooks: { - delete: { - id, - }, - }, - }, - }); + + const andCondition: Partial<{ id: string; eventTypeId: number; teamId: number; userId: number }>[] = [ + { id: id }, + ]; + + if (input.eventTypeId) { + andCondition.push({ eventTypeId: input.eventTypeId }); + } else if (input.teamId) { + andCondition.push({ teamId: input.teamId }); + } else { + andCondition.push({ userId: ctx.user.id }); + } + + const webhookToDelete = await prisma.webhook.findFirst({ + where: { + AND: andCondition, + }, + }); + + if (webhookToDelete) { + await prisma.webhook.delete({ + where: { + id: webhookToDelete.id, + }, + }); + } return { id, diff --git a/packages/trpc/server/routers/viewer/webhook/delete.schema.ts b/packages/trpc/server/routers/viewer/webhook/delete.schema.ts index f2f04a402f..08409243fa 100644 --- a/packages/trpc/server/routers/viewer/webhook/delete.schema.ts +++ b/packages/trpc/server/routers/viewer/webhook/delete.schema.ts @@ -5,6 +5,7 @@ import { webhookIdAndEventTypeIdSchema } from "./types"; export const ZDeleteInputSchema = webhookIdAndEventTypeIdSchema.extend({ id: z.string(), eventTypeId: z.number().optional(), + teamId: z.number().optional(), }); export type TDeleteInputSchema = z.infer; diff --git a/packages/trpc/server/routers/viewer/webhook/edit.handler.ts b/packages/trpc/server/routers/viewer/webhook/edit.handler.ts index 9e1f2f447f..783a1d2c80 100644 --- a/packages/trpc/server/routers/viewer/webhook/edit.handler.ts +++ b/packages/trpc/server/routers/viewer/webhook/edit.handler.ts @@ -12,22 +12,14 @@ type EditOptions = { export const editHandler = async ({ ctx, input }: EditOptions) => { const { id, ...data } = input; - const webhook = input.eventTypeId - ? await prisma.webhook.findFirst({ - where: { - eventTypeId: input.eventTypeId, - id, - }, - }) - : await prisma.webhook.findFirst({ - where: { - userId: ctx.user.id, - id, - }, - }); + + const webhook = await prisma.webhook.findFirst({ + where: { + id, + }, + }); + if (!webhook) { - // user does not own this webhook - // team event doesn't own this webhook return null; } return await prisma.webhook.update({ diff --git a/packages/trpc/server/routers/viewer/webhook/get.handler.ts b/packages/trpc/server/routers/viewer/webhook/get.handler.ts index 3050e94eca..ba65c7c04b 100644 --- a/packages/trpc/server/routers/viewer/webhook/get.handler.ts +++ b/packages/trpc/server/routers/viewer/webhook/get.handler.ts @@ -22,6 +22,8 @@ export const getHandler = async ({ ctx: _ctx, input }: GetOptions) => { active: true, eventTriggers: true, secret: true, + teamId: true, + userId: true, }, }); }; diff --git a/packages/trpc/server/routers/viewer/webhook/getByViewer.handler.ts b/packages/trpc/server/routers/viewer/webhook/getByViewer.handler.ts new file mode 100644 index 0000000000..54436b6b91 --- /dev/null +++ b/packages/trpc/server/routers/viewer/webhook/getByViewer.handler.ts @@ -0,0 +1,116 @@ +import { CAL_URL } from "@calcom/lib/constants"; +import { prisma } from "@calcom/prisma"; +import type { Webhook } from "@calcom/prisma/client"; +import { MembershipRole } from "@calcom/prisma/enums"; +import type { TrpcSessionUser } from "@calcom/trpc/server/trpc"; + +import { TRPCError } from "@trpc/server"; + +type GetByViewerOptions = { + ctx: { + user: NonNullable; + }; +}; + +type WebhookGroup = { + teamId?: number | null; + profile: { + slug: string | null; + name: string | null; + image?: string; + }; + metadata?: { + readOnly: boolean; + }; + webhooks: Webhook[]; +}; + +export type WebhooksByViewer = { + webhookGroups: WebhookGroup[]; + profiles: { + readOnly?: boolean | undefined; + slug: string | null; + name: string | null; + image?: string | undefined; + teamId: number | null | undefined; + }[]; +}; + +export const getByViewerHandler = async ({ ctx }: GetByViewerOptions) => { + const user = await prisma.user.findUnique({ + where: { + id: ctx.user.id, + }, + select: { + username: true, + avatar: true, + name: true, + webhooks: true, + teams: { + where: { + accepted: true, + }, + select: { + role: true, + team: { + select: { + id: true, + name: true, + slug: true, + members: { + select: { + userId: true, + }, + }, + webhooks: true, + }, + }, + }, + }, + }, + }); + + if (!user) { + throw new TRPCError({ code: "INTERNAL_SERVER_ERROR" }); + } + + const userWebhooks = user.webhooks; + let webhookGroups: WebhookGroup[] = []; + + webhookGroups.push({ + teamId: null, + profile: { + slug: user.username, + name: user.name, + image: user.avatar || undefined, + }, + webhooks: userWebhooks, + metadata: { + readOnly: false, + }, + }); + + const teamWebhookGroups: WebhookGroup[] = user.teams.map((membership) => ({ + teamId: membership.team.id, + profile: { + name: membership.team.name, + slug: "team/" + membership.team.slug, + image: `${CAL_URL}/team/${membership.team.slug}/avatar.png`, + }, + metadata: { + readOnly: membership.role !== MembershipRole.ADMIN && membership.role !== MembershipRole.OWNER, + }, + webhooks: membership.team.webhooks, + })); + + webhookGroups = webhookGroups.concat(teamWebhookGroups); + + return { + webhookGroups: webhookGroups.filter((groupBy) => !!groupBy.webhooks?.length), + profiles: webhookGroups.map((group) => ({ + teamId: group.teamId, + ...group.profile, + ...group.metadata, + })), + }; +}; diff --git a/packages/trpc/server/routers/viewer/webhook/getByViewer.schema.ts b/packages/trpc/server/routers/viewer/webhook/getByViewer.schema.ts new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/packages/trpc/server/routers/viewer/webhook/getByViewer.schema.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/trpc/server/routers/viewer/webhook/list.handler.ts b/packages/trpc/server/routers/viewer/webhook/list.handler.ts index 3eddf5ffec..77c5c8f644 100644 --- a/packages/trpc/server/routers/viewer/webhook/list.handler.ts +++ b/packages/trpc/server/routers/viewer/webhook/list.handler.ts @@ -17,11 +17,23 @@ export const listHandler = async ({ ctx, input }: ListOptions) => { /* Don't mixup zapier webhooks with normal ones */ AND: [{ appId: !input?.appId ? null : input.appId }], }; + + const user = await prisma.user.findFirst({ + where: { + id: ctx.user.id, + }, + select: { + teams: true, + }, + }); + if (Array.isArray(where.AND)) { if (input?.eventTypeId) { where.AND?.push({ eventTypeId: input.eventTypeId }); } else { - where.AND?.push({ userId: ctx.user.id }); + where.AND?.push({ + OR: [{ userId: ctx.user.id }, { teamId: { in: user?.teams.map((membership) => membership.teamId) } }], + }); } } diff --git a/packages/trpc/server/routers/viewer/webhook/list.schema.ts b/packages/trpc/server/routers/viewer/webhook/list.schema.ts index 7362b4f566..46787f8487 100644 --- a/packages/trpc/server/routers/viewer/webhook/list.schema.ts +++ b/packages/trpc/server/routers/viewer/webhook/list.schema.ts @@ -5,6 +5,8 @@ import { webhookIdAndEventTypeIdSchema } from "./types"; export const ZListInputSchema = webhookIdAndEventTypeIdSchema .extend({ appId: z.string().optional(), + teamId: z.number().optional(), + eventTypeId: z.number().optional(), }) .optional(); diff --git a/packages/trpc/server/routers/viewer/webhook/types.ts b/packages/trpc/server/routers/viewer/webhook/types.ts index 8a57b596b0..562f446504 100644 --- a/packages/trpc/server/routers/viewer/webhook/types.ts +++ b/packages/trpc/server/routers/viewer/webhook/types.ts @@ -4,6 +4,6 @@ import { z } from "zod"; export const webhookIdAndEventTypeIdSchema = z.object({ // Webhook ID id: z.string().optional(), - // Event type ID eventTypeId: z.number().optional(), + teamId: z.number().optional(), }); diff --git a/packages/trpc/server/routers/viewer/webhook/util.ts b/packages/trpc/server/routers/viewer/webhook/util.ts index 9157dfeef4..a898a8d273 100644 --- a/packages/trpc/server/routers/viewer/webhook/util.ts +++ b/packages/trpc/server/routers/viewer/webhook/util.ts @@ -1,4 +1,7 @@ +import type { Membership } from "@prisma/client"; + import { prisma } from "@calcom/prisma"; +import { MembershipRole } from "@calcom/prisma/enums"; import { TRPCError } from "@trpc/server"; @@ -10,41 +13,128 @@ export const webhookProcedure = authedProcedure .use(async ({ ctx, input, next }) => { // Endpoints that just read the logged in user's data - like 'list' don't necessary have any input if (!input) return next(); - const { eventTypeId, id } = input; + const { id, teamId, eventTypeId } = input; - // A webhook is either linked to Event Type or to a user. - if (eventTypeId) { - const team = await prisma.team.findFirst({ - where: { - eventTypes: { - some: { - id: eventTypeId, - }, - }, - }, - include: { - members: true, - }, - }); - - // Team should be available and the user should be a member of the team - if (!team?.members.some((membership) => membership.userId === ctx.user.id)) { - throw new TRPCError({ - code: "UNAUTHORIZED", - }); + const assertPartOfTeamWithRequiredAccessLevel = (memberships?: Membership[], teamId?: number) => { + if (!memberships) return false; + if (teamId) { + return memberships.some( + (membership) => + membership.teamId === teamId && + (membership.role === MembershipRole.ADMIN || membership.role === MembershipRole.OWNER) + ); } - } else if (id) { - const authorizedHook = await prisma.webhook.findFirst({ + return memberships.some( + (membership) => + membership.userId === ctx.user.id && + (membership.role === MembershipRole.ADMIN || membership.role === MembershipRole.OWNER) + ); + }; + + if (id) { + //check if user is authorized to edit webhook + const webhook = await prisma.webhook.findFirst({ where: { id: id, - userId: ctx.user.id, + }, + include: { + user: true, + team: true, + eventType: true, }, }); - if (!authorizedHook) { - throw new TRPCError({ - code: "UNAUTHORIZED", + + if (webhook) { + if (webhook.teamId) { + const user = await prisma.user.findFirst({ + where: { + id: ctx.user.id, + }, + include: { + teams: true, + }, + }); + + const userHasAdminOwnerPermissionInTeam = + user && + user.teams.some( + (membership) => + membership.teamId === webhook.teamId && + (membership.role === MembershipRole.ADMIN || membership.role === MembershipRole.OWNER) + ); + + if (!userHasAdminOwnerPermissionInTeam) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } else if (webhook.eventTypeId) { + const eventType = await prisma.eventType.findFirst({ + where: { + id: webhook.eventTypeId, + }, + include: { + team: { + include: { + members: true, + }, + }, + }, + }); + + if (eventType && eventType.userId !== ctx.user.id) { + if (!assertPartOfTeamWithRequiredAccessLevel(eventType.team?.members)) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } + } else if (webhook.userId && webhook.userId !== ctx.user.id) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } + } else { + //check if user is authorized to create webhook on event type or team + if (teamId) { + const user = await prisma.user.findFirst({ + where: { + id: ctx.user.id, + }, + include: { + teams: true, + }, }); + + if (!assertPartOfTeamWithRequiredAccessLevel(user?.teams, teamId)) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } else if (eventTypeId) { + const eventType = await prisma.eventType.findFirst({ + where: { + id: eventTypeId, + }, + include: { + team: { + include: { + members: true, + }, + }, + }, + }); + + if (eventType && eventType.userId !== ctx.user.id) { + if (!assertPartOfTeamWithRequiredAccessLevel(eventType.team?.members)) { + throw new TRPCError({ + code: "UNAUTHORIZED", + }); + } + } } } + return next(); }); diff --git a/packages/types/App.d.ts b/packages/types/App.d.ts index 49e62fa4b0..56381f7386 100644 --- a/packages/types/App.d.ts +++ b/packages/types/App.d.ts @@ -129,7 +129,6 @@ export interface App { teamsPlanRequired?: { upgradeUrl: string; }; - isProOnly?: boolean; appData?: AppData; /** * @deprecated diff --git a/packages/ui/components/apps/AppCard.tsx b/packages/ui/components/apps/AppCard.tsx index d23a4722f9..302909b1a1 100644 --- a/packages/ui/components/apps/AppCard.tsx +++ b/packages/ui/components/apps/AppCard.tsx @@ -96,7 +96,6 @@ export function AppCard({ app, credentials, searchText }: AppCardProps) { ? !app.isGlobal && ( !data.installed)} wrapperClassName="[@media(max-width:260px)]:w-full" @@ -125,7 +124,6 @@ export function AppCard({ app, credentials, searchText }: AppCardProps) { credentials.length === 0 && ( !data.installed)} teamsPlanRequired={app.teamsPlanRequired} diff --git a/packages/ui/components/credits/Credits.tsx b/packages/ui/components/credits/Credits.tsx index 4528428dcb..17ff13c337 100644 --- a/packages/ui/components/credits/Credits.tsx +++ b/packages/ui/components/credits/Credits.tsx @@ -4,9 +4,7 @@ import { useEffect, useState } from "react"; import { COMPANY_NAME, IS_SELF_HOSTED } from "@calcom/lib/constants"; import pkg from "@calcom/web/package.json"; -export const CalComVersion = `v.${pkg.version}-${!IS_SELF_HOSTED ? "h" : "sh"}-${ - process.env.CALCOM_LICENSE_KEY === "" ? "ee" : "ce" -}`; +export const CalComVersion = `v.${pkg.version}-${!IS_SELF_HOSTED ? "h" : "sh"}`; export default function Credits() { const [hasMounted, setHasMounted] = useState(false); diff --git a/packages/ui/components/dialog/Dialog.tsx b/packages/ui/components/dialog/Dialog.tsx index ff4bd32453..eb5222ce27 100644 --- a/packages/ui/components/dialog/Dialog.tsx +++ b/packages/ui/components/dialog/Dialog.tsx @@ -1,6 +1,6 @@ import * as DialogPrimitive from "@radix-ui/react-dialog"; import { useRouter } from "next/router"; -import type { ReactNode } from "react"; +import type { PropsWithChildren, ReactNode } from "react"; import React, { useState } from "react"; import classNames from "@calcom/lib/classNames"; @@ -61,7 +61,7 @@ type DialogContentProps = React.ComponentProps<(typeof DialogPrimitive)["Content size?: "xl" | "lg" | "md"; type?: "creation" | "confirmation"; title?: string; - description?: string | JSX.Element | undefined; + description?: string | JSX.Element | null; closeText?: string; actionDisabled?: boolean; Icon?: SVGComponent; @@ -134,8 +134,11 @@ export function DialogHeader(props: DialogHeaderProps) { ); } -export function DialogFooter(props: { children: ReactNode }) { - return
    {props.children}
    ; +// TODO: add divider +export function DialogFooter(props: PropsWithChildren<{ showDivider?: boolean }>) { + return ( +
    {props.children}
    + ); } DialogContent.displayName = "DialogContent"; diff --git a/packages/ui/components/form/inputs/Input.tsx b/packages/ui/components/form/inputs/Input.tsx index 6d4f75fe6a..c5dfbe5631 100644 --- a/packages/ui/components/form/inputs/Input.tsx +++ b/packages/ui/components/form/inputs/Input.tsx @@ -129,7 +129,7 @@ export const InputField = forwardRef(function {addOnLeading || addOnSuffix ? (
    + className="group relative mb-1 flex items-center rounded-md focus-within:outline-none focus-within:ring-2 focus-within:ring-neutral-800 focus-within:ring-offset-1"> {addOnLeading && ( {addOnLeading} diff --git a/packages/ui/components/form/switch/Switch.tsx b/packages/ui/components/form/switch/Switch.tsx index 8c0d04f0a8..ac4198de0e 100644 --- a/packages/ui/components/form/switch/Switch.tsx +++ b/packages/ui/components/form/switch/Switch.tsx @@ -40,9 +40,9 @@ const Switch = ( )}> diff --git a/packages/ui/components/form/timezone-select/TimezoneSelect.tsx b/packages/ui/components/form/timezone-select/TimezoneSelect.tsx index b874e43ec4..cbf20559a0 100644 --- a/packages/ui/components/form/timezone-select/TimezoneSelect.tsx +++ b/packages/ui/components/form/timezone-select/TimezoneSelect.tsx @@ -52,18 +52,22 @@ export function TimezoneSelect({ classNames={{ ...timezoneClassNames, input: (state) => - classNames("text-emphasis h-6", timezoneClassNames?.input && timezoneClassNames.input(state)), + classNames( + "text-emphasis h-6 md:max-w-[145px] max-w-[250px]", + timezoneClassNames?.input && timezoneClassNames.input(state) + ), option: (state) => classNames( - "bg-default flex cursor-pointer justify-between py-2.5 px-3 rounded-none text-default ", + "bg-default flex !cursor-pointer justify-between py-2.5 px-3 rounded-none text-default ", state.isFocused && "bg-subtle", - state.isSelected && "bg-emphasis text-default", + state.isSelected && "bg-emphasis", timezoneClassNames?.option && timezoneClassNames.option(state) ), placeholder: (state) => classNames("text-muted", state.isFocused && "hidden"), dropdownIndicator: () => "text-default", control: (state) => classNames( + "!cursor-pointer", variant === "default" ? "px-3 py-2 bg-default border-default !min-h-9 text-sm leading-4 placeholder:text-sm placeholder:font-normal focus-within:ring-2 focus-within:ring-emphasis hover:border-emphasis rounded-md border gap-1" : "text-sm gap-1", diff --git a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx index 08f0d7a336..dc5833302d 100644 --- a/packages/ui/components/form/toggleGroup/ToggleGroup.tsx +++ b/packages/ui/components/form/toggleGroup/ToggleGroup.tsx @@ -6,7 +6,13 @@ import { classNames } from "@calcom/lib"; import { Tooltip } from "@calcom/ui"; interface ToggleGroupProps extends Omit { - options: { value: string; label: string | ReactNode; disabled?: boolean; tooltip?: string }[]; + options: { + value: string; + label: string | ReactNode; + disabled?: boolean; + tooltip?: string; + iconLeft?: ReactNode; + }[]; isFullWidth?: boolean; } @@ -80,7 +86,10 @@ export const ToggleGroup = ({ options, onValueChange, isFullWidth, ...props }: T } return node; }}> - {option.label} +
    + {option.iconLeft && {option.iconLeft}} + {option.label} +
    ))} diff --git a/packages/ui/form/PhoneInput.tsx b/packages/ui/form/PhoneInput.tsx index ca5e35be11..4e4f23902c 100644 --- a/packages/ui/form/PhoneInput.tsx +++ b/packages/ui/form/PhoneInput.tsx @@ -22,6 +22,7 @@ function PhoneInput({ name, className = "", onChange, ...rest }: PhoneInputProps return ( = 16.8.0 || 18.0.0" react-dom: ">= 16.8.0 || 18.0.0" - checksum: 2db7a61470a9e02707aa5a80792ec009a8694ef7283b01e30ec516893297794d7f466ae3230c59773bab357684803767c1ffab875175471c41b28a5055345130 + checksum: f448341d30ef417292d8f7618d4931190a6d4aa353fbd276da4dcecc49bb6a7a32962f9cc74fe0af2ea9617d7b453ed3efccf7a0e8709a8b66e04ec04f4ae18c languageName: node linkType: hard @@ -35224,13 +35231,13 @@ __metadata: linkType: hard "remark-stringify@npm:^10.0.0": - version: 10.0.2 - resolution: "remark-stringify@npm:10.0.2" + version: 10.0.3 + resolution: "remark-stringify@npm:10.0.3" dependencies: "@types/mdast": ^3.0.0 mdast-util-to-markdown: ^1.0.0 unified: ^10.0.0 - checksum: 25424201e698353f6c0afc9ec29a8cac1dac8c06750d92214e3216bd76ac37902a0ba3702ac2a11c1040938a667b3bc22d6949af1d35e8fc81a3572643cdc263 + checksum: 6004e204fba672ee322c3cf0bef090e95802feedf7ef875f88b120c5e6208f1eb09c014486d5ca42a1e199c0a17ce0ed165fb248c66608458afed4bdca51dd3a languageName: node linkType: hard @@ -35255,14 +35262,14 @@ __metadata: linkType: hard "remark@npm:^14.0.2": - version: 14.0.2 - resolution: "remark@npm:14.0.2" + version: 14.0.3 + resolution: "remark@npm:14.0.3" dependencies: "@types/mdast": ^3.0.0 remark-parse: ^10.0.0 remark-stringify: ^10.0.0 unified: ^10.0.0 - checksum: a534b6c6bb8a0db7e22580c73d820af9c2468af24d434eb0d54c9b50577d609ec5383a90e81c921f334c1426494c5cf7460ae68b5027123f159bbf1ca8a5a85f + checksum: 36eec9668c5f5e497507fa5d396c79183265a5f7dd204a608e7f031a4f61b48f7bb5cfaec212f5614ccd1266cc4a9f8d7a59a45e95aed9876986b4c453b191be languageName: node linkType: hard