Compare commits

...

30 Commits
main ... app

Author SHA1 Message Date
2321e5389d allow ephemeral host port selection to container port 80 2026-03-03 14:48:38 +01:00
962a5be29f minor fix 2026-02-11 13:19:38 +01:00
7a8f16c624 refactor and modularise profile components 2026-02-11 13:19:38 +01:00
cc1a3728e5 add manager for edit profile service 2026-02-11 13:19:38 +01:00
dc46ba0a4b refactor and modularise auth service components 2026-02-11 13:19:38 +01:00
2e19a3c036 manage all styles in one place 2026-02-11 13:19:38 +01:00
b0caa50e7c refactor and update app navigator 2026-02-11 13:19:38 +01:00
18474d30ab add info plist entry for camera permission 2026-02-11 13:19:38 +01:00
b213bcee8b refactor home, add feature for document scanning, processing and viewing 2026-02-11 13:19:38 +01:00
685c6bb2ce add client api methods 2026-02-11 13:19:38 +01:00
da9ba3094c cleanup 2026-02-11 13:19:38 +01:00
d7e30ce781 fix crop issue with server avatar image upload 2026-02-11 13:19:38 +01:00
51064d95e3 add edit profile feature 2026-02-11 13:19:38 +01:00
0bde09ad5c enable account deletion 2026-02-11 13:19:38 +01:00
2b5446555b add profile details and features 2026-02-11 13:19:29 +01:00
3b571ede07 add package patch to native dependency 2026-02-11 13:19:29 +01:00
77d319adb2 add native and expo dependencies 2026-02-11 13:19:16 +01:00
20b3889b2d update dependencies for docker container 2026-02-10 16:29:36 +01:00
ea0951ba85 update gitignore 2026-02-10 16:27:17 +01:00
10974842ff increase client payload size for nginx server 2026-02-10 16:26:58 +01:00
e51b284181 add tab bar to separate profile and home screens 2026-02-08 04:19:49 +01:00
012d84b369 set initial build version 2026-02-08 03:03:31 +01:00
290c62ae52 replace yarn with npm 2026-02-08 03:03:31 +01:00
bd7618d2e5 upgrade expo SDK to 54, upgrade react native and dependent libraries to compatible version 2026-02-08 03:03:20 +01:00
23c2e00792 set avatar column nullable for users and social logins tables 2026-02-08 03:03:20 +01:00
22da268739 add docker configuration to run local webserver and app 2026-02-08 03:03:20 +01:00
30433b7183 initialise and add react native app environment, UI and foundational code for user authentication 2026-02-08 03:03:06 +01:00
02c713f416 add documentation for project to port php web app to react native 2026-02-08 02:39:26 +01:00
a6785f26db reorganize and cleanup php server code 2026-02-08 02:39:26 +01:00
bf2f18f847 update gitignore 2026-02-08 02:39:12 +01:00
3149 changed files with 18745 additions and 357270 deletions

View File

@ -1,41 +0,0 @@
APP_ENV=production
APP_DEBUG=true
APP_KEY=base64:ygngELJvE4TbfP8g/mBUl6+QzmWIvFW8Y2cgnADYIUY=
APP_URL=http://vanguard.test
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST="localhost"
DB_DATABASE="casadocdb"
DB_USERNAME="xxx"
DB_PASSWORD="xxx"
DB_PREFIX="auth_"
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_DRIVER=sync
SESSION_DRIVER=database
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=mail
MAIL_FROM_NAME=Vanguard
MAIL_FROM_ADDRESS=vanguard@test.dev
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

83
.gitignore vendored
View File

@ -1,28 +1,59 @@
**/.DS_Store
.DS_Store
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
/.idea
/.fleet
/.vscode
/.vagrant
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
# Environment Variables (Secrets)
.env
.phpunit.result.cache
.php_cs.cache
/documentation
/.phpunit.cache
/public/build
.env.backup
.env.production
auth.json
public/Connections/casadocconn.php
public/userportal/tools/mailer.php
public/userportal/persondocuments/
public/userportal/mainphoto/
public/userportal/homedocuments/
.env.*
!.env.example
server/.env
mobile/.env
# Server (PHP/Laravel)
server/auth.json
_ide_helper.php
_ide_helper_models.php
.phpstorm.meta.php
server/.fleet
server/.idea
server/.php_cs.cache
server/.phpunit.cache
server/.phpunit.result.cache
server/.vagrant
server/.vscode
server/Homestead.json
server/Homestead.yaml
server/bootstrap/cache
server/documentation
server/node_modules
server/npm-debug.log
server/public/build
server/public/hot
server/public/storage
server/public/userportal
server/storage/*.key
server/storage/app/private
server/storage/debugbar
server/storage/debugbar/*
server/storage/framework/cache/data
server/storage/framework/sessions
server/storage/framework/testing
server/storage/framework/views
server/storage/logs
server/vendor
# Mobile (React Native/Expo)
mobile/.expo
mobile/android
mobile/ios
mobile/node_modules
mobile/dist
mobile/web-build
mobile/npm-debug.log
# Docker
docker-compose.override.yml
# VS Code
.vscode/
# Ignore user-uploaded content
server/public/upload

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +0,0 @@
*
!.gitignore

41
docker-compose.yml Normal file
View File

@ -0,0 +1,41 @@
services:
# The Application Service (PHP)
app:
build:
context: ./server
dockerfile: Dockerfile
args:
- user=${USER}
- uid=${UID}
image: casadoc-app
container_name: casadoc-app
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./server:/var/www
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- app-network
# The Web Server (Nginx)
webserver:
image: nginx:alpine
container_name: casadoc-webserver
restart: unless-stopped
tty: true
ports:
- "80" # Here port 80 in the container is mapped to any ephemeral port (random Docker chosen port) on the host.
volumes:
- ./server:/var/www
- ./docker/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- app-network
# Docker Networks
networks:
app-network:
driver: bridge

View File

@ -0,0 +1,21 @@
server {
listen 80;
client_max_body_size 10M;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}

2
docker/php/local.ini Normal file
View File

@ -0,0 +1,2 @@
upload_max_filesize=100M
post_max_size=100M

141
docs/spec.md Normal file
View File

@ -0,0 +1,141 @@
## Casadoc: Technical specifications describing cross-platform feasibility
##### Summary
The strategic choice, considering high quality UI/UX and performance over a quick-fix migration (using a framework like Ionic), is **React Native**. While it requires more initial work than Ionic, the result will be a robust mobile app that feels truly native on both iOS and Android. The frontend will have to be written in JavaScript entirely but it offers a significantly faster, smoother *native* feel. The PHP code would only serve as the backend API.
##### React Native
* **Architecture:** Renders true native mobile UI components using JavaScript.
* **Frontend Migration:** We won't be able to use the original HTML/CSS output rendered by the PHP code directly. We'll have to rewrite the UI using JSX (React).
* **Language:** JavaScript/TypeScript.
* **Native Features:** React Native supports a large ecosystem of native modules.
#### Technical strategy for migrating Casadoc from PHP to React Native
1. **Architectural Shift**
**Decoupling**. Currently, our PHP code likely mixes logic and UI (e.g., fetching data from DB and immediately rendering an HTML table).
- **Current State:** PHP $\rightarrow$ HTML/CSS (Browser renders UI)
- **Future State:** PHP $\rightarrow$ JSON Data $\rightarrow$ React Native (Mobile renders UI)
2. **Category-Wise Migration Plan**
- **The Backend (PHP): Transformation to API**
We do not need to rewrite the backend logic (code), but we must change *how* it delivers data.
- Create a new set of endpoints specifically for the mobile app.
- **Authentication:**
- *Current:* Likely uses Sessions/Cookies (`$_SESSION`).
- *New:* Switch to **JWT (JSON Web Tokens)**. The app will send a "Token" with every request to prove who the user is.
- **Response Format:**
- Stop returning `view('profile.index', $data)`
- Start returning `json_encode($data)` or `return response()->json($data)`
- **The Frontend (React Native): Complete Rewrite**
Most of the work will go into the frontend development since we can't use the HTML/CSS given by PHP directly for rendering.
**UI Components:**
- HTML `<div>` becomes `<View>`
- HTML `<span>` or `<p>` becomes `<Text>`
- HTML `<img>` becomes `<Image>`
- HTML `<button>` becomes `<TouchableOpacity>`
**Styling:**
- CSS is replaced by **StyleSheet** objects (JavaScript objects that look like CSS).
**Navigation:**
- Unlike the web app which uses URLs, mobile app uses Stack/Tab navigation. We'll use a library like **React Navigation** to move between screens.
- ###### **The Database (DB)**
- **Master DB:** Stays as MySQL/MariaDB on the server.
- **Local Storage:** For features like caching, we'll use **AsyncStorage**. For heavy offline data (e.g., viewing documents offline), we'll use **SQLite** on the device.
3. **Example code comparison**
A simple "User Profile" card change from PHP to React Native.
- **Current PHP (Blade/Standard)**
```php
<div class="user-card">
<img src="<?php echo $user->avatar; ?>" />
<h1><?php echo $user->name; ?></h1>
<p><?php echo $user->email; ?></p>
</div>
```
- **New React Native (JSX)**
```javascript
// UserProfile.js
import React from 'react';
import { View, Text, Image, StyleSheet } from 'react-native';
const UserProfile = ({ user }) => {
return (
<View style={styles.card}>
<Image source={{ uri: user.avatar }} style={styles.avatar} />
<Text style={styles.name}>{user.name}</Text>
<Text style={styles.email}>{user.email}</Text>
</View>
);
};
// Styles are defined in JS, not CSS files
const styles = StyleSheet.create({
card: { padding: 20, backgroundColor: '#fff' },
name: { fontSize: 18, fontWeight: 'bold' }
});
export default UserProfile; 
```
### Tentative roadmap
##### **Phase 1: API Foundation (PHP Side)**
1. **Environment:** Set up a route group (e.g., `/api/v1/`) in the PHP project.
2. **Auth:** Implement an endpoint `/api/login` that accepts email/password and returns a JWT Token.
3. **Read-Only Data:** Create endpoints to *fetch* data (e.g., `GET /documents`).
##### **Phase 2: The Basic Blueprint App (React Native Side)**
1. **Setup:** Initialize the project using **React Native CLI** (for maximum control) or **Expo**.
2. **Navigation:** Build the "Skeleton" Login Screen, Dashboard (List View), and Detail Screen.
3. **Connection:** Write a service function in JS to `fetch` data from the new PHP API and display it.
##### **Phase 3: Native Features & Interactivity**
1. **Camera:** Add a feature to "Scan Document" using a React Native Camera library.
2. **Upload:** Create a PHP endpoint to accept `POST` file uploads and wire it to the camera.
3. **Push Notifications:** (*optional*) Integrate Firebase (FCM) to notify users when a document status changes.

BIN
docs/spec.pdf Normal file

Binary file not shown.

33
mobile/App.tsx Normal file
View File

@ -0,0 +1,33 @@
import { StatusBar } from 'expo-status-bar';
import { useState } from 'react';
import { useColorScheme } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import AppNavigator from './src/navigation/AppNavigator';
import AnimatedSplash from './src/screens/AnimatedSplash';
import * as SplashScreen from 'expo-splash-screen';
import * as SystemUI from 'expo-system-ui';
import { AppLightTheme, AppDarkTheme } from './src/navigation/themes';
SplashScreen.preventAutoHideAsync();
export default function App() {
const [isSplashFinished, setSplashFinished] = useState(false);
const colorScheme = useColorScheme();
const backgroundColor = colorScheme === 'dark' ? AppDarkTheme.colors.background : AppLightTheme.colors.background;
SystemUI.setBackgroundColorAsync(backgroundColor);
return (
<SafeAreaProvider>
<NavigationContainer theme={colorScheme === 'dark' ? AppDarkTheme : AppLightTheme}>
<AppNavigator />
<StatusBar style={colorScheme === 'dark' ? "light" : "dark"} />
</NavigationContainer>
{!isSplashFinished && (
<AnimatedSplash onFinish={() => setSplashFinished(true)} />
)}
</SafeAreaProvider>
);
}

55
mobile/app.json Normal file
View File

@ -0,0 +1,55 @@
{
"expo": {
"name": "CasaDoc",
"slug": "casadoc-mobile",
"scheme": "casadoc",
"version": "0.0.1",
"orientation": "portrait",
"backgroundColor": "#ffffff",
"dark": {
"backgroundColor": "#000000"
},
"userInterfaceStyle": "automatic",
"splash": {
"image": "./assets/icons/splash-icon-dark.png",
"imageWidth": 200,
"resizeMode": "contain",
"backgroundColor": "#ffffff",
"dark": {
"image": "./assets/icons/splash-icon-light.png",
"backgroundColor": "#1a202c"
}
},
"assetBundlePatterns": [
"**/*"
],
"newArchEnabled": true,
"ios": {
"supportsTablet": true,
"icon": {
"dark": "./assets/icons/ios-dark.png",
"light": "./assets/icons/ios-light.png",
"tinted": "./assets/icons/ios-tinted.png"
},
"bundleIdentifier": "com.cesoft.casadoc",
"appleTeamId": "NBX9G827SH",
"infoPlist": {
"NSCameraUsageDescription": "This app needs access to the camera to scan documents."
}
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/icons/android-adaptive.png",
"monochromeImage": "./assets/icons/android-adaptive.png",
"backgroundColor": "#ffffff"
},
"package": "com.cesoft.casadoc"
},
"web": {
"favicon": "./assets/favicon.png"
},
"plugins": [
"expo-web-browser"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

6
mobile/babel.config.js Normal file
View File

@ -0,0 +1,6 @@
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};

8
mobile/index.js Normal file
View File

@ -0,0 +1,8 @@
import { registerRootComponent } from 'expo';
import App from './App';
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
// It also ensures that whether you load the app in Expo Go or in a native build,
// the environment is set up appropriately
registerRootComponent(App);

8698
mobile/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

54
mobile/package.json Normal file
View File

@ -0,0 +1,54 @@
{
"name": "casadoc-mobile",
"version": "0.0.1",
"main": "index.js",
"scripts": {
"prebuild": "expo prebuild --clean",
"start": "expo start --dev-client",
"start:go": "expo start",
"android": "expo run:android",
"ios": "expo run:ios",
"web": "expo start --web",
"postinstall": "patch-package"
},
"dependencies": {
"@expo/vector-icons": "^15.0.3",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-navigation/bottom-tabs": "^7.12.0",
"@react-navigation/native": "^7.1.28",
"@react-navigation/native-stack": "^7.12.0",
"babel-preset-expo": "^54.0.10",
"expo": "^54.0.0",
"expo-apple-authentication": "~8.0.8",
"expo-auth-session": "~7.0.10",
"expo-crypto": "~15.0.8",
"expo-file-system": "^19.0.21",
"expo-image-manipulator": "^14.0.8",
"expo-image-picker": "^17.0.10",
"expo-print": "^15.0.8",
"expo-sharing": "^14.0.8",
"expo-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9",
"expo-system-ui": "~6.0.9",
"expo-web-browser": "~15.0.10",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-blob-util": "^0.24.6",
"react-native-document-scanner-plugin": "^2.0.4",
"react-native-pdf": "^7.0.3",
"react-native-safe-area-context": "~5.6.0",
"react-native-screens": "~4.16.0",
"zustand": "^5.0.11"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@types/react": "~19.1.10",
"patch-package": "^8.0.1",
"typescript": "^5.3.3"
},
"overrides": {
"glob": "12.0.0",
"rimraf": "4.3.1"
},
"private": true
}

View File

@ -0,0 +1,13 @@
diff --git a/node_modules/react-native-pdf/index.js b/node_modules/react-native-pdf/index.js
index 56df005..8b8f5d2 100644
--- a/node_modules/react-native-pdf/index.js
+++ b/node_modules/react-native-pdf/index.js
@@ -20,7 +20,7 @@ import {
import PdfViewNativeComponent, {
Commands as PdfViewCommands,
} from './fabric/RNPDFPdfNativeComponent';
-import ReactNativeBlobUtil from 'react-native-blob-util'
+import ReactNativeBlobUtil from 'react-native-blob-util';
import {ViewPropTypes} from 'deprecated-react-native-prop-types';
const SHA1 = require('crypto-js/sha1');
import PdfView from './PdfView';

View File

@ -0,0 +1,98 @@
import React from 'react';
import { View, Text, TouchableOpacity, StyleSheet, Platform, useColorScheme, Image } from 'react-native';
import { FontAwesome } from '@expo/vector-icons';
interface SocialButtonsProps {
onGooglePress: () => void;
onFacebookPress: () => void;
onApplePress: () => void;
}
export default function SocialButtons({ onGooglePress, onFacebookPress, onApplePress }: SocialButtonsProps) {
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
return (
<View style={styles.container}>
<Text style={[styles.divider, { color: isDark ? '#a0aec0' : '#888' }]}>Or continue with</Text>
<View style={styles.row}>
{/* Google Button */}
<TouchableOpacity
style={[styles.circleButton, { backgroundColor: 'white' }]}
onPress={onGooglePress}
>
<Image
source={require('../../assets/icons/google.png')}
style={{ width: 24, height: 24 }}
resizeMode="contain"
/>
</TouchableOpacity>
{/* Facebook Button */}
<TouchableOpacity
style={[styles.circleButton, { backgroundColor: '#1877F2', borderWidth: 0 }]}
onPress={onFacebookPress}
>
<FontAwesome name="facebook" size={24} color="white" />
</TouchableOpacity>
{/* Apple Button */}
{Platform.OS === 'ios' && (
<TouchableOpacity
style={[
styles.circleButton,
{ backgroundColor: isDark ? 'white' : 'black', borderWidth: 0 }
]}
onPress={onApplePress}
>
<FontAwesome name="apple" size={24} color={isDark ? "black" : "white"} />
</TouchableOpacity>
)}
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
marginTop: 30,
width: '100%',
alignItems: 'center',
},
divider: {
textAlign: 'center',
marginBottom: 20,
fontSize: 14,
},
row: {
flexDirection: 'row',
justifyContent: 'center',
gap: 20, // Space between buttons
},
circleButton: {
width: 50,
height: 50,
borderRadius: 25,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: 'white',
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 4,
elevation: 3,
},
google: {
backgroundColor: 'white',
},
facebook: {
backgroundColor: 'white',
},
appleLight: {
backgroundColor: 'white',
},
appleDark: {
backgroundColor: '#333', // Dark background for Apple button in Dark Mode
}
});

View File

@ -0,0 +1,9 @@
export const GOOGLE_CONFIG = {
iosClientId: '790885459780-8j8tte7sm2vl3kg98aadenvqp9pc5i3g.apps.googleusercontent.com',
androidClientId: 'YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com',
webClientId: '790885459780-4c7580aqb5uvtt13ec1386kl6k3fdns4.apps.googleusercontent.com',
};
export const FACEBOOK_CONFIG = {
clientId: '1284431066897297',
};

View File

@ -0,0 +1,138 @@
import { useState, useEffect } from 'react';
import { Alert } from 'react-native';
import * as AppleAuthentication from 'expo-apple-authentication';
import * as Google from 'expo-auth-session/providers/google';
import * as Facebook from 'expo-auth-session/providers/facebook';
import * as WebBrowser from 'expo-web-browser';
import { useAuthStore } from '../store/useAuthStore';
import { authService } from '../services/api';
import { GOOGLE_CONFIG, FACEBOOK_CONFIG } from '../config/social';
WebBrowser.maybeCompleteAuthSession();
export const useAuthHandler = () => {
const login = useAuthStore((state) => state.login);
const [loading, setLoading] = useState(false);
const [googleRequest, googleResponse, promptGoogleAsync] = Google.useAuthRequest(GOOGLE_CONFIG);
const [fbRequest, fbResponse, promptFacebookAsync] = Facebook.useAuthRequest(FACEBOOK_CONFIG);
useEffect(() => {
if (googleResponse?.type === 'success' && googleResponse.authentication?.accessToken) {
handleSocialLogin('google', googleResponse.authentication.accessToken);
}
}, [googleResponse]);
useEffect(() => {
if (fbResponse?.type === 'success' && fbResponse.authentication?.accessToken) {
handleSocialLogin('facebook', fbResponse.authentication.accessToken);
}
}, [fbResponse]);
const afterLoginSuccess = async (data: any) => {
login(data);
const profileData = await authService.getProfile();
if (profileData && profileData.data) {
useAuthStore.getState().updateUser(profileData.data);
}
};
const handleLogin = async ({ email, password }) => {
if (!email || !password) {
Alert.alert('Error', 'Please fill in all fields');
return;
}
setLoading(true);
try {
const data = await authService.login(email, password);
if (data.token) {
await afterLoginSuccess(data);
} else {
Alert.alert('Login Failed', data.message || 'Invalid credentials');
}
} catch (error) {
Alert.alert('Network Error', 'Could not connect to server.');
} finally {
setLoading(false);
}
};
const handleRegister = async ({ email, username, password, confirmPassword, tosAccepted }) => {
if (!email || !username || !password || !confirmPassword) {
return Alert.alert('Error', 'Please fill in all fields');
}
if (password !== confirmPassword) {
return Alert.alert('Error', 'Passwords do not match');
}
if (!tosAccepted) {
return Alert.alert('Error', 'You must accept the Terms of Service');
}
setLoading(true);
try {
const { ok, data } = await authService.register({ email, username, password, password_confirmation: confirmPassword, tos: true });
if (ok) {
Alert.alert('Success', 'Account created! Please log in.');
return true; // Indicate success to toggle form
} else {
const errorMessage = data.message || 'Registration failed';
const validationErrors = data.errors ? '\n' + Object.values(data.errors).flat().join('\n') : '';
Alert.alert('Registration Failed', errorMessage + validationErrors);
}
} catch (error) {
Alert.alert('Network Error', 'Could not connect to server.');
} finally {
setLoading(false);
}
return false;
};
const handleSocialLogin = async (provider: string, token: string) => {
setLoading(true);
try {
const data = await authService.socialLogin(provider, token);
if (data.token) {
await afterLoginSuccess(data);
} else {
Alert.alert('Social Login Failed', data.message || 'Could not verify token');
}
} catch (error) {
Alert.alert('Error', 'Failed to connect to server');
} finally {
setLoading(false);
}
};
const onAppleButtonPress = async () => {
try {
const credential = await AppleAuthentication.signInAsync({
requestedScopes: [
AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
AppleAuthentication.AppleAuthenticationScope.EMAIL,
],
});
if (credential.identityToken) {
handleSocialLogin('apple', credential.identityToken);
}
} catch (e: any) {
if (e.code !== 'ERR_CANCELED') {
Alert.alert('Error', 'Apple Sign In failed');
}
}
};
return {
loading,
handleLogin,
handleRegister,
promptGoogle: () => {
if (googleRequest) promptGoogleAsync();
else Alert.alert('Configuration Error', 'Google Auth Request is not ready.');
},
promptFacebook: () => {
if (fbRequest) promptFacebookAsync();
else Alert.alert('Configuration Error', 'Facebook Auth Request is not ready.');
},
onAppleButtonPress,
};
};

View File

@ -0,0 +1,49 @@
import { Alert } from 'react-native';
import { useDocumentStore } from '../store/useDocumentStore';
import { useAuthStore } from '../store/useAuthStore';
export const useDocumentActions = () => {
const { renameDocument, removeDocument } = useDocumentStore();
const { user } = useAuthStore();
const handleRename = (oldName: string) => {
Alert.prompt(
'Rename Document',
'Enter a new name for the document.',
[
{ text: 'Cancel', style: 'cancel' },
{
text: 'Save',
onPress: (newName) => {
if (newName && newName !== oldName.replace('.pdf', '') && user?.user.id) {
renameDocument(user.user.id, oldName, newName);
}
},
},
],
'plain-text',
oldName.replace('.pdf', '')
);
};
const handleDelete = (fileName: string) => {
Alert.alert(
'Delete Document',
'Are you sure you want to delete this document?',
[
{ text: 'Cancel', style: 'cancel' },
{
text: 'Delete',
style: 'destructive',
onPress: () => {
if (user?.user.id) {
removeDocument(user.user.id, fileName);
}
}
},
]
);
};
return { handleRename, handleDelete };
};

View File

@ -0,0 +1,89 @@
import { useState } from 'react';
import { Alert } from 'react-native';
import DocumentScanner from 'react-native-document-scanner-plugin';
import * as Print from 'expo-print';
import * as FileSystem from 'expo-file-system/legacy';
import { useDocumentStore } from '../store/useDocumentStore';
import { useAuthStore } from '../store/useAuthStore';
export const useDocumentScanner = () => {
const { addDocument } = useDocumentStore();
const { user } = useAuthStore();
const [isScanning, setIsScanning] = useState(false);
const createPdfFromImages = async (imageUris: string[]) => {
try {
const imageSources = await Promise.all(
imageUris.map(async (uri) => {
const fileUri = uri.startsWith('file://') ? uri : `file://${uri}`;
const base64 = await FileSystem.readAsStringAsync(fileUri, {
encoding: FileSystem.EncodingType.Base64,
});
return `data:image/jpeg;base64,${base64}`;
})
);
const htmlContent = `
<!DOCTYPE html>
<html>
<body style="margin: 0; padding: 0;">
${imageSources.map(src => `
<div style="width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center;">
<img src="${src}" style="width: 100%; height: 100%; object-fit: contain;" />
</div>
`).join('')}
</body>
</html>
`;
const { uri } = await Print.printToFileAsync({ html: htmlContent });
return uri;
} catch (error) {
console.error('Failed to create PDF', error);
throw error;
}
};
const scanDocument = async () => {
if (!user?.user.id) {
Alert.alert('Error', 'You must be logged in to scan documents.');
return;
}
setIsScanning(true);
try {
const { scannedImages } = await DocumentScanner.scanDocument();
if (scannedImages && scannedImages.length > 0) {
Alert.prompt(
'Name Your Document',
'Enter a name for your new document.',
[
{ text: 'Cancel', style: 'cancel', onPress: () => {} },
{
text: 'Save',
onPress: async (fileName) => {
if (fileName) {
try {
const pdfUri = await createPdfFromImages(scannedImages);
await addDocument(user.user.id, pdfUri, fileName);
} catch (e) {
Alert.alert('Error', 'Could not save document.');
}
}
},
},
],
'plain-text',
`Scan_${Date.now()}`
);
}
} catch (error) {
console.error('Scanning failed', error);
} finally {
setIsScanning(false);
}
};
return { isScanning, scanDocument };
};

View File

@ -0,0 +1,62 @@
import { useState } from 'react';
import { Alert } from 'react-native';
import { useAuthStore } from '../store/useAuthStore';
import { authService } from '../services/api';
export const useProfileLogic = () => {
const { user, logout } = useAuthStore();
const [isResending, setIsResending] = useState(false);
const [isModalVisible, setIsModalVisible] = useState(false);
const displayName =
(user?.user?.first_name && user?.user?.last_name) ? `${user.user.first_name} ${user.user.last_name}` :
user?.user?.username ? user.user.username :
user?.user?.email ? user.user.email.split('@')[0] :
'User Name';
const handleResendVerification = async () => {
setIsResending(true);
const result = await authService.resendVerificationEmail();
setIsResending(false);
if (result.ok) {
Alert.alert('Email Sent', 'Please check your email (or server logs) for the verification link.');
} else {
Alert.alert('Error', result.message || 'Failed to resend verification email');
}
};
const handleDeleteAccount = () => {
Alert.alert(
'Delete Account',
'Are you sure you want to permanently delete your account? This action cannot be undone.',
[
{ text: 'Cancel', style: 'cancel' },
{
text: 'Delete',
style: 'destructive',
onPress: async () => {
const result = await authService.deleteAccount();
if (result.ok) {
logout();
Alert.alert('Success', 'Your account has been deleted.');
} else {
Alert.alert('Error', 'Failed to delete account.');
}
}
},
]
);
};
return {
user,
displayName,
isResending,
isModalVisible,
setIsModalVisible,
handleResendVerification,
handleDeleteAccount,
logout,
};
};

View File

@ -0,0 +1,91 @@
import { useState } from 'react';
import { Alert } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import * as ImagePicker from 'expo-image-picker';
import { useAuthStore } from '../store/useAuthStore';
import { authService } from '../services/api';
export const useProfileManager = () => {
const navigation = useNavigation();
const { user, updateUser } = useAuthStore();
const [firstName, setFirstName] = useState(user?.user?.first_name || '');
const [lastName, setLastName] = useState(user?.user?.last_name || '');
const [phone, setPhone] = useState(user?.user?.phone || '');
const [address, setAddress] = useState(user?.user?.address || '');
const [avatar, setAvatar] = useState<string | null>(user?.user?.avatar || null);
const [loading, setLoading] = useState(false);
const pickImage = async () => {
const result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: 'images',
allowsEditing: true,
aspect: [1, 1],
quality: 0.5,
});
if (!result.canceled) {
setAvatar(result.assets[0].uri);
}
};
const handleSave = async () => {
setLoading(true);
try {
let updatedAvatarUrl = user?.user?.avatar;
// Upload avatar if it has changed
if (avatar && avatar !== user?.user?.avatar) {
const avatarResult = await authService.uploadAvatar(avatar);
if (avatarResult.ok && avatarResult.data.data.avatar) {
updatedAvatarUrl = avatarResult.data.data.avatar;
} else {
Alert.alert('Warning', 'Failed to upload new profile picture, but proceeding with other updates.');
}
}
const updates = {
first_name: firstName,
last_name: lastName,
phone,
address,
};
const result = await authService.updateProfile(updates);
if (result.ok) {
const finalUserData = {
...(result.data.data || result.data),
avatar: updatedAvatarUrl
};
updateUser(finalUserData);
Alert.alert('Success', 'Profile updated successfully', [
{ text: 'OK', onPress: () => navigation.goBack() }
]);
} else {
Alert.alert('Error', result.message || 'Failed to update profile');
}
} catch (error) {
console.error(error);
Alert.alert('Error', 'An unexpected error occurred.');
} finally {
setLoading(false);
}
};
return {
loading,
avatar,
firstName,
lastName,
phone,
address,
setFirstName,
setLastName,
setPhone,
setAddress,
pickImage,
handleSave,
};
};

View File

@ -0,0 +1,73 @@
import React from 'react';
import { View, ActivityIndicator } from 'react-native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import AuthScreen from '../screens/AuthScreen';
import TabNavigator from './TabNavigator';
import EditProfileScreen from '../screens/EditProfileScreen';
import DocumentViewScreen from '../screens/DocumentViewScreen';
import ForgotPasswordScreen from '../screens/ForgotPasswordScreen';
import { useAuthStore } from '../store/useAuthStore';
// Define the types for the stack
export type RootStackParamList = {
Auth: undefined;
Home: undefined; // This is now a nested navigator
Main: undefined; // The tab navigator
EditProfile: undefined;
DocumentView: { uri: string };
ForgotPassword: undefined;
};
const Stack = createNativeStackNavigator<RootStackParamList>();
export default function AppNavigator() {
const user = useAuthStore((state) => state.user);
const isLoading = useAuthStore((state) => state.isLoading);
if (isLoading) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<ActivityIndicator size="large" />
</View>
);
}
return (
<Stack.Navigator id="RootStack" screenOptions={{ headerShown: false }}>
{user ? (
// Screens for logged-in users
<>
<Stack.Screen name="Main" component={TabNavigator} options={{ headerShown: false }} />
<Stack.Screen
name="EditProfile"
component={EditProfileScreen}
options={{
title: 'Edit Profile',
headerBackTitle: '',
headerShown: true,
}}
/>
<Stack.Screen
name="DocumentView"
component={DocumentViewScreen}
options={{
title: 'Document',
headerBackTitle: '',
headerShown: true,
}}
/>
</>
) : (
// Screens for logged-out users
<>
<Stack.Screen name="Auth" component={AuthScreen} />
<Stack.Screen
name="ForgotPassword"
component={ForgotPasswordScreen}
options={{ presentation: 'fullScreenModal' }}
/>
</>
)}
</Stack.Navigator>
);
}

View File

@ -0,0 +1,60 @@
import React from 'react';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { useColorScheme } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import HomeScreen from '../screens/HomeScreen';
import ProfileScreen from '../screens/ProfileScreen';
import { COLORS } from '../theme/colors';
const Tab = createBottomTabNavigator();
export default function TabNavigator() {
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeColors = isDark ? COLORS.DARK : COLORS.LIGHT;
return (
<Tab.Navigator
id="MainTabs"
screenOptions={({ route }) => ({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === 'Home') {
iconName = focused ? 'home' : 'home-outline';
} else if (route.name === 'Profile') {
iconName = focused ? 'person' : 'person-outline';
}
return <Ionicons name={iconName as any} size={20} color={color} />;
},
tabBarActiveTintColor: themeColors.brand,
tabBarInactiveTintColor: isDark ? '#a0aec0' : 'gray',
tabBarStyle: {
backgroundColor: themeColors.card,
borderTopColor: isDark ? '#2d3748' : '#e2e8f0',
height: 60
},
headerStyle: {
backgroundColor: themeColors.card,
},
headerTitleStyle: {
color: themeColors.text,
fontSize: 17,
},
})}
>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen
name="Profile"
component={ProfileScreen}
options={{
tabBarItemStyle: {
borderLeftWidth: 1.5,
borderLeftColor: isDark ? '#4A5568' : '#E2E8F0',
}
}}
/>
</Tab.Navigator>
);
}

View File

@ -0,0 +1,24 @@
import { DefaultTheme, DarkTheme } from '@react-navigation/native';
import { COLORS } from '../theme/colors';
export const AppLightTheme = {
...DefaultTheme,
colors: {
...DefaultTheme.colors,
background: COLORS.LIGHT.background,
card: COLORS.LIGHT.card,
text: COLORS.LIGHT.text,
primary: COLORS.LIGHT.brand,
},
};
export const AppDarkTheme = {
...DarkTheme,
colors: {
...DarkTheme.colors,
background: COLORS.DARK.background,
card: COLORS.DARK.card,
text: COLORS.DARK.text,
primary: COLORS.DARK.brand,
},
};

View File

@ -0,0 +1,99 @@
import React, { useEffect, useRef, useState, useCallback } from 'react';
import { View, StyleSheet, Image, Animated, useColorScheme } from 'react-native';
import * as SplashScreen from 'expo-splash-screen';
interface AnimatedSplashProps {
onFinish: () => void;
}
export default function AnimatedSplash({ onFinish }: AnimatedSplashProps) {
const fadeAnim = useRef(new Animated.Value(1)).current;
const [isAppReady, setAppReady] = useState(false);
const [isLayoutReady, setLayoutReady] = useState(false);
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
useEffect(() => {
async function prepare() {
try {
await new Promise(resolve => setTimeout(resolve, 1000));
} catch (e) {
console.warn(e);
} finally {
setAppReady(true);
}
}
prepare();
}, []);
const onLayoutRootView = useCallback(async () => {
setLayoutReady(true);
}, []);
useEffect(() => {
if (isAppReady && isLayoutReady) {
// Hide native splash screen
SplashScreen.hideAsync();
// Start fade out
Animated.timing(fadeAnim, {
toValue: 0,
duration: 1000,
useNativeDriver: true,
}).start(() => {
onFinish();
});
}
}, [isAppReady, isLayoutReady]);
return (
<Animated.View
style={[
styles.container,
{
opacity: fadeAnim,
backgroundColor: isDark ? '#000000' : '#ffffff'
}
]}
onLayout={onLayoutRootView}
>
<View style={styles.centered}>
<Image
source={
isDark
? require('../../assets/icons/splash-icon-light.png')
: require('../../assets/icons/splash-icon-dark.png')
}
style={styles.logo}
resizeMode="contain"
/>
</View>
</Animated.View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
zIndex: 9999,
},
centered: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
width: '100%',
height: '100%',
},
logo: {
width: '100%',
height: '100%',
}
});

View File

@ -0,0 +1,174 @@
import React, { useState } from 'react';
import { View, Text, TextInput, TouchableOpacity, ActivityIndicator, Image, Switch, ScrollView, KeyboardAvoidingView, Platform, useColorScheme } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { getThemeStyles, commonStyles } from '../theme/styles';
import { COLORS } from '../theme/colors';
import SocialButtons from '../components/SocialButtons';
import { useAuthHandler } from '../hooks/useAuthHandler';
import { RootStackParamList } from '../navigation/AppNavigator';
type AuthScreenNavigationProp = NativeStackNavigationProp<RootStackParamList, 'Auth'>;
export default function AuthScreen() {
const navigation = useNavigation<AuthScreenNavigationProp>();
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
const brandColor = isDark ? COLORS.DARK.brand : COLORS.LIGHT.brand;
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [username, setUsername] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
const [tosAccepted, setTosAccepted] = useState(false);
const [isRegistering, setIsRegistering] = useState(false);
const {
loading,
handleLogin,
handleRegister,
promptGoogle,
promptFacebook,
onAppleButtonPress,
} = useAuthHandler();
const onRegister = async () => {
const success = await handleRegister({ email, username, password, confirmPassword, tosAccepted });
if (success) {
toggleMode(); // Switch back to login form on success
}
};
const onLogin = () => handleLogin({ email, password });
const toggleMode = () => {
setIsRegistering(!isRegistering);
setEmail('');
setPassword('');
setUsername('');
setConfirmPassword('');
setTosAccepted(false);
};
return (
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={themeStyles.container}
>
<ScrollView contentContainerStyle={commonStyles.scrollContent}>
<View style={commonStyles.logoContainer}>
<Image
source={
isDark
? require('../../assets/icons/ios-dark.png')
: require('../../assets/icons/ios-light.png')
}
style={commonStyles.logo}
resizeMode="contain"
/>
</View>
<Text style={themeStyles.headerTitle}>CasaDoc</Text>
<Text style={[commonStyles.subtitle, themeStyles.subtitle]}>
{isRegistering ? 'Create a new account' : 'Sign in to your account'}
</Text>
<View style={[commonStyles.form, themeStyles.card]}>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Email{isRegistering ? '' : ' or Username'}</Text>
<TextInput
style={themeStyles.input}
placeholder={isRegistering ? "name@example.com" : "Enter email or username"}
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
value={email}
onChangeText={setEmail}
autoCapitalize="none"
keyboardType={isRegistering ? "email-address" : "default"}
autoCorrect={false}
/>
{isRegistering && (
<>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Username</Text>
<TextInput
style={themeStyles.input}
placeholder="Choose a username"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
value={username}
onChangeText={setUsername}
autoCapitalize="none"
autoCorrect={false}
/>
</>
)}
<Text style={[commonStyles.label, themeStyles.subtitle]}>Password</Text>
<TextInput
style={themeStyles.input}
placeholder="Enter your password"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
value={password}
onChangeText={setPassword}
secureTextEntry
/>
{isRegistering && (
<>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Confirm Password</Text>
<TextInput
style={themeStyles.input}
placeholder="Confirm your password"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
value={confirmPassword}
onChangeText={setConfirmPassword}
secureTextEntry
/>
<View style={commonStyles.tosContainer}>
<Switch
value={tosAccepted}
onValueChange={setTosAccepted}
trackColor={{ false: "#767577", true: brandColor }}
thumbColor={tosAccepted ? "#fff" : "#f4f3f4"}
/>
<Text style={[commonStyles.tosText, themeStyles.subtitle]}>I accept the Terms of Service</Text>
</View>
</>
)}
<TouchableOpacity
style={[themeStyles.button, loading && commonStyles.buttonDisabled]}
onPress={isRegistering ? onRegister : onLogin}
disabled={loading}
>
{loading ? (
<ActivityIndicator color="white" />
) : (
<Text style={themeStyles.buttonText}>{isRegistering ? 'Sign Up' : 'Sign In'}</Text>
)}
</TouchableOpacity>
{!isRegistering && (
<TouchableOpacity onPress={() => navigation.navigate('ForgotPassword')} style={{ alignSelf: 'flex-end', marginTop: 10 }}>
<Text style={themeStyles.linkText}>Forgot Password?</Text>
</TouchableOpacity>
)}
<SocialButtons
onGooglePress={promptGoogle}
onFacebookPress={promptFacebook}
onApplePress={onAppleButtonPress}
/>
<TouchableOpacity onPress={toggleMode} style={{ marginTop: 20, alignItems: 'center' }}>
<Text style={themeStyles.linkText}>
{isRegistering
? 'Already have an account? Sign In'
: 'Don\'t have an account? Sign Up'}
</Text>
</TouchableOpacity>
</View>
</ScrollView>
</KeyboardAvoidingView>
);
}

View File

@ -0,0 +1,55 @@
import React, { useEffect, useState } from 'react';
import { View, StyleSheet, useColorScheme, Text, ActivityIndicator } from 'react-native';
import Pdf from 'react-native-pdf';
import { getThemeStyles } from '../theme/styles';
export default function DocumentViewScreen({ route }: any) {
const { uri } = route.params;
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
// Use the URI directly.
// Note: If filenames have spaces, they should ideally be encoded,
// but for local file:// URIs, react-native-pdf often handles them as they are.
// If issues persist with spaces, try encodeURI(uri).
const source = React.useMemo(() => ({
uri: uri,
cache: true
}), [uri]);
return (
<View style={[styles.container, themeStyles.container]}>
<Pdf
source={source}
onLoadComplete={(numberOfPages, filePath) => {
console.log(`Number of pages: ${numberOfPages}`);
}}
onPageChanged={(page, numberOfPages) => {
console.log(`Current page: ${page}`);
}}
onError={(error) => {
console.error('PDF Load Error:', error);
}}
onPressLink={(uri) => {
console.log(`Link pressed: ${uri}`);
}}
style={styles.pdf}
trustAllCerts={false}
renderActivityIndicator={() => <ActivityIndicator size="large" color={isDark ? 'white' : 'black'} />}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-start',
alignItems: 'center',
},
pdf: {
flex: 1,
width: '100%',
},
});

View File

@ -0,0 +1,131 @@
import React from 'react';
import { View, Text, TextInput, TouchableOpacity, ScrollView, ActivityIndicator, useColorScheme, KeyboardAvoidingView, Platform, Image } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useAuthStore } from '../store/useAuthStore';
import { getThemeStyles, commonStyles } from '../theme/styles';
import { COLORS } from '../theme/colors';
import { useProfileManager } from '../hooks/useProfileManager';
export default function EditProfileScreen() {
const { user } = useAuthStore();
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
const themeColors = isDark ? COLORS.DARK : COLORS.LIGHT;
const {
loading,
avatar,
firstName,
lastName,
phone,
address,
setFirstName,
setLastName,
setPhone,
setAddress,
pickImage,
handleSave,
} = useProfileManager();
return (
<KeyboardAvoidingView
style={themeStyles.container}
behavior={Platform.OS === 'ios' ? 'padding' : undefined}
keyboardVerticalOffset={Platform.OS === 'ios' ? 100 : 0}
>
<ScrollView contentContainerStyle={{ padding: 20 }}>
<Text style={[commonStyles.title, themeStyles.text, { textAlign: 'left', marginBottom: 20 }]}>
Edit Profile
</Text>
<View style={{ alignItems: 'center', marginBottom: 30 }}>
<TouchableOpacity onPress={pickImage} style={{ position: 'relative' }}>
<View style={{
width: 100,
height: 100,
borderRadius: 50,
backgroundColor: themeColors.brand,
alignItems: 'center',
justifyContent: 'center',
overflow: 'hidden',
}}>
{avatar ? (
<Image source={{ uri: avatar }} style={{ width: '100%', height: '100%' }} />
) : (
<Text style={{ fontSize: 40, fontWeight: 'bold', color: 'white' }}>
{user?.user?.first_name?.charAt(0).toUpperCase() || user?.user?.email?.charAt(0).toUpperCase() || 'U'}
</Text>
)}
</View>
<View style={{
position: 'absolute',
bottom: 0,
right: 0,
backgroundColor: themeColors.card,
borderRadius: 15,
padding: 6,
borderWidth: 1,
borderColor: isDark ? '#2d3748' : '#e2e8f0',
}}>
<Ionicons name="camera" size={18} color={themeColors.text} />
</View>
</TouchableOpacity>
</View>
<View style={commonStyles.form}>
<Text style={[commonStyles.label, themeStyles.subtitle]}>First Name</Text>
<TextInput
style={themeStyles.input}
value={firstName}
onChangeText={setFirstName}
placeholder="Enter first name"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
/>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Last Name</Text>
<TextInput
style={themeStyles.input}
value={lastName}
onChangeText={setLastName}
placeholder="Enter last name"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
/>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Phone</Text>
<TextInput
style={themeStyles.input}
value={phone}
onChangeText={setPhone}
placeholder="Enter phone number"
keyboardType="phone-pad"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
/>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Address</Text>
<TextInput
style={[themeStyles.input, { height: 100, textAlignVertical: 'top' }]}
value={address}
onChangeText={setAddress}
placeholder="Enter address"
multiline
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
/>
<TouchableOpacity
style={[themeStyles.button, loading && commonStyles.buttonDisabled, { marginTop: 40 }]}
onPress={handleSave}
disabled={loading}
>
{loading ? (
<ActivityIndicator color="white" />
) : (
<Text style={themeStyles.buttonText}>Save Changes</Text>
)}
</TouchableOpacity>
</View>
</ScrollView>
</KeyboardAvoidingView>
);
}

View File

@ -0,0 +1,95 @@
import React, { useState } from 'react';
import { View, Text, TextInput, TouchableOpacity, ActivityIndicator, Image, KeyboardAvoidingView, Platform, Alert, useColorScheme, ScrollView } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { authService } from '../services/api';
import { getThemeStyles, commonStyles } from '../theme/styles';
export default function ForgotPasswordScreen() {
const navigation = useNavigation();
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
const [email, setEmail] = useState('');
const [loading, setLoading] = useState(false);
const handleReset = async () => {
if (!email) {
Alert.alert('Error', 'Please enter your email');
return;
}
setLoading(true);
try {
const { ok, message } = await authService.sendPasswordResetEmail(email);
if (ok) {
Alert.alert(
'Check your email',
'We have sent you a password reset link.',
[{ text: 'OK', onPress: () => navigation.goBack() }]
);
} else {
Alert.alert('Error', message || 'Could not send reset link');
}
} catch (error) {
console.error(error);
Alert.alert('Network Error', 'Could not connect to server.');
} finally {
setLoading(false);
}
};
return (
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={themeStyles.container}
>
<ScrollView contentContainerStyle={commonStyles.scrollContent}>
<View style={commonStyles.logoContainer}>
<Image
source={isDark ? require('../../assets/icons/ios-dark.png') : require('../../assets/icons/ios-light.png')}
style={commonStyles.logo}
resizeMode="contain"
/>
</View>
<Text style={themeStyles.headerTitle}>CasaDoc</Text>
<Text style={[commonStyles.subtitle, themeStyles.subtitle]}>
Reset Password
</Text>
<View style={[commonStyles.form, themeStyles.card]}>
<Text style={[commonStyles.label, themeStyles.subtitle]}>Email Address</Text>
<TextInput
style={[themeStyles.input]}
placeholder="name@example.com"
placeholderTextColor={isDark ? '#a0aec0' : '#a0aec0'}
value={email}
onChangeText={setEmail}
autoCapitalize="none"
keyboardType="email-address"
autoCorrect={false}
/>
<TouchableOpacity
style={[themeStyles.button, loading && commonStyles.buttonDisabled]}
onPress={handleReset}
disabled={loading}
>
{loading ? (
<ActivityIndicator color="white" />
) : (
<Text style={themeStyles.buttonText}>Send Reset Link</Text>
)}
</TouchableOpacity>
<TouchableOpacity onPress={() => navigation.goBack()} style={{ marginTop: 20, alignItems: 'center' }}>
<Text style={themeStyles.linkText}>
Back to Login
</Text>
</TouchableOpacity>
</View>
</ScrollView>
</KeyboardAvoidingView>
);
}

View File

@ -0,0 +1,95 @@
import React, { useEffect } from 'react';
import { View, Text, useColorScheme, FlatList, TouchableOpacity, ActivityIndicator } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useNavigation } from '@react-navigation/native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { RootStackParamList } from '../navigation/AppNavigator';
import { getThemeStyles, commonStyles, homeStyles } from '../theme/styles';
import { useDocumentStore } from '../store/useDocumentStore';
import { useAuthStore } from '../store/useAuthStore';
import { useDocumentScanner } from '../hooks/useDocumentScanner';
import { useDocumentActions } from '../hooks/useDocumentActions';
import { COLORS } from '../theme/colors';
export default function HomeScreen() {
const navigation = useNavigation<NativeStackNavigationProp<RootStackParamList>>();
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
const themeColors = isDark ? COLORS.DARK : COLORS.LIGHT;
const { user } = useAuthStore();
const { documents, loadDocuments, isLoading } = useDocumentStore();
const { isScanning, scanDocument } = useDocumentScanner();
const { handleRename, handleDelete } = useDocumentActions();
useEffect(() => {
if (user?.user?.id) {
loadDocuments(user.user.id);
}
}, [user]);
const renderItem = ({ item }: { item: any }) => (
<TouchableOpacity onPress={() => navigation.navigate('DocumentView', { uri: item.uri })} activeOpacity={0.7}>
<View style={[homeStyles.docCard, { backgroundColor: themeColors.card, borderColor: isDark ? '#2d3748' : '#e2e8f0' }]}>
<View style={homeStyles.docIcon}>
<Ionicons name="document-text-outline" size={32} color={themeColors.brand} />
</View>
<View style={homeStyles.docInfo}>
<Text style={[homeStyles.docName, { color: themeColors.text }]} numberOfLines={1}>
{item.name.replace('.pdf', '')}
</Text>
<Text style={[homeStyles.docDate, { color: isDark ? '#a0aec0' : '#718096' }]}>
{new Date(item.timestamp).toLocaleDateString()}
</Text>
</View>
<TouchableOpacity onPress={() => handleRename(item.name)} style={homeStyles.deleteBtn}>
<Ionicons name="create-outline" size={22} color={isDark ? '#a0aec0' : '#718096'} />
</TouchableOpacity>
<TouchableOpacity onPress={() => handleDelete(item.name)} style={homeStyles.deleteBtn}>
<Ionicons name="trash-outline" size={22} color="#ef4444" />
</TouchableOpacity>
</View>
</TouchableOpacity>
);
return (
<View style={themeStyles.container}>
{documents.length === 0 ? (
<View style={commonStyles.centered}>
<Ionicons name="documents-outline" size={64} color={isDark ? '#4a5568' : '#cbd5e0'} />
<Text style={[themeStyles.subtitle, { marginTop: 16 }]}>No documents yet.</Text>
<Text style={[themeStyles.text, { textAlign: 'center', opacity: 0.6 }]}>
Tap the + button to scan your first document.
</Text>
</View>
) : (
<FlatList
data={documents}
renderItem={renderItem}
keyExtractor={(item) => item.name}
contentContainerStyle={homeStyles.listContent}
refreshing={isLoading}
onRefresh={() => user?.user.id && loadDocuments(user.user.id)}
/>
)}
{isScanning && (
<View style={homeStyles.loadingOverlay}>
<ActivityIndicator size="large" color="#fff" />
<Text style={{ color: '#fff', marginTop: 10 }}>Processing...</Text>
</View>
)}
<TouchableOpacity
style={[homeStyles.fab, { backgroundColor: themeColors.brand }]}
onPress={scanDocument}
activeOpacity={0.8}
>
<Ionicons name="add" size={32} color="#fff" />
</TouchableOpacity>
</View>
);
}

View File

@ -0,0 +1,232 @@
import React from 'react';
import { View, Text, TouchableOpacity, useColorScheme, ScrollView, Image, ActivityIndicator, Modal, Alert } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { useNavigation } from '@react-navigation/native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { RootStackParamList } from '../navigation/AppNavigator';
import { getThemeStyles } from '../theme/styles';
import { COLORS } from '../theme/colors';
import { useProfileLogic } from '../hooks/useProfileLogic';
import appConfig from '../../app.json';
export default function ProfileScreen() {
const navigation = useNavigation<NativeStackNavigationProp<RootStackParamList>>();
const colorScheme = useColorScheme();
const isDark = colorScheme === 'dark';
const themeStyles = getThemeStyles(isDark);
const themeColors = isDark ? COLORS.DARK : COLORS.LIGHT;
const {
user,
displayName,
isResending,
isModalVisible,
setIsModalVisible,
handleResendVerification,
handleDeleteAccount,
logout,
} = useProfileLogic();
if (!user) return null;
const MenuItem = ({ icon, label, onPress, isDestructive = false }: { icon: string, label: string, onPress: () => void, isDestructive?: boolean }) => (
<TouchableOpacity
style={{
flexDirection: 'row',
alignItems: 'center',
paddingVertical: 16,
borderBottomWidth: 1,
borderBottomColor: isDark ? '#2d3748' : '#edf2f7',
}}
onPress={onPress}
>
<View style={{
width: 36,
height: 36,
borderRadius: 18,
backgroundColor: isDestructive ? '#fff5f5' : (isDark ? '#2d3748' : '#ebf8ff'),
alignItems: 'center',
justifyContent: 'center',
marginRight: 16
}}>
<Ionicons
name={icon as any}
size={20}
color={isDestructive ? '#e53e3e' : themeColors.brand}
/>
</View>
<Text style={{
flex: 1,
fontSize: 16,
color: isDestructive ? '#e53e3e' : themeColors.text,
fontWeight: '500'
}}>
{label}
</Text>
<Ionicons name="chevron-forward" size={20} color={isDark ? '#718096' : '#cbd5e0'} />
</TouchableOpacity>
);
return (
<ScrollView
style={themeStyles.container}
contentContainerStyle={{ paddingBottom: 40 }}
showsVerticalScrollIndicator={false}
>
{!user.user?.email_verified_at && (
<TouchableOpacity
style={{
backgroundColor: '#fffaf0',
padding: 12,
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
borderBottomWidth: 1,
borderBottomColor: '#feebc8'
}}
onPress={handleResendVerification}
disabled={isResending}
>
<View style={{ flexDirection: 'row', alignItems: 'center', flex: 1 }}>
<Ionicons name="warning-outline" size={20} color="#ed8936" />
<Text style={{ marginLeft: 10, color: '#c05621', fontSize: 14, flex: 1 }}>
Your email is not verified. Tap to resend link.
</Text>
</View>
{isResending ? (
<ActivityIndicator size="small" color="#c05621" />
) : (
<Ionicons name="arrow-forward" size={18} color="#c05621" />
)}
</TouchableOpacity>
)}
{/* Header Profile Section */}
<View style={{ alignItems: 'center', paddingTop: 40, paddingBottom: 30 }}>
<View style={{
width: 100,
height: 100,
borderRadius: 50,
backgroundColor: 'white',
alignItems: 'center',
justifyContent: 'center',
marginBottom: 16,
shadowColor: themeColors.brand,
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3,
shadowRadius: 8,
elevation: 6,
overflow: 'hidden', // Ensure image clips to circle
}}>
{user.user?.avatar ? (
<TouchableOpacity onPress={() => setIsModalVisible(true)} style={{ width: '100%', height: '100%' }}>
<Image
source={{ uri: user.user.avatar }}
style={{ width: '100%', height: '100%' }}
resizeMode="contain"
/>
</TouchableOpacity>
) : (
<Text style={{ fontSize: 40, fontWeight: 'bold', color: 'white' }}>
{displayName.charAt(0).toUpperCase()}
</Text>
)}
</View>
<Text style={{ fontSize: 24, fontWeight: 'bold', color: themeColors.text, marginBottom: 4 }}>
{displayName}
</Text>
<Text style={{ fontSize: 16, color: themeColors.subtitle }}>
{user.user?.email}
</Text>
</View>
{/* Settings Section */}
<View style={{
backgroundColor: themeColors.card,
marginHorizontal: 20,
borderRadius: 16,
paddingHorizontal: 20,
marginBottom: 20,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.05,
shadowRadius: 4,
elevation: 2
}}>
<MenuItem icon="person-outline" label="Edit Profile" onPress={() => navigation.navigate('EditProfile')} />
<MenuItem icon="notifications-outline" label="Notifications" onPress={() => {}} />
<MenuItem icon="key-outline" label="API Token" onPress={() => Alert.alert('Your Token', user.token)} />
<MenuItem icon="help-circle-outline" label="Help & Support" onPress={() => {}} />
</View>
{/* Danger Zone */}
<View style={{
backgroundColor: themeColors.card,
marginHorizontal: 20,
borderRadius: 16,
paddingHorizontal: 20,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.05,
shadowRadius: 4,
elevation: 2
}}>
<MenuItem icon="log-out-outline" label="Sign Out" onPress={logout} />
<MenuItem icon="trash-outline" label="Delete Account" onPress={handleDeleteAccount} isDestructive />
</View>
<Text style={{
textAlign: 'center',
marginTop: 30,
color: themeColors.subtitle,
fontSize: 12
}}>
Version {appConfig.expo.version}
</Text>
<Modal
visible={isModalVisible}
transparent={true}
animationType="fade"
onRequestClose={() => setIsModalVisible(false)}
>
<TouchableOpacity
style={{
flex: 1,
backgroundColor: 'rgba(0,0,0,0.90)',
justifyContent: 'center',
alignItems: 'center'
}}
activeOpacity={1}
onPress={() => setIsModalVisible(false)}
>
{user.user?.avatar && (
<View style={{
width: 300,
height: 300,
borderRadius: 150, // Circular container
backgroundColor: 'black',
overflow: 'hidden',
justifyContent: 'center',
alignItems: 'center',
borderWidth: 0.5,
borderColor: 'white'
}}>
<Image
source={{ uri: user.user.avatar }}
style={{ width: '100%', height: '100%' }}
resizeMode="contain"
/>
</View>
)}
<TouchableOpacity
style={{ position: 'absolute', top: 50, right: 20, padding: 10 }}
onPress={() => setIsModalVisible(false)}
>
<Ionicons name="close" size={30} color="white" />
</TouchableOpacity>
</TouchableOpacity>
</Modal>
</ScrollView>
);
}

View File

@ -0,0 +1,101 @@
import * as FileSystem from 'expo-file-system/legacy';
const getDocumentDir = (userId: string | number) => `${FileSystem.documentDirectory}documents/user_${userId}/`;
export interface ScannedDocument {
uri: string;
name: string;
timestamp: number;
size?: number;
}
export const DocumentService = {
// Ensure the documents directory exists for the specific user
init: async (userId: string | number) => {
const dir = getDocumentDir(userId);
const dirInfo = await FileSystem.getInfoAsync(dir);
if (!dirInfo.exists) {
await FileSystem.makeDirectoryAsync(dir, { intermediates: true });
}
},
// Save a scanned file from a temporary URI to permanent storage
saveDocument: async (userId: string | number, tempUri: string, fileName: string): Promise<ScannedDocument> => {
await DocumentService.init(userId);
const dir = getDocumentDir(userId);
const timestamp = Date.now();
const destination = `${dir}${fileName}.pdf`;
await FileSystem.moveAsync({
from: tempUri,
to: destination,
});
const fileInfo = await FileSystem.getInfoAsync(destination);
return {
uri: destination,
name: `${fileName}.pdf`,
timestamp,
size: fileInfo.exists ? fileInfo.size : 0,
};
},
// Get a list of all saved documents for a user
getDocuments: async (userId: string | number): Promise<ScannedDocument[]> => {
await DocumentService.init(userId);
const dir = getDocumentDir(userId);
const files = await FileSystem.readDirectoryAsync(dir);
const docs: ScannedDocument[] = await Promise.all(
files.map(async (fileName) => {
const uri = `${dir}${fileName}`;
const info = await FileSystem.getInfoAsync(uri);
// Extract timestamp from filename if possible, else use modification time
const match = fileName.match(/scan_(\d+)/);
const timestamp = match ? parseInt(match[1]) : (info.exists ? info.modificationTime || 0 : 0) * 1000;
return {
uri,
name: fileName,
timestamp,
size: info.exists ? info.size : 0,
};
})
);
// Sort by newest first
return docs.sort((a, b) => b.timestamp - a.timestamp);
},
// Delete a document
deleteDocument: async (userId: string | number, fileName: string) => {
const dir = getDocumentDir(userId);
const uri = `${dir}${fileName}`;
await FileSystem.deleteAsync(uri, { idempotent: true });
},
// Rename a document
renameDocument: async (userId: string | number, oldName: string, newName: string): Promise<ScannedDocument> => {
const dir = getDocumentDir(userId);
const oldUri = `${dir}${oldName}`;
const newUri = `${dir}${newName}.pdf`; // Assuming pdf extension
await FileSystem.moveAsync({
from: oldUri,
to: newUri,
});
const fileInfo = await FileSystem.getInfoAsync(newUri);
const timestamp = fileInfo.exists ? (fileInfo.modificationTime || 0) * 1000 : Date.now();
return {
uri: newUri,
name: `${newName}.pdf`,
timestamp,
size: fileInfo.exists ? fileInfo.size : 0,
};
},
};

194
mobile/src/services/api.ts Normal file
View File

@ -0,0 +1,194 @@
import { useAuthStore } from '../store/useAuthStore';
const getAuthHeaders = () => {
const token = useAuthStore.getState().user?.token;
return {
'Accept': 'application/json',
...(token ? { 'Authorization': `Bearer ${token}` } : {}),
};
};
export const API_URL = 'https://supercuriously-precongested-chester.ngrok-free.dev/api'; // ngrok URL for testing
export const authService = {
login: async (username, password) => {
console.log('Attempting login to:', `${API_URL}/login`);
const response = await fetch(`${API_URL}/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
username, // Vanguard expects 'username' key even for emails
password,
device_name: 'react-native-app',
}),
});
return response.json();
},
register: async (data) => {
const response = await fetch(`${API_URL}/register`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
...data,
device_name: 'react-native-app',
}),
});
return {
ok: response.ok,
data: await response.json(),
};
},
sendPasswordResetEmail: async (email) => {
const response = await fetch(`${API_URL}/password/remind`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({ email }),
});
if (response.ok) {
return { ok: true };
}
// Parse error message
const data = await response.json();
return { ok: false, message: data.message || 'Failed to send reset link' };
},
socialLogin: async (provider, token) => {
console.log(`Attempting ${provider} login`);
const response = await fetch(`${API_URL}/login/social`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify({
network: provider,
social_token: token,
device_name: 'react-native-app',
}),
});
return response.json();
},
getProfile: async () => {
const response = await fetch(`${API_URL}/me`, {
method: 'GET',
headers: getAuthHeaders(),
});
return response.json();
},
updateProfile: async (data: any) => {
const response = await fetch(`${API_URL}/me/details`, {
method: 'PATCH',
headers: {
...getAuthHeaders(),
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
});
const text = await response.text();
try {
const json = JSON.parse(text);
if (response.ok) {
return { ok: true, data: json };
}
return { ok: false, message: json.message || 'Failed to update profile' };
} catch (e) {
console.error('Update Profile Error (Raw Response):', text);
return { ok: false, message: 'Server returned an invalid response' };
}
},
uploadAvatar: async (imageUri: string) => {
const formData = new FormData();
// Simplification: Always name the file 'avatar.jpg' and type 'image/jpeg'.
// This avoids issues with weird temp filenames or missing extensions
// that cause backend validation ("must be an image") to fail.
// React Native's FormData will read the file bytes correctly from the URI.
const filename = 'avatar.jpg';
const type = 'image/jpeg';
// React Native FormData expects an object with uri, name, type.
// Cast to 'any' to avoid TypeScript type mismatch.
formData.append('file', { uri: imageUri, name: filename, type } as any);
const response = await fetch(`${API_URL}/me/avatar`, {
method: 'POST',
headers: {
...getAuthHeaders(),
},
body: formData,
});
const text = await response.text();
try {
const json = JSON.parse(text);
if (response.ok) {
return { ok: true, data: json };
}
console.error('Upload Avatar Failed (Server Message):', json);
return { ok: false, message: json.message || 'Failed to upload avatar' };
} catch (e) {
console.error('Upload Avatar Error (Raw Response):', text);
return { ok: false, message: 'Server returned an invalid response' };
}
},
resendVerificationEmail: async () => {
const response = await fetch(`${API_URL}/email/resend`, {
method: 'POST',
headers: {
...getAuthHeaders(),
'Content-Type': 'application/json',
},
});
if (response.ok) {
return { ok: true };
}
const text = await response.text();
try {
const json = JSON.parse(text);
return { ok: false, message: json.message || 'Failed to send verification email' };
} catch {
return { ok: false, message: 'Network error' };
}
},
deleteAccount: async () => {
const response = await fetch(`${API_URL}/me`, {
method: 'DELETE',
headers: getAuthHeaders(),
});
if (response.ok) {
return { ok: true };
}
const text = await response.text();
try {
const json = JSON.parse(text);
console.error('Delete Account Failed (Server Message):', json);
return { ok: false, message: json.message || 'Failed to delete account' };
} catch {
console.error('Delete Account Failed (Raw Response):', text);
return { ok: false, message: 'Server returned an invalid response' };
}
},
};

View File

@ -0,0 +1,52 @@
import { create } from 'zustand';
import { persist, createJSONStorage } from 'zustand/middleware';
import AsyncStorage from '@react-native-async-storage/async-storage';
interface User {
token: string;
user: {
id: number;
email: string;
first_name?: string;
last_name?: string;
phone?: string;
address?: string;
username?: string;
email_verified_at?: string | null;
avatar?: string;
};
}
interface AuthState {
user: User | null;
isLoading: boolean;
login: (userData: User) => void;
updateUser: (updates: Partial<User['user']>) => void;
logout: () => void;
setLoading: (loading: boolean) => void;
}
export const useAuthStore = create<AuthState>()(
persist(
(set) => ({
user: null,
isLoading: true,
login: (userData) => set({ user: userData }),
updateUser: (updates) =>
set((state) => ({
user: state.user
? { ...state.user, user: { ...state.user.user, ...updates } }
: null,
})),
logout: () => set({ user: null }),
setLoading: (loading) => set({ isLoading: loading }),
}),
{
name: 'auth-storage',
storage: createJSONStorage(() => AsyncStorage),
onRehydrateStorage: () => (state) => {
state?.setLoading(false);
},
}
)
);

View File

@ -0,0 +1,65 @@
import { create } from 'zustand';
import { DocumentService, ScannedDocument } from '../services/DocumentService';
interface DocumentState {
documents: ScannedDocument[];
isLoading: boolean;
loadDocuments: (userId: string | number) => Promise<void>;
addDocument: (userId: string | number, tempUri: string, fileName: string) => Promise<void>;
removeDocument: (userId: string | number, fileName: string) => Promise<void>;
renameDocument: (userId: string | number, oldName: string, newName: string) => Promise<void>;
}
export const useDocumentStore = create<DocumentState>((set, get) => ({
documents: [],
isLoading: false,
loadDocuments: async (userId: string | number) => {
set({ isLoading: true });
try {
const docs = await DocumentService.getDocuments(userId);
set({ documents: docs });
} catch (error) {
console.error('Failed to load documents', error);
set({ documents: [] });
} finally {
set({ isLoading: false });
}
},
addDocument: async (userId: string | number, tempUri: string, fileName: string) => {
try {
const newDoc = await DocumentService.saveDocument(userId, tempUri, fileName);
set((state) => ({
documents: [newDoc, ...state.documents].sort((a, b) => b.timestamp - a.timestamp),
}));
} catch (error) {
console.error('Failed to save document', error);
throw error;
}
},
removeDocument: async (userId: string | number, fileName: string) => {
try {
await DocumentService.deleteDocument(userId, fileName);
set((state) => ({
documents: state.documents.filter((doc) => doc.name !== fileName),
}));
} catch (error) {
console.error('Failed to delete document', error);
throw error;
}
},
renameDocument: async (userId: string | number, oldName: string, newName: string) => {
try {
const updatedDoc = await DocumentService.renameDocument(userId, oldName, newName);
set((state) => ({
documents: state.documents.map((doc) => (doc.name === oldName ? updatedDoc : doc)),
}));
} catch (error) {
console.error('Failed to rename document', error);
throw error;
}
},
}));

View File

@ -0,0 +1,24 @@
export const COLORS = {
LIGHT: {
brand: '#23568C', // Dark Blue
background: '#f5f5f5',
card: '#ffffff',
text: '#333333',
subtitle: '#666666',
inputBackground: '#f7fafc',
inputBorder: '#e2e8f0',
inputText: '#2d3748',
tokenBox: '#f7fafc',
},
DARK: {
brand: '#CBEFFF', // Light Blue
background: '#1a202c',
card: '#2d3748',
text: '#ffffff',
subtitle: '#a0aec0',
inputBackground: '#4a5568',
inputBorder: '#718096',
inputText: '#ffffff',
tokenBox: '#1a202c',
}
};

238
mobile/src/theme/styles.ts Normal file
View File

@ -0,0 +1,238 @@
import { StyleSheet } from 'react-native';
import { COLORS } from './colors';
export const getThemeStyles = (isDark: boolean) => {
const theme = isDark ? COLORS.DARK : COLORS.LIGHT;
return StyleSheet.create({
container: { backgroundColor: theme.background, flex: 1 },
text: { color: theme.text },
card: { backgroundColor: theme.card },
input: {
backgroundColor: theme.inputBackground,
color: theme.inputText,
borderColor: theme.inputBorder,
borderWidth: 1,
padding: 15,
borderRadius: 12,
fontSize: 16,
},
subtitle: { color: theme.subtitle },
tokenBox: { backgroundColor: theme.tokenBox },
// Dynamic brand color styles
headerTitle: {
color: theme.brand,
fontSize: 36,
fontWeight: '800',
textAlign: 'center',
marginBottom: 5,
},
button: {
backgroundColor: theme.brand,
padding: 18,
borderRadius: 12,
alignItems: 'center',
marginTop: 35,
marginBottom: 10,
shadowColor: theme.brand,
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3,
shadowRadius: 8,
},
avatar: {
width: 60,
height: 60,
borderRadius: 30,
backgroundColor: theme.brand,
justifyContent: 'center',
alignItems: 'center',
marginRight: 15,
},
linkText: {
color: theme.brand,
fontWeight: '600',
},
buttonText: {
color: isDark ? COLORS.LIGHT.brand : '#ffffff',
fontSize: 18,
fontWeight: 'bold',
}
});
};
export const commonStyles = StyleSheet.create({
container: {
flex: 1,
},
scrollContent: {
flexGrow: 1,
justifyContent: 'center',
padding: 25,
paddingTop: 60,
paddingBottom: 40,
},
content: {
flex: 1,
justifyContent: 'center',
padding: 25,
},
logoContainer: {
alignItems: 'center',
marginBottom: 20,
},
logo: {
width: 100,
height: 100,
},
subtitle: {
fontSize: 16,
textAlign: 'center',
marginBottom: 40,
},
title: {
fontSize: 28,
fontWeight: 'bold',
marginBottom: 30,
textAlign: 'center',
},
form: {
padding: 25,
borderRadius: 20,
shadowColor: '#000',
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.1,
shadowRadius: 10,
elevation: 5,
},
label: {
fontSize: 14,
marginBottom: 8,
marginTop: 15,
fontWeight: '600',
},
buttonDisabled: {
opacity: 0.7,
},
card: {
padding: 25,
borderRadius: 20,
marginBottom: 20,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.1,
shadowRadius: 8,
},
userInfo: {
flexDirection: 'row',
alignItems: 'center',
marginBottom: 20,
},
avatarText: {
color: 'white',
fontSize: 24,
fontWeight: 'bold',
},
value: {
fontSize: 18,
fontWeight: '600',
},
tokenBox: {
padding: 15,
borderRadius: 10,
marginTop: 10,
},
token: {
fontSize: 12,
color: '#718096',
fontFamily: 'Courier',
marginTop: 5,
},
logoutButton: {
backgroundColor: 'white',
padding: 15,
borderRadius: 12,
alignItems: 'center',
borderWidth: 1,
borderColor: '#e2e8f0',
},
logoutText: {
color: '#e53e3e',
fontSize: 16,
fontWeight: '600',
},
tosContainer: {
flexDirection: 'row',
alignItems: 'center',
marginTop: 15,
},
tosText: {
marginLeft: 10,
fontSize: 14,
},
centered: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
padding: 20,
},
});
export const homeStyles = StyleSheet.create({
listContent: {
padding: 16,
paddingBottom: 100, // Space for FAB
},
docCard: {
flexDirection: 'row',
alignItems: 'center',
padding: 16,
borderRadius: 12,
marginBottom: 12,
borderWidth: 1,
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.05,
shadowRadius: 4,
elevation: 2,
},
docIcon: {
marginRight: 16,
},
docInfo: {
flex: 1,
},
docName: {
fontSize: 16,
fontWeight: '600',
marginBottom: 4,
},
docDate: {
fontSize: 12,
},
deleteBtn: {
padding: 8,
},
fab: {
position: 'absolute',
bottom: 24,
right: 24,
width: 64,
height: 64,
borderRadius: 32,
alignItems: 'center',
justifyContent: 'center',
shadowColor: '#000',
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3,
shadowRadius: 4.65,
elevation: 8,
},
loadingOverlay: {
...StyleSheet.absoluteFillObject,
backgroundColor: 'rgba(0,0,0,0.7)',
alignItems: 'center',
justifyContent: 'center',
zIndex: 1000,
},
});

3
mobile/tsconfig.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "expo/tsconfig.base"
}

View File

@ -1,2 +0,0 @@
*
!.gitignore

View File

@ -1,46 +0,0 @@
<?php
// add-document.php
include('include/headscript.php');
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$document_name = $conn->real_escape_string($_POST['document_name']);
$page_id = isset($_POST['page_id']) ? (int)$_POST['page_id'] : null;
$idsections = isset($_POST['idsections']) ? (int)$_POST['idsections'] : null;
$max_documents = isset($_POST['max_documents']) ? (int)$_POST['max_documents'] : 0;
$is_required = isset($_POST['is_required']) ? (int)$_POST['is_required'] : 0;
$notes = !empty($_POST['notes']) ? $conn->real_escape_string($_POST['notes']) : null;
$tags = isset($_POST['tags']) ? $_POST['tags'] : []; // Array di tag selezionati
// Inserisci il documento
$stmt = $conn->prepare("INSERT INTO documents (document_name, page_id, idsections, max_documents, is_required, notes) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("siiiss", $document_name, $page_id, $idsections, $max_documents, $is_required, $notes);
$stmt->execute();
$document_id = $conn->insert_id;
$stmt->close();
// Inserisci i tag nella tabella document_tags
if (!empty($tags)) {
$stmt = $conn->prepare("INSERT INTO document_tags (document_id, tag_id) VALUES (?, ?)");
foreach ($tags as $tag_id) {
$tag_id = (int)$tag_id;
$stmt->bind_param("ii", $document_id, $tag_id);
$stmt->execute();
}
$stmt->close();
}
header("Location: documents-settings.php?success=1");
exit();
} else {
header("Location: documents-settings.php?error=1");
exit();
}
$conn->close();

View File

@ -1,78 +0,0 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once __DIR__ . '/class/db-functions.php';
$dbHandler = DBHandlerSelect::getInstance();
$pdo = $dbHandler->getConnection();
// Ricezione dati dal form
$user_id = isset($_POST['user_id']) ? (int)$_POST['user_id'] : 0;
$first_name = isset($_POST['first_name']) ? htmlspecialchars($_POST['first_name']) : null;
$last_name = isset($_POST['last_name']) ? htmlspecialchars($_POST['last_name']) : null;
$company_name = isset($_POST['company_name']) ? htmlspecialchars($_POST['company_name']) : null;
$tax_code = isset($_POST['tax_code']) ? htmlspecialchars($_POST['tax_code']) : null;
$email = isset($_POST['email']) ? htmlspecialchars($_POST['email']) : null;
$phone = isset($_POST['phone']) ? htmlspecialchars($_POST['phone']) : null;
$address = isset($_POST['address']) ? htmlspecialchars($_POST['address']) : null;
$postal_code = isset($_POST['postal_code']) ? htmlspecialchars($_POST['postal_code']) : null;
$city = isset($_POST['city']) ? htmlspecialchars($_POST['city']) : null;
$province = isset($_POST['province']) ? htmlspecialchars($_POST['province']) : null;
$country = isset($_POST['country']) ? (int)$_POST['country'] : null;
$owner_type = isset($_POST['owner_type']) ? htmlspecialchars($_POST['owner_type']) : null;
$role = isset($_POST['role']) ? htmlspecialchars($_POST['role']) : null;
$notes = isset($_POST['notes']) ? htmlspecialchars($_POST['notes']) : null;
// Validazione dei campi obbligatori
if (!$user_id || !$tax_code || !$email || !$owner_type) {
die(json_encode(["success" => false, "message" => "Campi obbligatori mancanti."]));
}
// Se è una persona fisica, company_name deve essere NULL
if ($owner_type === "individual") {
$company_name = null;
}
// Controlla se il proprietario esiste già (evita duplicati)
$stmt = $pdo->prepare("SELECT owner_id FROM property_owners WHERE tax_code = ?");
$stmt->execute([$tax_code]);
if ($stmt->fetch()) {
die(json_encode(["success" => false, "message" => "Esiste già un proprietario con questo Codice Fiscale/Partita IVA."]));
}
// Inserisci nuovo proprietario
$stmt = $pdo->prepare("
INSERT INTO property_owners (user_id, first_name, last_name, company_name, tax_code, email, phone, address, postal_code, city, province, country, owner_type, role, notes)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
");
try {
$stmt->execute([
$user_id,
$first_name,
$last_name,
$company_name,
$tax_code,
$email,
$phone,
$address,
$postal_code,
$city,
$province,
$country,
$owner_type,
$role,
$notes
]);
$owner_id = $pdo->lastInsertId();
$owner_name = $owner_type === "individual" ? "$first_name $last_name" : $company_name;
echo json_encode([
"success" => true,
"message" => "Proprietario aggiunto con successo!",
"owner_id" => $owner_id,
"owner_name" => $owner_name,
"tax_code" => $tax_code
]);
} catch (PDOException $e) {
die(json_encode(["success" => false, "message" => "Errore nell'inserimento: " . $e->getMessage()]));
}

View File

@ -1,48 +0,0 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once __DIR__ . '/class/db-functions.php';
$dbHandler = DBHandlerSelect::getInstance();
$pdo = $dbHandler->getConnection();
// Recupera i dati inviati tramite POST
$idhome = isset($_POST['idhome']) ? (int)$_POST['idhome'] : 0;
$owner_id = isset($_POST['owner_id']) ? (int)$_POST['owner_id'] : 0;
$ownership_percentage = isset($_POST['ownership_percentage']) ? (float)$_POST['ownership_percentage'] : null;
$notes = isset($_POST['notes']) ? htmlspecialchars($_POST['notes']) : null;
// Verifica che tutti i dati siano presenti
if ($idhome <= 0 || $owner_id <= 0 || is_null($ownership_percentage)) {
die(json_encode(["success" => false, "message" => "Errore: Dati mancanti."]));
}
// Controlla se il proprietario è già associato alla casa
$stmt = $pdo->prepare("SELECT 1 FROM home_owners WHERE home_id = ? AND owner_id = ?");
$stmt->execute([$idhome, $owner_id]);
if ($stmt->fetch()) {
die(json_encode(["success" => false, "message" => "Errore: Il proprietario è già associato a questa casa."]));
}
// Calcola la somma attuale delle percentuali di proprietà
$stmt = $pdo->prepare("SELECT SUM(ownership_percentage) FROM home_owners WHERE home_id = ?");
$stmt->execute([$idhome]);
$currentTotal = $stmt->fetchColumn() ?: 0;
$totalAfterInsert = $currentTotal + $ownership_percentage;
if ($totalAfterInsert > 100) {
die(json_encode(["success" => false, "message" => "Errore: La somma totale dei proprietari supererebbe il 100%. Totale attuale: $currentTotal%, percentuale richiesta: $ownership_percentage%."]));
}
// Inserisce il nuovo proprietario nella tabella home_owners
$stmt = $pdo->prepare("
INSERT INTO home_owners (home_id, owner_id, ownership_percentage, notes, created_at, updated_at)
VALUES (?, ?, ?, ?, NOW(), NOW())
");
try {
$stmt->execute([$idhome, $owner_id, $ownership_percentage, $notes]);
echo json_encode(["success" => true, "message" => "Proprietario aggiunto con successo."]);
} catch (PDOException $e) {
die(json_encode(["success" => false, "message" => "Errore nell'inserimento: " . $e->getMessage()]));
}

View File

@ -1,25 +0,0 @@
<?php
include('include/headscript.php');
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Recupera i dati dal form
$namepages = $_POST['namepages'];
$slug = $_POST['slug'];
$descriptionpages = $_POST['descriptionpages'];
// Inserisce la nuova pagina nel database
$query = $conn->prepare("INSERT INTO pages (namepages, slug, descriptionpages) VALUES (?, ?, ?)");
$query->bind_param('sss', $namepages, $slug, $descriptionpages);
if ($query->execute()) {
header("Location: page-settings.php?success=1");
} else {
header("Location: page-settings.php?error=1");
}
$query->close();
$conn->close();

View File

@ -1,39 +0,0 @@
<?php
include('include/headscript.php');
// Abilita debug
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Controlla il metodo della richiesta
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Recupera i dati dal form
$role_name = trim($_POST['role_name']);
$description = trim($_POST['description']);
$permissions = trim($_POST['permissions']);
// Prepara e esegue la query
$stmt = $conn->prepare("INSERT INTO sharing_roles (`role_name`, `description`, `permissions`) VALUES (?, ?, ?)");
if ($stmt) {
$stmt->bind_param('sss', $role_name, $description, $permissions);
if ($stmt->execute()) {
header("Location: sharing-roles.php?success=1");
exit;
} else {
die("Errore di esecuzione: " . $stmt->error);
}
$stmt->close();
} else {
die("Errore nella preparazione della query: " . $conn->error);
}
}
$conn->close();

View File

@ -1,52 +0,0 @@
<?php
// Mostra errori per il debug
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include('include/headscript.php');
// Connessione al database
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Controlla se il metodo della richiesta è POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Recupera i dati dal form
$section_name = $conn->real_escape_string($_POST['section_name']);
$description = $conn->real_escape_string($_POST['description']);
// Prepara la query per l'inserimento
$query = "INSERT INTO sections (section_name, description) VALUES (?, ?)";
$stmt = $conn->prepare($query);
if ($stmt === false) {
die("Errore nella preparazione della query: " . $conn->error);
}
// Associa i parametri alla query
$stmt->bind_param('ss', $section_name, $description);
// Esegue la query
if ($stmt->execute()) {
// Reindirizza alla pagina sections.php con un messaggio di successo
header("Location: sections.php?success=1");
exit();
} else {
// Reindirizza alla pagina sections.php con un messaggio di errore
header("Location: sections.php?error=1");
exit();
}
$stmt->close();
} else {
// Metodo non consentito
header("HTTP/1.1 405 Method Not Allowed");
echo "Metodo non consentito.";
exit();
}
$conn->close();

View File

@ -1,187 +0,0 @@
<?php include('include/headscript.php'); ?>
<?php
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Recupera idhome
$idhome = isset($_GET['idhome']) ? (int)$_GET['idhome'] : 0;
// Recupera le sezioni dalla tabella 'sections'
$querySections = "SELECT idsections, section_name FROM sections ORDER BY section_name ASC";
$resultSections = $conn->query($querySections);
$sections = [];
if ($resultSections->num_rows > 0) {
while ($row = $resultSections->fetch_assoc()) {
$sections[] = $row;
}
}
// Recupera tutti i ruoli per la dropdown
$queryRoles = "SELECT idrole, role_name FROM sharing_roles";
$resultRoles = $conn->query($queryRoles);
$roles = [];
if ($resultRoles->num_rows > 0) {
while ($row = $resultRoles->fetch_assoc()) {
$roles[] = $row;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
<title>Aggiungi Condivisione</title>
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="assets/css/icons.css" rel="stylesheet" type="text/css">
<link href="assets/css/style.css" rel="stylesheet" type="text/css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style>
body {
background-color: #f8f9fa;
}
.card {
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.form-control {
border-radius: 5px;
}
.form-check-label {
font-weight: 600;
}
.btn-primary {
background-color: #007bff;
border-color: #007bff;
}
.btn-primary:hover {
background-color: #0056b3;
border-color: #004085;
}
.btn-secondary {
background-color: #6c757d;
border-color: #6c757d;
}
.btn-secondary:hover {
background-color: #5a6268;
border-color: #545b62;
}
</style>
</head>
<body>
<div id="wrapper">
<?php include('include/navigationbar.php'); ?>
<div class="content-page">
<div class="content">
<?php include('include/topbar.php'); ?>
<div class="page-content-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card mt-4">
<div class="card-header bg-warning text-white">
<h4 class="mb-0">
<i class="fas fa-share-alt"></i> Aggiungi Condivisione
</h4>
</div>
<div class="card-body">
<form action="save-sharing.php" method="POST">
<input type="hidden" name="idhome" value="<?php echo $idhome; ?>">
<!-- Email destinatario -->
<div class="form-group">
<label for="shared_email" class="form-label">
<i class="fas fa-envelope"></i> Email destinatario
</label>
<input type="email" class="form-control" id="shared_email" name="shared_email" placeholder="Inserisci email del destinatario" required>
</div>
<!-- Ruolo destinatario -->
<div class="form-group">
<label for="role_id" class="form-label">
<i class="fas fa-user-tag"></i> Tipologia destinatario
</label>
<select class="form-control" id="role_id" name="role_id" required>
<option value="">Seleziona un ruolo</option>
<?php foreach ($roles as $role) { ?>
<option value="<?php echo $role['idrole']; ?>"><?php echo htmlspecialchars($role['role_name']); ?></option>
<?php } ?>
</select>
</div>
<!-- Tipo di condivisione -->
<div class="form-group">
<label for="sharing_type" class="form-label">
<i class="fas fa-lock"></i> Tipo di condivisione
</label>
<select class="form-control" id="sharing_type" name="sharing_type" required>
<option value="read-only">Solo lettura</option>
<option value="add-documents">Aggiunta documenti</option>
</select>
</div>
<!-- Sezioni condivise -->
<div class="form-group">
<label class="form-label">
<i class="fas fa-folder"></i> Sezioni condivise
</label>
<div>
<?php foreach ($sections as $section) { ?>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="section_<?php echo $section['idsections']; ?>" name="shared_sections[]" value="<?php echo $section['idsections']; ?>">
<label class="form-check-label" for="section_<?php echo $section['idsections']; ?>">
<?php echo htmlspecialchars($section['section_name']); ?>
</label>
</div>
<?php } ?>
</div>
</div>
<!-- Data di scadenza -->
<div class="form-group">
<label for="expiration_date" class="form-label">
<i class="fas fa-calendar-alt"></i> Data di scadenza
</label>
<input type="date" class="form-control" id="expiration_date" name="expiration_date">
</div>
<!-- Pulsanti -->
<div class="mt-4">
<button type="submit" class="btn btn-primary btn-lg">
<i class="fas fa-save"></i> Salva Condivisione
</button>
<a href="share-home.php?idhome=<?php echo $idhome; ?>" class="btn btn-secondary btn-lg">
<i class="fas fa-arrow-left"></i> Annulla
</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div> <!-- Page content Wrapper -->
</div> <!-- content -->
<?php include('include/footer.php'); ?>
</div>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
</body>
</html>

View File

@ -1,291 +0,0 @@
<?php include('include/headscript.php'); ?>
<?php
// Connessione al database e avvio sessione
$conn = new mysqli($servername, $username, $password, $database);
// Verifica connessione
if ($conn->connect_error) {
die("Errore di connessione: " . $conn->connect_error);
}
// Recupera l'id utente loggato
$iduserlogin = $_SESSION['iduserlogin'];
// Calcolo del numero di immobili
$queryHomes = $conn->prepare("SELECT COUNT(*) AS total_homes FROM home");
$queryHomes->execute();
$resultHomes = $queryHomes->get_result();
$totalHomes = $resultHomes->fetch_assoc()['total_homes'];
// Calcolo del numero di persone
$queryOwners = $conn->prepare("SELECT COUNT(*) AS total_owners FROM property_owners");
$queryOwners->execute();
$resultOwners = $queryOwners->get_result();
$totalOwners = $resultOwners->fetch_assoc()['total_owners'];
// Numero di documenti (placeholder per ora)
// Calcolo del numero di documenti
$queryDocuments = $conn->prepare("
SELECT COUNT(*) AS total_documents
FROM doc_storage
LEFT JOIN home ON doc_storage.idhome = home.idhome
WHERE home.iduser = ?
");
$queryDocuments->bind_param('i', $iduserlogin);
$queryDocuments->execute();
$resultDocuments = $queryDocuments->get_result();
$totalDocuments = $resultDocuments->fetch_assoc()['total_documents'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
<?php include('include/seo.php'); ?>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="shortcut icon" href="assets/images/favicon.ico">
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="assets/css/icons.css" rel="stylesheet" type="text/css">
<link href="assets/css/style.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css">
</head>
<style>
/* Visualizza il pulsante mobile anche su desktop */
.button-menu-mobile {
display: inline-block !important;
}
/* Nascondi il quadrato rosso con la X su desktop */
@media (min-width: 992px) {
.button-menu-mobile {
background-color: transparent;
border: none;
padding: 0;
width: auto;
height: auto;
}
.button-menu-mobile i.ion-close {
display: none;
/* Nasconde la X rossa */
}
.button-menu-mobile i.mdi-menu {
display: inline-block;
/* Mostra sempre le tre righe orizzontali */
}
}
/* Stile per mobile: Mantieni il comportamento originale */
@media (max-width: 991.98px) {
.button-menu-mobile {
background-color: #ff5e5e;
/* Questo è il colore rosso originale */
border-radius: 50%;
width: 50px;
height: 50px;
}
.button-menu-mobile i.ion-close {
display: inline-block;
/* Mostra la X rossa */
}
.button-menu-mobile i.mdi-menu {
display: none;
/* Nasconde le tre righe quando la barra è aperta */
}
}
</style>
<body class="fixed-left">
<!-- Loader -->
<div id="preloader">
<div id="status">
<div class="spinner"></div>
</div>
</div>
<!-- Begin page -->
<div id="wrapper">
<?php include('include/navigationbar.php'); ?>
<!-- Start right Content here -->
<div class="content-page">
<!-- Start content -->
<div class="content">
<?php include('include/topbar.php'); ?>
<div class="page-content-wrapper ">
<div class="container-fluid">
<div class="row">
<div class="col-sm-12">
<div class="page-title-box">
<div class="btn-group float-right">
<ol class="breadcrumb hide-phone p-0 m-0">
<li class="breadcrumb-item"><a href="#">CasaDoc</a></li>
<li class="breadcrumb-item active">Dashboard</li>
</ol>
</div>
<h4 class="page-title">Dashboard</h4>
</div>
</div>
</div>
<!-- end page title end breadcrumb -->
<div class="row">
<div class="col-lg-12">
<div class="row">
<!-- Statistica: Numero di immobili -->
<div class="col-lg-4">
<div class="card shadow">
<div class="card-body">
<div class="icon-contain">
<div class="row">
<div class="col-2 align-self-center">
<i class="mdi mdi-home-outline" style="font-size: 2.5rem; color: #85c1e9;"></i>
</div>
<div class="col-10 text-right">
<h5 class="mt-0 mb-1"><?php echo $totalHomes; ?></h5>
<p class="mb-0 font-14" style="color: #5d6d7e;">Immobili inseriti</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Statistica: Numero di persone -->
<div class="col-lg-4">
<div class="card shadow">
<div class="card-body">
<div class="icon-contain">
<div class="row">
<div class="col-2 align-self-center">
<i class="mdi mdi-account-outline" style="font-size: 2.5rem; color: #82e0aa;"></i>
</div>
<div class="col-10 text-right">
<h5 class="mt-0 mb-1"><?php echo $totalOwners; ?></h5>
<p class="mb-0 font-14" style="color: #5d6d7e;">Proprietari registrati</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Statistica: Numero di documenti -->
<!-- Statistica: Numero di documenti -->
<div class="col-lg-4">
<div class="card shadow">
<div class="card-body">
<div class="icon-contain">
<div class="row">
<div class="col-2 align-self-center">
<i class="mdi mdi-file-outline" style="font-size: 2.5rem; color: #f8c471;"></i>
</div>
<div class="col-10 text-right">
<h5 class="mt-0 mb-1"><?php echo $totalDocuments; ?></h5>
<p class="mb-0 font-14" style="color: #5d6d7e;">Documenti caricati</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row text-center mt-4">
<div class="col-lg-6 col-md-6 mb-4">
<a href="page-settings.php" class="btn btn-warning d-flex flex-column justify-content-center align-items-center py-5 shadow rounded-lg">
<i class="mdi mdi-book-outline" style="font-size: 3rem;"></i>
<span class="mt-2 fw-bold" style="font-size: 1.25rem;">Gestione Pagine</span>
</a>
</div>
<div class="col-lg-6 col-md-6 mb-4">
<a href="documents-settings.php" class="btn btn-danger d-flex flex-column justify-content-center align-items-center py-5 shadow rounded-lg">
<i class="mdi mdi-file-cog-outline" style="font-size: 3rem;"></i>
<span class="mt-2 fw-bold" style="font-size: 1.25rem;">Gestione Documenti</span>
</a>
</div>
</div>
<div class="row text-center mt-4">
<div class="col-lg-6 col-md-6 mb-4">
<a href="sharing-roles.php" class="btn btn-info d-flex flex-column justify-content-center align-items-center py-5 shadow rounded-lg">
<i class="mdi mdi-book-outline" style="font-size: 3rem;"></i>
<span class="mt-2 fw-bold" style="font-size: 1.25rem;">Ruoli Condivisione</span>
</a>
</div>
<div class="col-lg-6 col-md-6 mb-4">
<a href="sections.php" class="btn btn-success d-flex flex-column justify-content-center align-items-center py-5 shadow rounded-lg">
<i class="mdi mdi-file-cog-outline" style="font-size: 3rem;"></i>
<span class="mt-2 fw-bold" style="font-size: 1.25rem;">Sections</span>
</a>
</div>
</div>
<!-- end row -->
</div><!-- container -->
</div> <!-- Page content Wrapper -->
</div> <!-- content -->
<?php include('include/footer.php'); ?>
</div>
<!-- End Right content here -->
</div>
<!-- END wrapper -->
<!-- jQuery -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/popper.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/modernizr.min.js"></script>
<script src="assets/js/detect.js"></script>
<script src="assets/js/fastclick.js"></script>
<script src="assets/js/jquery.slimscroll.js"></script>
<script src="assets/js/jquery.blockUI.js"></script>
<script src="assets/js/waves.js"></script>
<script src="assets/js/jquery.nicescroll.js"></script>
<script src="assets/js/jquery.scrollTo.min.js"></script>
<script src="assets/plugins/chart.js/chart.min.js"></script>
<script src="assets/pages/dashboard.js"></script>
<!-- App js -->
<script src="assets/js/app.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,210 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by Fontastic.me</metadata>
<defs>
<font id="dripicons-v2" horiz-adv-x="512">
<font-face font-family="dripicons-v2" units-per-em="512" ascent="480" descent="-32"/>
<missing-glyph horiz-adv-x="512" />
<glyph glyph-name="alarm" unicode="&#97;" d="M459 344c6 5 30 28 31 62 0 25-11 47-35 67 0 0 0 1 0 1-28 21-53 22-68 20-27-5-46-25-54-35-24 9-50 14-77 14-27 0-53-5-77-13-8 10-26 30-53 35-16 3-40 1-68-20 0 0-1-1-1-1-24-21-35-43-35-68 1-34 25-57 31-62-13-29-21-61-21-96 0-56 21-108 56-147-1-1-1-1-1-1l-32-49c-7-10-4-24 6-30 4-3 8-4 12-4 7 0 14 3 18 10l29 43c38-29 85-46 136-46 51 0 99 17 136 47l30-44c4-7 11-10 18-10 5 0 9 1 12 4 10 6 13 20 7 30l-33 49c0 0-1 1-1 1 34 40 54 91 54 147 1 35-7 67-20 96z m-64 106c9 2 20-2 31-11 13-11 19-22 19-32 0-10-5-19-10-24-17 22-38 41-61 56 6 5 13 10 21 11z m-328-43c0 10 6 21 19 32 11 9 22 13 31 11 8-1 15-6 21-11-23-15-44-34-61-56-4 6-10 14-10 24z m189-339c-99 0-179 81-179 180 0 99 80 181 179 181 99 0 179-81 179-180 0-99-80-181-179-181z m81 131c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-66 65c-3 4-6 10-6 15l0 120c0 13 10 23 22 23 12 0 22-10 22-23l0-110z"/>
<glyph glyph-name="align-center" unicode="&#98;" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m-63-97c0 12-10 22-22 22l-230 0c-12 0-22-10-22-22 0-12 10-22 22-22l230 0c12 0 22 10 22 22z m34-119c0 13-10 23-22 23l-298 0c-12 0-22-10-22-23 0-12 10-22 22-22l298 0c12 0 22 10 22 22z m41-118c0 12-10 22-22 22l-380 0c-12 0-22-10-22-22 0-12 10-22 22-22l379 0c13 0 23 10 23 22z"/>
<glyph glyph-name="align-justify" unicode="&#99;" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m23-97c0 12-10 22-23 22l-400 0c-13 0-23-10-23-22 0-12 10-22 23-22l400 0c13 0 23 10 23 22z m0-119c0 13-10 23-23 23l-400 0c-13 0-23-10-23-23 0-12 10-22 23-22l400 0c13 0 23 10 23 22z m-201-118c0 12-10 22-22 22l-199 0c-12 0-22-10-22-22 0-12 10-22 22-22l199 0c12 0 22 10 22 22z"/>
<glyph glyph-name="align-left" unicode="&#100;" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m-148-97c0 12-10 22-22 22l-230 0c-13 0-23-10-23-22 0-12 10-22 23-22l230 0c12 0 22 10 22 22z m68-119c0 13-10 23-22 23l-298 0c-13 0-23-10-23-23 0-12 10-22 23-22l298 0c12 0 22 10 22 22z m83-118c0 12-10 22-23 22l-379 0c-12 0-22-10-22-22 0-12 10-22 22-22l379 0c13 0 23 10 23 22z"/>
<glyph glyph-name="align-right" unicode="&#101;" d="M456 412l-400 0c-13 0-23 10-23 22 0 12 10 22 23 22l400 0c13 0 23-10 23-22 0-12-10-22-23-22z m23-97c0 12-10 22-23 22l-230 0c-12 0-22-10-22-22 0-12 10-22 22-22l230 0c13 0 23 10 23 22z m0-119c0 13-10 23-23 23l-298 0c-12 0-22-10-22-23 0-12 10-22 22-22l298 0c13 0 23 10 23 22z m-2-118c0 12-10 22-22 22l-379 0c-13 0-23-10-23-22 0-12 10-22 23-22l379 0c12 0 22 10 22 22z"/>
<glyph glyph-name="anchor" unicode="&#102;" d="M485 215c-5 5-11 8-18 8l-71 0c-13 0-23-10-23-23 0-12 10-22 23-22l43 0c-22-72-85-123-161-132l0 295c37 10 64 44 64 84 0 48-38 87-86 87-48 0-86-39-86-87 0-40 25-74 64-84l0-295c-78 9-139 60-161 132l43 0c13 0 23 10 23 22 0 13-10 23-23 23l-71 0c-7 0-13-3-18-8-4-5-6-11-5-17 20-115 118-198 234-198 116 0 214 83 233 198 1 6 0 12-4 17z m-271 210c0 24 19 42 42 42 23 0 42-18 42-42 0-23-19-42-42-42-23 0-42 19-42 42z"/>
<glyph glyph-name="archive" unicode="&#103;" d="M87 390c0 12 10 22 23 22l292 0c12 0 22-10 22-22 0-13-10-23-22-23l-292 0c-13 0-23 10-23 23z m59 55l220 0c10 0 19 9 19 20 0 10-9 19-19 19l-220 0c-10 0-19-9-19-19 0-11 9-20 19-20z m366-81l0-61c0-2-1-4-1-6l-71-259c-3-9-11-16-21-16l-327 0c-10 0-19 7-21 17l-70 258c0 1 0 2-1 4 0 1 0 2 0 3l0 60c0 12 10 22 22 22 13 0 23-10 23-22l0-41 422 0 0 41c0 12 10 22 23 22 12 0 22-10 22-22z m-52-86l-409 0 58-211 292 0z m-270-111l132 0c12 0 22 10 22 22 0 12-10 22-22 22l-132 0c-12 0-22-10-22-22 0-12 10-22 22-22z"/>
<glyph glyph-name="arrow-down" unicode="&#104;" d="M444 236c-4 8-12 14-21 14l-72 0 0 206c0 13-13 23-25 23l-140 0c-12 0-25-10-25-23l0-206-72 0c-9 0-17-6-21-14-3-8-1-18 5-25l167-170c4-5 10-7 16-7 6 0 12 2 16 7l167 170c6 7 8 17 5 25z m-188-146l-114 116 44 0c13 0 20 8 20 20l0 208 100 0 0-208c0-12 7-20 20-20l44 0z"/>
<glyph glyph-name="arrow-left" unicode="&#105;" d="M456 351l-206 0 0 72c0 9-6 17-14 21-8 3-18 1-25-5l-170-167c-5-4-8-10-8-16 0-6 3-12 7-16l170-167c5-4 10-6 16-6 3 0 7 0 9 1 9 4 15 12 15 21l0 72 206 0c12 0 22 13 22 25l0 140c1 12-9 25-22 25z m-22-145l-208 0c-12 0-20-7-20-20l0-44-116 114 116 114 0-44c0-13 8-20 20-20l208 0z"/>
<glyph glyph-name="arrow-right" unicode="&#106;" d="M472 272l-170 167c-7 6-18 8-25 5-9-4-15-12-15-21l0-72-206 0c-13 0-23-13-23-25l0-140c0-12 10-25 23-25l206 0 0-72c0-9 6-17 14-21 3-1 6-1 9-1 6 0 12 2 16 6l170 167c4 4 6 10 6 16 0 6-1 12-5 16z m-166-130l0 44c0 13-8 20-20 20l-208 0 0 100 208 0c12 0 20 7 20 20l0 44 116-114z"/>
<glyph glyph-name="arrow-thin-down" unicode="&#107;" d="M411 190l-139-139c-5-4-10-6-16-6-6 0-11 2-16 6l-139 139c-9 9-9 23 0 31 9 9 23 9 32 0l101-101 0 325c0 12 10 22 22 22 12 0 22-10 22-22l0-325 102 101c8 9 22 9 31 0 9-8 9-22 0-31z"/>
<glyph glyph-name="arrow-thin-left" unicode="&#108;" d="M467 256c0-12-10-22-22-22l-325 0 101-102c9-8 9-22 0-31-4-4-10-6-16-6-5 0-11 2-15 6l-139 139c-9 9-9 23 0 32l139 139c9 9 23 9 31 0 9-9 9-23 0-32l-101-101 325 0c12 0 22-10 22-22z"/>
<glyph glyph-name="arrow-thin-right" unicode="&#109;" d="M461 240l-139-139c-4-4-10-6-15-6-6 0-11 2-16 6-9 9-9 23 0 32l101 101-325 0c-12 0-22 10-22 22 0 12 10 22 22 22l325 0-101 102c-9 8-9 22 0 31 8 9 22 9 31 0l139-139c9-9 9-23 0-32z"/>
<glyph glyph-name="arrow-thin-up" unicode="&#110;" d="M411 291c-5-5-10-7-16-7-5 0-11 2-15 7l-102 101 0-325c0-12-10-22-22-22-12 0-22 10-22 22l0 325-102-101c-8-9-22-9-31 0-9 8-9 22 0 31l139 139c9 9 23 9 31 0l139-139c10-9 10-23 1-31z"/>
<glyph glyph-name="arrow-up" unicode="&#111;" d="M439 302l-167 170c-4 4-10 7-16 7-6 0-12-3-16-7l-167-170c-6-6-8-18-5-25 4-9 12-15 21-15l72 0 0-206c0-12 13-22 25-22l140 0c12 0 25 10 25 22l0 206 72 0c9 0 17 6 21 14 3 8 1 19-5 26z m-113 4c-13 0-20-8-20-20l0-208-100 0 0 208c0 12-7 20-20 20l-44 0 114 116 114-116z"/>
<glyph glyph-name="article" unicode="&#112;" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-234 80c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m0 78c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m172 162c0 10-8 19-19 19l-134 0c-10 0-19-9-19-19l0-78c0-11 9-20 19-20l134 0c11 0 19 9 19 20z m-133-20l95 0 0-39-95 0z"/>
<glyph glyph-name="backspace" unicode="&#113;" d="M512 258l0-98c0-14-8-25-22-25-14 0-23 11-23 25l0 73-380 0 57-56c10-9 9-25-1-35-5-5-12-7-18-7-6 0-13 2-18 7l-100 98c-4 5-7 12-7 18 0 7 3 13 7 17l100 99c9 9 25 9 35 0 9-9 9-25-1-35l-56-56 401 0c7 0 14-3 19-8 4-4 7-11 7-17z"/>
<glyph glyph-name="basket" unicode="&#114;" d="M490 351l-61 0c0 0-1 1-1 2l-105 128c-8 10-22 12-31 4-10-8-12-23-4-33l83-101-230 0 83 101c8 10 6 24-4 32-9 8-23 7-31-3l-105-129c0 0-1-1-1-1l-61 0c-12 0-22-8-22-20l0-84c0-12 10-24 22-24l7 0 42-170c5-19 22-31 42-31l286 0c20 0 37 13 42 31l42 170 7 0c12 0 22 12 22 24l0 84c0 12-10 20-22 20z m-445-45l422 0 0-39-422 0z m353-239l-284 0-39 156 362 0z"/>
<glyph glyph-name="basketball" unicode="&#115;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m161-392c-14 13-38 41-47 84 43 6 75 15 95 22-5-40-23-76-48-106z m-370 107c20-8 52-17 95-23-8-43-33-71-47-84-25 30-43 66-48 107z m35 149c18-19 56-67 62-127-54 8-86 20-99 26 4 37 17 72 37 101z m384-101c-12-6-44-18-98-26 5 60 44 108 62 127 20-29 33-64 36-101z m-143-31c-14-1-29-2-45-2l0 224c48-5 90-25 123-56-21-22-74-84-78-166z m-89-3c-16 1-31 1-45 2-4 83-58 145-78 167 33 30 75 51 122 56l0-225z m-48-42c15-1 30-2 48-2l0-151c-40 4-77 20-108 43 20 19 50 55 60 110z m92-3c17 1 33 2 48 3 10-55 40-92 60-111-30-23-68-38-108-43z"/>
<glyph glyph-name="battery-empty" unicode="&#116;" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z"/>
<glyph glyph-name="battery-full" unicode="&#117;" d="M195 211l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22l0-90c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22z m139-22l39 0c12 0 22 10 22 22l0 57c0 6-1 11-5 15l-29 33c-5 5-10 7-17 7l-10 0c-12 0-22-9-22-21l0-91c0-12 10-22 22-22z m-234 0l39 0c12 0 22 10 22 22l0 90c0 12-10 22-22 22l-39 0c-12 0-22-10-22-22l0-90c0-12 10-22 22-22z m412 108l0-82c0-12-10-20-22-20l-17 0 0-61c0-13-9-23-22-23l-429 0c-12 0-22 10-22 23l0 244c0 13 10 23 22 23l429 0c12 0 22-10 22-23l0-61 17 0c12 0 22-8 22-20z m-83 59l-384 0 0-200 384 0z"/>
<glyph glyph-name="battery-low" unicode="&#118;" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z m-268 55c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z"/>
<glyph glyph-name="battery-medium" unicode="&#119;" d="M490 317l-17 0 0 61c0 13-9 23-22 23l-429 0c-12 0-22-10-22-23l0-244c0-13 10-23 22-23l429 0c12 0 22 10 22 23l0 61 17 0c12 0 22 8 22 20l0 82c0 12-10 20-22 20z m-61-161l-384 0 0 200 384 0z m-268 55c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z m117 0c0-12-10-22-22-22l-39 0c-12 0-22 10-22 22l0 90c0 12 10 22 22 22l39 0c12 0 22-10 22-22z"/>
<glyph glyph-name="bell" unicode="&#120;" d="M467 114c-37 0-51 22-51 158 0 107-49 174-132 184l0 34c0 13-10 23-22 23-13 0-23-10-23-23l0-33c-89-7-140-75-140-184 0-137-17-158-54-158-12-1-23-9-23-22 0-12 10-21 23-21l144 0c2-16 7-37 20-51 12-13 28-20 46-20 18 0 34 7 46 20 13 15 19 35 21 51l145 0c13 0 23 9 23 21 0 13-10 21-23 21z m-199-63c-2-3-5-6-13-6-7 0-11 3-13 6-4 5-7 10-8 21l19 0c1 0 2 0 4 0 1 0 2 0 3 0l18 0c-2-11-5-16-10-21z m-9 66c-1 0-2 0-3 0-1 0-2 0-3 0l-132 0c21 39 21 99 21 156 0 91 39 139 111 139l6 0c71 0 111-48 111-139 0-57 0-117 20-156z m79 197c1-10-7-20-18-20-1 0-1 0-1 0-10 0-19 8-20 18-1 25-21 34-23 35-10 5-14 16-11 26 4 10 15 14 26 10 2-1 45-18 47-69z"/>
<glyph glyph-name="blog" unicode="&#121;" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-242 94c0 13 10 23 22 23l150 0c12 0 22-10 22-23 0-12-10-22-22-22l-150 0c-12 0-22 10-22 22z m3 106c0 12 10 22 22 22l147 0c12 0 22-10 22-22 0-12-10-22-22-22l-147 0c-12 0-22 10-22 22z m0 106c0 12 10 22 22 22l147 0c12 0 22-10 22-22 0-13-10-23-22-23l-147 0c-12 0-22 10-22 23z"/>
<glyph glyph-name="bluetooth" unicode="&#122;" d="M289 256l99 99c9 8 9 22 0 31l-116 119c-7 7-16 9-24 5-9-3-14-11-14-20l0-179-79 78c-9 9-23 8-32 0-9-9-8-23 0-32l103-101-102-102c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 11 2 16 6l79 79 0-179c0-9 5-17 14-20 2-1 5-2 8-2 6 0 12 2 16 7l117 119c8 9 8 23 0 31z m-11 179l63-64-63-63z m0-358l0 127 63-63z"/>
<glyph glyph-name="bold" unicode="&#65;" d="M334 266c21 20 34 48 34 79 0 61-50 111-111 111l-118 0c-12 0-22-10-22-22l0-356c0-12 10-22 22-22l145 0c61 0 111 50 111 111 0 43-24 80-61 99z m-173 146l96 0c36 0 66-30 66-67 0-37-30-67-66-67l-96 0z m123-312l-123 0 0 134 123 0c37 0 67-30 67-67 0-37-30-67-67-67z"/>
<glyph glyph-name="bookmark" unicode="&#66;" d="M356 512l-200 0c-12 0-22-10-22-22l0-468c0-9 5-17 13-20 3-1 6-2 9-2 6 0 12 2 16 7l82 87 86-87c6-6 16-8 25-5 8 3 13 11 13 20l0 468c0 12-10 22-22 22z m-22-436l-65 66c-4 5-10 8-15 8-6 0-12-4-16-8l-60-64 0 389 156 0z"/>
<glyph glyph-name="bookmarks" unicode="&#67;" d="M295 417l-161 0c-13 0-23-8-23-20l0-375c0-9 6-17 14-20 3-1 6-2 9-2 6 0 11 2 16 7l63 66 66-67c6-6 16-8 24-5 9 4 14 12 14 21l0 375c0 12-10 20-22 20z m-22-341l-45 45c-4 5-10 7-15 7-7 0-12-3-17-7l-40-43 0 295 117 0z m122 419l0-374c0-11-9-20-19-20-11 0-20 9-20 20l0 352-117 0 0-7c0-11-9-20-19-20-11 0-20 9-20 20l0 29c0 11 6 17 17 17l161 0c11 0 17-6 17-17z"/>
<glyph glyph-name="box" unicode="&#68;" d="M416 378l-320 0c-12 0-22-10-22-22l-3-284c0-6 2-11 6-16 5-4 10-6 16-6l325 0c6 0 12 2 16 6 4 5 6 10 6 16l-2 284c0 12-10 22-22 22z m-160-283l-141 0 3 239 275 0 2-239z m71 178c0-13-10-23-22-23l-98 0c-12 0-22 10-22 23 0 12 10 22 22 22l97 0c13 0 23-10 23-22z m167 89c-1 0-3 0-4 0-11 0-20 7-22 18l-7 37-410 0-7-37c-2-13-14-20-26-18-12 2-20 14-18 26l11 56c2 10 11 18 22 18l446 0c10 0 20-8 21-18l11-56c3-12-5-23-17-26z"/>
<glyph glyph-name="briefcase" unicode="&#69;" d="M505 385c-4 3-9 5-15 5l-117 0 0 66c0 13-11 23-24 23l-186 0c-13 0-24-10-24-23l0-66-117 0c-12 0-22-8-22-20l0-314c0-13 10-23 22-23l468 0c12 0 22 10 22 23l0 313c0 6-2 11-7 16z m-321 49l144 0 0-44-144 0z m283-89l0-117-155 0 0 9c0 9-9 13-19 13l-74 0c-10 0-19-5-19-13l0-9-155 0 0 117z m-189-128l0-11-44 0 0 11z m-233-139l0 117 155 0 0-6c0-9 9-16 19-16l75 0c9 0 18 7 18 16l0 6 156 0 0-117z"/>
<glyph glyph-name="brightness-low" unicode="&#70;" d="M256 352c-53 0-96-43-96-96 0-53 43-96 96-96 53 0 96 43 96 96 0 53-43 96-96 96z m0-148c-28 0-52 24-52 52 0 28 24 52 52 52 28 0 52-24 52-52 0-28-24-52-52-52z m-22 204l0 21c0 12 10 22 22 22 12 0 22-10 22-22l0-21c0-12-10-22-22-22-12 0-22 10-22 22z m217-152c0-12-10-22-22-22l-21 0c-12 0-22 10-22 22 0 12 10 22 22 22l21 0c12 0 22-10 22-22z m-173-152l0-21c0-12-10-22-22-22-12 0-22 10-22 22l0 21c0 12 10 22 22 22 12 0 22-10 22-22z m-174 130l-21 0c-12 0-22 10-22 22 0 12 10 22 22 22l21 0c12 0 22-10 22-22 0-12-10-22-22-22z m244 114c-9 9-9 23 0 32l14 13c9 9 23 9 31 0 9-8 9-22 0-31l-13-14c-5-5-10-7-16-7-6 1-12 3-16 7z m45-198c9-9 9-23 0-32-4-4-10-7-15-7-6 0-11 3-16 7l-14 14c-9 9-9 23 0 32 9 9 23 9 32 0z m-229 14c9-9 9-23 0-32l-14-13c-4-5-10-7-15-7-6 0-11 2-16 7-9 8-9 22 0 31l14 14c8 9 22 9 31 0z m-45 198c-9 9-9 23 0 32 8 9 22 9 31 0l14-14c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/>
<glyph glyph-name="brightness-max" unicode="&#71;" d="M256 380c-68 0-124-56-124-124 0-68 56-124 124-124 68 0 124 56 124 124 0 68-56 124-124 124z m0-204c-44 0-80 36-80 80 0 44 36 80 80 80 44 0 80-36 80-80 0-44-36-80-80-80z m-22 268l0 46c0 12 10 22 22 22 12 0 22-10 22-22l0-46c0-13-10-23-22-23-12 0-22 10-22 23z m278-188c0-12-10-22-22-22l-46 0c-13 0-23 10-23 22 0 12 10 22 23 22l46 0c12 0 22-10 22-22z m-234-188l0-46c0-12-10-22-22-22-12 0-22 10-22 22l0 46c0 13 10 23 22 23 12 0 22-10 22-23z m-210 166l-46 0c-12 0-22 10-22 22 0 12 10 22 22 22l46 0c13 0 23-10 23-22 0-12-10-22-23-22z m305 139c-9 9-9 23 0 32l32 32c9 9 23 9 32 0 9-9 9-23 0-32l-32-32c-5-5-10-7-16-7-6 0-12 2-16 7z m64-267c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-33 32c-9 9-9 23 0 32 9 9 23 9 32 0z m-298 33c9-9 9-23 0-32l-32-32c-5-4-10-7-16-7-5 0-11 3-15 7-9 9-9 23 0 32l32 32c8 8 22 8 31 0z m-64 267c-9 9-9 23 0 31 9 9 23 9 32 0l32-32c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/>
<glyph glyph-name="brightness-medium" unicode="&#72;" d="M256 380c-68 0-124-56-124-124 0-68 56-124 124-124 68 0 124 56 124 124 0 68-56 124-124 124z m-80-124c0 44 36 80 80 80l0-159c-44-1-80 35-80 79z m58 188l0 46c0 12 10 22 22 22 12 0 22-10 22-22l0-46c0-13-10-23-22-23-12 0-22 10-22 23z m278-188c0-12-10-22-22-22l-46 0c-13 0-23 10-23 22 0 12 10 22 23 22l46 0c12 0 22-10 22-22z m-234-188l0-46c0-12-10-22-22-22-12 0-22 10-22 22l0 46c0 13 10 23 22 23 12 0 22-10 22-23z m-210 166l-46 0c-12 0-22 10-22 22 0 12 10 22 22 22l46 0c13 0 23-10 23-22 0-12-10-22-23-22z m305 139c-9 9-9 23 0 32l32 32c9 9 23 9 32 0 9-9 9-23 0-32l-32-32c-5-5-10-7-16-7-6 1-12 2-16 7z m64-267c9-9 9-23 0-31-5-5-10-7-16-7-5 0-11 2-15 7l-33 32c-9 9-9 23 0 32 9 9 23 9 32 0z m-298 33c9-9 9-23 0-32l-32-32c-5-4-10-7-16-7-5 0-11 3-15 7-9 9-9 23 0 32l32 32c8 8 22 8 31 0z m-64 267c-9 9-9 23 0 31 9 9 23 9 32 0l32-32c9-9 9-23 0-32-4-4-10-6-15-6-6 0-12 2-16 6z"/>
<glyph glyph-name="broadcast" unicode="&#73;" d="M509 321c-5 17-15 30-30 38-19 10-41 9-57 6l-32 114c-2 8-8 14-16 16-8 1-16-1-22-7-79-89-112-111-200-149l-69-20c-61-17-96-82-79-143 9-29 28-54 56-69 17-10 36-15 55-15 9 0 18 1 27 4l7-26c4-14 12-27 22-37l12-11c4-4 10-6 15-6 6 0 12 2 16 7 9 9 9 23-1 32l-12 11c-4 4-7 10-9 16l-7 26 32 9c92 14 134 13 247-19 2-1 4-1 6-1 6 0 12 2 16 7 5 5 8 13 5 21l-32 114c14 6 34 16 45 34 8 15 10 31 5 48z m-428-175c-16 9-28 24-34 42-10 38 11 77 48 88l50 15 23-81 16-56-50-14c-18-5-37-3-53 6z m227 24c-25 0-50-2-80-6l-32 114-8 28c70 32 108 57 170 123l79-278c-52 14-90 19-129 19z m158 127c-4-6-12-11-20-14l-11 39c9 1 18 1 24-3 3-1 6-3 8-10 2-6 0-10-1-12z m-142 36c7-9 5-21-4-27-21-14-44-27-45-28-3-1-6-2-9-2-7 0-14 4-17 11-5 9-1 21 8 26 0 0 22 11 40 24 9 7 21 5 27-4z"/>
<glyph glyph-name="browser" unicode="&#74;" d="M490 462l-468 0c-12 0-22-10-22-22l0-368c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 368c0 12-10 22-22 22z m-23-95l-155 0 0 50 155 0z m-333 0l0 50 55 0 0-50z m89 50l55 0 0-50-55 0z m-123 0l0-50-55 0 0 50z m-55-322l0 233 422 0 0-233z"/>
<glyph glyph-name="browser-upload" unicode="&#75;" d="M278 250l1-228c0-12-10-22-22-22-13 0-23 10-23 22l0 229-65-65c-9-8-23-8-32 0-8 9-8 23 0 32l103 102c9 8 23 8 31 0l102-102c9-9 9-23 0-32-4-4-10-6-15-6-6 0-11 2-16 6z m234 240l0-371c0-13-10-24-22-24l-137 0c-12 0-22 10-22 22 0 12 10 22 22 22l114 0 0 239-422 0 0-239 116 0c12 0 22-10 22-22 0-12-10-22-22-22l-139 0c-12 0-22 11-22 24l0 371c0 12 10 22 22 22l468 0c12 0 22-10 22-22z m-289-73l55 0 0 50-55 0z m-34 50l-55 0 0-50 55 0z m-144-50l55 0 0 50-55 0z m422 0l0 50-155 0 0-50z"/>
<glyph glyph-name="brush" unicode="&#76;" d="M512 464c0 12-5 24-14 33l-1 1c-18 18-48 18-66 1l-272-252c-37 7-76-3-104-31-38-38-38-80-37-106 0-3 0-6 0-9-1-21-11-46-16-54-3-6-3-12-1-18 2-6 7-11 12-13 27-11 53-16 78-16 44 0 85 17 117 48 26 27 41 58 41 90 0 8-1 15-2 22l251 271c9 9 14 20 14 33z m-335-384c-33-33-78-43-125-30 5 14 10 32 10 50 0 4 0 7 0 11 0 23-1 49 24 73 27 27 71 27 98 0 14-13 21-29 21-46 0-19-10-40-28-58z m290 382c0 0-1-1-1-1l-239-257c-4 4-7 8-11 12-4 4-8 7-12 11l257 239c0 0 1 1 1 1 1 1 3 1 4 0l1-1c0-1 0-2 0-2 0-1 0-2 0-2z"/>
<glyph glyph-name="calendar" unicode="&#77;" d="M122 391l0 71c0 15 13 28 28 28 16 0 28-13 28-28l0-71c0-16-12-28-28-28-15 0-28 12-28 28z m240-28c15 0 28 12 28 28l0 71c0 15-13 28-28 28-16 0-28-13-28-28l0-71c0-16 12-28 28-28z m150 63l0-376c0-12-10-22-22-22l-468 0c-12 0-22 10-22 22l0 376c0 13 10 25 22 25l52 0c12 0 22-10 22-22 0-13-10-23-22-23l-29 0 0-94 422 0 0 94-29 0c-12 0-22 10-22 23 0 12 10 22 22 22l52 0c12 0 22-12 22-25z m-45-354l0 201-422 0 0-201z m-246 334l70 0c12 0 22 10 22 23 0 12-10 22-22 22l-70 0c-12 0-22-10-22-22 0-13 10-23 22-23z"/>
<glyph glyph-name="camcorder" unicode="&#78;" d="M500 393c-8 4-18 3-25-2l-91-68 0 50c0 12-8 22-20 22l-342 0c-12 0-22-10-22-22l0-234c0-12 10-22 22-22l342 0c12 0 20 10 20 22l0 50 91-68c4-2 10-4 14-4 4 0 7 0 10 2 8 4 13 12 13 20l0 234c0 8-5 16-12 20z m-161-232l-294 0 0 190 294 0z m128 23l-77 59 0 26 77 59z"/>
<glyph glyph-name="camera" unicode="&#79;" d="M256 362c-70 0-127-58-127-129 0-72 57-129 127-129 70 0 127 57 127 129 0 71-57 129-127 129z m0-215c-46 0-83 38-83 85 0 47 37 85 83 85 46 0 83-38 83-84 0-47-37-86-83-86z m62 80c-1-10-10-17-20-17-1 0-1 0-2 0-11 2-19 11-17 22 2 16-17 25-18 26-9 4-14 16-9 25 4 10 15 14 25 10 18-8 46-30 41-66z m-43-24c4-4 7-10 7-16 0-6-3-12-7-16-5-3-10-6-16-6-5 0-11 2-15 6-4 5-7 10-7 16 0 6 2 12 7 16 4 4 10 6 15 6 6 0 12-2 16-6z m215 164l-86 0-24 89c-3 10-12 17-22 17l-205 0c-10 0-19-7-22-17l-24-89-85 0c-12 0-22-9-22-21l0-285c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 285c0 12-10 21-22 21z m-23-284l-422 0 0 240 80 0c10 0 19 7 21 16l24 90 172 0 24-90c2-9 11-16 21-16l80 0z"/>
<glyph glyph-name="card" unicode="&#80;" d="M512 382c0 23-18 41-41 41l-430 0c-23 0-41-18-41-41l0-252c0-23 18-41 41-41l430 0c23 0 42 18 42 41l0 252z m-45-4l0-39-422 0 0 39z m-422-244l0 139 422 0 0-139z m381 72c0-12-10-22-23-22l-105 0c-13 0-23 10-23 22 0 12 10 22 23 22l105 0c13 0 23-10 23-22z"/>
<glyph glyph-name="cart" unicode="&#81;" d="M511 360l-60-187c-4-14-16-23-30-23l-230 0c-13 0-26 9-30 21l-88 235-51 0c-12 0-22 10-22 23 0 12 10 22 22 22l66 0c10 0 18-6 22-15l90-241 212 0 47 150-262 0c-12 0-22 10-22 22 0 13 10 23 22 23l293 0c7 0 14-4 18-10 4-5 5-13 3-20z m-308-239c-10 0-19-4-26-11-7-6-11-16-11-25 0-10 4-19 11-26 7-7 16-11 26-11 9 0 18 4 25 11 7 7 11 16 11 26 0 9-4 19-11 25-7 7-16 11-25 11z m199 0c-9 0-19-4-25-11-7-6-11-16-11-25 0-10 4-19 11-26 6-7 16-11 25-11 10 0 19 4 26 11 7 7 11 16 11 26 0 9-4 19-11 25-7 7-16 11-26 11z"/>
<glyph glyph-name="checklist" unicode="&#82;" d="M201 434c0 16 13 28 28 28l244 0c16 0 28-12 28-28 0-15-12-28-28-28l-244 0c-15 0-28 13-28 28z m272-150l-244 0c-15 0-28-12-28-28 0-16 13-28 28-28l244 0c16 0 28 12 28 28 0 16-12 28-28 28z m0-178l-244 0c-15 0-28-13-28-28 0-16 13-28 28-28l244 0c16 0 28 12 28 28 0 15-12 28-28 28z m-334 370c0 10-9 19-19 19l-84 0c-10 0-19-9-19-19l0-84c0-10 9-19 19-19l84 0c10 0 19 9 19 19z m0-262c0-10-9-19-19-19l-84 0c-10 0-19 9-19 19l0 84c0 10 9 19 19 19l84 0c10 0 19-9 19-19z m-33 64l-50 0 0-44 50 0z m33-242c0-10-9-19-19-19l-84 0c-10 0-19 9-19 19l0 84c0 10 9 19 19 19l84 0c10 0 19-9 19-19z m-33 64l-50 0 0-50 50 0z"/>
<glyph glyph-name="checkmark" unicode="&#83;" d="M191 111c-6 0-12 3-17 8l-111 110c-10 10-10 26 0 36 10 10 25 10 36 0l93-93 222 221c10 10 26 10 36 0 10-10 10-25 0-35l-240-239c-6-5-12-8-19-8z"/>
<glyph glyph-name="chevron-down" unicode="&#84;" d="M256 161c-6 0-12 3-16 7l-139 145c-9 9-9 23 0 31 9 9 23 9 32 0l123-128 123 128c8 9 23 9 32 0 9-8 9-22 0-31l-139-145c-4-4-10-7-16-7z"/>
<glyph glyph-name="chevron-left" unicode="&#85;" d="M344 133c9-8 9-23 0-32-4-4-10-6-16-6-5 0-11 2-15 6l-145 139c-4 4-7 10-7 16 0 6 3 12 7 16l145 139c9 9 23 9 31 0 9-9 9-23 0-32l-128-123z"/>
<glyph glyph-name="chevron-right" unicode="&#86;" d="M351 256c0-6-3-12-7-16l-145-139c-4-4-10-6-15-6-6 0-12 2-16 6-9 9-9 23 0 32l128 123-128 123c-9 8-9 23 0 32 8 9 22 9 31 0l145-139c4-4 7-10 7-16z"/>
<glyph glyph-name="chevron-up" unicode="&#87;" d="M395 161c-6 0-12 3-16 7l-123 128-123-128c-8-9-23-9-32 0-9 8-9 22 0 31l139 145c4 4 10 7 16 7 6 0 12-3 16-7l139-145c9-9 9-23 0-31-5-4-10-7-16-7z"/>
<glyph glyph-name="clipboard" unicode="&#88;" d="M429 462l-83 0-9 23c-6 16-22 27-39 27l-79 0c-18 0-33-11-39-27l-9-23-88 0c-12 0-22-11-22-23l0-417c0-12 10-22 22-22l346 0c12 0 22 10 22 22l0 417c0 12-10 23-22 23z m-242-45c9 0 18 6 21 14l13 36 75 0 13-36c4-9 12-14 22-14l17 0-16-31c-3-5-8-8-13-8l-121 0c-5 0-10 3-13 7l-19 32z m219-372l-300 0 0 372 9 0 31-55c0-1 1 0 1-1 11-17 30-27 51-27l120 0c21 0 42 10 52 29 0 1 1 2 1 2l26 52 9 0z"/>
<glyph glyph-name="clock" unicode="&#89;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-467c-117 0-211 94-211 211 0 117 94 211 211 211 117 0 211-94 211-211 0-117-94-211-211-211z m85 158c9-9 9-23 0-32-4-5-10-7-15-7-6 0-12 2-16 7l-70 69c-4 4-6 10-6 16l0 132c0 13 10 23 22 23 12 0 22-10 22-23l0-123z"/>
<glyph glyph-name="clockwise" unicode="&#90;" d="M484 279l-78-78c-4-4-10-6-16-6-6 0-12 2-16 6l-77 78c-8 9-8 23 0 32 9 8 23 8 32 0l43-43c-6 80-72 144-153 144-84 0-152-70-152-156 0-86 68-156 153-156 31 0 61 10 86 27 10 8 24 5 31-5 7-10 5-24-5-31-33-23-72-35-112-35-109 0-198 89-198 200 0 111 89 200 198 200 102 0 187-79 196-181l35 36c9 8 23 8 32 0 9-9 9-23 1-32z"/>
<glyph glyph-name="cloud" unicode="&#48;" d="M396 78c-111 0-294 0-297 0-49 0-90 37-98 88-6 39 11 92 73 120-14 62 21 114 67 136 30 14 62 15 92 5 26-8 50-26 68-51 27 15 60 16 87 1 24-13 46-41 43-83 60-19 84-70 81-115-4-49-41-101-116-101z m-202 312c-12 0-24-3-34-8-33-15-58-53-38-101 2-6 2-12-1-18-2-5-7-10-13-11-66-21-65-66-63-79 4-25 23-50 54-50 1 0 185-1 297-1 46 0 69 30 71 61 3 30-16 65-64 71-6 1-12 5-15 10-3 5-5 11-3 18 6 26-1 47-18 57-15 8-38 8-57-11-5-5-12-7-19-6-7 1-13 5-16 11-22 42-53 57-81 57z"/>
<glyph glyph-name="cloud-download" unicode="&#49;" d="M506 265c-3-48-40-99-113-99-33 0-50 0-50 0-12 0-22 10-22 23 0 12 10 22 22 22 0 0 17 0 50 0 45 0 67 28 69 57 3 30-16 63-62 69-7 1-12 5-15 10-4 5-5 11-4 18 6 25 0 45-16 54-14 8-37 8-56-11-5-5-12-7-18-6-7 1-13 6-17 12-31 58-79 62-111 47-31-15-55-51-36-96 2-6 2-13-1-18-2-6-7-10-13-12-66-21-64-64-62-76 3-24 22-48 51-48l68 0c13 0 23-10 23-22 0-13-10-22-23-22l-68 0c-47 0-88 36-95 85-6 39 10 90 70 117-13 60 20 110 66 131 47 23 112 16 156-44 28 15 60 16 87 1 22-13 43-40 41-81 58-18 82-68 79-111z m-174-135l-54-54 0 202c0 12-10 23-23 23-12 0-22-11-22-23l1-202-54 54c-9 9-23 9-32 0-9-9-9-23 0-31l92-93c4-4 10-7 15-7 6 0 12 3 16 7l92 92c9 9 9 23 0 32-8 9-22 9-31 0z"/>
<glyph glyph-name="cloud-upload" unicode="&#50;" d="M512 225c-3-48-41-101-115-101-34 0-52 0-52 0-12 0-22 10-22 22 0 12 10 21 22 21 0 0 18 1 52 1 46 0 69 31 71 61 2 30-17 64-65 71-6 1-11 4-15 9-3 5-4 12-3 18 6 26 0 47-18 56-14 9-38 8-56-10-5-5-13-7-19-6-7 1-13 5-17 11-32 61-81 64-114 48-32-15-57-52-37-99 2-6 2-13-1-18-3-6-8-10-13-12-68-20-67-65-65-78 4-25 23-50 54-50l69 0c12 0 22-11 22-23 0-12-10-24-22-24l-69 2c-49 0-90 38-97 89-6 39 10 91 73 119-15 61 20 113 66 134 48 23 116 17 160-45 28 15 61 16 88 1 23-14 45-41 42-83 59-18 84-69 81-114z m-178-18c5-4 10-7 16-7 6 0 11 3 16 7 9 9 9 23 0 32l-94 94c-4 4-10 6-16 6-6 0-12-2-16-6l-94-95c-9-9-9-23 0-32 9-8 23-8 32 0l56 58 0-208c0-13 10-23 23-23 12 0 22 10 22 23l-1 207z"/>
<glyph glyph-name="code" unicode="&#51;" d="M328 95c-6 0-11 2-16 6-8 9-8 23 1 32l128 123-128 123c-9 8-9 23-1 32 9 9 23 9 32 0l145-139c4-4 6-10 6-16 0-6-2-12-6-16l-145-139c-5-4-10-6-16-6z m-128 6c8 9 8 23-1 32l-128 123 128 123c9 8 9 23 1 32-9 9-23 9-32 0l-145-139c-4-4-6-10-6-16 0-6 2-12 6-16l145-139c5-4 10-6 16-6 5 0 11 2 16 6z"/>
<glyph glyph-name="contract" unicode="&#52;" d="M492 49c9-9 9-23 0-32-4-4-10-6-16-6-5 0-11 2-16 6l-121 121 0-57c0-13-10-23-22-23-12 0-22 10-22 23l0 111c0 6 3 12 7 16 4 3 10 6 16 6l111 0c12 0 22-10 22-22 0-12-10-22-22-22l-57 0z m-175 246l111 0c12 0 22 10 22 22 0 12-10 22-22 22l-57 0 123 124c9 9 9 23 0 31-9 9-23 9-31 0l-124-123 0 57c0 12-10 23-22 23-12 0-22-10-22-22l0-112c0-6 2-11 7-15 4-5 9-7 15-7z m-123 154c-12 0-21-10-21-22l0-57-123 123c-9 8-23 8-32 0-9-9-9-23 0-31l122-122-57 0 0-1c-11 0-22-10-22-22 0-13 10-23 22-23l111 0c6 0 11 3 16 7 4 5 6 10 6 16l0 111c0 11-10 21-22 21z m-1-232l-111 0c-12 0-22-10-22-22 0-12 10-22 22-22l57 0-121-123c-9-9-9-23 0-32 4-4 10-6 16-6 6 0 12 2 17 6l122 121 0-57c0-12 8-21 21-21l-1 0c12 0 22 9 22 21l0 111c0 6-2 12-6 17-4 4-10 7-16 7z"/>
<glyph glyph-name="contract-2" unicode="&#53;" d="M225 227c4-5 7-11 7-17l0-116c0-12-10-21-22-21l0 0c-12 0-21 8-21 20l0 63-139-138c-4-5-11-7-17-7-5 0-11 2-15 7-9 9-9 23 0 32l138 139-63 0c-12 0-22 10-22 22 0 13 10 23 22 23l117 0c6 0 11-3 15-7z m269 267c-9 9-22 9-31 0l-140-141 0 64c0 12-10 23-23 23-12 0-22-10-22-23l0-116c0-7 2-12 6-16 5-5 10-6 16-6l117 0c12 0 22 10 22 22 0 12-10 22-22 22l-64 0 141 140c9 9 9 23 0 31z"/>
<glyph glyph-name="conversation" unicode="&#54;" d="M490 378l-217 0 0 52c0 9-13 21-21 21l-235 0c-10 0-17-12-17-21l0-143c0-9 8-20 17-20l34 0 44-48c4-4 8-5 13-5 2 0 3 0 5 1 7 3 10 9 10 17l0 35 33 0 0-103c0-13 13-25 25-25l153 0 0-68c0-9 4-17 13-20 3-1 5-2 8-2 6 0 12 1 16 6l83 84 36 0c12 0 22 12 22 25l0 187c0 12-10 27-22 27z m-382-77c-9 0-19-4-19-14l0-11-19 21c-3 4-7 4-12 4l-25 0 0 116 201 0 0-39-53 0c-12 0-25-15-25-27l0-50z m359-117l-22 0c-6 0-11-1-16-6l-51-51 0 37c0 12-11 20-23 20l-155 0 0 150 267 0z m-234 100c0 9 7 17 16 17l107 0c9 0 16-8 16-17 0-10-7-17-16-17l-107 0c-9 0-16 7-16 17z m162-12c-4 3-5 7-5 12 0 4 1 9 5 12 6 6 17 6 24 0 3-4 5-8 5-12 0-5-2-9-5-12-4-3-8-5-12-5-5 1-10 2-12 5z"/>
<glyph glyph-name="copy" unicode="&#55;" d="M256 390c-4 4-9 5-14 5l-166 0c-11 0-26-7-26-17l0-352c0-12 15-25 26-25l263 0c12 0 17 14 17 25l0 253c0 5 0 10-4 14z m55-112l-72 0 0 72z m-216-233l0 311 105 0 0-96c0-11 10-21 21-21l96 0 0-194z m364 367l-97 97c-4 2-7 3-11 3l-167 0c-9 0-17-5-17-14l0-53c0-10 7-17 17-17 9 0 16 8 16 17l0 34 117 0 0-94c0-10 8-18 17-18l95 0 0-206-23 0c-10 0-17-7-17-16 0-10 8-17 17-17l42 0c9 0 14 8 14 18l0 254c0 4-1 8-3 12z m-108 61l71-72-71 0z"/>
<glyph glyph-name="crop" unicode="&#56;" d="M494 457c9 9 9 23 0 32-8 9-23 9-32 0l-66-66-279 0 0 41c0 12-10 22-22 22-13 0-23-10-23-22l0-41-39 0c-12 0-22-10-22-22 0-13 10-23 22-23l39 0 0-277c0-1 1-1 1-2 0-1 0-2 0-3 0 0 1-1 1-2 0-1 1-2 1-2 0-1 0-1 1-2 0-1 0-2 1-2 0-1 1-2 1-2 1-1 1-1 2-1 1-2 2-2 3-3 0 0 0-1 1-1 1 0 2-1 3-1 1 0 1-1 3-1 0 0 1-1 2-1 1 0 3 0 4 0l288 0 0-39c0-12 10-22 22-22 13 0 23 10 23 22l0 39 38 0c13 0 23 10 23 22 0 12-10 22-23 22l-38 0 0 271z m-143-79l-234-225 0 225z m33-256l-234 0 234 227z"/>
<glyph glyph-name="cross" unicode="&#57;" d="M393 154c10-10 10-25 0-35-5-5-11-8-17-8-7 0-13 3-18 8l-102 101-102-101c-5-5-11-8-18-8-6 0-12 3-17 8-10 10-10 25 0 35l101 102-101 102c-10 10-10 25 0 35 10 10 25 10 35 0l102-101 102 101c10 10 25 10 35 0 10-10 10-25 0-35l-101-102z"/>
<glyph glyph-name="crosshair" unicode="&#33;" d="M257 512c-1 0-1 0 0 0-1 0-1 0 0 0-142 0-257-115-257-256 0-141 115-256 255-256 142 0 256 115 256 256 1 141-114 256-254 256z m21-466l0 57c0 12-10 22-22 22-12 0-22-10-22-22l0-57c-100 10-178 89-188 188l57 0c12 0 22 10 22 22 0 12-10 22-22 22l-57 0c10 99 88 178 188 188l0-57c0-12 10-22 22-22 12 0 22 10 22 22l0 57c100-10 178-89 188-188l-57 0c-12 0-22-10-22-22 0-12 10-22 22-22l57 0c-10-99-88-178-188-188z"/>
<glyph glyph-name="cutlery" unicode="&#34;" d="M461 60c9-9 9-23 0-32-5-4-10-6-16-6-5 0-11 2-15 7l-177 177-175-177c-5-5-10-7-16-7-5 0-11 2-15 7-9 9-9 23 0 32l174 177-30 29-4-4c-14-14-33-22-53-22-20 0-39 8-53 22l-74 73c-9 8-9 22 0 31 9 9 22 9 31 0l74-73c6-6 14-9 22-9 8 0 16 3 22 9l5 5-96 94c-9 9-9 23 0 32 8 9 22 9 31 0l95-95 6 6c12 11 12 31 0 43l-74 73c-9 9-9 23 0 32 9 9 23 9 32 0l73-74c30-29 30-77 0-106l-5-6 29-29 197 199c3 4 10 7 15 7 6 0 12-3 16-7 49-49 41-119-21-181l-76-76c-8-8-22-8-31 0-9 9-9 23 0 32l75 75c45 45 44 79 34 100l-177-180z"/>
<glyph glyph-name="device-desktop" unicode="&#35;" d="M470 473l-428 0c-23 0-42-19-42-42l0-247c0-23 19-45 42-45l142 0 0-23-43-34c-7-6-11-17-7-26 3-9 11-17 21-17l200 0c10 0 18 8 22 17 3 9 0 20-7 26l-42 34 0 23 142 0c23 0 42 22 42 45l0 247c0 23-19 42-42 42z m-174-383l13-12-109 0 15 13c4 4 8 10 8 16l0 32 66 0 0-32c0-6 3-13 7-17z m171 94l-422 0 0 245 422 0z"/>
<glyph glyph-name="device-mobile" unicode="&#36;" d="M294 89c0-9-7-17-17-17l-43 0c-9 0-16 8-16 17 0 10 7 17 16 17l43 0c10 0 17-7 17-17z m107 381l0-428c0-23-19-42-43-42l-204 0c-24 0-43 19-43 42l0 428c0 23 19 42 43 42l204 0c24 0 43-19 43-42z m-245-3l0-294 200 0 0 294z m200-422l0 94-200 0 0-94z"/>
<glyph glyph-name="device-tablet" unicode="&#37;" d="M287 83c0-9-7-16-17-16l-28 0c-10 0-17 7-17 16 0 10 7 17 17 17l28 0c10 0 17-7 17-17z m175 387l0-428c0-23-19-42-42-42l-328 0c-23 0-42 19-42 42l0 428c0 23 19 42 42 42l328 0c23 0 42-19 42-42z m-367-3l0-306 322 0 0 306z m322-422l0 83-322 0 0-83z"/>
<glyph glyph-name="direction" unicode="&#38;" d="M278 22c-1 0-3 0-4 1-10 1-17 9-18 19l-19 194-195 19c-10 2-18 9-19 19-2 10 4 19 13 24l423 190c8 3 18 2 25-5 6-7 8-17 4-25l-190-423c-4-8-12-13-20-13z m-148 269l128-13c11-1 19-9 20-20l14-128 131 293z"/>
<glyph glyph-name="disc" unicode="&#39;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m0-45c117 0 211-94 211-211 0-29-6-58-17-84l-125 62c8 25 2 54-18 74-20 20-48 25-73 18l-45 91c-4 8-14 12-23 8-8-4-11-14-7-23l46-93c0 0 0 0-1-1 0 0 0 0 0 0l-127 62c38 59 104 97 179 97z m-24-187c7 7 15 10 24 10 9 0 17-3 24-10 13-13 13-35 0-48-13-13-35-13-48 0-13 13-13 35 0 48z m138-202l-29 59c-4 8-14 12-23 8-8-4-11-14-7-23l29-59c-26-11-55-18-84-18-117 0-211 94-211 211 0 29 6 58 17 84l125-62c-8-25-2-53 18-73 14-14 33-21 51-21 18 0 37 7 51 21 0 0 1 0 1 0l126-63c-16-25-38-47-64-64z m-50 103c3-3 6-8 6-14 0-5-3-10-6-14-3-4-9-6-14-6-5 0-10 3-14 6-4 3-5 9-5 14 0 5 2 10 5 14 7 7 21 7 28 0z"/>
<glyph glyph-name="document" unicode="&#40;" d="M423 501l-334 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 446c0 12-10 22-22 22z m-22-445l-290 0 0 400 290 0z m-237 147c0 11 9 20 20 20l65 0c11 0 20-9 20-20 0-10-9-19-20-19l-65 0c-11 0-20 9-20 19z m3 89c0 11 9 20 19 20l133 0c10 0 19-9 19-20 0-10-8-19-19-19l-133 0c-10 0-19 9-19 19z m0 84c0 10 9 19 19 19l133 0c10 0 19-9 19-19 0-11-8-20-19-20l-133 0c-10 0-19 9-19 20z m165-161c4-3 6-8 6-14 0-5-2-10-6-13-3-4-9-6-14-6-5 0-10 2-14 6-3 3-5 8-5 13 0 5 2 10 5 14 8 8 21 8 28 0z"/>
<glyph glyph-name="document-delete" unicode="&#41;" d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z m209 166l-37-37 37-36c8-8 8-20 0-28-4-4-9-5-14-5-5 0-10 1-14 5l-36 36-36-36c-4-4-9-6-14-6-5 0-10 2-14 6-8 8-8 20 0 27l37 37-37 36c-8 8-8 21 0 28 8 8 20 8 27 0l36-37 37 37c7 8 20 8 27 0 9-7 9-19 1-27z"/>
<glyph glyph-name="document-edit" unicode="&#42;" d="M479 461l-39 40c-4 4-8 5-13 5-4 0-8-1-11-5l-233-236c-2-2-3-3-4-6l-27-66c-2-6-1-13 4-18 4-3 8-5 12-5 2 0 4 1 6 1l66 27c2 1 4 2 5 3l234 237c7 6 7 17 0 23z m-254-234l-27-11 11 28 218 222 17-17z m170 20l0-225c0-12-11-22-23-22l-316 0c-13 0-23 10-23 22l0 424c0 13 10 21 23 21l231 0c12 0 22-10 22-22 0-12-10-22-22-22l-209 0 0-378 273 0 0 202c0 12 10 22 22 22 12 0 22-10 22-22z"/>
<glyph glyph-name="document-new" unicode="&#43;" d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z"/>
<glyph glyph-name="document-remove" unicode="&#44;" d="M439 370l-123 124c-5 5-10 7-17 7l-210 0c-12 0-22-10-22-22l0-446c0-12 10-22 22-22l334 0c12 0 22 10 22 22l0 322c0 6-2 11-6 15z m-38-25l-112 0 0 111 2 0z m-290-289l0 400 134 0 0-133c0-12 9-22 22-22l134 0 0-245z m215 130c0-10-9-19-20-19l-100 0c-11 0-20 9-20 19 0 11 9 20 20 20l100 0c11 0 20-9 20-20z"/>
<glyph glyph-name="dot" unicode="&#45;" d="M256 217c-10 0-21 4-28 12-7 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11 8-7 12-17 12-28 0-10-4-20-12-27-7-8-17-12-27-12z"/>
<glyph glyph-name="dots-2" unicode="&#46;" d="M189 217c-10 0-20 4-28 12-7 7-11 17-11 27 0 10 5 20 11 28 8 7 18 11 28 11 10 0 20-4 27-11 8-7 12-17 12-28 0-10-4-20-12-27-7-8-17-12-27-12z m161 12c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z"/>
<glyph glyph-name="dots-3" unicode="&#47;" d="M117 217c-10 0-21 4-28 12-7 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11 7-7 12-17 12-28 0-10-5-20-12-27-7-8-17-12-27-12z m166 12c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m139 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-20-4-28-11-7-7-11-17-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 27 12z"/>
<glyph glyph-name="download" unicode="&#58;" d="M495 185l0-152c0-15-12-27-28-27l-422 0c-16 0-28 12-28 27l0 152c0 15 12 28 28 28 15 0 27-13 27-28l0-124 368 0 0 124c0 15 12 28 27 28 16 0 28-13 28-28z m-259-35c5-5 12-8 20-8 8 0 14 3 20 8l111 114c10 11 10 28-1 39-11 11-28 11-39 0l-63-65 0 241c0 15-12 27-28 27-16 0-28-12-28-27l0-241-63 64c-11 11-29 11-40 1-11-11-11-29 0-40z"/>
<glyph glyph-name="duplicate" unicode="&#59;" d="M490 131l-336 0c-13 0-23 10-23 23l0 336c0 12 10 22 23 22l336 0c12 0 22-10 22-22l0-336c0-13-10-23-22-23z m-314 45l291 0 0 291-291 0z m194-149l0 59c0 9-8 16-17 16-9 0-17-7-17-16l0-53-302 0 0 303 52 0c9 0 16 7 16 16 0 9-7 17-16 17l-59 0c-15 0-27-12-27-27l0-316c0-14 12-26 27-26l316 0c15 0 27 12 27 27z"/>
<glyph glyph-name="enter" unicode="&#60;" d="M495 440l0-368c0-12-10-22-22-22l-290 0c-12 0-22 10-22 22l0 102c0 12 10 22 23 22 12 0 22-10 22-22l0-79 245 0 0 322-245 0 0-79c0-12-10-22-22-22-13 0-23 10-23 22l0 102c0 12 10 22 22 22l290 0c12 0 22-10 22-22z m-236-256c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 12 2 16 6l87 88c9 9 9 23 0 32l-86 89c-9 9-23 9-32 0-9-9-9-23 0-32l49-50-269-1c-12 0-22-10-22-22 0-12 10-22 22-22l269 0z"/>
<glyph glyph-name="exit" unicode="&#61;" d="M334 174l0-102c0-12-9-22-21-22l-291 0c-12 0-22 10-22 22l0 368c0 12 10 22 22 22l291 0c12 0 21-10 21-22l0-102c0-12-10-22-22-22-13 0-23 10-23 22l0 79-244 0 0-322 244 0 0 79c0 12 10 22 23 22 12 0 22-10 22-22z m171 99l-86 88c-9 9-23 9-32 0-9-9-9-23 0-32l49-50-270-1c-12 0-22-10-22-22 0-12 10-22 22-22l270 0-49-50c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 12 2 16 6l87 88c9 10 9 24 0 33z"/>
<glyph glyph-name="expand" unicode="&#62;" d="M501 479l0-112c0-12-10-22-22-22-13 0-23 10-23 22l0 58-129-129c-4-5-10-7-15-7-6 0-11 2-16 7-9 8-9 22 0 31l129 129-58 0c-12 0-22 10-22 23 0 12 10 22 22 22l112 0c6 0 11-2 15-7 5-4 7-9 7-15z m-22-312c-13 0-23-10-23-22l0-58-127 126c-8 9-23 9-32 0-9-9-9-23 0-32l125-125-57 0c-12 0-22-10-22-23 0-12 10-22 22-22l111 0c7 0 13 2 17 7 5 4 8 10 8 15l0 112c0 12-10 22-22 22z m-296 47l-127-127 0 58c0 12-10 22-23 22-12 0-22-10-22-22l0-112c0-6 2-11 7-15 4-5 10-7 16-7l111 0c12 0 23 10 23 22 0 13-11 23-23 23l-58 0 127 127c9 8 9 22 0 31-8 9-23 9-31 0z m-96 240l58 0c12 0 22 10 22 22 0 13-10 23-22 23l-112 0c-6 0-11-3-15-7-5-4-7-9-7-16l0-111c0-12 10-22 22-22 13 0 23 10 23 22l0 58 128-129c5-4 10-6 16-6 5 0 11 2 15 6 9 9 9 23 0 32z"/>
<glyph glyph-name="expand-2" unicode="&#63;" d="M501 479l0-117c0-13-10-23-22-23-13 0-23 10-23 23l0 63-140-141c-5-4-10-6-16-6-6 0-11 2-16 6-9 9-9 23 0 32l141 140-63 0c-13 0-23 10-23 23 0 12 10 22 23 22l117 0c6 0 11-2 15-7 5-4 7-9 7-15z m-307-254l-138-138 0 63c0 13-10 23-23 23-12 0-22-10-22-23l0-117c0-6 2-11 7-15 4-5 9-7 15-7l117 0c13 0 23 10 23 22 0 13-10 23-23 23l-63 0 139 138c9 9 9 23 0 32-9 8-23 8-32-1z"/>
<glyph glyph-name="experiment" unicode="&#64;" d="M499 489c-4 7-12 12-20 12l-446 0c-8 0-16-5-20-12-4-7-2-16 3-23l173-255 0-168c0-17 12-32 30-32l74 0c18 0 30 14 30 32l0 168 173 255c5 7 7 16 3 23z m-216-259c-3-3-5-7-5-12l0-162-44 0 0 162c0 5-2 9-5 12l-53 78c11 3 24 6 39 6 17 0 29-3 42-7 13-3 26-6 45-7 11 0 21 1 30 2z m82 119c-1 0-24-10-63-10-14 0-24 3-36 7-13 3-29 7-51 7-25 0-47-6-63-11l-77 114 362 0z m-46 37c-4 4-7 10-7 16 0 6 2 11 7 15 4 4 10 7 15 7 7 0 12-2 16-7 4-4 7-10 7-15 0-6-2-12-7-16-4-4-10-6-16-6-5 0-11 2-15 6z"/>
<glyph glyph-name="export" unicode="&#91;" d="M406 86l0-28c0-12-10-19-23-19l-363 0c-12 0-20 7-20 19l0 275c0 13 8 24 20 24l65 0c12 0 22-10 22-23 0-12-10-22-22-22l-40 0 0-229 317 0 0 3c0 13 10 23 22 23 12 0 22-10 22-23z m99 208l-138-141c-6-7-16-8-24-5-9 4-15 12-15 21l0 61c-44 1-151-3-190-72-4-7-12-12-19-12-2 0-4 0-6 1-10 3-17 12-17 22 0 3 0 89 65 153 40 42 95 64 167 68l0 61c0 9 6 17 14 20 9 4 19 2 25-5l139-140c8-9 8-23-1-32z m-48 16l-84 86 0-28c0-12-10-22-22-22-69 0-122-18-158-55-17-17-28-35-36-53 53 31 119 37 160 37 21 0 35-2 36-2 12-1 20-11 20-22l0-27z"/>
<glyph glyph-name="feed" unicode="&#93;" d="M343 55c0-17-14-30-30-30-1 0-1 0-1 0-17 1-30 15-30 32 3 79-15 138-56 176-65 61-166 51-167 51-17-2-32 10-34 27-2 17 10 32 27 34 5 1 130 13 216-66 54-51 79-127 75-224z m-240 118c-19 0-38-8-51-21-14-13-21-32-21-51 0-19 7-38 21-51 13-14 32-22 51-22 19 0 38 8 51 22 14 13 21 32 21 51 0 19-7 38-21 51-13 13-32 21-51 21z m270 215c-127 119-313 98-321 97-17-2-29-17-27-34 2-16 17-29 34-26 2 0 166 18 273-81 67-62 98-159 93-287-1-16 12-31 29-31 1 0 1 0 1 0 16 0 30 12 31 29 7 146-31 258-113 333z"/>
<glyph glyph-name="flag" unicode="&#94;" d="M483 511c-11 3-21-3-25-13-6-14-65-75-116-77-29-1-55 19-84 40-37 27-77 57-129 47-78-15-114-84-116-88-2-4-2-10-1-15l22-99 65-289c2-11 12-18 22-18 1 0 3 0 5 1 12 3 19 14 16 27l-37 168c10 16 38 54 83 64 26 6 47-1 72-9 27-8 58-19 98-10 84 19 141 120 143 250 0 10-7 19-18 21z m-135-228c-27-6-49 1-74 10-27 9-58 19-96 10-38-8-67-30-86-51l-2 10-33 144c9 15 35 49 79 58 34 6 62-15 95-39 32-24 68-50 112-49 38 2 76 24 106 48-13-67-46-128-101-141z"/>
<glyph glyph-name="flashlight" unicode="&#95;" d="M238 256c0-9-7-17-17-17l-42 0c-9 0-16 8-16 17 0 9 7 17 16 17l42 0c10 0 17-8 17-17z m274 130l0-260c0-17-14-32-32-32l-53 0c-91 1-147 51-165 73l-230 0c-18 0-32 14-32 32l0 115c0 18 14 31 32 31l229 0c19 22 74 72 166 72l53 0c18 0 32-14 32-31z m-467-175l38 0 0 90-38 0z m350-70l0 230c-67-11-106-60-106-61-5-6-10-9-17-9l-155 0 0-90 155 0c7 0 12-3 16-9 2-2 40-50 107-61z m72 232l-38 0 0-234 38 0z"/>
<glyph glyph-name="folder" unicode="&#96;" d="M445 384l-192 0-24 40c-4 6-11 10-19 10l-143 0c-12 0-22-10-22-22l0-312c0-12 10-22 22-22l378 0c12 0 22 10 22 22l0 261c0 12-10 23-22 23z m-22-262l-334 0 0 268 108 0 24-40c4-7 12-11 19-11l183 0z"/>
<glyph glyph-name="folder-open" unicode="&#123;" d="M507 297c-4 6-11 9-17 9l-28 0 0 61c0 10-8 17-18 17l-195 0-25 41c-4 6-10 9-17 9l-144 0c-10 0-18-6-18-17l0-111-23 0c-6 0-13-3-17-8-4-5-6-13-4-19l41-189c2-10 11-18 21-18l381 0c10 0 18 8 21 17l46 189c2 7 0 14-4 19z m-424 98l113 0 25-41c3-6 10-9 17-9l185 0 0-39-340 0z m343-278l-345 0-31 145 411 0z"/>
<glyph glyph-name="forward" unicode="&#124;" d="M72 95c-1 0-4 0-5 0-10 3-17 11-17 22 0 3 1 88 64 152 41 40 96 63 166 67l0 59c0 9 6 17 14 21 9 3 18 1 25-5l137-139c8-9 8-23 0-32l-137-139c-6-6-16-8-25-5-8 4-14 12-14 21l0 60c-44 1-150-3-188-71-4-7-12-11-20-11z m196 127c21 0 35-2 37-2 11-1 20-10 20-22l0-27 83 85-83 85 0-27c0-12-10-22-22-22-69 0-122-19-157-55-16-16-27-34-35-52 52 31 117 37 157 37z"/>
<glyph glyph-name="gaming" unicode="&#125;" d="M338 340c5-4 8-11 8-18 0-6-3-13-8-18-4-4-11-7-17-7-7 0-14 3-18 7-5 5-7 12-7 18 0 7 2 13 7 18 4 4 11 7 18 7 6 0 13-3 17-7z m39-35c-6 0-12-3-17-7-5-5-8-11-8-18 0-7 3-13 8-18 4-4 11-7 17-7 7 0 14 3 18 7 5 5 7 11 7 18 0 7-2 13-7 18-4 4-11 7-18 7z m-189 12l-15 0 0 15c0 7-7 14-14 14-8 0-14-7-14-14l0-15-15 0c-8 0-14-6-14-14 0-7 6-14 14-14l15 0 0-14c0-8 6-14 14-14 7 0 14 6 14 14l0 14 15 0c8 0 14 7 14 14 0 8-6 14-14 14z m324-173c0-24-13-43-35-52-21-7-54-4-84 30-15 17-39 47-52 63-72-16-140-6-169 0-13-16-38-46-52-63-22-25-45-34-65-34-8 0-14 2-20 4-22 8-35 28-35 52 0 65 42 168 56 199-5 15-3 32 5 46 11 18 30 32 46 33 15 2 34-7 47-13 25 4 104 16 204 0 12 6 32 15 47 13 16-1 35-15 46-33 8-14 10-31 5-46 14-30 56-133 56-199z m-45 0c0 66-55 189-55 190-3 6-3 13 0 19 3 5 3 9 1 13-3 6-10 11-12 12-5 0-19-6-29-11-5-2-10-4-15-2-114 20-201 0-202 0-5-2-10-1-15 2-11 5-24 11-29 11-3-1-10-6-12-12-2-5-2-8 0-13 3-6 3-13 1-19 0-1-55-124-55-190 0-5 2-8 5-10 8-3 22 2 36 17 19 23 59 73 60 73 5 8 15 10 23 8 1 0 88-25 173 0 2 0 4 1 6 1 7 0 14-3 18-9 0 0 40-50 60-73 14-16 28-20 35-17 4 2 6 5 6 10z"/>
<glyph glyph-name="gear" unicode="&#126;" d="M256 149c-59 0-107 47-107 107 0 59 47 107 107 107 59 0 107-47 107-107 0-59-48-107-107-107z m0 175c-37 0-68-31-68-68 0-37 31-68 68-68 37 0 68 31 68 68 0 37-31 68-68 68z m0-324l-3 0c-19 0-36 2-37 2-9 1-16 8-17 17l-6 40c-12 4-24 9-35 15l-31-24c-7-5-17-5-24 0-1 1-14 11-28 25l-2 2c-14 14-24 27-25 28-5 7-5 16 0 24l25 32c-6 11-11 23-15 35l-39 6c-8 1-15 8-16 17-1 1-3 18-3 37l0 3c0 19 2 36 2 37 1 9 8 16 17 17l40 6c4 12 9 24 15 35l-24 31c-5 7-5 17 0 24 1 1 11 14 25 28l2 2c14 14 27 24 28 25 7 5 16 5 24 0l32-25c11 6 23 11 35 15l6 39c1 8 8 15 17 16 1 1 18 3 37 3l3 0c19 0 36-2 37-2 9-1 16-8 17-17l6-40c12-4 24-9 35-15l31 24c7 5 17 5 24 0 1-1 14-11 28-25l2-2c14-14 24-27 25-28 5-7 5-16 0-24l-24-32c6-11 10-23 14-35l39-6c9-1 16-8 17-17 0-1 2-18 2-38l0-2c0-20-2-37-2-38-1-9-8-15-17-17l-40-5c-4-13-9-24-15-36l24-31c5-7 5-17 0-24-1-1-11-14-25-28l-2-2c-14-14-27-24-28-25-7-5-16-5-24 0l-32 25c-11-6-23-10-35-14l-6-39c-1-9-8-16-17-17-1 0-18-2-37-2z m-20 40c5 0 11 0 17 0l3 0c6 0 12 0 17 0l5 37c1 8 7 14 15 16 18 4 34 11 49 21 5 2 10 3 15 2 3-1 6-2 8-4l30-22c3 3 8 7 12 11l3 3c4 4 8 8 11 12l-22 30c-5 6-5 15-1 22 9 15 16 31 20 47 2 9 8 15 17 17l37 5c0 5 0 11 0 17l0 2c0 6 0 12 0 17l-37 5c-8 1-14 7-16 15-4 18-11 34-20 49-1 1-2 2-2 4-2 6-1 14 3 19l22 30c-3 3-7 8-11 12l-3 3c-4 4-8 8-12 11l-30-22c-7-5-17-5-23 0-15 9-31 16-47 20-8 2-14 8-16 17l-5 37c-5 1-11 1-17 1l-2 0c-6 0-12 0-17-1l-5-38c-1-9-8-15-17-16-17-4-33-11-47-20-5-3-10-3-15-2-3 0-6 2-8 4l-29 22c-4-3-8-7-13-12l-2-2c-4-4-8-9-12-13l23-29c5-7 5-15 1-23-1 0-1-1-1-1-9-15-16-31-20-47-2-8-8-14-17-16l-37-5c0-5 0-11 0-17l0-2c0-6 0-12 0-17l37-5c9-1 15-8 16-17 0 0 0-1 0-1 4-16 11-32 20-46 3-5 4-11 2-17-1-2-3-4-4-7l-22-29c3-3 7-8 12-12l2-3c4-4 9-8 13-11l29 22c7 6 18 5 25-1 14-8 30-15 46-19 8-2 14-8 15-17z"/>
<glyph glyph-name="graduation" unicode="&#92;" d="M499 337l-234 105c-6 3-13 3-18 0l-234-105c-7-4-13-11-13-20 0-9 6-16 13-20l20-10 0-78c0-8 7-14 14-14 8 0 14 6 14 14l0 64 34-18 0-95c0-4 1-7 3-10 2-4 53-79 155-79 105 0 154 76 156 79 2 2 3 6 3 10l0 92 89 45c8 4 12 12 12 20-1 9-7 16-14 20z m-126-171c-11-13-49-56-120-56-69 0-108 42-119 56l0 69 112-57c3-2 7-2 10-2 3 0 7 0 11 2l106 54z m-117 57l-183 92 183 82 183-82z m-195-47c4-3 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-2 15-7z"/>
<glyph glyph-name="graph-bar" unicode="&#57344;" d="M406 17c-18 0-33 15-33 33l0 412c0 18 15 33 33 33 19 0 34-15 34-33l0-412c0-18-15-33-34-33z m-117 33l0 276c0 18-15 34-33 34-18 0-33-16-33-34l0-276c0-18 15-33 33-33 18 0 33 15 33 33z m-150 0l0 140c0 19-15 34-33 34-19 0-34-15-34-34l0-140c0-18 15-33 34-33 18 0 33 15 33 33z"/>
<glyph glyph-name="graph-line" unicode="&#57345;" d="M33 56c-5 0-10 1-14 4-13 7-17 25-10 38l68 113c5 8 14 14 23 14 10 0 19-4 24-12l29-40 61 105c5 7 14 13 23 14 9 0 18-4 23-12l54-71 141 233c7 14 25 18 38 10 13-8 17-25 10-39l-162-268c-5-8-14-13-23-14-9 0-18 4-24 11l-53 72-62-105c-5-8-13-13-23-14-9 0-18 4-24 12l-28 40-47-77c-5-9-14-14-24-14z"/>
<glyph glyph-name="graph-pie" unicode="&#57346;" d="M187 305l-168 0c-10 0-19 9-19 19 0 104 84 188 187 188 11 0 19-9 19-19l0-168c1-11-8-20-19-20z m-146 39l127 0 0 127c-66-8-119-61-127-127z m232-344c-132 0-238 102-238 229 0 12 10 22 22 22l204 0 0 204c0 12 10 22 22 22 124 0 229-109 229-238 0-132-107-239-239-239z m-192 206c11-91 93-161 192-161 107 0 194 87 194 194 0 97-72 181-161 192l0-202c0-13-10-23-23-23z"/>
<glyph glyph-name="headset" unicode="&#57347;" d="M495 274l0-141c0-12-10-22-23-22-12 0-22 10-22 22l1 141c0 52-20 100-57 137-37 36-85 56-137 56 0 0-1 0-1 0-107 0-194-86-195-192l0-141c0-13-10-23-22-23-12 0-22 10-22 23l0 141c0 131 108 237 239 237 0 0 1 0 1 0 64 0 124-25 168-70 46-45 70-105 70-168z m-291-12c4-4 5-8 5-13l0-225c0-11-9-18-20-18-73 0-97 42-100 65 0 1 0 0 0 1l0 127c0 1 0 1 0 2 3 23 27 66 100 66 0 0 1 0 1 0 5 0 10-1 14-5z m-34-34c-35-6-41-27-42-30l-1-125c2-4 8-24 43-30z m254-29l0-126c0-1 0-1 0-2-3-23-27-65-100-65-11 0-20 7-20 18l0 224c0 5 2 10 5 14 4 3 9 5 14 5 0 0 1 0 1 0 73 0 97-43 100-66 0-1 0-1 0-2z m-39-126l0 125c-2 4-8 24-43 30l1-185c35 7 41 27 42 30z"/>
<glyph glyph-name="heart" unicode="&#57348;" d="M483 390c-23 50-71 83-122 83-52 0-86-23-105-47-19 24-53 47-105 47-51 0-99-33-122-83-23-53-13-112 28-157 97-110 183-187 185-188 4-4 9-5 15-5 5 0 10 1 15 5 1 1 86 79 184 188 40 45 50 104 27 157z m-61-128c-72-81-138-144-166-171-28 27-94 90-166 171-29 33-37 72-20 110 15 34 48 57 81 57 67 0 82-50 83-56 3-10 11-17 21-17 10 0 19 7 22 17 2 5 17 56 83 56 33 0 66-23 82-58 17-37 9-76-20-109z m-5 65c0-11-7-20-19-21 0 0-1 0-1 0-10 0-19 8-19 18-2 32-23 37-27 38-10 1-18 11-17 21 2 11 12 18 23 17 19-3 56-22 60-73z m-27-33c4-4 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-3 15-7z"/>
<glyph glyph-name="help" unicode="&#57349;" d="M437 437c-49 48-113 75-181 75-68 0-132-27-181-75-48-49-75-113-75-181 0-68 27-132 75-181 49-48 113-75 181-75 68 0 132 27 181 75 48 49 75 113 75 181 0 68-27 132-75 181z m-50-150l76 12c3-14 4-29 4-43 0-14-1-29-4-43l-76 12c4 20 4 42 0 62z m67 45l-79-13c-7 12-14 23-24 32-9 10-20 18-32 24l13 79c27-11 53-27 74-48 21-22 37-47 48-74z m-198-166c-24 0-47 9-63 26-18 17-27 40-27 63 0 24 10 47 27 64 17 18 40 26 63 26 23 0 46-9 63-26 18-17 27-40 27-64 0-23-10-46-27-63-16-17-39-26-63-26z m0 301c14 0 29-1 43-4l-12-76c-20 5-42 5-62 0l-12 76c14 3 29 4 43 4z m-150-61c21 21 47 38 74 48l13-79c-12-7-23-14-32-24-10-9-17-20-24-32l-79 13c11 27 27 52 48 74z m-61-150c0 14 1 29 4 43l76-12c-2-10-4-20-4-31 0-11 1-21 4-31l-76-12c-3 14-4 29-4 43z m13-76l79 13c7-12 14-23 24-32 10-10 21-17 32-24l-12-79c-27 10-53 27-74 48-22 22-38 47-49 74z m198-135c-14 0-29 1-43 4l12 76c10-2 20-4 31-4 11 0 21 1 31 4l12-76c-14-3-29-4-43-4z m150 61c-21-21-47-38-74-48l-13 79c12 7 23 14 32 24 10 10 18 21 24 32l79-12c-11-28-27-53-48-75z"/>
<glyph glyph-name="home" unicode="&#57350;" d="M490 239c-6 0-11 3-16 6l-218 214-218-214c-9-8-23-8-32 1-8 9-8 23 1 32l233 228c9 8 23 8 32 0l233-228c9-9 9-23 1-32-5-4-11-7-16-7z m-49-217l0 218c0 12-10 22-22 22-13 0-23-10-23-22l0-195-69 0 0 119c0 16-14 29-30 29l-82 0c-16 0-30-13-30-29l0-119-69 0 0 195c0 12-10 22-23 22-12 0-22-10-22-22l0-218c0-12 10-22 22-22l115 0c12 0 22 10 22 22l0 127 53 0 0-127c0-12 10-22 22-22l114 0c12 0 22 10 22 22z"/>
<glyph glyph-name="hourglass" unicode="&#57351;" d="M434 56l-22 0 0 58c0 32-32 60-64 86-10 9-25 23-31 29l0 54c6 6 21 20 31 29 32 26 64 54 64 86l0 58 22 0c12 0 22 10 22 23 0 12-10 22-22 22l-356 0c-12 0-22-10-22-22 0-13 10-23 22-23l22 0 0-58c0-32 32-60 64-86 10-9 25-23 31-29l0-54c-6-6-21-20-31-29-32-26-64-54-64-86l0-58-22 0c-12 0-22-10-22-23 0-12 10-22 22-22l356 0c12 0 22 10 22 22 0 13-10 23-22 23z m-289 58c0 12 31 38 48 52 26 23 46 40 46 61l0 58c0 22-20 38-46 61-17 14-48 40-48 52l0 58 222 0 0-58c0-12-31-38-48-52-26-23-46-40-46-61l0-58c0-21 20-38 46-61 17-14 48-40 48-52l0-58-222 0z m161 292l0 11c0 11 9 20 20 20 10 0 19-8 19-20l0-11c0-10-9-19-19-19-11 0-20 9-20 19z"/>
<glyph glyph-name="inbox" unicode="&#57352;" d="M512 294c0 0 0 2 0 2 0 1 0 1-1 2 0 1 0 2 0 3 0 0-1 1-1 2 0 0 0 1-1 1 0 1-1 2-1 3 0 0 0 0 0 0l-121 147c-4 5-10 8-17 8l-228 0c-7 0-13-3-17-8l-120-147c0 0-1 0-1 0 0-1-1-1-1-3 0 0 0-1-1-1 0-1 0-1 0-2 0-1-1-2-1-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-1 0-1l0-200c-1-23 19-43 44-43l422 0c25 0 45 20 45 44l0 199c0 0 0 1 0 1z m-360 123l207 0 83-100-73 0c-6 0-12-4-17-8l-50-59-92 0-50 59c-5 5-10 8-17 8l-74 0z m315-322l-422 0 0 178 88 0 48-56c6-7 14-11 23-11l104 0c9 0 16 5 23 11l48 56 88 0z"/>
<glyph glyph-name="information" unicode="&#57353;" d="M241 101c-4 0-9 2-12 5-6 4-9 11-7 19l27 139-15-9c-9-5-21-2-26 8-5 9-3 21 7 26l52 30c6 4 15 3 21-1 6-5 9-12 8-20l-29-144 24 10c10 4 21 0 25-10 5-10 0-22-10-26l-57-25c-2-1-5-2-8-2z m55 266c5 5 8 13 8 20 0 7-2 14-8 19-5 5-12 9-19 9-8 0-15-3-20-9-5-5-8-12-8-19 0-7 3-15 8-20 5-5 12-8 20-8 7 0 14 3 19 8z m216-111c0 141-115 256-256 256-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256z m-45 0c0-117-94-211-211-211-117 0-211 94-211 211 0 117 94 211 211 211 117 0 211-94 211-211z"/>
<glyph glyph-name="italic" unicode="&#57354;" d="M282 342c5-5 6-13 5-20l-41-211c10 4 22 0 27-10 6-10 2-24-9-30l-14-8c-5-2-11-4-17-4-7 0-14 2-20 7-12 9-17 22-14 36l39 204-9 0c-13 0-23 10-23 22 0 13 10 23 23 23l36 0c7 0 13-4 17-9z m-10 95c-14 0-26-11-26-26 0-14 12-26 26-26 15 0 26 12 26 26 0 15-12 26-26 26z"/>
<glyph glyph-name="jewel" unicode="&#57355;" d="M506 338l-94 100c-5 4-10 7-16 7l-280 0c-6 0-12-3-16-7l-94-100c-8-9-8-22 1-31l233-234c5-5 10-7 16-7 6 0 12 2 16 7l233 234c9 9 9 22 1 31z m-354-32l42-120-121 120z m123 95l36-56-110 0 36 56z m-19-280l0 1-62 184 124 0-62-184z m104 185l79 0-121-120z m81 39l-85 0-35 56 65 0z m-315 56l65 0-35-56-85 0z"/>
<glyph glyph-name="lifting" unicode="&#57356;" d="M429 390l0-268c0-12-10-22-23-22-12 0-22 10-22 22l0 112-256 0 0-112c0-12-10-22-22-22-13 0-23 10-23 22l0 268c0 12 10 22 23 22 12 0 22-10 22-22l0-112 256 0 0 112c0 12 10 22 22 22 13 0 23-10 23-22z m-396-33c-12 0-22-10-22-23l0-157c0-12 10-22 22-22 13 0 23 10 23 22l0 157c0 13-10 23-23 23z m446 0c-13 0-23-10-23-23l0-157c0-12 10-22 23-22 12 0 22 10 22 22l0 157c0 13-10 23-22 23z"/>
<glyph glyph-name="lightbulb" unicode="&#57357;" d="M256 512c-91 0-167-76-167-169 0-56 22-102 67-133l0-54c0-6 4-12 8-16 4-4 10-6 16-6 0 0 1 0 2 0l153 12c12 1 22 10 22 22l0 42c39 28 67 77 67 133-1 93-77 169-168 169z m67-270c-7-4-11-12-11-19l0-34-112-9 0 43c0 7-3 15-10 19-38 22-56 56-56 101 0 69 55 124 122 124 67 0 122-55 122-124 0-44-20-82-55-101z m31-143c1-13-8-23-21-24l-152-12c0 0-1 0-1 0-12 0-21 9-23 21-1 12 9 23 21 24l152 11c13 1 23-8 24-20z m-48-71c1-12-9-22-21-24l-55-4c0 0-1 0-1 0-12 0-21 9-23 21-1 12 9 22 21 24l55 4c12 1 23-8 24-21z m38 316c-1-10-9-18-19-18-1 0-1 0-2 0-10 1-18 11-17 21 3 32-24 44-28 45-10 4-15 15-11 25 3 10 14 15 24 12 21-8 58-35 53-85z"/>
<glyph glyph-name="link" unicode="&#57358;" d="M505 156l-132 133c-9 9-23 9-32 0l-43-44-53 53 44 43c9 9 9 23 0 32l-133 132c-9 9-22 9-31 0l-118-118c-5-4-7-10-7-16 0-6 2-11 7-15l132-133c5-4 10-7 16-7 5 0 11 3 15 7l44 44 52-53-43-43c-9-9-9-23 0-32l132-132c5-5 10-7 16-7 6 0 11 2 15 7l119 118c9 9 9 23 0 31z m-350 114l-101 101 87 87 101-101-28-28-17 17c-9 9-23 9-32 0-9-9-9-23 0-32l17-16z m216-216l-101 101 28 28 17-17c4-5 10-7 16-7 5 0 11 2 15 7 9 9 9 23 0 32l-17 16 28 28 101-101z"/>
<glyph glyph-name="link-broken" unicode="&#57359;" d="M207 245c0-12-10-22-22-22l-35-2c-5 0-10 2-14 6l-129 130c-5 5-7 10-7 16 0 7 2 12 7 16l116 116c9 9 23 9 32 0l130-130c9-9 9-23 0-31-9-9-23-8-32 0l-114 115-85-85 107-107 23 0c13 0 23-10 23-22z m298-90l-129 129c-4 5-9 6-14 6l-35-1c-12 0-22-10-22-22 0-12 10-22 22-22l24 0 108-107-86-85-114 115c-9 9-23 9-32 0-9-9-9-23 0-31l130-130c5-5 10-7 16-7 6 0 12 2 16 7l116 116c5 4 7 10 7 16 0 6-2 11-7 16z m-166 231c13 0 23 10 23 22l0 56c0 12-10 22-23 22-12 0-22-10-22-22l0-56c0-12 10-22 22-22z m66-69l55 0c12 0 23 10 23 22 0 13-11 23-23 23l-55 0c-13 0-23-10-23-23 0-12 10-22 23-22z m-232-187c-13 0-23-10-23-23l0-55c0-12 10-23 23-23 12 0 22 11 22 23l0 55c0 13-10 23-22 23z m-69 65l-56 0c-12 0-22-10-22-22 0-13 10-23 22-23l56 0c12 0 22 10 22 23 0 12-10 22-22 22z"/>
<glyph glyph-name="list" unicode="&#57360;" d="M508 429c0-19-15-34-34-34l-306 0c-19 0-34 15-34 34 0 18 15 33 34 33l306 0c19 0 34-15 34-33z m-340-206l174 0c18 0 33 15 33 33 0 18-15 33-33 33l-174 0c-19 0-34-15-34-33 0-18 15-33 34-33z m245-106l-245 0c-19 0-34-15-34-34 0-18 15-33 34-33l245 0c19 0 34 15 34 33 0 19-15 34-34 34z m-375 348c-10 0-19-4-26-11-6-7-11-16-11-25 0-10 4-19 11-26 6-7 16-11 25-11 10 0 19 4 26 11 7 7 10 16 10 26 0 9-3 18-10 25-6 7-16 11-25 11z m0-173c-10 0-19-4-26-10-6-7-11-17-11-26 0-9 4-19 11-26 6-6 16-10 25-10 10 0 19 4 26 10 7 7 10 17 10 26 0 9-3 19-10 26-6 6-16 10-25 10z m0-172c-10 0-19-4-26-11-6-7-11-16-11-26 0-9 4-18 11-25 6-7 16-11 25-11 10 0 19 4 26 11 7 7 10 16 10 25 0 10-3 19-10 26-6 7-16 11-25 11z"/>
<glyph glyph-name="loading" unicode="&#57361;" d="M256 369c-12 0-22 10-22 22l0 96c0 12 10 22 22 22 12 0 22-10 22-22l0-96c0-12-10-22-22-22z m-66-22c10 8 12 21 5 31l-57 78c-7 10-21 12-31 5-10-7-12-21-5-31l56-78c5-6 11-9 18-9 5 0 10 1 14 4z m-41-56c3 12-3 25-15 28l-91 29c-12 4-25-2-28-14-4-11 3-24 14-28l92-29c2-1 4-2 6-2 10 0 18 7 22 16z m-106-127l91 29c12 4 18 16 15 28-4 12-17 18-28 14l-92-29c-11-4-18-16-14-28 3-9 12-15 21-15 2 0 5 0 7 1z m95-108l57 78c7 10 5 23-5 31-10 7-24 5-31-5l-57-78c-7-10-5-24 5-31 4-3 9-4 13-4 7 0 14 3 18 9z m140-31l0 96c0 12-10 22-22 22-12 0-22-10-22-22l0-96c0-12 10-22 22-22 12 0 22 10 22 22z m127 26c10 7 12 21 5 31l-57 78c-7 10-21 12-31 5-10-8-12-21-5-31l56-78c5-6 12-9 18-9 5 0 10 1 14 4z m92 127c4 11-3 24-14 27l-92 30c-11 4-24-3-28-15-3-11 3-24 15-27l91-30c2 0 5-1 7-1 9 1 18 7 21 16z m-106 99l92 29c11 4 18 16 14 28-4 12-16 18-28 14l-91-29c-12-4-18-16-15-28 3-9 12-16 22-16 2 0 4 1 6 2z m-38 75l57 78c7 10 5 24-5 31-10 7-24 5-32-5l-56-78c-7-10-5-23 5-31 4-3 9-4 13-4 7 0 14 3 18 9z"/>
<glyph glyph-name="location" unicode="&#57362;" d="M381 468c-32 28-77 44-125 44-48 0-93-16-125-44-39-34-59-86-59-151 0-139 161-304 168-310 5-5 10-7 16-7 6 0 12 2 16 7 7 6 168 171 168 310 0 65-20 117-59 151z m-125-413c-15 17-39 45-62 78-50 71-77 135-77 184 0 139 106 150 139 150 129 0 139-115 139-150 0-98-99-218-139-262z m0 361c-49 0-88-41-88-90 0-50 39-90 88-90 49 0 88 41 88 90 0 50-39 90-88 90z m0-141c-27 0-50 23-50 51 0 29 23 51 50 51 27 0 50-22 50-51 0-28-23-51-50-51z"/>
<glyph glyph-name="lock" unicode="&#57363;" d="M406 328l-16 0 0 39c0 82-56 139-134 139-78 0-134-57-134-139l0-39-16 0c-13 0-23-10-23-22l0-278c0-12 10-22 23-22l300 0c13 0 23 10 23 22l0 278c0 12-10 22-23 22z m-239 39c0 57 37 95 89 95 52 0 89-38 89-95l0-39-178 0z m217-317l-256 0 0 234 256 0z"/>
<glyph glyph-name="lock-open" unicode="&#57364;" d="M406 328l-239 0 0 39c0 57 36 95 88 95 38 0 68-20 81-54 4-12 17-17 29-13 11 5 17 17 12 29-19 51-65 82-122 82-77 0-133-57-133-139l0-39-16 0c-13 0-23-10-23-22l0-278c0-12 10-22 23-22l300 0c13 0 23 10 23 22l0 278c0 12-10 22-23 22z m-22-278l-256 0 0 234 256 0z"/>
<glyph glyph-name="mail" unicode="&#57365;" d="M512 385c0 0 0 1 0 2 0 0 0 1 0 1 0 1-1 2-1 3 0 0 0 1 0 2 0 0-1 1-1 2-1 0-1 1-1 2 0 0 0 0 0 0-1 1-1 1-1 1-1 1-2 2-2 2-1 1-1 1-2 1 0 1-1 1-1 1-1 1-2 1-2 1-1 1-1 1-2 2 0 0-1 0-2 0-1 0-1 1-2 1-1 0-2 0-2 0-1 0-2 0-2 0l-469 0c0 0-1 0-1 0-1 0-2 0-3 0 0 0-1-1-2-1 0 0-2 0-2 0-1 0-1-1-2-2 0 0-1 0-1-1-1 0-2 0-2-1-1 0-1-1-2-1 0 0-1-1-1-2-1 0-1 0-2-1 0 0 0 0 0 0 0-1-1-2-1-2 0-1 0-2-1-2 0-1 0-1 0-2 0-1-1-1-1-3 0 0 0-1 0-1 0-1 0-2 0-2 0 0 0-1 0-1l0-256c0-12 10-22 22-22l468 0c12 0 22 10 22 22l-1 257c0-1 0 0 0 0z m-90-23l-166-124-166 124z m-377-212l0 189 198-146c4-3 8-5 13-5 5 0 9 2 13 5l198 146 0-189z"/>
<glyph glyph-name="map" unicode="&#57366;" d="M502 430l-117 55c-1 0-1 0-1 0-1 1-2 1-2 1-1 0-2 0-2 0-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2-1-2-1-1 0-1 0-1 0l-110-51-111 51c0 0 0 0-1 0-1 1-2 1-2 1-1 0-2 0-2 0-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2-1-2-1-1 0-1 0-1 0l-121-55c-7-4-13-10-13-18l0-362c0-7 5-13 11-17 3-2 7-3 11-3 2 0 6 1 9 2l109 51 110-51c2 0 3-1 4-1 0 0 0 0 1 0 1 0 2 0 4 0 1 0 3 0 4 0 0 0 0 0 1 0 1 1 2 1 3 1l110 51 109-51c3-1 6-1 9-1 4 0 6 1 9 3 5 4 7 10 7 17l0 361c1 8-2 14-9 18z m-268-349l-73 36 0 319 73-37z m-195 318l78 37 0-319-78-36z m239 0l78 37 0-319-78-36z m195-318l-78 36 0 319 78-37z"/>
<glyph glyph-name="media-loop" unicode="&#57367;" d="M440 332l0-221c0-12-10-22-23-22l-322 0c-13 0-23 10-23 22l0 221c0 12 10 24 23 24l123 0-30 30c-9 9-8 22 0 30 9 9 23 9 32 0l68-68c8-9 8-23 0-31l-68-69c-5-4-10-6-16-6-5 0-11 2-15 6-9 9-9 24 0 32l30 31-102 0 0-178 278 0 0 179-47 0c-12 0-22 10-22 22 0 12 10 22 22 22l69 0c13 0 23-12 23-24z"/>
<glyph glyph-name="media-next" unicode="&#57368;" d="M331 273l-234 184c-6 5-15 6-23 3-8-4-13-12-13-20l0-368c0-8 5-16 13-20 3-1 7-2 9-2 5 0 10 2 14 5l234 184c6 4 8 10 8 17 0 7-3 13-8 17z m-225-155l0 276 175-138z m345 313l0-354c0-14-11-25-25-25-14 0-25 11-25 25l0 354c0 14 11 25 25 25 14 0 25-11 25-25z"/>
<glyph glyph-name="media-pause" unicode="&#57369;" d="M184 440l0-368c0-15-13-27-28-27-16 0-28 12-28 27l0 368c0 15 12 27 28 27 15 0 28-12 28-27z m172 27c-15 0-28-12-28-27l0-368c0-15 13-27 28-27 16 0 28 12 28 27l0 368c0 15-12 27-28 27z"/>
<glyph glyph-name="media-play" unicode="&#57370;" d="M387 273l-234 184c-7 5-16 6-23 3-8-4-13-12-13-20l0-368c0-8 5-16 13-20 3-1 6-2 9-2 5 0 10 2 14 5l234 184c5 4 8 10 8 17 0 7-3 13-8 17z m-226-155l0 276 176-138z"/>
<glyph glyph-name="media-previous" unicode="&#57371;" d="M438 460c-8 4-17 2-23-3l-231-184c-6-4-9-10-9-17 0-7 4-13 9-17l231-184c4-3 9-5 14-5 3 0 6 1 9 2 8 4 13 12 13 20l0 368c0 8-5 16-13 20z m-32-341l-173 137 173 137z m-300 312l0-354c0-14-11-25-25-25-14 0-25 11-25 25l0 354c0 14 11 25 25 25 14 0 25-11 25-25z"/>
<glyph glyph-name="media-record" unicode="&#57372;" d="M256 42c-118 0-214 96-214 214 0 118 96 214 214 214 118 0 214-96 214-214 0-118-96-214-214-214z m0 378c-91 0-164-73-164-164 0-91 73-164 164-164 91 0 164 73 164 164 0 91-73 164-164 164z"/>
<glyph glyph-name="media-shuffle" unicode="&#57373;" d="M380 345c-24 0-82-58-125-100-65-62-126-123-175-123l-30 0c-12 0-22 10-22 23 0 12 10 22 22 22l30 0c31 0 94 62 144 111 61 59 114 112 156 112l28 0-30 29c-9 9-9 22 0 31 9 9 23 9 32 0l68-69c5-4 7-10 7-15 0-6-2-12-7-16l-69-68c-4-5-10-7-16-7-5 0-11 3-15 7-9 9-9 24 0 32l30 31z m29-115c-9 9-23 9-32 0-9-9-9-23 0-32l31-31-29 0c-18 0-49 27-79 55-9 8-23 8-32-1-8-8-8-23 1-32 47-43 78-67 111-67l28 0-30-29c-9-9-9-22 0-31 4-5 10-6 15-6 6 0 12 2 16 6l68 69c5 4 7 10 7 15 0 6-2 12-7 16z m-359 115l30 0c24 0 59-30 86-55 5-4 10-6 15-6 7 0 13 2 17 7 8 9 8 24-2 32-43 40-80 67-116 67l-30 0c-12 0-22-10-22-22 0-12 10-23 22-23z"/>
<glyph glyph-name="media-stop" unicode="&#57374;" d="M467 442c0 14-11 25-25 25l-378 0c-14 0-25-11-25-25l0-378c0-14 11-25 25-25l378 0c14 0 25 11 25 25z m-50-353l-328 0 0 328 328 0z"/>
<glyph glyph-name="medical" unicode="&#57375;" d="M505 385c-4 3-9 5-15 5l-117 0 0 66c0 13-11 23-24 23l-186 0c-13 0-24-10-24-23l0-66-117 0c-12 0-22-8-22-20l0-314c0-13 10-23 22-23l468 0c12 0 22 10 22 23l0 313c0 6-2 11-7 16z m-321 49l144 0 0-44-144 0z m283-356l-422 0 0 267 422 0z m-302 136c0 11 9 20 20 20l49 0 0 49c0 11 9 20 19 20 11 0 20-9 20-20l0-49 54 0c11 0 20-9 20-20 0-10-9-19-20-19l-54 0 0-53c0-10-9-19-20-19-10 0-19 8-19 19l0 53-49 0c-11 0-20 9-20 19z"/>
<glyph glyph-name="menu" unicode="&#57376;" d="M434 381l-356 0c-20 0-36 16-36 36 0 20 16 37 36 37l356 0c20 0 36-17 36-37 0-20-16-36-36-36z m36-125c0 20-16 36-36 36l-356 0c-20 0-36-16-36-36 0-20 16-36 36-36l356 0c20 0 36 16 36 36z m0-161c0 20-16 36-36 36l-356 0c-20 0-36-16-36-36 0-20 16-37 36-37l356 0c20 0 36 17 36 37z"/>
<glyph glyph-name="message" unicode="&#57377;" d="M490 479l-468 0c-12 0-22-10-22-23l0-284c0-12 10-22 22-22l262 0 0-94c0-10 7-18 15-21 3-2 6-2 9-2 6 0 13 3 17 8l92 109 73 0c12 0 22 10 22 22l0 284c0 13-10 23-22 23z m-23-284l-60 0c-6 0-14-4-18-8l-61-71 0 56c0 12-7 23-20 23l-263 0 0 239 422 0z m-363 161c0 12 10 22 22 22l161 0c12 0 22-10 22-22 0-12-10-22-22-22l-161 0c-12 0-22 10-22 22z m244-17c-4 4-7 10-7 16 0 6 2 11 7 15 4 5 10 7 15 7 7 0 12-2 16-7 4-4 7-10 7-15 0-7-3-12-7-16-4-5-10-7-16-7-5 1-11 3-15 7z"/>
<glyph glyph-name="meter" unicode="&#57378;" d="M405 373l-108-232c-9-24-26-38-44-38-15 0-28 8-35 20-8 14-8 32 2 47l141 227c7 11 22 15 34 9 11-6 16-20 10-33z m38-67c-8 9-22 10-32 1-9-8-9-22-1-32 37-40 57-92 57-147 0-12 10-22 23-22 12 0 22 10 22 22 0 66-24 130-69 178z m-169 37c12-1 23 8 24 20 1 12-8 23-20 24-8 0-15 1-22 1-141 0-256-117-256-261 0-12 10-22 22-22 13 0 23 10 23 22 0 120 94 216 211 216 6 1 12 0 18 0z"/>
<glyph glyph-name="microphone" unicode="&#57379;" d="M380 22c0-12-10-22-23-22l-203 0c-13 0-23 10-23 22 0 13 10 23 23 23l82 0 0 37c0 11 9 20 20 20 11 0 20-9 20-20l0-37 82 0c12 0 22-10 22-23z m-5 329c-11 0-20-9-20-20l0-145c0-8-3-16-9-21-5-6-13-9-20-9l-140 0c-7 0-15 3-20 9-6 6-9 13-9 21l0 145c0 11-9 20-20 20-11 0-20-9-20-20l0-145c0-18 7-36 20-49 13-13 31-20 49-20l140 0c18 0 36 7 49 20 13 14 20 31 20 49l0 145c0 11-9 20-20 20z m-179-152c-8 9-12 20-12 31l0 232c0 12 4 23 12 33 9 11 21 17 33 17l54 0c25 0 45-27 45-49l0-231c0-23-20-48-45-48l-54-1c-12 0-24 5-33 16z m33 31c0-1 1-3 3-4l48 0c1 1 3 3 3 5l0 232c0 1-2 3-3 4l-48 0c-2-1-3-3-3-5z"/>
<glyph glyph-name="minus" unicode="&#57380;" d="M378 231l-244 0c-14 0-25 11-25 25 0 14 11 25 25 25l244 0c14 0 25-11 25-25 0-14-11-25-25-25z"/>
<glyph glyph-name="monitor" unicode="&#57381;" d="M512 440c0 12-10 22-22 22l-468 0c-12 0-22-10-22-22l0-290c0-12 10-22 22-22l468 0c12 0 22 10 22 22z m-45-267l-422 0 0 244 422 0z m-80-101c0-12-10-22-22-22l-218 0c-12 0-22 10-22 22 0 13 10 23 22 23l217 0c13 0 23-10 23-23z"/>
<glyph glyph-name="move" unicode="&#57382;" d="M512 254c0-6-2-11-7-15l-78-78c-5-5-10-6-16-6-5 0-11 2-15 6-9 9-9 24 0 32l40 41-158 0 0-158 41 41c9 9 23 8 32 0 9-9 8-23 0-32l-79-78c-4-5-10-7-16-7-6 0-11 2-16 7l-78 78c-9 8-9 22 0 31 9 9 23 9 31 0l41-40 0 158-158 0 41-41c9-9 9-24 0-33-5-4-10-6-16-6-5 0-11 2-15 6l-79 79c-5 4-7 9-7 15 0 6 2 12 7 16l78 78c9 9 23 9 32 0 9-9 8-22 0-31l-41-39 158 0 0 158-41-40c-9-9-23-9-31 0-9 9-8 23 0 31l78 78c9 9 23 9 32 0l79-78c9-8 9-22 0-31-5-5-10-7-16-7-6 0-12 2-16 7l-41 40 0-158 158 0-41 40c-9 9-9 21 0 30 9 9 23 9 32 0l78-78c5-4 7-10 7-16z"/>
<glyph glyph-name="music" unicode="&#57383;" d="M495 477c0 7-3 13-9 17-5 5-11 6-18 5l-280-57c-11-2-18-11-18-22l0-255c-16 9-35 14-55 14-25 0-49-8-68-24-20-16-30-36-30-60 0-48 44-84 98-84 26 0 49 7 67 22 19 16 29 37 29 60l0 0 2 218 236 48 0-132c-15 8-33 12-53 12-25 0-49-7-68-22-20-16-31-37-31-61 0-47 45-84 99-84 51 0 94 34 98 79 0 0 0 3 0 9z m-340-410c-10-9-24-11-40-11-29 0-54 16-54 39 0 10 5 19 15 26 10 9 24 12 40 12 29 0 54-18 54-40 0-10-5-18-15-26z m59 284l0 51 236 48 0-50z m182-234c-29 0-54 18-54 40 0 10 5 18 14 26 11 9 25 12 40 12 28 0 55-15 55-36l0-6c-6-21-27-36-55-36z"/>
<glyph glyph-name="network-1" unicode="&#57384;" d="M364 125c-25 0-46-19-55-36l-121 0c-10 0-15 5-15 15l0 124 136 0c9-22 30-36 55-36 33 0 60 27 60 59 0 32-27 59-60 59-25 0-46-15-55-37l-136 0 0 119c0 0-2 1-2 1 22 9 37 30 37 54 0 33-27 59-59 59-33 1-60-26-60-58 0-24 16-46 38-55 0 0 1 0 1 0l0-289c0-34 26-59 60-59l121 0c9-23 30-39 55-39 33 0 60 27 60 59 0 32-28 60-60 60z m0 152c14 0 26-12 26-26 0-14-12-26-26-26-15 0-26 12-26 26 0 14 11 26 26 26z m-216 197c15 0 26-12 26-26 0-14-11-26-26-26-14 0-26 12-26 26 0 14 12 26 26 26z m216-436c-15 0-26 12-26 26 0 14 11 26 26 26 14 0 26-12 26-26 0-14-12-26-26-26z"/>
<glyph glyph-name="network-2" unicode="&#57385;" d="M429 447c0 33-27 59-59 59-33 0-60-26-60-59 0-24 15-45 37-54-1-10-7-72-94-104-40-15-69-34-86-54l0 158c22 9 36 30 36 54 0 33-28 59-60 59-33 0-58-26-58-59 0-24 15-45 37-54l0-274c-22-9-38-30-38-54 0-33 26-59 58-59 33 0 61 26 61 59 0 24-14 45-37 54l0 18c0 6 3 74 102 110 118 43 124 135 124 146 22 9 37 30 37 54z m-287 26c15 0 26-12 26-26 0-13-12-25-26-25-14 0-25 12-25 25 0 14 11 26 25 26z m0-434c-14 0-25 12-25 26 0 13 12 25 25 25 15 0 26-12 26-25 0-14-12-26-26-26z m228 383c-15 0-26 12-26 25 0 14 12 26 26 26 14 0 25-12 25-26 0-13-11-25-25-25z"/>
<glyph glyph-name="network-3" unicode="&#57386;" d="M462 119l0 120c0 34-24 62-58 62l-126 0 0 91c0 0 0 1 0 1 22 9 37 30 37 54 0 33-26 59-59 59-33 0-59-26-59-59 0-24 16-45 37-54 0 0 0-1 0-1l0-91-126 0c-34 0-58-28-58-62l0-120c-22-9-38-30-38-54 0-33 25-59 58-59 32 0 60 26 60 59 0 24-19 45-36 54l0 120c0 10 5 17 13 17l127 0 0-137c-23-9-37-30-37-54 0-33 26-59 59-59 33 0 59 26 59 59 0 24-14 45-37 54l0 137 126 0c9 0 13-8 13-17l0-120c-16-9-35-30-35-54 0-33 28-59 60-59 33 0 58 26 58 59 0 24-16 45-38 54z m-206 354c14 0 26-12 26-26 0-13-12-25-26-25-14 0-26 12-26 25 0 14 12 26 26 26z m-187-434c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z m187 0c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z m187 0c-14 0-26 12-26 26 0 13 12 25 26 25 14 0 26-12 26-25 0-14-12-26-26-26z"/>
<glyph glyph-name="network-4" unicode="&#57387;" d="M215 450c0 33-26 59-59 59-32 0-61-26-61-59 0-25 16-47 33-55l0-278c-17-8-33-30-33-55 0-33 28-59 60-59 33 0 59 26 59 59 0 25-14 47-36 55l0 278c22 8 37 30 37 55z m-58 25c14 0 26-11 26-25 0-14-12-26-26-26-13 0-25 12-25 26 0 14 11 25 25 25z m0-438c-13 0-25 11-25 25 0 14 12 26 25 26 14 0 26-12 26-26 0-14-12-25-26-25z m227 80l0 278c17 8 33 30 33 55 0 33-28 59-61 59-33 0-59-26-59-59 0-25 15-47 37-55l0-278c-22-8-37-30-37-55 0-33 26-59 59-59 32 0 61 26 61 59 0 25-16 47-33 55z m-29 358c13 0 25-11 25-25 0-14-12-26-25-26-14 0-26 12-26 26 0 14 12 25 26 25z m0-438c-14 0-26 11-26 25 0 14 12 26 26 26 13 0 25-12 25-26 0-14-11-25-25-25z"/>
<glyph glyph-name="network-5" unicode="&#57388;" d="M278 119l0 273c0 0 0 1 0 1 21 9 36 30 36 54 0 33-26 59-58 59-32 0-58-26-58-59 0-24 15-45 36-54 0 0 0-1 0-1l0-273c-21-9-36-30-36-54 0-33 26-59 58-59 32 0 58 26 58 59 0 24-15 45-36 54z m-22 354c14 0 25-12 25-26 0-13-11-25-25-25-14 0-25 12-25 25 0 14 11 26 25 26z m0-434c-14 0-25 12-25 26 0 13 11 25 25 25 14 0 25-12 25-25 0-14-11-26-25-26z"/>
<glyph glyph-name="pamphlet" unicode="&#57389;" d="M454 495c-5 4-12 4-18 1l-117-55-118 55c-1 0-1 0-1 1-1 1-2 1-2 1-1 0-2 0-3 0 0 0-1 0-2 0 0 0-2 0-2 0-1 0-2 0-2 0-1 0-2-1-3-1 0 0 0 0-1-1l-128-59c-7-3-12-10-12-17l0-387c0-6 5-12 10-16 3-3 7-3 11-3 3 0 6 0 9 2l118 55 118-55c1-1 2-2 3-2 0 0 0 0 1 0 1 0 2 0 4 0 2 0 2 0 4 0 0 0 0 0 1 0 1 1 2 1 3 2l125 59c7 3 10 10 10 17l0 387c0 6-2 12-8 16z m-153-431l-90 41 0 343 90-41z m-218 343l90 41 0-343-90-41z m340-302l-84-41 0 343 84 41z"/>
<glyph glyph-name="paperclip" unicode="&#57390;" d="M473 308c8-7 8-20 0-28l-221-220c-37-38-79-57-119-57-10 0-20 1-30 4-39 10-69 40-80 81-13 50 5 105 50 150l247 246c40 40 96 27 128-5 44-44 32-96 2-125l-249-248c-32-33-70-31-89-11-19 19-21 55 12 89l168 168c8 8 20 8 28 0 8-8 8-20 0-28l-169-168c-15-15-17-29-12-34 6-6 20-3 34 11l249 249c25 25 14 53-2 70-19 19-50 28-73 4l-246-246c-35-35-50-76-40-112 7-27 27-47 53-53 34-10 74 6 110 42l222 222c7 7 19 7 27-1z"/>
<glyph glyph-name="pencil" unicode="&#57391;" d="M496 478l-18 18c-11 10-24 16-39 16-15 0-28-6-39-16l-352-352c-2-3-3-5-5-8l-41-105c-4-9-2-18 5-24 4-5 10-7 15-7 3 0 6 1 9 2l105 41c3 1 6 3 8 5l352 352c22 21 22 56 0 78z m-414-365l32-31-52-20z m382 318l-307-307-32 32 306 308c3 3 6 3 8 3 2 0 5 0 8-3l18-18c4-4 4-10-1-15z"/>
<glyph glyph-name="phone" unicode="&#57392;" d="M493 442c-1 1-1 1-2 2l-60 52c-8 8-19 12-31 10-11-1-22-5-29-13-1 0-1-1-2-2l-59-74c-16-17-15-42 1-59 1-1 2-2 3-2l30-20c-2-11-17-41-72-96-55-55-86-70-96-72l-20 30c0 1-1 2-2 3-17 16-43 16-59 1l-74-59c0-1-1-1-2-2-16-16-17-44-2-60l52-60c1 0 1 0 1-1 10-10 26-14 43-14 31 0 66 12 84 20 36 14 105 47 174 116 51 52 93 113 117 175 10 27 33 96 5 125z m-154-269c-103-103-219-131-238-122l-51 59 72 57 20-30c0 0 0-1 1-1 7-9 16-13 27-14 11 0 44-2 132 87 22 21 89 88 86 132 0 11-5 20-13 27 0 0-1 1-2 1l-28 20 57 73 58-51c10-19-18-135-121-238z"/>
<glyph glyph-name="photo" unicode="&#57393;" d="M490 451l-468 0c-12 0-22-10-22-22l0-346c0-12 10-22 22-22l468 0c12 0 22 10 22 22l0 346c0 12-10 22-22 22z m-23-45l0-186-37 31c-8 7-20 7-28 0l-60-50-140 121c-8 7-20 7-28 1l-129-104 0 187z m-422-300l0 55 142 116 140-122c8-7 20-7 29 0l60 50 51-44 0-55z m245 225c0 22 18 40 41 40 23 0 41-18 41-40 0-23-18-41-41-41-23 0-41 18-41 41z"/>
<glyph glyph-name="photo-group" unicode="&#57394;" d="M510 371l-53-255c-1-8-8-14-16-14-1 0-2 0-3 1-9 2-15 11-13 19l50 239-320 65-8-36c-2-9-11-14-20-13-8 3-14 11-12 20l11 52c3 9 11 15 20 13l352-71c4-1 8-4 10-8 2-3 3-8 2-12z m-104-304c0-12-10-22-22-22l-362 0c-12 0-22 10-22 22l0 272c0 13 10 23 22 23l362 0c12 0 22-10 22-23z m-361 250l0-137 94 76c7 6 18 6 26-1l105-93 44 38c8 6 16 6 23 0l19-19 0 136z m311-228l0 41-31 29-42-38c-8-6-18-6-25 0l-108 94-105-86 0-40z m-92 138c19 0 34 15 34 33 0 19-16 34-34 34-19 0-34-15-34-34-1-18 15-33 34-33z"/>
<glyph glyph-name="pill" unicode="&#57395;" d="M462 462c-24 26-57 39-92 39-35 0-67-13-92-39l-228-228c-26-25-39-58-39-92 0-35 13-68 39-92 24-25 57-39 92-39 35 0 68 13 92 39l229 228c25 25 38 58 38 93 0 35-13 67-39 91z m-259-381c-17-16-38-25-61-25-23 0-45 9-61 25-16 16-25 38-25 60 0 23 9 45 25 61l93 93c26-17 89-62 122-121z m228 228l-107-106c-35 57-92 100-122 121l107 107c17 16 38 25 61 25 23 0 45-9 61-25 16-16 25-38 25-60 0-23-9-45-25-62z m-111 66c8-8 8-20 0-28l-27-27c-4-4-9-6-14-6-5 0-10 2-14 6-7 8-7 20 0 28l27 27c8 7 20 7 28 0z m45 45c3-4 6-10 6-16 0-6-2-12-6-16-4-3-10-6-16-6-6 0-12 2-16 6-4 5-6 10-6 16 0 6 2 12 6 16 5 4 10 6 16 6 6 0 12-2 16-6z"/>
<glyph glyph-name="pin" unicode="&#57396;" d="M505 365l-140 140c-9 9-23 9-32 0-1-1-42-43-26-98l-64-63c-35 11-124 29-191-37-9-9-9-23 0-32l96-96-141-141c-9-9-9-23 0-32 4-4 10-6 15-6 6 0 11 2 16 7l141 141 96-96c4-4 10-6 16-6 5 0 11 2 15 6 66 67 48 157 37 191l64 64c54-16 96 25 98 26 9 9 9 23 0 32z m-94-12c-8 4-18 2-25-5l-83-83c-6-6-9-16-5-24 0 0 10-25 11-57 2-33-5-60-20-83l-94 94-95 94c60 40 137 10 140 9 8-4 18-2 24 5l84 83c7 7 8 17 4 25-8 17-5 32 0 44l103-103c-11-4-27-7-44 1z m-132-121c1-2 8-18 8-35 0-11-9-19-20-19 0 0 0 0 0 0-11 1-20 10-19 20 0 7-3 16-4 18-5 11 0 22 10 26 10 4 21 0 25-10z"/>
<glyph glyph-name="plus" unicode="&#57397;" d="M403 253c0-14-11-25-25-25l-100 0 0-94c0-14-11-25-25-25-14 0-25 11-25 25l0 94-94 0c-14 0-25 11-25 25 0 14 11 25 25 25l94 0 0 100c0 14 11 25 25 25 14 0 25-11 25-25l0-100 100 0c14 0 25-11 25-25z"/>
<glyph glyph-name="power" unicode="&#57398;" d="M256 248c-12 0-22 10-22 22l0 192c0 12 10 22 22 22 12 0 22-10 22-22l0-192c0-12-9-22-22-22z m211-8c0 82-45 155-117 191-11 5-24 1-30-10-6-11-1-25 10-30 57-29 93-87 93-151 0-93-75-168-167-168-92 0-167 75-167 168 0 65 36 122 93 151 11 6 16 19 10 30-6 11-19 16-30 10-72-36-117-109-117-191 0-117 94-212 211-212 117 0 211 95 211 212z"/>
<glyph glyph-name="preview" unicode="&#57399;" d="M508 268c-4 6-94 138-252 138-158 0-248-132-252-138-5-7-5-17 0-25 4-5 94-137 252-137 158 0 248 132 252 138 5 7 5 17 0 24z m-252-118c-107 0-181 76-206 106 25 31 98 106 206 106 107 0 181-76 206-106-26-31-99-106-206-106z m13 197c-25 4-49-3-69-18-40-30-49-88-18-129 15-20 36-32 61-36 4 0 9-1 12-1 20 0 39 7 56 18 40 31 49 89 18 130-14 20-36 33-60 36z m22-138c-12-10-28-14-43-11-16 2-30 10-39 22-19 27-14 64 12 83 12 10 28 14 43 11 16-2 30-10 39-22 19-27 14-64-12-83z m-2 80c4-4 7-10 7-15 0-6-3-12-7-16-4-4-10-6-16-6-6 0-11 2-15 6-5 5-7 10-7 16 0 6 2 11 7 15 4 5 10 7 15 7 6 0 12-3 16-7z"/>
<glyph glyph-name="print" unicode="&#57400;" d="M490 417l-112 0 0 67c0 10-5 17-13 17l-218 0c-8 0-13-7-13-17l0-67-112 0c-12 0-22-9-22-21l0-256c0-12 10-23 22-23l82 0-13-87c-1-6 0-12 4-17 4-4 9-7 15-7l292 0c6 0 11 3 15 8 4 4 6 10 5 15l-14 88 82 0c12 0 22 11 22 23l0 256c0 12-10 21-22 21z m-323 50l178 0 0-50-178 0z m-35-422l22 139 204 0 22-139z m335 116l-66 0-7 46c-2 9-9 16-19 16l-238 0c-10 0-18-7-20-16l-6-46-66 0 0 212 422 0z m-365 156c0 10 7 17 17 17l52 0c9 0 17-7 17-17 0-9-8-16-17-16l-52 0c-9 0-17 7-17 16z"/>
<glyph glyph-name="pulse" unicode="&#57401;" d="M512 195c0-12-10-22-22-22l-105 0c-9 0-18 5-21 14l-17 47-54-184c-3-10-12-17-21-17 0 0-1 0-1 0-10 1-19 8-21 18l-72 311-43-173c-3-10-11-16-22-16l-91 0c-12 0-22 10-22 22 0 12 10 22 22 22l74 0 61 245c3 10 12 17 22 17 10 0 19-8 22-18l73-318 50 169c3 10 12 16 21 16 10 1 18-5 22-14l34-97 89 0c12 0 22-10 22-22z"/>
<glyph glyph-name="question" unicode="&#57402;" d="M339 370c18-20 26-47 22-76-6-54-45-73-80-73-2 0-3 0-3 0l0-13c0-12-10-22-22-22-12 0-22 10-22 22l0 18c0 18 8 40 47 40 22 0 33 11 36 33 1 8 1 27-12 42-11 11-28 17-51 17-50 0-52-32-52-36 0-12-10-22-22-22-12 0-23 10-23 22 0 22 18 81 97 81 46 0 72-18 85-33z m-85-203c-7 0-14-3-19-8-5-5-8-13-8-20 0-7 2-14 8-19 5-5 12-9 19-9 8 0 15 3 20 9 5 5 8 12 8 19 0 7-3 15-8 20-5 5-12 8-20 8z m258 89c0-141-115-256-256-256-141 0-256 115-256 256 0 141 115 256 256 256 141 0 256-115 256-256z m-45 0c0 117-94 211-211 211-117 0-211-94-211-211 0-117 94-211 211-211 117 0 211 94 211 211z"/>
<glyph glyph-name="reply" unicode="&#57403;" d="M399 269c-41 40-98 63-165 67l0 59c0 9-7 17-15 21-9 3-19 1-25-5l-137-139c-9-9-9-23 0-32l137-139c6-6 16-8 25-5 8 4 15 12 15 21l0 60c44 1 149-3 187-71 4-7 11-11 19-11 2 0 4 0 6 0 10 3 17 11 17 22-1 3-1 88-64 152z m-191-49c-11-1-19-10-19-22l0-27-83 85 83 85 0-27c0-12 9-22 21-22 120 0 171-58 192-107-78 47-188 36-194 35z"/>
<glyph glyph-name="reply-all" unicode="&#57404;" d="M449 269c-41 40-98 63-165 67l0 59c0 9-7 17-15 21-9 3-19 1-25-5l-138-139c-8-9-9-23 0-32l137-139c6-6 17-8 26-5 8 4 15 12 15 21l0 60c44 1 149-3 187-71 4-7 11-11 19-11 1 0 3 0 5 0 10 3 18 11 18 22-1 3 0 88-64 152z m-191-49c-11-1-19-10-19-22l0-27-83 85 83 85 0-27c0-12 9-22 21-22 120 0 171-58 192-107-78 47-188 36-194 35z m-83-88c9-8 9-22 0-31-4-5-10-7-15-7-6 0-12 2-16 7l-137 139c-8 9-8 23 0 31l137 139c9 9 23 9 31 0 9-9 9-23 0-32l-122-122z"/>
<glyph glyph-name="return" unicode="&#57405;" d="M456 332l0-221c0-12-10-22-22-22l-328 0c-12 0-22 10-22 22 0 13 10 23 22 23l306 0 0 178-280 0 31-32c8-8 8-23 0-32-5-4-11-6-16-6-6 0-11 2-16 6l-69 69c-4 4-6 10-6 15 0 6 2 12 6 16l69 68c9 9 23 9 32 0 9-9 8-22 0-31l-31-29 302 0c12 0 22-12 22-24z"/>
<glyph glyph-name="retweet" unicode="&#57406;" d="M505 182l-69-69c-5-4-10-7-16-7-5 0-12 3-15 7l-71 69c-9 9-9 23-1 31 9 9 23 9 31 0l31-32 0 147-195 0c-12 0-22 10-22 23 0 12 10 22 22 22l220 0c12 0 20-10 20-22l0-169 33 32c9 9 24 8 33 0 8-9 8-23-1-32z m-193-32l-195 0 0 148 30-32c5-4 10-7 16-7 5 0 11 3 15 7 9 9 8 23 0 31l-70 70c-9 8-23 8-32 0l-69-69c-9-9-9-23 0-31 9-9 24-9 33 0l33 31 0-169c0-12 7-23 20-23l220 0c12 0 22 10 22 23 0 12-11 21-23 21z"/>
<glyph glyph-name="rocket" unicode="&#57407;" d="M510 490c-1 11-9 20-20 21-141 11-242-57-305-143-34 11-71 7-105-12-33-18-61-49-78-87-4-9-3-19 5-26 6-6 17-8 25-3 36 19 76 15 100-9l98-98c0 0 0-1 0-1 24-23 28-64 9-99-4-9-2-19 4-26 4-4 10-6 16-6 3 0 6 0 9 2 38 18 69 45 88 78 19 34 23 71 11 106 25 18 48 38 67 61 59 67 85 149 76 242z m-435-194c24 23 54 38 85 32-9-15-16-31-23-46-18 10-40 15-62 14z m222-221c0 22-5 44-15 63 16 7 32 14 47 23 5-32-8-62-32-86z m-45 99l-78 79c39 105 137 217 293 214 5-186-148-267-215-293z m144 222c7-6 11-16 11-25 0-10-4-19-11-26-6-7-16-11-25-11-10 0-19 4-26 11-7 7-11 16-11 26 0 9 4 19 11 25 7 7 16 11 26 11 9 0 19-4 25-11z m-313-231c-26-26-27-77-27-87 0-12 10-22 22-22 0 0 1 0 1 0 12 0 61 1 86 26 15 16 19 32 19 43 0 15-6 29-18 41-28 28-63 19-83-1z m51-51c-6-5-18-9-31-11 2 13 6 25 11 30 4 4 7 6 11 6 3 0 6-2 10-5 3-3 5-7 5-9-1-4-4-8-6-11z"/>
<glyph glyph-name="scale" unicode="&#57408;" d="M263 161c0-12-10-22-23-22l-218 0c-12 0-22 10-22 22 0 13 10 23 22 23l218 0c13 0 23-10 23-23z m227 23l-19 0c-12 0-22-10-22-23 0-12 10-22 22-22l19 0c12 0 22 10 22 22 0 13-10 23-22 23z m-410 167c0 37 30 66 66 66 37 0 67-30 67-66 0-36-30-66-67-66-36 0-66 29-66 66z m44 0c0-12 10-22 22-22 13 0 23 10 23 22 0 12-10 22-23 22-12 0-22-10-22-22z m296-190c0-37-30-66-67-66-37 0-67 30-67 66 0 36 30 66 67 66 37 1 67-29 67-66z m-45 0c0 12-10 22-22 22-12 0-22-10-22-22 0-12 10-22 22-22 12 0 22 10 22 22z m-353 167l13 0c12 0 22 10 22 23 0 12-10 22-22 22l-13 0c-12 0-22-10-22-22 0-13 10-23 22-23z m490 23c0 12-10 22-22 22l-227 0c-12 0-22-10-22-22 0-13 10-23 22-23l227 0c12 0 22 10 22 23z"/>
<glyph glyph-name="search" unicode="&#57409;" d="M322 500c-95 0-173-79-173-174 0-41 14-78 37-108l-164-166c-9-10-9-25 0-35 5-5 11-7 18-7 6 0 12 2 17 7l164 166c28-20 63-32 100-32 95 0 173 78 173 174 0 96-77 175-172 175z m0-305c-71 0-128 58-128 130 0 72 57 130 128 130 70 0 128-58 128-130 0-72-58-130-128-130z m86 128c-1-10-10-17-19-17-1 0-2 0-3 0-10 2-18 11-16 22 3 29-29 44-31 44-9 5-13 16-9 26 4 9 16 14 26 10 2-1 60-27 52-85z m-41-43c4-3 7-10 7-15 0-6-2-12-7-16-4-4-10-6-15-6-6 0-12 2-16 6-4 4-7 10-7 16 0 5 3 12 7 15 4 4 10 7 16 7 5 0 11-2 15-7z"/>
<glyph glyph-name="shopping-bag" unicode="&#57410;" d="M444 372c-4 4-9 6-15 6l-56 0 0 10c0 66-54 118-116 118l-2 0c-62 0-116-52-116-118l0-10-56 0c-12 0-22-10-22-23l0-327c0-12 10-22 22-22l346 0c12 0 22 10 22 22l0 328c0 5-2 11-7 16z m-260 16c0 41 33 74 71 74l2 0c38 0 71-33 71-74l0-10-144 0z m222-338l-300 0 0 284 33 0 0-38c0-13 10-23 22-23 13 0 23 10 23 23l0 38 144 0 0-38c0-13 10-23 23-23 12 0 22 10 22 23l0 38 33 0z"/>
<glyph glyph-name="skip" unicode="&#57411;" d="M461 189l-99-99c-5-5-11-8-18-8-6 0-12 3-17 8-10 9-10 25 0 35l56 56-316 0c-7 0-14 3-19 8-5 4-9 11-9 17l0 127c0 14 11 25 25 25 14 0 25-11 25-25l0-102 293 0-55 57c-10 9-10 25 0 35 9 9 25 9 35 0l99-99c10-10 10-26 0-35z m-393 188c7 0 14 3 19 8 5 5 9 12 9 20 0 7-3 14-9 19-5 5-12 8-19 8-7 0-15-3-20-8-5-5-8-12-8-19 0-8 3-15 8-20 5-4 13-8 20-8z"/>
<glyph glyph-name="stack" unicode="&#57412;" d="M451 422c0 59-98 90-195 90-97 0-195-31-195-90 0 0 0-1 0-1 0 0 0-1 0-1l0-333c0-57 98-87 195-87 97 0 195 30 195 87l0 333c0 0 0 1 0 1 0 1 0 1 0 1z m-45-168c0-12-53-43-150-43-97 0-150 30-150 43l0 109c38-20 94-30 150-30 56 0 112 10 150 30z m-150 213c99 0 150-31 150-45 0-13-51-45-150-45-99 0-150 32-150 45 0 14 51 45 150 45z m0-422c-97 0-150 30-150 42l0 109c38-19 94-29 150-29 56 0 112 10 150 29l0-109c0-12-53-42-150-42z m95 228l0 28c0 10 9 19 19 19 11 0 20-9 20-19l0-28c0-10-9-19-20-19-10 0-19 8-19 19z"/>
<glyph glyph-name="star" unicode="&#57413;" d="M393 22c-4 0-8 1-12 4l-125 81-125-81c-8-5-18-5-25 0-7 6-11 15-9 24l40 139-118 100c-7 5-10 15-7 24 3 9 11 14 20 15l141 10 63 139c3 8 11 13 20 13 9 0 17-5 20-13l63-139 141-10c9 0 17-6 20-15 3-9 0-18-7-24l-117-99 39-139c3-9 0-19-8-24-4-3-9-5-14-5z m-137 134c4 0 8-1 12-4l88-57-27 96c-2 9 0 18 7 23l86 73-99 8c-8 1-15 6-19 13l-48 106-48-106c-4-7-11-12-19-13l-99-7 86-73c7-6 9-15 7-23l-27-97 88 57c4 3 8 4 12 4z"/>
<glyph glyph-name="stopwatch" unicode="&#57414;" d="M452 403c5-4 10-6 15-6 7 0 13 3 17 8 9 8 8 23-1 31l-29 26-29 27c-9 8-24 7-32-2-8-9-7-23 2-32l12-11-22-25c-25 19-55 33-87 40-1 7-4 15-9 22-6 8-17 17-39 18 0 0 0 0-1 0-19 0-30-8-36-15-7-8-10-18-11-25-103-22-180-113-180-222 0-125 102-228 227-228 126 0 227 102 227 228 0 59-22 112-58 153l22 25z m-203-348c-100 0-182 81-182 182 0 101 82 183 182 183 101 0 183-82 183-183 0-101-82-182-183-182z m39 182c0-21-18-38-39-38-21 0-38 17-38 38 0 13 6 25 17 31l0 90c0 13 10 23 22 23 13 0 23-10 23-23l0-90c11-6 15-18 15-31z"/>
<glyph glyph-name="store" unicode="&#57415;" d="M223 203c0 11-9 20-20 20l-72 0c-11 0-20-9-20-20l0-72c0-11 9-20 20-20l72 0c11 0 20 9 20 20z m-73-19l34 0 0-34-34 0z m356 187l-50 50 0 58c0 12-10 22-22 22l-356 0c-12 0-22-10-22-22l0-58-50-50c-4-4-6-10-6-16l0-57c0-12 10-20 22-20l468 0c12 0 22 8 22 21l0 56c0 6-2 12-6 16z m-94 85l0-27-312 0 0 27z m55-133l-422 0 0 23 45 44 332 0 45-44z m12-90l0-200c0-12-10-22-23-22l-76 0c-12 0-22 9-22 21l0 118-52 0 0-117c0-12-10-22-23-22l-227 0c-12 0-23 10-23 22l0 200c0 12 10 22 23 22 12 0 22-10 22-22l0-177 184 0 0 119c0 12 9 20 21 20l97 0c12 0 20-8 20-20l0-119 34 0 0 177c0 12 10 22 22 22 12 0 23-10 23-22z"/>
<glyph glyph-name="suitcase" unicode="&#57416;" d="M500 379c-8 8-19 11-29 11l-120 0 0 66c0 13-13 23-25 23l-140 0c-12 0-25-10-25-23l0-66-120 0c-23 0-41-17-41-39l0-276c0-23 18-42 41-42l429 0c23 0 41 19 41 42l0 275c1 11-3 21-11 29z m-133-34l0-267-222 0 0 267z m-161 89l100 0 0-44-100 0z m-161-89l66 0 0-267-66 0z m422-267l-66 0 0 267 66 0z"/>
<glyph glyph-name="swap" unicode="&#57417;" d="M512 203c0-6-2-12-7-15l-103-104c-5-4-10-6-16-6-5 0-11 3-15 7-9 8-9 23 0 32l65 67-218 0c-12 0-22 10-22 22 0 12 10 22 22 22l218 0-65 64c-9 9-9 22 0 30 9 9 22 9 31 0l104-103c4-4 6-10 6-16z m-436 81l218 0c12 0 22 10 22 22 0 12-10 22-22 22l-218 0 65 67c9 9 9 24 0 32-9 9-22 9-31 1l-103-104c-5-3-7-9-7-15 0-6 2-12 7-16l103-103c5-5 10-7 16-7 5 0 11 2 15 7 9 9 9 21 0 30z"/>
<glyph glyph-name="tag" unicode="&#57418;" d="M490 401l-329 0c-5 0-10-3-14-6l-139-122c-5-5-8-11-8-17 0-7 3-12 8-17l139-122c4-3 9-6 14-6l329 0c12 0 22 10 22 23l0 244c0 13-10 23-22 23z m-23-245l-297 0-114 100 114 100 297 0z m-316 126c7 6 17 10 26 10 9 0 19-4 26-10 6-7 10-17 10-26 0-9-4-19-10-26-7-6-17-10-26-10-9 0-19 4-26 10-6 7-10 17-10 26 0 9 4 19 10 26z"/>
<glyph glyph-name="tag-delete" unicode="&#57419;" d="M490 401l-329 0c-5 0-10-3-14-6l-139-122c-5-5-8-11-8-17 0-7 3-12 8-17l139-122c4-3 9-6 14-6l329 0c12 0 22 10 22 23l0 244c0 13-10 23-22 23z m-23-245l-297 0-114 100 114 100 297 0z m-222 70l30 30-30 30c-7 8-7 20 0 27 8 8 20 8 28 0l30-30 30 30c8 8 20 8 27 0 8-7 8-20 0-27l-29-30 30-30c7-8 7-20 0-27-4-4-9-6-14-6-5 0-10 2-14 6l-30 30-30-30c-4-4-9-6-14-6-5 0-10 2-14 6-7 7-7 19 0 27z"/>
<glyph glyph-name="tags" unicode="&#57420;" d="M419 225c0 6-3 12-7 15l-208 205c-4 4-9 6-14 6l-166 11c-7 0-13-2-17-7-5-4-8-10-7-17l11-163c0-6 2-11 6-15l208-204c5-4 10-6 16-6 6 0 11 2 16 6l155 153c4 4 7 10 7 16z m-178-121l-186 183-9 129 133-9 186-182z m-96 262c6-6 10-15 10-23 0-9-4-17-10-24-6-6-15-10-24-10-9 0-17 4-24 10-6 7-10 15-10 24 0 9 3 17 10 23 6 6 15 10 24 10 9 0 18-4 24-10z m367-141c0-5-2-10-6-14l-155-153c-4-3-9-5-14-5-5 0-10 2-14 5-7 8-7 20 0 28l142 138-195 191c-7 8-7 20 0 27 8 8 21 8 28 0l208-203c4-4 6-9 6-14z"/>
<glyph glyph-name="thumbs-down" unicode="&#57421;" d="M179 512c70 0 178-23 205-42 6-4 9-11 9-18l0-218c0-6-3-13-8-17-2-1-41-32-81-54-51-28-86-67-94-92-11-30-25-71-71-71-22 0-39 12-49 33-19 44 1 104 35 151-23 5-50 12-67 17-30 10-51 32-55 59-4 28 10 57 40 78 22 58 59 151 86 166 10 6 28 8 50 8z m169-73c-42 17-172 36-197 26-12-11-45-86-68-149-2-4-5-8-8-11-19-12-28-27-27-39 2-10 11-18 24-23 28-9 97-24 98-24 8-1 14-7 17-15 3-8 1-16-5-21-50-54-59-110-50-132 3-6 5-6 7-6 11 0 16 7 28 41 13 39 60 85 115 115 26 15 53 34 66 44z m88 15l0-222c0-20 16-36 36-36 21 0 37 16 37 36l0 222c0 20-16 36-37 36-20 0-36-16-36-36z"/>
<glyph glyph-name="thumbs-up" unicode="&#57422;" d="M333 0c-69 0-178 23-204 42-7 4-10 11-10 18l0 218c0 6 3 13 8 17 2 1 41 32 82 54 50 28 85 67 94 92 10 30 24 71 70 71 22 0 39-12 49-33 19-44-1-104-35-151 23-5 50-12 67-17 31-10 51-32 55-59 4-28-10-57-39-78-22-59-59-151-87-166-10-6-28-8-50-8z m-169 73c42-17 172-36 197-26 12 11 45 86 68 149 2 4 5 8 8 11 19 12 28 27 27 39-2 10-11 18-24 23-28 9-97 24-98 24-8 1-14 7-17 15-3 8-1 16 5 21 50 54 59 110 50 132-3 6-5 6-7 6-11 0-16-7-28-41-13-39-60-85-115-115-26-15-53-34-66-44z m-88-15l0 222c0 21-16 37-36 37-21 0-37-16-37-37l0-222c0-20 16-36 36-36 20 0 37 16 37 36z"/>
<glyph glyph-name="ticket" unicode="&#57423;" d="M151 277l126-126c5-5 12-7 19-7 6 0 13 2 18 7l47 47c5 5 7 11 7 18 0 7-2 14-7 19l-126 126c-5 5-11 7-19 7-6 0-13-2-18-7l-47-47c-10-10-10-27 0-37z m65 55l116-116-36-36-116 116z m289-129l-302 302c-9 9-23 9-32 0l-42-42c-6-6-8-16-5-24 6-15 2-32-9-43-11-11-28-14-43-9-8 4-17 1-24-5l-42-42c-4-4-6-10-6-16 0-6 2-11 7-15l302-302c4-5 10-7 15-7 7 0 12 2 16 7l42 42c6 6 9 16 5 24-6 15-2 32 9 43 11 11 28 14 43 9 8-4 18-1 24 5l42 42c9 9 9 23 0 31z m-64-33c-28 6-56-2-76-23-21-20-29-49-24-76l-17-18-270 271 17 18c28-6 56 2 76 23 21 20 29 49 24 76l17 18 271-271z"/>
<glyph glyph-name="time-reverse" unicode="&#57424;" d="M512 256c0-120-97-217-216-217-44 0-86 13-122 38-10 7-13 20-6 31 7 10 21 13 31 6 29-20 63-31 97-31 95 0 171 78 171 173 0 95-76 173-171 173-92 0-168-74-171-167l51 52c9 9 23 9 32 0 9-8 9-22 0-31l-85-85c-4-5-10-7-16-7-6 0-11 2-15 7l-85 85c-9 9-9 23 0 32 9 9 22 9 31 0l43-43c7 112 101 201 215 201 119 0 216-97 216-217z m-217 126c-12 0-22-10-22-22l0-104c0-6 2-12 7-16l48-47c4-5 10-7 16-7 5 0 12 2 16 7 8 8 8 22-1 31l-42 41 0 95c0 12-10 22-22 22z"/>
<glyph glyph-name="to-do" unicode="&#57425;" d="M139 413l0 71c0 16 12 28 28 28 16 0 28-12 28-28l0-71c0-16-12-28-28-28-16 0-28 12-28 28z m206-28c16 0 28 12 28 28l0 71c0 16-12 28-28 28-16 0-28-12-28-28l0-71c0-16 12-28 28-28z m-188-96l198 0c12 0 22 10 22 23 0 12-10 22-22 22l-198 0c-12 0-22-10-22-22 0-13 10-23 22-23z m310 184l-46 0c-12 0-22-10-22-22 0-12 10-22 22-22l24 0 0-379-378 0 0 379 24 0c12 0 22 10 22 22 0 12-10 22-22 22l-46 0c-13 0-23-12-23-24l0-421c0-12 10-22 23-22l422 0c13 0 23 10 23 22l0 421c0 12-10 24-23 24z m-229-44l36 0c13 0 23 10 23 22 0 12-10 22-23 22l-36 0c-13 0-23-10-23-22 0-12 10-22 23-22z m-81-240l198 0c12 0 22 10 22 22 0 13-10 23-22 23l-198 0c-12 0-22-10-22-23 0-12 10-22 22-22z"/>
<glyph glyph-name="toggles" unicode="&#57426;" d="M467 240l0-218c0-12-10-22-22-22-12 0-22 10-22 22l0 218c0 13 10 23 22 23 12 0 22-10 22-23z m-22 209c12 0 22 10 22 22l0 19c0 12-10 22-22 22-12 0-22-10-22-22l0-19c0-12 10-22 22-22z m-312-193c0-37-30-67-66-67-36 0-67 30-67 67 0 37 30 67 66 67 36 0 67-30 67-67z m-45 0c0 12-10 22-21 22-12 0-22-10-22-22 0-12 10-22 21-22 12 0 22 10 22 22z m234-110c0-36-30-66-66-66-36 0-66 30-66 66 0 37 30 67 66 67 36 0 66-29 66-67z m-44 0c0 13-10 23-22 23-12 0-22-10-22-23 0-12 10-22 22-22 12 0 22 10 22 22z m234 207c0-37-30-67-66-67-36 0-66 30-66 67 0 37 30 67 66 67 36 0 66-30 66-67z m-45 0c0 12-10 22-21 22-12 0-22-10-22-22 0-12 10-22 22-22 11 0 21 9 21 22z m-211-296c-12 0-22-10-22-22l0-13c0-12 10-22 22-22 12 0 22 10 22 22l0 13c0 12-10 22-22 22z m0 184c12 0 22 10 22 22l0 227c0 12-10 22-22 22-12 0-22-10-22-22l0-227c0-12 10-22 22-22z m-189-81c-12 0-22-10-22-23l0-115c0-12 10-22 22-22 12 0 22 10 22 22l0 115c0 13-10 23-22 23z m0 191c12 0 22 10 22 22l0 117c0 12-10 22-22 22-12 0-22-10-22-22l0-117c0-12 10-22 22-22z"/>
<glyph glyph-name="trash" unicode="&#57427;" d="M436 343l-17-322c0-12-11-21-22-21l-282 0c-11 0-22 9-22 21l-17 322c-1 12 9 23 21 23 12 1 23-9 23-21l16-300 240 0 16 300c1 12 11 22 24 21 11 0 21-11 20-23z m59 74c0-12-10-22-22-22l-434 0c-12 0-22 10-22 22 0 13 10 23 22 23l122 0 0 50c0 10 8 16 18 16l154 0c10 0 18-6 18-16l0-50 122 0c12 0 22-10 22-23z m-295 23l112 0 0 27-112 0z m10-362c11 0 19 10 19 21l-5 240c0 11-9 20-20 20-11 0-20-9-19-20l5-241c0-11 9-20 20-20z m92 0c10 0 19 9 19 19l6 241c0 10-9 20-19 20-11 0-20-9-20-19l-6-240c0-12 9-21 20-21-1 0-1 0 0 0z"/>
<glyph glyph-name="trophy" unicode="&#57428;" d="M301 355l0 50c0 10 8 19 19 19 11 0 19-9 19-19l0-50c0-11-8-19-19-19-11 0-19 8-19 19z m18-76c6 0 12 3 15 7 4 5 7 10 7 16 0 6-2 11-7 15-3 5-10 7-15 7-6 0-12-2-16-7-4-4-6-10-6-15 0-6 2-12 6-16 4-4 10-7 16-7z m147 22c-16-18-37-28-61-32-13-75-66-113-127-120l0-82 48 0c12 0 22-10 22-22 0-13-10-23-22-23l-140 0c-12 0-22 10-22 23 0 12 10 22 22 22l48 0 0 82c-61 7-114 45-126 120-25 4-45 14-62 32-46 47-44 128-43 131 0 10 9 19 19 19l84 0 0 16c0 13 9 23 21 23l258 0c12 0 21-10 21-23l0-16 84 0c10 0 19-9 19-19 0-3 2-85-43-131z m-392 26c9-9 21-15 32-18l0 103-64 0c3-22 9-61 32-85z m288 118l-212 0 0-144c0-81 55-109 106-109 51 0 106 29 106 109z m76-118c22 22 29 57 32 85l-64 0 0-103c11 3 23 9 32 18z"/>
<glyph glyph-name="upload" unicode="&#57429;" d="M495 185l0-152c0-15-12-27-28-27l-422 0c-16 0-28 12-28 27l0 152c0 15 12 28 28 28 15 0 27-13 27-28l0-124 368 0 0 124c0 15 12 28 27 28 16 0 28-13 28-28z m-330 161l63 65 0-241c0-16 12-28 28-28 16 0 28 12 28 28l0 240 63-64c6-6 13-9 20-9 8 0 14 3 20 8 11 11 11 28 0 40l-111 113c-6 6-13 8-20 8-7 0-14-2-20-8l-111-113c-10-12-10-29 1-40 10-11 28-10 39 1z"/>
<glyph glyph-name="user" unicode="&#57430;" d="M256 194c82 0 150 68 150 150 0 84-68 151-150 151-82 0-150-67-150-150 0-83 68-151 150-151z m0 257c58 0 105-48 105-106 0-58-47-106-105-106-58 0-105 48-105 106 0 58 47 106 105 106z m70-271c-8 2-16 0-22-5l-48-41-48 41c-7 5-14 7-22 5-31-10-186-64-186-141 0-12 10-22 22-22l468 0c12 0 22 10 22 22 0 77-155 131-186 141z m-270-119c25 26 84 55 133 72l53-45c8-7 20-7 28 0l53 45c49-17 108-46 133-72z"/>
<glyph glyph-name="user-group" unicode="&#57431;" d="M197 210c65 0 118 53 118 117 0 65-53 118-118 118-65 0-118-53-118-118 1-64 53-117 118-117z m0 191c41 0 73-33 73-73 0-40-32-73-73-73-41 0-73 33-73 73 0 40 33 73 73 73z m53-202c-6 2-12 1-18-2l-35-21-35 21c-6 3-12 4-18 2-34-11-144-50-144-110 0-12 10-22 22-22l350 0c12 0 22 10 22 22 0 60-110 99-144 110z m-188-88c19 15 51 30 85 43l38-23c8-5 16-5 23 0l38 23c34-12 66-28 85-43z m444 17c0-9-7-17-16-17l-75 0c-9 0-17 8-17 17 0 9 8 17 17 17l50 0c-9 11-22 20-39 29-8 4-11 14-6 22 4 8 14 11 22 7 24-13 64-40 64-75z m-93 147c0 24-20 44-44 44-6 0-12-1-17-3-9-4-19 0-22 8-3 9 1 19 9 22 9 4 19 6 30 6 43 0 77-34 77-77 0-43-35-77-77-77-22 0-43 9-58 26-6 6-5 17 2 23 6 6 17 6 23-2 8-9 21-15 34-15 23 1 43 21 43 45z"/>
<glyph glyph-name="user-id" unicode="&#57432;" d="M347 203c43 0 78 35 78 78 0 43-35 78-78 78-43 0-78-35-78-78 0-43 35-78 78-78z m0 123c24 0 44-20 44-45 0-24-20-44-44-44-25 0-45 20-45 44 0 25 20 45 45 45z m-260-9c0 10 8 17 17 17l97 0c9 0 17-7 17-17 0-9-8-16-17-16l-97 0c-9 0-17 7-17 16z m114-78l-97 0c-9 0-17 8-17 17 0 9 8 17 17 17l97 0c9 0 17-8 17-17 0-9-8-17-17-17z m-25-44c0-10-7-17-16-17l-56 0c-9 0-17 7-17 17 0 9 8 16 17 16l56 0c9 0 16-7 16-16z m336 191c0 20-17 37-37 37l-438 0c-20 0-37-17-37-37l0-260c0-20 17-37 37-37l438 0c20 0 37 17 37 37z m-467-8l422 0 0-232c-23 24-65 39-81 45-3 1-7 1-11 0l-28-10-29 10c-3 1-7 0-11-1-18-6-70-23-91-56l-171 0z m220-244c13 11 30 16 48 23l28-10c3-1 8-1 11 0l29 9c17-6 34-12 47-23l-163 0z"/>
<glyph glyph-name="vibrate" unicode="&#57433;" d="M6 371c-9 10-8 26 2 34 90 75 182 49 260 14 82-38 148-34 203 11 10 9 26 7 35-4 9-10 7-26-3-34-39-32-83-49-132-49-38 0-80 10-124 31-77 35-142 48-206-7-11-8-27-7-35 4z m465-81c-54-45-121-48-203-11-78 35-169 62-259-14-11-8-12-24-3-34 9-11 25-12 35-3 65 54 129 42 207 6 44-20 85-30 124-30 48 0 92 16 131 48 11 9 12 25 3 35-8 10-24 12-35 3z m0-140c-54-45-121-48-203-11-78 36-169 62-259-13-11-9-12-25-3-35 9-10 25-11 35-3 65 54 129 42 207 7 44-20 85-31 124-31 48 0 92 16 131 48 11 9 12 25 3 35-8 10-24 12-35 3z"/>
<glyph glyph-name="view-apps" unicode="&#57434;" d="M111 356c-10 0-20 5-28 12-7 7-11 17-11 27 0 10 5 20 11 28 8 7 18 11 28 11 10 0 20-4 28-11 7-7 11-17 11-28 0-10-4-20-11-27-8-7-18-12-28-12z m172 12c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-7 17-12 28-12 10 0 20 5 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-7 17-12 28-12 10 0 20 5 27 12z m-289-139c7 7 11 17 11 27 0 10-4 20-11 28-8 7-18 11-28 11-10 0-20-4-28-11-7-7-11-17-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 28 12z m144 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-4-28-11-7-7-11-17-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m-289-139c7 7 11 17 11 27 0 10-4 20-11 28-8 7-18 11-28 11-10 0-20-5-28-11-7-8-11-18-11-28 0-10 5-20 11-27 8-8 18-12 28-12 10 0 20 4 28 12z m144 0c8 7 12 17 12 27 0 10-4 20-12 28-7 7-17 11-27 11-10 0-21-5-28-11-7-8-11-18-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z m145 0c7 7 12 17 12 27 0 10-5 20-12 28-7 7-17 11-27 11-10 0-21-5-28-11-7-8-11-18-11-28 0-10 4-20 11-27 7-8 17-12 28-12 10 0 20 4 27 12z"/>
<glyph glyph-name="view-list" unicode="&#57435;" d="M142 434c0 16 13 28 28 28l309 0c15 0 27-12 27-28 0-15-12-28-27-28l-309 0c-15 0-28 13-28 28z m337-150l-309 0c-15 0-28-12-28-28 0-16 13-28 28-28l309 0c15 0 27 12 27 28 0 16-12 28-27 28z m0-178l-309 0c-15 0-28-13-28-28 0-16 13-28 28-28l309 0c15 0 27 12 27 28 0 15-12 28-27 28z m-429 187c-22 0-39-18-39-40 0-21 17-39 39-39 22 0 39 18 39 39 0 22-18 40-39 40z m0 180c-22 0-39-18-39-39 0-22 17-40 39-40 22 0 39 18 39 40 0 21-18 39-39 39z m0-355c-22 0-39-18-39-40 0-21 17-39 39-39 22 0 39 18 39 39 0 22-18 40-39 40z"/>
<glyph glyph-name="view-list-large" unicode="&#57436;" d="M482 282l-249 0c-17 0-30 14-30 30l0 75c0 17 13 30 30 30l248 0c17 0 30-13 30-30l0-75c1-16-12-30-29-30z m-235 45l220 0 0 46-220 0z m235-232l-249 0c-17 0-30 13-30 30l0 75c0 16 13 30 30 30l248 0c17 0 30-14 30-30l0-75c1-17-12-30-29-30z m-235 44l220 0 0 46-220 0z m-115 143l-101 0c-17 0-31 14-31 31l0 73c0 17 14 31 31 31l101 0c17 0 31-14 31-31l0-73c0-17-14-31-31-31z m-87 45l74 0 0 46-74 0z m87-232l-101 0c-17 0-31 14-31 31l0 73c0 17 14 31 31 31l101 0c17 0 31-14 31-31l0-73c0-17-14-31-31-31z m-87 44l74 0 0 46-74 0z"/>
<glyph glyph-name="view-thumb" unicode="&#57437;" d="M194 285l-152 0c-17 0-31 14-31 32l0 119c0 18 14 31 31 31l152 0c17 0 31-13 31-31l0-119c0-18-14-32-31-32z m-138 45l125 0 0 93-125 0z m414-45l-152 0c-17 0-31 14-31 32l0 119c0 18 14 31 31 31l152 0c17 0 31-13 31-31l0-119c0-18-14-32-31-32z m-139 45l125 0 0 93-125 0z m-137-285l-152 0c-17 0-31 13-31 31l0 119c0 18 14 32 31 32l152 0c17 0 31-14 31-32l0-119c0-18-14-31-31-31z m-138 44l125 0 0 93-125 0z m414-44l-152 0c-17 0-31 13-31 31l0 119c0 18 14 32 31 32l152 0c17 0 31-14 31-32l0-119c0-18-14-31-31-31z m-139 44l125 0 0 93-125 0z"/>
<glyph glyph-name="volume-full" unicode="&#57438;" d="M210 488c-9 3-17 2-24-5l-110-110-54 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l55 0 109-110c5-5 10-7 16-7 3 0 5 1 8 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-32-389l-77 78c-5 4-9 7-15 7l-41 0 0 144 41 0c6 0 10 3 15 7l77 78z m118 63c-4-5-11-7-17-7-5 0-10 1-15 5-9 9-10 23-1 31 55 63 5 123 0 130-9 9-8 23 1 31 9 8 24 7 32-2 29-32 67-113 0-188z m67-60c-4-5-10-7-16-7-5 0-11 2-15 6-9 8-10 22-2 31 110 123 4 243 0 248-8 10-7 23 2 32 9 8 23 7 31-2 2-2 136-156 0-308z m71-45c-5-5-11-7-17-7-5 0-11 2-15 6-9 8-10 22-2 31 62 70 82 148 57 231-19 63-56 106-57 106-8 9-7 23 2 31 9 9 23 7 32-1 1-2 175-200 0-397z"/>
<glyph glyph-name="volume-low" unicode="&#57439;" d="M299 488c-8 3-17 2-24-5l-109-110-55 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l55 0 110-110c4-5 10-7 16-7 2 0 4 1 7 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-32-389l-77 78c-5 4-9 7-15 7l-41 0 0 144 41 0c6 0 10 3 14 7l78 78z m119 63c-5-5-11-7-17-7-6 0-11 1-15 5-9 9-10 23-2 31 58 64 3 127 0 130-8 8-7 23 2 31 9 8 23 7 31-2 30-32 67-113 1-188z"/>
<glyph glyph-name="volume-medium" unicode="&#57440;" d="M254 488c-9 3-18 2-24-5l-109-110-54 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l54 0 109-110c5-5 10-7 16-7 3 0 5 1 8 2 8 3 13 12 13 21l0 422c0 9-5 18-13 21z m-31-389l-78 78c-4 4-9 7-15 7l-41 0 0 144 41 0c6 0 11 3 15 7l78 78z m117 63c-4-5-11-7-17-7-5 0-10 1-15 5-9 9-10 23-1 31 55 63 5 123 0 130-9 9-8 23 2 31 9 8 23 7 31-2 29-32 66-113 0-188z m67-60c-5-5-11-7-17-7-5 0-10 2-15 6-9 8-10 22-2 31 110 122 5 243 0 248-8 10-7 23 2 31 10 9 23 8 31-1 2-2 137-156 1-308z"/>
<glyph glyph-name="volume-off" unicode="&#57441;" d="M224 488c-8 3-18 1-25-5l-107-110-53 0c-12 0-22-10-22-22l0-190c0-12 10-22 22-22l53 0 107-110c4-5 10-7 16-7 3 0 6 1 9 2 9 3 15 12 15 21l0 422c0 9-6 18-15 21z m-29-389l-77 78c-4 4-11 7-17 7l-40 0 0 144 40 0c6 0 13 3 18 7l76 78z m294 90c9-9 9-23 0-32-5-3-10-6-16-6-6 0-12 3-16 7l-64 66-64-66c-5-4-10-7-16-7-6 0-11 3-16 6-9 9-9 23 0 32l65 67-65 67c-8 9-8 23 1 32 9 8 23 8 31-1l64-66 64 66c9 9 23 9 32 1 9-9 9-23 1-32l-66-67z"/>
<glyph glyph-name="wallet" unicode="&#57442;" d="M402 238c8-8 11-18 11-28 0-10-3-20-11-27-7-8-17-12-27-12-10 0-20 4-28 12-8 7-11 17-11 27 0 10 4 20 11 28 7 7 17 11 28 11 10 0 20-4 27-11z m104 86l0-246c0-25-20-45-45-45l-403 0c-29 0-52 24-52 53l0 326c0 37 30 67 66 67l308 0c31 0 54-25 54-56l0-33 10 0c35 0 62-31 62-66z m-459 88c0-12 10-22 22-22l321 0 0 34c0 6-5 10-10 10l-311 0c-12 0-22-10-22-22z m415-88c0 10-8 21-18 21l-385 0c-5 0-9-7-9-12l0-247c0-4 4-8 8-8l403 0c1 0 1 0 1 0z"/>
<glyph glyph-name="warning" unicode="&#57443;" d="M490 28l-468 0c-8 0-15 4-19 11-4 7-4 15 0 22l234 412c3 7 11 11 19 11 8 0 16-4 19-11l234-412c4-6 4-15 0-22-4-7-11-11-19-11z m-429 44l391 0-196 345z m217 133l0 104c0 12-10 22-22 22-12 0-22-10-22-22l0-104c0-12 10-22 22-22 12 0 22 10 22 22z m-3-92c5 5 9 12 9 19 0 8-3 15-9 20-5 5-12 8-19 8-7 0-14-3-19-8-5-5-9-12-9-20 0-7 3-14 9-19 5-5 12-8 19-8 7 0 14 3 19 8z"/>
<glyph glyph-name="web" unicode="&#57444;" d="M256 512c-141 0-256-115-256-256 0-141 115-256 256-256 141 0 256 115 256 256 0 141-115 256-256 256z m21-466c-2 0-3 0-4-1l0 121c29 0 55 1 79 3-21-65-61-109-75-123z m-42 0c-15 15-54 58-75 123 24-2 50-3 79-3l0-121c-1 0-2 1-4 1z m-190 210c0 14 1 28 3 41 13 2 36 6 69 9-3-16-5-33-5-51 0-17 2-34 4-50-32 4-56 7-68 9-2 14-3 28-3 42z m101 0c0 19 3 37 6 53 26 2 54 4 87 4l0-114c-32 1-61 2-88 4-2 16-5 34-5 53z m130 210c15-15 53-59 75-123-23 2-49 3-78 3l0 121c1 0 2-1 3-1z m-37 1l0-121c-29 0-55-1-78-3 21 64 60 108 74 123 2 0 3 1 4 1z m34-268l0 114c32-1 61-2 87-4 3-16 6-34 6-53 0-19-2-37-5-53-26-2-55-3-88-4z m122 107c32-3 56-7 68-9 3-13 4-27 4-41 0-14-1-28-3-41-13-2-36-6-69-9 3 16 4 33 4 51 0 16-2 34-4 49z m58 27c-16 2-38 5-66 8-14 47-37 86-56 113 56-21 100-66 122-121z m-272 121c-20-27-42-65-56-113-28-2-50-5-66-8 22 55 67 100 122 121z m-122-275c16-2 38-5 66-8 13-47 35-86 55-113-55 22-99 66-121 121z m273-121c20 27 42 65 55 113 28 2 50 5 66 8-22-55-66-99-121-121z"/>
<glyph glyph-name="weight" unicode="&#57445;" d="M452 339c-2 22-21 39-44 39l-41 0 0 10c0 66-48 118-110 118l-2 0c-62 0-110-52-110-118l0-10-41 0c-23 0-41-17-44-39l-32-308c-1-7 1-13 5-18 5-5 11-7 17-7l412 0c6 0 12 2 17 7 4 4 6 11 5 17z m-263 49c0 41 29 74 66 74l2 0c37 0 66-33 66-74l0-10-134 0z m-114-338l29 284 303 0 29-284z"/>
<glyph glyph-name="wifi" unicode="&#57446;" d="M424 286c11-11 12-28 1-39-5-6-13-9-20-9-7 0-14 2-19 7-124 113-257 6-262 2-12-10-30-9-39 3-10 12-9 29 3 39 61 50 208 114 336-3z m-166-155c-14 0-28-5-38-15-10-10-15-24-15-38 0-13 5-27 15-37 10-10 24-15 38-15 14 0 27 5 37 15 10 10 16 24 16 37 0 14-6 28-16 38-10 10-23 15-37 15z m245 231c-132 115-260 109-344 83-89-27-148-80-150-83-11-11-12-28-1-39 10-11 28-12 39-1 1 0 52 47 129 70 102 32 200 7 290-72 5-4 12-7 19-7 8 0 15 4 21 10 9 11 8 29-3 39z m-339-152c-12-10-14-27-4-39 9-12 27-14 39-5 2 2 61 48 111 1 6-5 12-7 19-7 7 0 15 3 20 9 11 11 11 29-1 39-68 62-150 28-184 2z"/>
<glyph glyph-name="wrong" unicode="&#57447;" d="M437 437c-100 99-262 99-362 0-100-100-100-262 0-362 50-51 115-76 180-76 66 0 132 25 181 76 101 100 101 262 1 362z m-331-331c-77 78-82 200-15 283l298-298c-83-67-205-62-283 15z m315 17l-298 298c38 31 86 46 133 46 54 0 109-20 150-61 77-78 82-200 15-283z"/>
<glyph glyph-name="zoom-in" unicode="&#57448;" d="M505 43l-194 191c23 29 37 66 37 105 0 96-78 173-174 173-97 0-174-77-174-173 0-95 78-172 174-172 38 0 73 12 101 32l195-192c5-5 11-7 17-7 7 0 13 2 18 7 9 10 9 26 0 36z m-460 296c0 71 57 128 129 128 72 0 130-57 130-128 0-70-59-128-130-128-71 0-129 58-129 128z m216-2c0-11-9-20-19-20l-47 0 0-44c0-11-9-20-20-20-10 0-19 9-19 20l0 44-50 0c-10 0-19 9-19 20 0 10 9 19 19 19l50 0 0 51c0 10 9 19 19 19 11 0 20-9 20-19l0-51 47 0c11 0 19-9 19-19z"/>
<glyph glyph-name="zoom-out" unicode="&#57449;" d="M505 43l-194 191c23 29 37 66 37 105 0 96-78 173-174 173-97 0-174-77-174-173 0-95 78-172 174-172 38 0 73 12 101 32l195-192c5-5 11-7 17-7 7 0 13 2 18 7 9 10 9 26 0 36z m-460 296c0 71 57 128 129 128 72 0 130-57 130-128 0-70-59-128-130-128-71 0-129 58-129 128z m216-2c0-11-9-20-19-20l-136 0c-10 0-19 9-19 20 0 10 9 19 19 19l136 0c11 0 19-9 19-19z"/>
</font></defs></svg>

Before

Width:  |  Height:  |  Size: 97 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 684 KiB

View File

@ -1,467 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<font id="fontawesome-free" horiz-adv-x="640">
<font-face font-family="Font Awesome 5 Free"
units-per-em="512" ascent="448"
descent="64"
font-weight="400"
font-style="Regular" />
<missing-glyph horiz-adv-x="0" />
<glyph glyph-name="address-book"
unicode="&#xF2B9;"
horiz-adv-x="448" d=" M436 288C442.6 288 448 293.4 448 300V340C448 346.6 442.6 352 436 352H416V400C416 426.5 394.5 448 368 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H436C442.6 32 448 37.4 448 44V84C448 90.6 442.6 96 436 96H416V160H436C442.6 160 448 165.4 448 172V212C448 218.6 442.6 224 436 224H416V288H436zM368 -16H48V400H368V-16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64z" />
<glyph glyph-name="address-card"
unicode="&#xF2BB;"
horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H48V368H528V16zM208 192C243.3 192 272 220.7 272 256S243.3 320 208 320S144 291.3 144 256S172.7 192 208 192zM118.4 64H297.6C310 64 320 72.6 320 83.2V102.4C320 134.2 289.9 160 252.8 160C242 160 234.1 152 208 152C181.1 152 174.6 160 163.2 160C126.1 160 96 134.2 96 102.4V83.2C96 72.6 106 64 118.4 64zM360 128H472C476.4 128 480 131.6 480 136V152C480 156.4 476.4 160 472 160H360C355.6 160 352 156.4 352 152V136C352 131.6 355.6 128 360 128zM360 192H472C476.4 192 480 195.6 480 200V216C480 220.4 476.4 224 472 224H360C355.6 224 352 220.4 352 216V200C352 195.6 355.6 192 360 192zM360 256H472C476.4 256 480 259.6 480 264V280C480 284.4 476.4 288 472 288H360C355.6 288 352 284.4 352 280V264C352 259.6 355.6 256 360 256z" />
<glyph glyph-name="angry"
unicode="&#xF556;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 136C214.4 136 182.8 121.2 161.2 95.4C152.7 85.2 154.1 70.1 164.3 61.6S189.6 54.4 198.1 64.6C222.9 94.3 273.1 94.3 297.9 64.6C306 54.9 321.1 52.7 331.7 61.6C341.9 70.1 343.2 85.2 334.8 95.4C313.2 121.2 281.6 136 248 136zM200 208C210.3 208 219.9 214.7 223 225.1C226.8 237.8 219.6 251.2 206.9 255L126.9 279C114.1 282.9 100.8 275.6 97 262.9C93.2 250.2 100.4 236.8 113.1 233L141.3 224.5C138.2 219.6 136 214.1 136 207.9C136 190.2 150.3 175.9 168 175.9S200 190.3 200 208zM399 262.9C395.2 275.6 381.9 282.8 369.1 279L289.1 255C276.4000000000001 251.2 269.2000000000001 237.8 273 225.1C276.1 214.7 285.7 208 296 208C296 190.3 310.3 176 328 176S360 190.3 360 208C360 214.2 357.8 219.7 354.7 224.6L382.9 233.1C395.6 236.8 402.8 250.2 399 262.9z" />
<glyph glyph-name="arrow-alt-circle-down"
unicode="&#xF358;"
horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM224 308V192H157C146.3 192 141 179.1 148.5 171.5L247.5 72.5C252.2 67.8 259.8 67.8 264.5 72.5L363.5 171.5C371.1 179.1 365.7 192 355 192H288V308C288 314.6 282.6 320 276 320H236C229.4 320 224 314.6 224 308z" />
<glyph glyph-name="arrow-alt-circle-left"
unicode="&#xF359;"
horiz-adv-x="512" d=" M8 192C8 55 119 -56 256 -56S504 55 504 192S393 440 256 440S8 329 8 192zM456 192C456 81.5 366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392S456 302.5 456 192zM384 212V172C384 165.4 378.6 160 372 160H256V93C256 82.3 243.1 77 235.5 84.5L136.5 183.5C131.8 188.2 131.8 195.8 136.5 200.5L235.5 299.5C243.1 307.1 256 301.7 256 291V224H372C378.6 224 384 218.6 384 212z" />
<glyph glyph-name="arrow-alt-circle-right"
unicode="&#xF35A;"
horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM128 172V212C128 218.6 133.4 224 140 224H256V291C256 301.7 268.9 307 276.5 299.5L375.5 200.5C380.2 195.8 380.2 188.2 375.5 183.5L276.5 84.5C268.9 76.9 256 82.3 256 93V160H140C133.4 160 128 165.4 128 172z" />
<glyph glyph-name="arrow-alt-circle-up"
unicode="&#xF35B;"
horiz-adv-x="512" d=" M256 -56C393 -56 504 55 504 192S393 440 256 440S8 329 8 192S119 -56 256 -56zM256 392C366.5 392 456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392zM276 64H236C229.4 64 224 69.4 224 76V192H157C146.3 192 141 204.9 148.5 212.5L247.5 311.5C252.2 316.2 259.8 316.2 264.5 311.5L363.5 212.5C371.1 204.9 365.7 192 355 192H288V76C288 69.4 282.6 64 276 64z" />
<glyph glyph-name="bell-slash"
unicode="&#xF1F6;"
horiz-adv-x="640" d=" M633.99 -23.02L36 444.49C29.1 450.01 19.03 448.9 13.51 442L3.51 429.51C-2.02 422.61 -0.9 412.54 6 407.02L604 -60.49C610.9 -66.01 620.96 -64.89 626.49 -58L636.49 -45.51C642.01 -38.61 640.9 -28.54 633.99 -23.02zM163.53 80C180.24 102.03 198.01 135.8 204.93 190.58L159.46 226.13C156.19 135.4 122.99 105.45 104.62 85.71C98.62 79.2600000000001 95.96 71.55 96.01 64.0000000000001C96.12 47.6000000000001 108.99 32.0000000000001 128.11 32.0000000000001H407.7700000000001L346.3700000000001 80.0000000000001H163.53zM320 352C381.86 352 432 301.86 432 240C432 239.8 431.94 239.62 431.94 239.42C431.96 222.58 433.1 207.65 434.73 193.69L494.26 147.15C485.95 169.28 479.92 198.64 479.92 240C479.92 317.7 425.44 379.9 351.98 395.16V416C351.98 433.67 337.6600000000001 448 320 448S288.02 433.67 288.02 416V395.16C262 389.75 238.57 378.2200000000001 218.89 362.44L257.06 332.6C275 344.82 296.65 352 320 352zM320 -64C355.32 -64 383.9700000000001 -35.35 383.9700000000001 0H256.03C256.03 -35.35 284.68 -64 320 -64z" />
<glyph glyph-name="bell"
unicode="&#xF0F3;"
horiz-adv-x="448" d=" M439.39 85.71C420.07 106.47 383.92 137.7 383.92 240C383.92 317.7 329.44 379.9 255.98 395.16V416C255.98 433.67 241.66 448 224 448S192.02 433.67 192.02 416V395.16C118.56 379.9 64.08 317.7 64.08 240C64.08 137.7 27.93 106.47 8.61 85.71C2.61 79.2600000000001 -0.05 71.55 0 64.0000000000001C0.11 47.6000000000001 12.98 32.0000000000001 32.1 32.0000000000001H415.9000000000001C435.0200000000001 32.0000000000001 447.9000000000001 47.6000000000001 448.0000000000001 64.0000000000001C448.0500000000001 71.5500000000001 445.3900000000001 79.27 439.3900000000001 85.71zM67.53 80C88.75 107.97 111.95 154.33 112.06 239.42C112.06 239.62 112 239.8 112 240C112 301.86 162.14 352 224 352S336 301.86 336 240C336 239.8 335.94 239.62 335.94 239.42C336.05 154.32 359.25 107.96 380.4700000000001 80H67.53zM224 -64C259.32 -64 287.9700000000001 -35.35 287.9700000000001 0H160.03C160.03 -35.35 188.68 -64 224 -64z" />
<glyph glyph-name="bookmark"
unicode="&#xF02E;"
horiz-adv-x="384" d=" M336 448H48C21.49 448 0 426.51 0 400V-64L192 48L384 -64V400C384 426.51 362.51 448 336 448zM336 19.57L192 103.57L48 19.57V394A6 6 0 0 0 54 400H330C333.314 400 336 397.317 336 394.004V19.57z" />
<glyph glyph-name="building"
unicode="&#xF1AD;"
horiz-adv-x="448" d=" M128 300V340C128 346.6 133.4 352 140 352H180C186.6 352 192 346.6 192 340V300C192 293.4 186.6 288 180 288H140C133.4 288 128 293.4 128 300zM268 288H308C314.6 288 320 293.4 320 300V340C320 346.6 314.6 352 308 352H268C261.4 352 256 346.6 256 340V300C256 293.4 261.4 288 268 288zM140 192H180C186.6 192 192 197.4 192 204V244C192 250.6 186.6 256 180 256H140C133.4 256 128 250.6 128 244V204C128 197.4 133.4 192 140 192zM268 192H308C314.6 192 320 197.4 320 204V244C320 250.6 314.6 256 308 256H268C261.4 256 256 250.6 256 244V204C256 197.4 261.4 192 268 192zM192 108V148C192 154.6 186.6 160 180 160H140C133.4 160 128 154.6 128 148V108C128 101.4 133.4 96 140 96H180C186.6 96 192 101.4 192 108zM268 96H308C314.6 96 320 101.4 320 108V148C320 154.6 314.6 160 308 160H268C261.4 160 256 154.6 256 148V108C256 101.4 261.4 96 268 96zM448 -28V-64H0V-28C0 -21.4 5.4 -16 12 -16H31.5V424C31.5 437.3 42.2 448 55.5 448H392.5C405.8 448 416.5 437.3 416.5 424V-16H436C442.6 -16 448 -21.4 448 -28zM79.5 -15H192V52C192 58.6 197.4 64 204 64H244C250.6 64 256 58.6 256 52V-15H368.5V399L80 400L79.5 -15z" />
<glyph glyph-name="calendar-alt"
unicode="&#xF073;"
horiz-adv-x="448" d=" M148 160H108C101.4 160 96 165.4 96 172V212C96 218.6 101.4 224 108 224H148C154.6 224 160 218.6 160 212V172C160 165.4 154.6 160 148 160zM256 172V212C256 218.6 250.6 224 244 224H204C197.4 224 192 218.6 192 212V172C192 165.4 197.4 160 204 160H244C250.6 160 256 165.4 256 172zM352 172V212C352 218.6 346.6 224 340 224H300C293.4 224 288 218.6 288 212V172C288 165.4 293.4 160 300 160H340C346.6 160 352 165.4 352 172zM256 76V116C256 122.6 250.6 128 244 128H204C197.4 128 192 122.6 192 116V76C192 69.4 197.4 64 204 64H244C250.6 64 256 69.4 256 76zM160 76V116C160 122.6 154.6 128 148 128H108C101.4 128 96 122.6 96 116V76C96 69.4 101.4 64 108 64H148C154.6 64 160 69.4 160 76zM352 76V116C352 122.6 346.6 128 340 128H300C293.4 128 288 122.6 288 116V76C288 69.4 293.4 64 300 64H340C346.6 64 352 69.4 352 76zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
<glyph glyph-name="calendar-check"
unicode="&#xF274;"
horiz-adv-x="448" d=" M400 384H352V436C352 442.627 346.627 448 340 448H300C293.373 448 288 442.627 288 436V384H160V436C160 442.627 154.627 448 148 448H108C101.373 448 96 442.627 96 436V384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V336C448 362.51 426.51 384 400 384zM394 -16H54A6 6 0 0 0 48 -10V288H400V-10A6 6 0 0 0 394 -16zM341.151 184.65L198.842 43.481C194.137 38.814 186.539 38.844 181.871 43.549L106.78 119.248C102.113 123.953 102.143 131.551 106.848 136.219L129.567 158.755C134.272 163.422 141.87 163.392 146.537 158.686L190.641 114.225L301.713 224.406C306.418 229.073 314.016 229.043 318.6840000000001 224.3379999999999L341.2200000000001 201.62C345.887 196.9149999999999 345.8560000000001 189.317 341.151 184.65z" />
<glyph glyph-name="calendar-minus"
unicode="&#xF272;"
horiz-adv-x="448" d=" M124 120C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H324C330.6 168 336 162.6 336 156V132C336 125.4 330.6 120 324 120H124zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
<glyph glyph-name="calendar-plus"
unicode="&#xF271;"
horiz-adv-x="448" d=" M336 156V132C336 125.4 330.6 120 324 120H248V44C248 37.4 242.6 32 236 32H212C205.4 32 200 37.4 200 44V120H124C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H200V244C200 250.6 205.4 256 212 256H236C242.6 256 248 250.6 248 244V168H324C330.6 168 336 162.6 336 156zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
<glyph glyph-name="calendar-times"
unicode="&#xF273;"
horiz-adv-x="448" d=" M311.7 73.3L294.7 56.3C290 51.6 282.4 51.6 277.7 56.3L224 110.1L170.3 56.4C165.6 51.7 158 51.7 153.3 56.4L136.3 73.4C131.6 78.1 131.6 85.7000000000001 136.3 90.4L190 144.1L136.3 197.8C131.6 202.5 131.6 210.1 136.3 214.8L153.3 231.8C158 236.5 165.6 236.5 170.3 231.8L224 178.1L277.7 231.8C282.4 236.5 290 236.5 294.7 231.8L311.7 214.8C316.4 210.1 316.4 202.5 311.7 197.8L257.9 144L311.6 90.3C316.4 85.6 316.4 78 311.7 73.3zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
<glyph glyph-name="calendar"
unicode="&#xF133;"
horiz-adv-x="448" d=" M400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V336C448 362.5 426.5 384 400 384zM394 -16H54C50.7 -16 48 -13.3 48 -10V288H400V-10C400 -13.3 397.3 -16 394 -16z" />
<glyph glyph-name="caret-square-down"
unicode="&#xF150;"
horiz-adv-x="448" d=" M125.1 240H322.9C333.6 240 339 227 331.4 219.5L232.5 121.2C227.8 116.5 220.3 116.5 215.6 121.2L116.7 219.5C109 227 114.4 240 125.1 240zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="caret-square-left"
unicode="&#xF191;"
horiz-adv-x="448" d=" M272 290.9V93.1C272 82.4 259 77 251.5 84.6L153.2 183.5C148.5 188.2 148.5 195.7 153.2 200.4L251.5 299.3C259 307 272 301.6 272 290.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="caret-square-right"
unicode="&#xF152;"
horiz-adv-x="448" d=" M176 93.1V290.9C176 301.6 189 307 196.5 299.4L294.8 200.5C299.5 195.8 299.5 188.3 294.8 183.6L196.5 84.7000000000001C189 77.0000000000001 176 82.4 176 93.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="caret-square-up"
unicode="&#xF151;"
horiz-adv-x="448" d=" M322.9 144H125.1C114.4 144 109 157 116.6 164.5L215.5 262.8C220.2 267.5 227.7 267.5 232.4 262.8L331.3 164.5C339 157 333.6 144 322.9000000000001 144zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="chart-bar"
unicode="&#xF080;"
horiz-adv-x="512" d=" M396.8 96H419.2C425.6 96 432 102.4 432 108.8V339.2C432 345.6 425.6 352 419.2 352H396.8C390.4000000000001 352 384 345.6 384 339.2V108.8C384 102.4 390.4 96 396.8 96zM204.8 96H227.2C233.6 96 240.0000000000001 102.4 240.0000000000001 108.8V307.2C240.0000000000001 313.6 233.6 320 227.2 320H204.8C198.4 320 192 313.6 192 307.2V108.8C192 102.4 198.4 95.9999999999999 204.8 95.9999999999999zM300.8 96H323.2C329.6 96 336 102.4 336 108.8V243.2C336 249.6 329.6 256 323.2 256H300.8C294.4000000000001 256 288 249.6 288 243.2V108.8C288 102.4 294.4 95.9999999999999 300.8 95.9999999999999zM496 48H48V368C48 376.8400000000001 40.84 384 32 384H16C7.16 384 0 376.8400000000001 0 368V32C0 14.33 14.33 0 32 0H496C504.84 0 512 7.16 512 16V32C512 40.84 504.84 48 496 48zM108.8 96H131.2C137.6 96 144 102.4 144 108.8V179.2000000000001C144 185.6 137.6 192.0000000000001 131.2 192.0000000000001H108.8C102.4 192.0000000000001 96 185.6000000000001 96 179.2000000000001V108.8000000000001C96 102.4000000000001 102.4 96.0000000000001 108.8 96.0000000000001z" />
<glyph glyph-name="check-circle"
unicode="&#xF058;"
horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M396.204 261.733L373.668 284.451C369.0010000000001 289.156 361.403 289.187 356.698 284.519L215.346 144.303L155.554 204.58C150.887 209.285 143.289 209.316 138.584 204.649L115.865 182.113C111.16 177.446 111.129 169.848 115.797 165.142L206.578 73.6259999999999C211.245 68.9209999999999 218.843 68.8899999999999 223.548 73.5579999999999L396.1370000000001 244.762C400.8410000000001 249.43 400.8710000000001 257.0279999999999 396.2040000000001 261.733z" />
<glyph glyph-name="check-square"
unicode="&#xF14A;"
horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM400 16H48V368H400V16zM364.136 257.724L191.547 86.52C186.842 81.853 179.244 81.883 174.577 86.588L83.796 178.104C79.129 182.809 79.159 190.407 83.865 195.075L106.584 217.611C111.289 222.278 118.887 222.248 123.554 217.542L183.346 157.265L324.698 297.481C329.403 302.148 337.001 302.118 341.668 297.413L364.204 274.695C368.871 269.9890000000001 368.841 262.391 364.136 257.724z" />
<glyph glyph-name="circle"
unicode="&#xF111;"
horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8z" />
<glyph glyph-name="clipboard"
unicode="&#xF328;"
horiz-adv-x="384" d=" M336 384H256C256 419.29 227.29 448 192 448S128 419.29 128 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V336C384 362.51 362.51 384 336 384zM330 -16H54A6 6 0 0 0 48 -10V330A6 6 0 0 0 54 336H96V300C96 293.373 101.373 288 108 288H276C282.627 288 288 293.373 288 300V336H330A6 6 0 0 0 336 330V-10A6 6 0 0 0 330 -16zM192 408C205.255 408 216 397.255 216 384S205.255 360 192 360S168 370.745 168 384S178.745 408 192 408" />
<glyph glyph-name="clock"
unicode="&#xF017;"
horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM317.8 96.4L232.9 158.1C229.8 160.4 228 164 228 167.8V332C228 338.6 233.4 344 240 344H272C278.6 344 284 338.6 284 332V190.3L350.8 141.7C356.2 137.8 357.3 130.3 353.4000000000001 124.9L334.6 99C330.7000000000001 93.7 323.2000000000001 92.5 317.8 96.4z" />
<glyph glyph-name="clone"
unicode="&#xF24D;"
horiz-adv-x="512" d=" M464 448H144C117.49 448 96 426.51 96 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H368C394.51 -64 416 -42.51 416 -16V32H464C490.51 32 512 53.49 512 80V400C512 426.51 490.51 448 464 448zM362 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H96V80C96 53.49 117.49 32 144 32H368V-10A6 6 0 0 0 362 -16zM458 80H150A6 6 0 0 0 144 86V394A6 6 0 0 0 150 400H458A6 6 0 0 0 464 394V86A6 6 0 0 0 458 80z" />
<glyph glyph-name="closed-captioning"
unicode="&#xF20A;"
horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM458 48H54C50.7 48 48 50.7 48 54V330C48 333.3 50.7 336 54 336H458C461.3 336 464 333.3 464 330V54C464 50.7 461.3 48 458 48zM246.9 133.7C248.6 131.3 248.4 128.1 246.4 126C192.8 69.2 73.6 93.9 73.6 193.9C73.6 291.2 195.3 313.4 246.1 264C248.2 262 248.6 260.8 247.1 258.3L229.6 227.8C227.7 224.7 223.4 223.8 220.5 226.1C179.7 258.1 125.9 241.0000000000001 125.9 194.9C125.9 146.9 176.9 124.4 218.1 162.3C220.9 164.8 225.2 164.4 227.3 161.4L246.9 133.7000000000001zM437.3 133.7C439 131.3 438.8 128.1 436.8 126C383.2 69.1 264 93.9 264 193.9C264 291.2 385.7 313.4 436.5 264C438.6 262 439 260.8 437.5 258.3L420 227.8C418.1 224.7 413.8 223.8 410.9 226.1C370.1 258.1 316.3 241.0000000000001 316.3 194.9C316.3 146.9 367.3 124.4 408.5 162.3C411.3 164.8 415.6 164.4 417.7 161.4L437.3 133.7000000000001z" />
<glyph glyph-name="comment-alt"
unicode="&#xF27A;"
horiz-adv-x="512" d=" M448 448H64C28.7 448 0 419.3 0 384V96C0 60.7 28.7 32 64 32H160V-52C160 -59.1 165.8 -64 172 -64C174.4 -64 176.9 -63.3 179.1 -61.6L304 32H448C483.3 32 512 60.7 512 96V384C512 419.3 483.3 448 448 448zM464 96C464 87.2 456.8 80 448 80H288L275.2 70.4L208 20V80H64C55.2 80 48 87.2 48 96V384C48 392.8 55.2 400 64 400H448C456.8 400 464 392.8 464 384V96z" />
<glyph glyph-name="comment-dots"
unicode="&#xF4AD;"
horiz-adv-x="512" d=" M144 240C126.3 240 112 225.7 112 208S126.3 176 144 176S176 190.3 176 208S161.7 240 144 240zM256 240C238.3 240 224 225.7 224 208S238.3 176 256 176S288 190.3 288 208S273.7 240 256 240zM368 240C350.3 240 336 225.7 336 208S350.3 176 368 176S400 190.3 400 208S385.7 240 368 240zM256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" />
<glyph glyph-name="comment"
unicode="&#xF075;"
horiz-adv-x="512" d=" M256 416C114.6 416 0 322.9 0 208C0 160.4 19.9 116.8 52.9 81.7C38 42.3 7 8.9 6.5 8.5C-0.1 1.5 -1.9 -8.7 1.9 -17.5S14.4 -32 24 -32C85.5 -32 134 -6.3 163.1 14.3C192 5.2 223.2 0 256 0C397.4 0 512 93.1 512 208S397.4 416 256 416zM256 48C229.3 48 202.9 52.1 177.6 60.1L154.9 67.3L135.4 53.5C121.1 43.4 101.5 32.1 77.9 24.5C85.2 36.6 92.3 50.2 97.8 64.7L108.4 92.8L87.8 114.6C69.7 133.9 48 165.8 48 208C48 296.2 141.3 368 256 368S464 296.2 464 208S370.7 48 256 48z" />
<glyph glyph-name="comments"
unicode="&#xF086;"
horiz-adv-x="576" d=" M532 61.8C559.5 88.9 576 122.9 576 160C576 240 499.5 306.1 399.8 317.9C368.3 375.5 294.3 416 208 416C93.1 416 0 344.4 0 256C0 219 16.5 185 44 157.8C28.7 127.1 6.7 103.3 6.3 102.9C0 96.2000000000001 -1.8 86.4 1.9 77.9C5.5 69.4 13.9 63.9 23.1 63.9C76.6 63.9 119.8 84.1 148.3 102.7000000000001C157.5 100.6 167 99.0000000000001 176.7 97.8000000000001C208.1 40.4 281.8 0 368 0C388.8 0 408.8 2.4 427.8 6.8C456.3 -11.7 499.4 -32 553 -32C562.2 -32 570.5 -26.5 574.2 -18C577.8000000000001 -9.5 576.1 0.3 569.8000000000001 7C569.4000000000001 7.3 547.3000000000001 31.1 532.0000000000001 61.8zM139.2 154.1L122.1 143C108 133.9 93.6 126.7 79 121.6C81.7 126.3 84.4 131.3 87 136.4L102.5 167.5000000000001L77.7 192C64.2 205.4 48 227.3 48 256C48 316.7 121.3 368 208 368S368 316.7 368 256S294.7 144 208 144C191.5 144 175 145.9 159 149.6L139.2 154.1zM498.3 96L473.6 71.6L489.1 40.5C491.7 35.4 494.4 30.4 497.1 25.7C482.5 30.8 468.1 38 454 47.1L436.9 58.2L417 53.6C401 49.9 384.5 47.9999999999999 368 47.9999999999999C314 47.9999999999999 265.8 68.1 236.7 97.6999999999999C338 108.5 416 175.1 416 256C416 259.4 415.6 262.7 415.3 266C479.7 251.5 528 209.2 528 160C528 131.3 511.8 109.4 498.3 96z" />
<glyph glyph-name="compass"
unicode="&#xF14E;"
horiz-adv-x="496" d=" M347.94 318.14L203.6 252.17A31.938 31.938 0 0 1 187.83 236.4L121.86 92.06C114.25 75.41 131.4 58.2499999999999 148.06 65.86L292.4 131.8299999999999A31.938 31.938 0 0 1 308.17 147.5999999999999L374.14 291.94C381.75 308.5999999999999 364.6 325.7499999999999 347.94 318.1399999999999zM270.58 169.42C258.11 156.9499999999999 237.89 156.9499999999999 225.42 169.42C212.95 181.89 212.95 202.11 225.42 214.58C237.89 227.05 258.11 227.05 270.58 214.58C283.05 202.11 283.05 181.89 270.58 169.42zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" />
<glyph glyph-name="copy"
unicode="&#xF0C5;"
horiz-adv-x="448" d=" M433.941 382.059L382.059 433.941A48 48 0 0 1 348.118 448H176C149.49 448 128 426.51 128 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H272C298.51 -64 320 -42.51 320 -16V32H400C426.51 32 448 53.49 448 80V348.118A48 48 0 0 1 433.941 382.059zM266 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H128V80C128 53.49 149.49 32 176 32H272V-10A6 6 0 0 0 266 -16zM394 80H182A6 6 0 0 0 176 86V394A6 6 0 0 0 182 400H288V312C288 298.745 298.745 288 312 288H400V86A6 6 0 0 0 394 80zM400 336H336V400H345.632C347.223 400 348.749 399.368 349.875 398.243L398.243 349.875A6 6 0 0 0 400 345.632V336z" />
<glyph glyph-name="copyright"
unicode="&#xF1F9;"
horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM363.351 93.064C353.737 83.352 317.8210000000001 51.668 259.286 51.668C176.856 51.668 118.802 113.093 118.802 193.235C118.802 272.387 179.077 332.636 258.564 332.636C314.095 332.636 347.302 306.016 356.157 297.857A11.965 11.965 0 0 0 358.093 282.535L339.938 254.422C336.097 248.472 327.972 247.14 322.439 251.501C313.844 258.277 290.625 274.039 260.731 274.039C212.428 274.039 182.815 238.709 182.815 193.957C182.815 152.368 209.703 110.265 261.092 110.265C293.749 110.265 317.935 129.304 326.818 137.49C332.088 142.347 340.414 141.529 344.638 135.752L364.503 108.582A11.947000000000001 11.947000000000001 0 0 0 363.351 93.064z" />
<glyph glyph-name="credit-card"
unicode="&#xF09D;"
horiz-adv-x="576" d=" M527.9 416H48.1C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48.1 -32H527.9C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 527.9 416zM54.1 368H521.9C525.1999999999999 368 527.9 365.3 527.9 362V320H48.1V362C48.1 365.3 50.8 368 54.1 368zM521.9 16H54.1C50.8 16 48.1 18.7 48.1 22V192H527.9V22C527.9 18.7 525.1999999999999 16 521.9 16zM192 116V76C192 69.4 186.6 64 180 64H108C101.4 64 96 69.4 96 76V116C96 122.6 101.4 128 108 128H180C186.6 128 192 122.6 192 116zM384 116V76C384 69.4 378.6 64 372 64H236C229.4 64 224 69.4 224 76V116C224 122.6 229.4 128 236 128H372C378.6 128 384 122.6 384 116z" />
<glyph glyph-name="dizzy"
unicode="&#xF567;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM214.2 209.9C222 217.7 222 230.4 214.2 238.2L196.3 256L214.2 273.9C222 281.7000000000001 222 294.4 214.2 302.2000000000001C206.4 310 193.7 310 185.9 302.2000000000001L168 284.3L150.2 302.1C142.4 309.9000000000001 129.7 309.9000000000001 121.9 302.1C114.1 294.3 114.1 281.6 121.9 273.8L139.8 255.9L121.9 238C114.1 230.2 114.1 217.5 121.9 209.7C129.7 201.9 142.4 201.9 150.2 209.7L168 227.5L185.8 209.7C193.7 202 206.3 202 214.2 209.9zM374.2 302.1C366.4 309.9000000000001 353.7 309.9000000000001 345.9 302.1L328 284.3L310.2 302.1C302.4 309.9000000000001 289.7 309.9000000000001 281.9 302.1C274.1 294.3 274.1 281.6 281.9 273.8L299.8 255.9L281.9 238C274.1 230.2 274.1 217.5 281.9 209.7C289.7 201.9 302.4 201.9 310.2 209.7L328 227.5L345.8 209.7C353.6 201.9 366.3 201.9 374.1 209.7C381.9000000000001 217.5 381.9000000000001 230.2 374.1 238L356.3 256L374.2 273.9C381.9 281.7000000000001 381.9 294.3 374.2 302.1zM248 176C212.7 176 184 147.3 184 112S212.7 48 248 48S312 76.7 312 112S283.3 176 248 176z" />
<glyph glyph-name="dot-circle"
unicode="&#xF192;"
horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 272C211.817 272 176 236.183 176 192S211.817 112 256 112S336 147.817 336 192S300.183 272 256 272z" />
<glyph glyph-name="edit"
unicode="&#xF044;"
horiz-adv-x="576" d=" M402.3 103.1L434.3 135.1C439.3 140.1 448 136.6 448 129.4V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H321.5C328.6 384 332.2 375.4 327.2 370.3L295.2 338.3C293.7 336.8 291.7 336 289.5 336H48V-16H400V97.5C400 99.6 400.8 101.6 402.3 103.1zM558.9 304.9000000000001L296.3 42.3L205.9 32.3C179.7 29.4 157.4 51.5 160.3 77.9L170.3 168.3000000000001L432.9 430.9C455.8 453.8 492.8 453.8 515.6 430.9L558.8000000000001 387.7C581.7 364.8 581.7 327.7 558.9000000000001 304.9zM460.1 274L402 332.1L216.2 146.2L208.9 80.9L274.2 88.2L460.1 274zM524.9 353.7L481.7 396.9C477.6 401 470.9 401 466.9 396.9L436 366L494.1 307.9L525 338.8C529 343 529 349.6 524.9 353.7000000000001z" />
<glyph glyph-name="envelope-open"
unicode="&#xF2B6;"
horiz-adv-x="512" d=" M494.586 283.4840000000001C489.889 287.367 382.863 373.4340000000001 359.3350000000001 392.141C337.231 409.809 299.437 448 256 448C212.795 448 175.364 410.283 152.665 392.141C128.202 372.6910000000001 21.595 286.9460000000001 17.515 283.592A48.004000000000005 48.004000000000005 0 0 1 0 246.515V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V246.491A48 48 0 0 1 494.586 283.4840000000001zM464 -10A6 6 0 0 0 458 -16H54A6 6 0 0 0 48 -10V243.653C48 245.466 48.816 247.179 50.226 248.318C66.096 261.132 159.019 335.872 182.59 354.611C200.755 369.12 232.398 400 256 400C279.693 400 311.857 368.631 329.41 354.611C352.983 335.87 445.913 261.118 461.776 248.295A5.99 5.99 0 0 0 463.9999999999999 243.632V-10zM432.009 177.704C436.2580000000001 172.545 435.474 164.909 430.264 160.723C401.289 137.44 370.99 113.126 359.3350000000001 103.86C336.636 85.717 299.205 48 256 48C212.548 48 174.713 86.237 152.665 103.86C141.386 112.827 110.921 137.273 81.738 160.725C76.528 164.912 75.745 172.547 79.993 177.706L95.251 196.234C99.429 201.307 106.908 202.077 112.03 197.96C140.648 174.959 170.596 150.925 182.59 141.389C200.143 127.369 232.307 96 256 96C279.602 96 311.246 126.88 329.41 141.389C341.404 150.924 371.354 174.959 399.973 197.957C405.095 202.073 412.574 201.303 416.751 196.23L432.009 177.704z" />
<glyph glyph-name="envelope"
unicode="&#xF0E0;"
horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM464 336V295.195C441.578 276.936 405.832 248.544 329.413 188.705C312.572 175.458 279.212 143.633 256 144.004C232.792 143.629 199.421 175.463 182.587 188.705C106.18 248.535 70.425 276.933 48 295.195V336H464zM48 48V233.602C70.914 215.351 103.409 189.74 152.938 150.956C174.795 133.751 213.072 95.77 256 96.001C298.717 95.77 336.509 133.2000000000001 359.053 150.948C408.581 189.7310000000001 441.085 215.3490000000001 464 233.6010000000001V48H48z" />
<glyph glyph-name="eye-slash"
unicode="&#xF070;"
horiz-adv-x="576" d=" M272.702 88.861C192.219 97.872 136.49 175.747 155.772 255.903L272.702 88.861zM288 56C185.444 56 95.908 110.701 48 192C69.755 228.917 100.1 260.342 136.344 283.658L108.803 323.0010000000001C67.001 295.766 31.921 259.259 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.004 71.994 168.14 8 288 8A332.89 332.89 0 0 1 327.648 10.367L295.627 56.111A284.16 284.16 0 0 0 288 56zM569.354 167.631C536.1220000000001 111.237 485.933 65.889 425.8000000000001 38.139L473.9160000000001 -30.601C477.717 -36.03 476.3960000000001 -43.513 470.967 -47.313L450.23 -61.83C444.8010000000001 -65.631 437.3180000000001 -64.3099999999999 433.5180000000001 -58.881L102.084 414.601C98.283 420.03 99.604 427.513 105.033 431.313L125.77 445.83C131.199 449.631 138.682 448.31 142.482 442.881L198.008 363.556C226.612 371.657 256.808 376 288 376C407.86 376 512.996 312.006 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM528 192C483.843 266.933 404.323 319.27 311.838 327.007C302.042 316.9220000000001 296 303.17 296 288C296 257.072 321.072 232 352 232S408 257.072 408 288L407.999 288.0420000000001C438.6310000000001 230.765 424.738 157.7820000000001 371.0710000000001 116.323L397.766 78.188C452.626 101.449 498.308 141.614 528 192z" />
<glyph glyph-name="eye"
unicode="&#xF06E;"
horiz-adv-x="576" d=" M569.354 216.369C512.97 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C185.444 56 95.909 110.701 48 192C92.157 266.933 171.677 319.27 264.1620000000001 327.007C273.9580000000001 316.9220000000001 280 303.17 280 288C280 257.072 254.928 232 224 232S168 257.072 168 288L168.001 288.0420000000001C157.794 268.957 152 247.156 152 224C152 148.889 212.889 88 288 88S424 148.889 424 224C424 255.031 413.6 283.629 396.105 306.515C451.704 283.362 498.009 242.894 528 192C480.092 110.701 390.5560000000001 56 288 56z" />
<glyph glyph-name="file-alt"
unicode="&#xF15C;"
horiz-adv-x="384" d=" M288 200V172C288 165.4 282.6 160 276 160H108C101.4 160 96 165.4 96 172V200C96 206.6 101.4 212 108 212H276C282.6 212 288 206.6 288 200zM276 128H108C101.4 128 96 122.6 96 116V88C96 81.4 101.4 76 108 76H276C282.6 76 288 81.4 288 88V116C288 122.6 282.6 128 276 128zM384 316.1V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V400C0 426.5 21.5 448 48 448H252.1C264.8 448 277 442.9 286 433.9L369.9 350C378.9 341.1 384 328.8 384 316.1zM256 396.1V320H332.1L256 396.1zM336 -16V272H232C218.7 272 208 282.7 208 296V400H48V-16H336z" />
<glyph glyph-name="file-archive"
unicode="&#xF1C6;"
horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM256 396.118L332.118 320H256V396.118zM336 -16H48V400H127.714V384H159.714V400H208V296C208 282.745 218.745 272 232 272H336V-16zM192.27 352H160.27V384H192.27V352zM160.27 352V320H128.27V352H160.27zM160.27 288V256H128.27V288H160.27zM192.27 288H160.27V320H192.27V288zM194.179 182.322A12 12 0 0 1 182.406 192H160.27V224H128.27V192L108.58 94.894C101.989 62.389 126.834 32 160 32C193.052 32 217.871 62.192 211.476 94.62L194.179 182.322zM160.27 57.927C142.352 57.927 127.826 70.032 127.826 84.963C127.826 99.895 142.351 111.999 160.27 111.999S192.714 99.894 192.714 84.963C192.714 70.032 178.188 57.927 160.27 57.927zM192.27 224H160.27V256H192.27V224z" />
<glyph glyph-name="file-audio"
unicode="&#xF1C7;"
horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM192 60.024C192 49.333 179.074 43.979 171.515 51.539L136 87.514H108C101.373 87.514 96 92.887 96 99.514V155.514C96 162.141 101.373 167.514 108 167.514H136L171.515 204.461C179.075 212.021 192 206.667 192 195.976V60.024zM233.201 107.154C242.252 116.451 242.261 131.287 233.202 140.593C211.053 163.345 245.437 196.839 267.597 174.074C294.795 146.134 294.809 101.63 267.598 73.673C245.805 51.287 210.651 83.988 233.201 107.154z" />
<glyph glyph-name="file-code"
unicode="&#xF1C9;"
horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM149.677 99.115L116.854 128L149.676 156.885A8.793 8.793 0 0 1 150.281 169.509L132.878 188.073C129.494 191.686 123.914 191.735 120.44 188.4740000000001L62.78 134.42C59.077 130.946 59.076 125.053 62.781 121.5800000000001L120.44 67.525A8.738 8.738 0 0 1 126.452 65.1440000000001A8.746 8.746 0 0 1 132.879 67.9260000000001L150.282 86.489A8.795 8.795 0 0 1 149.677 99.115zM233.961 226.965L209.56 234.049A8.796 8.796 0 0 1 198.655 228.051L144.04 39.939C142.687 35.279 145.378 30.387 150.038 29.0340000000001L174.441 21.95C179.121 20.595 183.998 23.304 185.346 27.948L239.958 216.06C241.312 220.72 238.621 225.612 233.961 226.9650000000001zM321.219 134.42L263.561 188.475C260.035 191.7820000000001 254.462 191.6400000000001 251.122 188.074L233.719 169.511A8.795 8.795 0 0 1 234.324 156.886L267.146 128L234.324 99.115A8.793 8.793 0 0 1 233.719 86.491L251.122 67.927A8.797 8.797 0 0 1 263.5610000000001 67.526H263.5600000000001L321.2200000000001 121.581C324.923 125.054 324.923 130.947 321.2190000000001 134.42z" />
<glyph glyph-name="file-excel"
unicode="&#xF1C3;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM260 224H231.2C226.8 224 222.8 221.6 220.7 217.7C202.7 184.6 198.5 175.3 192.1 160C178.2 189.1 185.2 177.3 163.5 217.7C161.4 221.6 157.3 224 152.9 224H124C114.7 224 109 214 113.6 206L159.9 128L113.6 50C108.9 42 114.7 32 124 32H152.9C157.3 32 161.3 34.4 163.4 38.3C185.1 78.3 186.4 83.3 192 96C206.9 65.8 197.9 80.1 220.6 38.3C222.7 34.4 226.8 32 231.2 32H260C269.3 32 275 42 270.4 50L224 128C224.7 129.1 254.3 178.5 270.3 206C275 214 269.2 224 260 224z" />
<glyph glyph-name="file-image"
unicode="&#xF1C5;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM80 32H304V160L280.5 183.5C275.8 188.2 268.2 188.2 263.5 183.5L176 96L136.5 135.5C131.8 140.2 124.2 140.2 119.5 135.5L80 96V32zM128 272C101.5 272 80 250.5 80 224S101.5 176 128 176S176 197.5 176 224S154.5 272 128 272z" />
<glyph glyph-name="file-pdf"
unicode="&#xF1C1;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM298.2 127.7C286 139.7 251.2 136.4 233.8 134.2C216.6 144.7 205.1 159.2 197 180.5C200.9 196.6 207.1 221.1 202.4 236.5C198.2 262.7 164.6 260.1 159.8 242.4C155.4 226.3 159.4 203.9 166.8 175.3C156.8 151.4 141.9 119.3 131.4 100.9C111.4 90.6 84.4 74.7 80.4 54.7C77.1 38.9 106.4 -0.5 156.5 85.9C178.9 93.3 203.3 102.4 224.9 106C243.8 95.8 265.9 89 280.7 89C306.2 89 308.7 117.2 298.2 127.7zM100.1 49.9C105.2 63.6 124.6 79.4 130.5 84.9C111.5 54.6 100.1 49.2 100.1 49.9zM181.7 240.5C189.1 240.5 188.4 208.4 183.5 199.7C179.1 213.6 179.2 240.5 181.7 240.5zM157.3 103.9C167 120.8 175.3 140.9 182 158.6C190.3 143.5 200.9 131.4 212.1 123.1C191.3 118.8 173.2 109.9999999999999 157.3 103.9zM288.9 108.9S283.9 102.9 251.6 116.7C286.7 119.3 292.5 111.3 288.9 108.9z" />
<glyph glyph-name="file-powerpoint"
unicode="&#xF1C4;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM120 44V212C120 218.6 125.4 224 132 224H201.2C237.9 224 264 197 264 157.7C264 83.4 195.3 91.2 168.5 91.2V44C168.5 37.4 163.1 32 156.5 32H132C125.4 32 120 37.4 120 44zM168.5 131.4H191.5C199.4 131.4 205.4 133.8 209.6 138.6C218.1 148.4 218 167.1 209.7 176.4C205.6 181 199.8 183.4 192.3 183.4H168.4V131.4z" />
<glyph glyph-name="file-video"
unicode="&#xF1C8;"
horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM276.687 195.303L224 142.626V180C224 191.046 215.046 200 204 200H100C88.954 200 80 191.046 80 180V76C80 64.954 88.954 56 100 56H204C215.046 56 224 64.954 224 76V113.374L276.687 60.7000000000001C286.704 50.682 304 57.72 304 72.014V183.989C304 198.3 286.691 205.308 276.687 195.303z" />
<glyph glyph-name="file-word"
unicode="&#xF1C2;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM268.1 192C262.4000000000001 192 257.5 188 256.4000000000001 182.5C235.8000000000001 84.8 236.0000000000001 87.1 235.4000000000001 79C235.2000000000001 80.2 235.0000000000001 81.6 234.7000000000001 83.3C233.9000000000001 88.4 235.0000000000001 83.1 211.1000000000001 182.8C209.8000000000001 188.2 205.0000000000001 192 199.4000000000001 192H186.1000000000001C180.6000000000001 192 175.8000000000001 188.2 174.4000000000001 182.9C150.0000000000001 83.9 150.4000000000001 86.7 149.6000000000001 79.2C149.5000000000001 80.3 149.4000000000001 81.7 149.1000000000001 83.4C148.4000000000001 88.6 135.0000000000001 156.7 130.0000000000001 182.4C128.9000000000001 188 124.0000000000001 192.1 118.2000000000001 192.1H101.4000000000001C93.6000000000001 192.1 87.9000000000001 184.8 89.7000000000001 177.3C97.7000000000001 144.6999999999999 116.4000000000001 67.8 122.9000000000001 41.3C124.2000000000001 35.9 129.0000000000001 32.1999999999999 134.6000000000001 32.1999999999999H159.8000000000001C165.3000000000001 32.1999999999999 170.1000000000001 35.8999999999999 171.4 41.3L189.3000000000001 112.6999999999999C190.8000000000001 118.8999999999999 191.8000000000001 124.6999999999999 192.3000000000001 130L195.2000000000001 112.6999999999999C195.3000000000001 112.3 207.8000000000001 62.1999999999999 213.1000000000001 41.3C214.4000000000001 35.9999999999999 219.2000000000001 32.1999999999999 224.7000000000001 32.1999999999999H249.4000000000001C254.9000000000001 32.1999999999999 259.7000000000001 35.8999999999999 261.0000000000001 41.3C281.8000000000001 123.1999999999999 291.2000000000001 160.3 295.5000000000001 177.3C297.4000000000001 184.9 291.7000000000001 192.2 283.9000000000001 192.2H268.1z" />
<glyph glyph-name="file"
unicode="&#xF15B;"
horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48z" />
<glyph glyph-name="flag"
unicode="&#xF024;"
horiz-adv-x="512" d=" M336.174 368C287.042 368 242.869 400 174.261 400C142.96 400 115.958 393.5180000000001 93.54 384.832A48.04 48.04 0 0 1 95.682 405.559C93.067 428.425 74.167 446.406 51.201 447.896C23.242 449.71 0 427.569 0 400C0 382.236 9.657 366.738 24 358.438V-48C24 -56.837 31.163 -64 40 -64H56C64.837 -64 72 -56.837 72 -48V35.443C109.869 52.72 143.259 64 199.826 64C248.958 64 293.131 32 361.7390000000001 32C420.218 32 463.711 54.617 490.287 71.981C503.846 80.839 512 95.949 512 112.145V352.063C512 386.522 476.736 409.831 445.096 396.18C409.193 380.6910000000001 371.641 368 336.174 368zM464 112C442.217 96.588 403.176 80 361.7390000000001 80C301.7940000000001 80 259.737 112 199.826 112C156.465 112 103.447 102.597 72 88V320C93.784 335.4120000000001 132.824 352 174.261 352C234.206 352 276.2630000000001 320 336.1740000000001 320C379.4450000000001 320 432.4940000000001 337.366 464 352V112z" />
<glyph glyph-name="flushed"
unicode="&#xF579;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM344 304C299.8 304 264 268.2 264 224S299.8 144 344 144S424 179.8 424 224S388.2 304 344 304zM344 176C317.5 176 296 197.5 296 224S317.5 272 344 272S392 250.5 392 224S370.5 176 344 176zM344 248C330.7 248 320 237.3 320 224S330.7 200 344 200S368 210.7 368 224S357.3 248 344 248zM232 224C232 268.2 196.2 304 152 304S72 268.2 72 224S107.8 144 152 144S232 179.8 232 224zM152 176C125.5 176 104 197.5 104 224S125.5 272 152 272S200 250.5 200 224S178.5 176 152 176zM152 248C138.7 248 128 237.3 128 224S138.7 200 152 200S176 210.7 176 224S165.3 248 152 248zM312 104H184C170.8 104 160 93.2 160 80S170.8 56 184 56H312C325.2 56 336 66.8 336 80S325.2 104 312 104z" />
<glyph glyph-name="folder-open"
unicode="&#xF07C;"
horiz-adv-x="576" d=" M527.943 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H448A48.001 48.001 0 0 1 488.704 22.56L568.646 150.56C588.5939999999999 182.477 565.608 224 527.943 224zM54 336H188.118L252.118 272H426A6 6 0 0 0 432 266V224H152A48 48 0 0 1 110.902 200.798L48 96.551V330.007A5.993 5.993 0 0 0 54 336zM448 48H72L149.234 176H528L448 48z" />
<glyph glyph-name="folder"
unicode="&#xF07B;"
horiz-adv-x="512" d=" M464 320H272L217.37 374.63C211.37 380.63 203.23 384 194.74 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM464 48H48V336H188.12L242.75 281.37C248.75 275.37 256.89 272 265.38 272H464V48z" />
<glyph glyph-name="frown-open"
unicode="&#xF57A;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 160C212.4 160 159.2 138.7 152.2 98.8C150.2 87 161.2 77.3 172.7 80.7C203.9 90.3 232.1 96 248 96S292.1 90.3 323.3 80.7C334.7 77.2 345.8 87 343.8 98.8C336.8 138.7 283.6 160 248 160z" />
<glyph glyph-name="frown"
unicode="&#xF119;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM248 144C207.8 144 170 126.3 144.2 95.4C135.7 85.2 137.1 70.1 147.3 61.6C157.5 53.2 172.6 54.4999999999999 181.1 64.7C197.7 84.6 222.1 96.1 248 96.1S298.3 84.7 314.9 64.7C323 55 338 52.8 348.7 61.6C358.9 70.1 360.2 85.2 351.8 95.4C326 126.3 288.2 144 248 144z" />
<glyph glyph-name="futbol"
unicode="&#xF1E3;"
horiz-adv-x="496" d=" M483.8 268.6C449.8 373.4 352.6 440 248.1 440C222.7 440 196.9 436.1 171.4 427.8C41.2 385.5 -30.1 245.6 12.2 115.4C46.2 10.6 143.4 -56 247.9 -56C273.3 -56 299.1 -52.1 324.6 -43.8C454.8 -1.5 526.1 138.4 483.8 268.6zM409.3 74.9L357.1 68.5L313.4000000000001 129.4L337.8 204.6L408.9 226.7L447.8 190.3C447.6 159.6 440.4 129.1999999999999 426.1 101.1C421.4 91.8 415.4 83.3 409.3 74.9zM409.3 310.3L398.9000000000001 257.2L328.2000000000001 235.2L264.0000000000001 281.7V355.5L311.4000000000001 381.7C350.6 368.7 384.8000000000001 343.7 409.3000000000001 310.3zM184.9 381.6L232 355.5V281.7L167.8 235.2L97.2 257.2L87.1 309.7C111.4 343.1 145 368.3 184.9 381.6zM139 68.5L85.9 75C71.5 95.1 48.6 134.6 48.1 190.3L87.1 226.7L158.2 204.5L182.5 130.2000000000001L139 68.5000000000001zM187.2 1.5L164.8 49.6L208.4 111.3H287L331.3 49.6L308.9000000000001 1.5C302.7000000000001 -0.3 251.3000000000001 -18.9 187.2000000000001 1.5z" />
<glyph glyph-name="gem"
unicode="&#xF3A5;"
horiz-adv-x="576" d=" M464 448H112C108 448 104.2 446 102 442.6L2 295.4C-0.9 291 -0.6 285.2000000000001 2.7 281.2000000000001L278.7 -59.6C283.5 -65.5 292.5 -65.5 297.3 -59.6L573.3 281.2C576.5999999999999 285.3 576.9 291 574 295.4L474.1 442.6C471.8 446 468.1 448 464 448zM444.7 400L508 304H439.6L387.9000000000001 400H444.7000000000001zM242.6 400H333.3L385 304H191L242.6 400zM131.3 400H188.1L136.4 304H68L131.3 400zM88.3 256H139.7L208 96L88.3 256zM191.2 256H384.8L288 12.7L191.2 256zM368 96L436.2 256H487.6L368 96z" />
<glyph glyph-name="grimace"
unicode="&#xF57F;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM344 192H152C125.5 192 104 170.5 104 144V112C104 85.5 125.5 64 152 64H344C370.5 64 392 85.5 392 112V144C392 170.5 370.5 192 344 192zM176 96H152C143.2 96 136 103.2 136 112V120H176V96zM176 136H136V144C136 152.8 143.2 160 152 160H176V136zM240 96H192V120H240V96zM240 136H192V160H240V136zM304 96H256V120H304V96zM304 136H256V160H304V136zM360 112C360 103.2 352.8 96 344 96H320V120H360V112zM360 136H320V160H344C352.8 160 360 152.8 360 144V136z" />
<glyph glyph-name="grin-alt"
unicode="&#xF581;"
horiz-adv-x="496" d=" M200.3 200C212.7 218.7 215.4 237.3 216 256C215.5 274.7 212.7 293.3 200.3 312C192.3 324 175.2 323.4 167.6 312C155.2 293.3 152.5 274.7 151.9 256C152.4 237.3 155.2000000000001 218.7 167.6 200C175.7 188 192.8 188.6 200.3 200zM328.3 200C340.7 218.7 343.4000000000001 237.3 344 256C343.5 274.7 340.7 293.3 328.3 312C320.3 324 303.2 323.4 295.6 312C283.2000000000001 293.3 280.5 274.7 279.9000000000001 256C280.4000000000001 237.3 283.2000000000001 218.7 295.6 200C303.7000000000001 188 320.8 188.6 328.3 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4z" />
<glyph glyph-name="grin-beam-sweat"
unicode="&#xF583;"
horiz-adv-x="496" d=" M440 288C469.5 288 493.3 314.3 493.3 346.7C493.3 371.7 461.6 422.2 447.1 444C443.5 449.3 436.4000000000001 449.3 432.9000000000001 444C418.4000000000001 422.2 386.7000000000001 371.7 386.7000000000001 346.7C386.7000000000001 314.3 410.5000000000001 288 440.0000000000001 288zM248 48C299.9 48 363.3 80.9 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.6 146.4 123 138 124.7 128C132.7000000000001 80.9 196.1 48 248.0000000000001 48zM378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7000000000001 351.8 296 328 296S275.3 266.7000000000001 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.4 375.2 215.4 378.3 216.3zM483.6 269.2000000000001C459 253.5000000000001 437.6 256.3 437.2000000000001 256.3C444.1 236.1 448.0000000000001 214.5 448.0000000000001 192C448.0000000000001 81.7 358.3000000000001 -8 248.0000000000001 -8S48 81.7 48 192S137.7 392 248 392C287.8 392 324.8 380.2 356 360.1C357.7 369.6 362.3 384.2 373.2 405.8C336.4 427.4 293.7 440 248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192C496 219 491.6 244.9 483.6 269.2zM168 258.6C180.3 258.6 191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.8 155.7 258.6 168 258.6z" />
<glyph glyph-name="grin-beam"
unicode="&#xF582;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM117.7 216.3C121.2 215.2 125.1 216.8 127 220L136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7 191.8 296 168 296S115.3 266.7 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3zM277.7000000000001 216.3C281.2000000000001 215.2 285.1 216.8 287.0000000000001 220L296.5000000000001 237C304.2000000000001 250.7 315.7000000000001 258.6 328.0000000000001 258.6S351.8000000000001 250.7 359.5000000000001 237L369.0000000000001 220C371.1000000000001 216.3 375.2000000000001 215.3 378.3000000000001 216.3C381.9000000000001 217.4 384.3000000000001 220.8 384.0000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296S275.3000000000001 266.7 272.0000000000001 224.6C271.7000000000001 220.9 274.1000000000001 217.4 277.7000000000001 216.3z" />
<glyph glyph-name="grin-hearts"
unicode="&#xF584;"
horiz-adv-x="496" d=" M353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM200.8 192.3C205.3 191.1 210 193.8 211.3 198.3L230.7 268.2C236.3 288.5 223.3 309.3 201.9 312.7C183.3 315.7 165.5 302.9 160.4 284.8L158.4 277.7L151.3 279.6C133.1 284.3 113.1 275.3 106.4 257.6C98.7 237.4 110.2 215.7 130.6 210.4L200.8 192.3zM389.6 257.6C382.9000000000001 275.2 362.9000000000001 284.3 344.7000000000001 279.6L337.6 277.7L335.6 284.8C330.6 302.9 312.8 315.7 294.1 312.7C272.7000000000001 309.3 259.7000000000001 288.5 265.3 268.2L284.7 198.3C285.9 193.8 290.6 191.1 295.2 192.3L365.4 210.5C385.8 215.8 397.3 237.4 389.6 257.5999999999999zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8z" />
<glyph glyph-name="grin-squint-tears"
unicode="&#xF586;"
horiz-adv-x="512" d=" M117.1 63.9C91.3 60.2 33.1 50.2 16.2 33.3C-5.7 11.4 -5.3 -24.6 17.1 -47.0000000000001S75.4 -69.8000000000001 97.4 -47.9C114.3 -31 124.3 27.2 128 53C128.8 59.4 123.4 64.8 117.1 63.9zM75.9 105.6C40.3 180 53 271.9 114.6 333.4C152.4 371.2 202.6 392 256 392C292.2 392 326.8 382.2 357.2 364.3C361 384.6 365.2 400.4 369.2 412.6C333.8 430.8 294.9 440 256 440C192.5 440 129.1 415.8 80.6 367.4C6.5 293.3 -10.7 184 28.6 93.4C40.8 97.5 56.3 101.7 75.9 105.6zM428.2 293.2C473.2 216.6 463.1 116.3 397.4 50.6C359.6 12.8 309.4 -8.0000000000001 256 -8.0000000000001C225.5 -8.0000000000001 196.2 -1.0000000000001 169.6 11.8C165.7 -7.7 161.6 -23.2 157.4 -35.4C188.8 -49.0000000000001 222.4 -56.0000000000001 256.1 -56.0000000000001C319.6 -56.0000000000001 383 -31.8000000000001 431.5 16.5999999999999C509.6 94.6999999999999 524.6 211.9999999999999 476.7 305.2C464.4 301.2 448.5 297.0999999999999 428.2 293.2zM394.9 320.1C420.7 323.8 478.9 333.8 495.8 350.7C517.6999999999999 372.6 517.3 408.6 494.9 431S436.6 453.8 414.6 431.9C397.7 415 387.7 356.8 384 331C383.2 324.6 388.6 319.2 394.9 320.1zM207.9 211.8C204.9 214.8 200.7 216 196.5 215L106 192.3C100.3 190.9 96.5 185.6 96.9 179.7C97.4 173.9 102 169.2 107.8 168.7L160.1 163.9L164.9 111.6C165.4 105.8 170.1 101.2 175.9 100.7H176.8000000000001C182.3000000000001 100.7 187.1000000000001 104.4 188.5 109.8L211.1 200.3C212.1 204.5 210.9 208.8 207.9 211.8zM247.6 236.9L338.1 259.5C343.8 260.9 347.6 266.2 347.2 272.0999999999999C346.7 277.9 342.1 282.5999999999999 336.3 283.0999999999999L284 287.9L279.2 340.2C278.7 346 274 350.6 268.2 351.1C262.6 351.2 257 347.7 255.6 342L233 251.5C232 247.4 233.2 243.1 236.2 240.1C241.2 235.1 247.5 236.9 247.6 236.9zM299.6 148.4C270.5 119.3 239.9 95.5 215.7 83C206.5 78.2 205.7 65.5 214 59.6C252.9 31.9 321 53.4 357.7 90.2000000000001S416 195 388.3 233.9C382.5 242.1 369.8 241.5 364.9000000000001 232.2C352.6 208 328.7000000000001 177.5 299.6 148.4z" />
<glyph glyph-name="grin-squint"
unicode="&#xF585;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM118.9 184.2C122.5 180 128.8000000000001 178.5 134.2000000000001 181.7L214.2000000000001 229.7C217.8000000000001 231.9 220.0000000000001 235.8 220.0000000000001 240S217.8000000000001 248.1 214.2000000000001 250.3L134.2000000000001 298.3C129.1000000000001 301.3 122.8000000000001 300.2000000000001 118.9000000000001 295.8C115.1000000000001 291.3 115.1000000000001 284.8 118.8000000000001 280.3L152.4000000000001 240L118.8000000000001 199.7C115.0000000000001 195.2 115.1000000000001 188.6 118.9000000000001 184.2zM361.8000000000001 181.7C367.2000000000001 178.5 373.5000000000001 180 377.1000000000001 184.2C380.9000000000001 188.7 380.9000000000001 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.3 377.1 295.8C373.3 300.2000000000001 366.9000000000001 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7z" />
<glyph glyph-name="grin-stars"
unicode="&#xF587;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.6 146.5 123 138.1 124.7 128.1C132.6 80.9 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM125.7 200.9C124.7 194.7 131.1 189.9 136.7 193L168 209.3L199.3000000000001 193C204.9 189.9 211.3000000000001 194.7 210.3000000000001 200.9L204.3000000000001 235.8L229.7000000000001 260.4C234.2000000000001 264.9 231.6000000000001 272.6 225.4000000000001 273.6L190.5 278.6L175 310.2C172.1 316 164 316 161.1 310.2L145.6 278.6L110.7 273.6C104.5 272.7 101.8 265 106.4 260.4L131.8 235.8L125.7 200.9zM385.4 273.6L350.5 278.6L335 310.2C332.1 316 324 316 321.1 310.2L305.6 278.6L270.7000000000001 273.6C264.5000000000001 272.7 261.8000000000001 265 266.4000000000001 260.4L291.8 235.8L285.8 200.9C284.8 194.7 291.2 189.9 296.8 193L328.1 209.3L359.4000000000001 193C365.0000000000001 189.9 371.4000000000001 194.7 370.4000000000001 200.9L364.4000000000001 235.8L389.8 260.4C394.3 265 391.6 272.6 385.4000000000001 273.6z" />
<glyph glyph-name="grin-tears"
unicode="&#xF588;"
horiz-adv-x="640" d=" M117.1 191.9C91.3 188.2 33.1 178.2 16.2 161.3C-5.7 139.4 -5.3 103.4 17.1 80.9999999999999S75.4 58.1999999999999 97.4 80.1C114.3 97 124.3 155.2 128 181C128.8 187.4 123.4 192.8 117.1 191.9zM623.8 161.3C606.9 178.1999999999999 548.6999999999999 188.1999999999999 522.9 191.9C516.6 192.8 511.2 187.4 512.1 181.1C515.8000000000001 155.3 525.8000000000001 97.1 542.7 80.1999999999999C564.6 58.3 600.6 58.6999999999999 623 81.0999999999999C645.3 103.3999999999999 645.7 139.3999999999999 623.8 161.2999999999999zM497.1999999999999 99.6C463.8 35.7 396.9 -8 320 -8C243.1 -8 176.2 35.7 142.8 99.6C130.3 62.2000000000001 117.6 55.7 114.5 53.1C159.1 -12.7 234.5 -56 320 -56S480.9 -12.7 525.5 53.1C522.3 55.8 509.6 62.3 497.2 99.6zM122.7 223.5C137.9 318.8 220.5 392 320 392C419.5 392 502.1 318.8 517.3 223.5C519.4 223.7 522.5 225.9 566.8 216.5C554.4 342 448.7 440 320 440S85.6 342 73.2 216.6C117.7 226 120.3 223.8 122.7 223.5zM320 48C371.9 48 435.3 80.9 443.3 128C445 137.9 435.6 146.5 425.6 143.3C399.7000000000001 135 361.2000000000001 130.2 320 130.2S240.4 135 214.4 143.3C204.6 146.4 195 138 196.7 128C204.7 80.9 268.1 48 320 48zM450.3 216.3C453.9 217.4 456.3 220.8 456 224.6C452.7 266.7000000000001 423.8 296 400 296S347.3 266.7000000000001 344 224.6C343.7 220.9 346.1 217.4 349.7 216.3C353.2 215.2 357.1 216.8 359 220L368.5 237C376.2 250.7 387.7 258.6 400 258.6S423.8 250.7 431.5 237L441 220C443.1 216.4 447.2 215.4 450.3 216.3zM240 258.6C252.3 258.6 263.8 250.7 271.5 237L281 220C283.1 216.3 287.2 215.3 290.3 216.3C293.9000000000001 217.4 296.3 220.8 296 224.6C292.7 266.7000000000001 263.8 296 240 296S187.3 266.7000000000001 184 224.6C183.7 220.9 186.1 217.4 189.7 216.3C193.2 215.2 197.1 216.8 199 220L208.5 237C216.2 250.8 227.7 258.6 240 258.6z" />
<glyph glyph-name="grin-tongue-squint"
unicode="&#xF58A;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM377.1 295.8C373.3 300.2000000000001 366.8 301.3 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.5 180 377.1 184.2C380.9 188.7 380.9 195.2 377.2 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM214.2 250.3L134.2 298.3C129.2 301.3 122.8 300.3 118.9 295.8C115.1 291.3 115.1 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.5 180 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240S217.8 248.1 214.2 250.3z" />
<glyph glyph-name="grin-tongue-wink"
unicode="&#xF58B;"
horiz-adv-x="496" d=" M152 268C126.3 268 96.1 251.1 92.2 225.9C91.4 220.9 93.9 215.9 98.3 213.5C102.7 211.1 108.2 211.7 112 215.1L121.5 223.6C136.3 236.8 167.7 236.8 182.5 223.6L192 215.1C194.5 212.9 200 210.4 205.7 213.5C210.1 215.9 212.6 220.9 211.8 225.9C207.9 251.1 177.7 268 152 268zM328 320C283.8 320 248 284.2 248 240S283.8 160 328 160S408 195.8 408 240S372.2 320 328 320zM328 192C301.5 192 280 213.5 280 240S301.5 288 328 288S376 266.5 376 240S354.5 192 328 192zM328 264C314.7 264 304 253.3 304 240S314.7 216 328 216S352 226.7 352 240S341.3 264 328 264zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7z" />
<glyph glyph-name="grin-tongue"
unicode="&#xF589;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM312 40C312 4.4 282.9 -24.5 247.1 -24C212 -23.5 184 5.8 184 41V83.8L201.7 92.6C216.7 100.1 233.2 90.9 236.6 76.1L239.4 64C241.5 54.8 254.6 54.8 256.7 64L259.5 76.1C262.9 90.9 279.3 100.2000000000001 294.4 92.6L312.1 83.8V40zM340.2 14.7C342.4 22.8 344 31.2 344 40V83.5C358.2 95.9 368.4 111 371.3 128C373 137.9 363.6 146.5 353.6 143.3C327.7000000000001 135 289.2000000000001 130.2 248.0000000000001 130.2S168.4 135 142.4 143.3C132.5 146.4 123 138 124.7 128C127.6 111 137.8000000000001 95.9 152 83.5V40C152 31.2 153.6 22.8 155.8000000000001 14.7C91.8 48.1 48 115 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 115 404.2 48.1 340.2 14.7zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
<glyph glyph-name="grin-wink"
unicode="&#xF58C;"
horiz-adv-x="496" d=" M328 268C302.31 268 272.12 251.08 268.14 225.88C266.39 214.66 279.64 207.64 287.97 215.04L297.52 223.52C312.33 236.71 343.68 236.71 358.49 223.52L368.04 215.04C376.5200000000001 207.61 389.6 214.79 387.87 225.88C383.88 251.08 353.69 268 328 268zM168 208C185.67 208 200 222.33 200 240S185.67 272 168 272S136 257.67 136 240S150.33 208 168 208zM353.55 143.36C327.62 135.06 289.15 130.3 248 130.3S168.38 135.05 142.45 143.36C132.51 146.49 123.05 137.99 124.74 128.0200000000001C132.67 80.87 196.06 48 248 48S363.33 80.87 371.26 128.02C372.94 137.91 363.59 146.5 353.55 143.36zM248 440C111.03 440 0 328.9700000000001 0 192S111.03 -56 248 -56S496 55.03 496 192S384.9700000000001 440 248 440zM248 -8C137.72 -8 48 81.72 48 192S137.72 392 248 392S448 302.28 448 192S358.28 -8 248 -8z" />
<glyph glyph-name="grin"
unicode="&#xF580;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM353.6 143.4C327.7000000000001 135.1 289.2000000000001 130.3 248.0000000000001 130.3S168.4 135.1 142.4 143.4C132.5 146.5 123 138 124.7 128.1C132.6 80.9999999999999 196 48.1 248.0000000000001 48.1S363.3 80.9999999999999 371.3 128.1C372.9000000000001 137.9 363.6 146.5 353.6 143.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208z" />
<glyph glyph-name="hand-lizard"
unicode="&#xF258;"
horiz-adv-x="576" d=" M556.686 157.458L410.328 383.171C397.001 403.728 374.417 416 349.917 416H56C25.121 416 0 390.878 0 360V352C0 307.8880000000001 35.888 272 80 272H276.0420000000001L257.7090000000001 224H144C95.477 224 56 184.523 56 136C56 105.121 81.121 80 112 80H243.552C246.539 80 249.466 79.451 252.249 78.369L352 39.582V-32H576V92.171C576 115.396 569.321 137.972 556.686 157.458zM528 16H400V39.582C400 59.53 387.986 77.09 369.396 84.318L269.645 123.106A71.733 71.733 0 0 1 243.552 128H112C107.589 128 104 131.589 104 136C104 158.056 121.944 176 144 176H257.709C277.476 176 295.495 188.407 302.549 206.873L327.101 271.154C336.097 294.707 318.673 320 293.471 320H80C62.355 320 48 334.355 48 352V360C48 364.411 51.589 368 56 368H349.917C358.083 368 365.61 363.91 370.054 357.058L516.412 131.343A71.84 71.84 0 0 0 528 92.171V16z" />
<glyph glyph-name="hand-paper"
unicode="&#xF256;"
horiz-adv-x="448" d=" M372.57 335.359V346.184C372.57 389.796 332.05 422.875 289.531 411.73C263.902 461.23 195.441 459.18 171.549 410.983C130.269 421.544 89.144 390.055 89.144 346V219.87C69.191 227.297 45.836 224.938 27.061 210.999C-2.294 189.203 -8.733 147.666 12.511 117.846L132.48 -50.569A32 32 0 0 1 158.542 -64.001H381.439C396.343 -64.001 409.274 -53.712 412.621 -39.188L442.805 91.77A203.637 203.637 0 0 1 448 137.436V269C448 309.62 412.477 340.992 372.57 335.359zM399.997 137.437C399.997 125.706 398.663 113.968 396.0320000000001 102.551L368.707 -16H166.787L51.591 145.697C37.152 165.967 66.614 188.473 80.985 168.302L108.113 130.223C117.108 117.597 137.144 123.936 137.144 139.506V346C137.144 371.645 173.715 370.81 173.715 345.309V192C173.715 183.163 180.878 176 189.715 176H196.571C205.408 176 212.571 183.163 212.571 192V381C212.571 406.663 249.142 405.81 249.142 380.309V192C249.142 183.163 256.305 176 265.142 176H271.998C280.835 176 287.998 183.163 287.998 192V346.875C287.998 372.5470000000001 324.568 371.685 324.568 346.184V192C324.568 183.163 331.731 176 340.568 176H347.425C356.262 176 363.425 183.163 363.425 192V268.309C363.425 294.551 399.995 293.949 399.995 269V137.437z" />
<glyph glyph-name="hand-peace"
unicode="&#xF25B;"
horiz-adv-x="448" d=" M362.146 256.024C348.4360000000001 277.673 323.385 290.04 297.14 286.365V374C297.14 414.804 264.329 448 223.999 448C183.669 448 150.859 414.804 150.859 374L160 280L141.321 358.85C126.578 397.157 83.85 415.89 46.209 400.7920000000001C8.735 385.762 -9.571 343.0370000000001 5.008 305.15L60.765 160.223C30.208 135.267 16.771 102.414 36.032 68.005L90.885 -29.994C102.625 -50.97 124.73 -64 148.575 -64H354.277C385.021 -64 411.835 -42.56 418.832 -12.203L446.259 106.7960000000001A67.801 67.801 0 0 1 447.988 121.999L448 192C448 236.956 404.737 269.343 362.146 256.024zM399.987 122C399.987 120.512 399.8180000000001 119.023 399.485 117.577L372.058 -1.424C370.08 -10.006 362.768 -16 354.276 -16H148.575C142.089 -16 136.033 -12.379 132.77 -6.551L77.916 91.449C73.359 99.59 75.297 110.117 82.424 115.937L109.071 137.701A16 16 0 0 1 113.883 155.84L49.793 322.389C37.226 355.044 84.37 373.163 96.51 341.611L156.294 186.254A16 16 0 0 1 171.227 176H182.859C191.696 176 198.859 183.163 198.859 192V374C198.859 408.375 249.14 408.43 249.14 374V192C249.14 183.163 256.303 176 265.14 176H271.996C280.833 176 287.996 183.163 287.996 192V220C287.996 245.122 324.563 245.159 324.563 220V192C324.563 183.163 331.726 176 340.563 176H347.419C356.256 176 363.419 183.163 363.419 192C363.419 217.12 399.986 217.16 399.986 192V122z" />
<glyph glyph-name="hand-point-down"
unicode="&#xF0A7;"
horiz-adv-x="448" d=" M188.8 -64C234.416 -64 272 -26.235 272 19.2V54.847A93.148 93.148 0 0 1 294.064 62.776C316.0700000000001 60.269 339.0420000000001 66.2789999999999 356.855 78.761C409.342 79.9 448 116.159 448 178.701V200C448 260.063 408 298.512 408 327.2V329.879C412.952 335.626 416 343.415 416 351.999V416C416 433.673 403.106 448 387.2 448H156.8C140.894 448 128 433.673 128 416V352C128 343.416 131.048 335.627 136 329.88V327.201C136 320.237 129.807 312.339 112.332 297.0180000000001L112.184 296.889L112.038 296.7580000000001C102.101 287.9020000000001 91.197 278.642 78.785 270.9070000000001C48.537 252.202 0 240.514 0 195.2C0 138.272 35.286 103.2 83.2 103.2C91.226 103.2 98.689 104.014 105.6 105.376V19.2C105.6 -25.899 143.701 -64 188.8 -64zM188.8 -16C170.1 -16 153.6 0.775 153.6 19.2V177.6C136.275 177.6 118.4 151.2000000000001 83.2 151.2000000000001C56.8 151.2000000000001 48 171.8250000000001 48 195.2000000000001C48 203.9940000000001 80.712 215.6450000000001 104.1 230.1260000000001C118.675 239.2000000000001 131.325 249.6500000000001 143.975 260.9250000000001C162.349 277.0340000000001 180.608 294.761 183.571 320.0000000000001H360.3230000000001C364.087 277.2100000000001 400 245.491 400 200V178.701C400 138.177 377.803 121.577 338.675 128.1C330.6740000000001 113.488 304.6960000000001 103.949 285.05 115.175C266.825 95.81 238.669 97.388 224 110.225V19.2C224 0.225 207.775 -16 188.8 -16zM328 384C328 397.255 338.745 408 352 408S376 397.255 376 384S365.255 360 352 360S328 370.745 328 384z" />
<glyph glyph-name="hand-point-left"
unicode="&#xF0A5;"
horiz-adv-x="512" d=" M0 227.2C0 181.584 37.765 144 83.2 144H118.847A93.148 93.148 0 0 1 126.776 121.936C124.269 99.93 130.279 76.958 142.761 59.145C143.9 6.658 180.159 -32 242.701 -32H264C324.063 -32 362.512 8 391.2 8H393.879C399.626 3.048 407.415 0 415.999 0H479.999C497.672 0 511.999 12.894 511.999 28.8V259.2C511.999 275.106 497.672 288 479.999 288H415.999C407.415 288 399.626 284.952 393.879 280H391.2C384.236 280 376.338 286.193 361.017 303.668L360.888 303.8160000000001L360.757 303.962C351.901 313.899 342.641 324.803 334.906 337.215C316.202 367.463 304.514 416 259.2 416C202.272 416 167.2 380.714 167.2 332.8C167.2 324.774 168.014 317.3110000000001 169.376 310.4H83.2C38.101 310.4 0 272.299 0 227.2zM48 227.2C48 245.9 64.775 262.4 83.2 262.4H241.6C241.6 279.725 215.2 297.6 215.2 332.8C215.2 359.2 235.825 368 259.2000000000001 368C267.9940000000001 368 279.6450000000001 335.288 294.1260000000001 311.9C303.2000000000001 297.325 313.6500000000001 284.675 324.925 272.025C341.034 253.651 358.761 235.392 384 232.429V55.677C341.21 51.913 309.491 16 264 16H242.701C202.177 16 185.577 38.197 192.1 77.325C177.488 85.326 167.949 111.304 179.175 130.95C159.81 149.175 161.388 177.331 174.225 192H83.2C64.225 192 48 208.225 48 227.2zM448 88C461.255 88 472 77.255 472 64S461.255 40 448 40S424 50.745 424 64S434.745 88 448 88z" />
<glyph glyph-name="hand-point-right"
unicode="&#xF0A4;"
horiz-adv-x="512" d=" M428.8 310.4H342.623A115.52 115.52 0 0 1 344.799 332.8C344.799 380.714 309.727 416 252.799 416C207.485 416 195.797 367.463 177.092 337.216C169.357 324.803 160.098 313.899 151.241 303.963L151.11 303.817L150.981 303.6690000000001C135.662 286.193 127.764 280 120.8 280H118.121C112.374 284.952 104.585 288 96.001 288H32C14.327 288 0 275.106 0 259.2V28.8C0 12.894 14.327 0 32 0H96C104.584 0 112.373 3.048 118.12 8H120.799C149.487 8 187.936 -32 247.999 -32H269.298C331.8400000000001 -32 368.098 6.658 369.238 59.145C381.7200000000001 76.958 387.729 99.93 385.223 121.936A93.148 93.148 0 0 1 393.152 144H428.8C474.235 144 512 181.584 512 227.2C512 272.299 473.899 310.4 428.8 310.4zM428.8 192H337.774C350.611 177.331 352.189 149.175 332.824 130.95C344.051 111.304 334.511 85.326 319.899 77.325C326.423 38.197 309.823 16 269.299 16H248C202.509 16 170.79 51.913 128 55.676V232.429C153.239 235.393 170.966 253.651 187.075 272.025C198.35 284.675 208.8 297.3250000000001 217.874 311.9C232.355 335.288 244.006 368 252.8 368C276.175 368 296.8 359.2 296.8 332.8C296.8 297.6 270.4000000000001 279.725 270.4000000000001 262.4H428.8000000000001C447.2250000000001 262.4 464.0000000000001 245.9 464.0000000000001 227.2C464.0000000000001 208.225 447.7750000000001 192 428.8000000000001 192zM88 64C88 50.745 77.255 40 64 40S40 50.745 40 64S50.745 88 64 88S88 77.255 88 64z" />
<glyph glyph-name="hand-point-up"
unicode="&#xF0A6;"
horiz-adv-x="448" d=" M105.6 364.8V278.623A115.52 115.52 0 0 1 83.2 280.799C35.286 280.799 0 245.727 0 188.799C0 143.485 48.537 131.797 78.784 113.092C91.197 105.357 102.101 96.098 112.037 87.241L112.183 87.11L112.331 86.981C129.807 71.662 136 63.764 136 56.8V54.121C131.048 48.374 128 40.585 128 32.001V-31.999C128 -49.672 140.894 -63.999 156.8 -63.999H387.2000000000001C403.1060000000001 -63.999 416.0000000000001 -49.672 416.0000000000001 -31.999V32.001C416.0000000000001 40.585 412.9520000000001 48.374 408.0000000000001 54.121V56.8C408.0000000000001 85.488 448.0000000000001 123.937 448.0000000000001 184V205.299C448.0000000000001 267.841 409.3420000000001 304.099 356.8550000000001 305.2390000000001C339.0420000000001 317.721 316.0700000000001 323.73 294.0640000000001 321.224A93.148 93.148 0 0 1 272 329.153V364.8C272 410.235 234.416 448 188.8 448C143.701 448 105.6 409.899 105.6 364.8zM224 364.8V273.774C238.669 286.611 266.825 288.189 285.05 268.824C304.6960000000001 280.0510000000001 330.6740000000001 270.511 338.675 255.899C377.803 262.423 400 245.823 400 205.299V184C400 138.509 364.087 106.79 360.324 64H183.571C180.607 89.239 162.349 106.966 143.975 123.075C131.325 134.35 118.675 144.8 104.1 153.874C80.712 168.355 48 180.006 48 188.8C48 212.175 56.8 232.8 83.2 232.8C118.4 232.8 136.275 206.4 153.6 206.4V364.8C153.6 383.225 170.1 400 188.8 400C207.775 400 224 383.775 224 364.8zM352 24C365.255 24 376 13.255 376 0S365.255 -24 352 -24S328 -13.255 328 0S338.745 24 352 24z" />
<glyph glyph-name="hand-pointer"
unicode="&#xF25A;"
horiz-adv-x="448" d=" M358.182 268.639C338.689 293.4070000000001 305.5030000000001 300.584 278.31 287.737C263.183 303.4240000000001 242.128 310.2240000000001 221.715 307.366V381C221.715 417.944 191.979 448 155.429 448S89.143 417.944 89.143 381V219.871C69.234 227.281 45.871 224.965 27.06 210.999C-2.295 189.204 -8.733 147.6660000000001 12.51 117.847L122.209 -36.154C134.632 -53.59 154.741 -64 176 -64H354.286C385.088 -64 411.86 -42.5 418.843 -12.203L446.272 106.7960000000001A67.873 67.873 0 0 1 448 122V206C448 252.844 401.375 285.273 358.182 268.639zM80.985 168.303L108.111 130.224C117.106 117.598 137.142 123.937 137.142 139.507V381C137.142 406.12 173.713 406.16 173.713 381V206C173.713 197.164 180.876 190 189.713 190H196.57C205.407 190 212.57 197.164 212.57 206V241C212.57 266.12 249.141 266.16 249.141 241V206C249.141 197.164 256.304 190 265.141 190H272C280.837 190 288 197.164 288 206V227C288 252.12 324.5710000000001 252.16 324.5710000000001 227V206C324.5710000000001 197.164 331.7340000000001 190 340.5710000000001 190H347.4280000000001C356.2650000000001 190 363.4280000000001 197.164 363.4280000000001 206C363.4280000000001 231.121 399.999 231.16 399.999 206V122C399.999 120.512 399.8300000000001 119.023 399.497 117.577L372.067 -1.424C370.089 -10.006 362.777 -16 354.2850000000001 -16H176C170.231 -16 164.737 -13.122 161.303 -8.303L51.591 145.697C37.185 165.92 66.585 188.515 80.985 168.303zM176.143 48V144C176.143 152.837 182.411 160 190.143 160H196.143C203.875 160 210.143 152.837 210.143 144V48C210.143 39.163 203.875 32 196.143 32H190.143C182.41 32 176.143 39.163 176.143 48zM251.571 48V144C251.571 152.837 257.839 160 265.5710000000001 160H271.5710000000001C279.3030000000001 160 285.5710000000001 152.837 285.5710000000001 144V48C285.5710000000001 39.163 279.3030000000001 32 271.5710000000001 32H265.5710000000001C257.839 32 251.5710000000001 39.163 251.5710000000001 48zM327 48V144C327 152.837 333.268 160 341 160H347C354.7320000000001 160 361 152.837 361 144V48C361 39.163 354.7320000000001 32 347 32H341C333.268 32 327 39.163 327 48z" />
<glyph glyph-name="hand-rock"
unicode="&#xF255;"
horiz-adv-x="512" d=" M408.864 368.948C386.463 402.846 342.756 411.221 310.051 392.536C280.577 424.005 230.906 423.629 201.717 392.558C154.557 419.578 93.007 387.503 91.046 331.752C44.846 342.593 0 307.999 0 260.5710000000001V203.618C0 170.877 14.28 139.664 39.18 117.984L136.89 32.903C141.142 29.201 140 27.33 140 -1e-13C140 -17.6730000000001 154.327 -32.0000000000001 172 -32.0000000000001H424C441.673 -32.0000000000001 456 -17.6730000000001 456 -1e-13C456 23.5129999999999 454.985 30.745 459.982 42.37L502.817 142.026C508.911 156.203 512 171.198 512 186.5939999999999V301.0370000000001C512 353.876 457.686 389.699 408.8640000000001 368.948zM464 186.594A64.505 64.505 0 0 0 458.718 160.981L415.8830000000001 61.326C410.653 49.155 408.0000000000001 36.286 408.0000000000001 23.076V16H188V26.286C188 42.656 180.86 58.263 168.41 69.103L70.7 154.183C56.274 166.745 48 184.764 48 203.619V260.572C48 293.78 100 294.1090000000001 100 259.895V218.667A16 16 0 0 1 105.493 206.6L112.493 200.505A16 16 0 0 1 139 212.571V329.1430000000001C139 362.24 191 362.868 191 328.466V301.7150000000001C191 292.879 198.164 285.7150000000001 207 285.7150000000001H214C222.836 285.7150000000001 230 292.879 230 301.7150000000001V342.858C230 375.992 282 376.533 282 342.181V301.7150000000001C282 292.879 289.163 285.7150000000001 298 285.7150000000001H305C313.837 285.7150000000001 321 292.879 321 301.7150000000001V329.144C321 362.174 373 362.924 373 328.467V301.716C373 292.88 380.163 285.716 389 285.716H396C404.837 285.716 412 292.88 412 301.716C412 334.862 464 335.329 464 301.039V186.5940000000001z" />
<glyph glyph-name="hand-scissors"
unicode="&#xF257;"
horiz-adv-x="512" d=" M256 -32L326 -31.987C331.114 -31.987 336.231 -31.404 341.203 -30.258L460.202 -2.831C490.56 4.165 512 30.98 512 61.723V267.425C512 291.27 498.97 313.376 477.995 325.115L379.996 379.968C345.587 399.2290000000001 312.733 385.7920000000001 287.778 355.235L142.85 410.992C104.963 425.5710000000001 62.238 407.265 47.208 369.791C32.11 332.149 50.843 289.421 89.15 274.679L168 256L74 265.141C33.196 265.141 0 232.33 0 192.001C0 151.671 33.196 118.86 74 118.86H161.635C157.96 92.615 170.327 67.563 191.976 53.8539999999999C178.657 11.263 211.044 -32 256 -32zM256 16.013C230.84 16.013 230.88 52.58 256 52.58C264.837 52.58 272 59.743 272 68.58V75.436C272 84.273 264.837 91.436 256 91.436H228C202.841 91.436 202.878 128.003 228 128.003H256C264.837 128.003 272 135.166 272 144.003V150.859C272 159.696 264.837 166.859 256 166.859H74C39.57 166.859 39.625 217.14 74 217.14H256C264.837 217.14 272 224.303 272 233.14V244.772A16 16 0 0 1 261.746 259.705L106.389 319.49C74.837 331.63 92.957 378.773 125.611 366.207L292.16 302.116A16.001 16.001 0 0 1 310.299 306.928L332.063 333.5750000000001C337.883 340.702 348.411 342.639 356.551 338.0830000000001L454.551 283.2290000000001C460.379 279.966 464 273.911 464 267.424V61.723C464 53.232 458.006 45.919 449.424 43.941L330.423 16.514A19.743 19.743 0 0 0 326 16.012H256z" />
<glyph glyph-name="hand-spock"
unicode="&#xF259;"
horiz-adv-x="512" d=" M21.096 66.21L150.188 -55.303A32 32 0 0 1 172.12 -64.001H409.7200000000001C423.8900000000001 -64.001 436.3730000000001 -54.682 440.4000000000001 -41.097L472.215 66.216A115.955 115.955 0 0 1 477 99.189V136.028C477 140.079 477.476 144.132 478.414 148.073L510.144 281.4830000000001C520.243 323.8950000000001 487.828 364.221 444.6 364.0080000000001C440.456 388.8640000000001 422.057 411.1730000000001 394.75 418.0000000000001C358.947 426.9520000000001 322.523 405.3450000000001 313.5 369.25L296.599 264L274.924 395.99C266.638 432.06 230.621 454.562 194.62 446.286C165.004 439.4820000000001 144.482 413.897 142.738 384.991C100.101 384.16 69.283 344.428 78.667 303.147L109.707 166.639C82.513 189.154 42.423 186.631 18.225 160.917C-7.151 133.956 -5.873 91.592 21.096 66.21zM53.164 128.021L53.166 128.0219999999999C60.385 135.694 72.407 136.002 80.022 128.8349999999999L133.034 78.9409999999999C143.225 69.351 160 76.6 160 90.594V160.073C160 161.266 159.866 162.456 159.603 163.619L125.473 313.791C119.877 338.408 156.975 346.651 162.527 322.212L192.926 188.4549999999999A16 16 0 0 1 208.529 176.0009999999999H217.1330000000001C227.4090000000001 176.0009999999999 235.0270000000001 185.5679999999999 232.7270000000001 195.5839999999999L191.107 376.7369999999999C185.484 401.2059999999999 222.497 409.813 228.142 385.2449999999999L273.362 188.4169999999999A16 16 0 0 1 288.956 176H302.173A16 16 0 0 1 317.695 188.119L360.067 357.6090000000001C366.171 382.0310000000001 403.029 372.7680000000001 396.932 348.3920000000001L358.805 195.88C356.284 185.792 363.92 176 374.327 176H384.021A16 16 0 0 1 399.586 188.295L426.509 301.4C432.3300000000001 325.848 469.306 317.087 463.475 292.598L431.7200000000001 159.19A100.094 100.094 0 0 1 429 136.028V99.189C429 92.641 428.057 86.138 426.195 79.8610000000001L397.775 -16H178.465L53.978 101.164C46.349 108.344 45.984 120.393 53.164 128.021z" />
<glyph glyph-name="handshake"
unicode="&#xF2B5;"
horiz-adv-x="640" d=" M519.2 320.1L471.6 367.7A56.252 56.252 0 0 1 432 384H205.2C190.4 384 176.1 378.1 165.6 367.7L118 320.1H0V64.4H64C81.6 64.4 95.8 78.6 95.9 96.1H105L189.6 19.6999999999999C220.5 -5.4000000000001 263.4 -6.0000000000001 295.2 15.8999999999999C307.7 5.0999999999999 321.2 -1e-13 336.3 -1e-13C354.5 -1e-13 371.6 7.3999999999999 385.1 23.9999999999999C407.2000000000001 15.3 433.3 21.3999999999999 449.1 40.8L475.3 73.1C480.9 79.9999999999999 484.4 87.9 486.2 96.1H544.1C544.2 78.6 558.5 64.4 576 64.4H640V320.1H519.2zM48 96.4C39.2 96.4 32 103.6 32 112.4S39.2 128.4 48 128.4S64 121.2 64 112.4C64 103.5 56.8 96.4 48 96.4zM438 103.3L411.9 71.1C409.1 67.7 404.1 67.1 400.6 69.9L376.7 89.3L346.7 52.8C340.7 45.4999999999999 331.7 47.9999999999999 328.7 50.4L291.9 81.9L276.3 62.7C262.4 45.6 237.1 43 221 56.1L123.7 144.1H96V272.2H137.9L199.6 333.8C201.6 334.6 203.3 335.3 205.3 336.1H262L223.3 300.6C193.9 273.7 192.2 228.3 218.9 199.3C233.7 183.1 280.1 158.1 320.4 194.9L328.6 202.4L436.8 114.6C440.2 111.8 440.7 106.7 438 103.3zM544 144.1H474.8C472.5 146.9 469.9 149.5 467.1 151.8L364.4000000000001 235.2L376.9000000000001 246.6C383.4000000000001 252.6 383.9000000000001 262.7 377.9000000000001 269.2L367 280.9C361 287.4 350.9 287.8 344.4 281.9L289.2 231.3C279.7 222.6 263.5 221.9 254.6 231.3C245.3 241.2 246.1 256.4 255.8 265.2000000000001L321.4 325.3C328.8 332.1 338.4 335.8 348.4 335.8L432.1 336C434.2 336 436.2 335.2000000000001 437.6 333.7000000000001L499.3 272.1H544V144.1zM592 96.4C583.2 96.4 576 103.6 576 112.4S583.2 128.4 592 128.4S608 121.2 608 112.4C608 103.5 600.8 96.4 592 96.4z" />
<glyph glyph-name="hdd"
unicode="&#xF0A0;"
horiz-adv-x="576" d=" M567.403 212.358L462.323 363.411A48 48 0 0 1 422.919 384H153.081A48 48 0 0 1 113.677 363.411L8.597 212.358A48.001 48.001 0 0 1 0 184.946V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V184.946C576 194.747 573 204.312 567.403 212.358zM153.081 336H422.919L500.832 224H75.168L153.081 336zM528 48H48V176H528V48zM496 112C496 94.327 481.673 80 464 80S432 94.327 432 112S446.327 144 464 144S496 129.673 496 112zM400 112C400 94.327 385.673 80 368 80S336 94.327 336 112S350.327 144 368 144S400 129.673 400 112z" />
<glyph glyph-name="heart"
unicode="&#xF004;"
horiz-adv-x="512" d=" M458.4 383.7C400.6 432.3 311.3 425 256 368.7C200.7 425 111.4 432.4 53.6 383.7C-21.6 320.4 -10.6 217.2 43 162.5L218.4 -16.2C228.4 -26.4 241.8 -32.1 256 -32.1C270.3 -32.1 283.6 -26.4999999999999 293.6 -16.3L469 162.4C522.5 217.1 533.7 320.3 458.4 383.7zM434.8 196.2L259.4 17.5C257 15.1 255 15.1 252.6 17.5L77.2 196.2C40.7 233.4 33.3 303.8 84.5 346.9C123.4 379.6 183.4 374.7 221 336.4L256 300.7L291 336.4C328.8 374.9 388.8 379.6 427.5 347C478.6 303.9 471 233.1 434.8 196.2z" />
<glyph glyph-name="hospital"
unicode="&#xF0F8;"
horiz-adv-x="448" d=" M128 204V244C128 250.627 133.373 256 140 256H180C186.627 256 192 250.627 192 244V204C192 197.373 186.627 192 180 192H140C133.373 192 128 197.373 128 204zM268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192zM192 108V148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108zM268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96zM448 -28V-64H0V-28C0 -21.373 5.373 -16 12 -16H31.5V362.9650000000001C31.5 374.582 42.245 384 55.5 384H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V384H392.5C405.755 384 416.5 374.582 416.5 362.9650000000001V-16H436C442.627 -16 448 -21.373 448 -28zM79.5 -15H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-15H368.5V336H304V312C304 298.745 293.255 288 280 288H168C154.745 288 144 298.745 144 312V336H79.5V-15zM266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384z" />
<glyph glyph-name="hourglass"
unicode="&#xF254;"
horiz-adv-x="384" d=" M368 400H372C378.627 400 384 405.373 384 412V436C384 442.627 378.627 448 372 448H12C5.373 448 0 442.627 0 436V412C0 405.373 5.373 400 12 400H16C16 319.4360000000001 48.188 234.193 113.18 192C47.899 149.619 16 64.1 16 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16H368C368 64.564 335.812 149.807 270.82 192C336.102 234.381 368 319.9 368 400zM64 400H320C320 298.38 262.693 216 192 216S64 298.379 64 400zM320 -16H64C64 85.62 121.308 168 192 168S320 85.62 320 -16z" />
<glyph glyph-name="id-badge"
unicode="&#xF2C1;"
horiz-adv-x="384" d=" M336 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V400C384 426.5 362.5 448 336 448zM336 -16H48V400H336V-16zM144 336H240C248.8 336 256 343.2 256 352S248.8 368 240 368H144C135.2 368 128 360.8 128 352S135.2 336 144 336zM192 160C227.3 160 256 188.7 256 224S227.3 288 192 288S128 259.3 128 224S156.7 160 192 160zM102.4 32H281.6C294 32 304 40.6 304 51.2V70.4C304 102.2 273.9 128 236.8 128C226 128 218.1 120 192 120C165.1 120 158.6 128 147.2 128C110.1 128 80 102.2 80 70.4V51.2C80 40.6 90 32 102.4 32z" />
<glyph glyph-name="id-card"
unicode="&#xF2C2;"
horiz-adv-x="576" d=" M528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM528 16H303.2C304.1 20.5 304 12.4 304 38.4C304 70.2 273.9 96 236.8 96C226 96 218.1 88 192 88C165.1 88 158.6 96 147.2 96C110.1 96 80 70.2 80 38.4C80 12.4 79.8 20.5 80.8 16H48V304H528V16zM360 96H472C476.4 96 480 99.6 480 104V120C480 124.4 476.4 128 472 128H360C355.6 128 352 124.4 352 120V104C352 99.6 355.6 96 360 96zM360 160H472C476.4 160 480 163.6 480 168V184C480 188.4 476.4 192 472 192H360C355.6 192 352 188.4 352 184V168C352 163.6 355.6 160 360 160zM360 224H472C476.4 224 480 227.6 480 232V248C480 252.4 476.4 256 472 256H360C355.6 256 352 252.4 352 248V232C352 227.6 355.6 224 360 224zM192 128C227.3 128 256 156.7 256 192S227.3 256 192 256S128 227.3 128 192S156.7 128 192 128z" />
<glyph glyph-name="image"
unicode="&#xF03E;"
horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM458 48H54A6 6 0 0 0 48 54V330A6 6 0 0 0 54 336H458A6 6 0 0 0 464 330V54A6 6 0 0 0 458 48zM128 296C105.909 296 88 278.091 88 256S105.909 216 128 216S168 233.909 168 256S150.091 296 128 296zM96 96H416V176L328.485 263.515C323.7990000000001 268.201 316.201 268.201 311.514 263.515L192 144L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L96 144V96z" />
<glyph glyph-name="images"
unicode="&#xF302;"
horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V272H54A6 6 0 0 1 48 266V22A6 6 0 0 1 54 16H426A6 6 0 0 1 432 22V32H480zM522 368H150A6 6 0 0 1 144 362V118A6 6 0 0 1 150 112H522A6 6 0 0 1 528 118V362A6 6 0 0 1 522 368zM528 416C554.51 416 576 394.51 576 368V112C576 85.49 554.51 64 528 64H144C117.49 64 96 85.49 96 112V368C96 394.51 117.49 416 144 416H528zM264 304C264 281.909 246.091 264 224 264S184 281.909 184 304S201.909 344 224 344S264 326.091 264 304zM192 208L231.515 247.515C236.201 252.201 243.799 252.201 248.486 247.515L288 208L391.515 311.515C396.201 316.201 403.799 316.201 408.486 311.515L480 240V160H192V208z" />
<glyph glyph-name="keyboard"
unicode="&#xF11C;"
horiz-adv-x="576" d=" M528 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V336C576 362.51 554.51 384 528 384zM536 48C536 43.589 532.411 40 528 40H48C43.589 40 40 43.589 40 48V336C40 340.411 43.589 344 48 344H528C532.411 344 536 340.411 536 336V48zM170 178V206C170 212.627 164.627 218 158 218H130C123.373 218 118 212.627 118 206V178C118 171.373 123.373 166 130 166H158C164.627 166 170 171.373 170 178zM266 178V206C266 212.627 260.627 218 254 218H226C219.373 218 214 212.627 214 206V178C214 171.373 219.373 166 226 166H254C260.627 166 266 171.373 266 178zM362 178V206C362 212.627 356.627 218 350 218H322C315.373 218 310 212.627 310 206V178C310 171.373 315.373 166 322 166H350C356.627 166 362 171.373 362 178zM458 178V206C458 212.627 452.627 218 446 218H418C411.373 218 406 212.627 406 206V178C406 171.373 411.373 166 418 166H446C452.627 166 458 171.373 458 178zM122 96V124C122 130.627 116.627 136 110 136H82C75.373 136 70 130.627 70 124V96C70 89.373 75.373 84 82 84H110C116.627 84 122 89.373 122 96zM506 96V124C506 130.627 500.627 136 494 136H466C459.373 136 454 130.627 454 124V96C454 89.373 459.373 84 466 84H494C500.627 84 506 89.373 506 96zM122 260V288C122 294.627 116.627 300 110 300H82C75.373 300 70 294.627 70 288V260C70 253.373 75.373 248 82 248H110C116.627 248 122 253.373 122 260zM218 260V288C218 294.627 212.627 300 206 300H178C171.373 300 166 294.627 166 288V260C166 253.373 171.373 248 178 248H206C212.627 248 218 253.373 218 260zM314 260V288C314 294.627 308.627 300 302 300H274C267.373 300 262 294.627 262 288V260C262 253.373 267.373 248 274 248H302C308.627 248 314 253.373 314 260zM410 260V288C410 294.627 404.627 300 398 300H370C363.373 300 358 294.627 358 288V260C358 253.373 363.373 248 370 248H398C404.627 248 410 253.373 410 260zM506 260V288C506 294.627 500.627 300 494 300H466C459.373 300 454 294.627 454 288V260C454 253.373 459.373 248 466 248H494C500.627 248 506 253.373 506 260zM408 102V118C408 124.627 402.627 130 396 130H180C173.373 130 168 124.627 168 118V102C168 95.373 173.373 90 180 90H396C402.627 90 408 95.373 408 102z" />
<glyph glyph-name="kiss-beam"
unicode="&#xF597;"
horiz-adv-x="496" d=" M168 296C144.2 296 115.3 266.7 112 224.6C111.7 220.9 114 217.4 117.6 216.3C121.1 215.3 125.1 216.8 126.9 220L136.4 237C144.1 250.7 155.6 258.6 167.9 258.6S191.7 250.7 199.4 237L208.9 220C211 216.3 215.1 215.3 218.2 216.3C221.8 217.4 224.1 220.8 223.8 224.6C220.7 266.7 191.8 296 168 296zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274 217.4 277.6 216.3C281.1 215.3 285.1 216.8 286.9000000000001 220L296.4000000000001 237C304.1 250.7 315.6 258.6 327.9000000000001 258.6S351.7000000000001 250.7 359.4000000000001 237L368.9000000000001 220C371.0000000000001 216.3 375.1 215.3 378.2000000000001 216.3C381.8000000000001 217.4 384.1 220.8 383.8000000000001 224.6C380.7000000000001 266.7 351.8000000000001 296 328.0000000000001 296z" />
<glyph glyph-name="kiss-wink-heart"
unicode="&#xF598;"
horiz-adv-x="504" d=" M304 139.5C304 158.7 275.2 181 232.5 183.5C228.7 183.9 225.1 181.1 224.3 177.3C223.4 173.5 225.4 169.6 229 168.1L245.9 160.9C258.9 155.4 266.7 147.4 266.7 139.4S258.9 123.4 246 117.9L229 110.7000000000001C223.3 108.3000000000001 223 98.5000000000001 229 95.9L245.9 88.7000000000001C258.9 83.2000000000001 266.7 75.2000000000001 266.7 67.2000000000001S258.9 51.2 246 45.7L229 38.5000000000001C225.4 37.0000000000001 223.4 33.1000000000001 224.3 29.3000000000001C225.1 25.7 228.4 23.1000000000001 232.1 23.1000000000001H232.6C275.4000000000001 25.6000000000001 304.1 47.9000000000001 304.1 67.1000000000001C304.1 80.1000000000001 290.7000000000001 94.4000000000001 268.9000000000001 103.1000000000001C290.6 112.2000000000001 304.0000000000001 126.5000000000001 304.0000000000001 139.5000000000001zM374.5 223L384 214.5C387.8 211.2 393.3 210.5 397.7 212.9C402.1 215.3 404.6 220.3 403.8 225.3C399.8 250.5 369.6 267.4 344 267.4S288.1 250.5 284.2 225.3C283.4 220.3 285.9 215.3 290.3 212.9C296.1 209.8 301.5 212.2 304 214.5L313.5 223C328.3 236.2 359.7 236.2 374.5 223zM136 239.5C136 221.8 150.3 207.5 168 207.5S200 221.8 200 239.5S185.7 271.5 168 271.5S136 257.2 136 239.5zM501.1 45.5C493.1 66.3 469.6 77 448 71.4L439.6 69.2L437.3 77.6C431.4000000000001 98.9999999999999 410.3 114.1 388.3 110.6C363.1 106.6 347.7 81.9999999999999 354.3 57.9999999999999L377.2 -24.6C378.7 -29.9 384.2 -33.1 389.6 -31.7L472.6 -10.2C496.7 -3.9 510.3 21.6 501.1 45.4999999999999zM334 11.7C307.9 -0.8 278.8 -8 248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192C448 169.9 444.3 148.7 437.6 128.8C446.6 122.4 454.6 114.6 460.2 104.9C466.6 104.8 472.8000000000001 103.5000000000001 478.8000000000001 102.0000000000001C489.7 129.9 495.9000000000001 160.2000000000001 495.9000000000001 192.0000000000001C496 329 385 440 248 440S0 329 0 192S111 -56 248 -56C283.4 -56 316.9 -48.5 347.4 -35.1C344.9 -27.8 351.7 -52.3 334 11.7z" />
<glyph glyph-name="kiss"
unicode="&#xF596;"
horiz-adv-x="496" d=" M168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM304 140C304 159.2 275.2 181.5 232.5 184C228.7 184.4 225.1 181.6 224.3 177.8C223.4 174 225.4 170.1 229 168.6L245.9 161.4C258.9 155.9 266.7 147.9 266.7 139.9S258.9 123.9 246 118.4L229 111.2000000000001C223.3 108.8000000000001 223 99.0000000000001 229 96.4L245.9 89.2000000000001C258.9 83.7000000000001 266.7 75.7000000000001 266.7 67.7000000000001S258.9 51.7 246 46.2L229 39.0000000000001C225.4 37.5000000000001 223.4 33.6000000000001 224.3 29.8000000000001C225.1 26.2 228.4 23.6000000000001 232.1 23.6000000000001H232.6C275.4000000000001 26.1000000000001 304.1 48.4000000000001 304.1 67.6000000000001C304.1 80.6000000000001 290.7000000000001 94.9000000000001 268.9000000000001 103.6000000000001C290.6 112.7 304 127 304 140zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
<glyph glyph-name="laugh-beam"
unicode="&#xF59A;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 296C304.2 296 275.3 266.7 272 224.6C271.3 216 282.8 212.7 286.9 220.1L296.4 237.1C304.1 250.8 315.6 258.7 327.9 258.7S351.7 250.8 359.4 237.1L368.9 220.1C373 212.7 384.5 216.1 383.8 224.6C380.7 266.7 351.8 296 328 296zM127 220.1L136.5 237.1C144.2 250.8 155.7 258.7 168 258.7S191.8 250.8 199.5 237.1L209 220.1C213.1 212.7 224.6 216.1 223.9 224.6C220.6 266.7 191.7 296 167.9 296S115.2 266.7 111.9 224.6C111.3 216.1 122.8 212.7 127 220.1zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
<glyph glyph-name="laugh-squint"
unicode="&#xF59B;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM343.6 252L377.2000000000001 292.3C385.8000000000001 302.6 373.4000000000001 317.1 361.8000000000001 310.3L281.8000000000001 262.3C274.0000000000001 257.6 274.0000000000001 246.4 281.8000000000001 241.7L361.8000000000001 193.7C373.3000000000001 186.9 385.8000000000001 201.3 377.2000000000001 211.7L343.6 252zM134.2 193.7L214.2 241.7C222 246.4 222 257.6 214.2 262.3L134.2 310.3C122.6 317.2 110.2 302.6 118.8 292.3L152.4 252L118.8 211.7C110.1 201.3 122.6 186.9 134.2 193.7zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
<glyph glyph-name="laugh-wink"
unicode="&#xF59C;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6C68.8 88.4 48 138.6 48 192S68.8 295.6 106.6 333.4C144.4 371.2 194.6 392 248 392S351.6 371.2 389.4 333.4C427.2 295.6 448 245.4 448 192S427.2 88.4 389.4 50.6zM328 284C302.3 284 272.1 267.1 268.1 241.9C266.4000000000001 230.7 279.6 223.7 287.9000000000001 231.1L297.4000000000001 239.6C312.2000000000001 252.8 343.6 252.8 358.4000000000001 239.6L367.9000000000001 231.1C376.4000000000001 223.7 389.5000000000001 230.8 387.7000000000001 241.9C383.9000000000001 267.1 353.7000000000001 284 328.0000000000001 284zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
<glyph glyph-name="laugh"
unicode="&#xF599;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM389.4 50.6C351.6 12.8 301.4 -8 248 -8S144.4 12.8 106.6 50.6S48 138.6 48 192S68.8 295.6 106.6 333.4S194.6 392 248 392S351.6 371.2 389.4 333.4S448 245.4 448 192S427.2 88.4 389.4 50.6zM328 224C345.7 224 360 238.3 360 256S345.7 288 328 288S296 273.7 296 256S310.3 224 328 224zM168 224C185.7 224 200 238.3 200 256S185.7 288 168 288S136 273.7 136 256S150.3 224 168 224zM362.4 160H133.6C125.4 160 119.1 153 120.1 145C127.6 85.8 179 40 241.2 40H254.8C317 40 368.4 85.8 375.9 145C376.9 153 370.6 160 362.4 160z" />
<glyph glyph-name="lemon"
unicode="&#xF094;"
horiz-adv-x="512" d=" M484.112 420.111C455.989 448.233 416.108 456.057 387.0590000000001 439.135C347.604 416.152 223.504 489.111 91.196 356.803C-41.277 224.328 31.923 100.528 8.866 60.942C-8.056 31.891 -0.234 -7.99 27.888 -36.112C56.023 -64.247 95.899 -72.0499999999999 124.945 -55.133C164.368 -32.163 288.502 -105.102 420.803 27.196C553.277 159.673 480.076 283.473 503.134 323.057C520.056 352.1070000000001 512.234 391.988 484.112 420.111zM461.707 347.217C422.907 280.608 507.307 181.582 386.862 61.137C266.422 -59.306 167.387 25.089 100.786 -13.706C78.1069999999999 -26.913 36.751 13.535 50.2929999999999 36.782C89.0929999999999 103.391 4.6929999999999 202.417 125.138 322.862C245.573 443.298 344.616 358.914 411.219 397.708C433.949 410.948 475.224 370.42 461.707 347.217zM291.846 338.481C293.216 327.521 285.442 317.524 274.481 316.154C219.635 309.299 138.702 228.367 131.846 173.519C130.473 162.53 120.447 154.785 109.52 156.154C98.559 157.524 90.785 167.52 92.155 178.48C101.317 251.766 196.322 346.6950000000001 269.5200000000001 355.8450000000001C280.473 357.213 290.4760000000001 349.442 291.8460000000001 338.481z" />
<glyph glyph-name="life-ring"
unicode="&#xF1CD;"
horiz-adv-x="512" d=" M256 -56C392.967 -56 504 55.033 504 192S392.967 440 256 440S8 328.967 8 192S119.033 -56 256 -56zM152.602 20.72L206.013 74.131C237.819 60.625 274.141 60.609 305.987 74.131L359.398 20.72C296.1810000000001 -17.599 215.819 -17.599 152.602 20.72zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192zM427.28 88.602L373.869 142.013C387.374 173.819 387.391 210.141 373.869 241.987L427.28 295.398C465.599 232.181 465.599 151.819 427.28 88.602zM359.397 363.28L305.986 309.8690000000001C274.18 323.374 237.858 323.391 206.013 309.8690000000001L152.602 363.28C215.819 401.599 296.1810000000001 401.599 359.397 363.28zM84.72 295.398L138.131 241.987C124.625 210.181 124.609 173.859 138.131 142.013L84.72 88.602C46.401 151.819 46.401 232.181 84.72 295.398z" />
<glyph glyph-name="lightbulb"
unicode="&#xF0EB;"
horiz-adv-x="352" d=" M176 368C123.06 368 80 324.94 80 272C80 263.16 87.16 256 96 256S112 263.16 112 272C112 307.3 140.72 336 176 336C184.84 336 192 343.16 192 352S184.84 368 176 368zM96.06 -11.17C96.06 -14.32 96.99 -17.39 98.74 -20.01L123.25 -56.85C126.22 -61.31 131.22 -63.99 136.57 -63.99H215.42C220.78 -63.99 225.7800000000001 -61.31 228.74 -56.85L253.25 -20.01C254.99 -17.39 255.92 -14.31 255.93 -11.17L255.98 32.01H96.02L96.06 -11.17zM176 448C73.72 448 0 365.03 0 272C0 227.63 16.45 187.15 43.56 156.22C60.2 137.23 86.3 97.42 95.98 64.0600000000001V64.0000000000001H143.98V64.1200000000001C143.97 68.89 143.26 73.6300000000001 141.83 78.1900000000001C136.24 96.0000000000001 119.01 142.96 79.66 187.8600000000001C59.12 211.2900000000001 48.14 241.0100000000001 48.05 272.0000000000001C47.85 345.6400000000001 107.72 400.0000000000001 176 400.0000000000001C246.58 400.0000000000001 304 342.5800000000001 304 272.0000000000001C304 241.0300000000001 292.76 211.1500000000001 272.35 187.8600000000001C233.24 143.2500000000001 215.93 96.3900000000001 210.25 78.4000000000001A47.507 47.507 0 0 1 208.03 64.1000000000001V64.0000000000001H256.0300000000001V64.0500000000001C265.7100000000001 97.4200000000001 291.8100000000001 137.2300000000001 308.4500000000001 156.21C335.55 187.15 352 227.63 352 272C352 369.2 273.2 448 176 448z" />
<glyph glyph-name="list-alt"
unicode="&#xF022;"
horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM458 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H458A6 6 0 0 0 464 362V22A6 6 0 0 0 458 16zM416 108V84C416 77.373 410.627 72 404 72H204C197.373 72 192 77.373 192 84V108C192 114.627 197.373 120 204 120H404C410.627 120 416 114.627 416 108zM416 204V180C416 173.373 410.627 168 404 168H204C197.373 168 192 173.373 192 180V204C192 210.627 197.373 216 204 216H404C410.627 216 416 210.627 416 204zM416 300V276C416 269.373 410.627 264 404 264H204C197.373 264 192 269.373 192 276V300C192 306.627 197.373 312 204 312H404C410.627 312 416 306.627 416 300zM164 288C164 268.118 147.882 252 128 252S92 268.118 92 288S108.118 324 128 324S164 307.882 164 288zM164 192C164 172.118 147.882 156 128 156S92 172.118 92 192S108.118 228 128 228S164 211.882 164 192zM164 96C164 76.118 147.882 60 128 60S92 76.118 92 96S108.118 132 128 132S164 115.882 164 96z" />
<glyph glyph-name="map"
unicode="&#xF279;"
horiz-adv-x="576" d=" M560.02 416C558.06 416 556.04 415.63 554.06 414.8400000000001L384.01 352H384L212 412.7200000000001A64.252 64.252 0 0 1 191.76 416C185.07 416 178.39 414.95 171.95 412.86L20.12 360.05A32.006 32.006 0 0 1 0 330.3400000000001V-15.98C0 -25.17 7.53 -32 15.99 -32C17.95 -32 19.96 -31.63 21.95 -30.84L192 32L364 -28.71A63.97999999999999 63.97999999999999 0 0 1 404.05 -28.86L555.88 23.95A31.996 31.996 0 0 1 576 53.66V399.98C576 409.17 568.47 416 560.02 416zM224 357.58L352 312.39V26.42L224 71.61V357.58zM48 29.95V318.93L176 363.4600000000001V77.26L175.36 77.03L48 29.95zM528 65.08L400 20.55V306.74L400.64 306.98L528 354.05V65.08z" />
<glyph glyph-name="meh-blank"
unicode="&#xF5A4;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 272C150.3 272 136 257.7 136 240S150.3 208 168 208S200 222.3 200 240S185.7 272 168 272zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
<glyph glyph-name="meh-rolling-eyes"
unicode="&#xF5A5;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM336 296C296.2 296 264 263.8 264 224S296.2 152 336 152S408 184.2 408 224S375.8 296 336 296zM336 184C313.9 184 296 201.9 296 224C296 237.6 303.3 249.1 313.7 256.3C312.7 253.7 312 251 312 248C312 234.7 322.7 224 336 224S360 234.7 360 248C360 250.9 359.3 253.7 358.3 256.3C368.7 249.1 376 237.6 376 224C376 201.9 358.1 184 336 184zM232 224C232 263.8 199.8 296 160 296S88 263.8 88 224S120.2 152 160 152S232 184.2 232 224zM120 224C120 237.6 127.3 249.1 137.7 256.3C136.7 253.7 136 251 136 248C136 234.7 146.7 224 160 224S184 234.7 184 248C184 250.9 183.3 253.7 182.3 256.3C192.7 249.1 200 237.6 200 224C200 201.9 182.1 184 160 184S120 201.9 120 224zM312 96H184C170.8 96 160 85.2 160 72S170.8 48 184 48H312C325.2 48 336 58.8 336 72S325.2 96 312 96z" />
<glyph glyph-name="meh"
unicode="&#xF11A;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM336 128H160C146.8 128 136 117.2 136 104S146.8 80 160 80H336C349.2 80 360 90.8 360 104S349.2 128 336 128z" />
<glyph glyph-name="minus-square"
unicode="&#xF146;"
horiz-adv-x="448" d=" M108 164C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H340C346.6 220 352 214.6 352 208V176C352 169.4 346.6 164 340 164H108zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="money-bill-alt"
unicode="&#xF3D1;"
horiz-adv-x="640" d=" M320 304C266.98 304 224 253.86 224 192C224 130.15 266.98 80 320 80C373 80 416 130.13 416 192C416 253.86 373.02 304 320 304zM360 136C360 131.58 356.42 128 352 128H288C283.58 128 280 131.58 280 136V152C280 156.42 283.58 160 288 160H304V215.44L303.53 215.13A7.991999999999999 7.991999999999999 0 0 0 292.44 217.35L283.56 230.66A7.991999999999999 7.991999999999999 0 0 0 285.7800000000001 241.75L301.11 251.97A23.99 23.99 0 0 0 314.42 256H328C332.42 256 336 252.42 336 248V160H352C356.42 160 360 156.42 360 152V136zM608 384H32C14.33 384 0 369.67 0 352V32C0 14.33 14.33 0 32 0H608C625.67 0 640 14.33 640 32V352C640 369.67 625.67 384 608 384zM592 112C556.65 112 528 83.35 528 48H112C112 83.35 83.35 112 48 112V272C83.35 272 112 300.65 112 336H528C528 300.65 556.65 272 592 272V112z" />
<glyph glyph-name="moon"
unicode="&#xF186;"
horiz-adv-x="512" d=" M279.135 -64C357.891 -64 430.117 -28.196 477.979 30.775C506.249 65.606 475.421 116.497 431.73 108.176C349.382 92.493 273.458 155.444 273.458 238.968C273.458 287.392 299.518 331.26 340.892 354.804C379.637 376.854 369.891 435.592 325.87 443.723A257.936 257.936 0 0 1 279.135 448C137.775 448 23.135 333.425 23.135 192C23.135 50.64 137.711 -64 279.135 -64zM279.135 400C292.12 400 304.824 398.799 317.151 396.522C262.391 365.359 225.4580000000001 306.48 225.4580000000001 238.968C225.4580000000001 125.12 329.0990000000001 39.768 440.7100000000001 61.024C402.574 14.036 344.366 -16 279.135 -16C164.26 -16 71.135 77.125 71.135 192S164.26 400 279.135 400z" />
<glyph glyph-name="newspaper"
unicode="&#xF1EA;"
horiz-adv-x="576" d=" M552 384H112C91.142 384 73.357 370.623 66.752 352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H552C565.255 0 576 10.745 576 24V360C576 373.255 565.255 384 552 384zM48 56V304H64V56C64 51.589 60.411 48 56 48S48 51.589 48 56zM528 48H111.422C111.796 50.614 112 53.283 112 56V336H528V48zM172 168H308C314.627 168 320 173.373 320 180V276C320 282.627 314.627 288 308 288H172C165.373 288 160 282.627 160 276V180C160 173.373 165.373 168 172 168zM200 248H280V208H200V248zM160 108V132C160 138.627 165.373 144 172 144H308C314.627 144 320 138.627 320 132V108C320 101.373 314.627 96 308 96H172C165.373 96 160 101.373 160 108zM352 108V132C352 138.627 357.373 144 364 144H468C474.627 144 480 138.627 480 132V108C480 101.373 474.627 96 468 96H364C357.373 96 352 101.373 352 108zM352 252V276C352 282.627 357.373 288 364 288H468C474.627 288 480 282.627 480 276V252C480 245.373 474.627 240 468 240H364C357.373 240 352 245.373 352 252zM352 180V204C352 210.627 357.373 216 364 216H468C474.627 216 480 210.627 480 204V180C480 173.373 474.627 168 468 168H364C357.373 168 352 173.373 352 180z" />
<glyph glyph-name="object-group"
unicode="&#xF247;"
horiz-adv-x="512" d=" M500 320C506.627 320 512 325.373 512 332V404C512 410.627 506.627 416 500 416H428C421.373 416 416 410.627 416 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V64H12C5.373 64 0 58.627 0 52V-20C0 -26.627 5.373 -32 12 -32H84C90.627 -32 96 -26.627 96 -20V-8H416V-20C416 -26.627 421.373 -32 428 -32H500C506.627 -32 512 -26.627 512 -20V52C512 58.627 506.627 64 500 64H488V320H500zM448 384H480V352H448V384zM32 384H64V352H32V384zM64 0H32V32H64V0zM480 0H448V32H480V0zM440 64H428C421.373 64 416 58.627 416 52V40H96V52C96 58.627 90.627 64 84 64H72V320H84C90.627 320 96 325.373 96 332V344H416V332C416 325.373 421.373 320 428 320H440V64zM404 256H320V308C320 314.628 314.627 320 308 320H108C101.373 320 96 314.628 96 308V140C96 133.372 101.373 128 108 128H192V76C192 69.372 197.373 64 204 64H404C410.627 64 416 69.372 416 76V244C416 250.628 410.627 256 404 256zM136 280H280V168H136V280zM376 104H232V128H308C314.627 128 320 133.372 320 140V216H376V104z" />
<glyph glyph-name="object-ungroup"
unicode="&#xF248;"
horiz-adv-x="576" d=" M564 224C570.627 224 576 229.373 576 236V308C576 314.627 570.627 320 564 320H492C485.373 320 480 314.627 480 308V296H392V320H404C410.627 320 416 325.373 416 332V404C416 410.627 410.627 416 404 416H332C325.373 416 320 410.627 320 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V160H12C5.373 160 0 154.627 0 148V76C0 69.373 5.373 64 12 64H84C90.627 64 96 69.373 96 76V88H184V64H172C165.373 64 160 58.627 160 52V-20C160 -26.627 165.373 -32 172 -32H244C250.627 -32 256 -26.627 256 -20V-8H480V-20C480 -26.627 485.373 -32 492 -32H564C570.627 -32 576 -26.627 576 -20V52C576 58.627 570.627 64 564 64H552V224H564zM352 384H384V352H352V384zM352 128H384V96H352V128zM64 96H32V128H64V96zM64 352H32V384H64V352zM96 136V148C96 154.627 90.627 160 84 160H72V320H84C90.627 320 96 325.373 96 332V344H320V332C320 325.373 325.373 320 332 320H344V160H332C325.373 160 320 154.627 320 148V136H96zM224 0H192V32H224V0zM504 64H492C485.373 64 480 58.627 480 52V40H256V52C256 58.627 250.627 64 244 64H232V88H320V76C320 69.373 325.373 64 332 64H404C410.627 64 416 69.373 416 76V148C416 154.627 410.627 160 404 160H392V248H480V236C480 229.373 485.373 224 492 224H504V64zM544 0H512V32H544V0zM544 256H512V288H544V256z" />
<glyph glyph-name="paper-plane"
unicode="&#xF1D8;"
horiz-adv-x="512" d=" M440 441.5L24 201.6C-10.4 181.7 -7.1 130.8 29.7 115.7L144 68.4V-16C144 -62.4 203.2 -81.5 230.6 -44.6L274.4 14.5L386.3 -31.7C392.2 -34.1 398.4 -35.3 404.6 -35.3C412.8 -35.3 420.9 -33.2 428.2 -29.1C441 -21.9 449.8 -9.1 452.1 5.4L511.4999999999999 392.6C517.5999999999999 432.7 474.6 461.4 440 441.5zM192 -16V48.6L228.6 33.5L192 -16zM404.6 12.7L250.8 76.2L391 278.5C401.7 294 381.5 312 367.3 299.7L155.8 115.4L48 160L464 400L404.6 12.7z" />
<glyph glyph-name="pause-circle"
unicode="&#xF28B;"
horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM352 272V112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272zM240 272V112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272z" />
<glyph glyph-name="play-circle"
unicode="&#xF144;"
horiz-adv-x="512" d=" M371.7 210L195.7 317C179.9 325.8 160 314.5 160 296V88C160 69.6 179.8 58.2 195.7 67L371.7 168C388.1 177.1 388.1 200.8 371.7 210zM504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192z" />
<glyph glyph-name="plus-square"
unicode="&#xF0FE;"
horiz-adv-x="448" d=" M352 208V176C352 169.4 346.6 164 340 164H252V76C252 69.4 246.6 64 240 64H208C201.4 64 196 69.4 196 76V164H108C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H196V308C196 314.6 201.4 320 208 320H240C246.6 320 252 314.6 252 308V220H340C346.6 220 352 214.6 352 208zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
<glyph glyph-name="question-circle"
unicode="&#xF059;"
horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 -8C145.468 -8 56 81.431 56 192C56 302.495 145.472 392 256 392C366.491 392 456 302.529 456 192C456 81.47 366.569 -8 256 -8zM363.2440000000001 247.2C363.2440000000001 180.148 290.8230000000001 179.116 290.8230000000001 154.337V148C290.8230000000001 141.373 285.4500000000001 136 278.8230000000001 136H233.1760000000001C226.5490000000001 136 221.1760000000001 141.373 221.1760000000001 148V156.659C221.1760000000001 192.404 248.2760000000001 206.693 268.7550000000001 218.175C286.3160000000001 228.02 297.0790000000001 234.716 297.0790000000001 247.754C297.0790000000001 265 275.0800000000001 276.447 257.2950000000001 276.447C234.1060000000001 276.447 223.4010000000001 265.4700000000001 208.3530000000001 246.478C204.2960000000001 241.358 196.8930000000001 240.407 191.6870000000001 244.354L163.8630000000001 265.452C158.7560000000001 269.324 157.6120000000001 276.5180000000001 161.2190000000001 281.815C184.846 316.509 214.94 336 261.794 336C310.865 336 363.244 297.6960000000001 363.244 247.2zM298 80C298 56.841 279.159 38 256 38S214 56.841 214 80S232.841 122 256 122S298 103.159 298 80z" />
<glyph glyph-name="registered"
unicode="&#xF25D;"
horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM366.442 73.791C313.396 170.075 316.192 165.259 313.171 169.876C337.438 183.755 352.653 211.439 352.653 243.052C352.653 295.555 322.406 328.304 251.1550000000001 328.304H172.488C165.8710000000001 328.304 160.488 322.921 160.488 316.304V68C160.488 61.383 165.8710000000001 56 172.488 56H211.0560000000001C217.673 56 223.0560000000001 61.383 223.0560000000001 68V151.663H255.0140000000001L302.5290000000001 62.36A11.98 11.98 0 0 1 313.1220000000001 56H355.9320000000001C365.0720000000001 56 370.8460000000001 65.799 366.4420000000001 73.791zM256.933 208.094H223.058V272.234H250.435C282.852 272.234 289.3640000000001 260.101 289.3640000000001 240.525C289.3630000000001 219.612 277.846 208.094 256.9330000000001 208.094z" />
<glyph glyph-name="sad-cry"
unicode="&#xF5B3;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM392 53.6V168C392 181.2 381.2 192 368 192S344 181.2 344 168V16.6C315.5 1 282.8 -8 248 -8S180.5 1 152 16.6V168C152 181.2 141.2 192 128 192S104 181.2 104 168V53.6C69.4 89.6 48 138.3 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 138.3 426.6 89.5 392 53.6zM205.8 213.5C210.2 215.9 212.7 220.9 211.9 225.9C207.9 251.1 177.7 268 152.1 268S96.2 251.1 92.3 225.9C91.5 220.9 94 215.9 98.4 213.5C102.8 211.1 108.3 211.7 112.1 215.1L121.6 223.6C136.4 236.8 167.8 236.8 182.6 223.6L192.1 215.1C194.6 212.8 200 210.3 205.8 213.5zM344 268C318.3 268 288.1 251.1 284.2 225.9C283.4 220.9 285.9 215.9 290.3 213.5C294.8 211.1 300.2 211.7 304 215.1L313.5 223.6C328.3 236.8 359.7 236.8 374.5 223.6L384 215.1C386.5 212.9 392 210.4 397.7 213.5C402.1 215.9 404.6 220.9 403.8 225.9C399.9000000000001 251.1 369.7 268 344 268zM248 176C217.1 176 192 147.3 192 112S217.1 48 248 48S304 76.7 304 112S278.9 176 248 176z" />
<glyph glyph-name="sad-tear"
unicode="&#xF5B4;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM256 144C242.8 144 232 133.2 232 120S242.8 96 256 96C279.8 96 302.3 85.5 317.6 67.2C325.7000000000001 57.4 340.8 55.3 351.4000000000001 64.1C361.6 72.6 363.0000000000001 87.7 354.5000000000001 97.9C330 127.2 294.1 144 256 144zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272zM162.4 173.2C151 157.9 126 122.6 126 105.1C126 82.4 144.8 64 168 64S210 82.4 210 105.1C210 122.6 185 157.9 173.6 173.2000000000001C170.8 176.9 165.2 176.9 162.4 173.2000000000001z" />
<glyph glyph-name="save"
unicode="&#xF0C7;"
horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM272 368V288H144V368H272zM394 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H96V264C96 250.745 106.745 240 120 240H296C309.255 240 320 250.745 320 264V364.118L398.243 285.875A6 6 0 0 0 400 281.632V22A6 6 0 0 0 394 16zM224 216C175.477 216 136 176.523 136 128S175.477 40 224 40S312 79.477 312 128S272.523 216 224 216zM224 88C201.944 88 184 105.944 184 128S201.944 168 224 168S264 150.056 264 128S246.056 88 224 88z" />
<glyph glyph-name="share-square"
unicode="&#xF14D;"
horiz-adv-x="576" d=" M561.938 289.94L417.94 433.908C387.926 463.922 336 442.903 336 399.968V342.77C293.55 340.89 251.97 336.2200000000001 215.24 324.7800000000001C180.07 313.8300000000001 152.17 297.2000000000001 132.33 275.36C108.22 248.8 96 215.4 96 176.06C96 114.363 129.178 63.605 180.87 31.3C218.416 7.792 266.118 43.951 251.89 87.04C236.375 134.159 234.734 157.963 336 165.8V112C336 69.007 387.968 48.087 417.94 78.06L561.938 222.06C580.688 240.8 580.688 271.2 561.938 289.94zM384 112V215.84C255.309 213.918 166.492 192.65 206.31 72C176.79 90.45 144 123.92 144 176.06C144 285.394 273.14 295.007 384 295.91V400L528 256L384 112zM408.74 27.507A82.658 82.658 0 0 1 429.714 36.81C437.69 41.762 448 35.984 448 26.596V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H180C186.627 384 192 378.627 192 372V367.514C192 362.597 189.013 358.145 184.431 356.362C170.729 351.031 158.035 344.825 146.381 337.777A12.138 12.138 0 0 0 140.101 336H54A6 6 0 0 1 48 330V-10A6 6 0 0 1 54 -16H394A6 6 0 0 1 400 -10V15.966C400 21.336 403.579 26.025 408.74 27.507z" />
<glyph glyph-name="smile-beam"
unicode="&#xF5B8;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.4 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.6 146.9 340.5 145.6 332 135.4zM136.5 237C144.2 250.7 155.7 258.6 168 258.6S191.8 250.7 199.5 237L209 220C211.1 216.3 215.2 215.3 218.3 216.3C221.9 217.4 224.3 220.8 224 224.6C220.7 266.7000000000001 191.8 296 168 296S115.3 266.7000000000001 112 224.6C111.7 220.9 114.1 217.4 117.7 216.3C121.1 215.2 125.1 216.8 127 220L136.5 237zM328 296C304.2 296 275.3 266.7 272 224.6C271.7 220.9 274.1 217.4 277.7 216.3C281.2 215.2 285.1 216.8 287 220L296.5 237C304.2 250.7 315.7 258.6 328 258.6S351.8 250.7 359.5 237L369 220C371.1 216.3 375.2 215.3 378.3 216.3C381.9000000000001 217.4 384.3 220.8 384 224.6C380.7 266.7 351.8 296 328 296z" />
<glyph glyph-name="smile-wink"
unicode="&#xF4DA;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM365.8 138.4C355.6 146.9 340.5 145.5 332 135.3C311.2 110.3 280.5 95.9 248 95.9S184.8 110.2 164 135.3C155.5 145.5 140.3 146.8 130.2 138.4C120 129.9 118.7 114.8 127.1 104.6C157.1 68.6 201.2 47.9999999999999 248 47.9999999999999S338.9 68.6 368.9 104.6C377.4 114.8 376 129.9 365.8 138.4zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 268C302.3 268 272.1 251.1 268.1 225.9C266.4000000000001 214.7 279.6 207.7 287.9000000000001 215.1L297.4000000000001 223.6C312.2000000000001 236.8 343.6 236.8 358.4000000000001 223.6L367.9000000000001 215.1C376.4000000000001 207.7 389.5000000000001 214.8 387.7000000000001 225.9C383.9000000000001 251.1 353.7000000000001 268 328.0000000000001 268z" />
<glyph glyph-name="smile"
unicode="&#xF118;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM168 208C185.7 208 200 222.3 200 240S185.7 272 168 272S136 257.7 136 240S150.3 208 168 208zM328 208C345.7 208 360 222.3 360 240S345.7 272 328 272S296 257.7 296 240S310.3 208 328 208zM332 135.4C311.2 110.4 280.5 96 248 96S184.8 110.3 164 135.4C155.5 145.6 140.3 146.9 130.2 138.5C120 130 118.7 114.9 127.1 104.7C157.1 68.7 201.2 48.1 248 48.1S338.9 68.7 368.9 104.7C377.4 114.9 376 130 365.8 138.5C355.7 146.9 340.5 145.6 332 135.4z" />
<glyph glyph-name="snowflake"
unicode="&#xF2DC;"
horiz-adv-x="448" d=" M438.237 92.073L371.663 130.613L431.111 140.94C436.957 142.315 441.72 146.123 444.569 151.07C447.0490000000001 155.377 448.075 160.548 447.093 165.721C444.983 176.836 434.4070000000001 183.76 423.4720000000001 181.188L338.0490000000001 150.073L255.914 192L338.05 233.926L423.473 202.811C434.409 200.239 444.985 207.163 447.094 218.278C449.205 229.393 442.048 240.487 431.113 243.059L371.665 253.386L438.238 291.926C447.778 297.449 450.853 310.018 445.105 320C439.357 329.982 426.965 333.596 417.425 328.074L350.851 289.534L371.656 346.3210000000001C374.902 357.103 368.898 368.863 358.243 372.589C347.589 376.314 336.3209999999999 370.592 333.075 359.81L317.2369999999999 270.075L244.8139999999999 228.149V312L314.3989999999999 370.621C322.0879999999999 378.831 321.3959999999999 391.4770000000001 312.8509999999999 398.866C304.3059999999999 406.257 291.1459999999999 405.589 283.4569999999999 397.38L244.8129999999999 350.92V428C244.8129999999999 439.046 235.4949999999999 448 223.9999999999999 448S203.1869999999999 439.046 203.1869999999999 428V350.92L164.5429999999999 397.38C156.8539999999999 405.5900000000001 143.6939999999999 406.256 135.1489999999999 398.866C126.6049999999999 391.477 125.9129999999999 378.831 133.6019999999999 370.621L203.187 312V228.147L130.764 270.073L114.926 359.809C111.679 370.591 100.411 376.313 89.757 372.588C79.101 368.863 73.098 357.102 76.344 346.32L97.149 289.533L30.576 328.073C21.036 333.596 8.643 329.981 2.896 319.999S0.223 297.448 9.763 291.925L76.337 253.385L16.888 243.057C5.953 240.485 -1.202 229.391 0.907 218.276C3.017 207.162 13.593 200.238 24.529 202.81L109.951 233.925L192.086 192L109.95 150.074L24.527 181.189C13.591 183.761 3.016 176.8370000000001 0.905 165.723C-1.204 154.61 5.951 143.514 16.886 140.942L76.335 130.614L9.761 92.074C0.223 86.551 -2.852 73.982 2.896 64S21.036 50.403 30.576 55.926L97.15 94.466L76.345 37.68C74.61 31.916 75.517 25.875 78.365 20.929C80.845 16.622 84.798 13.145 89.757 11.412C100.412 7.687 111.68 13.409 114.926 24.191L130.764 113.927L203.187 155.853V72L133.602 13.379C125.912 5.169 126.605 -7.476 135.149 -14.866C143.693 -22.254 156.854 -21.589 164.543 -13.379L203.187 33.081V-44C203.187 -55.046 212.505 -64 224 -64S244.813 -55.046 244.813 -44V33.081L283.457 -13.379C287.568 -17.768 293.2389999999999 -19.9999999999999 298.935 -19.9999999999999C303.8949999999999 -19.9999999999999 308.874 -18.3059999999999 312.851 -14.8659999999999C321.396 -7.4759999999999 322.088 5.1690000000001 314.399 13.3790000000001L244.813 72V155.853L317.236 113.927L333.074 24.191C336.32 13.409 347.588 7.687 358.242 11.412C368.8950000000001 15.138 374.901 26.8990000000001 371.654 37.6800000000001L350.849 94.467L417.423 55.927C426.963 50.404 439.356 54.019 445.103 64.001C450.852 73.982 447.778 86.5510000000001 438.237 92.073z" />
<glyph glyph-name="square"
unicode="&#xF0C8;"
horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM394 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H394C397.3 368 400 365.3 400 362V22C400 18.7 397.3 16 394 16z" />
<glyph glyph-name="star-half"
unicode="&#xF089;"
horiz-adv-x="576" d=" M288 62.7L163.7 -2.7L187.4 135.6999999999999L86.8 233.7L225.8 253.8999999999999L288 379.8999999999999V448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V62.7z" />
<glyph glyph-name="star"
unicode="&#xF005;"
horiz-adv-x="576" d=" M528.1 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5zM388.6 135.7L412.3 -2.7L288 62.6L163.7 -2.7L187.4 135.7000000000001L86.8 233.7000000000001L225.8 253.9000000000001L288 379.9000000000001L350.2 253.9000000000001L489.2 233.7000000000001L388.6 135.7000000000001z" />
<glyph glyph-name="sticky-note"
unicode="&#xF249;"
horiz-adv-x="448" d=" M448 99.894V368C448 394.51 426.51 416 400 416H48C21.49 416 0 394.51 0 368V16.012C0 -10.498 21.49 -31.988 48 -31.988H316.118A48 48 0 0 1 350.059 -17.929L433.941 65.953A48 48 0 0 1 448 99.894zM320 19.894V96.012H396.118L320 19.894zM400 368V144.012H296C282.745 144.012 272 133.267 272 120.012V16.012H48V368H400z" />
<glyph glyph-name="stop-circle"
unicode="&#xF28D;"
horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM352 272V112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272z" />
<glyph glyph-name="sun"
unicode="&#xF185;"
horiz-adv-x="512" d=" M220.116 -39.936L199.903 9.489A3.9920000000000004 3.9920000000000004 0 0 1 194.095 11.3750000000001L148.691 -16.7289999999999C119.225 -34.9689999999999 82.396 -8.2099999999999 90.637 25.45L103.336 77.3150000000001A3.9930000000000003 3.9930000000000003 0 0 1 99.746 82.256L46.495 86.2070000000001C11.941 88.7690000000001 -2.137 132.0620000000001 24.321 154.4540000000001L65.08 188.95A3.9920000000000004 3.9920000000000004 0 0 1 65.08 195.056L24.32 229.553C-2.13 251.937 11.93 295.235 46.494 297.799L99.745 301.75A3.9930000000000003 3.9930000000000003 0 0 1 103.335 306.691L90.637 358.557C82.398 392.213 119.218 418.977 148.691 400.736L194.094 372.632A3.9930000000000003 3.9930000000000003 0 0 1 199.902 374.519L220.115 423.944C233.231 456.015 278.753 456.025 291.873 423.944L312.085 374.52A3.9939999999999998 3.9939999999999998 0 0 1 317.894 372.6330000000001L363.2970000000001 400.737C392.761 418.973 429.5940000000001 392.224 421.351 358.558L408.652 306.693A3.9950000000000006 3.9950000000000006 0 0 1 412.242 301.752L465.4929999999999 297.8010000000001C500.0459999999999 295.2380000000001 514.126 251.947 487.6679999999999 229.555L446.908 195.058A3.9930000000000003 3.9930000000000003 0 0 1 446.908 188.951L487.6679999999999 154.455C514.179 132.014 499.99 88.766 465.4929999999999 86.208L412.242 82.257A3.9930000000000003 3.9930000000000003 0 0 1 408.653 77.3149999999999L421.351 25.451C429.592 -8.207 392.7679999999999 -34.97 363.2969999999999 -16.729L317.8939999999999 11.3749999999999A3.9939999999999998 3.9939999999999998 0 0 1 312.0849999999999 9.4879999999999L291.8729999999999 -39.936C278.7139999999999 -72.114 233.1979999999999 -71.9290000000001 220.1159999999999 -39.936zM236.93 24.632L255.994 -21.984L275.058 24.631C285.366 49.831 315.836 59.697 338.95 45.39L381.772 18.883L369.796 67.802C363.321 94.246 382.176 120.141 409.283 122.151L459.509 125.877L421.065 158.413C400.283 176.004 400.318 208.034 421.066 225.593L459.508 258.129L409.283 261.856C382.132 263.871 363.333 289.8040000000001 369.795 316.2050000000001L381.773 365.124L338.95 338.617C315.799 324.29 285.347 334.217 275.058 359.377L255.994 405.992L236.93 359.375C226.625 334.177 196.152 324.3090000000001 173.039 338.615L130.216 365.123L142.193 316.2050000000001C148.667 289.759 129.812 263.867 102.705 261.855L52.481 258.129L90.924 225.592C111.706 208.004 111.671 175.973 90.924 158.414L52.48 125.877L102.706 122.151C129.857 120.137 148.656 94.204 142.193 67.802L130.216 18.883L173.039 45.39C196.227 59.7450000000001 226.661 49.742 236.93 24.6320000000001zM256 64C185.42 64 128 121.421 128 192C128 262.58 185.42 320 256 320C326.579 320 384 262.58 384 192C384 121.421 326.579 64 256 64zM256 272C211.888 272 176 236.112 176 192S211.888 112 256 112S336 147.888 336 192S300.112 272 256 272z" />
<glyph glyph-name="surprise"
unicode="&#xF5C2;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM248 168C212.7 168 184 139.3 184 104S212.7 40 248 40S312 68.7 312 104S283.3 168 248 168zM200 240C200 257.7 185.7 272 168 272S136 257.7 136 240S150.3 208 168 208S200 222.3 200 240zM328 272C310.3 272 296 257.7 296 240S310.3 208 328 208S360 222.3 360 240S345.7 272 328 272z" />
<glyph glyph-name="thumbs-down"
unicode="&#xF165;"
horiz-adv-x="512" d=" M466.27 222.69C470.944 245.337 467.134 267.228 457.28 285.68C460.238 309.548 453.259 334.245 439.94 352.67C438.986 408.577 404.117 448 327 448C320 448 312 447.99 304.78 447.99C201.195 447.99 168.997 408 128 408H117.155C111.515 412.975 104.113 416 96 416H32C14.327 416 0 401.673 0 384V144C0 126.327 14.327 112 32 112H96C107.842 112 118.175 118.438 123.708 128H130.76C149.906 111.047 176.773 67.347 199.52 44.6C213.187 30.9330000000001 209.673 -64 271.28 -64C328.86 -64 366.55 -32.064 366.55 40.73C366.55 59.14 362.62 74.46 357.7 87.27H394.18C442.782 87.27 479.9999999999999 128.835 479.9999999999999 172.85C479.9999999999999 192 475.04 207.84 466.2699999999999 222.69zM64 152C50.745 152 40 162.745 40 176S50.745 200 64 200S88 189.255 88 176S77.255 152 64 152zM394.18 135.27H290.19C290.19 97.45 318.55 79.9 318.55 40.73C318.55 16.98 318.55 -16.0000000000001 271.2800000000001 -16.0000000000001C252.3700000000001 2.91 261.8200000000001 50.18 233.4600000000001 78.54C206.9 105.11 167.28 176 138.92 176H128V362.17C181.611 362.17 228.001 399.99 299.64 399.99H337.46C372.972 399.99 398.28 382.87 390.58 334.0900000000001C405.78 325.93 417.08 297.65 404.52 276.52C426.101 256.136 423.219 225.455 409.73 210.9C419.18 210.9 432.09 191.99 432 173.09C431.91 154.18 415.29 135.2700000000001 394.18 135.2700000000001z" />
<glyph glyph-name="thumbs-up"
unicode="&#xF164;"
horiz-adv-x="512" d=" M466.27 161.31C475.04 176.16 480 192 480 211.15C480 255.165 442.782 296.73 394.18 296.73H357.7C362.62 309.54 366.55 324.86 366.55 343.27C366.55 416.064 328.86 448 271.28 448C209.673 448 213.187 353.067 199.52 339.4C176.773 316.653 149.905 272.953 130.76 256H32C14.327 256 0 241.673 0 224V-16C0 -33.673 14.327 -48 32 -48H96C110.893 -48 123.408 -37.826 126.978 -24.05C171.487 -25.051 202.038 -63.99 304.78 -63.99C312 -63.99 320 -64 327 -64C404.117 -64 438.986 -24.577 439.94 31.33C453.259 49.755 460.239 74.452 457.28 98.32C467.134 116.772 470.944 138.663 466.27 161.31zM404.52 107.48C417.08 86.35 405.78 58.0700000000001 390.58 49.91C398.28 1.13 372.972 -15.99 337.46 -15.99H299.64C228.001 -15.99 181.611 21.83 128 21.83V208H138.92C167.28 208 206.9 278.89 233.46 305.46C261.82 333.82 252.37 381.09 271.28 400C318.55 400 318.55 367.02 318.55 343.27C318.55 304.1 290.19 286.55 290.19 248.73H394.18C415.29 248.73 431.91 229.82 432 210.91C432.0899999999999 192.01 419.18 173.1 409.73 173.1C423.219 158.545 426.101 127.864 404.52 107.48zM88 16C88 2.745 77.255 -8 64 -8S40 2.745 40 16S50.745 40 64 40S88 29.255 88 16z" />
<glyph glyph-name="times-circle"
unicode="&#xF057;"
horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM357.8 254.2L295.6 192L357.8 129.8C362.5 125.1 362.5 117.5 357.8 112.8L335.2 90.2C330.5 85.5 322.9 85.5 318.2 90.2L256 152.4L193.8 90.2C189.1 85.5 181.5 85.5 176.8 90.2L154.2 112.8C149.5 117.5 149.5 125.1 154.2 129.8L216.4 192L154.2000000000001 254.2C149.5000000000001 258.9 149.5000000000001 266.5 154.2000000000001 271.2L176.8000000000001 293.8C181.5 298.5 189.1000000000001 298.5 193.8000000000001 293.8L256.0000000000001 231.6L318.2000000000001 293.8C322.9000000000001 298.5 330.5000000000001 298.5 335.2000000000001 293.8L357.8000000000001 271.2C362.5000000000001 266.5 362.5000000000001 258.9 357.8000000000001 254.2z" />
<glyph glyph-name="tired"
unicode="&#xF5C8;"
horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C137.7 -8 48 81.7 48 192S137.7 392 248 392S448 302.3 448 192S358.3 -8 248 -8zM377.1 295.8C373.3 300.2000000000001 366.8 301.2000000000001 361.8 298.3L281.8 250.3C278.2 248.1 276 244.2 276 240S278.2 231.9 281.8 229.7L361.8 181.7C367.2 178.5 373.6 180.1 377.1 184.2C380.9000000000001 188.7 381 195.2 377.2000000000001 199.7L343.6 240L377.2000000000001 280.3C381.0000000000001 284.8 380.9000000000001 291.4 377.1 295.8zM220 240C220 244.2 217.8 248.1 214.2 250.3L134.2 298.3C129.2 301.3 122.7 300.2000000000001 118.9 295.8C115.1 291.3 115 284.8 118.8 280.3L152.4 240L118.8 199.7C115 195.2 115.1 188.7 118.9 184.2C122.4 180.1 128.8 178.5 134.2 181.7L214.2 229.7C217.8 231.9 220 235.8 220 240zM248 176C202.6 176 147.1 137.7 140.2 82.7C138.7 70.9 147.1 61.1 155.7 64.8C178.4 74.5 212 80 248 80S317.6 74.5 340.3 64.8C348.8 61.1 357.3 70.8 355.8 82.7C348.9000000000001 137.7 293.4000000000001 176 248 176z" />
<glyph glyph-name="trash-alt"
unicode="&#xF2ED;"
horiz-adv-x="448" d=" M192 260V44C192 37.373 186.627 32 180 32H156C149.373 32 144 37.373 144 44V260C144 266.627 149.373 272 156 272H180C186.627 272 192 266.627 192 260zM292 272H268C261.373 272 256 266.627 256 260V44C256 37.373 261.373 32 268 32H292C298.627 32 304 37.373 304 44V260C304 266.627 298.627 272 292 272zM424 368C437.255 368 448 357.255 448 344V332C448 325.373 442.627 320 436 320H416V-16C416 -42.51 394.51 -64 368 -64H80C53.49 -64 32 -42.51 32 -16V320H12C5.373 320 0 325.373 0 332V344C0 357.255 10.745 368 24 368H98.411L132.429 424.6960000000001A48 48 0 0 0 173.589 448H274.412A48 48 0 0 0 315.572 424.6960000000001L349.589 368H424zM154.389 368H293.612L276.1600000000001 397.087A6 6 0 0 1 271.015 400H176.987A6 6 0 0 1 171.842 397.087L154.389 368zM368 320H80V-10A6 6 0 0 1 86 -16H362A6 6 0 0 1 368 -10V320z" />
<glyph glyph-name="user-circle"
unicode="&#xF2BD;"
horiz-adv-x="496" d=" M248 344C195 344 152 301 152 248S195 152 248 152S344 195 344 248S301 344 248 344zM248 200C221.5 200 200 221.5 200 248S221.5 296 248 296S296 274.5 296 248S274.5 200 248 200zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -8C198.3 -8 152.9 10.3 117.9 40.4C132.8 63.4 158.3 79 187.5 79.9C208.3 73.5 228.1 70.3 248 70.3S287.7 73.4 308.5 79.9C337.7 78.9 363.2 63.4 378.1 40.4C343.1 10.3 297.7000000000001 -8 248.0000000000001 -8zM410.7 76.1C386.3 107.5 348.6 128 305.6 128C295.4000000000001 128 279.6 118.4 248.0000000000001 118.4C216.5 118.4 200.6 128 190.4 128C147.5 128 109.8 107.5 85.3 76.1C61.9 108.8 48 148.8 48 192C48 302.3 137.7 392 248 392S448 302.3 448 192C448 148.8 434.1 108.8 410.7 76.1z" />
<glyph glyph-name="user"
unicode="&#xF007;"
horiz-adv-x="448" d=" M313.6 144C284.9000000000001 144 271.1 128 224 128C176.9 128 163.2000000000001 144 134.4 144C60.2 144 0 83.8 0 9.6V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V9.6C448 83.8 387.8 144 313.6 144zM400 -16H48V9.6C48 57.2000000000001 86.8 96 134.4 96C149 96 172.7 80 224 80C275.7 80 298.9 96 313.6 96C361.2000000000001 96 400 57.2 400 9.6V-16zM224 160C303.5 160 368 224.5 368 304S303.5 448 224 448S80 383.5 80 304S144.5 160 224 160zM224 400C276.9 400 320 356.9 320 304S276.9 208 224 208S128 251.1 128 304S171.1 400 224 400z" />
<glyph glyph-name="window-close"
unicode="&#xF410;"
horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H458C461.3 368 464 365.3 464 362V22zM356.5 253.4L295.1 192L356.5 130.6C361.1 126 361.1 118.5 356.5 113.8L334.2 91.5C329.6 86.9 322.1 86.9 317.4 91.5L256 152.9L194.6 91.5C190 86.9 182.5 86.9 177.8 91.5L155.5 113.8C150.9 118.4 150.9 125.9 155.5 130.6L216.9 192L155.5 253.4000000000001C150.9 258 150.9 265.5 155.5 270.2000000000001L177.8 292.5000000000001C182.4 297.1 189.9 297.1 194.6 292.5000000000001L256 231.1000000000001L317.4 292.5000000000001C322 297.1 329.5 297.1 334.2 292.5000000000001L356.5 270.2000000000001C361.2 265.6 361.2 258.1 356.5 253.4000000000001z" />
<glyph glyph-name="window-maximize"
unicode="&#xF2D0;"
horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V256H464V22z" />
<glyph glyph-name="window-minimize"
unicode="&#xF2D1;"
horiz-adv-x="512" d=" M480 -32H32C14.3 -32 0 -17.7 0 0S14.3 32 32 32H480C497.7 32 512 17.7 512 0S497.7 -32 480 -32z" />
<glyph glyph-name="window-restore"
unicode="&#xF2D2;"
horiz-adv-x="512" d=" M464 448H144C117.5 448 96 426.5 96 400V352H48C21.5 352 0 330.5 0 304V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H464C490.5 32 512 53.5 512 80V400C512 426.5 490.5 448 464 448zM368 -16H48V192H368V-16zM464 80H416V304C416 330.5 394.5 352 368 352H144V400H464V80z" />
</font>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 139 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 709 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 280 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.7 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 229 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 182 KiB

Some files were not shown because too many files have changed in this diff Show More