diff --git a/.storybook/preview.js b/.storybook/preview.js index 8b53956..a7a97a5 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -69,10 +69,7 @@ const parameters = { }, docs: { source: { - type: 'auto' - }, - story: { - inline: true + type: 'code' } } }; diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index ae7d36e..f323454 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -5,6 +5,10 @@ image: node:18.19.0 +options: + size: 2x + + pipelines: branches: '{develop}': @@ -15,7 +19,7 @@ pipelines: script: - yarn install - yarn test -- -u - - yarn chromatic --project-token=5715d8611200 --auto-accept-changes + - yarn chromatic --ci --project-token=5715d8611200 --auto-accept-changes --zip '{master}': - step: name: Build, Test and Chromatic Publish @@ -24,4 +28,4 @@ pipelines: script: - yarn install - yarn test -- -u - - yarn chromatic --project-token=5715d8611200 --auto-accept-changes + - yarn chromatic --ci --project-token=5715d8611200 --auto-accept-changes --zip diff --git a/package.json b/package.json index 3ba5af8..60c77ce 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": false, "dependencies": { "@alshdavid/mime-types": "2.2.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.11", "@date-io/date-fns": "2.10.11", "@date-io/moment": "1.x", "@dropzone-ui/react": "6.7.20", @@ -19,8 +20,8 @@ "@testing-library/react": "12.1.5", "@testing-library/user-event": "14.4.3", "@wojtekmaj/react-hooks": "1.17.2", - "ag-grid-community": "25.1.0", - "ag-grid-react": "25.1.0", + "ag-grid-community": "30.0.6", + "ag-grid-react": "30.0.6", "axios": "1.2.1", "branch-sdk": "2.59.0", "clsx": "1.1.1", @@ -30,6 +31,9 @@ "file-saver": "2.0.5", "formik": "2.2.6", "javascript-stringify": "2.1.0", + "js-base64": "3.7.5", + "json-url": "3.1.0", + "jsoncrush": "1.1.6", "ka-table": "7.1.3", "litepicker": "2.0.11", "lodash.get": "4.4.2", @@ -53,6 +57,7 @@ "react-image-pan-zoom-rotate": "1.6.0", "react-json-view": "1.21.3", "react-loader-advanced": "1.7.1", + "react-lottie-player": "1.5.4", "react-phone-number-input": "3.1.25", "react-querybuilder": "6.5.0", "react-scripts": "5.0.1", @@ -171,7 +176,7 @@ "main": "index.js", "repository": { "type": "git", - "url": "git+ssh://git@bitbucket.org/zennya/web-component-library.git" + "url": "git+ssh://git@bitbucket.org/zennya/web-component-library.git?sha=f4c76a6023c8f317fb0c329937c88c9981a5e09b" }, "author": "", "license": "ISC", diff --git a/src/components/DataGrid/DataGrid.jsx b/src/components/DataGrid/DataGrid.jsx index 49a2732..b9443e2 100644 --- a/src/components/DataGrid/DataGrid.jsx +++ b/src/components/DataGrid/DataGrid.jsx @@ -90,7 +90,7 @@ function DataGrid({ prevScrollY.current = newScrollTop }, [onLoadMore] ); - + useEffect(() => { const c = domRef.current.element; if (onLoadMore) { diff --git a/src/components/DataGridv3/CustomHeader.jsx b/src/components/DataGridv3/CustomHeader.jsx new file mode 100644 index 0000000..276fb31 --- /dev/null +++ b/src/components/DataGridv3/CustomHeader.jsx @@ -0,0 +1,233 @@ +import React, {useState, useEffect, useRef, useCallback, useMemo, useContext, memo} from 'react' +import { AgGridColumn, AgGridReact } from 'ag-grid-react'; +import {GridContext, actions} from "./GridContext"; +import { render } from 'react-dom'; +import { debounce } from 'lodash'; +import { makeStyles } from 'tss-react/mui'; +import {Autocomplete, Box, Button, Checkbox, Chip, Divider, FormControl, Grid, IconButton, InputLabel, InputAdornment, ListItemText , MenuItem, MenuList, OutlinedInput, Popover, Select, TextField, Typography, useTheme} from '@mui/material' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faSort , faSortUp, faSortDown, faPlus, faBars, faFilter, faThumbtack, faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; + +const CustomHeader= memo((props)=>{ + const [state,dispatch] = useContext(GridContext) + const [anchorEl, setAnchorEl] = useState(null) + const [isHovered, setIsHovered] = useState(false) + const [currentSort, setCurrentSort] = useState(false) + const [isColHidden, setIsColHidden] = useState(false) + + const handlePopoverClick = (event) => { + setAnchorEl(event.currentTarget); + } + + const handlePopoverClose = () => { + setAnchorEl(null); + } + // Pinning + const handlePinRight = () => { + props.columnApi.setColumnPinned(props.column.colId,'right') + handlePopoverClose() + } + const handlePinLeft = () => { + props.columnApi.setColumnPinned(props.column.colId,'left') + handlePopoverClose() + } + const handleUnpin = () => { + props.columnApi.setColumnPinned(props.column.colId, false) + handlePopoverClose() + } + const handleHide = () => { + props.columnApi.setColumnVisible(props.column.colId,false) + } + const handleUnhide = () => { + props.columnApi.getColumns().map((element)=>{ + props.columnApi.setColumnVisible(element.colId,true) + }) + } + + function onSortClicked(event) { + // alternative client side sort + props.progressSort(event.shiftKey); + }; + + const checkColHidden= ()=>{ + props.columnApi.getColumns().map((element)=>{ + if(!element.visible){ + return setIsColHidden(true) + } + }) + return setIsColHidden(false) + } + + useEffect(() => { + if(state?.sortDirection != null){ + if(state?.sortColumn && state?.sortColumn === props?.column?.colId){ + return setCurrentSort(true) + }else{ + return setCurrentSort(false) + } + }else{ + return setCurrentSort(false) + } + + }, [state?.sortColumn]) + + const setHoveredTrue =()=>{ + setIsHovered(true) + } + const setHoveredFalse= ()=>{ + setIsHovered(false) + } + + const handleSort=(props)=>{ + if( state?.sortColumn !== null && props?.column?.colId == state?.sortColumn){ + if(state?.sortDirection === 'asc'){ + dispatch({ + type: actions.SORT_DIRECTION, + payload:{ + sortDirection: 'desc' + } + }) + + }else if(state?.sortDirection === 'desc'){ + // setSortDirection(null) + dispatch({ + type: actions.SORT_DIRECTION, + payload:{ + sortDirection: null + } + }) + dispatch({ + type:actions.SORT_COLUMN, + payload:{ + sortColumn: null + } + }) + }else{ + // setSortDirection('asc') + dispatch({ + type: actions.SORT_DIRECTION, + payload:{ + sortDirection: 'asc' + } + }) + } + }else{//set to asc + dispatch({ + type:actions.SORT_COLUMN, + payload:{ + sortColumn: props?.column?.colId + } + }) + dispatch({ + type: actions.SORT_DIRECTION, + payload:{ + sortDirection: 'asc' + } + }) + } + } + + return ( +
+ + + + + + { (props.column.pinned === null || props.column.pinned === 'left') && ( +
+ +
) + } + { (props.column.pinned === null || props.column.pinned === 'right') && ( +
+ +
) + } + { (props.column.pinned === 'right' || props.column.pinned === 'left') && ( +
+ +
) + } + + +
+ +
+ + +
+ +
+ +
+
+ { + //this is a sample of a client-side sorting + // onSortClicked(event) + // }} + + onClick={(event)=> {if(props?.enableSorting) handleSort(props)}} + onTouchStart ={(event)=>{if(props?.enableSorting) handleSort(props)}} + onMouseEnter={setHoveredTrue} + onMouseLeave={setHoveredFalse} + > + {props?.displayName} + + { props?.enableSorting && (isHovered || currentSort) && ( + (!currentSort || state?.sortDirection === null )? + <> + + + + : state?.sortDirection === 'desc' ? + <> + + + : + <> + + + )} + + +
+ ) +}) + +export default CustomHeader \ No newline at end of file diff --git a/src/components/DataGridv3/DataGrid.jsx b/src/components/DataGridv3/DataGrid.jsx new file mode 100644 index 0000000..f843802 --- /dev/null +++ b/src/components/DataGridv3/DataGrid.jsx @@ -0,0 +1,108 @@ +import React, {useState, useEffect, useRef, useCallback, useMemo, useContext, memo} from 'react' +import { AgGridColumn, AgGridReact } from 'ag-grid-react'; +import {GridContext, actions} from "./GridContext"; +import CustomHeader from "./CustomHeader" +import { render } from 'react-dom'; +import { debounce } from 'lodash'; +import { makeStyles } from 'tss-react/mui'; +import {Autocomplete, Box, Button, Checkbox, Chip, Divider, FormControl, Grid, IconButton, InputLabel, InputAdornment, ListItemText , MenuItem, MenuList, OutlinedInput, Popover, Select, TextField, Typography, useTheme} from '@mui/material' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faSort , faSortUp, faSortDown, faPlus, faBars, faFilter, faThumbtack,faEyeSlash } from '@fortawesome/free-solid-svg-icons'; + +//======================= MAIN ===================== +function DataGrid(props) { + const [state,dispatch] = useContext(GridContext) + const [sortColumn, setSortColumn] = useState(null) + const [sortDirection, setSortDirection] = useState(null) + const gridRef = useRef() + + + const components = { + agColumnHeader: CustomHeader + } + + const defaultColDef = { + resizable: true, + flex:1 + } + const columnTypes ={ + centerAligned: { + cellStyle: { + display: 'flex ', + justifyContent: 'center', + alignItems: 'center ' + } + }, + } + + useEffect(() => { + if(state.loading == true){ + // Start Loading + gridRef?.current?.api?.showLoadingOverlay() + + }else{ + // Remove loading + gridRef?.current?.api?.hideOverlay() + + } + }, [state.loading]) + + useEffect(() => { + dispatch({ + type:actions.SORT_DIRECTION, + payload:{ + sortDirection: sortDirection + } + }) + }, [sortDirection]) + + + useEffect(() => { + dispatch({ + type:actions.SORT_COLUMN, + payload:{ + sortColumn: sortColumn + } + }) + }, [sortColumn]) + + + + useEffect(() => { + dispatch({ + type: actions.LOAD_ROWS, + payload:{ + rows: props?.gridProps?.rows ?? [] + } + }) + dispatch({ + type: actions.LOAD_COLUMNS, + payload:{ + columns: props?.gridProps?.columns ?? [] + } + }) + + }, []) + + return ( +
+ Please wait while your rows are loading` + + // } + {...props.gridProps} + /> +
+ ) +} + + + +export default DataGrid \ No newline at end of file diff --git a/src/components/DataGridv3/GenerateMockData.js b/src/components/DataGridv3/GenerateMockData.js new file mode 100644 index 0000000..7a9dd7b --- /dev/null +++ b/src/components/DataGridv3/GenerateMockData.js @@ -0,0 +1,47 @@ +import React from 'react' + +function getRandomNumber(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} + +function getRandomTitle() { + const names = ['Breaking Bad', 'Peaky Blinders', 'Game Of Thrones', 'The Boys', 'Missing', 'The Three Idiots', 'Overlord', 'Taken']; + return names[getRandomNumber(0, names.length - 1)]; +} + +function getRandomComment() { + const comments = [ + 'Great work!', + 'Needs improvement.', + 'Very informative.', + 'Not clear enough.', + 'Excellent!', + 'Could be better.', + 'Nice job!', + 'Confusing.', + ]; + return comments[getRandomNumber(0, comments.length - 1)]; +} + +function GenerateMockData(numRows) { + const rowData = []; + let idCounter = 1; + + for (let i = 0; i < numRows; i++) { + const row = { + id: idCounter++, + title: getRandomTitle(), + location_scope: ['Global', 'Office', 'Regional'][getRandomNumber(0, 2)], + reviews: getRandomNumber(1, 10), + comments: getRandomComment(), + filler: Math.random() < 0.5, // true or false randomly + enabled: Math.random() < 0.5, // true or false randomly + }; + + rowData.push(row); + } + + return rowData; +} + +export default GenerateMockData \ No newline at end of file diff --git a/src/components/DataGridv3/GridContext.jsx b/src/components/DataGridv3/GridContext.jsx new file mode 100644 index 0000000..9c30b23 --- /dev/null +++ b/src/components/DataGridv3/GridContext.jsx @@ -0,0 +1,93 @@ +import {createContext, useReducer} from 'react' + + +export const initialState = { + columns: [], + rows:[], + loading: false, + sortColumn: null, + sortDirection: null, + filterColumns: [], + search: null +} + +export const actions ={ + RESET_GRID:'RESET_GRID', + SORT_COLUMN: 'SORT_COLUMN', + SORT_DIRECTION:'SORT_DIRECTION', + FILTER_COLUMN: 'FILTER_COLUMN', + CLEAR_FILTER_COLUMN:'CLEAR_FILTER_COLUMN', + LOAD_COLUMNS: 'LOAD_COLUMNS', + LOAD_ROWS: 'LOAD_ROWS', + SET_LOADING: 'SET_LOADING', + SET_LOADING_DONE: 'SET_LOADING_DONE', + SET_SEARCH: 'SET_SEARCH', + TEST_DISPATCH: 'TEST_DISPATCH' +} + +export const GridContext = createContext() + +export function gridReducer(state,action){ + switch (action.type) { + case actions.TEST_DISPATCH: + return {...state} + case actions.SET_SEARCH: + return { + ...state, + search: action.payload.search + } + case actions.SORT_COLUMN: + return { + ...state, + sortColumn: action.payload.sortColumn + } + case actions.SORT_DIRECTION: + return { + ...state, + sortDirection: action.payload.sortDirection + } + case actions.FILTER_COLUMN: + return { + ...state, + filterColumns: action.payload.filterColumns ?? [] + } + case actions.CLEAR_FILTER_COLUMN: + return { + ...state + } + case actions.LOAD_COLUMNS: + return { + ...state, + columns: action.payload.columns + } + case actions.LOAD_ROWS: + return { + ...state, + rows: action.payload.rows + } + case actions.SET_LOADING: + return { + ...state, + loading: true + } + case actions.SET_LOADING_DONE: + return { + ...state, + loading: false + } + default: { + throw new Error(`Unhandled action type: ${action.type}`); + } + } +} + +export function DataGridProvider({ children }){ + const [state, dispatch] = useReducer(gridReducer, initialState); + return ( + + {children} + + ); +}; + +export default GridContext \ No newline at end of file diff --git a/src/components/DataGridv3/GridStyles.scss b/src/components/DataGridv3/GridStyles.scss new file mode 100644 index 0000000..cef9bf5 --- /dev/null +++ b/src/components/DataGridv3/GridStyles.scss @@ -0,0 +1,24 @@ +@use "~ag-grid-community/styles" as ag; + +@include ag.grid-styles(( + themes: (alpine, alpine-dark, belham ,belham-dark, material), + +)); + +.ag-theme-alpine { + &.custom-colors{ + --ag-header-background-color: hsl(177, 88%, 90%); + --ag-background-color: hsl(177, 88%, 97%); + --ag-odd-row-background-color: hsl(177, 88%, 95%); + --ag-alpine-active-color: hsl(0, 100%, 50%); + } +} + +.ag-theme-alpine-dark { + &.custom-border{ + --ag-borders: 1px; + } +} +// .ag-root-wrapper { +// // border: none +// } \ No newline at end of file diff --git a/src/components/DataGridv3/index.js b/src/components/DataGridv3/index.js new file mode 100644 index 0000000..8b8c3b0 --- /dev/null +++ b/src/components/DataGridv3/index.js @@ -0,0 +1,2 @@ +import DataGrid from "./DataGrid" +export {DataGrid}; \ No newline at end of file diff --git a/src/components/DataGridv3/index.stories.js b/src/components/DataGridv3/index.stories.js new file mode 100644 index 0000000..9dd4a98 --- /dev/null +++ b/src/components/DataGridv3/index.stories.js @@ -0,0 +1,270 @@ +import React, { useState, useEffect, useContext, useReducer, useMemo} from 'react' +import DataGrid from './DataGrid' +import { GridContext, actions, initialState, gridReducer , DataGridProvider} from './GridContext' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { faSort , faSortUp, faSortDown, faPlus, faBars, faFilter, faThumbtack,faEyeSlash } from '@fortawesome/free-solid-svg-icons'; +import {Button, Chip, IconButton, Paper, Typography } from '@mui/material' +import GenerateMockData from './GenerateMockData' +import './GridStyles.scss' +const DataGridv3 = { + title: "DataGrid v3", + component: DataGrid +} + +export default DataGridv3 + +export const DefaultStory = ({...args}) => { + const [state,dispatch] = useReducer(gridReducer,initialState) + const [sortColumn, setSortColumn] = useState(null) + const [sortDirection, setSortDirection] = useState(null) + return ( + + + + + + ) +} + +export const Default = DefaultStory.bind({}); + + +Default.args = { + gridProps:{ + rows:GenerateMockData(100), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + + +export const LightTheme = DefaultStory.bind({}) + +LightTheme.args = { + gridProps:{ + gridTheme: 'ag-theme-alpine', + rows:GenerateMockData(15), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + +export const CustomColors = DefaultStory.bind({}) + +CustomColors.args = { + gridProps:{ + gridTheme: 'ag-theme-alpine custom-colors', + rows:GenerateMockData(15), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + +export const CellAlignment = DefaultStory.bind({}) + +CellAlignment.args={ + gridProps:{ + rows:GenerateMockData(15), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true, type: 'rightAligned' }, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true,type: 'centerAligned'}, + { field: 'enabled',sortable:true, type: 'centerAligned'}, + ] + } +} + +export const CellRender = DefaultStory.bind({}) + +CellRender.args={ + gridProps:{ + rows:GenerateMockData(15), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true, cellRenderer: params => { + return ( +
+ {params.value ? + + + : + + } +
+ ) + }}, + { field: 'enabled',sortable:true, cellRenderer: params => { + return ( +
+ {params.value ? + True + : + False + } +
+ ) + }}, + ] + } +} + +const LoadingStory = ({...args}) => { + const [state,dispatch] = useReducer(gridReducer,initialState) + + return ( + + + + + + ) +} + +function DGWrapper({...args}){ + const [state,dispatch] = useContext(GridContext) + + return( +
+ + + +
+ ) +} + +export const LoadingSample = LoadingStory.bind({}) + +LoadingSample.args = { + gridProps:{ + rows:GenerateMockData(10), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + +export const TemplateHeader = DefaultStory.bind({}) + +TemplateHeader.args = { + headerType:'serverSide', + gridProps:{ + rows:GenerateMockData(10), + columns: [ + { field: 'id', headerName:"ID", sortable:true , width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + + +const CustomHeaderStory = ({...args}) => { + const [state,dispatch] = useReducer(gridReducer,initialState) + + return ( + + + + + + ) +} + +function DGWrapperCustomHeader({...args}){ + const [state,dispatch] = useContext(GridContext) + + const CustomHeaderComponent=(props)=>{ + return ( +
+ + {props.displayName} + +
) + } + + const components = useMemo(()=>{ + return { + agColumnHeader: CustomHeaderComponent + } + }) + return( +
+ +
+ ) +} + + +export const CustomHeader = CustomHeaderStory.bind({}) + + +CustomHeader.args = { + gridProps:{ + rows:GenerateMockData(10), + columns: [ + { field: 'id', headerName:"ID", sortable:true , flex:0, width:80 }, + { field: 'title', sortable:true }, + { field:'location_scope', headerName:'Scope', sortable: true }, + { field: 'reviews',sortable:true}, + { field: 'comments',sortable:true}, + { field: 'filler',sortable:true}, + { field: 'enabled',sortable:true}, + ] + } +} + +function emulateFetch(rows){ + setTimeout(() => { + return rows.append(GenerateMockData(10)) + }, 2000); +} \ No newline at end of file diff --git a/src/components/FormBuilder/FormBuilder.jsx b/src/components/FormBuilder/FormBuilder.jsx index efab92b..f29c79c 100644 --- a/src/components/FormBuilder/FormBuilder.jsx +++ b/src/components/FormBuilder/FormBuilder.jsx @@ -53,6 +53,7 @@ import * as Yup from "yup"; import { DateTimeRangePicker } from "../DateTimeRangePicker"; import { fromEntries } from "../utils/fromEntries.polyfill"; import { FormikPersist } from "./FormikPersist"; +import { MPhoneInput } from "./MPhoneInput"; import { WizardFieldArray } from "./WizardFieldArray"; import { DatePicker, DateTimePicker, LocalizationProvider, TimePicker } from "@mui/x-date-pickers"; import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment' @@ -544,7 +545,7 @@ const FormFieldSet = ({ {fieldParams.icon} ) : undefined, - inputComponent: PhoneInput, + inputComponent: MPhoneInput, inputProps: { country: "PH", international: true, diff --git a/src/components/Section/Section.jsx b/src/components/Section/Section.jsx new file mode 100644 index 0000000..859239f --- /dev/null +++ b/src/components/Section/Section.jsx @@ -0,0 +1,12 @@ +import React from 'react' +import './SectionStyles.scss' + +function Section({children, style}) { + return ( +
+ {children} +
+ ) +} + +export default Section \ No newline at end of file diff --git a/src/components/Section/SectionContent.jsx b/src/components/Section/SectionContent.jsx new file mode 100644 index 0000000..ec0740b --- /dev/null +++ b/src/components/Section/SectionContent.jsx @@ -0,0 +1,11 @@ +import React from 'react' + +function SectionContent({children, style}) { + return ( +
+ {children} +
+ ) +} + +export default SectionContent \ No newline at end of file diff --git a/src/components/Section/SectionHeader.jsx b/src/components/Section/SectionHeader.jsx new file mode 100644 index 0000000..0c85761 --- /dev/null +++ b/src/components/Section/SectionHeader.jsx @@ -0,0 +1,12 @@ +import React from 'react' + +function SectionHeader({title,style}) { + + return ( +
+ {title} +
+ ) +} + +export default SectionHeader \ No newline at end of file diff --git a/src/components/Section/SectionRow.jsx b/src/components/Section/SectionRow.jsx new file mode 100644 index 0000000..c3237d6 --- /dev/null +++ b/src/components/Section/SectionRow.jsx @@ -0,0 +1,17 @@ +import React from 'react' + +function SectionRow({label, value, spacing, style}) { + + return ( +
+
+ {label} +
+
+ {value} +
+
+ ) +} + +export default SectionRow \ No newline at end of file diff --git a/src/components/Section/SectionStyles.scss b/src/components/Section/SectionStyles.scss new file mode 100644 index 0000000..7d43a00 --- /dev/null +++ b/src/components/Section/SectionStyles.scss @@ -0,0 +1,59 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter'); + +$header-bgcolor: #fcfcfc; +$header-font-color: #525252; +$border-color: #EDEDED; + +.section{ + display: flex; + flex-direction: column; + border: 1px solid $border-color; + padding-bottom: 58px; + border-radius: 12px; +} + +.section-header{ + height: 80px; + display: flex; + padding-left: 44px; + align-items: center; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + background-color: $header-bgcolor; + font-family: 'Inter', sans-serif; + font-weight: bold; + font-size: 25px; + letter-spacing: 1px; + color:$header-font-color; +} + +.section-content{ + padding-left: 44px; + padding-right: 44px; + .section-row{ + border-bottom: 1px solid $border-color; + } +} + +.section-row{ + min-height: 10px; + padding-top: 20px; + padding-bottom: 20px; + display: flex; + // background-color: aqua; + .label{ + display: flex; + flex-wrap: wrap; + min-width: 175px; + position: relative; + // background-color: gray; + }; + .value{ + display: flex; + flex-wrap: wrap; + max-width: 100%; + justify-content: flex-start; + overflow: hidden; + position: relative; + }; +} \ No newline at end of file diff --git a/src/components/Section/index.js b/src/components/Section/index.js new file mode 100644 index 0000000..9f2abd8 --- /dev/null +++ b/src/components/Section/index.js @@ -0,0 +1,5 @@ +import Section from "./Section" +import SectionContent from "./SectionContent" +import SectionHeader from "./SectionHeader" +import SectionRow from "./SectionRow" +export { Section, SectionContent, SectionHeader, SectionRow }; \ No newline at end of file diff --git a/src/components/Section/index.stories.js b/src/components/Section/index.stories.js new file mode 100644 index 0000000..3183ef6 --- /dev/null +++ b/src/components/Section/index.stories.js @@ -0,0 +1,28 @@ +import {Section, SectionHeader, SectionContent, SectionRow} from './' +import {Status} from './../Status' + +const SectionStory = { + title: "Section", + component: Section +} + +export default SectionStory + +export const DefaultStory = ({...args}) => { + return( +
+
+ + + + + + } /> + + + +
+
+ ) +} \ No newline at end of file diff --git a/src/components/Status/Status.jsx b/src/components/Status/Status.jsx new file mode 100644 index 0000000..76769e2 --- /dev/null +++ b/src/components/Status/Status.jsx @@ -0,0 +1,87 @@ +import {useState} from 'react' +import './StatusStyles.scss' + + + +function Status({content, color, isHoverable, size, style}) { + // Checks the size of the Accepted values are: "small", "medium", "large", and any custom measurement + const getSize = () => { + if(size === 'medium' || null || undefined || ''){ + return 'medium' + }else if (size === 'small'){ + return 'small' + }else if (size === 'large'){ + return 'large' + }else{ + return 'custom' + } + } + + const getColor = () => { + if(color === 'negative'){ + return 'color-negative' + } + else if(color === 'pending'){ + return 'color-pending' + } + else if ( color === 'matched'){ + return 'color-matched' + } + else if (color === 'live'){ + return "color-live" + } + else if (color === 'cancelled'){ + return "color-cancelled" + } + else if ( color === 'finished'){ + return 'color-finished' + } + else if ( color === 'default' || color === null || color === undefined || color === '') { + return 'color-default' + + } + else { + return 'custom' + + } + } + + const getIsHoverable = () => { + if(isHoverable === true){ + return 'is-hoverable' + }else{ + return '' + } + } + + const sizeClassName = getSize() + const colorClassName = getColor() + const hoverableClassName = getIsHoverable() + + return ( +
+
+ {content} +
+
+ ) +} + +export default Status \ No newline at end of file diff --git a/src/components/Status/StatusStyles.scss b/src/components/Status/StatusStyles.scss new file mode 100644 index 0000000..d6360e8 --- /dev/null +++ b/src/components/Status/StatusStyles.scss @@ -0,0 +1,79 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter'); + +$color-negative: #f6e1df; +$color-pending: #fff1d7; +$color-matched: #ddf3fa; +$color-live: #ebeffd; +$color-cancelled: #e3ebec; +$color-finished: #def0db; +$color-default: #7c7c84; + +.status-container{ + width: 100%; + display: inline-flex; + justify-content: center; + align-items: center; + font-family: 'Inter', sans-serif; + font-weight: bold; + letter-spacing: 1px; + color: #787879; +} + +.status-container-outer{ + padding: 0.5rem 1.5rem 0.5rem 1.5rem; + border-radius: 16px; + width: auto; + display: inline-flex; + justify-content: center; + align-items: center; + align-self: flex-start; +} + +// Size Section +.medium{ + height: 1rem; + font-weight: 200; + font-size: medium; + line-height: 5px; +} + +.small{ + height: 0.5rem; + font-size: 12px; +} + +.large{ + height: 1.5rem; + font-size: large; +} + +// Color section +.color-negative{ + background-color: $color-negative; +} +.color-pending{ + background-color: $color-pending; +} +.color-matched{ + background-color: $color-matched; +} +.color-live{ + background-color: $color-live; +} +.color-cancelled{ + background-color: $color-cancelled; +} +.color-finished{ + background-color: $color-finished; +} +.color-default{ + background-color: $color-default; + color:#f3f3f3 +} + +.is-hoverable{ + transition: box-shadow 0.3s; /* Adding a transition for smooth effect */ + &:hover { + box-shadow: 4px 4px 4px 0 rgba(0, 0, 0, 0.1); + } +} \ No newline at end of file diff --git a/src/components/Status/index.js b/src/components/Status/index.js new file mode 100644 index 0000000..17130f0 --- /dev/null +++ b/src/components/Status/index.js @@ -0,0 +1,2 @@ +import Status from "./Status" +export {Status}; \ No newline at end of file diff --git a/src/components/Status/index.stories.js b/src/components/Status/index.stories.js new file mode 100644 index 0000000..6070c36 --- /dev/null +++ b/src/components/Status/index.stories.js @@ -0,0 +1,72 @@ +import Status from './Status' +import {Button, Grid} from '@mui/material' +const StatusStory = { + title: "Status", + component: Status +} + +export default StatusStory + +export const DefaultStory = ({...args}) => { + return ( +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ ) +} + +export const Sizes = ({...args}) => { + return ( + +
+ +
+
+ +
+
+ +
+
+ ) +} + +export const HoverEnabled = () => { + return +} diff --git a/src/components/TabMenu/TabMenu.jsx b/src/components/TabMenu/TabMenu.jsx new file mode 100644 index 0000000..d6ef9c4 --- /dev/null +++ b/src/components/TabMenu/TabMenu.jsx @@ -0,0 +1,77 @@ +import {useState, useEffect, useRef, useLayoutEffect} from 'react' +import './TabMenuStyles.scss' +import LinearProgress from '@mui/material/LinearProgress'; + +function TabMenu({tabs, isLoading:isLoadingProp, fullWidth:fullWidthProp, defaultTab:defaultTabProp , style}) { + const [selectedTab, setSelectedTab] = useState(0) + const [selectedComponent, setSelectedComponent] = useState(null) + const [isLoading, setIsLoading] = useState(false) + + useEffect(() => { + return setSelectedComponent(tabs[selectedTab].component) + }, [selectedTab, tabs]) + + useEffect(() => { + setIsLoading(isLoadingProp) + }, [isLoadingProp]) + + const handleClick = (e,index)=>{ + setSelectedTab(index) + } + + + const getDefault = () => { + if((defaultTabProp >= 0 && defaultTabProp < tabs.length)){ + return setSelectedTab(defaultTabProp) + }else if(defaultTabProp === null || defaultTabProp === undefined || defaultTabProp === ''){ + return setSelectedTab(0) + }else{ + console.log("%cERR: Default Tab option is not within range", 'color:red;') + return setSelectedTab(0) + } + } + + const getWidth = () => { + if(fullWidthProp === true){ + return 'tab-full-width' + }else{ + return '' + } + } + + useEffect(() => { + getDefault() + }, []) + + + + const widthClassName = getWidth() + return ( +
+
+
+ { tabs.map((element,index) => { + return ( +
+ +
+ )}) + } +
+
+
+ { isLoading ? : selectedComponent } +
+
+ ) +} + +export default TabMenu \ No newline at end of file diff --git a/src/components/TabMenu/TabMenuStyles.scss b/src/components/TabMenu/TabMenuStyles.scss new file mode 100644 index 0000000..20ee111 --- /dev/null +++ b/src/components/TabMenu/TabMenuStyles.scss @@ -0,0 +1,87 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter'); + +$outer-border-color: black; +$border-color: #EDEDED; +$font-color: #4A4A4A; +$hovered-tab-font-color: #A8D6E2; +$hovered-tab-background-color: #E9F6FB; +$selected-tab-font-color: #3E91A8; +$selected-tab-background-color: #D8EAF1; + + +.container{ + height: 100%; + display: flex; + flex-direction: column; +} +// Tab Menu +.tab-section{ + margin-bottom: 1rem; + flex-shrink: 0; +} + +.outer-tab-container{ + display: inline-flex; + align-items: center; + justify-content: center; + height: 45px; + padding: 0; + margin: 0; + // margin-bottom: 1rem; + color: $font-color; + &.tab-full-width{ + width: 100%; + }; +} +.tab-container{ + margin:0; + height: 100%; + align-items: center; + justify-content: center; + &.tab-full-width{ + flex-grow: 1; + }; + .tab-content{ + width: 100%; + height: 100%; + font-family: 'Inter', sans-serif; + font-weight: bold; + letter-spacing: 1px; + border-top: 1px solid $border-color; + border-bottom:1px solid $border-color; + border-right: 1px solid $border-color; + border-left:none; + background-color: white; + &.first-element{ + border-left: 1px solid $border-color; + border-top-left-radius: 12px; + border-bottom-left-radius: 12px; + + }; + &.last-element{ + border-top-right-radius : 12px; + border-bottom-right-radius: 12px; + }; + &:not(:last-child){ + }; + padding:0 2rem 0 2rem; + cursor: pointer; + &.selected-tab{ + background-color: $selected-tab-background-color; + color: $selected-tab-font-color; + } + } + &:hover .tab-content{ + transition: background-color 0.3s, color 0.3s, border-color 0.3s; + background-color: $hovered-tab-background-color; + color: $hovered-tab-font-color; + } +} + +// Component Section +.component-section{ + flex-grow: 1; + display: flex; + flex-direction: column; + height: 100%; +} \ No newline at end of file diff --git a/src/components/TabMenu/index.js b/src/components/TabMenu/index.js new file mode 100644 index 0000000..f8243b9 --- /dev/null +++ b/src/components/TabMenu/index.js @@ -0,0 +1,2 @@ +import TabMenu from "./TabMenu" +export {TabMenu}; \ No newline at end of file diff --git a/src/components/TabMenu/index.stories.js b/src/components/TabMenu/index.stories.js new file mode 100644 index 0000000..a0946f2 --- /dev/null +++ b/src/components/TabMenu/index.stories.js @@ -0,0 +1,112 @@ +import React, { useState } from 'react' +import TabMenu from './TabMenu' +import { Button, Paper } from '@mui/material' + +const TabMenuStory = { + title: "Tab Menu", + component: TabMenu +} + +export default TabMenuStory + +const component1 = () => { + return ( +
+ Component 1 +
+ ) +} + +const component2 = () => { + return( +
+ Component 2 +
+ ) +} + +const component3 = () => { + return( +
+ Component 3 +
+ ) +} + +const component4 = () => { + return ( +
+ Component 4 +
+ ) +} + +export const DefaultStory = ({...args}) => { + + return( + + + + ) +} + +export const LoadingStory = ({args}) => { + const [loading, setLoading] = useState(false) + return( + +
+ +
+ +
+ ) +} + +export const FullWidthStory = ({args}) => { + return( + + + + ) +} + +export const DefaultTabStory = ({args}) => { + return( + + + + ) +} \ No newline at end of file diff --git a/src/components/VirtuosoDataGrid/DataGridToolbar.jsx b/src/components/VirtuosoDataGrid/DataGridToolbar.jsx index 91e0dd5..839e05c 100644 --- a/src/components/VirtuosoDataGrid/DataGridToolbar.jsx +++ b/src/components/VirtuosoDataGrid/DataGridToolbar.jsx @@ -158,8 +158,10 @@ const DataGridToolbar = ({ const [dataGridState, dataGridDispatch] = useContext(DataGridContext); - const [filterValues, setFilterValues] = useUrlState({ queryKey: `${gridId}-filters`, disable: !useUrlAsState }); const [filterDisplay, setFilterDisplay] = useState({}); + + + const [filterValues, setFilterValues] = useUrlState({ queryKey: `${gridId}-filters`, disable: !useUrlAsState }); const [searchField, setSearchField] = useStateRef(""); diff --git a/src/components/VirtuosoDataGrid/archived.stories.js b/src/components/VirtuosoDataGrid/archived.stories.js index 7667a6e..4c8405a 100644 --- a/src/components/VirtuosoDataGrid/archived.stories.js +++ b/src/components/VirtuosoDataGrid/archived.stories.js @@ -210,13 +210,12 @@ ConditionalSelector.args = { } ], columns: [ + { - key: "select-row", - name: "", - sortable: false, - hidden: true, + key: "name", + name: "Name", selectable({ row }) { - return row.id !== '2' + return row.id !== 2 } }, { diff --git a/src/components/hooks/mapanim.json b/src/components/hooks/mapanim.json new file mode 100644 index 0000000..99095fe --- /dev/null +++ b/src/components/hooks/mapanim.json @@ -0,0 +1 @@ +{"nm":"Map marker location search","ddd":0,"h":1300,"w":1300,"meta":{"g":"LottieFiles AE 3.1.1"},"layers":[{"ty":4,"nm":"search","sr":1,"st":0,"op":1440.0000586524,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[241.847,214.562,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[322.209,295.757,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[29.366,29.661],[44.788,0],[29.339,-29.632],[0,-45.264],[-29.338,-29.661],[-44.788,0],[-29.339,29.633],[0,45.236]],"o":[[-29.339,-29.632],[-44.788,0],[-29.338,29.661],[0,45.236],[29.339,29.633],[44.788,0],[29.366,-29.661],[0,-45.264]],"v":[[85.295,-115.853],[-29.395,-163.809],[-144.085,-115.853],[-191.594,0.014],[-144.085,115.852],[-29.395,163.808],[85.295,115.852],[132.804,0.014]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[6.52,-15.633],[0,0],[7.2,-7.271],[58.592,0],[38.41,38.766],[0,59.179],[-38.409,38.794],[-58.592,0],[-38.381,-38.765],[0,-59.207],[11.055,-25.939]],"o":[[-4.96,16.405],[0,0],[-6.123,8.245],[-38.381,38.766],[-58.592,0],[-38.409,-38.794],[0,-59.207],[38.41,-38.765],[58.592,0],[38.409,38.794],[0,30.033],[0,0]],"v":[[241.597,128.936],[224.334,177.037],[140.655,128.251],[120.643,151.555],[-29.395,214.313],[-179.433,151.555],[-241.597,0.014],[-179.433,-151.554],[-29.395,-214.312],[120.643,-151.554],[182.807,0.014],[165.629,84.618]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[241.847,214.562],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1,"parent":4},{"ty":4,"nm":"mask","sr":1,"st":0,"op":1440.0000586524,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"td":1,"ao":0,"ks":{"a":{"a":0,"k":[187.45,189.311,0],"ix":1},"s":{"a":0,"k":[138.534,138.534,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[649.986,523.871,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-103.096,0],[0,104.128],[103.096,0],[0,-104.157]],"o":[[103.096,0],[0,-104.157],[-103.096,0],[0,104.128]],"v":[[0,189.06],[187.2,0.015],[0,-189.061],[-187.2,0.015]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.5686,0.3255,0.3255],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[187.45,189.31],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"map","sr":1.39072847682119,"st":0,"op":210.000008553475,"ip":0,"hd":false,"ddd":0,"bm":0,"tt":1,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[1889.045,1075.62,0],"ix":1},"s":{"a":0,"k":[79.926,79.926,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[1515.262,472.819,0],"t":0,"ti":[234,-53.398,0],"to":[-234,53.398,0]},{"s":[111.262,793.209,0],"t":209.999425885601}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":30,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":109,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-41.797,126.044],[14.981,116.424],[44.179,292.416],[-7.299,303.065]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-105.973,136.896],[-57.132,128.65],[-22.521,306.216],[-71.022,316.265]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 3","ix":3,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[173.807,615.051],[183.473,664.982],[135.709,673.227],[114.251,555.672],[160.739,547.512]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 4","ix":4,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-409.309,446.046],[-415.234,467.776],[-454.237,453.548],[-400.72,250.043],[-356.499,252.505]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 5","ix":5,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-351,441.838],[-363.217,486.731],[-400.55,473.131],[-340.625,253.393],[-300.288,255.626]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 6","ix":6,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-348.533,492.084],[-284.414,256.513],[-227.721,259.69],[-291.898,507],[-301.649,509.176]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 7","ix":7,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-313.016,-216.862],[-318.005,-241.54],[-298.559,-286.862],[-260.943,-296.052],[-246.996,-230.404]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 8","ix":8,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-349.016,184.279],[-240.959,178.639],[-227.466,243.944],[-445.734,231.776],[-420.421,126.531],[-349.98,127.133],[-255.16,109.783],[-244.162,163.093],[-349.838,168.618]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 9","ix":9,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-190.276,-38.064],[-202.464,-95.439],[-121.082,-110.93],[-123.973,-126.389],[-205.725,-110.842],[-215.674,-157.682],[-109.913,-175.375],[-112.492,-190.836],[-218.934,-173.029],[-228.515,-218.149],[-91.573,-246.235],[-81.283,-195.073],[-79.214,-184.68],[-55.119,-64.948]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 10","ix":10,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-277.582,1.331],[-258.335,94.408],[-351.453,111.443],[-416.651,110.871],[-395.674,24.808],[-393.973,24.492]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 11","ix":11,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-266.952,-22.832],[-274.379,-54.899],[-320.046,-130.683],[-405.255,-148.091],[-395.306,-183.936],[-394.767,-184.05],[-243.736,-215.029],[-219.104,-98.962],[-205.526,-35.029]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 12","ix":12,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-185.825,81.152],[-243.057,91.631],[-262.304,-1.704],[-204.08,-13.27]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 13","ix":13,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-156.6,232.292],[-211.734,243.172],[-239.854,107.006],[-182.849,96.584]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 14","ix":14,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-137.721,329.864],[-234.638,348.216],[-211.507,259.119],[-153.623,247.695]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 15","ix":15,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-153.057,-23.405],[-86.244,319.414],[-116.688,325.713],[-183.047,-17.451]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 16","ix":16,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-89.22,-36.088],[-60.109,113.219],[-108.978,121.493],[-137.806,-26.44]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 17","ix":17,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-12.826,-51.291],[12.431,100.965],[-44.802,110.642],[-73.97,-39.123]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 18","ix":18,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[103.167,-74.339],[162.298,267.994],[115.3,277.7],[93.699,140.273],[78.336,142.765],[100.02,280.878],[59.429,289.267],[2.424,-54.326],[45.794,-62.944],[65.665,60.882],[81,58.334],[61.073,-65.978]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 19","ix":19,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6.434,32.982],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.435,-33.01],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-39.841,-67.983],[-63.312,-184.594],[30.033,-203.721],[26.887,-219.122],[-66.401,-199.997],[-76.322,-249.357],[67.365,-278.846],[99.454,-95.668],[69.265,-89.656],[49.961,-188.66],[-4.521,-178.811],[-1.772,-163.352],[37.658,-170.479],[41.853,-148.921],[1.801,-142.021],[4.436,-126.589],[44.858,-133.546],[54.015,-86.65]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 20","ix":20,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-548.489,-322.279],[-538.029,-324.883],[-525.614,-172.914],[-574.54,-162.779],[-588.43,-312.315]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 21","ix":21,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-38.962,-665.527],[-13.96,-534.028],[-121.309,-500.96],[-144.723,-632.372]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 22","ix":22,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-110.281,-439.003],[-118.559,-485.499],[-117.34,-485.786],[-116.83,-485.9],[-11.013,-518.538],[-0.127,-461.192]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 23","ix":23,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[39.671,-447.163],[51.549,-374.872],[15.349,-366.254],[11.863,-382.745],[-3.302,-379.453],[1.829,-355.06],[1.801,-355.06],[1.829,-355.06],[7.186,-329.664],[22.351,-332.957],[18.581,-350.852],[54.099,-359.296],[64.786,-294.363],[-79.271,-264.816],[-106.512,-417.731]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 24","ix":24,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-583.072,412.205],[-705.132,416.614],[-773.022,397.203],[-744.563,301.435],[-744.477,301.063],[-736.314,268.08],[-563.343,341.087]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 25","ix":25,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-514.021,243.716],[-416.566,249.155],[-468.921,448.193],[-561.415,414.466]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 26","ix":26,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-654.533,219.236],[-644.556,222.299],[-644.556,222.272],[-600.676,235.556],[-600.676,235.642],[-539.022,253.536],[-559.119,325.857],[-731.154,253.249],[-732.317,251.961],[-719.277,199.424]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 27","ix":27,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-414.212,-196.046],[-510.278,-176.12],[-522.723,-328.691],[-366.59,-367.599]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 28","ix":28,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-279.397,-382.916],[-264.203,-311.427],[-309.756,-300.261],[-334.219,-243.229],[-328.267,-213.711],[-390.571,-200.942],[-343.658,-369.976]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 29","ix":29,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-121.734,-414.639],[-94.492,-261.696],[-231.775,-233.524],[-245.834,-299.746],[-205.157,-309.708],[-200.055,-282.166],[-184.748,-285.087],[-196.342,-347.529],[-211.62,-344.609],[-208.021,-325.169],[-249.123,-315.12],[-264.147,-385.98]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 30","ix":30,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-734.839,-129.366],[-765.567,-336.336],[-543.586,-393.309],[-539.306,-340.716],[-605.154,-324.31],[-589.818,-159.6],[-631.403,-150.954],[-646.029,-296.253],[-661.507,-294.621],[-646.71,-147.775]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 31","ix":31,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-794.196,-423.314],[-750.118,-126.16],[-856.757,-103.886],[-879.066,-177.437],[-816.902,-196.676],[-868.72,-358.409],[-883.517,-353.513],[-836.575,-207.013],[-883.63,-192.467],[-940.833,-381.027]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 32","ix":32,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-551.749,-493.201],[-544.89,-409.199],[-767.892,-351.967],[-779.116,-427.665]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 33","ix":33,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-687.586,-575.684],[-671.599,-481.176],[-782.036,-449.339],[-792.836,-536.776]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 34","ix":34,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[200.339,423.027],[220.012,521.172],[131.145,536.747],[120.77,460.132],[105.378,462.279],[115.809,539.439],[37.857,553.095],[31.621,493.572],[16.172,495.262],[17.873,511.438],[-29.523,518.538],[-27.198,534.085],[19.516,527.07],[22.521,555.786],[-77.854,573.393],[-87.973,480.86]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 35","ix":35,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[53.816,430.386],[32.726,310.854],[171.794,282.08],[178.512,315.206],[100.276,331.382],[103.393,346.785],[181.63,330.608],[186.761,355.976],[105.889,372.695],[109.035,388.099],[189.907,371.378],[196.087,401.841]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 36","ix":36,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-100.559,409.112],[29.267,380.884],[38.537,433.449],[-90.864,459.388]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 37","ix":37,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-113.712,341.145],[17.475,314.003],[26.547,365.452],[-103.535,393.737]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 38","ix":38,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-111.245,466.831],[-274.861,503.221],[-239.003,365.051],[-134.744,345.324]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 39","ix":39,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[30.954,-54.284]],"o":[[0,0],[0,0],[0,0],[0,0],[-30.954,54.255],[0,0]],"v":[[-295.81,710.963],[-183.047,498.898],[-109.403,482.522],[-99.028,577.374],[-164.083,590.601],[-256.946,753.393]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 40","ix":40,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-345.473,656.766],[-296.348,524.093],[-203.088,503.364],[-307.006,698.767]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 41","ix":41,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-565.639,429.612],[-412.597,485.413],[-412.427,485.499],[-412.399,485.499],[-367.639,501.818],[-385.781,558.305],[-448.568,530.19],[-454.89,544.534],[-376.314,579.692],[-353.013,507.143],[-312.193,522.031],[-357.293,643.882],[-381.443,617.542],[-591.236,521.888]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 42","ix":42,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-791.617,463.568],[-777.359,412.319],[-707.116,432.361],[-587.494,428.038],[-611.532,514.702]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 43","ix":43,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-552.373,563.345],[-567.68,766.506],[-662.244,777.643],[-597.104,542.96]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 44","ix":44,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-492.024,590.857],[-472.351,755.253],[-551.977,764.644],[-537.321,570.216]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 45","ix":45,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-456.874,753.422],[-475.441,598.417],[-394.2,635.465],[-302.754,735.241]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 46","ix":46,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[8.08,-33.641],[0,0],[0,0],[0,0],[0,0]],"o":[[-8.079,33.612],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-437.286,130.053],[-461.523,230.918],[-525.388,227.253],[-541.828,237.044],[-581.684,224.791],[-582.477,161.575]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 47","ix":47,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-316.304,-455.122],[-335.268,-571.905],[-161.22,-636.209],[-136.474,-497.382]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 48","ix":48,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-307.233,-399.35],[-313.781,-439.633],[-133.724,-481.92],[-125.532,-435.94]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 49","ix":49,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-335.721,-477.54],[-322.54,-396.258],[-360.779,-388.585],[-524.281,-347.644],[-530.802,-427.522]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 50","ix":50,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-350.15,-566.408],[-338.273,-493.115],[-532.077,-443.413],[-536.499,-497.611],[-536.074,-497.753]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 51","ix":51,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[6.776,-28.23],[0,0]],"o":[[0,0],[-6.776,28.23],[0,0],[0,0]],"v":[[-583.554,77.803],[-413.163,29.674],[-433.517,114.393],[-582.676,146.773]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 52","ix":52,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-697.082,109.898],[-598.322,81.982],[-596.566,220.382],[-650.083,204.206],[-715.507,184.193]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 53","ix":53,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-18.794,71.433],[0,0],[0,0]],"o":[[0,0],[0,0],[19.304,-71.29],[0,0],[0,0],[0,0]],"v":[[-591.916,57.905],[-691.157,85.934],[-689.456,79.091],[-631.998,-134.779],[-528.109,-156.365],[-554.612,-56.674]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 54","ix":54,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-473.031,24.32],[-573.831,52.78],[-539.277,-53.725],[-511.044,-159.915],[-418.946,-179.013],[-458.093,-37.978]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 55","ix":55,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[8.022,-20.7]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.023,20.7],[0,0]],"v":[[-405.736,5.311],[-449.334,17.622],[-436.946,-33.884],[-409.45,-132.974],[-329.854,-116.683],[-288.893,-48.715],[-282.203,-19.798],[-387.793,1.188],[-365.428,-56.617],[-379.913,-62.343],[-403.951,-0.243]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 56","ix":56,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-714.317,114.765],[-730.389,179.612],[-793.743,160.23],[-794.196,160.115],[-837.879,149.637]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 57","ix":57,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[493.753,342.147],[471.303,219.666],[511.724,211.163],[531.681,334.56]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 58","ix":58,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[439.015,353.141],[417.841,230.918],[456.109,222.872],[478.531,345.21]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 59","ix":59,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[355.451,244.03],[402.591,234.124],[423.765,356.204],[378.411,365.28]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 60","ix":60,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[294.534,382.114],[270.128,261.724],[334.418,248.411],[357.349,369.518]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 61","ix":61,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[315.794,504.395],[306.808,451.887],[306.78,451.914],[306.78,451.857],[306.808,451.857],[298.531,403.357],[361.375,390.761],[380.735,493]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 62","ix":62,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[320.159,622.523],[320.868,626.818],[258.874,635.751],[238.465,533.913],[303.066,522.575],[320.131,622.523]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 63","ix":63,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[211.337,398.777],[187.044,278.931],[254.878,264.872],[279.284,385.178]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 64","ix":64,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[290.112,446.762],[250.824,453.174],[253.347,468.693],[292.776,462.251],[300.431,507.086],[235.375,518.482],[215.617,419.964],[283.224,406.422]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 65","ix":65,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[516.118,434.308],[504.893,361.987],[535.139,355.918],[552.175,461.106],[401.853,489.192],[382.408,386.523],[445.734,373.841],[456.506,443.068],[471.842,440.607],[460.984,370.777],[489.642,365.023],[500.811,436.77]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 66","ix":66,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[678.431,305.128],[656.518,180.729],[693.992,172.856],[714.459,297.913]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 67","ix":67,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[591.434,194.414],[641.297,183.936],[663.18,308.19],[614.084,318.039]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 68","ix":68,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[546.959,331.496],[526.975,207.985],[570.459,198.823],[593.051,322.249]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 69","ix":69,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[616.295,449.109],[567.482,458.242],[550.418,352.855],[596.963,343.521]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 70","ix":70,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[401.768,615.166],[336.316,624.585],[335.495,619.831],[318.431,519.883],[383.429,508.489]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 71","ix":71,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[636.874,561.427],[422.858,611.187],[404.575,504.652],[619.13,464.541]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 72","ix":72,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[966.544,448.622],[966.572,448.622]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 73","ix":73,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[556.796,-374.757],[571.025,-377.62],[571.195,-377.62],[712.361,-409.142],[728.802,-305.472],[576.383,-275.753],[569.665,-309.824],[606.26,-318.556],[602.632,-333.844],[566.603,-325.255]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 74","ix":74,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[230.414,-328.347],[157.082,-313.289],[132.591,-465.858],[205.3,-480.517]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 75","ix":75,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[465.775,-372.495],[251.447,-332.441],[226.333,-484.669],[437.599,-526.211]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 76","ix":76,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[527.032,-544.85],[541.744,-478.341],[491.599,-467.033],[495.057,-451.715],[545.117,-463.024],[560.934,-391.563],[486.808,-376.589],[458.433,-531.393]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 77","ix":77,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[17.122,-4.495],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-17.121,4.467],[0,0],[0,0],[0,0],[0,0]],"v":[[685.857,-576.086],[709.894,-424.688],[576.156,-394.827],[560.565,-465.258],[619.243,-478.599],[626.102,-513.184],[668.112,-524.179],[664.172,-539.382],[612.808,-525.925],[606.005,-491.684],[557.164,-480.575],[542.282,-547.856]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 78","ix":78,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[445.876,-599.963],[675.935,-647.69],[682.711,-597.53],[454.521,-552.666]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 79","ix":79,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[188.66,-657.166],[295.583,-685.597],[312.591,-619.918],[201.529,-599.162]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 80","ix":80,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[416.849,-639.416],[327.927,-622.782],[306.666,-704.779],[185.23,-672.512],[172.105,-731.663],[387.567,-799.202]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 81","ix":81,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[204.931,-583.845],[419.683,-623.984],[433.686,-547.512],[222.251,-505.941]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 82","ix":82,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[758.679,-590.4],[787.252,-442.21],[725.117,-428.066],[701.136,-579.092]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 83","ix":83,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[742.323,-83.014],[819.567,-132.115],[839.948,-79.435],[747.681,-46.224]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 84","ix":84,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[670.663,-65.721],[727.526,-76.515],[759.416,143.052],[706.691,154.16]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 85","ix":85,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[614.963,-55.157],[655.385,-62.829],[691.441,157.338],[653.797,165.268]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 86","ix":86,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[548.036,-42.445],[599.683,-52.237],[638.575,168.475],[588.6,178.983]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 87","ix":87,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[388.22,-12.096],[526.975,-38.436],[567.624,183.392],[430.002,212.308]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 88","ix":88,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[524.14,-53.896],[306.837,-12.641],[288.015,-112.045],[505.262,-156.937]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 89","ix":89,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[578.594,-172.082],[596.963,-67.725],[545.202,-57.905],[526.238,-161.261]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 90","ix":90,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[709.724,-199.167],[725.259,-92.09],[612.241,-70.617],[593.816,-175.232]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 91","ix":91,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[756.383,-230.947],[727.583,-412.52],[790.852,-426.921],[839.807,-251.389],[774.978,-234.784]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 92","ix":92,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[510.251,-248.612],[575.618,-259.605],[575.816,-259.634],[731.268,-289.954],[741.133,-227.797],[522.354,-182.591]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 93","ix":93,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-15.704,2.635],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[15.703,-2.634],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[271.914,-208.472],[318.997,-216.404],[323.76,-175.032],[339.18,-176.864],[334.361,-218.979],[489.104,-245.034],[501.349,-178.238],[284.301,-133.404]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 94","ix":94,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[489.614,-361.186],[541.573,-371.665],[561.104,-273.091],[507.416,-264.044]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 95","ix":95,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[72.313,-12.168]],"o":[[0,0],[0,0],[-72.312,12.196],[0,0]],"v":[[253.999,-316.982],[468.581,-357.063],[486.298,-260.493],[269.362,-223.961]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 96","ix":96,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[310.635,122.781],[212.641,137.669],[171.85,-88.053],[213.01,-96.556],[229.706,22.947],[245.069,20.742],[228.26,-99.706],[267.01,-107.693]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 97","ix":97,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[331.498,232.98],[233.504,253.249],[215.419,153.129],[313.555,138.241]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 98","ix":98,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[309.756,2.792],[372.94,-9.176],[414.752,215.515],[352.531,228.599]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 99","ix":99,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[657.765,556.56],[617.968,339.313],[666.922,329.492],[681.945,414.867],[697.252,412.062],[682.172,326.429],[718.002,319.242],[754.682,534.027],[730.276,539.695],[714.118,468.864],[698.981,472.386],[715.139,543.218]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 100","ix":100,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[923.145,244.89],[879.066,264.902],[729.709,294.85],[709.215,169.648],[776.963,155.419],[749.976,-30.362],[844.682,-64.433]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 101","ix":101,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[42.506,-551.434],[1.007,-538.666],[-24.024,-670.193],[19.715,-683.908],[151.555,-725.221],[180.694,-594.037]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 102","ix":102,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[56.056,-472.501],[15.123,-464.255],[3.955,-523.148],[45.17,-535.86],[184.097,-578.662],[201.189,-501.732]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 103","ix":103,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[85.961,-298.716],[80.008,-297.483],[68.074,-370.147],[68.074,-370.176],[68.074,-370.205],[54.922,-450.226],[59.74,-451.2],[117.312,-462.795],[127.999,-396.172],[90.354,-389.988],[92.878,-374.499],[130.493,-380.655],[141.804,-310.167]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 104","ix":104,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[120.146,-99.791],[114.704,-98.704],[82.616,-281.966],[88.626,-283.197],[232.966,-312.831],[263.267,-129.051],[203.032,-116.625],[190.333,-191.78],[175.025,-189.146],[187.809,-113.477],[160.143,-107.75],[160.172,-107.75]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 105","ix":105,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[162.298,145.314],[157.025,146.115],[118.418,-77.374],[123.804,-78.462],[156.629,-84.989],[197.277,140.017]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 106","ix":106,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[182.65,263.785],[177.549,264.845],[159.719,161.604],[164.963,160.802],[200.056,155.477],[218.282,256.398]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 107","ix":107,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.731,-28.773],[0,0],[0,0],[0,0],[-9.808,-32.296],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[16.895,-62.442],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.834,1.488],[0,0],[0,0],[0,0],[0,0],[30.869,-110.943],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[35.519,-127.919],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[9.751,25.366],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[17.63,-9.42],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[14.485,48.127],[0,0],[0,0],[0,0],[5.102,16.834],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-16.441,62.529],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-22.62,10.822],[0,0],[0,0],[0,0],[0,0],[-45.468,153.057],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-32.145,115.724],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-9.892,-25.309],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-17.66,9.334],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[17.051,-699.511],[-83.834,-667.903],[-89.22,-706.21],[-110.253,-701.858],[-107.078,-679.269],[-208.559,-641.792],[-212.839,-680.558],[-228.147,-677.379],[-223.61,-636.238],[-312.676,-603.341],[-325.403,-657.224],[-340.653,-654.046],[-327.388,-597.902],[-538.484,-519.941],[-554.839,-609.612],[-570.033,-606.462],[-553.649,-516.563],[-553.535,-515.217],[-656.575,-485.499],[-672.761,-581.182],[-648.212,-590.258],[-751.365,-568.842],[-794.82,-552.78],[-795.671,-559.652],[-810.95,-556.474],[-809.731,-546.539],[-1010.027,-497.295],[-1006.909,-481.92],[-807.69,-530.077],[-797.173,-444.987],[-955.375,-399.379],[-989.107,-394.455],[-985.989,-379.081],[-956.905,-381.256],[-942.364,-332.985],[-975.104,-325.513],[-971.958,-310.138],[-937.828,-317.954],[-911.069,-229.258],[-953.617,-219.895],[-949.309,-198.709],[-904.748,-208.5],[-883.091,-137.096],[-934.568,-126.16],[-931.422,-110.758],[-878.527,-122.037],[-872.008,-100.622],[-926.943,-88.683],[-923.825,-73.337],[-862.342,-86.68],[-828.099,-93.836],[-649.006,-131.256],[-699.265,55.929],[-914.443,-27.242],[-911.211,-11.409],[-703.403,71.104],[-704.452,74.939],[-704.509,75.112],[-708.392,90.801],[-880.54,139.415],[-876.26,160.486],[-868.805,158.398],[-814.606,171.366],[-867.076,205.724],[-863.731,222.128],[-794.083,176.548],[-734.188,194.871],[-744.619,236.959],[-850.408,287.721],[-847.148,303.639],[-748.7,256.341],[-749.211,258.975],[-759.501,297.054],[-806.584,459.302],[-811.261,480.173],[-790.738,486.328],[-617.343,535.573],[-647.135,642.937],[-782.15,623.354],[-777.869,644.398],[-652.578,662.548],[-684.355,776.984],[-754.937,757.115],[-750.09,780.935],[-690.137,797.798],[-707.003,858.58],[-710.093,869.717],[-711.368,874.642],[-687.813,869.775],[-668.509,800.203],[-569.353,788.494],[-573.69,846.098],[-557.844,842.806],[-553.62,786.632],[-469.772,776.726],[-464.188,823.365],[-448.88,820.188],[-454.294,774.922],[-284.726,754.91],[-260.659,781.163],[-236.14,776.068],[-245.862,765.445],[-223.98,727.081],[-159.718,760.206],[-156.6,759.548],[-150.392,747.38],[-216.212,713.453],[-154.134,604.63],[-97.299,593.064],[-88.001,678.095],[-144.864,653.901],[-150.902,668.39],[-86.045,695.961],[-80.802,743.829],[-59.684,739.45],[-59.882,737.617],[-36.07,734.554],[21.784,722.557],[20.367,711.479],[-14.754,716.002],[-27.255,625.529],[-42.647,627.734],[-30.147,717.977],[-61.582,722.014],[-76.152,589.026],[39.189,568.814],[51.293,716.432],[103.763,705.552],[102.997,700.141],[65.976,705.465],[54.553,566.121],[98.943,558.362],[125.022,701.142],[140.244,697.993],[138.544,688.63],[186.449,680.386],[187.951,688.087],[203.174,684.938],[176.046,544.849],[223.101,536.575],[250.852,675.032],[253.29,674.545],[266.102,671.881],[261.964,651.153],[404.405,630.626],[406.503,642.735],[427.536,638.385],[425.523,626.674],[639.709,576.858],[642.799,593.722],[663.804,589.37],[660.6,571.991],[757.318,549.516],[760.691,569.272],[775.971,566.094],[733.308,316.179],[823.649,298.056],[852.392,400.036],[867.331,395.685],[838.956,294.992],[885.699,285.63],[900.326,278.987],[963.057,439.661],[832.238,473.303],[824.046,448.223],[809.249,453.147],[822.005,492.141],[968.811,454.406],[994.691,520.714],[1010.027,517.536],[980.49,441.552],[949.338,361.759],[1007.419,379.481],[1002.6,355.689],[939.388,336.307],[914.5,272.547],[979.668,242.972],[975.246,221.24],[937.601,238.333],[937.318,238.476],[858.657,-70.531],[859.848,-71.076],[890.122,-87.222],[910.361,-97.816],[907.13,-113.734],[854.179,-85.763],[832.947,-140.618],[893.807,-179.297],[890.462,-195.732],[739.857,-99.963],[732.402,-151.44],[783.879,-164.295],[780.138,-179.526],[730.134,-167.044],[725.004,-202.316],[779.627,-213.625],[780.138,-213.74],[872.632,-237.417],[881.277,-240.938],[876.884,-262.555],[865.914,-258.06],[854.887,-255.254],[806.613,-428.324],[846.298,-412.835],[843.095,-428.696],[802.673,-444.586],[802.305,-446.133],[798.223,-467.347],[833.712,-474.763],[830.594,-490.108],[795.274,-482.722],[790.994,-504.825],[826.087,-512.211],[822.969,-527.586],[788.046,-520.228],[773.93,-593.407],[808.228,-600.135],[803.92,-621.35],[698.017,-600.536],[686.112,-688.603],[785.552,-711.564],[782.433,-726.938],[683.986,-704.206],[676.191,-761.954],[771.549,-780.506],[768.402,-795.909],[737.504,-789.868],[722.679,-874.642],[707.429,-871.464],[722.225,-786.891],[674.094,-777.528],[662.641,-862.188],[647.362,-859.01],[673.809,-663.293],[443.041,-615.424],[408.175,-805.643],[443.495,-816.724],[288.354,-784.543],[169.073,-747.152],[166.918,-759.349],[145.914,-754.997],[148.436,-740.682]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[2764.189,877.768],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":2,"cix":2,"np":111,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-76.915,187.751],[-20.137,178.16],[9.06,354.15],[-42.417,364.801]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":2,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-141.12,198.631],[-92.25,190.356],[-57.639,367.95],[-106.168,378]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 3","ix":3,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[138.66,676.758],[148.326,726.717],[100.591,734.935],[79.132,617.378],[125.621,609.247]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 4","ix":4,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-444.427,507.753],[-450.351,529.483],[-489.384,515.254],[-435.866,311.749],[-391.645,314.212]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 5","ix":5,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-386.118,503.544],[-398.364,548.465],[-435.696,534.837],[-375.743,315.099],[-335.435,317.36]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 6","ix":6,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-383.68,553.818],[-319.532,318.248],[-262.839,321.397],[-327.044,568.735],[-336.795,570.911]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 7","ix":7,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-348.162,-155.126],[-353.151,-179.805],[-333.706,-225.127],[-296.09,-234.317],[-282.143,-168.668]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 8","ix":8,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-384.162,246.014],[-276.077,240.345],[-262.613,305.65],[-480.852,293.512],[-455.567,188.238],[-385.126,188.839],[-290.307,171.518],[-279.309,224.799],[-384.984,230.324]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 9","ix":9,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-225.422,23.642],[-237.611,-33.733],[-156.2,-49.193],[-159.091,-64.654],[-240.871,-49.107],[-250.82,-95.947],[-145.06,-113.641],[-147.639,-129.13],[-254.08,-111.321],[-263.661,-156.414],[-126.72,-184.529],[-116.43,-133.338],[-114.332,-122.974],[-90.266,-3.213]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 10","ix":10,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-312.701,63.066],[-293.482,156.144],[-386.6,173.149],[-451.797,172.605],[-430.792,86.543],[-429.12,86.199]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 11","ix":11,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-302.099,38.902],[-309.526,6.808],[-355.192,-68.977],[-440.373,-86.384],[-430.452,-122.201],[-429.914,-122.315],[-278.883,-153.293],[-254.25,-37.255],[-240.672,26.677]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 12","ix":12,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-220.972,142.888],[-278.175,153.338],[-297.45,60.031],[-239.227,48.465]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 13","ix":13,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-191.747,294.027],[-246.88,304.878],[-275,168.712],[-217.967,158.291]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 14","ix":14,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-172.868,391.6],[-269.756,409.951],[-246.653,320.825],[-188.77,309.43]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 15","ix":15,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-188.203,38.301],[-121.391,381.149],[-151.834,387.448],[-218.193,44.284]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 16","ix":16,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-124.367,25.617],[-95.255,174.953],[-144.124,183.228],[-172.953,35.266]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 17","ix":17,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-47.973,10.443],[-22.716,162.671],[-79.919,172.348],[-109.117,22.583]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 18","ix":18,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[68.021,-12.633],[127.151,329.7],[80.153,339.435],[58.553,202.009],[43.189,204.5],[64.902,342.584],[24.282,351.001],[-32.723,7.408],[10.648,-1.209],[30.518,122.589],[45.882,120.069],[25.926,-4.244]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 19","ix":19,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[6.435,33.011],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.434,-33.011],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-74.987,-6.248],[-98.43,-122.859],[-5.113,-142.013],[-8.231,-157.416],[-101.519,-138.263],[-111.469,-187.65],[32.219,-217.139],[64.307,-33.934],[34.118,-27.95],[14.814,-126.953],[-39.667,-117.076],[-36.89,-101.645],[2.512,-108.773],[6.735,-87.215],[-33.318,-80.314],[-30.71,-64.854],[9.74,-71.811],[18.868,-24.915]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 20","ix":20,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-583.636,-260.543],[-573.148,-263.148],[-560.761,-111.207],[-609.658,-101.043],[-623.576,-250.579]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 21","ix":21,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-74.108,-603.791],[-49.107,-472.321],[-156.455,-439.225],[-179.869,-570.666]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 22","ix":22,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-145.428,-377.297],[-153.706,-423.765],[-152.486,-424.05],[-151.976,-424.194],[-46.159,-456.804],[-35.246,-399.457]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 23","ix":23,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[4.524,-385.428],[16.402,-313.137],[-19.797,-304.548],[-23.255,-321.01],[-38.449,-317.718],[-33.318,-293.324],[-27.96,-267.929],[-12.767,-271.222],[-16.537,-289.144],[18.981,-297.59],[29.64,-232.628],[-114.389,-203.081],[-141.63,-355.996]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 24","ix":24,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-618.219,473.911],[-740.279,478.32],[-808.14,458.938],[-779.708,363.141],[-779.623,362.797],[-771.432,329.815],[-598.49,402.794]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 25","ix":25,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-549.167,305.45],[-451.684,310.891],[-504.039,509.929],[-596.562,476.173]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 26","ix":26,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-689.68,280.972],[-679.674,284.035],[-679.674,284.007],[-635.793,297.262],[-635.822,297.349],[-574.168,315.242],[-594.238,387.563],[-766.272,314.984],[-767.435,313.696],[-754.423,261.159]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 27","ix":27,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-449.359,-134.34],[-545.425,-114.385],[-557.869,-266.956],[-401.737,-305.893]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 28","ix":28,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-314.543,-321.182],[-299.35,-249.691],[-344.902,-238.555],[-369.365,-181.522],[-363.413,-152.005],[-425.718,-139.207],[-378.776,-308.241]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 29","ix":29,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-156.88,-352.933],[-129.639,-199.961],[-266.921,-171.789],[-280.981,-238.011],[-240.275,-247.974],[-235.173,-220.46],[-219.894,-223.381],[-231.46,-285.823],[-246.767,-282.874],[-243.167,-263.435],[-284.241,-253.385],[-299.293,-324.245]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 30","ix":30,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-769.986,-67.632],[-800.713,-274.629],[-578.732,-331.574],[-574.452,-279.009],[-640.301,-262.575],[-624.965,-97.865],[-666.55,-89.247],[-681.176,-234.546],[-696.625,-232.914],[-681.856,-86.041]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 31","ix":31,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-829.343,-361.579],[-785.236,-64.453],[-891.875,-42.15],[-914.212,-115.73],[-852.049,-134.97],[-903.866,-296.674],[-918.663,-291.807],[-871.721,-145.306],[-918.748,-130.732],[-975.979,-319.321]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 32","ix":32,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-586.896,-431.494],[-580.036,-347.464],[-803.038,-290.261],[-814.263,-365.931]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 33","ix":33,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-722.732,-513.978],[-706.745,-419.47],[-817.183,-387.604],[-827.983,-475.07]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 34","ix":34,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[165.221,484.763],[184.893,582.907],[95.999,598.482],[85.652,521.839],[70.231,524.015],[80.663,601.174],[2.71,614.83],[-3.526,555.308],[-18.946,556.997],[-17.246,573.173],[-64.641,580.273],[-62.316,595.819],[-15.63,588.805],[-12.625,617.522],[-113,635.101],[-123.12,542.567]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 35","ix":35,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.669,492.092],[-2.42,372.561],[136.647,343.786],[143.365,376.912],[65.129,393.116],[68.276,408.491],[146.483,392.315],[151.643,417.682],[70.742,434.43],[73.888,449.833],[154.761,433.085],[160.94,463.576]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 36","ix":36,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-135.706,470.848],[-5.85,442.618],[3.419,495.155],[-125.982,521.095]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 37","ix":37,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-148.858,402.88],[-17.671,375.709],[-8.572,427.158],[-138.682,455.445]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 38","ix":38,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-146.392,528.566],[-309.979,564.956],[-274.121,426.757],[-169.891,407.031]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 39","ix":39,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[30.954,-54.255]],"o":[[0,0],[0,0],[0,0],[0,0],[-30.954,54.282],[0,0]],"v":[[-330.956,772.669],[-218.193,560.633],[-144.521,544.256],[-134.146,639.08],[-199.23,652.308],[-292.064,815.1]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 40","ix":40,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-380.619,718.5],[-331.495,585.827],[-238.206,565.07],[-342.124,760.473]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 41","ix":41,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-600.757,491.348],[-447.743,547.147],[-447.545,547.233],[-447.545,547.205],[-402.786,563.524],[-420.927,620.012],[-483.715,591.926],[-490.008,606.27],[-411.46,641.399],[-388.159,568.85],[-347.34,583.766],[-392.439,705.588],[-416.562,679.248],[-626.383,583.595]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 42","ix":42,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-826.764,525.274],[-812.477,474.026],[-742.263,494.096],[-622.613,489.772],[-646.679,576.437]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 43","ix":43,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-587.519,625.079],[-602.827,828.212],[-697.391,839.378],[-632.222,604.695]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 44","ix":44,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-527.17,652.594],[-507.469,816.96],[-587.094,826.351],[-572.468,631.922]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 45","ix":45,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-492.02,815.128],[-510.559,660.152],[-429.318,697.199],[-337.901,796.947]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 46","ix":46,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[8.079,-33.612],[0,0],[0,0],[0,0],[0,0]],"o":[[-8.078,33.64],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-472.405,191.76],[-496.641,292.624],[-560.534,288.959],[-576.975,298.751],[-616.802,286.525],[-617.623,223.281]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 47","ix":47,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-351.45,-393.416],[-370.386,-510.199],[-196.338,-574.474],[-171.621,-435.645]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 48","ix":48,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-342.379,-337.615],[-348.927,-377.898],[-168.871,-420.214],[-160.679,-374.205]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 49","ix":49,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-370.868,-415.833],[-357.686,-334.552],[-395.926,-326.851],[-559.428,-285.909],[-565.919,-365.788]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 50","ix":50,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-385.296,-504.702],[-373.391,-431.408],[-567.224,-381.707],[-571.645,-435.874],[-571.221,-436.018]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 51","ix":51,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[6.803,-28.258],[0,0]],"o":[[0,0],[-6.803,28.23],[0,0],[0,0]],"v":[[-618.672,139.538],[-448.282,91.41],[-468.663,176.127],[-617.793,208.508]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 52","ix":52,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-732.228,171.604],[-633.469,143.718],[-631.712,282.117],[-685.23,265.94],[-750.654,245.899]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 53","ix":53,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[-18.793,71.432],[0,0],[0,0]],"o":[[0,0],[0,0],[19.332,-71.318],[0,0],[0,0],[0,0]],"v":[[-627.063,119.611],[-726.304,147.64],[-724.603,140.826],[-667.145,-73.071],[-563.227,-94.63],[-589.759,5.032]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 54","ix":54,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-508.178,86.057],[-608.978,114.515],[-574.423,8.01],[-546.162,-98.18],[-454.093,-117.305],[-493.239,23.728]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 55","ix":55,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[8.022,-20.7]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-7.994,20.701],[0,0]],"v":[[-440.883,67.017],[-484.48,79.356],[-472.093,27.822],[-444.597,-71.239],[-364.972,-54.977],[-324.011,13.021],[-317.321,41.908],[-422.94,62.923],[-400.575,5.118],[-415.06,-0.637],[-439.098,61.463]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 56","ix":56,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-749.463,176.471],[-765.536,241.348],[-828.861,221.965],[-829.343,221.821],[-872.997,211.371]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 57","ix":57,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[458.606,403.882],[436.185,281.401],[476.578,272.897],[496.563,396.266]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 58","ix":58,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[403.898,414.847],[382.695,292.624],[420.962,284.579],[443.384,406.945]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 59","ix":59,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[320.304,305.737],[367.444,295.831],[388.619,417.91],[343.265,427.015]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 60","ix":60,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[259.416,443.821],[234.981,323.459],[299.299,310.146],[322.231,431.224]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 61","ix":61,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[280.647,566.13],[271.69,513.622],[271.662,513.622],[271.633,513.593],[271.662,513.564],[263.384,465.064],[326.229,452.467],[345.589,554.735]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 62","ix":62,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[285.013,684.259],[285.75,688.524],[223.728,697.457],[203.318,595.619],[267.948,584.311],[285.013,684.23]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 63","ix":63,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176.219,460.513],[151.898,340.637],[219.731,326.608],[244.137,446.885]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 64","ix":64,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[254.994,508.469],[215.677,514.91],[218.2,530.399],[257.63,523.957],[265.284,568.792],[200.229,580.216],[180.471,481.699],[248.106,468.128]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 65","ix":65,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[481,496.014],[469.747,423.694],[500.021,417.624],[517.028,522.841],[366.735,550.927],[347.29,448.259],[410.616,435.547],[421.388,504.804],[436.695,502.342],[425.838,432.512],[454.496,426.757],[465.665,498.477]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 66","ix":66,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[643.284,366.862],[621.372,242.464],[658.846,234.591],[679.312,359.619]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 67","ix":67,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[556.289,256.149],[606.15,245.671],[628.033,369.926],[578.937,379.746]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 68","ix":68,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[511.813,393.202],[491.829,269.691],[535.312,260.558],[557.933,383.983]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 69","ix":69,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[581.177,510.845],[532.335,519.978],[515.271,414.561],[561.816,405.228]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 70","ix":70,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[366.622,676.872],[301.17,686.32],[300.348,681.567],[283.284,581.619],[348.282,570.224]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 71","ix":71,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[601.756,623.133],[387.74,672.893],[369.429,566.358],[583.983,526.248]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 72","ix":72,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[931.426,510.329],[931.426,510.358]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 73","ix":73,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[521.677,-313.022],[535.907,-315.885],[536.077,-315.885],[677.214,-347.407],[693.655,-243.736],[541.265,-214.019],[534.518,-248.089],[571.142,-256.821],[567.514,-272.109],[531.457,-263.52]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 74","ix":74,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[195.268,-266.612],[121.936,-251.581],[97.444,-404.152],[170.153,-418.782]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 75","ix":75,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[430.628,-310.789],[216.329,-270.707],[191.214,-422.962],[402.452,-464.505]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 76","ix":76,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[491.885,-483.144],[506.597,-416.635],[456.481,-405.298],[459.91,-390.009],[509.999,-401.29],[525.788,-329.856],[451.662,-314.883],[423.287,-469.659]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 77","ix":77,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[17.121,-4.496],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-17.121,4.466],[0,0],[0,0],[0,0],[0,0]],"v":[[650.739,-514.379],[674.748,-362.953],[541.01,-333.092],[525.419,-403.523],[584.125,-416.865],[590.984,-451.45],[632.965,-462.444],[629.025,-477.646],[577.662,-464.19],[570.887,-429.948],[522.046,-418.869],[507.164,-486.149]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 78","ix":78,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[410.73,-538.228],[640.789,-585.983],[647.564,-535.794],[419.403,-490.931]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 79","ix":79,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[153.514,-595.46],[260.437,-623.89],[277.473,-558.212],[166.383,-537.427]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 80","ix":80,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[381.731,-577.681],[292.78,-561.075],[271.52,-643.073],[150.112,-610.777],[136.959,-669.957],[352.449,-737.467]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 81","ix":81,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[169.784,-522.138],[384.537,-562.278],[398.569,-485.777],[187.104,-444.207]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 82","ix":82,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[723.533,-528.694],[752.106,-380.475],[689.97,-366.36],[666.018,-517.386]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 83","ix":83,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[707.205,-21.279],[784.449,-70.38],[804.802,-17.7],[712.534,15.482]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 84","ix":84,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[635.517,-3.986],[692.38,-14.78],[724.27,204.786],[671.545,215.866]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 85","ix":85,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[579.844,6.578],[620.266,-1.095],[656.323,219.073],[618.65,227.004]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 86","ix":86,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[512.89,19.29],[564.565,9.47],[603.429,230.182],[553.454,240.689]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 87","ix":87,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[353.101,49.639],[491.829,23.299],[532.478,245.098],[394.856,274.043]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 88","ix":88,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[488.994,7.81],[271.718,49.065],[252.896,-50.31],[470.115,-95.202]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 89","ix":89,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[543.447,-110.348],[561.816,-6.019],[510.055,3.83],[491.12,-99.555]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 90","ix":90,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[674.578,-137.433],[690.14,-30.354],[577.095,-8.91],[558.698,-113.497]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 91","ix":91,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[721.236,-169.212],[692.437,-350.814],[755.706,-365.186],[804.66,-189.654],[739.86,-173.048]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 92","ix":92,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[475.104,-186.877],[540.471,-197.899],[540.669,-197.929],[696.122,-228.219],[705.986,-166.062],[487.208,-120.855]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 93","ix":93,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[-15.676,2.635],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[15.704,-2.662],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[236.767,-146.737],[283.851,-154.668],[288.613,-113.297],[304.062,-115.129],[299.214,-157.273],[453.986,-183.326],[466.231,-116.532],[249.154,-71.697]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 94","ix":94,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[454.468,-299.452],[506.455,-309.958],[525.958,-211.355],[472.27,-202.309]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 95","ix":95,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[72.312,-12.197]],"o":[[0,0],[0,0],[-72.312,12.168],[0,0]],"v":[[218.88,-255.246],[433.463,-295.357],[451.151,-198.759],[234.216,-162.226]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 96","ix":96,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[275.517,184.516],[177.495,199.403],[136.732,-26.317],[177.863,-34.821],[194.559,84.653],[209.951,82.449],[193.113,-37.971],[231.863,-45.987]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 97","ix":97,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[296.38,294.686],[198.386,314.984],[180.301,214.864],[278.437,199.948]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 98","ix":98,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[274.638,64.526],[337.794,52.53],[379.605,277.25],[317.384,290.334]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 99","ix":99,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[622.647,618.266],[582.821,401.019],[631.775,391.198],[646.827,476.574],[662.106,473.797],[647.025,388.135],[682.884,380.949],[719.536,595.733],[695.129,601.431],[678.972,530.571],[663.835,534.121],[679.992,604.952]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 100","ix":100,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[887.999,306.624],[843.92,326.637],[694.563,356.584],[674.096,231.384],[741.816,217.154],[714.83,31.372],[809.564,-2.698]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 101","ix":101,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[7.359,-489.728],[-34.14,-476.931],[-59.142,-608.487],[-15.432,-622.201],[116.408,-663.515],[145.548,-532.331]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 102","ix":102,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[20.937,-410.794],[-19.995,-402.549],[-31.192,-461.413],[10.052,-474.125],[148.978,-516.956],[166.071,-439.998]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 103","ix":103,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[50.814,-236.979],[44.861,-235.749],[32.928,-308.441],[32.956,-308.441],[32.928,-308.47],[32.928,-308.499],[19.775,-388.492],[24.594,-389.465],[82.166,-401.061],[92.88,-334.437],[55.208,-328.282],[57.731,-312.765],[95.347,-318.92],[106.685,-248.433]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 104","ix":104,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[85,-38.057],[79.586,-36.997],[47.498,-220.26],[53.479,-221.491],[197.819,-251.095],[228.15,-67.346],[167.885,-54.891],[155.186,-130.074],[139.879,-127.412],[152.663,-51.741],[125.025,-46.044],[125.025,-46.016]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 105","ix":105,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[127.151,207.048],[121.907,207.821],[83.299,-15.667],[88.685,-16.727],[121.482,-23.255],[162.131,201.723]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 106","ix":106,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[147.532,325.491],[142.402,326.551],[124.572,223.311],[129.816,222.509],[164.937,217.184],[183.164,318.134]]},"ix":2}},{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 107","ix":107,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-8.731,-28.774],[0,0],[0,0],[0,0],[-9.78,-32.295],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[16.894,-62.442],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.863,1.517],[0,0],[0,0],[0,0],[0,0],[30.897,-110.972],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[35.518,-127.919],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[9.751,25.338],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[17.631,-9.42],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[14.485,48.128],[0,0],[0,0],[0,0],[5.102,16.806],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-16.441,62.5],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-22.62,10.794],[0,0],[0,0],[0,0],[0,0],[-45.439,153.058],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-32.116,115.724],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-9.922,-25.31],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-17.66,9.333],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-18.096,-637.776],[-118.981,-606.168],[-124.367,-644.476],[-145.4,-640.124],[-142.225,-617.563],[-243.706,-580.086],[-247.986,-618.852],[-263.293,-615.673],[-258.757,-574.532],[-347.793,-541.636],[-360.55,-595.489],[-375.8,-592.34],[-362.505,-536.195],[-573.63,-458.207],[-589.957,-547.906],[-605.18,-544.728],[-588.795,-454.828],[-588.682,-453.482],[-691.721,-423.793],[-707.907,-519.447],[-683.359,-528.523],[-786.483,-507.136],[-829.967,-491.074],[-830.817,-497.945],[-846.096,-494.768],[-844.877,-484.832],[-1045.173,-435.589],[-1042.055,-420.214],[-842.836,-468.341],[-832.32,-383.252],[-990.521,-337.644],[-1024.253,-332.748],[-1021.135,-317.345],[-992.052,-319.521],[-977.51,-271.279],[-1010.222,-263.778],[-1007.104,-248.403],[-972.975,-256.22],[-946.187,-167.522],[-988.764,-158.189],[-984.455,-136.975],[-939.894,-146.766],[-918.238,-75.391],[-969.686,-64.425],[-966.568,-49.051],[-913.645,-60.302],[-907.154,-38.887],[-962.061,-26.947],[-958.943,-11.602],[-897.488,-24.943],[-863.246,-32.102],[-684.124,-69.521],[-734.411,117.664],[-949.589,34.465],[-946.357,50.325],[-738.55,132.81],[-739.599,136.646],[-739.627,136.847],[-743.51,152.507],[-915.686,201.15],[-911.406,222.223],[-903.951,220.104],[-849.753,233.102],[-902.194,267.43],[-898.877,283.863],[-829.23,238.255],[-769.306,256.607],[-779.737,298.693],[-885.526,349.427],[-882.294,365.346],[-783.847,318.076],[-784.357,320.711],[-794.647,358.789],[-841.73,521.037],[-846.408,541.88],[-825.885,548.035],[-652.461,597.309],[-682.282,704.644],[-817.268,685.089],[-812.987,706.132],[-687.725,724.284],[-719.501,838.69],[-790.083,818.85],[-785.236,842.642],[-725.255,859.505],[-742.149,920.287],[-745.239,931.453],[-746.515,936.378],[-722.959,931.481],[-703.655,861.91],[-604.471,850.2],[-608.808,907.804],[-592.991,904.512],[-588.767,848.367],[-504.918,838.462],[-499.334,885.101],[-484.027,881.923],[-489.441,836.629],[-319.873,816.616],[-295.806,842.87],[-271.287,837.774],[-281.009,827.182],[-259.126,788.788],[-194.836,821.941],[-191.718,821.283],[-185.539,809.087],[-251.331,775.16],[-189.28,666.364],[-132.446,654.798],[-123.148,739.802],[-180.011,715.638],[-186.049,730.096],[-121.192,757.667],[-115.948,805.565],[-94.83,801.185],[-95.028,799.353],[-71.217,796.289],[-13.362,784.265],[-14.779,773.185],[-49.873,777.708],[-62.401,687.236],[-77.765,689.47],[-65.293,779.712],[-96.729,783.749],[-111.271,650.761],[4.043,630.548],[16.147,778.166],[68.616,767.258],[67.851,761.847],[30.83,767.172],[19.435,627.856],[63.825,620.069],[89.876,762.849],[105.098,759.699],[103.397,750.366],[151.302,742.092],[152.805,749.793],[168.027,746.645],[140.928,606.556],[187.983,598.311],[215.734,736.767],[218.144,736.251],[230.956,733.589],[226.817,712.86],[369.287,692.361],[371.356,704.472],[392.389,700.091],[390.377,688.382],[604.591,638.564],[607.681,655.456],[628.657,651.105],[625.482,633.726],[722.172,611.223],[725.545,630.978],[740.824,627.828],[698.163,377.886],[788.502,359.791],[817.274,461.743],[832.213,457.421],[803.81,356.728],[850.553,347.337],[865.18,340.694],[927.91,501.397],[797.091,535.009],[788.899,509.957],[774.131,514.882],[786.887,553.876],[933.693,516.142],[959.573,582.449],[974.909,579.272],[945.344,503.286],[914.191,423.493],[972.301,441.216],[967.454,417.396],[904.241,398.013],[879.353,334.253],[944.522,304.678],[940.128,282.976],[902.456,300.068],[902.172,300.183],[823.51,-8.825],[824.701,-9.34],[854.975,-25.517],[875.243,-36.081],[871.983,-51.999],[819.032,-24.056],[797.829,-78.912],[858.66,-117.592],[855.315,-133.996],[704.739,-38.257],[697.255,-89.705],[748.732,-102.589],[744.991,-117.82],[694.988,-105.309],[689.857,-140.61],[744.509,-151.891],[744.991,-152.005],[837.485,-175.683],[846.131,-179.232],[841.737,-200.82],[830.767,-196.353],[819.74,-193.519],[771.466,-366.59],[811.18,-351.129],[807.948,-366.961],[767.555,-382.852],[767.186,-384.397],[763.076,-405.612],[798.565,-413.057],[795.447,-428.402],[760.128,-421.016],[755.876,-443.09],[790.969,-450.477],[787.822,-465.879],[752.899,-458.521],[738.811,-531.672],[773.082,-538.429],[768.773,-559.615],[662.871,-538.801],[650.965,-626.868],[750.433,-649.858],[747.287,-665.232],[648.868,-642.471],[641.044,-700.219],[736.402,-718.8],[733.284,-734.174],[702.358,-728.162],[687.533,-812.908],[672.282,-809.758],[687.079,-725.185],[638.947,-715.822],[627.495,-800.454],[612.244,-797.304],[638.691,-601.587],[407.895,-553.689],[373.028,-743.937],[408.348,-754.989],[253.208,-722.808],[133.955,-685.445],[131.772,-697.614],[110.767,-693.262],[113.318,-678.975]]},"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[1041.798,1217.487],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"marker","sr":1,"st":0,"op":1440.0000586524,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[292.814,386.802,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[138.534,138.534,100],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[128.445,128.445,100],"t":35},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[138.534,138.534,100],"t":70},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[128.445,128.445,100],"t":105},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[138.534,138.534,100],"t":140},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[128.445,128.445,100],"t":175},{"s":[138.534,138.534,100],"t":210.000008553475}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[649.986,650,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[116.362,-76.959],[-1.956,225.035],[-159.647,0],[-1.388,-160.902]],"o":[[-116.362,-76.959],[1.389,-160.902],[159.647,0],[1.928,225.035]],"v":[[0,386.553],[-290.608,-95.64],[0,-386.552],[290.636,-95.64]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.4549,0.7294,0.8039],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[292.814,386.802],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4}],"v":"4.8.0","fr":29.9700012207031,"op":210.000008553475,"ip":0,"assets":[]} \ No newline at end of file diff --git a/src/components/hooks/useGeolocation.jsx b/src/components/hooks/useGeolocation.jsx new file mode 100644 index 0000000..e76b73a --- /dev/null +++ b/src/components/hooks/useGeolocation.jsx @@ -0,0 +1,140 @@ +import { makeStyles } from 'tss-react/mui'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; +import Lottie from "react-lottie-player"; +import mapAnimation from './mapanim.json' +import { Button, Dialog, DialogActions, DialogContent, Typography } from '@mui/material'; +const useStyles = makeStyles()(theme => ({ +})); +const useGeolocation = ({ highAccuracy = true, enabled = true, watchLocation = true }) => { + const { classes } = useStyles() + const [error, setError] = useState(null); + const [isGeolocationEnabled, setIsGeolocationEnabled] = useState(false); + const [isGeolocationPermissionDismissed, setIsGeolocationPermissionDismissed] = useState(true); + + const [latLng, setLatLng] = useState(null); + + useEffect( + () => { + setIsGeolocationPermissionDismissed(navigator.geolocation) + }, [navigator.geolocation] + ); + + const setIfDisplayDialog = useCallback( + (result) => { + if (result?.state === 'granted') { + setIsGeolocationPermissionDismissed(true) + } else if (result?.state === 'prompt') { + setIsGeolocationPermissionDismissed(false) + } else if (result?.state === 'denied') { + setIsGeolocationPermissionDismissed(false) + } + }, + [], + ); + + useEffect( + () => { + if (navigator?.permissions?.query) { + navigator.permissions.query({ name: 'geolocation' }).then((result) => { + setIfDisplayDialog(result) + result.onchange = (result) => { + setIfDisplayDialog(result?.target) + } + }) + } else { + setIsGeolocationPermissionDismissed(false) + } + }, [] + ); + + const dialog = useMemo( + () => { + if (enabled && !isGeolocationPermissionDismissed) { + return setIsGeolocationPermissionDismissed(true)}> + + + Please enable location services so we can roughly estimate your address + + + + + + } + }, [enabled, isGeolocationPermissionDismissed] + ); + + const updateCoordinates = useCallback( + ({ coords, timestamp }) => { + setLatLng({ lat: coords.latitude, lng: coords.longitude }) + return { lat: coords.latitude, lng: coords.longitude } + }, + [], + ); + + const setErrorCallback = useCallback( + (e) => { + setError(e?.message) + setIsGeolocationPermissionDismissed(false) + }, + [], + ); + + const fetchNewLocation = useCallback( + async () => { + try { + const pos = await new Promise((resolve, reject) => { + navigator.geolocation.getCurrentPosition(resolve, reject); + }); + + return { + lng: pos.coords.longitude, + lat: pos.coords.latitude, + }; + } catch(e) { + setError(e?.message) + setIsGeolocationPermissionDismissed(false) + } + + }, + [], + ); + + useEffect( + () => { + let watchID + if (enabled) { + navigator?.geolocation?.getCurrentPosition(updateCoordinates, setErrorCallback) + if (watchLocation) { + watchID = navigator?.geolocation?.watchPosition( + updateCoordinates, + setErrorCallback, + { + enableHighAccuracy: highAccuracy, + maximumAge: 15000, + } + ) + } + } + return () => { + if (watchID) { + navigator?.geolocation?.clearWatch(watchID) + } + } + }, [enabled, highAccuracy, setErrorCallback, updateCoordinates] + ); + + return { + dialog, + error, + isGeolocationEnabled, + latLng, + fetchNewLocation + } +} + +export { useGeolocation } \ No newline at end of file diff --git a/src/components/hooks/useGeolocation.stories.js b/src/components/hooks/useGeolocation.stories.js new file mode 100644 index 0000000..e827ae2 --- /dev/null +++ b/src/components/hooks/useGeolocation.stories.js @@ -0,0 +1,57 @@ +import { Button } from "@mui/material"; +import { useGeolocation } from "./useGeolocation"; +import ReactJson from "react-json-view"; +import { useState } from "react"; + +const useGeolocationStory = { + title: "Hooks/useGeolocation", +}; + +export default useGeolocationStory; + +export const Default = ({ ...args }) => { + const { + dialog, + error, + isGeolocationEnabled, + latLng + } = useGeolocation(args); + + return ( + <> + {dialog} + + + ) +}; + +Default.args = {}; + +const DisablePeriodicUpdates = Default.bind({}); +DisablePeriodicUpdates.args = { + watchLocation: false +}; + +export const ManualUpdate = ({ ...args }) => { + const { + dialog, + error, + isGeolocationEnabled, + latLng, + fetchNewLocation + } = useGeolocation({ watchLocation: false }); + + const [location, setLocation] = useState({}); + return ( + <> + {dialog} + + + + ) +} \ No newline at end of file diff --git a/src/components/hooks/useUrlState.js b/src/components/hooks/useUrlState.js index 7a51c82..3faa43e 100644 --- a/src/components/hooks/useUrlState.js +++ b/src/components/hooks/useUrlState.js @@ -1,10 +1,22 @@ -import React, { useCallback, useMemo, useRef, useState } from "react"; - +import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import _JSONUrl from "json-url"; +import JSONCrush from "jsoncrush"; import moment from "moment"; +import { base64ArrayBuffer } from "../DocumentGallery/b64util"; +import { Base64 } from "js-base64"; +import isEmpty from "lodash.isempty"; -export function useUrlState({ queryKey, defaultValue, disable = false }) { +const ENCODE_TYPES = { + crush: 'crush', + b64: 'b64', + lzma: 'lzma', +} +export function useUrlState({ queryKey, defaultValue, disable = false, encode = ENCODE_TYPES.crush }) { + const JSONUrl = _JSONUrl('lzma'); const [state, setState] = useState(defaultValue); const ref = useRef(state); + const [url, setUrl] = useState(''); + const [qsValue, setQsValue] = useState(); const setQueryString = useCallback((qsValue) => { const newurl = @@ -18,46 +30,131 @@ export function useUrlState({ queryKey, defaultValue, disable = false }) { } }, [disable]); - const getQueryStringValue = useMemo(() => { - const qs = new URLSearchParams(window.location.search); - const pValue = qs.get(queryKey) || state || null - let convertedValue = pValue; - if (pValue) { - try { - convertedValue = JSON.parse(pValue); - const calltype = Object.prototype.toString.call(convertedValue) - if (calltype === '[object String]') { + const getQueryStringValue = useCallback( + async () => { + const qs = new URLSearchParams(window?.location?.search); + const pValue = qs.get(queryKey) || state || null + // const uncrush = JSONCrush.uncrush(decodeURIComponent(window?.location?.search))?.substring(1); + + let convertedValue = ''; + let getParam = '' + let uncrush = ''; + if (pValue) { + try { + switch (encode) { + case ENCODE_TYPES.crush: + uncrush = JSONCrush.uncrush(decodeURIComponent(pValue)) + break; + case ENCODE_TYPES.b64: + uncrush = Base64.decode(pValue) + break; + case ENCODE_TYPES.lzma: + uncrush = await JSONUrl.decompress(pValue) + break; + default: + break; + } + try { + getParam = uncrush ? JSON.parse(uncrush) : {}; + } catch (error) { + convertedValue = uncrush; + + try { + const isDate = moment(new Date(convertedValue)).isValid(); + convertedValue = isDate ? moment(convertedValue).toDate() : convertedValue; + } catch (dateparseError) { + } + + ref.current = convertedValue; + setQsValue(convertedValue); + return + } + try { - const isDate = moment(new Date(convertedValue)).isValid(); - convertedValue = isDate ? moment(convertedValue).toDate() : convertedValue; - } catch (dateparseError) { + convertedValue = JSON.parse(getParam); + } catch (error) { + convertedValue = getParam; + try { + const isDate = moment(new Date(convertedValue)).isValid(); + convertedValue = isDate ? moment(convertedValue).toDate() : convertedValue; + } catch (dateparseError) { + } + ref.current = convertedValue + setQsValue(convertedValue); + return } + + } catch (error) { + convertedValue = getParam; } - } catch (error) { - convertedValue = pValue; + ref.current = convertedValue; } - ref.current = convertedValue; - } - return ref.current; - }, [queryKey, state]); + setQsValue(convertedValue); + }, [JSONUrl, encode, queryKey, state]); + + useEffect( + () => { + getQueryStringValue() + }, [window?.location?.search] + ); const dispatchFromUrl = useCallback( - function (val) { + async function (val) { + const JSONUrl = _JSONUrl('lzma'); const returnValue = typeof val === "function" ? val(ref.current) : val; const parsedValue = typeof returnValue === "object" ? JSON.stringify(returnValue) : returnValue; + let crushValue = ''; + switch (encode) { + case ENCODE_TYPES.crush: + crushValue = JSONCrush.crush(parsedValue) + break; + case ENCODE_TYPES.b64: + crushValue = Base64.encode(JSON.stringify(parsedValue)) + break; + case ENCODE_TYPES.lzma: + crushValue = await JSONUrl.compress(JSON.stringify(parsedValue)) + break; + default: + break; + } - const qs = new URLSearchParams(window.location.search); + setUrl({ + LZMA_compression: { + raw: await JSONUrl.compress(JSON.stringify(parsedValue)), + urlencoded: new URLSearchParams(await JSONUrl.compress(JSON.stringify(parsedValue)))?.toString(), + }, + JS_Crush: { + raw: JSONCrush.crush(JSON.stringify(parsedValue)), + urlencoded: new URLSearchParams(JSONCrush.crush(JSON.stringify(parsedValue)))?.toString(), + }, + B64: { + raw: Base64.encode(JSON.stringify(parsedValue)), + urlencoded: new URLSearchParams(Base64.encode(JSON.stringify(parsedValue)))?.toString(), + }, + }) + const qs = new URLSearchParams(window?.location?.search); let values = {}; for (var value of qs.keys()) { + if (value === queryKey) continue; // skip the queryKey parameter values[value] = qs.get(value); } const mergedValues = { ...values, - [queryKey]: parsedValue + [queryKey]: crushValue + } + + let qsString = '' + if (isEmpty(values)) { + qsString = `?${queryKey}=${crushValue}` + } else { + const preQs = new URLSearchParams(values); + const preQsValue = preQs.toString() + qsString = `?${preQsValue}&${queryKey}=${crushValue}` } - const newQs = new URLSearchParams(mergedValues); - const newQsValue = newQs.toString() - setQueryString(`?${newQsValue}`); + + // const newQs = new URLSearchParams(mergedValues); + // const newQsValue = newQs.toString() + setQueryString(qsString) setState(returnValue); }, [queryKey, setQueryString] @@ -72,6 +169,6 @@ export function useUrlState({ queryKey, defaultValue, disable = false }) { if (disable) { return [state, dispatch, ref] } else { - return [getQueryStringValue, dispatchFromUrl, ref]; + return [qsValue, dispatchFromUrl, ref, url]; } } diff --git a/src/components/hooks/useUrlState.stories.js b/src/components/hooks/useUrlState.stories.js index fc272ed..0e29dfb 100644 --- a/src/components/hooks/useUrlState.stories.js +++ b/src/components/hooks/useUrlState.stories.js @@ -13,7 +13,7 @@ const useURLStateStory = { export default useURLStateStory; export const Default = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'queryTerm'}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'queryTerm'}); return (
{ }; export const Disable = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'queryTerm', disable: true}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'queryTerm', disable: true}); return (
{ }; export const Multiple = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'queryTerm'}); - const [queryTerm2, setQueryTerm2, queryTerm2Ref] = useUrlState({queryKey:'queryTerm2'}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'queryTerm'}); + const [queryTerm2, setQueryTerm2, queryTerm2Ref, url2] = useUrlState({queryKey:'queryTerm2'}); useEffect(() => { console.log('should only be called once per load', queryTerm, queryTerm2) }, [queryTerm, queryTerm2]); @@ -58,13 +58,13 @@ export const Multiple = ({ ...args }) => { label="Query Term 2" value={queryTerm2} onChange={(e) => setQueryTerm2(e.target.value)} /> - +
); }; export const JSON = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'jsonTerm'}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'jsonTerm'}); return (
{ label="Query Term" value={queryTerm?.wrap?.value} onChange={(e) => setQueryTerm({ wrap: { value: e.target.value } })} /> - +
); } export const DateRange = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'dateRangeTerm'}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'dateRangeTerm'}); return (
setQueryTerm(v)} /> - +
) } export const Date = ({ ...args }) => { - const [queryTerm, setQueryTerm, queryTermRef] = useUrlState({queryKey:'dateTerm'}); + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'dateTerm'}); return (
{ setQueryTerm(v.target.value) }} /> - +
) +} + +export const MedicalGridFilterExample = ({...args}) => { + const [queryTerm, setQueryTerm, queryTermRef, url] = useUrlState({queryKey:'medicalGridFilter'}); + useEffect( + () => { + setQueryTerm({ + laboratory: [ + 9, + 1, + ], + startDate: "2023-08-01T08:51:52.000Z", + endDate: "2023-09-30T08:51:52.000Z", + }) + }, [] + ); + return ( +
+ + +
+ ); } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 7d7262a..926c515 100644 --- a/yarn.lock +++ b/yarn.lock @@ -495,7 +495,7 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-private-property-in-object@^7.21.0": +"@babel/plugin-proposal-private-property-in-object@7.21.11", "@babel/plugin-proposal-private-property-in-object@^7.21.0": version "7.21.11" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== @@ -1389,6 +1389,14 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== +"@babel/runtime-corejs2@^7.0.0": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.23.1.tgz#f3a25c24d455be4e0309a56e56f0d2ef1a91c567" + integrity sha512-eY39r8IIgbcDfILJqsflwMImjccvK3QdgBRKo5v6lDPd5SiAsyfl3SJuAYWJ5hgbz7kfQmZ9ueirnhq0e9176Q== + dependencies: + core-js "^2.6.12" + regenerator-runtime "^0.14.0" + "@babel/runtime-corejs3@^7.10.2": version "7.25.0" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.25.0.tgz#0a318b66dfc765ad10562d829fea372ed7e1eb7d" @@ -5323,17 +5331,17 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -ag-grid-community@25.1.0: - version "25.1.0" - resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-25.1.0.tgz#7e132835789586900e0dd24d18cb71d68e09106f" - integrity sha512-sKJp6SZG8J50OlOeECtrLFSp/iwdx1mcG0+BmIkHsXmWoyXv5ZaTJyVg1/hMk6s3JVTm1ipg6LepbTaigWEL2A== +ag-grid-community@30.0.6: + version "30.0.6" + resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-30.0.6.tgz#886996d9edcfea0eb80135adbb4aa8a79be93a8f" + integrity sha512-aMTJNXFDC00QxMaI0/V6M0GTzAtsXUvuxuld97S1Kqb4LvFNsycZlQ3/IcHW7JangRQZxAcwmSpBQBV/lcWoEg== -ag-grid-react@25.1.0: - version "25.1.0" - resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-25.1.0.tgz#a045071802eabf426a0a652558f7f2e508e63a26" - integrity sha512-9xboQWDde2oANitsI/RbsS/rMFVLzXLGyteEBjxSyKGrGDOwAK6XHgvfbGSBL2yWVrYDUD5HRHCdfNejO4FPGA== +ag-grid-react@30.0.6: + version "30.0.6" + resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-30.0.6.tgz#1767438a821ffe9408112b5379e24204dc7410ff" + integrity sha512-fWvf4DIyMihbuhvVlhO6pewXyOirEDgM73Pv6s9V1Ay4xp61Y/kdv2JFmkIwCV0NSpA5CKUeu1JFa5vmA/HVMw== dependencies: - prop-types "^15.6.2" + prop-types "^15.8.1" agent-base@6: version "6.0.2" @@ -6054,6 +6062,14 @@ binjumper@^0.1.4: resolved "https://registry.yarnpkg.com/binjumper/-/binjumper-0.1.4.tgz#4acc0566832714bd6508af6d666bd9e5e21fc7f8" integrity sha512-Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w== +bl@^2.0.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.1.tgz#8c11a7b730655c5d56898cdc871224f40fd901d5" + integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -6063,7 +6079,7 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.7.2: +bluebird@^3.0.6, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -6902,7 +6918,7 @@ core-js-pure@^3.23.3, core-js-pure@^3.30.2: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.38.1.tgz#e8534062a54b7221344884ba9b52474be495ada3" integrity sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ== -core-js@^2.4.0: +core-js@^2.4.0, core-js@^2.6.12: version "2.6.12" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== @@ -11149,6 +11165,19 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json-url@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/json-url/-/json-url-3.1.0.tgz#dcd70a19eb098d88bd00917b3253e414f434f0dc" + integrity sha512-fhmtxBOQYJCshMV/omtzjBLv0ruLBz4dt+28y2+959fM45Oc8s+uL1jdLu/4yGeKATylgV022gAPfxCwQ5KgFA== + dependencies: + "@babel/runtime-corejs2" "^7.0.0" + bluebird "^3.0.6" + lz-string "^1.4.4" + lzma "^2.3.2" + msgpack5 "^4.2.1" + node-lzw "^0.3.1" + urlsafe-base64 "^1.0.0" + json5@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -11653,11 +11682,16 @@ luxon@^3.2.1: resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.5.0.tgz#6b6f65c5cd1d61d1fd19dbf07ee87a50bf4b8e20" integrity sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ== -lz-string@^1.5.0: +lz-string@^1.4.4, lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== +lzma@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/lzma/-/lzma-2.3.2.tgz#3783b24858b9c0e747a0df3cbf1fb5fcaa92c441" + integrity sha512-DcfiawQ1avYbW+hsILhF38IKAlnguc/fjHrychs9hdxe4qLykvhT5VTGNs5YRWgaNePh7NTxGD4uv4gKsRomCQ== + magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -12461,6 +12495,16 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msgpack5@^4.2.1: + version "4.5.1" + resolved "https://registry.yarnpkg.com/msgpack5/-/msgpack5-4.5.1.tgz#2da4dba4ea20c09fd4309c9c04f046e38cb4975e" + integrity sha512-zC1vkcliryc4JGlL6OfpHumSYUHWFGimSI+OgfRCjTFLmKA2/foR9rMTOhWiqfOrfxJOctrpWPvrppf8XynJxw== + dependencies: + bl "^2.0.1" + inherits "^2.0.3" + readable-stream "^2.3.6" + safe-buffer "^5.1.2" + multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" @@ -12579,6 +12623,11 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-lzw@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/node-lzw/-/node-lzw-0.3.1.tgz#f50e37968976aca83320028b91f101df4a436b2d" + integrity sha512-BGjQRR92HJsEsm1Ebp3Qvn2Jq+tlXEGY8zorNdal+FxOWpLMyyZBHoQWeyOc/TxsCzCvGbcCG4mU0u/RBSWxjQ== + node-polyfill-webpack-plugin@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz#141d86f177103a8517c71d99b7c6a46edbb1bb58"