Reajuste de pastas
This commit is contained in:
commit
93a8e47617
32 changed files with 12489 additions and 0 deletions
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
node_modules/
|
||||
dist/
|
||||
|
||||
podman_compose.yml
|
||||
9
README.md
Normal file
9
README.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
## Compilar projeto no AVD Android na VM
|
||||
|
||||
- Ligue o dispositivo android
|
||||
|
||||
Abra o cmd e rode o comando
|
||||
|
||||
1. ssh -R 5555:localhost:5555 dev@175.15.15.93
|
||||
|
||||
2. adb connect localhost:5555
|
||||
1
backend/.env
Normal file
1
backend/.env
Normal file
|
|
@ -0,0 +1 @@
|
|||
PORT=4000
|
||||
13
backend/Dockerfile
Normal file
13
backend/Dockerfile
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
FROM node:lts-alpine3.22
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
RUN npm install
|
||||
|
||||
COPY . .
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["npm", "start"]
|
||||
2229
backend/package-lock.json
generated
Normal file
2229
backend/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
26
backend/package.json
Normal file
26
backend/package.json
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"name": "backend",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/server.ts",
|
||||
"build": "tsc",
|
||||
"start": "node dist/server.js",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "Rayan",
|
||||
"license": "ISC",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@types/cors": "^2.8.19",
|
||||
"@types/express": "^5.0.6",
|
||||
"ts-node-dev": "^2.0.0",
|
||||
"tsx": "^4.21.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cors": "^2.8.6",
|
||||
"express": "^5.2.1"
|
||||
}
|
||||
}
|
||||
14
backend/podman-compose.yml
Normal file
14
backend/podman-compose.yml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
backend:
|
||||
container_name: top-tran-backend
|
||||
image: top-tran-backend
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- PORT=3000
|
||||
restart: always
|
||||
15
backend/src/server.ts
Normal file
15
backend/src/server.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import express from 'express';
|
||||
import cors from 'cors';
|
||||
|
||||
const app = express();
|
||||
const port = process.env.PORT? Number(process.env.PORT) : 4000;
|
||||
|
||||
app.use(cors());
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
res.send('Hello World!');
|
||||
});
|
||||
|
||||
app.listen(port, '0.0.0.0', () => {
|
||||
console.log(`Server is running on port ${port}`);
|
||||
});
|
||||
16
backend/tsconfig.json
Normal file
16
backend/tsconfig.json
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "nodenext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"target": "es2024",
|
||||
"rootDir": "./src",
|
||||
"outDir": "./dist",
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"strict": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"isolatedModules": true,
|
||||
"skipLibCheck": true,
|
||||
}
|
||||
}
|
||||
13
mobile/.expo/README.md
Normal file
13
mobile/.expo/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
> Why do I have a folder named ".expo" in my project?
|
||||
|
||||
The ".expo" folder is created when an Expo project is started using "expo start" command.
|
||||
|
||||
> What do the files contain?
|
||||
|
||||
- "devices.json": contains information about devices that have recently opened this project. This is used to populate the "Development sessions" list in your development builds.
|
||||
- "settings.json": contains the server configuration that is used to serve the application manifest.
|
||||
|
||||
> Should I commit the ".expo" folder?
|
||||
|
||||
No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.
|
||||
Upon project creation, the ".expo" folder is already added to your ".gitignore" file.
|
||||
8
mobile/.expo/devices.json
Normal file
8
mobile/.expo/devices.json
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"devices": [
|
||||
{
|
||||
"installationId": "346bc961-9b4d-465f-b43f-1d6169c255de",
|
||||
"lastUsed": 1777218773769
|
||||
}
|
||||
]
|
||||
}
|
||||
14
mobile/.expo/types/router.d.ts
vendored
Normal file
14
mobile/.expo/types/router.d.ts
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/* eslint-disable */
|
||||
import * as Router from 'expo-router';
|
||||
|
||||
export * from 'expo-router';
|
||||
|
||||
declare module 'expo-router' {
|
||||
export namespace ExpoRouter {
|
||||
export interface __routes<T extends string | object = string> {
|
||||
hrefInputParams: { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/signup`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; };
|
||||
hrefOutputParams: { pathname: Router.RelativePathString, params?: Router.UnknownOutputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownOutputParams } | { pathname: `/`; params?: Router.UnknownOutputParams; } | { pathname: `/signup`; params?: Router.UnknownOutputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownOutputParams; };
|
||||
href: Router.RelativePathString | Router.ExternalPathString | `/${`?${string}` | `#${string}` | ''}` | `/signup${`?${string}` | `#${string}` | ''}` | `/_sitemap${`?${string}` | `#${string}` | ''}` | { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/`; params?: Router.UnknownInputParams; } | { pathname: `/signup`; params?: Router.UnknownInputParams; } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; };
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
1
mobile/.vscode/extensions.json
vendored
Normal file
1
mobile/.vscode/extensions.json
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ "recommendations": ["expo.vscode-expo-tools"] }
|
||||
7
mobile/.vscode/settings.json
vendored
Normal file
7
mobile/.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit",
|
||||
"source.organizeImports": "explicit",
|
||||
"source.sortMembers": "explicit"
|
||||
}
|
||||
}
|
||||
37
mobile/app.json
Normal file
37
mobile/app.json
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
"expo": {
|
||||
"name": "top-tran-app",
|
||||
"slug": "toptran",
|
||||
"version": "1.0.0",
|
||||
"orientation": "portrait",
|
||||
"scheme": "toptranapp",
|
||||
"userInterfaceStyle": "automatic",
|
||||
"newArchEnabled": true,
|
||||
"ios": {
|
||||
"supportsTablet": true
|
||||
},
|
||||
"icon": "./assets/toptranico.png",
|
||||
"android": {
|
||||
"adaptiveIcon": {
|
||||
"backgroundColor": "#ffffff"
|
||||
},
|
||||
"predictiveBackGestureEnabled": false,
|
||||
"package": "com.rayankonecny.toptran"
|
||||
},
|
||||
"web": {
|
||||
"bundler": "metro",
|
||||
"output": "static"
|
||||
},
|
||||
"plugins": ["expo-router"],
|
||||
"experiments": {
|
||||
"typedRoutes": true
|
||||
},
|
||||
"extra": {
|
||||
"router": {},
|
||||
"eas": {
|
||||
"projectId": "52f8b4e5-6130-4c0f-8220-cd7953960965"
|
||||
}
|
||||
},
|
||||
"owner": "rayankonecny"
|
||||
}
|
||||
}
|
||||
BIN
mobile/assets/toptranico.png
Normal file
BIN
mobile/assets/toptranico.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
24
mobile/eas.json
Normal file
24
mobile/eas.json
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"cli": {
|
||||
"version": ">= 18.8.1",
|
||||
"appVersionSource": "remote"
|
||||
},
|
||||
"build": {
|
||||
"development": {
|
||||
"developmentClient": true,
|
||||
"distribution": "internal"
|
||||
},
|
||||
"preview": {
|
||||
"distribution": "internal",
|
||||
"android": {
|
||||
"buildType": "apk"
|
||||
}
|
||||
},
|
||||
"production": {
|
||||
"autoIncrement": true
|
||||
}
|
||||
},
|
||||
"submit": {
|
||||
"production": {}
|
||||
}
|
||||
}
|
||||
3
mobile/expo-env.d.ts
vendored
Normal file
3
mobile/expo-env.d.ts
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
/// <reference types="expo/types" />
|
||||
|
||||
// NOTE: This file should not be edited and should be in your git ignore
|
||||
9488
mobile/package-lock.json
generated
Normal file
9488
mobile/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
39
mobile/package.json
Normal file
39
mobile/package.json
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"name": "toptran",
|
||||
"main": "expo-router/entry",
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"start": "expo start",
|
||||
"android": "expo start --android",
|
||||
"ios": "expo start --ios",
|
||||
"web": "expo start --web"
|
||||
},
|
||||
"dependencies": {
|
||||
"@expo/vector-icons": "^15.0.3",
|
||||
"@react-navigation/native": "^7.1.8",
|
||||
"axios": "^1.15.2",
|
||||
"expo": "~54.0.33",
|
||||
"expo-constants": "~18.0.13",
|
||||
"expo-dev-client": "~6.0.20",
|
||||
"expo-font": "~14.0.11",
|
||||
"expo-linking": "~8.0.11",
|
||||
"expo-router": "~6.0.23",
|
||||
"expo-splash-screen": "~31.0.13",
|
||||
"expo-status-bar": "~3.0.9",
|
||||
"expo-web-browser": "~15.0.10",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"react-native": "0.81.5",
|
||||
"react-native-reanimated": "~4.1.1",
|
||||
"react-native-safe-area-context": "~5.6.0",
|
||||
"react-native-screens": "~4.16.0",
|
||||
"react-native-web": "~0.21.0",
|
||||
"react-native-worklets": "0.5.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "~19.1.0",
|
||||
"react-test-renderer": "19.1.0",
|
||||
"typescript": "~5.9.2"
|
||||
},
|
||||
"private": true
|
||||
}
|
||||
12
mobile/src/app/_layout.tsx
Normal file
12
mobile/src/app/_layout.tsx
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import { Stack } from "expo-router";
|
||||
|
||||
// Layout para as páginas de login e cadastro de usuário, sem header
|
||||
export default function Layout() {
|
||||
return (
|
||||
<Stack
|
||||
screenOptions={{
|
||||
headerShown: false,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
116
mobile/src/app/index.tsx
Normal file
116
mobile/src/app/index.tsx
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
import { useState } from "react";
|
||||
|
||||
import {
|
||||
Alert,
|
||||
Image,
|
||||
KeyboardAvoidingView,
|
||||
Platform,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Text,
|
||||
View,
|
||||
} from "react-native";
|
||||
|
||||
import { Button } from "@/components/Button";
|
||||
import { Input } from "@/components/Input";
|
||||
import { Link } from "expo-router";
|
||||
|
||||
// Página de login
|
||||
export default function IndexPage() {
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
|
||||
function handleSignIn() {
|
||||
if (!email.trim() || !password.trim()) {
|
||||
Alert.alert("Entrar", "Por favor, preencha todos os campos.");
|
||||
return;
|
||||
}
|
||||
|
||||
Alert.alert("Bem-vindo", `Acessando com o e-mail ${email}`);
|
||||
}
|
||||
|
||||
return (
|
||||
<KeyboardAvoidingView
|
||||
style={{ flex: 1 }}
|
||||
behavior={Platform.select({ ios: "padding", android: "height" })}
|
||||
>
|
||||
<ScrollView
|
||||
contentContainerStyle={{ flexGrow: 1 }}
|
||||
keyboardShouldPersistTaps="handled"
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<View style={styles.container}>
|
||||
<Image
|
||||
source={require("@/assets/toptran.png")}
|
||||
style={styles.illustration}
|
||||
/>
|
||||
|
||||
<Text style={styles.title}>Entrar</Text>
|
||||
<Text style={styles.subtitle}>
|
||||
Acesse sua conta com e-mail e senha.
|
||||
</Text>
|
||||
|
||||
<View style={styles.form}>
|
||||
<Input
|
||||
placeholder="E-mail"
|
||||
keyboardType="email-address"
|
||||
onChangeText={setEmail}
|
||||
/>
|
||||
|
||||
<Input
|
||||
placeholder="Senha"
|
||||
secureTextEntry
|
||||
onChangeText={setPassword}
|
||||
/>
|
||||
|
||||
<Button label="Entrar" onPress={handleSignIn} />
|
||||
</View>
|
||||
|
||||
<Text style={styles.footerText}>
|
||||
Não tem uma conta?{" "}
|
||||
<Link href={"/signup"} style={styles.footerLink}>
|
||||
Cadastre-se aqui.
|
||||
</Link>
|
||||
</Text>
|
||||
</View>
|
||||
</ScrollView>
|
||||
</KeyboardAvoidingView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: "#0e0d0d",
|
||||
padding: 32,
|
||||
},
|
||||
illustration: {
|
||||
width: "100%",
|
||||
height: 330,
|
||||
resizeMode: "contain",
|
||||
marginTop: 62,
|
||||
},
|
||||
title: {
|
||||
marginTop: 62,
|
||||
fontSize: 32,
|
||||
fontWeight: 900,
|
||||
color: "#e7e7e7",
|
||||
},
|
||||
subtitle: {
|
||||
fontSize: 16,
|
||||
color: "#a1a1a1",
|
||||
},
|
||||
form: {
|
||||
marginTop: 24,
|
||||
gap: 16,
|
||||
},
|
||||
footerText: {
|
||||
textAlign: "center",
|
||||
marginTop: 24,
|
||||
color: "#a1a1a1",
|
||||
},
|
||||
footerLink: {
|
||||
color: "#007AFF",
|
||||
fontWeight: 700,
|
||||
},
|
||||
});
|
||||
91
mobile/src/app/signup.tsx
Normal file
91
mobile/src/app/signup.tsx
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
import {
|
||||
Image,
|
||||
KeyboardAvoidingView,
|
||||
Platform,
|
||||
ScrollView,
|
||||
StyleSheet,
|
||||
Text,
|
||||
View,
|
||||
} from "react-native";
|
||||
|
||||
import { Button } from "@/components/Button";
|
||||
import { Input } from "@/components/Input";
|
||||
import { Link } from "expo-router";
|
||||
|
||||
// Página de cadastro
|
||||
export default function Signup() {
|
||||
return (
|
||||
<KeyboardAvoidingView
|
||||
style={{ flex: 1 }}
|
||||
behavior={Platform.select({ ios: "padding", android: "height" })}
|
||||
>
|
||||
<ScrollView
|
||||
contentContainerStyle={{ flexGrow: 1 }}
|
||||
keyboardShouldPersistTaps="handled"
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<View style={styles.container}>
|
||||
<Image
|
||||
source={require("@/assets/toptran.png")}
|
||||
style={styles.illustration}
|
||||
/>
|
||||
|
||||
<Text style={styles.title}>Cadastrar</Text>
|
||||
<Text style={styles.subtitle}>Crie sua conta para acessar.</Text>
|
||||
|
||||
<View style={styles.form}>
|
||||
<Input placeholder="Nome" />
|
||||
<Input placeholder="E-mail" keyboardType="email-address" />
|
||||
<Input placeholder="Senha" secureTextEntry />
|
||||
<Input placeholder="Confirmar Senha" secureTextEntry />
|
||||
<Button label="Cadastrar" />
|
||||
</View>
|
||||
|
||||
<Text style={styles.footerText}>
|
||||
Já tem uma conta?{" "}
|
||||
<Link href={"/"} style={styles.footerLink}>
|
||||
Entre aqui.
|
||||
</Link>
|
||||
</Text>
|
||||
</View>
|
||||
</ScrollView>
|
||||
</KeyboardAvoidingView>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
backgroundColor: "#0e0d0d",
|
||||
padding: 32,
|
||||
},
|
||||
illustration: {
|
||||
width: "100%",
|
||||
height: 330,
|
||||
resizeMode: "contain",
|
||||
marginTop: 62,
|
||||
},
|
||||
title: {
|
||||
marginTop: 62,
|
||||
fontSize: 32,
|
||||
fontWeight: "900",
|
||||
color: "#e7e7e7",
|
||||
},
|
||||
subtitle: {
|
||||
fontSize: 16,
|
||||
color: "#a1a1a1",
|
||||
},
|
||||
form: {
|
||||
marginTop: 24,
|
||||
gap: 16,
|
||||
},
|
||||
footerText: {
|
||||
textAlign: "center",
|
||||
marginTop: 24,
|
||||
color: "#a1a1a1",
|
||||
},
|
||||
footerLink: {
|
||||
color: "#007AFF",
|
||||
fontWeight: "700",
|
||||
},
|
||||
});
|
||||
BIN
mobile/src/assets/photo1.jpg
Normal file
BIN
mobile/src/assets/photo1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
BIN
mobile/src/assets/photo2.jpg
Normal file
BIN
mobile/src/assets/photo2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
BIN
mobile/src/assets/toptran.png
Normal file
BIN
mobile/src/assets/toptran.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 298 KiB |
242
mobile/src/assets/toptran.svg
Normal file
242
mobile/src/assets/toptran.svg
Normal file
|
|
@ -0,0 +1,242 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="1080.000000pt" height="1344.000000pt" viewBox="0 0 1080.000000 1344.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
|
||||
<g transform="translate(0.000000,1344.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M0 6720 l0 -6720 5400 0 5400 0 0 6720 0 6720 -5400 0 -5400 0 0
|
||||
-6720z m6340 4532 c103 -53 208 -110 250 -137 44 -27 226 -135 260 -153 14 -7
|
||||
32 -20 41 -28 8 -8 20 -14 26 -14 6 0 67 -34 134 -75 68 -41 153 -89 189 -106
|
||||
36 -17 79 -41 97 -55 17 -13 36 -24 41 -24 5 0 35 -17 68 -38 32 -21 84 -51
|
||||
116 -66 31 -15 63 -35 70 -44 37 -43 38 -81 38 -1001 0 -866 -1 -903 -19 -939
|
||||
-16 -31 -41 -50 -142 -107 -68 -39 -128 -72 -134 -74 -13 -5 -282 -163 -369
|
||||
-218 -38 -24 -74 -43 -78 -43 -5 0 -43 -20 -84 -45 -40 -25 -77 -45 -81 -45
|
||||
-4 0 -37 -20 -74 -45 -37 -25 -70 -45 -73 -45 -7 0 -170 -93 -234 -134 -23
|
||||
-14 -45 -26 -49 -26 -5 0 -39 -20 -78 -45 -38 -25 -73 -45 -77 -45 -5 0 -37
|
||||
-18 -72 -40 -70 -44 -85 -48 -87 -22 -7 84 -5 675 2 704 7 29 16 39 43 48 18
|
||||
6 60 28 94 50 34 22 65 40 70 40 4 0 24 12 43 26 19 14 63 41 99 60 80 43 117
|
||||
64 295 169 77 45 159 92 181 103 23 12 55 33 73 47 l31 27 0 612 0 612 -32 31
|
||||
c-18 17 -61 46 -96 64 -151 81 -255 139 -343 194 -9 6 -47 26 -85 46 -38 20
|
||||
-78 46 -88 58 -29 32 -78 27 -149 -16 -34 -20 -84 -49 -112 -66 -27 -16 -75
|
||||
-43 -105 -59 -30 -17 -62 -36 -71 -44 -8 -8 -18 -14 -22 -14 -5 0 -162 -88
|
||||
-362 -205 -55 -32 -125 -71 -155 -87 -30 -16 -60 -34 -66 -39 -7 -5 -47 -29
|
||||
-91 -53 -43 -23 -141 -80 -218 -126 -77 -46 -162 -95 -190 -110 -85 -45 -217
|
||||
-122 -272 -157 -28 -18 -55 -33 -58 -33 -4 0 -67 -36 -141 -80 -73 -44 -136
|
||||
-80 -140 -80 -4 0 -39 -19 -78 -43 -39 -24 -114 -67 -166 -97 -52 -29 -127
|
||||
-72 -166 -96 -38 -23 -122 -71 -185 -106 -62 -36 -162 -93 -220 -126 -59 -34
|
||||
-116 -62 -127 -62 -19 0 -20 9 -27 237 -8 254 -2 452 15 483 6 11 37 33 70 50
|
||||
32 16 62 35 65 41 4 6 39 26 78 45 38 18 79 42 91 53 12 11 39 28 61 38 22 10
|
||||
60 31 84 47 25 16 61 36 81 45 19 9 49 26 65 37 17 12 59 36 95 54 36 18 72
|
||||
38 80 45 8 7 40 26 70 43 30 16 93 52 140 81 47 28 111 64 143 80 31 16 63 34
|
||||
70 40 14 11 115 69 228 130 74 41 201 115 239 141 14 9 50 29 80 43 30 15 69
|
||||
37 85 48 40 28 216 130 235 137 8 3 29 15 45 27 17 12 50 32 75 45 25 12 70
|
||||
38 100 56 54 33 77 46 202 113 35 18 82 47 105 62 23 16 52 33 65 38 14 5 53
|
||||
28 88 50 35 23 68 41 74 41 5 0 36 18 67 40 60 42 118 67 159 69 14 0 59 -16
|
||||
100 -37z m54 -966 c61 -35 137 -78 169 -97 32 -19 79 -46 105 -60 53 -30 61
|
||||
-50 64 -147 1 -70 -17 -99 -75 -123 -18 -7 -54 -27 -82 -44 -27 -18 -84 -51
|
||||
-125 -75 -41 -24 -107 -63 -146 -87 -39 -24 -73 -43 -76 -43 -3 0 -61 -32
|
||||
-129 -72 -68 -39 -157 -90 -197 -112 -95 -52 -119 -77 -127 -131 -4 -23 -4
|
||||
-362 -1 -751 8 -849 7 -614 1 -1628 -3 -565 -8 -853 -15 -861 -6 -7 -52 -37
|
||||
-103 -66 -51 -28 -117 -67 -147 -84 -30 -18 -86 -50 -125 -72 -38 -22 -110
|
||||
-64 -158 -92 -60 -36 -97 -51 -115 -49 -26 3 -27 5 -35 93 -10 97 -21 3826
|
||||
-12 3862 9 37 56 83 117 114 33 16 80 45 106 63 26 18 63 39 82 46 19 8 49 24
|
||||
65 36 17 12 50 32 75 44 24 12 66 38 93 56 27 19 61 37 76 40 14 4 37 17 51
|
||||
29 14 13 48 33 75 45 28 12 71 38 98 56 26 19 51 34 55 34 5 0 38 19 73 41 35
|
||||
23 77 46 94 52 16 5 41 18 55 27 58 40 71 37 214 -44z m-1570 -762 c15 -6 16
|
||||
-170 16 -1763 l0 -1757 -75 -45 c-42 -24 -102 -60 -135 -79 -33 -19 -103 -62
|
||||
-156 -94 -100 -61 -183 -106 -197 -106 -4 0 -30 -16 -58 -35 -62 -42 -79 -44
|
||||
-80 -7 -3 75 -9 1774 -7 1882 2 69 3 286 3 482 0 436 7 416 -118 349 -45 -24
|
||||
-101 -57 -125 -73 -23 -16 -68 -41 -99 -54 -32 -14 -74 -39 -94 -55 -20 -16
|
||||
-40 -29 -45 -29 -4 0 -37 -20 -73 -44 -37 -24 -104 -62 -151 -86 -133 -66
|
||||
-143 -72 -174 -97 -52 -43 -61 -31 -62 87 -1 58 -4 213 -7 345 -5 197 -3 244
|
||||
9 262 13 20 73 59 199 128 28 15 57 33 65 41 8 7 38 23 65 36 28 13 76 41 107
|
||||
61 32 21 69 42 82 47 14 5 49 24 78 43 78 50 356 207 366 207 5 0 27 13 48 28
|
||||
21 15 64 42 94 59 30 16 110 62 177 101 68 40 127 72 132 72 5 0 32 16 61 36
|
||||
81 55 121 71 154 58z m-2929 -4285 c13 -13 14 -26 4 -95 -16 -116 -18 -123
|
||||
-39 -144 -18 -18 -34 -20 -177 -20 -87 0 -163 -4 -169 -8 -19 -12 -32 -45 -39
|
||||
-97 -6 -49 -20 -136 -50 -305 -8 -47 -28 -184 -45 -305 -35 -257 -49 -335 -63
|
||||
-352 -15 -20 -310 -18 -327 2 -10 12 -9 34 4 107 15 87 68 439 87 573 4 33 12
|
||||
80 18 105 5 25 14 80 20 123 6 43 14 89 17 101 3 15 -1 29 -11 40 -14 13 -40
|
||||
16 -164 16 -194 0 -189 -3 -172 121 16 115 24 137 53 149 13 5 238 8 530 7
|
||||
444 -2 509 -4 523 -18z m1282 -7 c53 -28 94 -88 100 -147 3 -25 -2 -82 -10
|
||||
-127 -31 -159 -80 -462 -122 -760 -26 -180 -80 -255 -207 -286 -61 -16 -906
|
||||
-17 -960 -2 -58 16 -96 55 -113 113 -16 58 -21 13 55 517 23 151 46 302 51
|
||||
335 37 253 92 336 249 375 19 5 233 8 475 7 437 -2 440 -2 482 -25z m1250 1
|
||||
c99 -54 119 -125 84 -313 -11 -63 -28 -158 -37 -210 -34 -203 -70 -271 -171
|
||||
-321 -46 -23 -58 -24 -325 -27 -200 -3 -280 -7 -287 -16 -10 -11 -19 -57 -41
|
||||
-201 -18 -113 -42 -219 -52 -232 -16 -20 -301 -18 -318 2 -13 16 -9 58 25 265
|
||||
8 47 21 137 30 200 33 238 88 580 110 681 8 37 15 77 15 90 0 50 20 98 43 102
|
||||
12 3 216 4 452 4 425 -2 431 -2 472 -24z m3554 -12 c14 -13 72 -206 80 -264
|
||||
18 -129 85 -414 120 -512 6 -16 17 -55 24 -85 8 -30 26 -104 40 -165 15 -60
|
||||
31 -130 35 -155 4 -25 11 -60 15 -77 l8 -33 -136 0 c-95 0 -137 4 -145 13 -5
|
||||
6 -26 75 -45 152 -20 77 -42 165 -51 195 -28 100 -43 164 -61 250 -9 47 -23
|
||||
108 -30 135 -8 28 -17 65 -20 83 -8 37 -45 67 -72 58 -22 -7 -95 -126 -205
|
||||
-334 -27 -52 -64 -115 -83 -141 -18 -26 -51 -83 -73 -127 -66 -132 -139 -254
|
||||
-160 -271 -11 -9 -56 -13 -140 -13 l-124 0 6 31 c3 17 35 79 70 138 89 147
|
||||
252 433 293 511 18 36 48 88 65 115 32 53 74 127 117 210 15 28 39 69 54 93
|
||||
15 23 46 77 70 120 l43 77 54 6 c62 7 242 0 251 -10z m-2261 -48 c0 -74 -16
|
||||
-130 -40 -143 -10 -5 -82 -10 -160 -10 -136 0 -197 -11 -213 -37 -3 -5 -10
|
||||
-43 -16 -84 -5 -41 -23 -166 -40 -279 -16 -113 -32 -232 -36 -265 -4 -33 -11
|
||||
-74 -16 -91 -5 -17 -14 -65 -19 -105 -9 -67 -22 -147 -35 -207 -5 -22 -7 -23
|
||||
-143 -20 l-137 3 -3 37 c-2 20 6 75 17 123 12 48 21 96 21 108 0 12 6 54 14
|
||||
92 36 173 99 581 99 643 0 72 -10 76 -191 82 l-157 5 1 60 c0 33 6 79 13 103
|
||||
l12 42 514 0 515 0 0 -57z m1110 37 c77 -39 109 -113 90 -205 -10 -48 -17 -90
|
||||
-59 -335 -10 -63 -23 -124 -27 -135 -14 -36 -48 -76 -84 -97 -81 -49 -80 -78
|
||||
10 -287 38 -90 71 -175 72 -189 l3 -27 -130 -5 c-176 -7 -182 -6 -206 42 -22
|
||||
43 -68 164 -103 273 -31 96 -51 131 -78 139 -13 3 -64 6 -115 6 -87 0 -93 -1
|
||||
-112 -26 -12 -15 -21 -40 -21 -56 0 -16 -6 -57 -14 -91 -13 -54 -23 -108 -43
|
||||
-234 -3 -18 -10 -36 -17 -42 -10 -8 -130 -15 -222 -12 -51 1 -58 15 -43 79 6
|
||||
26 17 92 25 147 19 141 33 224 45 270 6 22 13 56 16 75 4 31 40 267 64 425 5
|
||||
33 14 98 19 145 11 90 19 140 27 153 2 4 198 7 434 7 409 0 432 -1 469 -20z
|
||||
m2895 -3 c22 -13 52 -42 68 -69 l30 -47 -13 -83 c-6 -46 -18 -108 -25 -138 -7
|
||||
-30 -16 -82 -20 -115 -3 -33 -12 -89 -20 -125 -7 -36 -19 -92 -25 -125 -7 -33
|
||||
-17 -91 -22 -130 -5 -38 -13 -99 -17 -135 -5 -36 -14 -110 -21 -165 -18 -149
|
||||
-13 -145 -175 -145 -152 0 -147 -3 -126 79 5 20 19 99 31 176 12 77 28 176 36
|
||||
220 8 44 14 105 14 135 0 30 7 80 15 110 8 30 20 111 26 179 12 130 6 162 -30
|
||||
177 -9 3 -95 8 -191 10 -183 3 -288 -10 -317 -39 -9 -9 -19 -47 -23 -95 -5
|
||||
-44 -16 -101 -24 -126 -9 -26 -16 -63 -16 -82 0 -20 -7 -59 -15 -87 -16 -56
|
||||
-21 -88 -54 -327 -12 -85 -26 -177 -31 -203 -6 -27 -10 -63 -10 -82 0 -21 -6
|
||||
-35 -16 -39 -9 -3 -71 -6 -139 -6 -140 0 -137 -2 -123 85 49 305 79 511 98
|
||||
680 5 44 16 107 24 140 9 33 16 83 16 112 0 29 6 72 14 95 8 24 17 65 21 92 4
|
||||
27 11 60 16 73 l9 23 497 0 c498 0 498 0 538 -23z m-6490 -1807 c49 -24 74
|
||||
-56 82 -106 l6 -34 -61 0 c-58 0 -62 2 -76 29 -26 49 -116 48 -132 -1 -9 -28
|
||||
20 -54 85 -78 132 -49 181 -98 181 -180 0 -55 -27 -103 -72 -126 -42 -22 -151
|
||||
-30 -206 -15 -54 15 -115 69 -129 114 -15 49 -5 59 58 55 45 -3 55 -7 66 -28
|
||||
18 -37 42 -50 89 -50 48 0 67 17 62 57 -3 30 -16 38 -134 89 -34 14 -77 41
|
||||
-95 60 -30 31 -34 42 -34 87 0 57 20 93 66 121 67 40 169 42 244 6z m921 15
|
||||
c102 -30 164 -127 164 -257 0 -182 -96 -287 -250 -276 -133 10 -214 108 -214
|
||||
263 0 148 49 231 162 271 49 17 78 17 138 -1z m3364 -1 c66 -19 113 -64 131
|
||||
-123 16 -52 5 -62 -60 -59 -39 3 -47 7 -64 38 -24 43 -33 50 -75 50 -75 0
|
||||
-102 -45 -102 -170 0 -133 37 -184 117 -164 26 6 42 18 53 39 21 42 28 46 85
|
||||
43 44 -3 50 -6 53 -26 2 -12 -8 -42 -22 -66 -35 -60 -107 -96 -190 -96 -144 1
|
||||
-226 93 -229 258 -2 98 16 160 60 212 65 76 138 95 243 64z m2196 1 c53 -16
|
||||
108 -65 140 -125 29 -54 27 -230 -3 -286 -47 -89 -124 -130 -229 -121 -81 6
|
||||
-136 42 -178 117 -28 50 -31 63 -31 145 0 103 14 152 58 201 63 73 149 97 243
|
||||
69z m-8376 -14 c5 -11 8 -30 6 -43 -3 -13 -5 -26 -5 -30 -1 -4 -36 -8 -78 -10
|
||||
l-78 -3 -3 -213 -2 -213 -63 3 -62 3 -5 210 -5 210 -72 3 -73 3 0 43 c0 23 3
|
||||
46 7 49 3 4 100 7 214 7 196 0 209 -1 219 -19z m375 -6 c55 -28 85 -76 85
|
||||
-137 0 -56 -10 -80 -53 -126 l-31 -32 47 -95 c26 -53 47 -100 47 -105 0 -6
|
||||
-29 -10 -65 -10 l-65 0 -45 91 c-45 88 -47 90 -78 87 l-32 -3 -5 -85 -5 -85
|
||||
-62 -3 -63 -3 0 259 c0 142 3 262 7 266 4 4 69 6 143 4 111 -2 142 -7 175 -23z
|
||||
m433 13 c5 -7 44 -107 86 -223 43 -115 84 -227 92 -248 8 -20 14 -40 14 -42 0
|
||||
-3 -31 -5 -70 -5 l-69 0 -11 40 c-13 48 -20 52 -90 57 -79 6 -106 -7 -117 -54
|
||||
l-9 -38 -67 -3 c-51 -2 -67 0 -67 11 0 12 140 399 174 481 15 35 16 36 69 36
|
||||
32 0 59 -5 65 -12z m368 4 c6 -4 46 -69 88 -144 43 -76 82 -138 87 -138 5 0 9
|
||||
63 9 140 0 138 0 140 23 146 13 3 41 4 63 2 34 -3 39 -7 44 -33 5 -22 5 -435
|
||||
1 -487 -1 -5 -30 -8 -65 -8 l-64 0 -47 83 c-26 45 -66 114 -89 152 l-41 70 -5
|
||||
-150 -5 -150 -62 -3 c-46 -2 -63 0 -63 10 -3 102 2 503 6 509 6 11 105 12 120
|
||||
1z m1159 -3 c82 -23 145 -122 129 -205 -8 -45 -55 -100 -102 -119 -19 -8 -61
|
||||
-15 -92 -15 -89 0 -90 -1 -90 -84 0 -39 -4 -77 -9 -84 -5 -9 -26 -12 -67 -10
|
||||
l-59 3 -3 248 c-2 179 0 253 9 263 14 17 223 20 284 3z m1038 -13 c44 -22 66
|
||||
-50 77 -101 14 -64 1 -114 -42 -157 l-38 -38 50 -100 c27 -55 50 -102 50 -105
|
||||
0 -3 -30 -5 -67 -3 l-68 3 -45 85 c-41 78 -48 85 -77 88 -28 3 -33 0 -34 -20
|
||||
0 -13 -2 -34 -3 -48 -1 -14 -3 -44 -4 -67 l-2 -43 -59 0 c-42 0 -60 4 -64 14
|
||||
-11 29 -8 476 4 497 10 20 18 21 147 17 109 -3 145 -7 175 -22z m552 -26 l0
|
||||
-45 -75 -5 -75 -5 -3 -212 -2 -213 -65 0 -65 0 -2 213 -3 212 -75 5 c-69 5
|
||||
-75 7 -78 29 -2 12 -1 34 2 47 l6 24 218 -2 217 -3 0 -45z m414 36 c7 -8 11
|
||||
-30 9 -48 l-3 -33 -115 -5 -115 -5 0 -50 0 -50 95 -5 95 -5 0 -45 0 -45 -95
|
||||
-5 -95 -5 -3 -57 -3 -58 48 -1 c26 0 71 0 100 1 63 2 93 -13 93 -45 0 -56 2
|
||||
-55 -191 -55 l-179 0 0 258 c0 142 3 262 7 265 3 4 82 7 173 7 133 0 170 -3
|
||||
179 -14z m599 5 c8 -5 12 -23 10 -47 l-3 -39 -115 -5 -115 -5 0 -50 0 -50 95
|
||||
-5 95 -5 0 -45 0 -45 -95 -5 -95 -5 -3 -57 -3 -58 93 -1 c51 -1 98 -2 103 -4
|
||||
6 -1 15 -3 22 -3 7 -1 15 -18 19 -37 3 -19 9 -35 13 -35 4 0 38 54 76 121 l68
|
||||
121 -21 41 c-25 49 -77 142 -99 175 -26 41 -11 53 59 50 l63 -3 38 -72 c21
|
||||
-40 44 -73 50 -73 7 0 29 34 50 75 l37 75 60 0 c74 0 81 -11 47 -72 -13 -24
|
||||
-43 -78 -66 -120 l-42 -77 70 -123 c39 -67 67 -126 62 -131 -4 -4 -37 -7 -71
|
||||
-5 l-64 3 -36 70 c-20 39 -42 70 -49 70 -7 0 -29 -31 -49 -70 l-37 -70 -259
|
||||
-3 c-201 -2 -261 0 -268 10 -13 22 -10 492 4 506 14 14 335 17 356 3z m904
|
||||
-16 c8 -19 8 -31 0 -50 -11 -23 -15 -24 -119 -27 l-108 -3 -5 -35 c-11 -68 -8
|
||||
-70 96 -70 92 0 94 -1 100 -25 3 -14 3 -36 0 -50 -6 -24 -9 -25 -94 -25 -99 0
|
||||
-112 -7 -112 -60 0 -56 6 -59 125 -62 l110 -3 3 -47 3 -48 -179 0 c-155 0
|
||||
-181 2 -186 16 -3 9 -6 122 -6 253 0 171 3 240 12 249 8 8 63 12 180 12 l168
|
||||
0 12 -25z m678 -178 c5 -194 6 -199 29 -218 30 -24 72 -24 102 0 23 19 24 24
|
||||
29 218 l5 198 60 0 60 0 3 -193 c2 -173 0 -198 -17 -237 -29 -65 -83 -97 -175
|
||||
-103 -90 -6 -149 17 -192 74 l-29 37 -3 205 c-3 161 0 207 10 214 7 4 36 7 63
|
||||
6 l50 -3 5 -198z m785 153 l0 -45 -75 -5 -75 -5 -5 -210 -5 -210 -62 -3 -63
|
||||
-3 -2 213 -3 213 -75 5 -75 5 -3 39 c-2 24 2 42 10 47 7 5 108 8 223 6 l210
|
||||
-2 0 -45z m181 38 c10 -16 18 -417 10 -473 l-7 -45 -59 0 c-45 0 -59 4 -64 17
|
||||
-8 20 -7 462 1 492 5 18 13 21 59 21 30 0 56 -5 60 -12z m201 0 c4 -7 28 -84
|
||||
53 -171 25 -87 50 -158 55 -158 11 0 20 26 66 201 17 63 35 121 41 128 12 14
|
||||
124 17 133 3 3 -5 -34 -125 -81 -265 l-86 -256 -73 0 -72 0 -86 256 c-48 141
|
||||
-84 260 -81 265 8 14 122 11 131 -3z m-5643 -991 c60 -33 108 -112 92 -153 -4
|
||||
-11 -18 -14 -58 -12 -49 3 -54 6 -69 36 -19 42 -34 52 -82 52 -74 0 -104 -64
|
||||
-95 -203 6 -86 24 -120 72 -132 46 -11 81 5 106 50 15 28 21 30 71 30 l54 0
|
||||
-1 -36 c-2 -79 -77 -139 -184 -147 -109 -7 -178 27 -223 112 -19 35 -22 56
|
||||
-22 156 0 93 4 122 19 150 33 63 76 98 146 121 39 13 130 1 174 -24z m454 18
|
||||
c67 -20 105 -53 139 -122 23 -49 27 -69 27 -144 0 -77 -3 -94 -30 -145 -40
|
||||
-79 -93 -115 -180 -122 -85 -6 -141 15 -192 74 -22 24 -45 64 -52 89 -17 60
|
||||
-9 210 13 252 27 51 86 102 136 118 60 18 77 18 139 0z m1521 -15 c84 -43 125
|
||||
-125 126 -251 0 -76 -3 -92 -30 -144 -42 -82 -91 -115 -179 -122 -166 -14
|
||||
-265 102 -254 296 7 121 61 202 154 234 58 20 129 15 183 -13z m2662 -1 c87
|
||||
-44 136 -150 126 -276 -13 -166 -105 -252 -259 -241 -76 6 -132 44 -173 118
|
||||
-27 49 -30 64 -30 145 0 103 14 152 58 201 70 81 183 102 278 53z m-5204 4 c7
|
||||
-16 8 -26 4 -70 -1 -10 -30 -13 -111 -13 -101 0 -110 -2 -121 -21 -6 -12 -8
|
||||
-36 -4 -55 l6 -34 94 0 c93 0 95 -1 101 -25 3 -14 3 -36 0 -50 -6 -24 -9 -25
|
||||
-95 -25 -60 0 -92 -4 -99 -13 -14 -16 -13 -95 1 -104 5 -3 50 -5 100 -4 122 2
|
||||
127 0 127 -55 l0 -44 -182 2 -183 3 -3 254 c-2 197 1 256 10 263 7 4 88 8 180
|
||||
8 150 0 168 -2 175 -17z m1578 -8 c99 -50 116 -187 31 -264 -14 -14 -26 -29
|
||||
-26 -35 0 -5 20 -49 45 -97 25 -48 45 -92 45 -99 0 -7 -22 -10 -67 -8 l-68 3
|
||||
-45 85 c-41 78 -48 85 -75 85 l-30 0 -5 -85 -5 -85 -62 -3 -63 -3 0 259 c0
|
||||
142 3 262 8 266 4 4 68 6 142 4 110 -2 142 -7 175 -23z m436 14 c70 -15 125
|
||||
-69 134 -133 20 -132 -40 -192 -210 -213 l-70 -8 -5 -83 c-3 -45 -8 -82 -12
|
||||
-82 -5 0 -33 0 -63 0 l-55 0 0 258 c0 142 3 262 7 265 11 11 218 8 274 -4z
|
||||
m1044 -14 c55 -28 85 -76 85 -137 0 -55 -16 -91 -54 -127 -14 -14 -26 -29 -26
|
||||
-34 0 -6 20 -50 45 -98 25 -48 45 -93 45 -99 0 -7 -23 -10 -67 -8 l-67 3 -45
|
||||
88 c-43 84 -46 88 -75 85 l-31 -3 -5 -85 -5 -85 -62 -3 -63 -3 0 260 c0 198 3
|
||||
261 13 265 6 3 71 4 142 3 107 -2 137 -6 170 -22z m433 12 c10 -11 192 -497
|
||||
192 -511 0 -3 -31 -6 -69 -6 l-68 0 -13 45 c-10 35 -17 45 -34 46 -11 0 -47 2
|
||||
-78 3 -32 1 -62 0 -68 -4 -5 -3 -16 -24 -23 -45 -14 -40 -14 -40 -72 -43 -32
|
||||
-2 -63 -1 -70 2 -10 3 3 47 45 158 32 84 75 198 95 253 20 55 42 103 48 107
|
||||
20 13 104 9 115 -5z m607 -37 l0 -45 -75 -5 -75 -5 -5 -210 -5 -210 -62 -3
|
||||
-63 -3 0 204 c0 155 -3 207 -13 215 -7 6 -42 12 -77 14 l-65 3 -3 39 c-2 24 2
|
||||
42 10 47 7 5 108 8 223 6 l210 -2 0 -45z m183 -218 l2 -263 -62 3 -63 3 -3
|
||||
254 c-2 197 1 256 10 263 7 4 36 7 63 6 l50 -3 3 -263z m200 256 c5 -7 28 -83
|
||||
51 -168 24 -85 46 -159 51 -164 12 -12 21 14 66 181 20 76 41 144 46 151 12
|
||||
14 124 17 133 2 3 -5 -33 -123 -80 -261 -47 -139 -85 -254 -85 -256 0 -1 -34
|
||||
-3 -75 -3 -41 0 -75 1 -75 3 0 2 -38 117 -85 256 -47 139 -83 257 -80 262 9
|
||||
14 121 11 133 -3z m965 -409 c29 -16 37 -28 37 -60 0 -30 -14 -45 -53 -54 -68
|
||||
-17 -111 76 -49 109 33 19 38 19 65 5z"/>
|
||||
<path d="M2622 5038 c-5 -7 -37 -67 -70 -134 -92 -182 -70 -168 -263 -174
|
||||
-141 -4 -164 -7 -167 -21 -2 -11 34 -47 102 -103 58 -48 108 -97 111 -109 4
|
||||
-14 -17 -72 -60 -166 -66 -146 -74 -171 -53 -171 6 0 74 41 151 91 100 64 146
|
||||
89 161 85 12 -3 68 -44 125 -91 100 -82 123 -95 135 -76 4 5 -1 60 -10 123
|
||||
-27 189 -27 187 -11 211 8 12 67 56 131 97 134 85 158 106 136 120 -8 6 -81
|
||||
10 -162 10 -173 0 -168 -3 -188 120 -7 41 -16 98 -21 127 -11 57 -30 81 -47
|
||||
61z"/>
|
||||
<path d="M3784 4955 c-22 -34 -58 -269 -44 -295 6 -11 26 -22 45 -26 43 -8
|
||||
283 0 307 10 9 4 21 22 27 39 15 50 43 241 39 268 l-3 24 -177 3 -177 2 -17
|
||||
-25z"/>
|
||||
<path d="M6202 5004 c-32 -22 -41 -50 -57 -183 -21 -162 -20 -187 7 -205 33
|
||||
-23 363 -23 395 -1 28 20 38 58 57 214 15 118 14 127 -2 155 l-18 31 -180 3
|
||||
c-152 2 -182 0 -202 -14z"/>
|
||||
<path d="M4025 3294 c-30 -33 -38 -73 -33 -168 5 -113 55 -166 128 -136 54 22
|
||||
79 104 65 216 -5 44 -14 64 -35 86 -38 38 -91 39 -125 2z"/>
|
||||
<path d="M9594 3305 c-36 -24 -46 -66 -42 -170 3 -95 4 -97 36 -126 36 -32 60
|
||||
-36 101 -14 40 20 56 67 55 160 -1 116 -31 165 -101 165 -16 0 -38 -7 -49 -15z"/>
|
||||
<path d="M1524 3306 c-3 -7 -4 -38 -2 -67 l3 -54 57 -3 c49 -3 58 0 72 20 41
|
||||
58 0 118 -81 118 -28 0 -46 -5 -49 -14z"/>
|
||||
<path d="M2072 3213 c-43 -114 -42 -123 11 -123 24 0 46 2 49 5 7 7 -29 126
|
||||
-41 138 -4 4 -13 -5 -19 -20z"/>
|
||||
<path d="M3527 3313 c-4 -3 -7 -37 -7 -75 l0 -68 58 0 c70 0 92 18 92 73 0 47
|
||||
-36 77 -95 77 -23 0 -45 -3 -48 -7z"/>
|
||||
<path d="M4527 3313 c-6 -10 -9 -49 -8 -94 1 -36 3 -37 42 -41 22 -2 53 2 70
|
||||
9 26 11 29 17 29 57 0 35 -5 48 -22 60 -23 16 -103 22 -111 9z"/>
|
||||
<path d="M3711 2312 c-48 -47 -54 -200 -11 -270 36 -59 118 -50 153 18 15 28
|
||||
17 53 15 127 -4 86 -6 95 -33 123 -38 40 -86 41 -124 2z"/>
|
||||
<path d="M5197 2320 c-50 -40 -60 -207 -17 -278 34 -56 113 -51 150 10 16 26
|
||||
20 51 20 115 0 45 -4 93 -9 106 -24 64 -94 86 -144 47z"/>
|
||||
<path d="M7855 2316 c-30 -30 -38 -74 -33 -177 3 -77 5 -82 36 -110 36 -33 60
|
||||
-36 102 -14 37 19 54 70 53 165 0 81 -18 131 -52 150 -34 18 -80 12 -106 -14z"/>
|
||||
<path d="M4207 2333 c-4 -3 -7 -35 -7 -70 l0 -63 59 0 c51 0 62 3 75 22 40 57
|
||||
0 118 -79 118 -23 0 -45 -3 -48 -7z"/>
|
||||
<path d="M4692 2331 c-9 -5 -12 -27 -10 -72 l3 -64 44 -3 c63 -5 90 5 102 35
|
||||
15 40 2 81 -31 98 -32 16 -87 20 -108 6z"/>
|
||||
<path d="M5687 2333 c-4 -3 -7 -32 -7 -64 0 -69 13 -81 78 -72 108 14 89 143
|
||||
-21 143 -24 0 -47 -3 -50 -7z"/>
|
||||
<path d="M6243 2249 c-12 -15 -47 -128 -41 -133 1 -2 20 -6 40 -9 53 -8 59 6
|
||||
34 87 -17 55 -23 66 -33 55z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
35
mobile/src/components/Button.tsx
Normal file
35
mobile/src/components/Button.tsx
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import {
|
||||
StyleSheet,
|
||||
Text,
|
||||
TouchableOpacity,
|
||||
TouchableOpacityProps,
|
||||
} from "react-native";
|
||||
|
||||
type ButtonProps = TouchableOpacityProps & {
|
||||
label: string;
|
||||
};
|
||||
|
||||
// Componente de botão personalizado
|
||||
export function Button({ label, ...rest }: ButtonProps) {
|
||||
return (
|
||||
<TouchableOpacity style={styles.container} activeOpacity={0.7} {...rest}>
|
||||
<Text style={styles.label}>{label}</Text>
|
||||
</TouchableOpacity>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
width: "100%",
|
||||
height: 48,
|
||||
backgroundColor: "#a19f9f",
|
||||
borderRadius: 8,
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
},
|
||||
label: {
|
||||
color: "#050505",
|
||||
fontSize: 16,
|
||||
fontWeight: "600",
|
||||
},
|
||||
});
|
||||
22
mobile/src/components/Input.tsx
Normal file
22
mobile/src/components/Input.tsx
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import { StyleSheet, TextInput, TextInputProps } from "react-native";
|
||||
|
||||
export function Input({ ...rest }: TextInputProps) {
|
||||
return (
|
||||
<TextInput style={styles.input} placeholderTextColor="#7c7c7c" {...rest} />
|
||||
);
|
||||
}
|
||||
|
||||
// Estilos para o componente Input
|
||||
const styles = StyleSheet.create({
|
||||
input: {
|
||||
width: "100%",
|
||||
height: 48,
|
||||
borderWidth: 1,
|
||||
borderColor: "#2a2a2a",
|
||||
backgroundColor: "#1a1a1a",
|
||||
borderRadius: 8,
|
||||
color: "#e7e7e7",
|
||||
fontSize: 16,
|
||||
paddingLeft: 12,
|
||||
},
|
||||
});
|
||||
0
mobile/src/server/api.ts
Normal file
0
mobile/src/server/api.ts
Normal file
10
mobile/tsconfig.json
Normal file
10
mobile/tsconfig.json
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"extends": "expo/tsconfig.base",
|
||||
"compilerOptions": {
|
||||
"strict": true,
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts"]
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue