Merge branch 'main' into PRWLR-4393-Setup-NextAuth-client-session

This commit is contained in:
Pablo Lara
2024-08-21 09:20:11 +02:00
28 changed files with 1644 additions and 11 deletions
+39
View File
@@ -0,0 +1,39 @@
"use server";
import { revalidatePath } from "next/cache";
import { redirect } from "next/navigation";
import { parseStringify } from "@/lib";
export const getCompliance = async ({ page = 1 }) => {
if (isNaN(Number(page)) || page < 1) redirect("/compliance");
const keyServer = process.env.LOCAL_SITE_URL;
try {
const compliance = await fetch(
`${keyServer}/api/compliance?page%5Bnumber%5D=${page}`,
);
const data = await compliance.json();
const parsedData = parseStringify(data);
revalidatePath("/compliance");
return parsedData;
} catch (error) {
console.error("Error fetching Compliance:", error);
return undefined;
}
};
export const getErrorMessage = (error: unknown): string => {
let message: string;
if (error instanceof Error) {
message = error.message;
} else if (error && typeof error === "object" && "message" in error) {
message = String(error.message);
} else if (typeof error === "string") {
message = error;
} else {
message = "Wops! Something when wrong.";
}
return message;
};
+44 -4
View File
@@ -1,13 +1,53 @@
import React from "react";
import { Spacer } from "@nextui-org/react";
import { redirect } from "next/navigation";
import { Suspense } from "react";
import { getCompliance } from "@/actions/compliance";
import {
ComplianceCard,
ComplianceSkeletonGrid,
} from "@/components/compliance";
import { FilterControls } from "@/components/filters";
import { Header } from "@/components/ui";
import { searchParamsProps } from "@/types";
export default function Compliance() {
export default async function Compliance({ searchParams }: searchParamsProps) {
return (
<>
<Header title="Compliance" icon="fluent-mdl2:compliance-audit" />
<p>Hi hi from Compliance page</p>
<Spacer y={4} />
<FilterControls mutedFindings={false} />
<Spacer y={4} />
<Suspense key={searchParams.page} fallback={<ComplianceSkeletonGrid />}>
<SSRComplianceGrid searchParams={searchParams} />
</Suspense>
</>
);
}
const SSRComplianceGrid = async ({ searchParams }: searchParamsProps) => {
const page = searchParams.page ? parseInt(searchParams.page) : 1;
const compliancesData = await getCompliance({ page });
const [compliances] = await Promise.all([compliancesData]);
if (compliances?.errors) redirect("/compliance");
return (
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 xl:grid-cols-3 3xl:grid-cols-4">
{compliances.compliance?.data.map((compliance: any) => (
<ComplianceCard
key={compliance.id}
title={compliance.attributes.title}
passingRequirements={compliance.attributes.passingRequirements}
totalRequirements={compliance.attributes.totalRequirements}
prevPassingRequirements={
compliance.lastScan.attributes.passingRequirements
}
prevTotalRequirements={
compliance.lastScan.attributes.totalRequirements
}
/>
))}
</div>
);
};
+10
View File
@@ -0,0 +1,10 @@
import { NextResponse } from "next/server";
import data from "../../../dataCompliance.json";
export async function GET() {
// Simulate fetching data with a delay
await new Promise((resolve) => setTimeout(resolve, 2000));
return NextResponse.json({ compliance: data });
}
+85
View File
@@ -0,0 +1,85 @@
import { Card, CardBody, Progress } from "@nextui-org/react";
import Image from "next/image";
import React from "react";
import { getComplianceIcon } from "../icons";
interface ComplianceCardProps {
title: string;
passingRequirements: number;
totalRequirements: number;
prevPassingRequirements: number;
prevTotalRequirements: number;
}
export const ComplianceCard: React.FC<ComplianceCardProps> = ({
title,
passingRequirements,
totalRequirements,
prevPassingRequirements,
prevTotalRequirements,
}) => {
const ratingPercentage = Math.floor(
(passingRequirements / totalRequirements) * 100,
);
const prevRatingPercentage = Math.floor(
(prevPassingRequirements / prevTotalRequirements) * 100,
);
const getScanChange = () => {
const scanDifference = ratingPercentage - prevRatingPercentage;
if (scanDifference < 0 && scanDifference <= -1) {
return `${scanDifference}% from last scan`;
}
if (scanDifference > 0 && scanDifference >= 1) {
return `+${scanDifference}% from last scan`;
}
return "No change from last scan";
};
const getRatingColor = (ratingPercentage: number) => {
if (ratingPercentage <= 10) {
return "danger";
}
if (ratingPercentage <= 40) {
return "warning";
}
return "success";
};
return (
<Card fullWidth isPressable isHoverable shadow="sm">
<CardBody className="flex flex-row items-center space-x-4 justify-between">
<div className="flex space-x-4 items-center w-full">
<Image
src={getComplianceIcon(title)}
alt={`${title} logo`}
className="rounded-md p-1 border-gray-300 border-1 bg-white object-contain h-10 w-10 min-w-10"
/>
<div className="flex flex-col w-full">
<h4 className="font-bold text-md 3xl:text-lg leading-5">{title}</h4>
<Progress
label="Your Rating:"
size="sm"
aria-label="Your Rating"
value={ratingPercentage}
showValueLabel={true}
className="mt-2 font-semibold"
color={getRatingColor(ratingPercentage)}
/>
<div className="flex justify-between mt-2">
<small>
<span className="font-semibold mr-1">
{passingRequirements} / {totalRequirements}
</span>
Passing Requirements
</small>
<small>{getScanChange()}</small>
</div>
</div>
</div>
</CardBody>
</Card>
);
};
@@ -0,0 +1,18 @@
import { Card, Skeleton } from "@nextui-org/react";
import React from "react";
export const ComplianceSkeletonGrid = () => {
return (
<Card className="w-full h-fit p-4">
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3 3xl:grid-cols-4 gap-4">
{[...Array(28)].map((_, index) => (
<div key={index} className="flex flex-col space-y-4">
<Skeleton className="h-28 rounded-lg">
<div className="h-full bg-default-300"></div>
</Skeleton>
</div>
))}
</div>
</Card>
);
};
+2
View File
@@ -0,0 +1,2 @@
export * from "./ComplianceCard";
export * from "./ComplianceSkeletonGrid";
@@ -1,10 +1,20 @@
import { Checkbox } from "@nextui-org/react";
import React from "react";
export const CustomCheckboxMutedFindings = () => {
interface CustomCheckboxMutedFindingsProps {
mutedFindings?: boolean;
}
export const CustomCheckboxMutedFindings: React.FC<
CustomCheckboxMutedFindingsProps
> = ({ mutedFindings }) => {
return (
<Checkbox className="xl:-mt-8" size="md" color="danger">
Include Muted Findings
</Checkbox>
<>
{mutedFindings && (
<Checkbox className="xl:-mt-8" size="md" color="danger">
Include Muted Findings
</Checkbox>
)}
</>
);
};
+10 -2
View File
@@ -1,15 +1,23 @@
import React from "react";
import { CustomAccountSelection } from "./CustomAccountSelection";
import { CustomCheckboxMutedFindings } from "./CustomCheckboxMutedFindings";
import { CustomDatePicker } from "./CustomDatePicker";
import { CustomSelectProvider } from "./CustomSelectProvider";
export const FilterControls = () => {
interface FilterControlsProps {
mutedFindings?: boolean;
}
export const FilterControls: React.FC<FilterControlsProps> = ({
mutedFindings = true,
}) => {
return (
<div className="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-x-4 gap-y-4">
<CustomSelectProvider />
<CustomDatePicker />
<CustomAccountSelection />
<CustomCheckboxMutedFindings />
<CustomCheckboxMutedFindings mutedFindings={mutedFindings} />
</div>
);
};
@@ -0,0 +1,63 @@
import AWSLogo from "./aws.svg";
import CISLogo from "./cis.svg";
import CISALogo from "./cisa.svg";
import ENSLogo from "./ens.png";
import FedRAMPLogo from "./fedramp.svg";
import FFIECLogo from "./ffiec.svg";
import GDPRLogo from "./gdpr.svg";
import GxPLogo from "./gxp-aws.svg";
import HIPAALogo from "./hipaa.svg";
import ISOLogo from "./iso-27001.svg";
import MITRELogo from "./mitre-attack.svg";
import NISTLogo from "./nist.svg";
import PCILogo from "./pci-dss.svg";
import RBILogo from "./rbi.svg";
import SOC2Logo from "./soc2.svg";
export const getComplianceIcon = (complianceTitle: string) => {
if (complianceTitle.toLowerCase().includes("aws")) {
return AWSLogo;
}
if (complianceTitle.toLowerCase().includes("cisa")) {
return CISALogo;
}
if (complianceTitle.toLowerCase().includes("cis")) {
return CISLogo;
}
if (complianceTitle.toLowerCase().includes("ens")) {
return ENSLogo;
}
if (complianceTitle.toLowerCase().includes("ffiec")) {
return FFIECLogo;
}
if (complianceTitle.toLowerCase().includes("fedramp")) {
return FedRAMPLogo;
}
if (complianceTitle.toLowerCase().includes("gdpr")) {
return GDPRLogo;
}
if (complianceTitle.toLowerCase().includes("gxp")) {
return GxPLogo;
}
if (complianceTitle.toLowerCase().includes("hipaa")) {
return HIPAALogo;
}
if (complianceTitle.toLowerCase().includes("iso")) {
return ISOLogo;
}
if (complianceTitle.toLowerCase().includes("mitre")) {
return MITRELogo;
}
if (complianceTitle.toLowerCase().includes("nist")) {
return NISTLogo;
}
if (complianceTitle.toLowerCase().includes("pci")) {
return PCILogo;
}
if (complianceTitle.toLowerCase().includes("rbi")) {
return RBILogo;
}
if (complianceTitle.toLowerCase().includes("soc2")) {
return SOC2Logo;
}
};
+38
View File
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 304 182" style="enable-background:new 0 0 304 182;" xml:space="preserve">
<style type="text/css">
.st0{fill:#252F3E;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9900;}
</style>
<g>
<path class="st0" d="M86.4,66.4c0,3.7,0.4,6.7,1.1,8.9c0.8,2.2,1.8,4.6,3.2,7.2c0.5,0.8,0.7,1.6,0.7,2.3c0,1-0.6,2-1.9,3l-6.3,4.2
c-0.9,0.6-1.8,0.9-2.6,0.9c-1,0-2-0.5-3-1.4C76.2,90,75,88.4,74,86.8c-1-1.7-2-3.6-3.1-5.9c-7.8,9.2-17.6,13.8-29.4,13.8
c-8.4,0-15.1-2.4-20-7.2c-4.9-4.8-7.4-11.2-7.4-19.2c0-8.5,3-15.4,9.1-20.6c6.1-5.2,14.2-7.8,24.5-7.8c3.4,0,6.9,0.3,10.6,0.8
c3.7,0.5,7.5,1.3,11.5,2.2v-7.3c0-7.6-1.6-12.9-4.7-16c-3.2-3.1-8.6-4.6-16.3-4.6c-3.5,0-7.1,0.4-10.8,1.3c-3.7,0.9-7.3,2-10.8,3.4
c-1.6,0.7-2.8,1.1-3.5,1.3c-0.7,0.2-1.2,0.3-1.6,0.3c-1.4,0-2.1-1-2.1-3.1v-4.9c0-1.6,0.2-2.8,0.7-3.5c0.5-0.7,1.4-1.4,2.8-2.1
c3.5-1.8,7.7-3.3,12.6-4.5c4.9-1.3,10.1-1.9,15.6-1.9c11.9,0,20.6,2.7,26.2,8.1c5.5,5.4,8.3,13.6,8.3,24.6V66.4z M45.8,81.6
c3.3,0,6.7-0.6,10.3-1.8c3.6-1.2,6.8-3.4,9.5-6.4c1.6-1.9,2.8-4,3.4-6.4c0.6-2.4,1-5.3,1-8.7v-4.2c-2.9-0.7-6-1.3-9.2-1.7
c-3.2-0.4-6.3-0.6-9.4-0.6c-6.7,0-11.6,1.3-14.9,4c-3.3,2.7-4.9,6.5-4.9,11.5c0,4.7,1.2,8.2,3.7,10.6
C37.7,80.4,41.2,81.6,45.8,81.6z M126.1,92.4c-1.8,0-3-0.3-3.8-1c-0.8-0.6-1.5-2-2.1-3.9L96.7,10.2c-0.6-2-0.9-3.3-0.9-4
c0-1.6,0.8-2.5,2.4-2.5h9.8c1.9,0,3.2,0.3,3.9,1c0.8,0.6,1.4,2,2,3.9l16.8,66.2l15.6-66.2c0.5-2,1.1-3.3,1.9-3.9c0.8-0.6,2.2-1,4-1
h8c1.9,0,3.2,0.3,4,1c0.8,0.6,1.5,2,1.9,3.9l15.8,67l17.3-67c0.6-2,1.3-3.3,2-3.9c0.8-0.6,2.1-1,3.9-1h9.3c1.6,0,2.5,0.8,2.5,2.5
c0,0.5-0.1,1-0.2,1.6c-0.1,0.6-0.3,1.4-0.7,2.5l-24.1,77.3c-0.6,2-1.3,3.3-2.1,3.9c-0.8,0.6-2.1,1-3.8,1h-8.6c-1.9,0-3.2-0.3-4-1
c-0.8-0.7-1.5-2-1.9-4L156,23l-15.4,64.4c-0.5,2-1.1,3.3-1.9,4c-0.8,0.7-2.2,1-4,1H126.1z M254.6,95.1c-5.2,0-10.4-0.6-15.4-1.8
c-5-1.2-8.9-2.5-11.5-4c-1.6-0.9-2.7-1.9-3.1-2.8c-0.4-0.9-0.6-1.9-0.6-2.8v-5.1c0-2.1,0.8-3.1,2.3-3.1c0.6,0,1.2,0.1,1.8,0.3
c0.6,0.2,1.5,0.6,2.5,1c3.4,1.5,7.1,2.7,11,3.5c4,0.8,7.9,1.2,11.9,1.2c6.3,0,11.2-1.1,14.6-3.3c3.4-2.2,5.2-5.4,5.2-9.5
c0-2.8-0.9-5.1-2.7-7c-1.8-1.9-5.2-3.6-10.1-5.2L246,52c-7.3-2.3-12.7-5.7-16-10.2c-3.3-4.4-5-9.3-5-14.5c0-4.2,0.9-7.9,2.7-11.1
c1.8-3.2,4.2-6,7.2-8.2c3-2.3,6.4-4,10.4-5.2c4-1.2,8.2-1.7,12.6-1.7c2.2,0,4.5,0.1,6.7,0.4c2.3,0.3,4.4,0.7,6.5,1.1
c2,0.5,3.9,1,5.7,1.6c1.8,0.6,3.2,1.2,4.2,1.8c1.4,0.8,2.4,1.6,3,2.5c0.6,0.8,0.9,1.9,0.9,3.3v4.7c0,2.1-0.8,3.2-2.3,3.2
c-0.8,0-2.1-0.4-3.8-1.2c-5.7-2.6-12.1-3.9-19.2-3.9c-5.7,0-10.2,0.9-13.3,2.8c-3.1,1.9-4.7,4.8-4.7,8.9c0,2.8,1,5.2,3,7.1
c2,1.9,5.7,3.8,11,5.5l14.2,4.5c7.2,2.3,12.4,5.5,15.5,9.6c3.1,4.1,4.6,8.8,4.6,14c0,4.3-0.9,8.2-2.6,11.6
c-1.8,3.4-4.2,6.4-7.3,8.8c-3.1,2.5-6.8,4.3-11.1,5.6C264.4,94.4,259.7,95.1,254.6,95.1z"/>
<g>
<path class="st1" d="M273.5,143.7c-32.9,24.3-80.7,37.2-121.8,37.2c-57.6,0-109.5-21.3-148.7-56.7c-3.1-2.8-0.3-6.6,3.4-4.4
c42.4,24.6,94.7,39.5,148.8,39.5c36.5,0,76.6-7.6,113.5-23.2C274.2,133.6,278.9,139.7,273.5,143.7z"/>
<path class="st1" d="M287.2,128.1c-4.2-5.4-27.8-2.6-38.5-1.3c-3.2,0.4-3.7-2.4-0.8-4.5c18.8-13.2,49.7-9.4,53.3-5
c3.6,4.5-1,35.4-18.6,50.2c-2.7,2.3-5.3,1.1-4.1-1.9C282.5,155.7,291.4,133.4,287.2,128.1z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 128 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 47 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 164 KiB

+455
View File
@@ -0,0 +1,455 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0.00 0.00 100.00 100.00">
<g stroke-width="2.00" fill="none" stroke-linecap="butt">
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 48.23 60.97
L 43.12 67.44
Q 42.76 67.89 42.23 67.66
C 36.78 65.22 31.94 71.81 36.22 76.09
Q 38.02 77.89 40.38 77.56
C 43.18 77.18 45.96 74.47 45.02 71.42
Q 44.65 70.21 44.02 69.09
Q 43.75 68.62 44.08 68.20
L 49.24 61.63
Q 49.56 61.22 50.06 61.39
Q 61.24 65.17 65.37 53.86
Q 65.55 53.39 66.05 53.37
L 76.75 53.00
Q 77.69 52.96 77.90 53.88
C 79.90 62.49 90.68 65.73 96.38 58.39
C 101.86 51.31 96.65 39.99 86.93 41.28
Q 78.93 42.35 77.60 51.24
Q 77.53 51.70 77.05 51.72
L 66.20 52.15
Q 65.56 52.17 65.46 51.54
C 64.95 48.35 64.30 46.30 62.01 43.93
Q 61.60 43.50 61.97 43.03
L 67.61 35.97
Q 68.00 35.49 68.56 35.76
C 75.35 39.06 79.78 29.09 73.12 26.29
C 68.17 24.21 64.34 29.50 66.80 34.16
Q 67.05 34.64 66.71 35.07
L 61.01 42.25
Q 60.65 42.71 60.11 42.47
Q 51.98 38.79 46.37 45.44
Q 46.00 45.87 45.52 45.57
L 34.41 38.51
Q 33.89 38.18 34.05 37.59
C 34.32 36.55 34.82 35.64 34.96 34.55
C 36.06 25.73 26.63 19.00 18.95 24.03
C 13.82 27.39 12.49 33.80 16.12 39.22
Q 16.46 39.73 16.03 40.16
L 9.27 46.81
A 0.72 0.72 0.0 0 1 8.50 46.97
C -0.18 43.45 -2.23 55.00 4.29 56.50
C 9.15 57.63 12.10 52.98 9.95 48.66
Q 9.69 48.12 10.11 47.71
L 16.76 41.14
Q 17.16 40.74 17.63 41.07
Q 25.88 46.89 32.97 39.48
Q 33.23 39.21 33.55 39.41
L 44.90 46.63
Q 45.31 46.89 45.26 47.37
Q 45.24 47.67 45.08 47.94
Q 44.82 48.39 44.71 48.90
Q 43.26 55.44 48.15 59.96
Q 48.66 60.43 48.23 60.97"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 34.25 32.97
A 9.72 9.72 0.0 0 0 24.53 23.25
A 9.72 9.72 0.0 0 0 14.81 32.97
A 9.72 9.72 0.0 0 0 24.53 42.69
A 9.72 9.72 0.0 0 0 34.25 32.97"
/>
<path stroke="#825212" vector-effect="non-scaling-stroke" d="
M 75.76 31.11
A 4.63 4.63 0.0 0 0 71.13 26.48
A 4.63 4.63 0.0 0 0 66.50 31.11
A 4.63 4.63 0.0 0 0 71.13 35.74
A 4.63 4.63 0.0 0 0 75.76 31.11"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 64.59 51.77
A 9.72 9.72 0.0 0 0 54.87 42.05
A 9.72 9.72 0.0 0 0 45.15 51.77
A 9.72 9.72 0.0 0 0 54.87 61.49
A 9.72 9.72 0.0 0 0 64.59 51.77"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 97.88 51.77
A 9.71 9.71 0.0 0 0 88.17 42.06
A 9.71 9.71 0.0 0 0 78.46 51.77
A 9.71 9.71 0.0 0 0 88.17 61.48
A 9.71 9.71 0.0 0 0 97.88 51.77"
/>
<path stroke="#825212" vector-effect="non-scaling-stroke" d="
M 10.13 51.48
A 4.54 4.54 0.0 0 0 5.59 46.94
A 4.54 4.54 0.0 0 0 1.05 51.48
A 4.54 4.54 0.0 0 0 5.59 56.02
A 4.54 4.54 0.0 0 0 10.13 51.48"
/>
<path stroke="#825212" vector-effect="non-scaling-stroke" d="
M 44.56 72.32
A 4.65 4.65 0.0 0 0 39.91 67.67
A 4.65 4.65 0.0 0 0 35.26 72.32
A 4.65 4.65 0.0 0 0 39.91 76.97
A 4.65 4.65 0.0 0 0 44.56 72.32"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 25.04 30.94
Q 25.24 31.16 25.52 31.12
Q 27.86 30.86 25.89 29.54
Q 24.29 28.46 22.93 29.73
C 21.78 30.79 22.00 33.06 22.12 34.53
C 22.41 38.14 27.59 37.43 26.98 33.28
Q 26.89 32.71 26.33 32.57
Q 25.69 32.42 25.01 32.63
Q 23.86 32.99 24.83 33.70
Q 26.06 34.60 24.84 35.30
A 0.71 0.70 65.0 0 1 23.83 34.93
Q 23.12 33.02 23.74 31.22
Q 24.15 29.99 25.04 30.94"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 54.33 49.42
Q 54.00 48.76 53.41 48.45
Q 52.77 48.13 52.80 48.84
Q 52.83 49.81 53.56 50.51
Q 54.56 51.46 53.73 52.56
Q 53.08 53.43 52.75 54.46
Q 52.58 54.98 53.13 55.02
L 53.45 55.04
A 0.49 0.48 -80.1 0 0 53.94 54.69
Q 54.15 53.92 54.75 53.63
Q 55.16 53.44 55.32 53.86
Q 55.76 55.04 56.85 54.98
Q 57.42 54.94 57.12 54.44
L 55.71 52.11
Q 55.28 51.40 55.88 50.82
Q 56.63 50.12 57.00 49.11
A 0.44 0.43 18.4 0 0 56.71 48.54
L 56.40 48.45
A 0.55 0.55 0.0 0 0 55.75 48.74
Q 55.52 49.20 55.17 49.55
Q 54.66 50.06 54.33 49.42"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 87.99 52.73
C 92.09 52.99 91.31 46.51 86.30 47.93
Q 85.74 48.08 85.74 48.67
L 85.73 54.86
Q 85.73 55.74 86.61 55.65
L 86.93 55.62
A 0.51 0.50 85.5 0 0 87.39 55.07
L 87.27 53.45
Q 87.21 52.68 87.99 52.73"
/>
<path stroke="#848584" vector-effect="non-scaling-stroke" d="
M 87.98 51.33
L 88.46 51.24
Q 89.03 51.13 89.07 50.55
Q 89.12 49.66 88.34 49.29
Q 87.97 49.11 87.66 49.38
Q 87.04 49.92 87.23 50.84
Q 87.36 51.46 87.98 51.33"
/>
</g>
<path fill="#fefefe" d="
M 0.00 0.00
L 100.00 0.00
L 100.00 100.00
L 0.00 100.00
L 0.00 0.00
Z
M 48.23 60.97
L 43.12 67.44
Q 42.76 67.89 42.23 67.66
C 36.78 65.22 31.94 71.81 36.22 76.09
Q 38.02 77.89 40.38 77.56
C 43.18 77.18 45.96 74.47 45.02 71.42
Q 44.65 70.21 44.02 69.09
Q 43.75 68.62 44.08 68.20
L 49.24 61.63
Q 49.56 61.22 50.06 61.39
Q 61.24 65.17 65.37 53.86
Q 65.55 53.39 66.05 53.37
L 76.75 53.00
Q 77.69 52.96 77.90 53.88
C 79.90 62.49 90.68 65.73 96.38 58.39
C 101.86 51.31 96.65 39.99 86.93 41.28
Q 78.93 42.35 77.60 51.24
Q 77.53 51.70 77.05 51.72
L 66.20 52.15
Q 65.56 52.17 65.46 51.54
C 64.95 48.35 64.30 46.30 62.01 43.93
Q 61.60 43.50 61.97 43.03
L 67.61 35.97
Q 68.00 35.49 68.56 35.76
C 75.35 39.06 79.78 29.09 73.12 26.29
C 68.17 24.21 64.34 29.50 66.80 34.16
Q 67.05 34.64 66.71 35.07
L 61.01 42.25
Q 60.65 42.71 60.11 42.47
Q 51.98 38.79 46.37 45.44
Q 46.00 45.87 45.52 45.57
L 34.41 38.51
Q 33.89 38.18 34.05 37.59
C 34.32 36.55 34.82 35.64 34.96 34.55
C 36.06 25.73 26.63 19.00 18.95 24.03
C 13.82 27.39 12.49 33.80 16.12 39.22
Q 16.46 39.73 16.03 40.16
L 9.27 46.81
A 0.72 0.72 0.0 0 1 8.50 46.97
C -0.18 43.45 -2.23 55.00 4.29 56.50
C 9.15 57.63 12.10 52.98 9.95 48.66
Q 9.69 48.12 10.11 47.71
L 16.76 41.14
Q 17.16 40.74 17.63 41.07
Q 25.88 46.89 32.97 39.48
Q 33.23 39.21 33.55 39.41
L 44.90 46.63
Q 45.31 46.89 45.26 47.37
Q 45.24 47.67 45.08 47.94
Q 44.82 48.39 44.71 48.90
Q 43.26 55.44 48.15 59.96
Q 48.66 60.43 48.23 60.97
Z"
/>
<path fill="#0a0b0a" d="
M 48.15 59.96
Q 43.26 55.44 44.71 48.90
Q 44.82 48.39 45.08 47.94
Q 45.24 47.67 45.26 47.37
Q 45.31 46.89 44.90 46.63
L 33.55 39.41
Q 33.23 39.21 32.97 39.48
Q 25.88 46.89 17.63 41.07
Q 17.16 40.74 16.76 41.14
L 10.11 47.71
Q 9.69 48.12 9.95 48.66
C 12.10 52.98 9.15 57.63 4.29 56.50
C -2.23 55.00 -0.18 43.45 8.50 46.97
A 0.72 0.72 0.0 0 0 9.27 46.81
L 16.03 40.16
Q 16.46 39.73 16.12 39.22
C 12.49 33.80 13.82 27.39 18.95 24.03
C 26.63 19.00 36.06 25.73 34.96 34.55
C 34.82 35.64 34.32 36.55 34.05 37.59
Q 33.89 38.18 34.41 38.51
L 45.52 45.57
Q 46.00 45.87 46.37 45.44
Q 51.98 38.79 60.11 42.47
Q 60.65 42.71 61.01 42.25
L 66.71 35.07
Q 67.05 34.64 66.80 34.16
C 64.34 29.50 68.17 24.21 73.12 26.29
C 79.78 29.09 75.35 39.06 68.56 35.76
Q 68.00 35.49 67.61 35.97
L 61.97 43.03
Q 61.60 43.50 62.01 43.93
C 64.30 46.30 64.95 48.35 65.46 51.54
Q 65.56 52.17 66.20 52.15
L 77.05 51.72
Q 77.53 51.70 77.60 51.24
Q 78.93 42.35 86.93 41.28
C 96.65 39.99 101.86 51.31 96.38 58.39
C 90.68 65.73 79.90 62.49 77.90 53.88
Q 77.69 52.96 76.75 53.00
L 66.05 53.37
Q 65.55 53.39 65.37 53.86
Q 61.24 65.17 50.06 61.39
Q 49.56 61.22 49.24 61.63
L 44.08 68.20
Q 43.75 68.62 44.02 69.09
Q 44.65 70.21 45.02 71.42
C 45.96 74.47 43.18 77.18 40.38 77.56
Q 38.02 77.89 36.22 76.09
C 31.94 71.81 36.78 65.22 42.23 67.66
Q 42.76 67.89 43.12 67.44
L 48.23 60.97
Q 48.66 60.43 48.15 59.96
Z
M 34.25 32.97
A 9.72 9.72 0.0 0 0 24.53 23.25
A 9.72 9.72 0.0 0 0 14.81 32.97
A 9.72 9.72 0.0 0 0 24.53 42.69
A 9.72 9.72 0.0 0 0 34.25 32.97
Z
M 75.76 31.11
A 4.63 4.63 0.0 0 0 71.13 26.48
A 4.63 4.63 0.0 0 0 66.50 31.11
A 4.63 4.63 0.0 0 0 71.13 35.74
A 4.63 4.63 0.0 0 0 75.76 31.11
Z
M 64.59 51.77
A 9.72 9.72 0.0 0 0 54.87 42.05
A 9.72 9.72 0.0 0 0 45.15 51.77
A 9.72 9.72 0.0 0 0 54.87 61.49
A 9.72 9.72 0.0 0 0 64.59 51.77
Z
M 97.88 51.77
A 9.71 9.71 0.0 0 0 88.17 42.06
A 9.71 9.71 0.0 0 0 78.46 51.77
A 9.71 9.71 0.0 0 0 88.17 61.48
A 9.71 9.71 0.0 0 0 97.88 51.77
Z
M 10.13 51.48
A 4.54 4.54 0.0 0 0 5.59 46.94
A 4.54 4.54 0.0 0 0 1.05 51.48
A 4.54 4.54 0.0 0 0 5.59 56.02
A 4.54 4.54 0.0 0 0 10.13 51.48
Z
M 44.56 72.32
A 4.65 4.65 0.0 0 0 39.91 67.67
A 4.65 4.65 0.0 0 0 35.26 72.32
A 4.65 4.65 0.0 0 0 39.91 76.97
A 4.65 4.65 0.0 0 0 44.56 72.32
Z"
/>
<path fill="#fefefe" d="
M 34.25 32.97
A 9.72 9.72 0.0 0 1 24.53 42.69
A 9.72 9.72 0.0 0 1 14.81 32.97
A 9.72 9.72 0.0 0 1 24.53 23.25
A 9.72 9.72 0.0 0 1 34.25 32.97
Z
M 25.04 30.94
Q 25.24 31.16 25.52 31.12
Q 27.86 30.86 25.89 29.54
Q 24.29 28.46 22.93 29.73
C 21.78 30.79 22.00 33.06 22.12 34.53
C 22.41 38.14 27.59 37.43 26.98 33.28
Q 26.89 32.71 26.33 32.57
Q 25.69 32.42 25.01 32.63
Q 23.86 32.99 24.83 33.70
Q 26.06 34.60 24.84 35.30
A 0.71 0.70 65.0 0 1 23.83 34.93
Q 23.12 33.02 23.74 31.22
Q 24.15 29.99 25.04 30.94
Z"
/>
<circle fill="#f9981a" cx="71.13" cy="31.11" r="4.63"/>
<path fill="#0a0b0a" d="
M 23.74 31.22
Q 23.12 33.02 23.83 34.93
A 0.71 0.70 65.0 0 0 24.84 35.30
Q 26.06 34.60 24.83 33.70
Q 23.86 32.99 25.01 32.63
Q 25.69 32.42 26.33 32.57
Q 26.89 32.71 26.98 33.28
C 27.59 37.43 22.41 38.14 22.12 34.53
C 22.00 33.06 21.78 30.79 22.93 29.73
Q 24.29 28.46 25.89 29.54
Q 27.86 30.86 25.52 31.12
Q 25.24 31.16 25.04 30.94
Q 24.15 29.99 23.74 31.22
Z"
/>
<path fill="#fefefe" d="
M 64.59 51.77
A 9.72 9.72 0.0 0 1 54.87 61.49
A 9.72 9.72 0.0 0 1 45.15 51.77
A 9.72 9.72 0.0 0 1 54.87 42.05
A 9.72 9.72 0.0 0 1 64.59 51.77
Z
M 54.33 49.42
Q 54.00 48.76 53.41 48.45
Q 52.77 48.13 52.80 48.84
Q 52.83 49.81 53.56 50.51
Q 54.56 51.46 53.73 52.56
Q 53.08 53.43 52.75 54.46
Q 52.58 54.98 53.13 55.02
L 53.45 55.04
A 0.49 0.48 -80.1 0 0 53.94 54.69
Q 54.15 53.92 54.75 53.63
Q 55.16 53.44 55.32 53.86
Q 55.76 55.04 56.85 54.98
Q 57.42 54.94 57.12 54.44
L 55.71 52.11
Q 55.28 51.40 55.88 50.82
Q 56.63 50.12 57.00 49.11
A 0.44 0.43 18.4 0 0 56.71 48.54
L 56.40 48.45
A 0.55 0.55 0.0 0 0 55.75 48.74
Q 55.52 49.20 55.17 49.55
Q 54.66 50.06 54.33 49.42
Z"
/>
<path fill="#fefefe" d="
M 97.88 51.77
A 9.71 9.71 0.0 0 1 88.17 61.48
A 9.71 9.71 0.0 0 1 78.46 51.77
A 9.71 9.71 0.0 0 1 88.17 42.06
A 9.71 9.71 0.0 0 1 97.88 51.77
Z
M 87.99 52.73
C 92.09 52.99 91.31 46.51 86.30 47.93
Q 85.74 48.08 85.74 48.67
L 85.73 54.86
Q 85.73 55.74 86.61 55.65
L 86.93 55.62
A 0.51 0.50 85.5 0 0 87.39 55.07
L 87.27 53.45
Q 87.21 52.68 87.99 52.73
Z"
/>
<circle fill="#f9981a" cx="5.59" cy="51.48" r="4.54"/>
<path fill="#0a0b0a" d="
M 87.27 53.45
L 87.39 55.07
A 0.51 0.50 85.5 0 1 86.93 55.62
L 86.61 55.65
Q 85.73 55.74 85.73 54.86
L 85.74 48.67
Q 85.74 48.08 86.30 47.93
C 91.31 46.51 92.09 52.99 87.99 52.73
Q 87.21 52.68 87.27 53.45
Z
M 87.98 51.33
L 88.46 51.24
Q 89.03 51.13 89.07 50.55
Q 89.12 49.66 88.34 49.29
Q 87.97 49.11 87.66 49.38
Q 87.04 49.92 87.23 50.84
Q 87.36 51.46 87.98 51.33
Z"
/>
<path fill="#0a0b0a" d="
M 55.17 49.55
Q 55.52 49.20 55.75 48.74
A 0.55 0.55 0.0 0 1 56.40 48.45
L 56.71 48.54
A 0.44 0.43 18.4 0 1 57.00 49.11
Q 56.63 50.12 55.88 50.82
Q 55.28 51.40 55.71 52.11
L 57.12 54.44
Q 57.42 54.94 56.85 54.98
Q 55.76 55.04 55.32 53.86
Q 55.16 53.44 54.75 53.63
Q 54.15 53.92 53.94 54.69
A 0.49 0.48 -80.1 0 1 53.45 55.04
L 53.13 55.02
Q 52.58 54.98 52.75 54.46
Q 53.08 53.43 53.73 52.56
Q 54.56 51.46 53.56 50.51
Q 52.83 49.81 52.80 48.84
Q 52.77 48.13 53.41 48.45
Q 54.00 48.76 54.33 49.42
Q 54.66 50.06 55.17 49.55
Z"
/>
<path fill="#fefefe" d="
M 87.98 51.33
Q 87.36 51.46 87.23 50.84
Q 87.04 49.92 87.66 49.38
Q 87.97 49.11 88.34 49.29
Q 89.12 49.66 89.07 50.55
Q 89.03 51.13 88.46 51.24
L 87.98 51.33
Z"
/>
<circle fill="#f9981a" cx="39.91" cy="72.32" r="4.65"/>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 139 KiB

@@ -0,0 +1,315 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0.00 0.00 500.00 300.00">
<path fill="#016299" d="
M 158.03 92.18
A 0.27 0.26 -50.8 0 0 157.56 92.23
L 133.49 153.75
Q 133.29 154.26 132.74 154.26
L 117.81 154.27
Q 117.04 154.27 116.75 153.55
L 93.39 93.85
Q 92.38 91.25 91.83 93.99
L 79.83 153.77
Q 79.73 154.26 79.23 154.26
L 58.72 154.26
A 0.45 0.45 0.0 0 1 58.28 153.72
L 78.16 53.57
Q 78.22 53.25 78.55 53.25
L 98.56 53.25
Q 99.17 53.25 99.41 53.82
L 124.60 114.49
Q 125.30 116.18 125.99 114.48
L 151.01 53.62
A 0.59 0.59 0.0 0 1 151.56 53.25
L 171.54 53.25
Q 172.10 53.25 172.21 53.80
L 192.72 153.73
A 0.47 0.46 -5.6 0 1 192.26 154.28
L 170.98 154.26
A 0.48 0.48 0.0 0 1 170.51 153.88
Q 164.38 123.38 158.25 92.76
Q 158.18 92.40 158.03 92.18
Z"
/>
<rect fill="#016299" x="197.86" y="53.25" width="20.38" height="101.02" rx="0.38"/>
<path fill="#016299" d="
M 248.05 70.24
A 0.57 0.57 0.0 0 0 247.49 69.57
L 225.05 69.62
Q 224.49 69.62 224.49 69.05
L 224.49 53.50
Q 224.49 53.25 224.75 53.25
L 291.20 53.25
A 0.46 0.45 -0.0 0 1 291.66 53.70
L 291.69 69.02
A 0.58 0.58 0.0 0 1 291.11 69.60
L 268.55 69.58
Q 267.89 69.58 267.89 70.24
L 267.87 153.71
Q 267.87 154.29 267.29 154.29
L 248.53 154.26
Q 247.99 154.26 247.98 153.71
Q 247.90 113.33 247.96 71.39
Q 247.96 70.81 248.05 70.24
Z"
/>
<path fill="#016299" d="
M 378.18 151.96
L 378.20 53.90
A 0.65 0.65 0.0 0 1 378.85 53.25
L 439.77 53.25
Q 440.30 53.25 440.30 53.77
L 440.30 69.02
Q 440.30 69.59 439.73 69.59
L 399.08 69.59
Q 398.49 69.59 398.49 70.17
L 398.49 95.03
A 0.54 0.54 0.0 0 0 399.03 95.57
L 439.23 95.55
A 0.69 0.68 -0.0 0 1 439.92 96.23
L 439.95 111.28
A 0.73 0.72 -89.6 0 1 439.22 112.01
L 398.92 111.98
A 0.43 0.43 0.0 0 0 398.49 112.41
L 398.49 137.15
A 0.65 0.65 0.0 0 0 399.15 137.80
L 439.78 137.76
Q 440.29 137.76 440.29 138.28
L 440.30 153.73
Q 440.30 154.27 439.76 154.27
L 354.77 154.26
Q 354.04 154.26 353.59 153.69
L 322.21 113.37
Q 321.59 112.58 321.59 111.57
L 321.58 94.93
Q 321.58 94.33 322.18 94.31
Q 330.93 94.07 341.46 94.08
C 347.32 94.08 353.98 90.87 355.04 84.56
C 356.49 76.04 350.55 70.28 342.17 70.27
Q 330.13 70.26 318.50 70.23
A 0.36 0.36 0.0 0 0 318.14 70.59
L 318.14 153.69
Q 318.14 154.28 317.56 154.28
L 298.50 154.26
A 0.52 0.51 0.6 0 1 297.99 153.75
L 297.98 53.63
Q 297.98 53.20 298.41 53.21
Q 318.18 53.37 340.34 53.16
Q 348.47 53.08 354.39 54.64
C 363.38 57.00 372.60 64.63 374.49 74.23
C 376.35 83.66 375.47 94.49 368.51 101.41
Q 358.96 110.89 344.12 111.94
A 0.69 0.69 0.0 0 0 343.64 113.07
L 376.85 152.45
Q 378.18 154.02 378.18 151.96
Z"
/>
<path fill="#c64128" d="
M 230.30 202.72
C 225.79 198.17 222.44 192.50 223.68 186.06
Q 225.88 174.61 237.19 171.82
C 243.35 170.31 250.25 172.62 254.56 177.46
C 260.15 183.76 260.08 193.76 254.44 200.16
Q 251.26 203.77 246.86 205.76
A 0.90 0.90 0.0 0 0 246.56 207.18
L 254.93 216.61
A 0.69 0.68 39.0 0 0 256.04 216.50
L 263.39 203.88
Q 263.51 203.67 263.76 203.67
L 274.57 203.66
Q 274.82 203.66 274.70 203.88
L 263.00 224.53
Q 262.72 225.02 263.10 225.44
L 275.42 238.78
A 0.38 0.38 0.0 0 1 275.39 239.32
L 268.56 245.42
A 0.45 0.44 47.3 0 1 267.94 245.39
L 258.30 234.72
A 0.78 0.78 0.0 0 0 257.06 234.82
C 251.41 243.84 242.45 248.65 231.77 245.21
C 216.95 240.42 210.30 223.12 220.67 210.78
C 223.18 207.79 226.82 205.56 230.20 203.52
Q 230.76 203.18 230.30 202.72
Z
M 248.91 190.31
C 249.51 185.51 247.25 181.73 242.19 181.06
C 238.82 180.60 235.04 182.40 233.78 185.57
C 231.59 191.08 235.32 195.52 239.43 199.17
Q 239.81 199.50 240.25 199.27
C 244.10 197.30 248.33 195.00 248.91 190.31
Z
M 248.77 224.33
L 238.93 213.60
A 4.22 4.22 0.0 0 0 232.97 213.34
L 229.66 216.37
A 11.43 11.41 47.5 0 0 228.97 232.50
L 229.06 232.61
A 11.43 11.41 47.5 0 0 245.19 233.33
L 248.50 230.29
A 4.22 4.22 0.0 0 0 248.77 224.33
Z"
/>
<path fill="#c64128" d="
M 316.53 236.21
C 325.70 237.60 333.15 234.06 339.52 227.34
Q 339.84 227.00 340.30 227.00
L 351.79 226.98
Q 352.78 226.97 352.26 227.81
Q 343.43 242.15 327.68 245.58
C 306.15 250.26 286.42 234.20 283.32 213.61
C 279.76 189.93 301.11 168.47 324.78 171.76
Q 343.44 174.35 352.65 190.63
Q 352.99 191.23 352.30 191.23
L 341.44 191.23
A 2.35 2.32 -21.3 0 1 339.73 190.49
C 330.13 180.10 315.42 177.80 304.03 186.97
Q 295.74 193.64 294.02 204.40
C 291.70 218.96 301.67 233.95 316.53 236.21
Z"
/>
<path fill="#c64128" d="
M 372.00 212.51
Q 373.04 213.66 373.04 215.17
Q 373.03 229.75 373.10 244.32
Q 373.10 244.93 372.49 244.93
L 362.91 244.88
A 0.59 0.58 -90.0 0 1 362.33 244.29
L 362.33 173.44
A 0.48 0.48 0.0 0 1 362.81 172.96
L 372.70 172.95
Q 373.06 172.95 373.06 173.31
Q 373.13 184.59 372.84 195.52
C 372.74 198.97 373.39 202.37 373.05 205.87
Q 372.81 208.40 374.27 206.32
Q 378.12 200.83 382.18 195.74
Q 386.47 190.36 390.19 185.21
Q 394.58 179.13 398.83 173.21
Q 398.94 173.06 399.12 173.04
Q 400.52 172.93 411.21 172.92
A 0.05 0.04 -69.3 0 1 411.24 173.00
Q 397.61 190.69 384.61 207.81
A 0.78 0.77 45.4 0 0 384.61 208.74
Q 397.76 226.47 411.39 244.88
A 0.04 0.04 0.0 0 1 411.36 244.94
Q 399.76 244.99 399.30 244.89
Q 399.13 244.85 399.03 244.72
Q 387.57 228.88 375.97 212.45
Q 375.60 211.92 374.96 211.91
L 372.29 211.86
A 0.39 0.39 0.0 0 0 372.00 212.51
Z"
/>
<path fill="#c64128" d="
M 78.48 225.70
L 70.67 244.67
A 0.43 0.43 0.0 0 1 70.27 244.94
L 59.40 244.99
A 0.43 0.43 0.0 0 1 59.00 244.39
L 88.53 173.23
A 0.43 0.43 0.0 0 1 88.93 172.97
L 97.05 172.95
A 0.43 0.43 0.0 0 1 97.45 173.21
L 127.21 244.41
A 0.43 0.43 0.0 0 1 126.81 245.01
L 115.90 244.93
A 0.43 0.43 0.0 0 1 115.50 244.67
L 107.65 225.68
A 0.43 0.43 0.0 0 0 107.25 225.41
L 78.88 225.43
A 0.43 0.43 0.0 0 0 78.48 225.70
Z
M 82.29 214.85
A 0.40 0.40 0.0 0 0 82.67 215.39
L 103.19 215.39
A 0.40 0.40 0.0 0 0 103.57 214.85
L 93.30 187.38
A 0.40 0.40 0.0 0 0 92.56 187.38
L 82.29 214.85
Z"
/>
<path fill="#c64128" d="
M 148.27 183.14
L 148.27 244.56
A 0.41 0.41 0.0 0 1 147.86 244.97
L 137.95 244.91
A 0.41 0.41 0.0 0 1 137.54 244.50
L 137.54 183.14
A 0.41 0.41 0.0 0 0 137.13 182.73
L 121.27 182.75
A 0.41 0.41 0.0 0 1 120.86 182.34
L 120.84 173.37
A 0.41 0.41 0.0 0 1 121.25 172.96
L 164.97 172.94
A 0.41 0.41 0.0 0 1 165.38 173.35
L 165.38 182.35
A 0.41 0.41 0.0 0 1 164.97 182.76
L 148.68 182.73
A 0.41 0.41 0.0 0 0 148.27 183.14
Z"
/>
<path fill="#c64128" d="
M 187.79 182.72
L 171.91 182.75
A 0.46 0.46 0.0 0 1 171.45 182.29
L 171.44 173.41
A 0.46 0.46 0.0 0 1 171.90 172.95
L 215.60 172.96
A 0.46 0.46 0.0 0 1 216.06 173.42
L 216.01 182.28
A 0.46 0.46 0.0 0 1 215.55 182.74
L 199.38 182.74
A 0.46 0.46 0.0 0 0 198.92 183.20
L 198.94 244.47
A 0.46 0.46 0.0 0 1 198.48 244.93
L 188.67 244.94
A 0.46 0.46 0.0 0 1 188.21 244.48
L 188.25 183.18
A 0.46 0.46 0.0 0 0 187.79 182.72
Z"
/>
<path fill="#c64128" d="
M 431.21 237.97
A 0.56 0.56 0.0 0 0 430.42 238.50
L 430.50 244.18
A 0.84 0.83 -87.3 0 1 429.57 245.03
L 429.02 244.97
A 0.94 0.93 3.7 0 1 428.18 244.02
L 428.39 234.99
A 0.60 0.59 -1.3 0 0 427.74 234.38
L 425.24 234.57
Q 424.82 234.60 424.83 235.01
L 424.97 243.97
Q 424.99 244.87 424.09 244.97
Q 423.71 245.01 423.62 245.02
Q 422.73 245.12 422.73 244.22
L 422.73 235.26
Q 422.73 234.54 422.01 234.52
L 420.93 234.50
Q 420.12 234.48 420.12 233.68
L 420.12 233.19
A 0.69 0.69 0.0 0 1 420.81 232.50
L 431.06 232.56
A 0.80 0.79 -8.4 0 1 431.82 233.12
Q 433.00 237.12 434.36 240.46
Q 434.90 241.81 435.37 240.43
L 437.85 233.10
Q 438.05 232.51 438.68 232.50
L 440.78 232.48
Q 441.33 232.48 441.33 233.03
L 441.25 244.31
A 0.70 0.69 -85.1 0 1 440.44 245.00
L 439.95 244.92
Q 438.74 244.72 438.85 243.50
Q 438.99 241.98 439.01 240.48
Q 439.01 240.00 438.70 239.61
Q 438.51 239.38 438.21 239.39
Q 437.55 239.41 437.35 240.03
L 436.04 244.05
A 1.26 1.25 -89.5 0 1 435.20 244.88
Q 434.04 245.23 433.63 244.13
Q 432.61 241.40 431.70 238.52
Q 431.57 238.12 431.21 237.97
Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 8.3 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M12.506 8.407C5.603 8.407 0 14.01 0 20.912l.097 34.74h11.117l-.097-23.1v-11.63a1.4 1.4 0 0 1 1.25-1.39c.047-.005.09 0 .14 0 .383 0 .73.157.98.408L42.653 51.93c2.342 2.35 5.523 3.668 8.84 3.665C58.397 55.594 64 49.99 64 43.088V8.35H52.883V43.14a1.39 1.39 0 0 1-1.39 1.337c-.368 0-.72-.147-.98-.408L21.347 12.07c-2.342-2.35-5.524-3.668-8.84-3.664z"/></svg>

After

Width:  |  Height:  |  Size: 426 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 547 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 174 KiB

+1
View File
@@ -1,3 +1,4 @@
export * from "./compliance/IconCompliance";
export * from "./Icons";
export * from "./prowler/ProwlerIcons";
export * from "./services/IconServices";
+438
View File
@@ -0,0 +1,438 @@
{
"links": {
"first": "http://localhost:8080/api/v1/compliance?page%5Bnumber%5D=1",
"last": "http://localhost:8080/api/v1/compliance?page%5Bnumber%5D=1",
"next": null,
"prev": null
},
"data": [
{
"id": "001",
"attributes": {
"title": "AWS Account Security Onboarding",
"passingRequirements": 28,
"totalRequirements": 83,
"regions": ["us-east-1", "us-east-2"]
},
"lastScan": {
"attributes": {
"passingRequirements": 28,
"totalRequirements": 83
}
}
},
{
"id": "002",
"attributes": {
"title": "AWS Audit Manager Control Tower Guardrails",
"passingRequirements": 10,
"totalRequirements": 14,
"regions": ["us-west-1", "us-west-2"]
},
"lastScan": {
"attributes": {
"passingRequirements": 14,
"totalRequirements": 14
}
}
},
{
"id": "003",
"attributes": {
"title": "AWS Foundational Security Best Practices",
"passingRequirements": 22,
"totalRequirements": 37,
"regions": ["eu-west-1", "eu-west-2"]
},
"lastScan": {
"attributes": {
"passingRequirements": 22,
"totalRequirements": 37
}
}
},
{
"id": "004",
"attributes": {
"title": "AWS Foundational Technical Review",
"passingRequirements": 3,
"totalRequirements": 45,
"regions": ["ap-southeast-1", "ap-southeast-2"]
},
"lastScan": {
"attributes": {
"passingRequirements": 25,
"totalRequirements": 45
}
}
},
{
"id": "005",
"attributes": {
"title": "AWS Well Architected Framework Reliability Pillar",
"passingRequirements": 2,
"totalRequirements": 3,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 0,
"totalRequirements": 3
}
}
},
{
"id": "006",
"attributes": {
"title": "AWS Well Architected Framework Security Pillar",
"passingRequirements": 19,
"totalRequirements": 57,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 24,
"totalRequirements": 57
}
}
},
{
"id": "007",
"attributes": {
"title": "CIS 1.4",
"passingRequirements": 43,
"totalRequirements": 58,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 40,
"totalRequirements": 58
}
}
},
{
"id": "008",
"attributes": {
"title": "CIS 1.5",
"passingRequirements": 48,
"totalRequirements": 63,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 50,
"totalRequirements": 63
}
}
},
{
"id": "009",
"attributes": {
"title": "CIS 2.0",
"passingRequirements": 47,
"totalRequirements": 64,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 64,
"totalRequirements": 64
}
}
},
{
"id": "010",
"attributes": {
"title": "CIS 3.0",
"passingRequirements": 45,
"totalRequirements": 62,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 48,
"totalRequirements": 62
}
}
},
{
"id": "011",
"attributes": {
"title": "CISA",
"passingRequirements": 4,
"totalRequirements": 16,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 4,
"totalRequirements": 16
}
}
},
{
"id": "012",
"attributes": {
"title": "ENS RD2022 Categoría ALTA",
"passingRequirements": 89,
"totalRequirements": 189,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 82,
"totalRequirements": 189
}
}
},
{
"id": "013",
"attributes": {
"title": "FFIEC",
"passingRequirements": 8,
"totalRequirements": 44,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 40,
"totalRequirements": 44
}
}
},
{
"id": "014",
"attributes": {
"title": "FedRAMP Low Revision 4",
"passingRequirements": 4,
"totalRequirements": 18,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 4,
"totalRequirements": 18
}
}
},
{
"id": "015",
"attributes": {
"title": "FedRamp Moderate Revision 4",
"passingRequirements": 11,
"totalRequirements": 64,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 28,
"totalRequirements": 64
}
}
},
{
"id": "016",
"attributes": {
"title": "GDPR",
"passingRequirements": 0,
"totalRequirements": 3,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 0,
"totalRequirements": 3
}
}
},
{
"id": "017",
"attributes": {
"title": "GxP 21 CFR Part 11",
"passingRequirements": 1,
"totalRequirements": 11,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 11,
"totalRequirements": 11
}
}
},
{
"id": "018",
"attributes": {
"title": "GxP EU Annex 11",
"passingRequirements": 5,
"totalRequirements": 14,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 5,
"totalRequirements": 14
}
}
},
{
"id": "019",
"attributes": {
"title": "HIPAA",
"passingRequirements": 2,
"totalRequirements": 32,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 9,
"totalRequirements": 32
}
}
},
{
"id": "020",
"attributes": {
"title": "ISO27001 2013",
"passingRequirements": 55,
"totalRequirements": 79,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 66,
"totalRequirements": 79
}
}
},
{
"id": "021",
"attributes": {
"title": "MITRE ATTACK",
"passingRequirements": 7,
"totalRequirements": 46,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 19,
"totalRequirements": 46
}
}
},
{
"id": "022",
"attributes": {
"title": "NIST 800 171 Revision 2",
"passingRequirements": 3,
"totalRequirements": 50,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 3,
"totalRequirements": 50
}
}
},
{
"id": "023",
"attributes": {
"title": "NIST 800 53 Revision 4",
"passingRequirements": 21,
"totalRequirements": 64,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 21,
"totalRequirements": 64
}
}
},
{
"id": "024",
"attributes": {
"title": "NIST 800 53 Revision 5",
"passingRequirements": 75,
"totalRequirements": 288,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 75,
"totalRequirements": 288
}
}
},
{
"id": "025",
"attributes": {
"title": "NIST CSF 1.1",
"passingRequirements": 15,
"totalRequirements": 56,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 46,
"totalRequirements": 56
}
}
},
{
"id": "026",
"attributes": {
"title": "PCI 3.2.1",
"passingRequirements": 11,
"totalRequirements": 19,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 19,
"totalRequirements": 19
}
}
},
{
"id": "027",
"attributes": {
"title": "RBI Cyber Security Framework",
"passingRequirements": 3,
"totalRequirements": 9,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 3,
"totalRequirements": 9
}
}
},
{
"id": "028",
"attributes": {
"title": "SOC2",
"passingRequirements": 7,
"totalRequirements": 56,
"regions": []
},
"lastScan": {
"attributes": {
"passingRequirements": 7,
"totalRequirements": 56
}
}
}
],
"meta": {
"pagination": {
"page": 1,
"pages": 1,
"count": 28
},
"version": "v1"
}
}
Vendored
+29
View File
@@ -0,0 +1,29 @@
declare module "*.png" {
const value: string;
export default value;
}
declare module "*.jpg" {
const value: string;
export default value;
}
declare module "*.jpeg" {
const value: string;
export default value;
}
declare module "*.gif" {
const value: string;
export default value;
}
declare module "*.svg" {
const content: any;
export default content;
}
declare module "*.webp" {
const value: string;
export default value;
}
+7 -1
View File
@@ -25,5 +25,11 @@
"target": "es5"
},
"exclude": ["node_modules"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"images.d.ts"
]
}