From c44562fb90fd703b3498b38247c6417eee70284a Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 07:47:48 -0300 Subject: [PATCH 01/32] chore: add Next.js --- .gitignore | 35 +- README.md | 55 ++-- jsconfig.json | 8 + next.config.js | 6 + package-lock.json | 632 +++++++++++++++++++++++++++++++++++++ package.json | 17 + public/favicon.ico | Bin 0 -> 25931 bytes public/next.svg | 1 + public/thirteen.svg | 1 + public/vercel.svg | 1 + src/pages/_app.js | 5 + src/pages/_document.js | 13 + src/pages/api/hello.js | 5 + src/pages/index.js | 123 ++++++++ src/styles/Home.module.css | 278 ++++++++++++++++ src/styles/globals.css | 107 +++++++ 16 files changed, 1251 insertions(+), 36 deletions(-) create mode 100644 jsconfig.json create mode 100644 next.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/next.svg create mode 100644 public/thirteen.svg create mode 100644 public/vercel.svg create mode 100644 src/pages/_app.js create mode 100644 src/pages/_document.js create mode 100644 src/pages/api/hello.js create mode 100644 src/pages/index.js create mode 100644 src/styles/Home.module.css create mode 100644 src/styles/globals.css diff --git a/.gitignore b/.gitignore index 5765e8a8..55175ef8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,32 @@ -# Dependency directories -node_modules/ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# Next.js build output -.next +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel diff --git a/README.md b/README.md index c5efab24..ca8a3a21 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,38 @@ -# Desafio - Front-end Developer -Este desafio tem como objetivo te avaliar como desenvolvedor Front-end: JavaScript, HTML, CSS e lógica de programação. +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). -## O Desafio -Queremos montar uma versão do blog da Apiki apenas para Devs, e queremos que essa seja uma solução headless, esta nova versão terá as seguintes páginas: +## Getting Started -- Página inicial: Listará as últimas postagens do blog com a categoria **Desenvolvimento**; -- Interna: Exibirá o conteúdo da postagem; +First, run the development server: +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +``` -## Requesitos -- Utilizar os dados da API do nosso blog: https://blog.apiki.com/wp-json/wp/v2/; +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. -## Diferencial -- Utilizar alguma metodologia para a organização de seu CSS (BEMCSS, OOCSS, SMACSS... o que preferir :D); -- Escolha uma lib para criação de interfaces de usuário (React ou Angular); +You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. -### Página inicial -Para montar esta página você precisará consumir do seguinte endpoint: `https://blog.apiki.com/wp-json/wp/v2/posts?_embed&categories=518`, ele já te retornará as últimas 10 postagens cadastradas, cada item do array deve representar uma card contendo: +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`. -- Imagem destacada: Você encontrará um atributo chamado `_embedded`, dentro deste atributo você encontrará o `wp:featuredmedia`; -- Título; -- Link para a postagem: O link deverá conter o atributo `slug`; +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. -Ao final da listagem deve haver um botão nomeado **Carregar mais...**, Quando o usuário clicar neste botão você deverá fazer uma nova requisição para o mesmo endpoint informando o parâmetro `page`, este parâmetro deve receber o número da próxima página, exemplo: `https://blog.apiki.com/wp-json/wp/v2/posts?_embed&categories=518&page=2`. Você deve estar se perguntando, "como sei se haverá uma próxima página?", isso é simples, no **Header** de resposta desta requisição virá 2 atributos necessários para essa façanha `X-WP-Total` que diz a quantidade total de postagens que essa categoria possui, e o parâmetro `X-WP-TotalPages` que te informará qual o total de páginas de postagens que essa categoria possui. +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. -### Interna -Para montar esta página você precisará consumir do seguinte endpoint: `https://blog.apiki.com/wp-json/wp/v2/posts?_embed&slug=wordpress-escolha-site-pequenas-empresas`, lembre-se de substituir o `slug` dado como exemplo pelo slug definido no **Link para a postagem** da **Página inicial**, o layout deve conter os seguintes elementos: +## Learn More -- Imagem destacada; -- Título; -- Conteúdo; +To learn more about Next.js, take a look at the following resources: -Seja criativo, construa um layout pensando no usuário final, e sinta-se a vontade para incrementar o layout com outros atributos disponíveis no JSON retornado. +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. -## Critérios de avaliação +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! -- Organização do código; -- Responsividade; -- Reaproveitamento de código; -- SEO; +## Deploy on Vercel -## Como submeter seu projeto +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. -1. Efetue o fork deste repositório e crie um branch com o seu nome e sobrenome. (exemplo: fulano-dasilva); -1. Após finalizar o desafio, crie um Pull Request; -1. Aguarde algum contribuidor realizar o code review; +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 00000000..abe04df5 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/next.config.js b/next.config.js new file mode 100644 index 00000000..a843cbee --- /dev/null +++ b/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..9566f799 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,632 @@ +{ + "name": "front-end-challenge", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "front-end-challenge", + "version": "0.1.0", + "dependencies": { + "@next/font": "13.1.6", + "next": "13.1.6", + "react": "18.2.0", + "react-dom": "18.2.0" + } + }, + "node_modules/@next/env": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz", + "integrity": "sha512-s+W9Fdqh5MFk6ECrbnVmmAOwxKQuhGMT7xXHrkYIBMBcTiOqNWhv5KbJIboKR5STXxNXl32hllnvKaffzFaWQg==" + }, + "node_modules/@next/font": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.6.tgz", + "integrity": "sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ==" + }, + "node_modules/@next/swc-android-arm-eabi": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.6.tgz", + "integrity": "sha512-F3/6Z8LH/pGlPzR1AcjPFxx35mPqjE5xZcf+IL+KgbW9tMkp7CYi1y7qKrEWU7W4AumxX/8OINnDQWLiwLasLQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-android-arm64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.6.tgz", + "integrity": "sha512-cMwQjnB8vrYkWyK/H0Rf2c2pKIH4RGjpKUDvbjVAit6SbwPDpmaijLio0LWFV3/tOnY6kvzbL62lndVA0mkYpw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.6.tgz", + "integrity": "sha512-KKRQH4DDE4kONXCvFMNBZGDb499Hs+xcFAwvj+rfSUssIDrZOlyfJNy55rH5t2Qxed1e4K80KEJgsxKQN1/fyw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.6.tgz", + "integrity": "sha512-/uOky5PaZDoaU99ohjtNcDTJ6ks/gZ5ykTQDvNZDjIoCxFe3+t06bxsTPY6tAO6uEAw5f6vVFX5H5KLwhrkZCA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-freebsd-x64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.6.tgz", + "integrity": "sha512-qaEALZeV7to6weSXk3Br80wtFQ7cFTpos/q+m9XVRFggu+8Ib895XhMWdJBzew6aaOcMvYR6KQ6JmHA2/eMzWw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm-gnueabihf": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.6.tgz", + "integrity": "sha512-OybkbC58A1wJ+JrJSOjGDvZzrVEQA4sprJejGqMwiZyLqhr9Eo8FXF0y6HL+m1CPCpPhXEHz/2xKoYsl16kNqw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.6.tgz", + "integrity": "sha512-yCH+yDr7/4FDuWv6+GiYrPI9kcTAO3y48UmaIbrKy8ZJpi7RehJe3vIBRUmLrLaNDH3rY1rwoHi471NvR5J5NQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.6.tgz", + "integrity": "sha512-ECagB8LGX25P9Mrmlc7Q/TQBb9rGScxHbv/kLqqIWs2fIXy6Y/EiBBiM72NTwuXUFCNrWR4sjUPSooVBJJ3ESQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.6.tgz", + "integrity": "sha512-GT5w2mruk90V/I5g6ScuueE7fqj/d8Bui2qxdw6lFxmuTgMeol5rnzAv4uAoVQgClOUO/MULilzlODg9Ib3Y4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.6.tgz", + "integrity": "sha512-keFD6KvwOPzmat4TCnlnuxJCQepPN+8j3Nw876FtULxo8005Y9Ghcl7ACcR8GoiKoddAq8gxNBrpjoxjQRHeAQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.6.tgz", + "integrity": "sha512-OwertslIiGQluFvHyRDzBCIB07qJjqabAmINlXUYt7/sY7Q7QPE8xVi5beBxX/rxTGPIbtyIe3faBE6Z2KywhQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.6.tgz", + "integrity": "sha512-g8zowiuP8FxUR9zslPmlju7qYbs2XBtTLVSxVikPtUDQedhcls39uKYLvOOd1JZg0ehyhopobRoH1q+MHlIN/w==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.6.tgz", + "integrity": "sha512-Ls2OL9hi3YlJKGNdKv8k3X/lLgc3VmLG3a/DeTkAd+lAituJp8ZHmRmm9f9SL84fT3CotlzcgbdaCDfFwFA6bA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001452", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", + "integrity": "sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-13.1.6.tgz", + "integrity": "sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==", + "dependencies": { + "@next/env": "13.1.6", + "@swc/helpers": "0.4.14", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=14.6.0" + }, + "optionalDependencies": { + "@next/swc-android-arm-eabi": "13.1.6", + "@next/swc-android-arm64": "13.1.6", + "@next/swc-darwin-arm64": "13.1.6", + "@next/swc-darwin-x64": "13.1.6", + "@next/swc-freebsd-x64": "13.1.6", + "@next/swc-linux-arm-gnueabihf": "13.1.6", + "@next/swc-linux-arm64-gnu": "13.1.6", + "@next/swc-linux-arm64-musl": "13.1.6", + "@next/swc-linux-x64-gnu": "13.1.6", + "@next/swc-linux-x64-musl": "13.1.6", + "@next/swc-win32-arm64-msvc": "13.1.6", + "@next/swc-win32-ia32-msvc": "13.1.6", + "@next/swc-win32-x64-msvc": "13.1.6" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^6.0.0 || ^7.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } + }, + "dependencies": { + "@next/env": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz", + "integrity": "sha512-s+W9Fdqh5MFk6ECrbnVmmAOwxKQuhGMT7xXHrkYIBMBcTiOqNWhv5KbJIboKR5STXxNXl32hllnvKaffzFaWQg==" + }, + "@next/font": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.6.tgz", + "integrity": "sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ==" + }, + "@next/swc-android-arm-eabi": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.6.tgz", + "integrity": "sha512-F3/6Z8LH/pGlPzR1AcjPFxx35mPqjE5xZcf+IL+KgbW9tMkp7CYi1y7qKrEWU7W4AumxX/8OINnDQWLiwLasLQ==", + "optional": true + }, + "@next/swc-android-arm64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.6.tgz", + "integrity": "sha512-cMwQjnB8vrYkWyK/H0Rf2c2pKIH4RGjpKUDvbjVAit6SbwPDpmaijLio0LWFV3/tOnY6kvzbL62lndVA0mkYpw==", + "optional": true + }, + "@next/swc-darwin-arm64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.6.tgz", + "integrity": "sha512-KKRQH4DDE4kONXCvFMNBZGDb499Hs+xcFAwvj+rfSUssIDrZOlyfJNy55rH5t2Qxed1e4K80KEJgsxKQN1/fyw==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.6.tgz", + "integrity": "sha512-/uOky5PaZDoaU99ohjtNcDTJ6ks/gZ5ykTQDvNZDjIoCxFe3+t06bxsTPY6tAO6uEAw5f6vVFX5H5KLwhrkZCA==", + "optional": true + }, + "@next/swc-freebsd-x64": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.6.tgz", + "integrity": "sha512-qaEALZeV7to6weSXk3Br80wtFQ7cFTpos/q+m9XVRFggu+8Ib895XhMWdJBzew6aaOcMvYR6KQ6JmHA2/eMzWw==", + "optional": true + }, + "@next/swc-linux-arm-gnueabihf": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.6.tgz", + "integrity": "sha512-OybkbC58A1wJ+JrJSOjGDvZzrVEQA4sprJejGqMwiZyLqhr9Eo8FXF0y6HL+m1CPCpPhXEHz/2xKoYsl16kNqw==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.6.tgz", + "integrity": "sha512-yCH+yDr7/4FDuWv6+GiYrPI9kcTAO3y48UmaIbrKy8ZJpi7RehJe3vIBRUmLrLaNDH3rY1rwoHi471NvR5J5NQ==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.6.tgz", + "integrity": "sha512-ECagB8LGX25P9Mrmlc7Q/TQBb9rGScxHbv/kLqqIWs2fIXy6Y/EiBBiM72NTwuXUFCNrWR4sjUPSooVBJJ3ESQ==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.6.tgz", + "integrity": "sha512-GT5w2mruk90V/I5g6ScuueE7fqj/d8Bui2qxdw6lFxmuTgMeol5rnzAv4uAoVQgClOUO/MULilzlODg9Ib3Y4Q==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.6.tgz", + "integrity": "sha512-keFD6KvwOPzmat4TCnlnuxJCQepPN+8j3Nw876FtULxo8005Y9Ghcl7ACcR8GoiKoddAq8gxNBrpjoxjQRHeAQ==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.6.tgz", + "integrity": "sha512-OwertslIiGQluFvHyRDzBCIB07qJjqabAmINlXUYt7/sY7Q7QPE8xVi5beBxX/rxTGPIbtyIe3faBE6Z2KywhQ==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.6.tgz", + "integrity": "sha512-g8zowiuP8FxUR9zslPmlju7qYbs2XBtTLVSxVikPtUDQedhcls39uKYLvOOd1JZg0ehyhopobRoH1q+MHlIN/w==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.6.tgz", + "integrity": "sha512-Ls2OL9hi3YlJKGNdKv8k3X/lLgc3VmLG3a/DeTkAd+lAituJp8ZHmRmm9f9SL84fT3CotlzcgbdaCDfFwFA6bA==", + "optional": true + }, + "@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "requires": { + "tslib": "^2.4.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001452", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", + "integrity": "sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==" + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "next": { + "version": "13.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-13.1.6.tgz", + "integrity": "sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==", + "requires": { + "@next/env": "13.1.6", + "@next/swc-android-arm-eabi": "13.1.6", + "@next/swc-android-arm64": "13.1.6", + "@next/swc-darwin-arm64": "13.1.6", + "@next/swc-darwin-x64": "13.1.6", + "@next/swc-freebsd-x64": "13.1.6", + "@next/swc-linux-arm-gnueabihf": "13.1.6", + "@next/swc-linux-arm64-gnu": "13.1.6", + "@next/swc-linux-arm64-musl": "13.1.6", + "@next/swc-linux-x64-gnu": "13.1.6", + "@next/swc-linux-x64-musl": "13.1.6", + "@next/swc-win32-arm64-msvc": "13.1.6", + "@next/swc-win32-ia32-msvc": "13.1.6", + "@next/swc-win32-x64-msvc": "13.1.6", + "@swc/helpers": "0.4.14", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "requires": { + "client-only": "0.0.1" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..0a007cb9 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "front-end-challenge", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@next/font": "13.1.6", + "next": "13.1.6", + "react": "18.2.0", + "react-dom": "18.2.0" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/public/next.svg b/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/thirteen.svg b/public/thirteen.svg new file mode 100644 index 00000000..8977c1bd --- /dev/null +++ b/public/thirteen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg new file mode 100644 index 00000000..d2f84222 --- /dev/null +++ b/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/pages/_app.js b/src/pages/_app.js new file mode 100644 index 00000000..23002013 --- /dev/null +++ b/src/pages/_app.js @@ -0,0 +1,5 @@ +import '@/styles/globals.css' + +export default function App({ Component, pageProps }) { + return +} diff --git a/src/pages/_document.js b/src/pages/_document.js new file mode 100644 index 00000000..54e8bf3e --- /dev/null +++ b/src/pages/_document.js @@ -0,0 +1,13 @@ +import { Html, Head, Main, NextScript } from 'next/document' + +export default function Document() { + return ( + + + +
+ + + + ) +} diff --git a/src/pages/api/hello.js b/src/pages/api/hello.js new file mode 100644 index 00000000..df63de88 --- /dev/null +++ b/src/pages/api/hello.js @@ -0,0 +1,5 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction + +export default function handler(req, res) { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/src/pages/index.js b/src/pages/index.js new file mode 100644 index 00000000..10cca9a5 --- /dev/null +++ b/src/pages/index.js @@ -0,0 +1,123 @@ +import Head from 'next/head' +import Image from 'next/image' +import { Inter } from '@next/font/google' +import styles from '@/styles/Home.module.css' + +const inter = Inter({ subsets: ['latin'] }) + +export default function Home() { + return ( + <> + + Create Next App + + + + +
+
+

+ Get started by editing  + src/pages/index.js +

+ +
+ +
+ Next.js Logo +
+ 13 +
+
+ + +
+ + ) +} diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css new file mode 100644 index 00000000..27dfff5e --- /dev/null +++ b/src/styles/Home.module.css @@ -0,0 +1,278 @@ +.main { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding: 6rem; + min-height: 100vh; +} + +.description { + display: inherit; + justify-content: inherit; + align-items: inherit; + font-size: 0.85rem; + max-width: var(--max-width); + width: 100%; + z-index: 2; + font-family: var(--font-mono); +} + +.description a { + display: flex; + justify-content: center; + align-items: center; + gap: 0.5rem; +} + +.description p { + position: relative; + margin: 0; + padding: 1rem; + background-color: rgba(var(--callout-rgb), 0.5); + border: 1px solid rgba(var(--callout-border-rgb), 0.3); + border-radius: var(--border-radius); +} + +.code { + font-weight: 700; + font-family: var(--font-mono); +} + +.grid { + display: grid; + grid-template-columns: repeat(4, minmax(25%, auto)); + width: var(--max-width); + max-width: 100%; +} + +.card { + padding: 1rem 1.2rem; + border-radius: var(--border-radius); + background: rgba(var(--card-rgb), 0); + border: 1px solid rgba(var(--card-border-rgb), 0); + transition: background 200ms, border 200ms; +} + +.card span { + display: inline-block; + transition: transform 200ms; +} + +.card h2 { + font-weight: 600; + margin-bottom: 0.7rem; +} + +.card p { + margin: 0; + opacity: 0.6; + font-size: 0.9rem; + line-height: 1.5; + max-width: 30ch; +} + +.center { + display: flex; + justify-content: center; + align-items: center; + position: relative; + padding: 4rem 0; +} + +.center::before { + background: var(--secondary-glow); + border-radius: 50%; + width: 480px; + height: 360px; + margin-left: -400px; +} + +.center::after { + background: var(--primary-glow); + width: 240px; + height: 180px; + z-index: -1; +} + +.center::before, +.center::after { + content: ''; + left: 50%; + position: absolute; + filter: blur(45px); + transform: translateZ(0); +} + +.logo, +.thirteen { + position: relative; +} + +.thirteen { + display: flex; + justify-content: center; + align-items: center; + width: 75px; + height: 75px; + padding: 25px 10px; + margin-left: 16px; + transform: translateZ(0); + border-radius: var(--border-radius); + overflow: hidden; + box-shadow: 0px 2px 8px -1px #0000001a; +} + +.thirteen::before, +.thirteen::after { + content: ''; + position: absolute; + z-index: -1; +} + +/* Conic Gradient Animation */ +.thirteen::before { + animation: 6s rotate linear infinite; + width: 200%; + height: 200%; + background: var(--tile-border); +} + +/* Inner Square */ +.thirteen::after { + inset: 0; + padding: 1px; + border-radius: var(--border-radius); + background: linear-gradient( + to bottom right, + rgba(var(--tile-start-rgb), 1), + rgba(var(--tile-end-rgb), 1) + ); + background-clip: content-box; +} + +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + .card:hover { + background: rgba(var(--card-rgb), 0.1); + border: 1px solid rgba(var(--card-border-rgb), 0.15); + } + + .card:hover span { + transform: translateX(4px); + } +} + +@media (prefers-reduced-motion) { + .thirteen::before { + animation: none; + } + + .card:hover span { + transform: none; + } +} + +/* Mobile */ +@media (max-width: 700px) { + .content { + padding: 4rem; + } + + .grid { + grid-template-columns: 1fr; + margin-bottom: 120px; + max-width: 320px; + text-align: center; + } + + .card { + padding: 1rem 2.5rem; + } + + .card h2 { + margin-bottom: 0.5rem; + } + + .center { + padding: 8rem 0 6rem; + } + + .center::before { + transform: none; + height: 300px; + } + + .description { + font-size: 0.8rem; + } + + .description a { + padding: 1rem; + } + + .description p, + .description div { + display: flex; + justify-content: center; + position: fixed; + width: 100%; + } + + .description p { + align-items: center; + inset: 0 0 auto; + padding: 2rem 1rem 1.4rem; + border-radius: 0; + border: none; + border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); + background: linear-gradient( + to bottom, + rgba(var(--background-start-rgb), 1), + rgba(var(--callout-rgb), 0.5) + ); + background-clip: padding-box; + backdrop-filter: blur(24px); + } + + .description div { + align-items: flex-end; + pointer-events: none; + inset: auto 0 0; + padding: 2rem; + height: 200px; + background: linear-gradient( + to bottom, + transparent 0%, + rgb(var(--background-end-rgb)) 40% + ); + z-index: 1; + } +} + +/* Tablet and Smaller Desktop */ +@media (min-width: 701px) and (max-width: 1120px) { + .grid { + grid-template-columns: repeat(2, 50%); + } +} + +@media (prefers-color-scheme: dark) { + .vercelLogo { + filter: invert(1); + } + + .logo, + .thirteen img { + filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); + } +} + +@keyframes rotate { + from { + transform: rotate(360deg); + } + to { + transform: rotate(0deg); + } +} diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 00000000..d4f491e1 --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,107 @@ +:root { + --max-width: 1100px; + --border-radius: 12px; + --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', + 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', + 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace; + + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; + + --primary-glow: conic-gradient( + from 180deg at 50% 50%, + #16abff33 0deg, + #0885ff33 55deg, + #54d6ff33 120deg, + #0071ff33 160deg, + transparent 360deg + ); + --secondary-glow: radial-gradient( + rgba(255, 255, 255, 1), + rgba(255, 255, 255, 0) + ); + + --tile-start-rgb: 239, 245, 249; + --tile-end-rgb: 228, 232, 233; + --tile-border: conic-gradient( + #00000080, + #00000040, + #00000030, + #00000020, + #00000010, + #00000010, + #00000080 + ); + + --callout-rgb: 238, 240, 241; + --callout-border-rgb: 172, 175, 176; + --card-rgb: 180, 185, 188; + --card-border-rgb: 131, 134, 135; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + + --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); + --secondary-glow: linear-gradient( + to bottom right, + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0.3) + ); + + --tile-start-rgb: 2, 13, 46; + --tile-end-rgb: 2, 5, 19; + --tile-border: conic-gradient( + #ffffff80, + #ffffff40, + #ffffff30, + #ffffff20, + #ffffff10, + #ffffff10, + #ffffff80 + ); + + --callout-rgb: 20, 20, 20; + --callout-border-rgb: 108, 108, 108; + --card-rgb: 100, 100, 100; + --card-border-rgb: 200, 200, 200; + } +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} From 4e3d437bff5560de6cfb1c7c0b9efc7f4fa52b4e Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:10:12 -0300 Subject: [PATCH 02/32] chore: install Styled-Component --- next.config.js | 6 +- package-lock.json | 831 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 3 +- 3 files changed, 836 insertions(+), 4 deletions(-) diff --git a/next.config.js b/next.config.js index a843cbee..7fe5d200 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,8 @@ -/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, + compiler: { + styledComponents: true, + } } -module.exports = nextConfig +module.exports = nextConfig; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9566f799..d3a06127 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,248 @@ "@next/font": "13.1.6", "next": "13.1.6", "react": "18.2.0", - "react-dom": "18.2.0" + "react-dom": "18.2.0", + "styled-components": "^5.3.6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "dependencies": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@next/env": { @@ -227,6 +468,45 @@ "tslib": "^2.4.0" } }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001452", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", @@ -242,16 +522,129 @@ } ] }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.1.0.tgz", + "integrity": "sha512-AryfkFA29b4I3vG7N4kxFboq15DxwSXzhXM37XNEjwJMgjYIc8BcqfiprpAqX0zadI5PMByEIwAMzXxk5Vcc4g==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -263,6 +656,11 @@ "loose-envify": "cli.js" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -330,6 +728,17 @@ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { "version": "8.4.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", @@ -353,6 +762,11 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -376,6 +790,12 @@ "react": "^18.2.0" } }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -384,6 +804,11 @@ "loose-envify": "^1.1.0" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -392,6 +817,36 @@ "node": ">=0.10.0" } }, + "node_modules/styled-components": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "hasInstallScript": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -414,6 +869,25 @@ } } }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -421,6 +895,189 @@ } }, "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/generator": { + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", + "requires": { + "@babel/types": "^7.20.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.20.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz", + "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==" + }, + "@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + } + }, + "@babel/traverse": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "requires": { + "@emotion/memoize": "^0.8.0" + } + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, "@next/env": { "version": "13.1.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz", @@ -517,21 +1174,137 @@ "tslib": "^2.4.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "babel-plugin-styled-components": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", + "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" + }, + "camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" + }, "caniuse-lite": { "version": "1.0.30001452", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001452.tgz", "integrity": "sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==" }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, + "css-to-react-native": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.1.0.tgz", + "integrity": "sha512-AryfkFA29b4I3vG7N4kxFboq15DxwSXzhXM37XNEjwJMgjYIc8BcqfiprpAqX0zadI5PMByEIwAMzXxk5Vcc4g==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -540,6 +1313,11 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -575,6 +1353,11 @@ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, "postcss": { "version": "8.4.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", @@ -585,6 +1368,11 @@ "source-map-js": "^1.0.2" } }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, "react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -602,6 +1390,12 @@ "scheduler": "^0.23.0" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "peer": true + }, "scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", @@ -610,11 +1404,33 @@ "loose-envify": "^1.1.0" } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, + "styled-components": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.6.tgz", + "integrity": "sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, "styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -623,6 +1439,19 @@ "client-only": "0.0.1" } }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", diff --git a/package.json b/package.json index 0a007cb9..30a6d693 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@next/font": "13.1.6", "next": "13.1.6", "react": "18.2.0", - "react-dom": "18.2.0" + "react-dom": "18.2.0", + "styled-components": "^5.3.6" } } From 6b416148d79716b6a760a194acb4a7884175d88c Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:14:55 -0300 Subject: [PATCH 03/32] chore: initial settings --- public/favicon.ico | Bin 25931 -> 0 bytes public/favicon.png | Bin 0 -> 3357 bytes public/logo.png | Bin 0 -> 9071 bytes public/next.svg | 1 - public/thirteen.svg | 1 - public/vercel.svg | 1 - src/pages/_app.js | 23 ++- src/pages/_document.js | 2 +- src/pages/api/hello.js | 5 - src/pages/index.js | 125 +------------- src/screens/HomeScreen/index.jsx | 16 ++ src/screens/HomeScreen/style.js | 0 src/styles/GlobalStyles.js | 13 ++ src/styles/Home.module.css | 278 ------------------------------- src/styles/colors.js | 17 ++ src/styles/devices.js | 17 ++ src/styles/globals.css | 107 ------------ 17 files changed, 87 insertions(+), 519 deletions(-) delete mode 100644 public/favicon.ico create mode 100644 public/favicon.png create mode 100644 public/logo.png delete mode 100644 public/next.svg delete mode 100644 public/thirteen.svg delete mode 100644 public/vercel.svg delete mode 100644 src/pages/api/hello.js create mode 100644 src/screens/HomeScreen/index.jsx create mode 100644 src/screens/HomeScreen/style.js create mode 100644 src/styles/GlobalStyles.js delete mode 100644 src/styles/Home.module.css create mode 100644 src/styles/colors.js create mode 100644 src/styles/devices.js delete mode 100644 src/styles/globals.css diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 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 LrJugUA?W`A8`#=m diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1b054ecaf19c27a75fb49761df6fb82fa47d895e GIT binary patch literal 3357 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 literal 0 HcmV?d00001 diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..28b6c16260560adf45c2c80a97118cfca691472f GIT binary patch literal 9071 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 \ No newline at end of file diff --git a/public/thirteen.svg b/public/thirteen.svg deleted file mode 100644 index 8977c1bd..00000000 --- a/public/thirteen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index d2f84222..00000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/pages/_app.js b/src/pages/_app.js index 23002013..e1b88ea4 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -1,5 +1,24 @@ -import '@/styles/globals.css' +import Head from "next/head"; +import { Montserrat } from "@next/font/google"; +import { GlobalStyles } from "@/styles/GlobalStyles"; + +const montserratFont = Montserrat({ + weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'], + subsets: ['latin'] +}); export default function App({ Component, pageProps }) { - return + return ( + <> + + + + + + +
+ +
+ + ); } diff --git a/src/pages/_document.js b/src/pages/_document.js index 54e8bf3e..6d0eb9fb 100644 --- a/src/pages/_document.js +++ b/src/pages/_document.js @@ -2,7 +2,7 @@ import { Html, Head, Main, NextScript } from 'next/document' export default function Document() { return ( - +
diff --git a/src/pages/api/hello.js b/src/pages/api/hello.js deleted file mode 100644 index df63de88..00000000 --- a/src/pages/api/hello.js +++ /dev/null @@ -1,5 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction - -export default function handler(req, res) { - res.status(200).json({ name: 'John Doe' }) -} diff --git a/src/pages/index.js b/src/pages/index.js index 10cca9a5..9a699c74 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -1,123 +1,2 @@ -import Head from 'next/head' -import Image from 'next/image' -import { Inter } from '@next/font/google' -import styles from '@/styles/Home.module.css' - -const inter = Inter({ subsets: ['latin'] }) - -export default function Home() { - return ( - <> - - Create Next App - - - - -
-
-

- Get started by editing  - src/pages/index.js -

- -
- -
- Next.js Logo -
- 13 -
-
- - -
- - ) -} +import { HomeScreen } from "@/screens/HomeScreen"; +export default HomeScreen; diff --git a/src/screens/HomeScreen/index.jsx b/src/screens/HomeScreen/index.jsx new file mode 100644 index 00000000..7af43b81 --- /dev/null +++ b/src/screens/HomeScreen/index.jsx @@ -0,0 +1,16 @@ +import Head from 'next/head'; + +export function HomeScreen() { + return ( + <> + + Apiki Blog + + + +
+ +
+ + ) +} \ No newline at end of file diff --git a/src/screens/HomeScreen/style.js b/src/screens/HomeScreen/style.js new file mode 100644 index 00000000..e69de29b diff --git a/src/styles/GlobalStyles.js b/src/styles/GlobalStyles.js new file mode 100644 index 00000000..c449e85c --- /dev/null +++ b/src/styles/GlobalStyles.js @@ -0,0 +1,13 @@ +import { createGlobalStyle } from 'styled-components'; + +export const GlobalStyles = createGlobalStyle` + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + html { + font-size: 62.5%; + font-family: 'Montserrat', sans-serif; + } +`; \ No newline at end of file diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css deleted file mode 100644 index 27dfff5e..00000000 --- a/src/styles/Home.module.css +++ /dev/null @@ -1,278 +0,0 @@ -.main { - display: flex; - flex-direction: column; - justify-content: space-between; - align-items: center; - padding: 6rem; - min-height: 100vh; -} - -.description { - display: inherit; - justify-content: inherit; - align-items: inherit; - font-size: 0.85rem; - max-width: var(--max-width); - width: 100%; - z-index: 2; - font-family: var(--font-mono); -} - -.description a { - display: flex; - justify-content: center; - align-items: center; - gap: 0.5rem; -} - -.description p { - position: relative; - margin: 0; - padding: 1rem; - background-color: rgba(var(--callout-rgb), 0.5); - border: 1px solid rgba(var(--callout-border-rgb), 0.3); - border-radius: var(--border-radius); -} - -.code { - font-weight: 700; - font-family: var(--font-mono); -} - -.grid { - display: grid; - grid-template-columns: repeat(4, minmax(25%, auto)); - width: var(--max-width); - max-width: 100%; -} - -.card { - padding: 1rem 1.2rem; - border-radius: var(--border-radius); - background: rgba(var(--card-rgb), 0); - border: 1px solid rgba(var(--card-border-rgb), 0); - transition: background 200ms, border 200ms; -} - -.card span { - display: inline-block; - transition: transform 200ms; -} - -.card h2 { - font-weight: 600; - margin-bottom: 0.7rem; -} - -.card p { - margin: 0; - opacity: 0.6; - font-size: 0.9rem; - line-height: 1.5; - max-width: 30ch; -} - -.center { - display: flex; - justify-content: center; - align-items: center; - position: relative; - padding: 4rem 0; -} - -.center::before { - background: var(--secondary-glow); - border-radius: 50%; - width: 480px; - height: 360px; - margin-left: -400px; -} - -.center::after { - background: var(--primary-glow); - width: 240px; - height: 180px; - z-index: -1; -} - -.center::before, -.center::after { - content: ''; - left: 50%; - position: absolute; - filter: blur(45px); - transform: translateZ(0); -} - -.logo, -.thirteen { - position: relative; -} - -.thirteen { - display: flex; - justify-content: center; - align-items: center; - width: 75px; - height: 75px; - padding: 25px 10px; - margin-left: 16px; - transform: translateZ(0); - border-radius: var(--border-radius); - overflow: hidden; - box-shadow: 0px 2px 8px -1px #0000001a; -} - -.thirteen::before, -.thirteen::after { - content: ''; - position: absolute; - z-index: -1; -} - -/* Conic Gradient Animation */ -.thirteen::before { - animation: 6s rotate linear infinite; - width: 200%; - height: 200%; - background: var(--tile-border); -} - -/* Inner Square */ -.thirteen::after { - inset: 0; - padding: 1px; - border-radius: var(--border-radius); - background: linear-gradient( - to bottom right, - rgba(var(--tile-start-rgb), 1), - rgba(var(--tile-end-rgb), 1) - ); - background-clip: content-box; -} - -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - .card:hover { - background: rgba(var(--card-rgb), 0.1); - border: 1px solid rgba(var(--card-border-rgb), 0.15); - } - - .card:hover span { - transform: translateX(4px); - } -} - -@media (prefers-reduced-motion) { - .thirteen::before { - animation: none; - } - - .card:hover span { - transform: none; - } -} - -/* Mobile */ -@media (max-width: 700px) { - .content { - padding: 4rem; - } - - .grid { - grid-template-columns: 1fr; - margin-bottom: 120px; - max-width: 320px; - text-align: center; - } - - .card { - padding: 1rem 2.5rem; - } - - .card h2 { - margin-bottom: 0.5rem; - } - - .center { - padding: 8rem 0 6rem; - } - - .center::before { - transform: none; - height: 300px; - } - - .description { - font-size: 0.8rem; - } - - .description a { - padding: 1rem; - } - - .description p, - .description div { - display: flex; - justify-content: center; - position: fixed; - width: 100%; - } - - .description p { - align-items: center; - inset: 0 0 auto; - padding: 2rem 1rem 1.4rem; - border-radius: 0; - border: none; - border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); - background: linear-gradient( - to bottom, - rgba(var(--background-start-rgb), 1), - rgba(var(--callout-rgb), 0.5) - ); - background-clip: padding-box; - backdrop-filter: blur(24px); - } - - .description div { - align-items: flex-end; - pointer-events: none; - inset: auto 0 0; - padding: 2rem; - height: 200px; - background: linear-gradient( - to bottom, - transparent 0%, - rgb(var(--background-end-rgb)) 40% - ); - z-index: 1; - } -} - -/* Tablet and Smaller Desktop */ -@media (min-width: 701px) and (max-width: 1120px) { - .grid { - grid-template-columns: repeat(2, 50%); - } -} - -@media (prefers-color-scheme: dark) { - .vercelLogo { - filter: invert(1); - } - - .logo, - .thirteen img { - filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); - } -} - -@keyframes rotate { - from { - transform: rotate(360deg); - } - to { - transform: rotate(0deg); - } -} diff --git a/src/styles/colors.js b/src/styles/colors.js new file mode 100644 index 00000000..73a234b2 --- /dev/null +++ b/src/styles/colors.js @@ -0,0 +1,17 @@ +export const colors = { + primary: { + 100: '#FFFFFF', + 200: '#E3E6E8', + 300: '#E1D5D5', + 400: '#BBAEAE', + 500: '#777677', + 600: '#232223', + 700: '#232223', + 800: '#1E1E1E', + 900: '#000000' + }, + secondary: { + 100: '#188ECC', + 200: '#42B0EA' + } +} \ No newline at end of file diff --git a/src/styles/devices.js b/src/styles/devices.js new file mode 100644 index 00000000..91fb2533 --- /dev/null +++ b/src/styles/devices.js @@ -0,0 +1,17 @@ +const size = { + mobileM: '375px', + mobileL: '425px', + tablet: '767px', + laptop: '1024px', + laptopL: '1440px', + desktop: '2560px' +}; + +export const device = { + mobileM: `@media screen and (min-width: ${size.mobileM})`, + mobileL: `@media screen and (min-width: ${size.mobileL})`, + tablet: `@media screen and (min-width: ${size.tablet})`, + laptop: `@media screen and (min-width: ${size.laptop})`, + laptopL: `@media screen and (min-width: ${size.laptopL})`, + desktop: `@media screen and (min-width: ${size.desktop})`, +} \ No newline at end of file diff --git a/src/styles/globals.css b/src/styles/globals.css deleted file mode 100644 index d4f491e1..00000000 --- a/src/styles/globals.css +++ /dev/null @@ -1,107 +0,0 @@ -:root { - --max-width: 1100px; - --border-radius: 12px; - --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', - 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', - 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace; - - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 214, 219, 220; - --background-end-rgb: 255, 255, 255; - - --primary-glow: conic-gradient( - from 180deg at 50% 50%, - #16abff33 0deg, - #0885ff33 55deg, - #54d6ff33 120deg, - #0071ff33 160deg, - transparent 360deg - ); - --secondary-glow: radial-gradient( - rgba(255, 255, 255, 1), - rgba(255, 255, 255, 0) - ); - - --tile-start-rgb: 239, 245, 249; - --tile-end-rgb: 228, 232, 233; - --tile-border: conic-gradient( - #00000080, - #00000040, - #00000030, - #00000020, - #00000010, - #00000010, - #00000080 - ); - - --callout-rgb: 238, 240, 241; - --callout-border-rgb: 172, 175, 176; - --card-rgb: 180, 185, 188; - --card-border-rgb: 131, 134, 135; -} - -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 0, 0, 0; - --background-end-rgb: 0, 0, 0; - - --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); - --secondary-glow: linear-gradient( - to bottom right, - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0), - rgba(1, 65, 255, 0.3) - ); - - --tile-start-rgb: 2, 13, 46; - --tile-end-rgb: 2, 5, 19; - --tile-border: conic-gradient( - #ffffff80, - #ffffff40, - #ffffff30, - #ffffff20, - #ffffff10, - #ffffff10, - #ffffff80 - ); - - --callout-rgb: 20, 20, 20; - --callout-border-rgb: 108, 108, 108; - --card-rgb: 100, 100, 100; - --card-border-rgb: 200, 200, 200; - } -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); -} - -a { - color: inherit; - text-decoration: none; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } -} From b0e3ecc5bd64b00c44ab934957802da9477e63f9 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:35:34 -0300 Subject: [PATCH 04/32] chore: install Phosphor icons library --- package-lock.json | 18 ++++++++++++++++++ package.json | 1 + 2 files changed, 19 insertions(+) diff --git a/package-lock.json b/package-lock.json index d3a06127..8b616315 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@next/font": "13.1.6", "next": "13.1.6", + "phosphor-react": "^1.4.1", "react": "18.2.0", "react-dom": "18.2.0", "styled-components": "^5.3.6" @@ -723,6 +724,17 @@ } } }, + "node_modules/phosphor-react": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/phosphor-react/-/phosphor-react-1.4.1.tgz", + "integrity": "sha512-gO5j7U0xZrdglTAYDYPACU4xDOFBTJmptrrB/GeR+tHhCZF3nUMyGmV/0hnloKjuTrOmpSFlbfOY78H39rgjUQ==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -1348,6 +1360,12 @@ "styled-jsx": "5.1.1" } }, + "phosphor-react": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/phosphor-react/-/phosphor-react-1.4.1.tgz", + "integrity": "sha512-gO5j7U0xZrdglTAYDYPACU4xDOFBTJmptrrB/GeR+tHhCZF3nUMyGmV/0hnloKjuTrOmpSFlbfOY78H39rgjUQ==", + "requires": {} + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", diff --git a/package.json b/package.json index 30a6d693..32cf63cf 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "dependencies": { "@next/font": "13.1.6", "next": "13.1.6", + "phosphor-react": "^1.4.1", "react": "18.2.0", "react-dom": "18.2.0", "styled-components": "^5.3.6" From 508450ee8fb08d2a53f6d9a8186dd41db14cc1df Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 08:36:43 -0300 Subject: [PATCH 05/32] feat(components): create SocialLinks component --- src/components/SocialLinks/index.jsx | 28 ++++++++++++++++++++++++++++ src/components/SocialLinks/style.js | 26 ++++++++++++++++++++++++++ src/datas/socialLinks.js | 21 +++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/components/SocialLinks/index.jsx create mode 100644 src/components/SocialLinks/style.js create mode 100644 src/datas/socialLinks.js diff --git a/src/components/SocialLinks/index.jsx b/src/components/SocialLinks/index.jsx new file mode 100644 index 00000000..ea045517 --- /dev/null +++ b/src/components/SocialLinks/index.jsx @@ -0,0 +1,28 @@ +import { getSocialLinks } from "@/datas/socialLinks"; + +import { + SocialLinksWrapper, +} from './style'; + +export function SocialLinks() { + const links = getSocialLinks(); + + return ( + + {links.map(link => ( +
  • + + {link.icon} + +
  • + ))} +
    + ); +} \ No newline at end of file diff --git a/src/components/SocialLinks/style.js b/src/components/SocialLinks/style.js new file mode 100644 index 00000000..dddb63a9 --- /dev/null +++ b/src/components/SocialLinks/style.js @@ -0,0 +1,26 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const SocialLinksWrapper = styled.ul` + display: flex; + gap: 1.6rem; + + list-style: none; + + .social-link__icon { + color: ${colors.primary[500]}; + font-size: 2.8rem; + + transition: color .4s ease; + &:hover { + color: ${colors.primary[100]}; + } + } + + ${device.tablet} { + .social-link__icon { + font-size: 3.2rem; + } + } +`; \ No newline at end of file diff --git a/src/datas/socialLinks.js b/src/datas/socialLinks.js new file mode 100644 index 00000000..f1bb0a23 --- /dev/null +++ b/src/datas/socialLinks.js @@ -0,0 +1,21 @@ +import { LinkedinLogo, GithubLogo, TwitterLogo } from 'phosphor-react'; + +const links = [ + { + site: "LinkedIn", + href: "https://www.linkedin.com/company/apiki/", + icon: + }, + { + site: "GitHub", + href: "https://github.com/Apiki", + icon: + }, + { + site: "Twitter", + href: "https://twitter.com/apikiWordPress", + icon: + } +]; + +export const getSocialLinks = () => links; \ No newline at end of file From bce3b6d44caa4b6a565246dd89ee056308ddeae9 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 09:20:49 -0300 Subject: [PATCH 06/32] feat(components): create Header component --- src/components/Header/index.jsx | 17 ++++++++++++ src/components/Header/style.js | 49 +++++++++++++++++++++++++++++++++ src/pages/_app.js | 2 ++ 3 files changed, 68 insertions(+) create mode 100644 src/components/Header/index.jsx create mode 100644 src/components/Header/style.js diff --git a/src/components/Header/index.jsx b/src/components/Header/index.jsx new file mode 100644 index 00000000..59f72c8e --- /dev/null +++ b/src/components/Header/index.jsx @@ -0,0 +1,17 @@ +import { SocialLinks } from "../SocialLinks"; + +import { + HeaderContainer, +} from './style'; + + +export function Header() { + return ( + +
    + Logo da Apiki Blog + +
    +
    + ); +} \ No newline at end of file diff --git a/src/components/Header/style.js b/src/components/Header/style.js new file mode 100644 index 00000000..bad408de --- /dev/null +++ b/src/components/Header/style.js @@ -0,0 +1,49 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const HeaderContainer = styled.header` + background-color: ${colors.primary[800]}; + + width: 100%; + padding: 3.2rem 0; + + position: fixed; + + .header-content { + display: flex; + flex-direction: column; + align-items: center; + gap: 2rem; + + &__logo { + width: 18rem; + } + } + + ${device.tablet} { + padding: 3.2rem 0; + .header-content { + &__logo { + width: 24rem; + } + } + } + + ${device.laptop} { + width: 32rem; + height: 100vh; + + .header-content { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + } + + ${device.desktop} { + width: 80rem; + } +`; \ No newline at end of file diff --git a/src/pages/_app.js b/src/pages/_app.js index e1b88ea4..876664b5 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -1,6 +1,7 @@ import Head from "next/head"; import { Montserrat } from "@next/font/google"; import { GlobalStyles } from "@/styles/GlobalStyles"; +import { Header } from "@/components/Header"; const montserratFont = Montserrat({ weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'], @@ -17,6 +18,7 @@ export default function App({ Component, pageProps }) {
    +
    From 28751965b790f5bea7607848cb2bae9a49f1b084 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:17:15 -0300 Subject: [PATCH 07/32] docs(public): add image --- public/none.png | Bin 0 -> 1323 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/none.png diff --git a/public/none.png b/public/none.png new file mode 100644 index 0000000000000000000000000000000000000000..16e2248221d097d93c84c488aa9bde549eadecda GIT binary patch literal 1323 zcmex=_1P|rX?qqI0P zFI~aY%U!`Mz|~!$%*;qrN1?DZF(6Oj-S5fuR$!pIEN!@|nR z%E~Fi%grl7GWdUhL6CzXfFXdHQHg;`kdaxC@&6G9c?JeXR-jiwzJ&rtCZHSH*f}`4 zxPc0`3NSD+GBY!=FoRqTR9y>{XJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^s zlZu)+xx~aJB&Af<)HO7@(s#)lOnKGb1qam<1W^8GhaG()g3{CxhX=8-zY8-x{~^!d6+&@~9hk zV${Ds?wR`MV^{QB_Mpq*rB{2;?y9fzI1ztdVgZ+YD-ia|_cFj4B7v?9qOal@epK?` zOuDi)qGi3pUEbaOQ^PkKyz^iFQ-;5F%hRiST$kV4ai+-2ygyWC;!oyyXU4|H0}EI} zITnVn1|DEuur!s2YvKeq4wEeb>~ntnet1VH>h#LYK#pZS;?wT3i5@Rnyz$%nKYv#3 zo4tPCpZI0VCO?XGy2^IrQcwursrv@<6BqDwX)J2s0%Eg0l2yCvyGm|8QBatoslFk9 zy8YT(<{#l_nw#U!Kj4=+ye{%+YNdj&m*Mtj_OBb>+5UBZ>>#^TzExF(VSj4{f1iGE zz{j+uCMhDH%b2X+GS)Ax%I~i!D(pPzZcwgXni)dNvZG21=h37hriEL-Y0e~bH~?8=~l;AzSZpQc5<0jOiTJD z_U@LMxlEGbKf|WI?4Q4{mFNCZ#Lx4x@YWG#kGjm%<9c_`U%s?WgW*r6y;PJ2^R$oZ zhwtjghfhovEAKr&pW~SSZ|@8L8SJY*{;daEBD2rzdgqp}p5jvrU-8xoM#^b?cp|5E z>B-h9tP^T3diMqHmS4V>q2}k0i$AVhpEfxn_H3?|$Sie@Q`G`lQViM`>I5H@w~z|^C`uw?0y1*}UJ ze^}IDGyBoM9^I|hxo)P1?yNg$`1k3Hdci-d&#%5!rybS#N9~i~8DZt-uh#Y7vOZ=p H{J#kRl93IF literal 0 HcmV?d00001 From 079b275a464a85d90682bad613dcf586f6dc76d0 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:18:15 -0300 Subject: [PATCH 08/32] styles(pages/_app): change font family --- src/pages/_app.js | 8 ++++---- src/styles/GlobalStyles.js | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/pages/_app.js b/src/pages/_app.js index 876664b5..81b4c07b 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -1,12 +1,12 @@ import Head from "next/head"; -import { Montserrat } from "@next/font/google"; +import { Poppins } from "@next/font/google"; import { GlobalStyles } from "@/styles/GlobalStyles"; import { Header } from "@/components/Header"; -const montserratFont = Montserrat({ +const poppinsFont = Poppins({ weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'], subsets: ['latin'] -}); +}) export default function App({ Component, pageProps }) { return ( @@ -17,7 +17,7 @@ export default function App({ Component, pageProps }) { -
    +
    diff --git a/src/styles/GlobalStyles.js b/src/styles/GlobalStyles.js index c449e85c..e37d3adf 100644 --- a/src/styles/GlobalStyles.js +++ b/src/styles/GlobalStyles.js @@ -1,4 +1,5 @@ import { createGlobalStyle } from 'styled-components'; +import { colors } from './colors'; export const GlobalStyles = createGlobalStyle` * { @@ -7,7 +8,9 @@ export const GlobalStyles = createGlobalStyle` box-sizing: border-box; } html { + color: ${colors.primary[600]}; font-size: 62.5%; - font-family: 'Montserrat', sans-serif; + font-family: 'Poppins', sans-serif; + background-color: ${colors.primary[200]}; } `; \ No newline at end of file From f2a8141aa730d689c22bb2fd866c936132955620 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:18:50 -0300 Subject: [PATCH 09/32] styles(styles): create imageBrackground mixin --- src/styles/imageBackground.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/styles/imageBackground.js diff --git a/src/styles/imageBackground.js b/src/styles/imageBackground.js new file mode 100644 index 00000000..818c4416 --- /dev/null +++ b/src/styles/imageBackground.js @@ -0,0 +1,8 @@ +export const backgroundImage = () => { + return ` + background-position: center; + background-size: cover; + background-repeat: no-repeat; + border-radius: .4rem; + `; +} \ No newline at end of file From 747339e3858ee9637b07da4476c52d5597b54511 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:19:22 -0300 Subject: [PATCH 10/32] feat(component): create PostCard component --- src/components/PostCard/index.jsx | 47 ++++++++ src/components/PostCard/style.js | 183 ++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+) create mode 100644 src/components/PostCard/index.jsx create mode 100644 src/components/PostCard/style.js diff --git a/src/components/PostCard/index.jsx b/src/components/PostCard/index.jsx new file mode 100644 index 00000000..75c5db70 --- /dev/null +++ b/src/components/PostCard/index.jsx @@ -0,0 +1,47 @@ +import NextLink from "next/link"; + +import { + Card, + ProfileWrapper, + ContentWrapper, + Image, + Content +} from './style'; + +export function PostCard() { + return ( + + + foto de perfil de Luciana Kyoko + Nome do autor + + + + + + +
    +

    Titulo do post

    +
    + 4 de agosto de 2022 + | + dá pra ler em 5 minutinhos +
    +
    + +

    Reunimos as grandes vantagens do editor Gutenberg. Você precisa considerar o uso e explorar os benefícios desse novo editor do WordPress.

    + + Ler artigo +
    +
    +
    + ); +} \ No newline at end of file diff --git a/src/components/PostCard/style.js b/src/components/PostCard/style.js new file mode 100644 index 00000000..c1cdde76 --- /dev/null +++ b/src/components/PostCard/style.js @@ -0,0 +1,183 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; +import { backgroundImage } from "@/styles/imageBackground"; + +export const Card = styled.li` + width: 100%; + display: flex; + flex-direction: column; + gap: 1.6rem; + + position: relative; + + &::after { + content: ""; + width: 20rem; + height: .1em; + + background-color: ${colors.primary[300]}; + border-radius: .4rem; + position: absolute; + bottom: -2.4rem; + left: 50%; + transform: translateX(-50%); + } + + ${device.tablet} { + &::after { + width: 40rem; + bottom: -3.2rem; + } + } + + ${device.laptop} { + &::after { + width: 50rem; + bottom: -4rem; + } + } + + ${device.laptopL} { + width: 80rem; + } +`; + +export const ProfileWrapper = styled.a` + display: flex; + align-items: center; + gap: .8rem; + + text-decoration: none; + .profile-image { + width: 4rem; + height: 4rem; + + border-radius: 50%; + } + + .profile-author { + color: ${colors.secondary[100]}; + font-size: 1.2rem; + font-weight: 400; + } +`; + +export const ContentWrapper = styled.div ` + display: flex; + flex-direction: column; + gap: 1.6rem; + + ${device.tablet} { + flex-direction: row; + gap: 2.4rem; + } +`; + +export const Image = styled.div` + ${backgroundImage}; + width: 100%; + height: 20.5rem; + + background-color: yellowgreen; + border-radius: .4rem; + + ${device.tablet} { + width: 60%; + min-height: 16rem; + } + + ${device.laptop} { + width: 70%; + height: 18rem; + } + + ${device.laptopL} { + height: 20rem; + } +`; + +export const Content = styled.div` + display: flex; + flex-direction: column; + gap: 1.6rem; + + .detail { + display: flex; + flex-direction: column; + gap: .8rem; + + &__title { + color: ${colors.primary[800]}; + font-size: 1.8rem; + font-weight: 800; + line-height: 2.8rem; + text-transform: uppercase; + } + &__date { + display: flex; + align-items: center; + gap: .8rem; + + span { + color: ${colors.primary[500]}; + font-size: 1.2rem; + .time { + font-weight: 700; + } + } + } + } + + .intro { + font-size: 1.2rem; + line-height: 1.6rem; + } + + .link { + color: ${colors.secondary[100]}; + font-size: 1.2rem; + font-weight: 700; + line-height: 1.6rem; + text-decoration: none; + } + + ${device.tablet} { + width: 100%; + .detail { + &__title { + font-size: 2rem; + } + } + } + + ${device.laptop} { + .detail { + &__title { + font-size: 2.4rem; + } + } + .intro, + .link { + font-size: 1.4rem; + line-height: 1.8rem; + } + } + + ${device.laptopL} { + .detail { + &__title { + font-size: 3.2rem; + } + &__date { + color: ${colors.primary[500]}; + font-size: 1.6rem; + } + } + .intro, + .link { + font-size: 1.6rem; + line-height: 2.2rem; + } + } +`; From 03714e9fbf7ea45adb7a3c639a55d41e30690227 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:20:28 -0300 Subject: [PATCH 11/32] feat(screens/HomeScreen): create HomeScreen component --- src/screens/HomeScreen/index.jsx | 16 ++++++++++++- src/screens/HomeScreen/style.js | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/screens/HomeScreen/index.jsx b/src/screens/HomeScreen/index.jsx index 7af43b81..977c29d4 100644 --- a/src/screens/HomeScreen/index.jsx +++ b/src/screens/HomeScreen/index.jsx @@ -1,5 +1,8 @@ +import { PostCard } from '@/components/PostCard'; import Head from 'next/head'; +import { PostsListWrapper } from './style'; + export function HomeScreen() { return ( <> @@ -9,7 +12,18 @@ export function HomeScreen() {
    - + + + + + + + + + + + +
    ) diff --git a/src/screens/HomeScreen/style.js b/src/screens/HomeScreen/style.js index e69de29b..d21da138 100644 --- a/src/screens/HomeScreen/style.js +++ b/src/screens/HomeScreen/style.js @@ -0,0 +1,39 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const PostsListWrapper = styled.ul` + list-style: none; + + width: 100%; + padding: 1.6rem; + + display: flex; + flex-direction: column; + gap: 4.8rem; + + position: absolute; + top: 18rem; + z-index: -1; + + ${device.tablet} { + padding: 2.4rem 9.6rem; + top: 20rem; + gap: 6.4rem; + } + + ${device.laptop} { + top: 2.4rem; + left: 28rem; + max-width: 80rem; + gap: 8rem; + } + + ${device.laptopL} { + max-width: 100rem; + } + + ${device.desktop} { + left: 80rem; + } +`; \ No newline at end of file From 4ce8919f6ee8b066f50525a8375a741cc0d94d0a Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:47:15 -0300 Subject: [PATCH 12/32] feat(components): create Author component --- src/components/Author/index.jsx | 20 ++++++++++++++++++++ src/components/Author/style.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/components/Author/index.jsx create mode 100644 src/components/Author/style.js diff --git a/src/components/Author/index.jsx b/src/components/Author/index.jsx new file mode 100644 index 00000000..a665d371 --- /dev/null +++ b/src/components/Author/index.jsx @@ -0,0 +1,20 @@ +import { + AuthorContainer, +} from './style'; + +export function Author({href, image, name}) { + return ( + + {`foto + {name} + + ); +} \ No newline at end of file diff --git a/src/components/Author/style.js b/src/components/Author/style.js new file mode 100644 index 00000000..f3318887 --- /dev/null +++ b/src/components/Author/style.js @@ -0,0 +1,33 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const AuthorContainer = styled.a` + display: flex; + align-items: center; + gap: .8rem; + + text-decoration: none; + .image { + width: 4rem; + height: 4rem; + background-color: ${props => props.image}; + border-radius: 50%; + } + + .name { + color: ${colors.secondary[100]}; + font-size: 1.2rem; + font-weight: 500; + + &:hover { + color: ${colors.secondary[200]}; + } + } + + ${device.tablet} { + .name { + font-size: 1.4rem; + } + } +`; \ No newline at end of file From da8b18c05b8b6cd1f2b95cba058dc14e88823058 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:47:45 -0300 Subject: [PATCH 13/32] feat(components): create ShareButtons component --- src/components/ShareButtons/index.jsx | 25 ++++++++++++++++ src/components/ShareButtons/style.js | 41 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/components/ShareButtons/index.jsx create mode 100644 src/components/ShareButtons/style.js diff --git a/src/components/ShareButtons/index.jsx b/src/components/ShareButtons/index.jsx new file mode 100644 index 00000000..4f8149bd --- /dev/null +++ b/src/components/ShareButtons/index.jsx @@ -0,0 +1,25 @@ +import { LinkedinLogo, TwitterLogo, WhatsappLogo } from 'phosphor-react'; +import { + ShareButtonContainer, +} from './style'; + +export function ShareButtons() { + return ( + +

    Compartilhe este post

    + + +
    + + ); +} \ No newline at end of file diff --git a/src/components/ShareButtons/style.js b/src/components/ShareButtons/style.js new file mode 100644 index 00000000..06b34733 --- /dev/null +++ b/src/components/ShareButtons/style.js @@ -0,0 +1,41 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const ShareButtonContainer = styled.div` + display: flex; + flex-direction: column; + align-items: flex-end; + justify-content: center; + + position: relative; + right: 0; + + .share__paragraph { + color: ${colors.primary[500]}; + font-size: 1.4rem; + } + + .share__links { + display: flex; + align-items: center; + gap: 2rem; + a { + color: ${colors.secondary[200]}; + font-size: 2rem; + + &:hover { + color: ${colors.secondary[100]}; + } + } + } + + ${device.tablet} { + .share__paragraph { + font-size: 1.6rem; + } + .share__links a { + font-size: 2.8rem; + } + } +`; \ No newline at end of file From f62d018e6d817f99f3d646c40486eab7b6899173 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:48:13 -0300 Subject: [PATCH 14/32] feat(components): create PageLayout component --- src/components/PageLayout/index.jsx | 11 ++++++++++ src/components/PageLayout/style.js | 33 +++++++++++++++++++++++++++++ src/pages/_app.js | 6 +++++- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/components/PageLayout/index.jsx create mode 100644 src/components/PageLayout/style.js diff --git a/src/components/PageLayout/index.jsx b/src/components/PageLayout/index.jsx new file mode 100644 index 00000000..91637e8d --- /dev/null +++ b/src/components/PageLayout/index.jsx @@ -0,0 +1,11 @@ +import { + Page +} from './style'; + +export function PageLayout({children}) { + return( + + {children} + + ); +} \ No newline at end of file diff --git a/src/components/PageLayout/style.js b/src/components/PageLayout/style.js new file mode 100644 index 00000000..cdbf35dd --- /dev/null +++ b/src/components/PageLayout/style.js @@ -0,0 +1,33 @@ +import styled from "styled-components"; +import { device } from "@/styles/devices"; + +export const Page = styled.div` + width: 100%; + + position: absolute; + top: 18rem; + z-index: -1; + + ${device.tablet} { + top: 20rem; + gap: 4rem; + + padding: 2.4rem 9.6rem; + max-width: 72rem; + } + + ${device.laptop} { + max-width: 72%; + top: 2.4rem; + left: 28rem; + right: 4rem; + } + + ${device.laptopL} { + max-width: 90rem; + } + + ${device.desktop} { + left: 80rem; + } +`; \ No newline at end of file diff --git a/src/pages/_app.js b/src/pages/_app.js index 81b4c07b..b1ce719e 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -1,7 +1,9 @@ import Head from "next/head"; import { Poppins } from "@next/font/google"; import { GlobalStyles } from "@/styles/GlobalStyles"; + import { Header } from "@/components/Header"; +import { PageLayout } from "@/components/PageLayout"; const poppinsFont = Poppins({ weight: ['100', '200', '300', '400', '500', '600', '700', '800', '900'], @@ -19,7 +21,9 @@ export default function App({ Component, pageProps }) {
    - + + +
    ); From a4ed3fd6a7b148ecab72c137d59e8452298c8783 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:48:43 -0300 Subject: [PATCH 15/32] feat(screens/PostScreen): create NextPreviousButton component --- .../PostScreen/NextPreviousButton/index.jsx | 28 ++++++ .../PostScreen/NextPreviousButton/style.js | 90 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 src/screens/PostScreen/NextPreviousButton/index.jsx create mode 100644 src/screens/PostScreen/NextPreviousButton/style.js diff --git a/src/screens/PostScreen/NextPreviousButton/index.jsx b/src/screens/PostScreen/NextPreviousButton/index.jsx new file mode 100644 index 00000000..f122f14d --- /dev/null +++ b/src/screens/PostScreen/NextPreviousButton/index.jsx @@ -0,0 +1,28 @@ +import NextLink from "next/link"; +import { ArrowLeft, ArrowRight } from "phosphor-react"; + +import { + Buttons, +} from './style'; + +export function NextPreviousButton() { + return( + + +
    + + post anterior +
    +

    Titulo do post anterior

    +
    + + +
    + próximo post + +
    +

    Titulo do próximo post próximo post próximo post

    +
    +
    + ); +} \ No newline at end of file diff --git a/src/screens/PostScreen/NextPreviousButton/style.js b/src/screens/PostScreen/NextPreviousButton/style.js new file mode 100644 index 00000000..256cc092 --- /dev/null +++ b/src/screens/PostScreen/NextPreviousButton/style.js @@ -0,0 +1,90 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const Buttons = styled.div` + margin-bottom: 4rem; + padding: 1.6rem; + + display: flex; + align-items: flex-start; + justify-content: space-between; + + .button { + flex:1; + display: flex; + flex-direction: column; + gap: 1rem; + + text-decoration: none; + + .wrapper { + display: flex; + align-items: center; + gap: .2rem; + + span { + color: ${colors.secondary[100]}; + font-size: 1.4rem; + ${device.laptop} { + font-size: 1.6rem; + } + } + .icon { + color: ${colors.secondary[100]}; + font-size: 1.8rem; + } + } + + .title { + color: ${colors.primary[400]}; + font-size: 1rem; + } + + &:hover { + .title { + color: ${colors.primary[500]}; + } + span, .icon { + color: ${colors.secondary[200]}; + } + } + } + + .button.right { + align-items: flex-start; + .wrapper { + flex-direction: column; + } + } + + .button.left { + align-items: flex-end; + .wrapper { + flex-direction: column-reverse; + } + .title { + text-align: right; + } + } + + ${device.tablet} { + .button.right .wrapper, + .button.left .wrapper { + flex-direction: row; + gap: 1rem; + } + + .button.right .title, + .button.left .title { + font-size: 1.2rem; + } + } + + ${device.laptop} { + .button.right .title, + .button.left .title { + font-size: 1.4rem; + } + } +`; \ No newline at end of file From 26dab5622b4b0c65ec7859bd8327e4c15bac1dbe Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:49:52 -0300 Subject: [PATCH 16/32] feat(screens): create PostScreen component --- src/pages/posts/[slug].js | 2 + src/screens/PostScreen/index.jsx | 41 +++++++ src/screens/PostScreen/style.js | 177 +++++++++++++++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 src/pages/posts/[slug].js create mode 100644 src/screens/PostScreen/index.jsx create mode 100644 src/screens/PostScreen/style.js diff --git a/src/pages/posts/[slug].js b/src/pages/posts/[slug].js new file mode 100644 index 00000000..2c341b7a --- /dev/null +++ b/src/pages/posts/[slug].js @@ -0,0 +1,2 @@ +import { PostScreen } from '@/screens/PostScreen'; +export default PostScreen; \ No newline at end of file diff --git a/src/screens/PostScreen/index.jsx b/src/screens/PostScreen/index.jsx new file mode 100644 index 00000000..8e3d23d3 --- /dev/null +++ b/src/screens/PostScreen/index.jsx @@ -0,0 +1,41 @@ +import Head from 'next/head'; +import NextLink from 'next/link'; +import { House } from 'phosphor-react'; +import { NextPreviousButton } from './NextPreviousButton'; +import { PostHeader } from './PostHeader'; + +import { + PostContainer, + CoverImage, + Content, +} from './style'; + +export function PostScreen() { + const fakeContent = ` + \n

    O Google Web Stories é uma evolução do AMP Stories.

    \n\n\n\n

    Se você ainda não o conhecia, o AMP Stories é um dos quatros formatos AMP existentes.

    \n\n\n\n

    Esse recurso é uma variação do AMP, através do qual você implementa Stories em seu website.

    \n\n\n\n

    Me refiro ao “Story”, tipo de conteúdo popularmente utilizado em redes sociais.

    \n\n\n\n

    Se você ainda não está por dentro, leia Google AMP Stories e o que você precisa saber a respeito.

    \n\n\n\n

    Web Stories versus Stories das redes sociais

    \n\n\n\n

    Você pode se perguntar, por que deveria investir nos Web Stories dado que já publica e tem resultados com os Stories do Instagram, ou alguma outra plataforma.

    \n\n\n\n

    Acredito que um não substitui o outro, mas você precisa ter conhecimento das significativas diferenças e possibilidades entre os dois formatos.

    \n\n\n\n

    Abaixo uma tabela comparativa para você se inteirar.

    \n\n\n\n
    \n
    RecursoGoogle Web StoriesStories das redes sociais
    AlcancePúblico na internetPrivado e limitado a rede social em que foi publicado
    Exibe na busca do GoogleSimNão
    Embeda em outros sitesSimNão
    Tempo de vidaPara sempre. Você decide quando despublicarLimitado a 24h
    Como criarCom tecnologias web (HTML, CSS, JavaScript)Através do aplicativo da rede social
    FiltrosPré produzidos nas imagens e vídeosAtravés da interface do aplicativo da rede social
    AnimaçãoPara todos os elementos da históriaControle limitado sobre os elementos inseridos
    InteraçõesLinks, CTA, Conteúdo relacionado, menu, compartilhar, embeds diversosEnquetes, Like, Reações, Mensagens diretas
    Tipo de conteúdoTexto, Imagem, Vídeo, Áudio, GIF AnimadoTexto, Imagem, Vídeo, Áudio, GIF Animado
    Mobile FirstSimSim
    Fullscreen no desktopSimNão
    AnalyticsAtravés do Google Analytics, ou outras ferramentas. Além de interações de eventos inlineInsights sobre o total de visualizações, números de toques e outros específicos de cada rede social.
    \n\n\n\n

    Eaí, vai investir em Web Stories?

    \n
    \n\n\n\n

    A estruturação de código do AMP Stories

    \n\n\n\n

    Para você ter uma ideia técnica de como os elementos funcionam e são organizados, a ilustração abaixo te esclarece como os Web Stories são estruturados.

    \n\n\n\n

    Visualmente a representação seria assim:

    \n\n\n\n
    \"Imagem
    \n\n\n\n

    A composição de uma AMP Story seria: páginas (com mais de uma teremos um carrossel), camadas sobre essas páginas com seus respectivos elementos.

    \n\n\n\n

    Esses elementos são HTML básico e uma estruturação AMP.

    \n\n\n\n

    A marcação HTML seria da seguinte forma:

    \n\n\n\n
    \"Imagem
    \n\n\n\n

    Quando você é desenvolvedor e apaixonado pela codificação, esse desenvolvimento pode ser manual.

    \n\n\n\n

    Mas pode ser também através de um editor visual, o que permite editores, designers, profissionais de marketing e pessoas sem experiência em programação, contarem suas histórias.

    \n\n\n\n

    O Google preparou editores incríveis, tanto ferramentas autônomas quanto um editor poderoso de Web Stories para o WP.

    \n\n\n\n

    Web Stories para WordPress

    \n\n\n\n

    O plugin Web Stories é gratuito, de código aberto e traz uma experiência rica de edição visual para a funcionalidade.

    \n\n\n\n
    \"O
    \n\n\n\n

    O painel foge um pouco do padrão do WP, no entanto a experiência está boa para criar e gerir as suas histórias.

    \n\n\n\n

    Por padrão, alguns templates são disponibilizados. E você também pode criar os seus.

    \n\n\n\n

    A customização de foto é muito simples e várias opções.

    \n\n\n\n

    Seja as edições de texto, quanto vídeo, imagens e call to actions.

    \n\n\n\n

    A integração a biblioteca de WordPress também facilita bastante explorar seus conteúdos visuais existentes.

    \n\n\n\n

    Conclusão

    \n\n\n\n

    Através do Web Stories, o Google quer dar significativo alcance as suas histórias.

    \n\n\n\n

    Será uma briga interessante que ele vai disputar contra os gigantes das redes sociais.

    \n\n\n\n

    Mas na verdade, estamos falando da guerra da atenção dos usuários.

    \n\n\n\n

    E considerar uma estrutura relevante como a do Google faz todo sentido.

    \n\n\n\n

    Faz todo sentido para engajar ainda mais a sua audiência, atrair mais visitantes e converter para as ações desejadas pelo seus negócio.

    \n\n\n\n

    E o melhor de tudo, que o conteúdo não vai expirar em 24h, e ainda poderá ser encontrada através do maior buscador da internet.

    \n + `; + + return ( + <> + + Titulo do post | Apiki Blog + + + + + + + + + +
    + + + home + + + + + + ); +} \ No newline at end of file diff --git a/src/screens/PostScreen/style.js b/src/screens/PostScreen/style.js new file mode 100644 index 00000000..d8bf6c34 --- /dev/null +++ b/src/screens/PostScreen/style.js @@ -0,0 +1,177 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const PostContainer = styled.div` + width: 100%; + + display: flex; + flex-direction: column; + gap: 1.2rem; + + .home-button { + color: ${colors.secondary[100]}; + font-size: 1.4rem; + text-decoration: none; + + display: flex; + align-items: center; + justify-content: center; + gap: 1rem; + + &:hover { + color: ${colors.secondary[200]}; + } + ${device.laptop} { + font-size: 1.6rem; + } + } +`; + +export const CoverImage = styled.img` + width: 100%; +`; + +export const Content = styled.div` + .post { + padding: 1.6rem; + padding-bottom: 2.4rem; + border-bottom: 1px solid ${colors.primary[400]}; + + h2 { + margin-top: 2.8rem; + font-size: 1.8rem; + } + + h3 { + margin-top: 2.8rem; + font-size: 1.6rem; + } + + p { + width: 100%; + font-size: 1.4rem; + margin-top: 1.2rem; + } + + table { + margin: 2rem 0; + background-color: ${colors.primary[100]}; + th { + padding: .8rem; + font-size: 1.2rem; + text-align: center; + background-color: ${colors.primary[300]}; + } + + tr { + background-color: ${colors.primary[300]}; + font-size: 1.2rem; + + td { + padding: .8rem; + } + } + } + + blockquote { + padding: 2rem ; + margin: 2rem 0; + font-weight: 600; + text-align: center; + background-color: ${colors.primary[300]}; + + a { + width: fit-content; + margin: 1.2rem auto; + display: block; + padding: .4rem .8rem; + background-color: ${colors.secondary[100]}; + + color: ${colors.primary[200]}; + font-size: 1.4rem; + text-decoration: none; + } + } + + a { + font-size: 1.4rem; + } + + img { + width: 100%; + height: auto; + margin: 1.6rem 0; + } + + ul, ol { + margin: 1.4rem 0; + + display: flex; + flex-direction: column; + gap: 1.2rem; + + li { + margin: 0 2.4rem ; + font-size: 1.4rem; + } + } + + pre { + padding: 1.4rem; + margin: 1.8rem 0; + + color: ${colors.primary[200]}; + font-size: 1.4rem; + background-color: ${colors.primary[800]}; + } + + ${device.tablet} { + padding-bottom: 4.8rem; + + h2 { + font-size: 2rem; + } + + h3 { + font-size: 1.8rem; + } + + p, + a, + pre, + ol li, + ul li, + blockquote a, + table th, + table tr { + font-size: 1.6rem; + } + } + + ${device.laptop} { + h2 { + font-size: 2.8rem; + } + + h3 { + font-size: 2rem; + } + + p { + margin-top: 1.8rem; + } + + p, + a, + pre, + ol li, + ul li, + blockquote a, + table th, + table tr { + font-size: 1.8rem; + } + } + } +`; \ No newline at end of file From 11f1225a66c958fa39cd4804a329c8d8ebe30e74 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Wed, 15 Feb 2023 16:50:19 -0300 Subject: [PATCH 17/32] feat(screens/PostScreen): create PostHeader component --- src/screens/PostScreen/PostHeader/index.jsx | 31 +++++++ src/screens/PostScreen/PostHeader/style.js | 92 +++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 src/screens/PostScreen/PostHeader/index.jsx create mode 100644 src/screens/PostScreen/PostHeader/style.js diff --git a/src/screens/PostScreen/PostHeader/index.jsx b/src/screens/PostScreen/PostHeader/index.jsx new file mode 100644 index 00000000..38613105 --- /dev/null +++ b/src/screens/PostScreen/PostHeader/index.jsx @@ -0,0 +1,31 @@ +import { Author } from "@/components/Author"; +import { ShareButtons } from "@/components/ShareButtons"; + +import { + Header, +} from './style'; + +export function PostHeader() { + return ( +
    +

    As vantagens do editor Gutenberg para Wordpress

    +

    Lorem ipsum, dolor amet consectetur adipisicing elit. Quaerat ratione doloribus dignissimos, animi officiis nemo tempore atque iusto beatae expedita quae corporis a adipisci nesciunt unde dicta quia!

    + +
    + + +
    + 4 de Agosto de 2022 + | + Dá pra ler em 5 minutinhos +
    +
    + + +
    + ); +} \ No newline at end of file diff --git a/src/screens/PostScreen/PostHeader/style.js b/src/screens/PostScreen/PostHeader/style.js new file mode 100644 index 00000000..5e0c804e --- /dev/null +++ b/src/screens/PostScreen/PostHeader/style.js @@ -0,0 +1,92 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const Header = styled.header` + display: flex; + flex-direction: column; + gap: 1.6rem; + + padding: 1.6rem; + + &::after { + content: ""; + width: 100%; + height: .1rem; + background-color: ${colors.primary[400]}; + } + + .title { + color: ${colors.primary[600]}; + font-size: 1.8rem; + font-weight: 800; + line-height: 2.4rem; + } + + .subtitle { + color: ${colors.primary[600]}; + font-size: 1.4rem; + font-weight: 400; + } + + .wrapper { + display: flex; + flex-direction: column; + gap: 1rem; + } + + .date { + display: flex; + gap: .8rem; + + span { + color: ${colors.primary[500]}; + font-size: 1.2rem; + .minutes { + font-weight: 600; + } + } + } + + ${device.tablet} { + padding: 0; + .title { + font-size: 2.8rem; + line-height: 2.4rem; + } + .subtitle { + font-size: 1.6rem; + line-height: 2rem; + } + .wrapper { + flex-direction: row; + align-items: center; + justify-content: space-between; + } + + .date span{ + font-size: 1.4rem; + } + } + + ${device.laptop} { + .title { + font-size: 3.2rem; + line-height: 3.6rem; + } + } + + ${device.laptopL} { + .title { + font-size: 2.8rem; + line-height: 3.2rem; + } + .subtitle { + font-size: 1.8rem; + line-height: 2.4rem; + } + .date span { + font-size: 1.6rem; + } + } +`; \ No newline at end of file From 8f5b0e247ffa97b268360f3842e92ba81f6b913d Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Thu, 16 Feb 2023 10:37:27 -0300 Subject: [PATCH 18/32] docs(.github): add post screen screenshot --- .github/post-screen.jpg | Bin 0 -> 167097 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/post-screen.jpg diff --git a/.github/post-screen.jpg b/.github/post-screen.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75ef42fdc166c36742da1bcc70c971cb16831d3a GIT binary patch literal 167097 zcmeFa2|Sc*|37}0Iua#Y5}Jxqgd~MxP76YjEm@}xAqk0WcM)1JA(U+@X)I|@$r>hG z3T5AyF_!F%eb#&am+G8fom0>9d!Fxq`TbA5ipG6i^SM6j`?FjVyOrGot>2ezae%9bO>7VAO2e0#rqCIhHN|g>wbhN^bB#)*5K(5)O`~%Q%)VU$zW9?F)VmE#q6xze(Z1F9HUqIXAlq z?z$fSXobYV7sWz`brea(Gp_zzE7uCI6Is7ytJJpb(z})R>{V7#J#<(@Q|pMfj*+p+ z3Dc8i=4a2@*xH@9cW}Gxe#OJ{s#m~`z@Xrpw{Ay7-iwNkx&I*canh6Ir}&iAw3nH$ zva)k>^YTkd%gWzYynA0+-_Y39+|t_CPVVjNANVvlG(0jjJu^Euzd)tY7tgf>;`oDQ zUk>)Ca{(qSS-NZ)$1={vb1hlw0se6CEnB`x;TQe`2Aro|1UB!wzC!R|_@fuaToQ_g z6rnS&bt~6O?j~=UT0Gk4ll^N4^Z(yE*&he{U*~FvcsP~-;c@UmXb9Oi1U+1OZ6&nr z&tG_F`Popw88$Q^W0+mFrEe$aYHQYkMEv24wSuwSbp;r)WJ~XA=(h48h^UY$(-7pA8*ObYnyQ{U}NtRSF44 zbHhE1qim=@7TqgHwP!;b(HbCTJVFj2$x~<+|J532{{w7@i|7vzxlwWu-d7|MEt@c~XhKlFo z*wFjkaG4dQ0lBl|4&e78W&lgK7fY9%!7-Qqt0c@LVgZN%yo?Ri4w9XjD0>_;Qj4iU zT7@2Z`Ho1rjDCl1ECRB9tgpg`-bjASgk%4R2?+OnxWu^!M;Bwt0``n6vY`mz3U9t9 z<5_FXgpt+3G){U9h_AESgJ|lq?`a_Z0~(55d8x;kfPaT@fkcY$Q+WCqYD(B=Hz2WU zGvG@t8`{W*45>Ke*8V|aG5G!lsTe)0LbU)aYIkNsl67o|&!beIzT>4lQ=E62cTWBm z8ybrI=nbzv{hi=y5S{;u;Qp#RX+P5)g!}GyY}@+}*(Ud$lxKfV?*jGTk=*wr{Kt~p z_CxJiG@+le0VY@fZ|i!^KQy<$82x`}Zt!Pw6aJUf>^2%`8BF2&=O+Kz>$o={Ry8UA zf;yC={%s?2``3&pY0-$-5cIu9{1c`0J@hAs67_S3vZeN4k@Ht3%RTy&dH&U}3c_F9 zD*w>G;ivS!D~|8j_H!RNJiq0; zedibV{Xr!7pWHW*I6dL}&k6py>Hjo(VrU-f*T0kVKa8LJ|C%Cyjs^tgYuvB@dOQG@ z>i+%iZ0H{a8#c7O=HY+eTvbQeklbLyrSA#1`(YsaH$BXvjt+irfj`lue-l+K0-M?I zc?VCM{5($o+b-sN)%y`<`LXK#6U_3RC-@0w`JeN)pOrM{-+?SJ#WLWZdX4`AC;pMg zS0e`hDf<0bH@|?ae?9!Ubx{8usP}KF5TJPzZ`gi*^e0zJDjUlE?3$H~3(ip9CU~vH zuRC{9NZM7e>D0Ke$i70^`t}8Zo{KvP4xSe`R8x%Nw3`Teme1AB5c6n@nENk!eMlzOvAQO6Z89ZhYx)6z0f^fu6Y zZu28U7o$)O5$)|29*lLyLHL3 zXKi1@*0#5gwFlJ^xKy&Ht)v_lZ(2^MLA=Jz_-Vbma#2WVm?~Br!PwJOWgd_*U zTsf6L!f$!o4Q{?YrQEOuAN2N&eSL*idvo&oFa^WV<=dvG+n&UYx-k}p0(GJ;+))l0 zHoEuQ%yGO)vCdqDLz^2f&HSOqp+`^lr(N+?jryTB~v7!6ECvfM1 zW6Oo7H@$-0(UaG;T3!%mMQ($nV}=dwq-Usu%%T|h>Hb4sh{k?H^65Eq-z4B}$!zFd zP#vq04HYd%S-%Bom#qv)Olp{=Bd-`*AcT~%q3~5n44{=hE7c1_+0eskQ-l{s3;z4W zf6Mr9t^V7N|Mpye`|7`=(|7TBb07wU`DtnLgR`kQTW*(Wzv`PjkuvTpm$4;n*gH(w zXIJX6rqbFn4c#Lqcwy05FUg5Q{U&T{9Ey@MX9+3xWmw)-7CYZ9F3#D&oFgpg&pYi` zbA~c+D;J3KoWoa`rOmfu?NwhGl=R?*MBLKNau#r(TI!oadC)i4S#I4BsJa^;O?Dwf zY*#YO(E072sh+NenK@$DdXQLq{>kHeh9QP0Znw#tkBLA>pUc=E+GiT?b>J^W z_0N@d)X)|-^h-G#s#MOZVW?mLa;D$*+4Z~~!#@k!juFISHsmbdh}z>L3}XQ_B7pp^A@~z+yalYXyT*pbEF00YLrus|zXpApZ0=d4 zK$i^}gd^8|dEx$JI5yPM%7%s;$e?;JhaF$@<96czSQGR2W~{gduX8N(eM~v;l*Aln z9`GVUD~%1c&OL*N<4UuT3FHHorl3M##atyKk9x2(XNTR{kd(}FHgrae7r{OEy&=Qm zwvgALp(-1w10#ZK;4r1D6;FQH#SmPA_+uy+FwCSomTV|9iVC=pf-jXGPo9$3pH`7! zqUNVr`a|(2>Ph`>TF&>4?+HT9<8!Fy%;-_1=+Lx=7L^Lq7tkzaKYOGLp5Eihio7D)F9Hi|UV%I)*oT>z90R%#DG;XJ(+otREfV{9CJkD$c*P`n!P(4#Cyc+XNcCnUQc*iT~9Y z9Ks<#y^`a>Rghur0xg_}Du2K9l@kvi?&Vp}X)CnVnd!K(VUo|Logf7mWrc zdY5D@$X0)7{UBES|JD2z53EkpYaf1Eg|D`(mAZMuPlh>;oDLtS-R7b<$&VC=kJFE% zpVc!NmwB+x)yL&C43TFd8%W6<^bhhiIlsP}XO=Jh`rxlfrY`-bFQGh(vb5;Go%3GY z4#}w9rAAcvwFs>E@k<7$S++5Ar@rj};WHr`!E>>grT~eK89~lwd-%l2A{|Qs9g9@b zZgVdFG(SiyXZZJR{mxup+~ndTa0r9bzQ6CcNcu?Ep~Zc;M~#W;zbq~Rv`>#WejzIB zGf{r`ct>{=<-U6`>(6Vs4x~9~D`hsV+-9TYV!w8a?am*=2#(yR#Htxhw{BD)CK7Ez z{8RjyMN+Qb2ntpBGk^^v8o)Y6-TgKT>Qcr9UafU;d zvivQWzhFBBU*b`uFy%YgI$LG#m^VJY3)0EcNS`J~Fdwxgl%} zo>kvCr5}=VDM(B2WXuT+vAoW}<&h}HOuNm(78mn?Hi_~Kj`GBW>nqmaxmY$Bo{^l1 znSFBBCK<8$#7};n7*O2Ome8%b(SV4^v~lsat)H=skip+^DT{cr#~F2BSR{1awYK9& zAl&T2R#voeIyt4W!o^QoX+S3~Mo@x6z`C8f-f?}mJNB^_D5W-N(IQISo`8Wra~6ez3LHj%&|F@Au~;_TJSNu9XAqX zuIk$u-iyX3N*}lERJ`FeL~{WBnMwJPUbyrB_Yed`_^RV@z`{iHEqfjn41WQu@7UKBSXRm!)xDKEY) zgAG*?$pOd)T{KHT6vN!m2}tD~WNl|d06PN1nc9xWC>Rh?*?1F$|gKQHy_4ls;y)Co=T25G}P<3I6C_{-@-r1Za@ zp7ZPJiC<2Ss$s@1a%_=ht(NjT-kaK_7g3%wuf$THp9!xt)?DbJV%^p2P_l+enUnA@O z!h^r)DEjvmtXPsf&G%cq{#{97=|A)b_r>CPzcNn!r;I}<{OLrcUyZJam(Z3m4ag-? zK*jw#4PqidRKOuP1Bc*?9vA@Tfck1dzUqrcw=n-_`Bv;NRDOf!yYSg{JsplQnE znFWg`^o>aWVnScEU}X$g!~J;;s4{@zvVntt_(P!8@btIl^ScrtzQdn=$TtW2Lq!48 zaLghG<9Cnn)gQ_={>+77UVQIBzq*k1zsvut1I7L!OZP8io%*v?2e$v^EMRu~i*LX2 z^(-!>$jW1G9poqi`MISX<(GFnID+|Q*v5}v@3D{39VhFm_PT}~X5Qq8lj-nO=neZc zAEm(C=DSlHn|wxIBX-Yxq*#Ro5`E5mZJuuBMPhlB8}y9MJ*w7EV$L3~w;ma2mhp7H znRR=lXz5DT?p}A2A z;aq)FTZg9K3o@ZWe@AaYbC^l|IqH7Soc>VNIum333AYeqrPM9XS7(Rw7AU8x?mjxy zcYfJ#(DiuqRFIT3sY{|k39&IPZ7gj`)yt3)ITe|7>yGwb^VJ4E@6|-3!)hL}iuDEb zMFLB0b8U;#&0|w~i`K>xEea!>hh(mgbWB``jWD!Oavz#o`O6P0Bb-d+jK8_wapH`` zoay{lP{`0u!_pJ8a4bbnS7NtwTgttH6(5{|A~jzG{BtBJLtuh7vOCYu5`{kP{ym0tU5%{?2)2c@pN%y0ul9fcGE7p#Yhg>x{>&_oV4 z^ui6mh=wFnYBA#&x<8wYrBBJTG_~l%zsphoT!-PE znakMj%5bnG@v6Qa%g&!Ie4i?r((F$iX}COmS;y(=bGodO-5@7Z&}-tPj{pS`l&H#` z5}L{9XXv)KmJh7`wL^4+Pn`C$)cIlL1yZ$R&q_=C3LzK4P1e~0Tq1Sp${Lj$nhu7D zSscUHq-WOcqoHR=!>n6xYXUtFacHJL?egF`WcV_ow7fahF1cm%m5JFGRMV-wy}zXP z+`4@K@~Egxaf*hUr2o{QrslO2F3|&$r($N-*xan*S6c<=UON6bE_L}wWNTu4yH!UE z{tEQ7!WNxXCh2>+)429oT_N_$Gv%>D^Ase+x42P(4J8Y* zp;uF=nGr0q%r@7-`MDInmFBU==jxR9+uf@KBWvxB*C6*m`RRNwJlKt5Lmb;F<%bDA z`UsTIWJAv%v!RlODLWQ-``*D6*aBOU{ORQVNxfiXnKGr|$@4*LbZ=-73hTFhSpaz) zB|!qh?oVt&x8KLo7PQ#VQd!Eg7-nI5%Xu1nVnT{3PZES{iAjhD8v-My^G_uZU*G`W zgs`C|9NpJw0t9{T1u)FAJt;gK@_{rNe7rp-@&(vS^CcyFjA;0heMBo!7J93)?a0^Vo@UA zMiZD%C<<|Ll=>iorICQYI)++QlDS1C;hnQXaK;QU{PXiIfO7obxWx~ZtM$L4T%Q^8 z@2UFF*!sg=8q5+mz4lh+M!LVUHHH?3+Q2l_gn!$8N-<>cIC8Kbv?EMdNwlC`+o}z*D3$AH5?}3vVU!_G6IDt-jlrBX%fA*S=1d zxVS$oAmem-LlTzkGsqQEY8Wlb7u}cIYjTfxnUZxe!k%QIPD~GpI9{b3xg|rF&%E_Q z%_`M&@`Cuu41Vt!wHRGogLA;v2$<8;s^9kNliJI8k27WoiEr1gt}ctHUa>=e%B9wp z*q>B>REdXJX1%-QwD8uID)U++}=O*K}&&k7az9_h*O?GXS#*qKrk{^X7VCVWH+Yq9HZwh=1l}3EA zml<))6sah*V?#%~#RvqG+-~0fN<$oZ~@q+kF)UBbZoRnv*>49g*jmA{Lz)bgK z6Rt|$W2EFRcIqubdDj0&Z?*Iqx>grib%zbzb8*DYyAlQ1(3~LE#_CnkmSIF|3mkxS zV^UcHx7#h4VduwZRz~<=Ti;cbL~nNOf?MAC9RdCd#S89!41!S0`vKiSKs0NXfR;{P z3Ornw&OF6>ikr5$RKfC$L6Rg`OX(Xx1{#M3Vf_Vgarlxb#0u5E>Br5ouh&vmz%`$w zA2D^{UQLs|co5Yk=(sqTVz^A6%p1HRplp2(0rOis12qF08fHWr;ABEd%j6kLO5l;B z`ZI&W<6x2~Oo$ErRsbW9jv&6o^Kx=brIyX@Y-rgfx50yX8{)S~)Gn@eo|uBf)2m&Jz7(iPGuz<8l;Z6As}7%$0F55BEj?P^PF3M5p86>e3kBG)t5yzBk#$j zEHhQ#e5aJlLAD~$T7QidD>b>vC-=j38i6C#x0d6B0EZP4EL_m$0M(PtQV(2C*v}N2wUT%fc0L@Dr!b z`SFdPdV->!KzLN%4?ex~R(W*PtVR^0@6}CUJ{Xa{EJ^g$+xfCV7h`n=d9?wyBVI$5 zQ?$r@YVWB|J(GxGqpxe`D3uLa2#xJL))B2b{E|5ihN5w3p#1dBs1-y?2NeX&d#`+5 zb7uT(acxvoKM3wTGzQSBx;0b{HWWlECNYzfMx$OY@QyKgr{&9jy8bi^cO5y5qSW9( zSYq+<-oQ|unBpMYGFQ*DAYMXh-T>`k9zsNB=3!7{*hB%AvWgf$r0MF8x)UEDn|`_; zw#*V5#e&K_3hgULA*08+M}rw=%P8t+7BQqb=Lez3n*i;Tx4HF(~S zlP28z69Q?kJw6|BQx!wauVze<4XxB7uNg#ceWvis4tE%64rVwCaA=&uiQL4N$TRmK zAh8@!LRn@oYo<{1e%!P*M9N1J1P|Tx0T*pboqI@#k-=PL7h~~!{)h%On5mfa2K77p z_X73U&(GZd)A4f1EC=~9rtoJCO(+6>{|^NwGM@qkCdLt6*pOWh9M1U{2{akJJyC?E zTN7^*feyW2gUZZ#v!<9xKH?+s4mho~9mTCot$8K;xoRzs1;Pwa6yfPIM2^@qhzU-F zD8l2b82fUr7x0ngmnS%rt+Vz#PZXp~M3P&xL@w;t%g&DIDt*#!erWe^9g+O+rebUu z)n)OF`_khnDi`NGUVG*En$9(x?Nts7*?DhNFZPvHr?&&~gP+s@K1gBSY7O1|{NVJf zoD8ZzelM?W6_R{^bO;nX*QSqt@-w@JQ+ElBVQHQQ<*#QAXgq2uhzdBe!7zDTV6J{# ze~v&?n+ibm^w)z(!VscmB7saL0Dkx0fX8$Xu_0~M7qz}JGZN$7}N%U9)Xo2$qpWo&l2Y>E>EBeLY{#OUQ9pCDX1Qe3e z(b3lb2jsV_D~1t4GKislnETJ-Q%M-$%$&k$rC=&m1SHFc$Th5x^+e=uyD9wxLl*8Q zOmQP`F2VFD0p<+d*FNe}A#q4vfw?mRojBPp;@?em+hMvVHu%7d+ogmhtKJW(8%1^~ zA*8bs;|_15+K+X(laM9Ig>!t>NjHj5KjKkx@XWF^NxTHYeGj$1qtk>t(*J z?)m=n$Xn=)sPj=@KMWZW*jZANEfEo``#`78^26-KW+$JnXK*dnpZF`5i`rN6d{uA! zDC&L%3j1y+HU7dTGoug(on(s-*;&qZSGw{gy_XRwR`TujM_x_uU&26#KRL^g#a^5H zm98hj$C3PC|IrU;mTlYoAzg!!+`2Qs$-T7n+0)D@Rimc^LUkIXNDEnyhMWgpuD4sl=2?+(U0c$|1)sS-PPA?bBq-t_6{fh4ZqwtbYD+OWBVWwF=O%jI~W zitBW_YlU9+%c2A&M$Hsw*;ve~Vx~(u&2}yK2vyA2M|`D|jNwV2LrI=(l5qx2$qSiX zoB_KhX``1C$&op=8y*n0DmWzTIeRr{&1Ew%XZz!wSDIXnGqFE-!WSi%J#34j+_X=6 z*239&55$z$a#a)jUHou~L^2zy0X>VU8VbJhwS1l^sb%6c8(I+-!-mvAe6B#3gqgJY zzLOta0Ez1jEnPO02;yoVj;tj;R@5&%#{dcTH=86yUBS3=(^=q3ARj0!4}!FpI!HBG z+hvAuKnCZscHeeOg>5mY>?Y6_0iL_BPqJjvzKChZM0AuoknVVHH%sCtz z5(Ct#nA$9CBoaDH5k7Hw#H)r4g~5Sh=`R^~G2c)NfFz(cA;yNf_)hZ7&0coQ`CMlG z9dOpKdxBRMz$-ETi*%`{aE&+i!?(oD*3c$hXvyF1p9rdDY7^+)-<(dM0XDZkU6yv4>nX}T5& zQUOgCXwYZol0~0mx!#uPiXor3ED90@r(IM9spQ&$VU#} zdK5Wbx`Z~E1?NydA(_FKu6TqMwqNnBnZX1l>2m7ImJQTrtdD0lMQ_$Qey{6@n`_GW z+IcHJI1Hhof-vsqP9XLDHZ1bP?oWLbee{dM5HiI9r9^8*!GW1*sTmGfS0ZA$Lm?Er^o z8Qshckf(3Dv_V4hgUq?MX!NGi)6I$;ItdpJZ%k7$b}2PZ6=}B2Ic8wuSiV>Ka+>xw zVl9p;LkuihYN6dT$r>00)33|j;1jR9mO&e&ASP~6h{>Ag}uA4 zJB6rAIC-5fbG1BK!4W8Cxpr#zpyA2(qIRc7C;S$?T&$9fT?Q@AH$p3FR(8GcAqd@j^8DG-hqT~6W~i3L#6Db!2UGkZx=(^=mO;ndd5mGkC+H^)j9qQFK7F!Hfef4cwq(P`%-Uyl&X@1R+_18!y2x*_j{(QF9DfnT z#oyLls`e_ud{^-iR?hN69sR9G+FtJ?<-BfTW>3J)=xaW!O2w|uUZ70M^xig3BcCpv zmC{tiiySkak7&M^_-aJs?XD2Ay{5MEt9rW}A14;RNXf4@;{upED6n%&vyXL18!lSk zkTJenf93GB^m6ZX{nhq6+lLjpj~_nToU19LoH-~+2Y8oYA z8s-vLQQU6qSFW0(cHZG#ZkVOoka{P>tF6$Y!R2=1*%LheruQpLngTbB8DBMS~4} zxdc(f+IS8VkF8FF`SC0t9CABL)-n6m|>sb1#R$r}AL{K!SbOeo|Jmfe%hZ_9y z1>hy~YxxtRyr71M4urBgFbAq1a$K(wugQS4Dzd%pHlA|dS2R??!1VnpbZqW%!c%Wo zEl$?v4TYe3kTy$S$uZZepVJN?5zJf>%!aT=;y9;(@p*Wrn*?g_n*i`@^smWefR}JH z?SH(q0<*Zr@#~u7OXeB+v~g$98dw8>prRQ%};#X zd%@%Fkv`=im&Ef+Cf=_pdzP9QHkPv5OYC)u@<(Oyl%;AwlWLlXEG8DT-5(E`jyB{v zV-dfHY={^R-oe z{bF7Q3`W_p)=+&xYs~Z)V7igu;U|jE2-VokpNu~9&LWSoqcg(o!PIbiIzs?{FWCf- zc{jteAIPAV2^^y>j(I<%1*v-0!G?}gv}kd&1t9N^@&|9YniJH;o777Qv*HshGv><$ zzh~RQnZz7sut$FEm^fI=h&`=Dn%3GpP!o}vLW3I)`avcgy1mx8epgc}dVGM6t5eQM zCcgU=M%tOWZQGKJjuCW*oooxsC%FGMb_yhwa}zNA60?Do588o+tB=c4#C^<4vELETFn1MRhzU>A zslXooog5qZ@AN=aBi=#{%H$+hN~9+6jF|xw#Q}SSmFA?oYR!&3785W6X1f{zq+6S z(+V_AwbP9a*;oVa8$I>Jm5GkNV>!wE;WLO89B>oDS>0A@`gn0O_DO5O2nOn|D zPPz|%YNOdWyxOK`B9r6nsGN>TSGHHm>veiLVx)Nqe<4N>&(mStQ@MH_h4+xZ=C6{M z>yof#>Bk>_itv`ZBf{ABmKp95y7)JD$fFF~nwcETMinfb~LW&S2=AG5RlgB|jJv=hZJV z@&3<2By(0ewmWcrd6jRM<_Wr$0-~?gsHjip1QYK7!(zvP=HJLAFt?V2rsPs_&8gNi z^qz==fx?DMT}@nttCxkA$@M7Yj(>FB7RBSV!a7SzygMCJRg;%sDR(srTz0Z)x@CJRfwCFzNEfm`f15%O~VtLwJQ6kbJxAADLgA& zGx<7ImVVV~MsQeDA@uyKCKJCx7{q2Pq%D8Rskmh`%Sxx(d8aw2(-hFVmAGF&N+B(A zzx1%Xvxn;>#4|b4$>W76C2lTAJ-9#J)GraH!0GE%3+~5n*xC}dVRd9^RPxrY=lNOH zIXefYgfa?31?kK+x}t)f$&C+h8=p$+u-^N?YIWNh@-=eqN13!l(Vb=F!emw1E<$EE z317XiQw;UC_4dhUekiH8EpPf9H8Z5|d-12r?CHFaw6^gA!=m~Q!XL*=7m-C%oIogi zFNB-F0;KrsB%zIwFOD8@UJou;-%$kv1kyz2v#9+CoVIOMyTZv4nPYgJcn^%SeG!*l z0;0)JR+qZta8>T|6I?+N-W0e;|B6*tQ1n&cyX$rE)JVOEpQ8s-BM)54U1F2<764D= z0GPUAk`Mg6TshKt2MN&r@@#tp1FZyZZC|}Sg!rP#fk>K*Oant$wYkbt+|gRD5GA zB7XjqV)d2_Vrfsv;}6MlW)9C|_2wN94Pn~4dj|?k)3tWbyca!h7$NCem3J{?KA!*T zlCTwXqb4%CBnv%~{OIh?R30VegUVOk+@mJO5>qDO^Lgj62Wzc`&+9svI$Tkd8_!Ny zy<&dVINnUVGnaq_PFJ9UM@qO zbW*#_TdUpDSiX~)P8&A8kj!2hYRD6zw-h@Yme=EUoN_hkn6K5yYxvE`(cFC@_bd`M z;L+!@O%EP_SWmvJL49evWiFSk^Tw!c7XJ`e}X@@I2~fTv1}*98vX!XSv4 zzzIzMw!YEsX%3L>^}0p4@w;V@k{P8e<6aD%AADw+7QkXrtJha5ylH;qyx?pQtfs;r zUZYp&nKW`W0qy5`)wRO(X*(^s7Tu&Lm3is?%*jfbxY*}wpV%jhTii?79rGbZqrB(c zUd70WB>p2i%a4c+ie<{HadP61`u#SDwoz{D?y#tGAEgd?x^HhHoG^CbZaV`CW@4!P zhOp3mTUbty=;A#e#>u?A3h!l;Px6;dw`CheChB?3m@7|v7lus2RTB-f>MN(VjJHnx z^6K&QfU!f&$)zVCUiF^k9G9R=${fSG^iH0rfp4ScH^i${6ri>cKZV=YX05Mj!Bzmwvx|)OmR>QoFS`Ck# zY696|P(88Pxed6_E$~guJVyW!OA2lf*D#4_Sjw}Z(^s*`<0FU{eEzv}fx;L-L%|mu zS;V(+0U0EZufQi~fXji(wm$dwb7!$Yi}XE5=YGx#f2OqBZe2d$GliKlbdHSxW}ZON zhp==CUAoA5Nx|M2Khz^UtMK?JioSl%hN+4p#~=|k-EQ#04lR~v22h+MV3q;Znu8pZ zpTEq8UT&cP3pF^VP7KRUN3^ntqacN>HvplyNCiZI<~|%ldJ3Si1jS-xb2dqo8VA5o z*`xuQwzFx58bsc%fB8vdSWDB~EP6+|=Dp!cq3ttyecRv47DhT1s&`=%D{AMpKC)Z6L?Q$};^}_9 z*tkmEE7#mavaf1VLyhc+FA60QoE2F!^c57TWmBjdo)`L*$QeU3*_xGAu;;{@^Lt{OT=G8?)^XhL=F zqEwW2B^5v5o~^oc3qa=O=<54EhSYmUx~7CH9=gSQR+JrDC-NQ)!eaGYVoRP{L>t-f z5R!to5n@W#P^wCwJCiQ?9ny)t6B$?aTNsI^i-95rJ(?-8x&ZV2{q*;G-;1!qnXCc>&EunX}i(&7Q6nOY-b8 zE3a?C6vi4bt*M#(%dov3WkLt)z-C(4LBPEg4V#Z4Z>!Kl{4odzYI+~BcP$m*|HByW zIX3h_juUi@XXot3^_hIm6&sYM^vltA?t0?NySGjW?&;>Lf07+++2Vf8TGV5G=Y<*` z)zGGDgV(mLJ`(ICcx2U#DE8dGKE-?V-FwEKOn>FUcNbl1aw|~D zexgDXZiMVf=YbZ`uG(v47`VdlUMFqilP3!c`4*L<6O5t`kn0*qvE1&$B;B0ZkMwf!o)5~?APBvUA z={Re0++v-Y{%plc8)f0hQw~+UdYF?*>qC|Cc9n_qE#6L`_LB@h#xA>bMZQ>%ui8ay zUv#g+{gCC$4WCP_(#(uB-ku{>!`(&Fs{kMO8RLmZf@DEF{G|mqddL*7@xL#wgK zQsTQozYUb#agpTxLDL@2jJ@3HzHpE{Q%YS4AZsr877Om*m%2EP$GxMkeUcwp>Gn6^B(hLOwe$jExi!gbvd@-M6}0H3xgBxaOKou0 z#U|y(o}LHe&q`mhOj~pN#Kpa&Lv%DN@tkaL;mO2yp0X?8>Os|knn6tL0p*gN7n$jB zE*ny4+IBE%d&Sja%<~E-#*r86rGnq6DLK~Y(`E$QKOJ+b&R9qnkUB>?N9szY0(iMx zw~+W7D+H0SYQMPQOItY47Ci}8GuiC~&w7?QHDgAYx&p2=b zo`GR{x{h8+Yt^{6JpZV8{Y{VQ?B$p7**dW&Rdu8HI7h1%F;KH=`u@r~m+R9@A8gS! z46#qu-BG%SW)eqLZSS*qyFq3dT&~-@Bw{uB*@&5CPd}XOE>2X{-C89VSJKes8%39p zj^{0=SFnuVB@17kj5!_Q&<^fAW$%J-7D;FFJ?U1OlH4+FVu5Kg=3fD=%CWjSSuRku z>zxcs2dH3W5k?)4eQ*gMtm2Aa-zk6B+dQlj*OqGqpf66L<dp&pcvrWpEq7OFK+k?Ub*^6#8v`qNP&?^oMpYlyQyDZ1oEbI$mwKEN57Gh$^B(O@4)5)W`}eYKBo7q*p_X&ZSPaJ zRcJ=~7GR^NI7^?ez%82+dsHf-BvK($-WaN*;QpKcF-Sd;A2Q7C=U?I=&u6I(aubt}ovFCuTt&;_d07#TwCmgZQp>$X z+-c;e*cggk*_5GP;1RsHlm}?#U1weJyX5I`vcBffjuEk8`UU?T2?G)@Z)Bbo+j!ip z?M0wbXvIq3>WLfalnIyjs*Y^~Cx?}`yH@IsWL@^}HY~cmhlaa1uzOe^U76CHGQ30c zY!IGndd9oET|lSZ%sbmTkEQC#*XPVhwfyCykJ{r?A!`oQUwF6CUvtGN%}ZYAR!4!# zDk4{#f#z3k){~Aio0nN|M{U7`K54Wb&bXM^4Q9}(c04A2OUPqZI>+%^9MN?T<87ae zq`d8%ukTK@7;z_Ab7uJ2Y%7<)qGw1f6gBTosCnsnDc(fmJ=c@QN#A;JpVAPDn}L(S zsE2!NT{+&{8%vIv@gepEZu)Cy0P_29kX@1!YFqb8RA@;9=ZBDb$hvAl(I$h)_ zDu^_%Ukgxbnm8yd9kPB!3^ro!0{=E+G&>^$H-Y;SBF^4I4F@pRf~b~^e8kNkE&>w@ zBir#UQ!PU9yZIaz4AXVce=Vz_%M5U$o^ePiz~lFneCFjH5_|_}@0dl7v00My^tnAO zfvAqLf||YxWaVJRcx3N2t~V6?4X8h!cWmJTPvS2Vm-fvOh6$@kObJPnGiwXH_)#+& z=wH30W3I2$TJCPNE48wvJ!_@jR5rcqJfo9YYXA7UWW*VvH5boZ+Nm-(p|8VO*p^{& zLVFIKlYA>VptSPoW`lqbqgU(X zDf`yI;{<7f_8cD<@V36@H_!ab4sR7d-P_n05tZR9)R3b;dUTbyvSoCwI*Rs#VYE!9b@4hWhuv$eTNxEY`4yj|n{M2B-aBZu+vH9=>t zLErYlLiA`Ys~FUDHeSV1vi%fZ%ALi&$=9j$<%z9p?;Z?91-GE@Qd5yWl*Z_@Bycqm zjz+zrlSZUKX}i^!ILnf6m_?`aUcdNZN-&x$ZDop3Px3Q4l` zE>V+>?8Q~Zw#*jYsX0VH#!3LWvtzT`D=zeG_D7;L%bAWE2;9Cm_z^tN%xYn(ko@Xb zt`2+@e=gK;hVtPNsy^NewpzY#x{_2SU(}8QpV@BWOxs1g#ev|MyIf|QUx7B!2VdM0 zP}-hH_Xdx^j;!UeeyW!WjP#C|9{;30Dz08XJcGU)5}wP5_i|&&&~4NcM zQ#%_<$wLPAIqQnmFUI|@@;LB;49R2@7!=*W_ZQFvW^1|Dq$>36her{{RF zkM`Oz(DRt#mLpCy<)gYk29=$UmE%38s8`YF5Ep$YG5P%X#kcUydlBX+`-c7niV zI3^P4@qJ(uhSsp1e;&m-SPg!;n^ZGqKdd8b<^vLQpBsLlw*gRg@;fGZDv6rnnPhGy zUZ6IAD79-%{_T+<%-(Tf(dj9tYa1oUEhm&G-=)>X%D7)4`4XJa0{!ys4fEM`#IuAO z3m`G}+c8?i)!<~qu#O{JiCK6)cEkyKKH6Q?b+AG+OV!vk^kOC}QrNU*ZIvCqjC4N# z-rIu>1Cecer}vLpIiK})>YDAK!_By|7^dJ}WTiL(;Q3z*3@D^>>y1>mB`8e?=Mm$_b6Ir1oYS|kC(dH; zfFkny8EtdZra~oiFC@`!u|2Zsm8K(@48mzqh@DlzcfTM^4eEySC39^9RvUuM0z(aA?E zX{c6OYfr-b@bV4^gG2l=FZPC|3pnMh8VJu}PE557ZF-|F=fcbH;=J-~+PSuu#Z@A6 z4wnMO62Gi`@=We)BH-1rCRB7dtneRGCvU zt6nQM6H6xrayiAxc%j~0Z*dXt3tP+%`m|dWPrrXoiE6-JZfFG)5mbTO=c(6AUS;O5 z(o{NMaye>jqG7?%_pGDqM7Ekhh?g7UHi=1Saxgj9n;~o)s`YkQA) zJx1UiYNYg)2hkPl3;ODR(zgWtA9?B?dBmXnIowvs)CVOoBXZQ0dTI=wCKiS8GOqgJ zXZ2+4ou^fja;l|uRzi+f=-5%SDv-HhHqkaGF@4Z1ZyXYj-pz(C5^19QIYE7MakK%i zNtgemm7?ZAH8})3%RK~w$7T@FkfI9E@x-k(rCo;42mbhfUisW%(#3cMo(f2Z)L@J z_-26|TT{eRaXSy!#+{pj4)pVLmGbnYpKhT>xpJj}JEd?MdFq}+Z77%DM8e5Re(Rpwc?LDj7~ky=*~r zKpB}h#tDv{YJjdm;YrNfxfrBm2E{rY&YVT+FjFjW9~a!~96FJOko$jx7;St4`XMGS$E+6de9QqXKco-hUWwuMyaE>iT&Od2$9Iz zf|^e6!!Z*sf;!?$0%-TAHtd(`l>$Ym1EA>94TP4wwLlu&>cC9Nf51gIQ9+#ogZYH* z%RyH5yD`pD6JipI1Sxk=r&){pedt?zys#90P*LR111vSjE$WuACQ%=8W}Osxp%Kv$JeSkuGsZk$U#Ya6|MR z&4#9;j#*}itf*1U(R{6q1xK&s_un{mV6-7TKCIyOfJwbaQ->y@g*cZto+L>Ae6lm8y9c!2%VZ!NGY|2l1 z-Pcl58b8ZjfyuHtqb6W+$G|Y8GSlBrPm?^R5JGpumEy1Piiqs9nz{12VXC9LVN&9FLk(b1iDU}+<%YRIARii}WipN7QY_00+mFq2hWonp7ewiXm_gb) z)PucA$krHSVSz|D*q9OnZdSnaeEKs_9YNh1E(NtIROn%tpO^!qv(e)ly!V#>U(~&4 zP?PJwF3egMR74a(I#KCedMB0zNR9MP1Ox=6gLLAOrqo538Yv<4NC_Y<(gg&BP$blZ z-a`+NWWCS&?|t6c`#opgGv~vZ+4~CvnG7Tkckbu{ z2EYaZte3HeFf3+N{coDy*u@^eeINt45Q+8Vd#;S)n2B<{C9{yC6R#x{@&jK6Jtpb=cN5P?}EJHYbo z)|CES2uLep=+Sfgtf1U~WFk=8Wdw`xSeQiaZ&hw4Z#48VTpSc@ax3LEU8%vkF1c)4B~DO4 zwxMMfA_p6%B4Ov}prh;EiaVke^qjJ6Hsc6Gs~M}NEsFF2_kou9&E1~jg%)pt`>A=; zs)yfCQF10huX2JHs2nS6<7C@vrD`6g^2UH2Ce*@w3v_ahL3dR4yJKBeHPSfb)s;Bz zSGwE~pC>dl%6F~8TvT^}-4%Fqx)d`WLTsS!U8ExKj=Rn7P8$aGOi6_Wb5Kxn16To5x0uDEA58$Z#ManqEbUPaqSJxQ*W zWiDZuDhP)pa)+=XW`ofQn*$L>mi|fNzxSX{ohM>~@E52k7Ivm=$0dt}O{Ikop%QM$ zKkR*K2boTqC#G9Xa6j%sbh2L2$Vh%KmKhv`}bL}$(W z8^(X-I}XmRjcCsw+6aTMWv7Bgpz5VJ32tq_8GVw4n1Aof8W$jcMLG;X_`;3#Ll36 z&qX3t1O^n|%6MmOKQPUmszb18Fs@Vx`0b$74>W(kiAJ#LEE#%87nn`$ULfP3K9L*o znGgOE+r=(pX_FVVsU-^xjHNCaFJ>CxZr+YQ?j`xVlYAD7&#Sp?4BT*woYZ2bgCFxq zS<6N}`G9~|EvLUoFt$J;qe$P-#E1k|UTnPan-q)=U>pMC(V3Q28ORGxvYM5%bC|N( zepJFQ@v7Qg5F=E%RPpWGx4slJ5h{U*N zxASo-Ad(527JVRA#4HWxnON4licp#+QGV0_YCZUA1t~*&n4wJ&1MG;&lm}d@l_93^ z4XV8%>;FP=1+4*UYxb4>F7k7V8Ra8vIoTC+qPhh>cOtI9S}=7ER9#a*S9F|o2X3T+ z(*Hm*U<>R22KyBQY$M1DklhVHd7m5{4c9!#r78wTUHEAV42vU!oc@=Xg~%-x1;2bt6iqY8f$HwX3wDdai+p1 zc(p+N{R-GzRa&Om*+&ZwkWx4n!^yJf++{W7(NPGyySZ|NqPNodrqj4RP zmhtD*jh2M%#mtI8J|2F6JW97zu)dqgTRJnZCE_b2&=QQs>aauWBu={FmsJ=-P_wpk zo4D#cxtaifn8=X7^k!zNP0^2GE$7#-K1P6Y24Cr>{b2&wB}=Y|X8yK>y0e_C8eI@Q z;G;c$uqj!?1z1<6t1_hGC3qro0SPL=UCuyMp?k zbm=d^;`z^!g3N{g94T0*6xMo%N`*Zfhfr1Bp}WB86~AE5sQ{XmYqHEPgNPN*7~~kb zdsdlCjGs#UmP9Hfi|iFnhi4Gsluy+33nYVF?SLA*5WKap{#8RJl#V!`X60?I8spMN zRV=FX9{I_B;wZ4a*4QOM;e$6j{e&8Ki~UXGZL}Ymbksumr#QHaKYTd!R``ujc@R9x zZxNOU1MNR;hnc9MJr8TC?at&1(uy9KSz%>?>iVOL*r!Dmh$27X13YnFfx~sBcauWO zG}%T@HMeZ}0x!mrv}6NtBgbIA-oa^KZAniG;@PO8MFWf-Lo`=JU%IdltmabIn-I5X zmB1_HySdS26| zbTCC(I|q?s{vwXNw=iQEk?J%|R~)Ex{7}IOMu=AN@Uj$NKI}i?G@BV@dzZfVA!$GddI)$3eapJ1>9u@yln22?3>|<@z!?0% zNQvv_FL!|#oL=ty5k?%UeH%{uzEfo^-lbD=eQE_p;JqNVlTc4bht=Jt@N-lHIDe4@tv50 zZ_ONOm$XM_d~vl51+b0X_@yHH&lV#s+;GuXCwtoY{0aQIB0V^Y3HcZU?LMw;fArl8 z?O@8*eq-NdX3MzY;PeDs2qHZ&>CS}RZkHbty*uOF!Tvkp^{c0jO5MBbbdlEO>Z_05 zCSA|he*&WGYx-sXML$ypDy*ll7lQPdfp>xGb>a`W`4+3W2Z@0=^Z3rh2LqLY#*ui| z=K48R`-MMdCfANFh$0|jjm$o9&o6RgRl_ue2g4x)7|zdg+D4xGI;E%_V4<8{VKEf1 z6wyr9$ThjwKHpEhc9C&PRb2*_8wMf!FJ3V{7)Ee`?Z5y`gOJMp2>Xs<0p2vz-!w|F zRlk>p8P4zGa7EtX+H`qV69^a&DTdO-7X)(~!SR0W2Qh~l+zT`1C}6z1hrSx({P|KW z6@|Y7=tpdtl=lEU*XtsWoCltZcKsqf`1UidxhxegqWm|F4Dray_TzSF9n={1j1wNa zi)gHm{GbZPdttv#s zy}fNaDC6|3wtG2sn4xUgJAZD3WHw~%bCT0y6M6#XahZy%+S$}7Z1FZc4Zu{dIpCG2 z8FyZa9SpEt<6YdbPFyP6vYo%7=TkAK?74wGr!X`vR*qFl3MW{onH75Mw7jA2ynRD0 zhAqaF!J|Q(xkO|iH#?NXzHUULcx(u%Ru5MsV94>rziIGEiv(C2fPBv`^i}ZOBfKcc zq-1$Ha&uwv95g2IPv(@z^b2hBk_0tldTLcxZ3MY-my9midkQ~A$#0$lmjtIweXIng zL;+;%m{a8xea58$1O8JpSgUaD#wq^51W+RBXBpEw0U=bx9}s1Sm3Nj-N7-CZfegtld}Rh=e|e2TjJ0o1xE(wCn1)( z$;+VwJ9Em@0$Vc7wH$)RYUS=n@~7p_b2uN zDStZ<&?N#Gx=?@s{i+VesGte@7(h^|Ep|aN4<;0Gn}}$S8D;P8IM)2NaH}ay~@}%E-EC_AwN%%lRbDi%4jgL35&EZHlYIU~m= z&QL1mE>0#D_)SHnRClCX$k1jL$`(nU_YMn|_@Iy}-7$zWj)ujb7`Q9w=WY$ohbZH4 zvlJfUOAs-d6hQrU9>CT|{)%Li?JX-tH(#{mzxrH;6KV|XE%H1oSJ&4WRg`IC7zCU& zcLIeWEN;o9h>pH)M!nKGT`a7VC5UkC^t!Y9)m?i21Fp??0_VG$kM)ercvdZ2te{eS z0?dA?ZIkV8u;ew#*O+T!hzq^UPOA{NF*d_ZhRDW`eo@gJ?%#;`EHlq}6MxhG?}`XR zHSF7|g1&(^Wc}8R4(KmfePi^ZCl2U7)g@+B@#kE|m&%% zo9SR>hBS^nZ)`NO59fuiD#X7%A>ww^!WHxEmUKXgIk_vr*teg5qlHD7PH3r6HY=@H+rU+wydE0v+1WA+Y-1Zc+Cj zH*lu7Ja~vrQ#|S~$3KU>&2LUB#yjq~KGn7zF7n7(nR2XdN9y}0<9%~eEcB&PinP7m za0WWKxe`>6uSCb}A#_?`(TkED&S^;&`ZBq)FB@rDQd6Z?$tXD=%rJl%P@Eo+ zYfmF!q|d{1DG0T2sLo*$u;t}N@V}P;CVh#56}UOBV|dQ=VVrGG-!uHT zYZ_ukD9O5(HG8E^C>%o4p&8&G$uU<^ihasOkd~`jx`s3gZ`gEf%l$HpX8pSHylZ zboVi-ED}Hl%#u(iFiN!ya0qGeE@F{^tIy#xX>7!(9eY$}&#j+BxQuQ|VeMA4gVwoL z^W^v!c#4gQ)d+?l(g<_q?MZe?5_Kvqf@XeaSZI;IK}2k%4<*ko>aW= zr^2n!*RHwLXFYWWxZNaF)8X~2Udwf>t9nR|06kfU{pL@xOqM3Do%AEq2mzCfpFYZoq4V{_dIt9BZRbW%gL&0D|4_Vmgi6gu;i($a4v_=X>p#Ny=rS7FA1uuQvy zd`48Z*-F<$Sxla-YwRqQpjF)%zLQVgxVZj#{iONo$D(yPx(2M~SfyW+(Qj90M9g14 zWqw+!%!B&{`bJBP1*~X+dmkiQ&3YA2?>gP`Xzcn!Z z*Y?4aP*1Ur34^WeNg-PpeiXhYfjt+`x9A+r_D-t_ib}O?SzK`gjX-wp0Iq^|wh{8d zI9O~FO*kzkMDL?+VfNwLJ0(f!s0rLIM{ygOlD+ykoq0fkMfXH*SZRdx#LWZ{1+!Y*ax-b*WciqaPwv#jD$ZlXWWL5UGklqb|nsxTIU_@>c?l z9{BQa zn%PTQ;0q_W=S#kF=-xrt*_rHls<;FJ?Z~+#)tKS_0S27M%(6Hi(P_&D2$xsWDWW}Q zQ+0f(DFl+D0^fR|86Q}srRW?~#TVvk^kbi~?AAeiP&#hCI(BD~;kOn~&ntmi3l~H9 zHm)4%xtt=!1@?Lse#8ML(*u&eruI^zP;|`_H^1$tN&qa~=%Gk-sd4}0&DNuRJnCm5 z&Lq~It)K2t(z+@CQg_np=~(IfuUqCf;YQY^$}Tobcx{EDi7k0(&h=!$pW>(Jt0p+? zo7-|nM{-DVI<<>WRHkOa)fi={SF*$%)ZZdoGOyVlN=Fm=6icF^WSSiTy%J*Z!!7G0 zsF+-SLVH_YGGVx-+fHgT#TvaQIEg&@oaX4^nQhw$1vg3jJ0Wi(aY&8~e>D%t_eL)O zl)1GqNwE9~`$`a^G^cMgX;!BA9ot%REIPBUT7+q72|o2_S{aj=ZsS;o-G(Ni@nEDiN0i!K+Y{ zqVfYZ8-S%Rxal6EqZCzYV%M&Ea9@Cp_jir3{Rr%QlccfDAG1d8az|T0|8w1ennP@@ ze?n*P3u~-SmLMWz+T{$ot5T?^b|C+nob_=bs`D;sw{PwQ1@E>Kc|E~a6$0ymnS$9e z%o2-ijhCV;ch8_rxMS>c05{9%yZ}qUje!^TvMO?fM^^b7%K7M-NTeaXQnKr0Z9}`~ z`FeOW`Za@tDo5lrau(ZnHj zxwfpH9Pq%@6!$H@LO5MvvGo3X5l2gJk|)bNMO9AZiechiE>RB)BT(jKI^|f=$mJ-& z&;~lVER1uRw}5_`zU7-#+p&P+xTZ!$Bc~*V7uxb0u~{3W^)wTJq}o0f93 zjyn@5_5ng5tFrYwBCPDTxxO7e=}k*iisAXL6Y#K77;I%3b0*OWZma{SOx9H{*s2Tk z=oRSKxkk{~(Sku7hX){X^i};)^R+zK0qHJZCU71xQg`yz*6|Y`hMXX>OWv#gne!ywg*=fyM$>wPVH}CtrP8$&@tPt!(|R(FXTtaimnS@X185 zWcd=CxaKFbihD>FHi28O5XJfN6Q;_4iuyKjuC+X`)KXkd(YZUG0;%#*GBi9%2_0+O z*_bi`)}cEDUZiglUSrr2`YUUobv%c(Jd5x<4F>A2;sb?Z$Pe;4*WlX;${59qhhg-d z_hyYUcHDf;2aL4(Ef9n5^-0Z`D+Om2OEYlx9zt7?pDOLs3DLx|(%-yG17o*za|gsZ zL{7}>#U5{4t4*<}Eav;DOSy)Er4!g=dM94Aw+CH9!b*TSX8B16W#aQu)R80-aQNqa1M zhTW4|2%&Lzag>foQ0T}eu&w%VDXw*sAY zYram3F1LYkmOqlMtjt}S^*LwvMEsc!=Vf{faeVKhU0yZ8{jNWPCB0uk2&nR7O+(Pw zy)(c|y>71S=&x@*Uc6dyFx}HQSlzDk^C(|^ z(jKV%nwNU!5n|X~el#Wh0)S+2@6q+2)KwqaeI5rk{BO%iC%zp#@x&lm>SK!d=F*pW z-a$dshq9Z^FHAOkwY5{zpBtsFn7L_+*v|PMQlp47(^aHoqez zx;Fc3o=RbYuA`@&)-XzxyIiHYr6hk+^=1<94_`!l`VHT_v@|B3AAA0&fzxm;+-{$C z5@${Em+!T_v0N7VK2<*{*Ay?my7QgCU56v8&(S9K!yW?pa`OZ#Dh4ZHG0ys(cMsHrAM!StL_l~xIkzr*C3~l2G!MN2U;k6rqJu3G{M`Z?{!SJi3FO1k7c+t$qV;>X=fUwZ^iPL1B74Qf zU*&Izt;Kjw?^f>JY3Ri$?OqnTJVnt7qYIphB8Q)=jp4(2hrE8ZzO@3C5)RHxBR2=> z^%GcFn|*xVdbnHmo%CJV=cZG|OO(m8&&C2aCp|?4KG192E_P?i_c-F@1!-PQj{K;0 zQlk2EX7{;h&4wD!bA9%ZrUDE5@p}uRFWKLV*0M6yBF6NY;F4}+rE~W%5QcC)aL|fA z^QChPe*QsjO_n>vv0oz%VREP;rXgwQmZ`T5{{to)2n^3z`eC-kUJJyW8$J~p9@jN- z^P55k(>N-`19_cTx0s2;ydH@Iagx=U47<-;vl-ss&x=fWbH5>R%3x~AdG(4jgYzq+ z72esDOSi)JdZ5L-B6p60hzlKWk{E>P7`l$U&eCtP!yCKpADG<$cT=;G+W+gwlW4OeJMe^d1H zC@Up!N20`2cwWqO6C`WrE2$yps=F%Ma`{C-=-%kXx=0^YjCi8l&CQ=~%eF|4&C@k; z{Td$@Sz&-+Hk$4sa0Z1HzO9W5t!i0#w$TLc%*9G|7X6;D(WH|N&sOU@JiJhc_3cHg;>Q`NU=I;WW_Q1K`#l5evL-Z#Wj`9x zY!1+NBugYZ@gAaTsYg{=y9h8aoX!0Rxz2qo_0La{vPZ{5A_Y z%i}VzU#W2blyXrOa5LVWs)CRVfdW5(F15Ib_M~oo1fI$aKFWY0`nCarl0WN05%xc7 zO|qchX92yF?+WDn?3{;cLiPrBKx7~I#MB9Vo+I5A8U~;p6!06iC4uh{MpMZ~OUY+8 z&_pC9tn92PrWI3zEpW@ZXbBN{b#W>WoZRTieO3Pq@hSmQ1Ab=cdxtj98-vN(AE-i7}vK$qg_$U85ZeBhxUD%;5|`Gi4AlhRPKD&nq)P z0T*_WhT#L8p`Rvjt&=x}rtd?2;dKETM)9Wp#k=$Gl$ylFb_;aktUicWt-Kf=ahEab zdYJsz=pbD`M;X@*G))M@x4kpLY)?usAeTOTU$id)Uk>X4X#Ib45tqT>%dX*$(EW1g z>Co|719*&&d~OmVAcS8y%^co4KawrbLetK-!UM?4bD(b8ohngZ>LkEv8`miKf$x!D z=EU6Bx>vYA2%1#9!~?4@!IU?N=R~V(p*``GT>;ADFjk=h(p^082g{u=d6Id$;E&8E zKtCVCb1oqf9JU>T<#8FN=ql7_>}AcAn$*n~ch7+Fz`|HxOGNb?W}^?=p5@7uHfW|| zXl~r)2nn&THAamhkPanG_-ER08w;&qSrjo?#~tu;VyGQ3DaI88=CF?yL@jP z0nsxq9%?5RwjpBbhAaqEb30ahEWp*LaKo{cNmU`Yk!Can84`F z@JI?nJ3v}@#%TdBx|ycYeV^rf?w5QCS_1uO~s#*Tn6EOx41Dxfi=(&8(*zLo{xupgjp{q~N6^vkn+gS?5dbVE3e^ z@X>_(lMcHAEKAx53_Lxy_ea^6UbNt3re&}z?#;PQGVR#C$8QeI%Pxma(#l9VH_ir) z!|0Ez2CN8;NyRT-H2LB~zu#VSxPw3L%zX*$AK4n3OEF}ooRgxTV5bF~^kQQ~_(L~K zL|;Vs{XkmtWb{^@r&OS?C6@f;@{8G7O$Rs61SLYR3r~w=XYW1Hj^8gq1$uJ9X3FON z>2`cpcUdJ~Z*=Yq4)Xj}1Ch2-KMDJ#CHIKF<#$X%c>00{0D6<8 zTu6wnPujm4(?-)o@PdZ^e1fBq4q$%)v9R=`y#k6do`HTz+Jm*nWUy?YFh)AFE@8)+ zcX!I&U`MyWJNlolAFgZ5uY%(vMqt)vXY#RuF}B`4_?4(`tVg<~5mMMNzG&=4ez{IL znV~p=Q-d93*4@*KQ0&)IWv8|rb69uXxb@{fXJUY#{%?}AzkRRVE`4|JtwDchsc5+t z*c7BqgPp9;NnkL9>wbN(`lsDn$R8^+%4?Wdf!#{JpKz%KSYNGQ;i=9a)j;tQd8Z z+cBmWD9SUUvk~@)hVd5Nr0>(>T( zF-HZ3<=ijqW>dh2CWyj*Kt_dqa`LvOo6=xrjV7ijHP zi>cNS^%Mi9->nxtoSDrwV@v$17dkV;QjMl7eYw>a+WpZWEKHN3Sb&Mbq0mQ{w_^Tj z^{a=Sk{c-VY5j@@LhThol{3xxN?SnyYw<|qVz@xBmx-R6@F&+}PG{}HRd?fhtGEzl z8{|*&5s7Y*0ibkiV|wWgr@ED7d)B)4m^K=NeMm7niK|=BY&^J9*X2`Ki*j8~Iqw4%0aR#$D6E#zoB7NT+U#!ax)JQp7%sFe)ZpCFM?Gjh^Owo|3yhGkY3b z?5lg&NY%d8#{l#vuYY1GqDO+&@n)SM zk~tp#BctB#10u`r0jtkcCfYmUny*Ir@=AX4fouxPF!&{#x4kdb`^K4(n-G5oT2G@V5I#u{gMabV< zPt_*QIYHzI>S5izlE(`W6vFu?af;4?e3OWj?!@oQZjE(1xDY9<`1XoukLOz8giLJ9l}`?}oN$gzM~ldR3dXBKHN=c7SX4A+gzHz^ zCcYn;jh&jdC9M^md|W;3JlnYn7`Y2(fJQsOkuOcll2C}}HgC?~4iR_1Lvn^B+Ji=KmPuS^*e0=RafIRscx?2UQ#&0wrMJ6=)ymOexeK zphN#DL@cXQ0TE<}+K_RrM&7={Pi_WR9rnvqGV&UDKT!Tfl(LGirG%+uk$u1-6=ZGr z@d=We79=(m-%6|SS|U^rpEd6F)5cZFFFA4Pku_WT^QC=hsOrRO&j6?3A?ik^$f}qM%22i4qjbPoNBDNErzIJ{H`k z?fl{+3;BJG+VVQ$>?!?y`8Tc5#fwZGcjfNj%Ol?saWlrXzJHR1ShH0>-+IS+>)Q)j z44KY9mB62EcA3t`A^H32-Q%SNm7lRm-R-dCQ|3K#NI!K6ri}pXEoEm(Wp^n>r6Ew; zC1O)1*-hQlp!=muh0pK{NP88BVTGV!LKXE`U#U8EB@%O$>P%d^fO1kN!1XXn#>j^s zv<0a>!Gm(DO*FR#XgF_B>+v7TgXFmHv>|S|FEqcOX;`CZhH<)R#6)m&;>%ETSiDL~ zu_s3M%@qOF5V?9AhTMvIu+NQ`$AHO}Uv-G(h$q?hG;;wtE1@m1ar!U=E>6`v>H^3f zjYdZj&%Vd<0Y54A)w=*_-TI?txUC~a9i|r8l;$f;@99`H)p!QN@9jvJ3Af+(%1$+< z4)knS)g!3Ssd3K}wT z`ZQ*vN{d~^7!kxYd$>Vkud*c2ac-IsS~UQn%~yGxs;m;_`$#t{<>ku zB5y!2CHwL>kL85h1VXlB{r-bc)vk!d)72#6Gkke0eYw**@D z`O7}P_6>|yj;fiutN;4rxP3bsD=sQCXvFp7w~`4|)x(>C3Z9w612upelKzO8>(27J z8nbqqmqop0VM|LNm$aL19)3fs#$gzU<10Nv4h_ARz}vFr>05zQxpihMLTVFnxIi&=|Gxwc_$*X z-fcdiVRVN2+jl_!WDC&52G}JdSnRJxQ!L^%)a(QMG4z zAMHhq{9W*f8!m4AGqs0fLt(v?#0tdbXC0(<)er5>>i(7+7uc2A^~hXjlB;WHAxZ4i zTB!ag|J;2wJeed7BE|#;fR3(Vy>nqB#bLh5XNh^f2HdZEw5x|HV#s7>X3KPDQK=O# zSZiAPMB~=Vdh5s_AoL!DN_(h+B&TIcyN?UR*r``ikH z+7-Q{(NiD-!TiDR%TbYlp~6Q+4aO+>J@x*X9Gwl8iUaJ|Lxx^d(n2ld8;lN0O6tw- zi%}mptsOy->^oPjP>frt9|o;vHqNc(83!fuJB)_snB*3-#6g3clzUoTO|$cE)7VU& zM$NN-WRsc;`AFL<`^Y%9)w^Q-Qa@~YuEgdV*Rj5U*A%enq<^jd3YD;G&tq6II~gQh zfOaDGpXu*EA^9RmAzkyAM|ZbFrR_XDeM_x3f<21DGd;b_ZGVhaW;PlX4p_>@P7dk( zfeii=+C+4wdr1nftRR$X_!n2V)jKF4H+WC62jE|@tKm`k97GKXu~3691(g|&7}kvVPW==k7}&Mw=Gp9aChdt?7)4M493@Hjgq}z z`pT?izT|;-ZWUY6mGUgfdJb0uLx-}Ar$asg19>fv9o(q zjpV!A;mPec@Q=>aSlBuPMKK~s$nDgEjF&=Bgta5{as>}~t5e%5!)rbkM&D~n`NQh9 zgNyB|){^n0!a{*f_t zU^T~8tLc3+K-d9w0NU6%qW{t4z?HDi(Y0OJ&LdGKsv+>`+hV~^fkL@gb~>wpDYAc0 zE~N#hCF9s<%RSr%-myk8STb904KnK+c+6rh8P6IQHr8nyWY>S5wYJ7QjuCjz1`!@S zHRp~B+2Kha8LChC#t8sEHsMjfvhjrH`uY6n7DiRth2Htx1|Cw8gsGk|t`pbq)bKQK zCQ0co!hOOb&b`7l=Kwm{OqYZ@Ba5UQP?INyyO^tFf8v0ZcMU6lszVW^QD<4j?yf^T@)EZB_xnDk1__ zKz;phHW}FVv-kg;m6`Nqi$eR0Y5?!1Jbe$@A8D&?#a27lj*EGSR_`EQdx&`yq+G|R zOExRor<*K!C#Sz;KzmIhRaABLgh$f^A}hAtdbN-@-~&ff%l>#t8OdL7#3krVnZJ+* zv>Ui9Exq&Pwh`fQsiw6fJQT z$~$FaeTyS3LkIvXspG@Kjy&sfFgqq=5{dAWm)G5r&}ZD5X$4lkd$?j|dsh24i&u)> zKDexw!F>sdVw8$DQb124WokL_Q~SgIN9I$R_P(NgDn2e@CX*#w^1Q`qE@g_1PW8`w z^wg+28kod^o$b_&7ONo3SsJE{!}qKM^qX|i!q-J|-_u?N(LtG?DrC#72utDIeHKh(%j^y#-KYUiea z-MC(!=fS(7XB@{2=SwAP#IZN!j|uBE|8b=LFPZr)$_IZhcX@iFJhOdyX>i4p6wBih?thPiy2%rQL_GiJ8(v=W4{PthdyU*+HBi;8SmKIECo2|XkRIfQhmc1^w7c%{8z!}&B9yuG!*XGZyqmSEdD3Fmg__{Oes(yS2^;M)fDmj6vN zucJB}Z~ct9aXMqcy;$vav>C@V)C=TtlzT3}4AcCBFor8vSxbSp~T>5;=vkM#2pgA$A z>%t90pZCDO%F0lSd(CR%%~77TE>y3CsW0sWY}0~r-6oSHgk9QA7g|%@AVzqfDN*c)N5(6fxR)E+YNP!X zyxHrxwyHx*(1&2~hgJr>n0=V*$qe-#<^%hxTZ~(AYg`u#OMKnSd{R11s3s1RMZHqT2EKmp*2Ok#5HH_%76A;up{{J!kGm611~{a7aBr zYo*NI@4wn3oRL;S2lxi|=)5a6U*5BxM0>+LI&MUNQvgRg<+D=gRfM|;zVj+Yf2{=- zBScl-gsZjR<;a@s9$zi37&mq{X*zrw5Zc(9cPgC->14fO;vF>mr77@WKz7a2yJv*i z_H7Eh$FNX;sAXEblMEyA?F-IzmyzU z7&s0$W+4RsUf;Z{lu?T}#d3x>wV(GuYxx+pMTUv=8mxqluC>}!`41H}>YQ!D;uSBg zqOM!c{+i`!tSlVy`Tv_+VgHA7>&Ujn|Cn2uNS;83t04#ay%ivYcs4OhuycSF7p5uz z8ur){>OvTZcI#yw?scDLOWY%+6B@Gju@>!M$LQyUQW3mGSG86X`TFnEcf|1SCx&Ki z8A2t-$y=A>F|nkqGB#=eyY-zeBbbWjUH1s*a%DFJrSHBPSCPE| z#H*cj+%;TY_31vce*3-Xe4GKH_Pg&s9pwH?4n4C=i9gjeIT@vtyl1_i7?3hY4%9Z< z0IE0$JnOk(j2StQ1xunO&aSzFk0~L5Dz;LLJD;~jp;W*}#m3+$(8W!Fk3c*Ij&^s$ z0`SG?LNkQyMv4T3NZS78)D}GEj0v9!b!MPE6rgBPxRI=ZVElq~qx?0mBeR^KFlC?>PS^4sOmSDBXX0&eqh}zjGx?4H^*N|V z;zH;r6-rF_1#lTTq2=0L zEk$x(kL-$TpxivLsEY2B-Tes4#9N~U^zV=S>CJlo;@?rmAGcj((sWaWzSIjhf#h>f zs=g|Mn-9JVD5{KMF$71$Q`2qdgb;#dsVB+AGSGx=R>iyccbZ+=6Z<>yuNWj%yBl7oJh{AYWoh0=Px{_uz#uGjG2>>oqR=|S+?Ca4F*|c*3r{;Bo zJqjC@nF)EaHdnT*#So3zf{`9&Lfp259oudd8o2HSl|4EhPo zp<2gI#L{xhsA{uvFu=d0%RQhXDE5cHQ1$$shiUwesQ3Fo9}k`O0aW0JeKp%? zk&q4MVlQ^(rW72GFlj7Y9(w%JBDP?0ZPUx5TT-vwgjq{7+$I#h)o^Z3&Qa>GdlPpz zwC}o#n7n|qa=?PdDYY3?Hh(*x19piNZ1pikCPw{B(5vKz!fV_1PV>QK1~Yq%tb(G~ zxVx=uMiba2(>CRuneSDhj#t(SSRrn)CL8#&<~kI&<*k&pJWavUX$|>wZ1W5x+xd|1 zA`tjzzfj>JO82Nq5CuAS1a$ZJl7?21Ou>h*HBTiQYT!dxWODFUk!mUK$LsK8ar2`uYjfwuydu015SqQ5ZA*--%q8hd9 znD5Rws`~|J{ra}<9&=hSE$$v+ME~70*At>@Mh}bl)`hrD`b(c!>rbyWe6;&5)aPfA zb8^{xHPk6DNK~sl-ts1^DB~dl z;>n`dYiT=t&R^vWlx^qdRD{`rBs=#tB=IRxz>t2YDjuk16E^TLUQp}Dy~s`rh--Fv z^9C@qg#2aJJ%4*_ZSw6Q&zdlDRWqHXjb*P9X|3#9tviLr8MYB)d zjizh%#N&sA@ifMSBVVl<s%OYNaJsDefCXLlEizL(z$goXAal2)NH#5i<>U^wRe z_VlifI!Yi`rb=VTuLTwhW|FZH@faVK#h~5TEw8fP9`G9qp65t=mUgQX!(X9$p^{>DNZdL~5T+42U_k+Zh72D3>uh$~-3_(zxIOn;SCxTsQ| z_SGMlKdB`6&xt(4Zch>hdz$splJ3dVzorAxqW7xeX~Y(Kw?)5Ou%%Q#uY;TOKW%I?yc zteBkJhM$}KL5G7Ee}qQ|L8F1Nn5{5TpV{sJT%~zoMW@ZQfi)44z4+cKW;r&wpZJ67 zwh#T2_{&<%dXK-P+zziimBzy=IA|uum3I_S>(UlFGRn|Bbw<;cmyvNX^36CMvv@;z zN@AJP%3G#?}JXK(m=_B|%<|N4m&J`~B=R4Xs{}(|I-WJ5r zUTze=-uvkJ66e$e2{2Hr5Pr0XbfO#~N@a9Lv5n2?^*Vs<*I^ObP=SZgP7c+$k5~OQ zTDF7a$E|o2dFUP2ZB12|9ySs^;~rqA%-~(Y(odr2-Q(`{ZLV4IrEsUCBXEK=>PGp<#-*4g zPAFGX7=$e*SK+PsM~O;=_Vp)*fpIdYjdd9fYVu!5nGP0^T`RImK`!)`T#_xny$(;k_4NWLe*k7PFwv~wNMx9#WSHktY(W6=K`KFOL$-#bN! z4b?mD7v&`G!cW2$L>+n4c=1DSbE?*m2T_tTT(o<4-zlHftPvGix!zq8s0y{-Y({Ul zoS*IeO>>FLu>Q-xU){j1@St%JI*etn_hVeaz4Q z<55=s^$w2teLo3yNR@54ms0hio_eik*rxtz`Vx!U3=9e@vs~T94KeQ`qvz$_-&=je zzgJ04zj4qkqNsA&R4f?_77Gpv*GU?2n~b)4itvA`GMl!zCL+dYkXVIo$X?K2Gv&Bs z#HH;KZ(WZ28Ee*x!S_FCs&D&U!J{CTa=1Lese$Pp5|*meXZlN0u$R*HR&Fw7pw7Cy zswV5LG)-#b250#zY+EiBn30 z2R|01DzXJTi_7LCo!t(7DtwT0NJobqhDg{=KX9blwNaHj1%+qq#%wJukNTLVriL$B zFZ`(4{oU&0om)S59UeOz@?OrSitiuxR&Mn{Z%clW5 zTp7)X=l(iBV~7h)Yn_b+F_9GT{+&|n&gr2__`!sw5K#LMi;W=p)=DS7Tvyi;eZjFK zmp;c;lc)7&Za$xM!*srw>+-y7!cTq*M2Ang@u6tf17dUKIyKEc;&BJ(isyw}H0>`| zvy>-Yw*sc^;c@NDTQ4i)%kGXNrfSM|kB=tLh?sGBs}W zObaHs5i~C{*nPcVoAwq`r-h?Ej9I>(-1d^V9$iIa>LwY_!JB|=af zoj+UIdQ0rm<3*o(D|H!g+NDpk0E~cUvSC=u_*~h}7zxmh!eTc~Zz4a2a_bh%TiQ$) zG!zwOV-3XBvAwfl7dcNrn9q!pY?N5afaJ{qC2%ZE9rNbv8`&$-Meo`~w77JPSJ2qk zsbk;E4_yXMfH~%UkfVn9kksNHqp1q5SaE7#L$V*dS^vy^?ihqbV>x2>Xg`dp7hXD| zcil=@5hEiy=eLxC_k4q0gG+$+NAV|(HzYRcXPWG_9qd8O!}(wEeIcSH+YnuL{YO<*TE$Wh_fPhnnT`u%_xiF>K_}_&{ zN;-d~I|<>wy$ZOrA&YgC?^t{I9fB4qp%^gI18Z}_06_w9SP6sU(c2~c@FN9>p?_hF ze^o7)l3z~XeB^^MJn2z_X}KqRi89@Hl&GuX{vKA`f%3FMGeDyMH6UIKw2C2I^tm{4 z(k}gD)2*6pK6YL{puxx&fSeXR9KdwKfY%CP>%DU`ht zQwUS@d3e)Ww!<=ELEh%-eGlzTr+37iR#64mtkJLNkUJx!$6J{T2}qL!$3ZRbU%UfU z+Q;B%DrR}mWrr~*6M36H8%sct_U~dN1ug1X;wh|EC4@H3z=yO+E=XS>bi1E zEt<%dKs2*(f7Cu?GQ+W(7VIZcm-Fk^vOodoMj=Ue{gmGma2s_uBX<=Ki-B3#P2?AB zI_aY?{}~17@P|hxpa;BweIyQ!b1Z~k2OV<(^da5%Bt^!N(~3c(UKC*67bhc?-8Yc$roFurC+s^m#6Gn z>s1g#BipfE4e~ovc5gdr@7LYR>TQa;{8?$pLkk{+t(ArJAGW3i!{(tw4H%>+yV(71 z{nnd$-Si4Y^*wdDxbJmo8NBO}^2X?@XLHYIEx$2~@tJe^6&VH!`r=4i-@`-L=3UG! zb#d_2nvKx(_U0!%eTXEsTq!FHyTf|JoXCXEnfYLTQ_Pct=@{esYfdfZ| zCw{4gGJkmw+!4ZIfxsPq&8_Nik8m+D^Tg(3SN9Th7Fgp&wdp9^1*n)^X2`Vd&I?nq z6@Dn=oO7?;AakdWBhb0l^2-?PM`l^DrvB`9Hd1zR9-IEFu{FI27pg>HulZ&r*(8CE z%wuQgxOuULbVJtCvioXone&dn;2(@^k?tq6%c7OPEyYgxx$$%MUtZh1`e1ZcZG{Rz zxj63loRu_f)nfTa=B}+Z#Ct}Tq%V4mCg*T&ms2J(0%3 ztSU;sh$CW;FCZsF_~cKU7bPG{VbR{0^EK)c+ls>}gG**sb`@_A>~( zMdrPB@LfVG>DR9?_K@<4&gSt5D<(_3zyjG@{Xc;8qSx7Xe3o76Lf^F5)R96p1NW%y zXN;mT27`;&Gxrk|D?i$tsl45(=Nl_;wj$cFPc!-Xs9V{T%`SF?-ATwHdhN8i_7gn714;jCYgLJ7qK55p z>)jN4Lz$Qp>uHGJ$g$oI7N^3G1!)3moMJeS*jM{z`^=Y{YrX_vQK^bC0b_I)&;C8@ z`zixOUr(vJcwDbbvZr8WepM=*WXX{%97!@jo8Z$*dj$WXl9{n_Oa}|FR5;2!<8|H3 z2~?e$;D~>y&a~8M?}XR{jpF6TuZfB@Xh_WN%p=4!a4y0qYw#hEM!cvKFH8%ji9l(F z|M&vC`0@UJ-uF}E@q1m@``&y%wcit*9ql08{ouX$&}~m6+pfW^!`~t_#|=KbcR2mG zbL}hKJuT&$+s>PKhfht_GOB4K^#~CI6)THi*m)VS`%y9U`_PNd$FpANZ&1ehpQNDb zQU4e{x9qqOO325vxfu66qM@s;W{hR@I_AJBU5|Iv2{D`GcsBP_VqOn0vV9+%078mG z()LGo+g!y<7uXY4sY^X3jz=5aM$;{Qpc80+c>j;Dreaddt-=-I9ewk?KWc7+ebD{} zh4n=eJgF_Yk8}VA znBw0%SnyXKi5iBQouS;Rw`V)U(6jS|(){eT>Kst%0_u11sLpqP3&Yt1P05L!{?mMW z-$1^=B1>{SVLNGUdjT<3K| zfVc^3M)fNEQAIRKUhs^q*&qOg@rzR^%Ck&6s3D86z!0rj?qN3%^gcL_zl?!rITGeI zi!b*oe=o0|n+%O|cf$cEB9++Mi}pdjdAgK0%MNxe>)-XaEVmIhEsRRfwW~k8GhT5B z<5K5-ho$La2)v|3?e}N{Q(xq*E$q}jGcjuIw;S{#H>|rimYj0?o@VZZm}UNyz-GnY z?*^#QKWdDBJ<^%B45;)U%Qd=U*k81La@|On%(Q(U1_I1qPV5)s6*q>v%6sZfP;!V7 zLQH7W>2|33QX0*Z_ud+MV!_%r6OuU!h^=c-&;Ml6AH$|n>&sFIcD|nz*E*#tn-9`G>b+4wfRC&C)r+R!LtN^kq zE_Q~Ago$($CZn6d@tsf3#qPFyUa|O#9lw>Osv+v(?QED;it2N{Ni2m^dAcVkG19}R z7GPIRjJ8PH*&cHoG#}axvr6oboX0=%jJ?jxc#%?9(~q3CT^>Xh&2{6Uza-pU7m;+; zeu!(``)+^AWkzF~w}hCN+Y)xX=SsQ97#W#MZFLmAY~=)CU$ z4tH1wJ#b+bOO+&2+>1PXLbe)8x2=*ujcXTDtt0P9s$0z>oX6>X5>s$I_T#(_`37 z{CQJ1R7C)Pl5|x!M80svM){->hEj!Gc!U?8l=x`A`D9 z-p12zd#2pG!5kRIh}N5v6ke-CMSa^W z2^8p&{?Hp?rvGcRr`pl)B=b;Kp4|1O;{}e+-0O!p2cmsjyC*bJ3bd2obqO3 z#0DOpKw3tQJ{4q@{}sy4PWx^BB0Ytj^}?hTOb~CAg+h14OwW43BfK|m+Ek)&FIw`{ z?lz1am7E^_uBINdP^hV6XTi>^Hb#xCn6uBx+&cYqi%(@)i6rLfUf`m}h~JB<=2bYH zvFu^5E5dH2CEHlOOdUPaeJK3Q+$_h`#qU$C8El2=5s%QnjArUH8hBeJd_P{on=%Ml zf>XXD=}KzTJ6b@$S1R!E>AoY-cTY=Qc;WzW>np<-Fa9rtbeFSaK4`FRNX=^e7J3*6 z#r$1S^_7Rd=P^{PNf#X zX+OkI3uME}j1eY~!liY;?N9Cl;nKx`Lw7`vP%ENBvir|`l|ww`p>wFh=pi^h^y;|W z&eIL$fjDF=qTj-Nv(lmuwJAO2d_$isxw(Tk<*4wI3hrlv-Ir`LfTCe$MXPn{pjc- zE*)*nOo)utxKJOr(w6s{_ghFU=2b{(nW;f^oMqlPSsdxoy1oVm#%|NO7!bWrL-T_L zp_tA&nF-XGeBZ1-SK7MHu$z2vk5K%dZdO-$@=h57`@Oi?VB2J-?Qt|d=h}zaOFSqHC@G z%j^3;o%OSH-yRL4{D&>k#cK3pq~LQ6Sm3x&tQB#(!^le7tW*vs@4j6U5XG5rF02E|=IS+b`&G%o8?(DZ`JpV7Ur1)sb5~zz)J+_|JZ;;q ze)LZW+S2Db&r@@^@RqO1S!E(gPqEY~Q{w2~*-D`!(5v-o5dwnvY0+Qnr=8-DzZI*N zNSRrf`4nsBKLekG(y^L4JTYIJRL%mvcE>cB>H=E0vPb85N-Br8h4y1ebCRcvmTT(x zHg@W8zSh4TN(~bw+Tuqa;Zu{%I^=hr&CKYkPI8>=muI}8JMovPOkNi?{}vZsf9vyC z31}+$5(zrcY)_Et=-*Sz^k8)e#~7ooa|YcASL)*|NIGV9%C{G+9j!?qppIh*Y68*s zRqtl9^QEfVD9gR-;p}1p_^rbgSk zkB%D{nR+a5xpSiD$ySkizJ8&3%Iuy%aaerArZOZ^Djo^|)>BO=Lg2G=qXVt?8T{9t z?gye-YyNV5?a?G0<%yO~-4YD7D3;RuMs;7E_0!F_syzD31gJGY;f!%j=ySVwL9K0J z7rwOZk}IqV)2ikF#!AJ_NX>_4mtRhRemY)9>3@I6_#;5+AF2V!B#7}-Et;gqad9>^ zAv}CccABI;u@@_@9S!EQoV9GYM5TL!=|dg%IbP=K1FEy!1*>4STexlRTjrZjc_N0+ zRAP7cCd(geJ?04&BKxQ7yUJd9np$)TSY>~?OjbTXo(H67`j_NhYu4m5 zf_S7@L0#cPM!7Vc;`$fmA@VotNy?eLf<`Fp@3_PsBWg?o2J{wM&Y^Uev{@mZ&2W`x^OA3{MXab%{V8%ScRnsp- zXg~aM=rOiDHSNnIy-7EA__C>@@ z?Kc9|w}rm4>R(u;p|Gk^noa+qGDm8oyUP-4`vV&D@RF(5%jJc+O`JBD?F(j)Mk|a` zevAqKXy#y&U8%K?%eZ}>8UN(cF2lXEj`5a%s7&VZz1UbI1=ykilW{w9qT^ zvmwTci!`0reWgmdj|+o=JC&y zOrbHY!g23+0dBT(C}I1`2!%uBy>#iCy)f!QRQ&HLlm1* zFFo|D(q2p3y@HImNt0PV5TS2T>lZX`?ouN@w1yB(X=QrvAj@%uu-pnNDS);A0`QK#P_IXxm zHEz#~U1XEVzExA^GObiEV-%N-fqQB-!WDV|q6fX5pNi>5GPJU6wh9omb|mmX>gRh^ z7D0f0)m7nrHIl$E$Q{0KBc@_j!;PAhr_DE5!wt_qo0L|k8xAyk2}q%-_L;&FNhJ}z z8^ayi2M@ZuT{2oKTxO5=K_&I0@vX6QDyyG?-hgK^?4a?`ls#aEP4nl8ikD_}1!rrh zdr*G9t54;r`2sZBAV3zFB;Y^8)CjI+iz78$wz^GX-x8f`Us&~;a{qnhI>fv3QlNCY z-^?(t4(g)3NXO4=fAm9bFe%{Ey)IY@g5kvG&;oFCdLKyMJmV$YH8OC>z7ddxu`+od z_iQXbWz9TXN2wT}S)GTTzSWQdz!PovK)e*JQ9!~Xdp`O7B3Tz>BRVOsM3V3fxti}P zZV}ip>h8AZ>q5gUn0m=_O1|bROpktG#Vg9A0(uFfcEQ$zq!rPY~9l&@57 z)+M7qxz;*d)!KN5oNHwc;U=PJ5_$;D!HgwEV1_NDU-hqllr^aL&8O-NbWK|58Z8c7 zYWK?)_+UDrs^x_zLY~H}WVydcQfRCnFW=>CX^ldCHOrr6+i^vZ(-fFO)917cT$rMs>ps0XSz{+0l|0rWCpq0R(+&7oeaZyRL7ON zJbjthGdvRHm{T${Hh0+kwgcDdoWvFDI6_&YC8WSa$%+p5@Td8FYIJgcRSE zjvLhh`HUv7c3wYRN>D8r6Sn8TPwUD5#P(I~m4EN>m}kRx@lV?kdzOFHi`$&hI<(UsvT1A>_b-NFCMy zEz=2@))N2r=`QR}T~Ar_3v(RS?JGREaKrSzmO_sdLS@uDK`l67EQL>sj=UrXGu&3J@S+#|ivxN=%m5Wg6zKtVfMB6_267Ps5cDC7cR9*Zx9b@abP}q~WpM2cA z&iW~vSXzCP`I3$5nllwCOXLjrezzxswZ4)LnC7~SubBE{sjs7M?5<+2`AgePIB$oJ zY}UHrvcp*yO@zxl-BzV4!ngl3pr$lM)y_FKeuH?k=Q?)$mhBu!sjW-=z={JWJ*{nTRkx210!``(Yv18Q^+?O&o7QT#>m&Oa&{^ODb*dMpNA6C!brLG$Si2Z(4r{W^gwQ z{q0CI)Tm2mF?f;W>_?t;Qp%&;(o5!E2E`TVQNQ12g+@hO^y*5)<5#x0K^&$(S}0P29F z#EbtP5P6Yr?BN%wc>X0Q0%QVz?S3j~fg&eZbW^^P9zb^|x2J%*j41;?6$o6Cn+!Jq z){t5{df&?fbbPxFj@#`1>r457?3E=V3k`uPO|>Et!~zprM&E!r5T%`M@$i^!U)P`! zl^yx-b@k)lo9dpyYswHH(KlnaFd0SWQ)$1Y=K_hi0^A{>ysxW|ll(_U1J;v@;Z#R!?vF^I|KN(TLXD?x38 zNT`Z!_%(pdCx*<%?*S7*~ysa9>OAuXUE2VuBsb5ic1t zr@x#QZ+kYgP=X04`Zpw@j;{sW+?sj$G2O=L6PpJr!`>}pD;e%-keZ40v(<%p-j(dz z_*QGgN~!?)Yud^f&IB_O`x-Y9$7iXZVqp;N5qe-D*2G`I$I3|#dy;ftjmIO!tQ(IqWGIS&tF}pP|;I4~Y?Y;?Svcx4u#9+oU zx*Wb}J2jh2j=45@)`vkgKX-B{y`wS4 zIHRO$JTd4-5yx<^g6Uq>zgi9G2*`=EGttO`cfe11;)Of$jMQ-;SxMiRK{uqWeDuv=?HT))|&2;Gsdcaw%pWDBxq()rjWI|AFt`m0~ zn_C5AI$Ey``-X7Xj5dqpV{)Gq&f|u0Y1#C_^VYSo81HUXOJTGjXy(k;6g%r`9VCTz?1b(;QrR2{mu!8H4!29w+K zNtUKc=KHsJCgW7$j8TViESN@c1i)FjzQM;|KQ6ibcDvk73WeA+yFsqqJ>JB<_`P%N zXvq51;MzIr66=Na|0HAaZvZ2_t3V;pt5h>|{@~wC%d=>hOgR?H47`;<61wdlDtDrz-1Vu~E?=)On{Sm#}yaCzefg5^j1te$;PlyDTg}nh=PUISLXA<}>2S9+`wi*K+ zZj4jzhmL|zCF*S{&ALGDcOvC|2qSz&58&WT0`pXOFHs7PuSjdXmaY*@H#Vf807Ed-fIwI6W4Gy#?}4K6p*TMg~i`G zKFHNDEZlt2Zv3(MLGR#bTCK%_SHW!4_mjASr0I5x;$Qnu9+IRtjt`#t_3mM^?mVSmC7fANK2w0y(CjC=@c{|+k(eSQ3>m7}ZIpjqj{JAj zILAceZfQ!ot7$P%XMR|+>K6TF@V!zdUq4S^d(WVAD!;K63HmdeVNDEKeCGDb)d8c- zW6G3~(dXh+DxNgLTgBq->+T}%Eg0;&()T;|o1|qtQpA)`f{-feEA6XP!W&Tr`D@g% zByF~>A^t{aM~5XN#d$nk<|o9@dE!sPPVlih!WsxfTRDk`MeFqd?Y`~=6oR@&KvZtA;)RYY{WS~X?G%@zeKd+FbAvRN8-;!Q(JfcFm`;K3aL!kvX2 zu=srRwo%8+OyPLUST2oN*MN>EM1RO=x|tdPXF|g3|DpOK5k|Q)r$BiwcAS}Yu*wOz zElG($V+qm(?!2Yzc%HJ|K4FYf-!|G)g5T7)Y?5-xCeJQc2SR}mHIQ{{0I=!{@{C~g z@219?RcI%A-w9onPELeI%%8%X*f#zDR@#00DbN-r`}pau?8@BP}X zukL%&5M@jMUZjzoC3?3HcU%m6)_*f=nx*@3G~-ECr|<@~#^oTMYgZ~T=NZ1IfJym5 z&O3iTOIm+wiSZV&_e3&~S9)I!LF9ZAaIR~w85i1JoXB0Mso?@Ew7VSsi&HF{fm+`w zl|Kpw9HG11Na9HbR@l8wOCCBo=N$TGQ;=SVcmObuC$p{w&FG#U@v4mKiTv@e0$Vmo z%%Y8gB)}|b!=YPdy|P|G8X6|yv!v4b8Tch+ZGP4mx@K}m$#i1P7{uEu%$E2n@k0?X zP_Ie9ZfVP4{DX^g2_3T7?8?9W#VE^BBe;A&NoOlJgl`UYzP#Y)n`DY#kKELf|J7yo zoPnFsBI~(^(zub&%j)nwyQSTsbjb52u7Rwno*`1u01yuM57kgvFw`8FaQ!jm2QC+Z zqxqfw3`)coe$qV@<+XhHpUWZf8$3KLm*RtcAHk*c#lY^7b?38;B+m3rw<>Yg5f_fg z6pLnyva5(-`8{9J4Bbu;VaFTSAp<9{hS)No*CZn;fb13qnY=GWd5r@sDJ{SibXRz) ze8|!z6S!JvKtzOEWh5GSQ$QVib(GnPeeH+>0^FP^Nq;C6!0yHePi_9~A%eEGPAaj* zqx9OX2sL&*o{PG2f95JKMc@J3DfOrQ2w85;8k(*b;mJ*qlfYp26Xc4+XbIE%itc8R zVVYz(yl4T4FF03DEF8CpCs;tA=2a9=kP~n$#{riEN+3faSE1lja@8S8Y+<_D3B6l$ z;)QI_u;A(0*A%fVhzvg0g8!!00=RI^bMyP#!N*1aMJ`w%>l*0N7X8B86qUk$(d@kS zi86%|n!)fQjQE$Mm!O-M?XrRt=~x!sKRu~??1QGcLBoUhCH~~zJyd0| z2%t8OR(8C5__k2XxNnFKrae*Prf4#q>BiYO25L21+fh|h6K~p_W|or>{98c9u)VP+ zFt5DY&jJ`2Pr6h^GJR>j=~?tRRmac2C1W&Xlv1_^r=Q0gFitOb^49{Z3c49vDp&CC zKv_XMH#bdsfS34g`RjGf=ME(PGcm$a$u-%4z?XN+JTJ}tf!yDMbKVBJq$;u+KlL?3 z!w=)oJ!l-dL;)7z8gF)%nNnh!`#~E@uUG#BxzpQ|zvmPpHL(lZ`hc0G(W+3qae2it5h$clm6xF5_SufgA!8`YBR<2qaA)m8Cl{}}%C?~XJ^Fo1Jty8x-M;2Zbx&o{ z2lv{a^Q9hgx`}sn7ETli(e82hH9}XK&*#0*&>tuntupvnFDz(_T~?v(6|a!0q;ic# zMH+jfiKxE6tF?9KLvTqm3t_Fh`{vyb3$u@ve7MVm+yvPT`uiM8o&BX+UEg?3KRwyM z9o=bw5voaT>UQJUp`)I)`#MY4em_^g>bOYF!E#prWOKFx-p0R`Ff5BJ`86kFE0FA2 zE@Wq=p&5HylVi1WVhvE%2{#L@(Du>)@ZDw7M&XxMK z7qt@#_d8A$v2kO0@7ZdR4y<+l+zry-qD=A&h zlG`xN+K98#b2U}x#jnBGR1MQqCm}w~yp)vG)QN%I%CTk()rS?15DnZTp2*?TDZb9M_OqHfb#|!+9TAX$f$*`9vH!V()N6?lBXb)?E9hDqJ!=$y zTj4sB21dv`R(wC8opSyR{i|O&YccbLA1x}XRHUcUojeH(5T%s3{$`4Y{NYH)D+ti z{rLcwE|ywFVE=61-d2JOo+&co@%O8cNbURLCd)wZca=vOA64y54}~;;%?|!-to?d_ zojOWSXE@V1yUrtBG<8|BrP{^Vn@?dB{Qk>8p|zzIj)RG|Ou(XA@@-8pjoGJi39Y@G z4_Mc@cJ$vwm?T<1da?e2B`%HY`~U`2m9)6lA-8OYRLj^OU-h9pshwaecN=zx>k6 zrLQ73O-(0D(m_b;#-#j+d(!*}T*ZpwGNgo#QtFdSgI+h`V+hxWfdmWoXjF8+3fU#; zYQg`Ue>k?mzr&|@C44+CSpv~*j&?7(I0}8xXliP*ZRM_?ig}oM?bDaG+kclYztiqM zU>pUMTVfjcMv>`iW6#RS99DR>AdRF5G9Fs_kfBlKKfLu% zu#r{&#sumfXl+((>j5LD7-03aa?1?pvOtkyWGp!YwEtSx{ai{GPF8Q{UyB?$q3G*V zQ#zES$PdlV8PI>cPc`8zN7tVsS6r5)VmT)Mq2fM5$53dp*LBm@J5Fw{Ww8#d3<*`| zKd<$_a7nD&=Y8TI`~{U~izPdit%7TT!rZn2b+^3{+47Sf1z4jvoy;ozNpyp7=<)vO zffZx;Uzq#HuZmQjy_h$0jvm|h4P(Mm^&R!cR=G>cbrNH%cmA9)9)BW#4`qP`;x&`p zR3DZ)L79DA90$saCAP66fGbV7@h8G0W9RCK_DjAOzET_ml_^cTWbRH7%Rcmmj1>Z~ zDl2nkDLvWxsqKA$MJmdg2BUI_;P=^=3F~3adPvBxH>uJj?o897?fpR~`Ntn;Ej83@ zlMRZ>8q4BypOVYf_;K@9$|NqNHqe$X-hp1WA$spPu{DfRW<6VOzZ?+lz4KyVow@n` zX{Z&;VLgc3>upurHuUP_JZopApf7>JeGpT_?Be}X7taFute=%*aG zZx+XM+#nZ7)^O^Wm`)V5?6v$108Kstwyik+q0-cNrUfN%Q?z)sC=E{YXU;#rF^InV z?~&V#hX4Zm!)u^Y<*`^NXI69o=@A-gTo6~Os33S^4|D;DP)y&1KV7O#1Byt53amZv z+qbKA?uC?^%sS}NK7W!Zs2c-Z)eS)NjX3}x1LT^-s$cM9NoW2uA7@}l3UWe`(q@3l z+y)Q^3V;7Y^{6!xy?=KI2pryqAL8)&@N})?Pycf@>OWsmEv%1@mdW?|4rU}^bu}lG zS)9aL(w4Kvm=2N?f73Sco_0S!h-VyWq2sfR>Ovp$RIo(_S*FP(g~+X*!oLoKX$@Oi zQhcXCM0m$~GsLkmGQzj-1tu7G(8D+G09U?;HM>at>_mILjivm;t?vujdLh}miJtnF zUls_=y`G#FJVOZCf`xI#ytzT(m~Pr_;`!RD7lTS&F7CxyC_tL@ETNLwahskL2?9G( z2>sqoNJ26rv~Q^(Y?gj3UE$0xOMJrbcv$PlkhgEiriG7b<*L?hol2qMa!KS*i*aYd z)2%Txn4V|}jc76~dk71O71N$A5z>)=4d^C6;j)M|{dj2N$jb3ZRZ>9>THI%N?%2<7 z`boQdMRfWBWjK_ZsJ$HKGr-uTb|u|n#79qg*YTr8p5g&pHGu*3mY`b%_H}U(FLJ%4 z?kJRKdvQ%r_bc!xkQut@vP`C> z`x7NTnr?#Ri-YGz+5C)}suOzoj%9u>E}O8<^S3y@`$TnMQn3i0acZ-wPj1={aFKCyX3rP)B@j^ zh-1WyKILmKZ49Hp47oAw2SOsIaV82$?q)lFp-qcWMvpZRBZM*Xmrko~#9Exru0-+A zXq$b1zhLt+1kRgd(Y+1*5meJ1DNhe?AJM}%EnUq}Mlv~KeOp?N-v`PKM=Ix+BgND9 z+}Wmo>-BrglsxfeDY{~Z9SeSC4C=5T!efMRoI6rwDh&FrzO{RMwQ zU8*Uf>;)h!gP5HfRuMLEqRe@?;NKw2G#`!N>l@D^N4o1qX0F%`7610LWrlOlPBv9$B? z3W&1;j&t{bcMG2xy73l2hOF4Awkg7oTC(_t*9SL8t;D*ByGdm%PqC&Es9;zj)6?o$7qtsUO4ARo+AKn;X@P%zYL<7`DSzC6T+Lh?LA*DO3??v+m9i# zHRI#i?{l5bG-?Khe=D+JUR`PId!SeO6+BeQrrqVuRvFOzHoZC}FW260&nFcP-g>fn z(7dIzls*4hWY8#Cr_Xe{Njr%D1!YLsKSush=Obm-Z$CeDpIPUe^ay$; zfo^Uzu0&gwfhvrmeKs`Cb=V#(8~GMwHif8jUGd2eRi@{3B{Aqv z8hPi8kuW|pk^4QK%W)oIfw$xgh}UXq)@db!9a?Tr&${}M*wFn4P=448!chC(6=L!d zV?r5)CBUU!jcG(m9(}{b0vQj}b$7K#{l&=rtWuq$4YzTkV-}ab3dy#z{3Z0pTuPN4aR>I$G7h9O|;#!G|A$Hfj@tiA zs=q|75)V|lRBnQq4DXnAU-}E4JU9{HGm}f#1fGkvRg=5NGX_?^YElTmV54qq=w$7( zHBF(a5sHsCzny3wH6<9krl={pF}0ZMd7wGB`Di0(JlM*Yjb;ILujgT)C3KR+9u&ZX zk?!>j;2DW<`qWqQviNbiwGoY}u{~G2vkO+K#&@uyY^b=Eneqo>A(>bb0I?C{LCn0s zl`S!cxg-_{_DPT0Xr7MSXDcE0?WQGuMcF3yTPC8PE)I$u+YF|?QrN7o@97PH9F}c@mhG@P_l=bH*8?1gq4dmqu3#RTB9g54U`(9RL-;WYV zle0_Yl==PT)QT@C{@cPz(!8`Fr6jy8vhx+WOhsN0;S$mWEO#My?&@XR%{)n7l4 zS>`e#uJ+Z*+62ocL<(54B@8;mP zO*bKFp6HYHdUXeDEpv=pHQT9{003*VeS%({uL@`G78+eWw6eD_&C0NFg{vr3466hQ z@0lO<@rHM={4KJ@%K_nmYeh@OujhAPXJ(f1*V*^^WFmBw^I4k{IvT6hxEn&$_GvP# zW1B_31LTta=ShOhsb@+#ElXaGN|@1A(5RM-Ob8veLwKStUC1-ks z(=P4zZZo*_bPSpl-`f)Fov;+Dvnkud<&egouw@atY()%wd7L3$KBIoonc2v@Sa?Kt zDbcoFdLyQBon`J>lO2q=kZOiqX6mK7(px4X-es!Ki)c`!Zv^qqg+hX%sjelp$8{_4 z=N{loulD7ye<{9E@~KRJBqgV&#;;`u9h!Bh)<8}X2c*?*bmR@um1!5*d0)`I>K~2B zTR|78+J3jG+O46JT9I6FsudfH-8jX)RX2r3%fj+GxL=tplvUao&&R)(m>(I|3}h{7 zgu*4*(eP~4A;S#ld=@VLAHr{zouW`=_Il0ic>Dm|?`=$5*(IJfb8bMYfb7pz}Q zub&B+N|^nho2~P}vNeO2)y|&@fF57q*Ev|2;SlE+-L8Gem2YT}3H&-Zu4!*Bv+pi7 zi5;>`$CFzEL0>QCXo}P(LFW4>*qn{@9(zRx7dA=NU+8+YmwCQUwZ2JJnje7~(9=n| zSvZPt(Uz}rDJzZ5G)Brog6I3iaujl|JJskTs&5~^Zqo3f5qhBMb&`LjkL#h8?NlIh zN1NTp?3i1yg;$SNp94ox?JB3q#xtd!f!kU9alW(XVEVW5l!_*UWE~w z6fxTmfS;5{CVT1KgP{NS>F$z?ai~lD(n>2A+cZP!Zd^E$AB_xuHWqGSJaNa{EeTWq zput;A(rjwZ0%z~D)1cN{W`1wjFl9DfbZ2!9CUO2O6l+1oKjwRdk(=Ah-Xt!|@GZ*+%J&dvxPwjL(k=^qw~e4_rw5u^C(q?Y zY?0SQrxrpgwcX^lB9~2%U^aF$w6m@CCct(tHtU~b!!6j}>un5k_CjIVtJd85o}M{| znh`UOV~IzEi$roomyO`lhD<>}Q*8KJ!rL&LB8K$*ZuS}a;#RxTokVmw_*@SI)qv-w zhtJ6C1VU->YxcU-;0)eOPxec+ihZmN>(tiT+ZDb7CszE|Mt;4TRaInIr4vh_i zq~1vLo5qRCb{qBH_lm!s@7ODI z%o2CK`DejIxs3icX(&OKfuqg7z8QHbvTbRts6nS$1hbSGm}!*+zd8(Y2}u|RYMy|g z$@4e8!{ciJe>yOK&hgB7Kni;$+R8co1~zBLe7*UmNnEvyTtk`?uY)1`sXt)$CD|gH z??N@vl@YYu9W_O^m2&vr8?mfVx#b6)(9}V_{f&G(tQ!aP_f!bKdvuX#A6AqFk;5fc z?78`^HXfk@$B=B#jff65BOqt@se|t0>r1`+C(rTAR=*nJ+{@%Gadz)|^GZQZH4Pse z1bnV9z}_tbtoYl6LG`SV8>;^JE$NOIxp8g-3D*kxOSfv>KqO{Cq)yVqNqlFNmaiAkNYu8WU>3JwiI-}7Gy6{QTpt8HTJee>p^ z0iX_WvEv9aQb+slh}+w|y87nIhB4ST!rwXZw8CtSDb2a*#U*|CUvM63M6sP8h-ry1 z%Y0)C)YX1^s)8FLN+E81UEvz0Ov$mrY!3#!yGtO>>$_Gio#w(U9(>B>>}h=Q_H5VV zn+4dQX<~CpSt(?kd{tFl(Hy)@a~2S?IEcY%S0XA3OPD^>Sl-XF3=7>*5_E{KA)TCy z=Zf<9cAIf_jj?kzDjk;H>%pqxlPrRZR7zw?#%IBcsXUS4#Uz_i+046VgVz!1;x*$U z3M11+q?6DQ=D_q&j^+H?@3NCh=koB{8Yv!Y&U02>YQ(Hn#+sSsW`4$Zx6?qQtr~s2C-cbTiDrWaVryRqh+ZAKLipXBB zg|F%jJh`V%7+7<<3;ZOJ90xNSJgz6d<#9tqZ_D7Hq_5`+E?{y3li&QVD7uju{e&#> z57q0T{|Z;F`!`(m5KDQ!lnRK+e74iSEsJP^=m3exaYux|D$j_^ib51pD0%S?Goh%k_P^#=o@^YeB>P? z@i7ee1dso1jKZ39s6dM}_;m7h1U2RQ&b*y@63Z8MyLqlh~6HoPPcR*g((D56HMlP;k>K`fs!nLl+ zef+2GHT5}ZgV1MCq9#lh_`Ju!zf#y1m?HaZ^y|squrDJ~qge`godWc7VbdUrtknpL z!AZ@e#Q%I3QiD9uJv*f)-I)WF${aYbj?v}{tnqN=Z!eNcDEw;-d2{>8=Rju&T4cx9 zk!jC_DYS3@CE@c8^7n=hN$%~!S44@H?SMr28~q*WzCEo5-)B7Sv}iU-{<&|bEz+Ij zf&leSgiq@UXpP!A`Rs^+E7Q!dB7)U5VY730db<=Hb05F>S>mc{cL_r84wo7;`1msA z6&q`##EtVldKH6bOJm{^Qnpe3i9$0>R)YVFz4wl4^6U1*QAF%WlTK7Xnp8!KKtu%u zgh-bf5Rnq;Ez~GQq)S(-2#C~3??k$Q^d`N7^n@Bh66g57ckX?^ckcU}-E$K;}5OG)IYQ=(Q1oZ$k2?RT&+qO+BW*DnX3h z{osK7vV=bT$c+BbNz=Hei@1&ITDCNzWqo2(zjf?scL-UL1}+fTQT|nG$F9W3HF$Nb zG&dH#Q465@I(3!(>FU%P>GRY1%x}iw%=nnW4R@FJ?5zN+;M*!OnhtjS7!ZR|jd@`H z%lubtKzIi--dc4yO0eisX~&F9EFt?-LtBXj@UiT!VTjO(q=Xb*KS zP9FCOFVKAevn;h=Xd!KI+}jIZul{!Qd}FlUZWB)oQncZ)(6!;bpI5BJlAYKMx#<|F z?{qWIy{R)?cg&do>bWWv{u~L{q8T{edDYxXCR)>ZMorM?5b6a5@gBV7=s^qV6QH?f z_3N*xt5I&^dxkCZ;|G*^7!GC5km`4@@Jn>OU0P z+uPZdwRys*j31h~F?T5o8r&d>*y(NW$h9Z#XfC4|izfPy#z|4lb`}rq&g%@_PF1yT z-TL6+WQk02JxB^F^SD!TTauq@Lz2eEgF&0Ct@6rF*M(Y-_M2ZGMoh5AUyTW0f+!J= z(iE-v$y+%XW;urVfxT7IOU*l)GC5-+*Q;!#MZ3r$GGBi&tJUzn+bw$_!uvWUw8vJ< zR%QH?&F=n;5frNRMJFdHRc3PEx`r-7RlB)bDNCR+N4>RKC$4;RI4xv$`z`qf*5W+k zwR}bn#pTseH1~Zfp;(^M9o=LoKZO!a2nMDN5G_YJu6u= zA?n3M>G1w2$VN<{sK_y%9-+qc@G!?}PMHJ^{`s?&O2S$iLSGcJsvUfNMJj3Y zkn6@(bOzQ*a#P8h69-+bH$7htsWTt($V! zV-j}e79>3gft&J~uFp>Blok1W(-h4+t@?$6T|09>Tv;%{QD5J=ejH{bBvc>0lLDQS zH-B$2V%5qVt`0@;@V9^HTqAsGRZ}}c$B*qv2A1bz&P@n~8rc|5g_)^1%p0AzGpo{4 zJ@U|ZN}k}TzNXcNeCJP@k^;$iW5TAmQ-l!gXgB(GxV|$!^2={D0qORtQ;t|u+ibe2 z5wn;QJ1l*dXgIz0o5FM41XluRYL*TP z!zC&&Pu%-I=f*JrpARfY*39f4f9Eu?LP`&j=xPT@IJ^L{3gIAxh{OR{3|&?2?< z6mn0wm*1ZGU19yx^JRA1#fQdcm2Z+qa^MnZRc31ym-`O!wRfjCvk`kcyHH6VU^<*4 z;&bQoTZZdAifpEtLlHq~8^)eV)75-wj=R!tVH_W8qMJT&Cs^&^cJf`(2a+xDagW*2 zQ|30<-Z!4EyQqzu;@PhWpR!?G`Fi0x*Vh#Xwc}hh+=s}odWeQ|J!}!oj%50EU7J?# z+mrHWevuW!UFCj6_J>1yHXO zLEfLU=B#4pFIGp#>l*Y7QxaQnlB<~u!2{>z6BI7YV`wbLB4Fl$UE&7E0@~U>#kzK9 zRB}zb`R^X~5tYM<7V{StL|PY|kRh|84E#O1qId%Vn>PL_AtsHL2!N2Hf{`LdAvojp z_mtMU*rKA#R21g-zcHD~UaT{7Y7=b9*<&LptcA27`-Gji7}9E9JeF`hLTBmhAX?rlcj~yiRl){gS&w!J?nBLfhL#8?&%;=4 zwU85fR~oJk?UC*S18VNd@P&v)>k-zM{qMMVC{>=>i&k?!?@{THI0WDJS+u`wzuECM z{b!kH$>hzi`-qVg6O|q}L7nhS+a%}C${Uy$g8jr{NVZ6jfuDGO?t2Z_H5Ve2yZxQW z&}8=-*aNr$FcsqcTI8>iyX`DmW#V^#jb|5CX0z1s7rp4xEtwW_u;BZ0{(gz-9q|$X zcT1*lNl@97A;26XPgfW<z>`$?>Uvl%pg;?+IQ2#O(~pK{HNQ{%$ClLgWb3bH0sR{47D6uZ^p z55qADE3533^X=#H$(th@`T9A*&T+-+?Erc4<5Qsoj>m?(H&fwm|A)9&3S2hqyQvv0 z8e)|!PAQj_Rf*T_8zATPB3R#lpDVtso~^4Cq>se-#gE%|6xk>p{_5>p3TY)Ni)RG3 zwz+b$x-O`zOf#}CSRI=9>=~vf!?Bu`y>H|pA|Uo`XZt|z#FTa5<@(D$?*&+j4=XuZ zX!c_dOk`n%_Eurh2vr!>ePP;MDuZLg=&bTsBRLa-Yb~@Flk?oEDw1_B?^d&pR@3sW zxV1agFXGS4By1h77X{BjT6<3*8g5tjE%pZ`3x!LDNmW-rJ!A93h~eZ}Y1;H6rMsiY zcKYW9kb!AwZN`yzYa7e<)&FGaZ;KO~X@b$}!%1PtPzl4DLtSZJzN31M+O&v|%6U(% zYwS~Ryf;;2yX$ShdH3yw7mqB?v|b{{b3eC=ZM%o=-Y^CQ@)e7hx=O|hBsux~Hb&&6fL<4(q{_MF>ytf^MaJ`kyeqD97z z$>*1j#fdlYT-fxvhFUCUfoeK`78TrZ8T&ckDQ5y{t7fy$L8DmlwK}G+qlhcnBVla% zPQ2!imy*{3sbug9i~7rUu{81cNB8NHV*&@A$445%?A*b*)<#3;quEh~4zCIe5tTC5 zmF09wdFCQ;xnMQ#Yqn`=L58sYivjoLn&tj+p)qd&&kcw`Js%vL6KSW9A~<0)+R4UT zC&4Ma?@iy!yP4}ft>p_pN~a{(S?=>_7Tmce?5U=IF>9;hF?62GVN8-7!rKmMhGBEb zrq?n_reINe*WmaIm>uR$ngSM;Wq^>n_mZJPeooDHCx++A@=o?(a%sT`y#~C z@MXw)5heNcx-SlNR0Yh85t!#Q1nzWp4Ax{0PPPV(sPv1WyM#nCrN}OXu$~BR5c-?K z2lXA?AO83Iix8QR`XCR*3LV~n5y{!0aaI?xndH{>n_{IE)c{?D;Aqhspcd(2>_Q^> ze4QXDyS@lnJK!aw07uw2OR_n+X6ZM@?mT7&vO|M^J9?lFItr`c!1Ywq;Dx^YCJJZ+ z6wlpbo+upo&hrei8%^c z;9PYPpu1Wkzti4GQ-jz2NyK!yXo&ZmPG9O;(cvE+Ko zb)P$20ObUJ8$iA;Ns0x@#Au=`5SivYYKIJj;vmhmKu7Cp$**ycBi^G(p#MnBb5N}U z762r}DVt`9eR?9n#U362F;_3qhgzQoH9q%#rW50U`q5+1Kg%ydJb|qQ4o^jJXiYI-3&Ys zxl)bhywz_Ct#k0TE%N~;!}U(GiB}@nf0*6nN_aVE`ZXFNyTkE~wDhy`GJbdDuYd)5 zH4=ySW<_tZ+icoDA3mP&4a6@9uinSZFp=*=@KQjXZKydd9~bFfh#9u{V3mX+Az=Hc zKWl2^wkonivp)k|^pC*7JK_TD>R{wv7JgY}9s{59-32))lO zQmS2{g#)XRZOoX$JT#P*@O{f-^isl(0#o2#+atZ1hejb8!@}n$*KBc(4tCngRD6;@ z28R(vNh0gM`}9`#?YKSoDEa||s;R+qmmrYjF*!PJ z)d~7Osf75%FcFzb?3HnjxU#09+NH=@K7}5N+IB>+>M6qIC!rx#n`-%Ig_LmF# zD$mWl+N&2)NdLyknACsaD?aS0cegFqyqv2sH=Uuulnnqc45W!&W7-v9{!}gydGWrg z+*HF7$#|`K<>^zwW9d#!Jw2yNGUNeoBW`E53SN{AZVoh!OOvPM2C&+VLlKHv z+FGTU@dg6vpmMJGSC`b&8soSOt>pUp<(OeqdeL}#hY)GP#Q0X6;-jH<`;SyjsPhez z+n&nX>?tu@Ev58TggYj(Q8M~rwua@kCY|QR6JNM0QBOL*MdH8l7IWB~vh7K>PqFD# zmm2?6XD2jH-Z8quRaX+7P-0HIxuAy%xStSqqI#=&t{Y2=o=jnjo#^_9C1ai!8i!UmxI8|-qC zdsM~T){QjEn4m|Ut~S}s+$qo81Z)l9{23OTo3b>K6>eXbLpAw}jbWf|G; z$oR0m%@2;4OPY5iw|$n;4rj1wOK*1H-Zs2DxsP1I8x^%K-}bwSwVQqN-7KxW-SGBA z31i&{cr$B!ic#>zmGuh@kOn1cbWmYn!I2|2eq%GwX6it1VCpDpzQgjg=CWr z8PGl~>|#d=enME&EXh2EiqQ;z*!z9!@-r`&?m@@z`JTwp%KkDuo+E2=USTFd*Y|t9 zX|9|}^e;eit{ZHs3loiR0nvW zUV-OJwj{+tP^oiU{Vq9pN1`yt?&RCrje={oum0*T{_h0IE<~6*t^T94`wy-!>SH32 zjp;W9-~1?aW66&fR0{KBJ8Nxx)CP%>svyfus>5g#cp1wokJ$SsmKk}dC?slqmG=vl zYW{RlAx3MGd?iCxhMiogruZQpxToI z$>=*Mux~8@-ybYUkXQpPyZ;v$=pQQXV*0CE?Cc!P6_@lKt`bha^sJh$^2H zWQ>g0Wv&!vE4T<7vUxgee6EP}w7AdtXu*@oIb*u<>&F$I2H`E&-H0Q87GC7P$F`$`OyXRHWOJ=%vh!IN5@^^4QJ;RB&XHU;oxWI z(I=n#=qD@ii;ua-$?wVs|YMI6k<(CkWl-DD=3qP2`X=lHLI0!lRDycU<#igPI z?60z-kn#hGQ9|+2KFe_IN}T9d8>n9jmo)lOzJssH_DsgL0JU+{K-Sbd=tAe@EZr9) zGF19!PgW$+YXrdw1Gl9Lmdon;H|FT-!)sE|H$%7&?~Dpv zZ#}c)FKf@70<5<5?VR9<573ZFeYL=nqi5F7s`OcIUb-P+tNNMMCAe%^Cu@Our&ZT5 ze+`ufc_?!6mi_roLEIHz{yJ*9K4bx;EX+UfMke!@)=E3Gy@B5pA%_jcxb0a?FrX)* zhvTE?QXzVSMHkD-sh&PsYXeKV1{u**rREh?sQR>f?OtR=CpoG?6sLFkjZ4!sr&V>2 z!AKH3jfU(s#mQjWU{NS72lo+V)w`!#VLG8+8W7kp@2k)^`e86hPyz&_w z=F;L%4fc5ft)#XgwXvb_wD-t;Eh36?_r8jW2G`rlC-=M9A6k4~y6V7{v6w;_C6EkV zSM*%6yEn3>RoSR?^as9F`urFu;#Rz@wTBExrZ`oKJqIgg%f6m z^0k2d=X1Kt5)u!bAMpn+F0ZaM&BjykiRa#vTCn$|OtIqT+$*%Rx8m2$&5?ACnb;z} z@%?;wij9RqGD9K7S7ARJwMq}8(UKfqJ4VF{mQF85TjTe{DNv$~%A@ww*{9Rmay$;9 zyKF1ACZ{6{#14}UUVH9+3n!s^_-HJ&Yl(`x`@mHaecC%{5KL%(@YS0&b!Hx7Jq-PI zCLJ#w@S7rhpieGBV;eY1qQ`&QN8Nh_Y;+fDkS@x+cOY>W(@t#OWJQxG2Epkmiozw` z2E!huFOba-BDBe`qJh`3Ohdk<^m@bA0~K`?JT3tzoX8^t+hLA`OY>#Q=DHP3JxpZa+Cv5}Cw0nKNxsd{xeOm!=rVjbc~uDb z3_N6s?)@L_N8a1^m}TfjXB1+8orG$n!CO0A0wEwwK5AwiPF5?FuWA^Nf{q{hjhgzC zf8>wt5g(9Q*_ttXB5N~;gwfv=F{>o|bl@w_f^(frN$$!Y+u!a3H>(4_)_rmzFq8^W zMo`}ab|F4et9F+kKBwd2wi?i0 zXwdm*oYkIDbI9o5G(?Q53mvktN(Pt1FT8_1R%L+J?$ zHtXa{?V7aK>#c9ElDOtowuK#vUes4dZwVK%q}+2AWzWVNyO4UNqb+L6~n?OHbj+}Tr5mwOv% zG}_bA90=sDbCLSyAWkBi&)4X3v5kP~A$MH?uqi4vf2{rF&3mUL6EJvnACl%PW42Bm z{`n}Ap9fL<2XnSWe%2*8-1V!A{`HUi!GP4H9K9#0QaRn-imjjXZj{;f!fJ==m~d7t zoL6GlRF)I9`iU(DLc-j;AGkdc* z!N#>R(0oFw#VUomo6(3WDsOFp3zj^iv!W$&BT;D6Vq=B|8K92i3G|AL@Lpxj6(GL+5gT}0?W&sJV8!wZ%3DI1z4{2x+# z?(>C%O(>SMnd7B9X=_8R6&vP0oXcAdc6k1VU#Zd9ldcsb+R!(=jQkJAvpXkQz3!Tn zH>9#@96u!iFVf!&57!>J9rf1mb79Vu&A{Z$uZn)5NxF$z<%{LR-xIsMtplTT-<{TW zRzf;RQI!U<1_{$IRe%m7=i2QvDJ=INdG@n&{)(-qvuJH|P!~s0MMQ zk8rTtEZ-U|CMd$^A50NSkBYZQPd}Bt=^aY=D>U!Ky))iV4$K;)P$7QSBwbPnW-;0} z{Xh-@Ay{FTP_^(P z-Y?@(EYV-~!7PbJ9ea#Of`p{EK+Q(yu+#b1ZA5ZbyWO13y-|#9A>Km6ts@yZx1O5h zGU?Sk>1q`>66Hhm$Z_>rQvhd7(l3>qN_avIpGTj-CpN|!DHn~Ms;pIv86k994!N#k z(^vHl2!Ur8fe9gS#2OU$Ht`NU&CQnnm+`M|ZxSi#ic$f6UXDUPQ6b;RaB2+ccYJ*B z@mJe-3Qk$Ad25%ScI2$a+Tx6j-s>GKU9Y5TKWMb7&iZ)C!32wbOB6ULMut5cc6IS) zFMZmOY2jqUNW82elwDntppG*!Iy+`TKhZ18^WkLYT->`0tpE9;dkjJxBT+Ro+Z4P6 zl#G)~hY9bOg&KMyKy$9D7bcrVw)NXfIvpBKkDDIPRO4YFRAEL+v#-;}Q38{x^`iK( zYJcHA^b#~kB5YIDb#QZW_;%Pte!Xai_j~XT5_*$)TeEGuKBk3g?y~+d&+#2ug+Qct zh!kBBe^0rw`eO~c@U?2yuw0GcyP4`03qR(rObU4vqTNB>0P-1jRwvCV5%-*5s;|j> zPK{RUa@mWc<%P}XWoetjh_a%n@5RSZTg;vuk_He25KuWJUtmI+;zOkve+)#j>MU6y zI#ZtSmzR4O%@8sEHrlS(4moxl=aig7hnp`dQRAR^6nXx@WSD5M5JinQk=2~DGvEJB zLHCRB008(&<*j=Mqm|L^KK+FSm2`Ou<_Ecp^6-RQ`nxilr^xyXR`hdHR?Wr>p<)u| zK?d$dZ$Ey_%2mqNfVq`_iYx11BOF#vI6^PZBhy26i1`=tyj9mQ zVX6EOmz(2gTq(PWkMZY;xT&>Hm1;@%NiBVcoDA~(Qq|KrDIS;mD;+BVTn4keZnwm#qowDu zJ~aea*)#rU7h*(x+hyrjJLWODqI z>W{Um9=iLwk2a7Rb~|alLC(^?!HlF3J{02cQG9-!`|_QpC@*pYz!%15-!A-Q;&b4Q zdZdG=oW)Al4iiA!{wXy)3zZ7B6oJ-rpw<~`h3mm0qUWJx2BrYa$}R{hVfs+Gnsjqt zWBoa@lE~W}-^2xi$hsqNjHza4j))`B?F|UgJ}Ms=R;a}c^4H#y&Z{F}p_v zsF`0-{1j*NaX$8M$%Ln$YeZU-CT5ibHtnx{5SHM7sFn4ZEupf?-z1#5{kG!iJyeb7 zDJ!{r1g{=PqR>V{!roxcUe88Ol$fzx%53Sz3lmaiqINzN{8DbN@>nkSHk(9&zOH?{ zi^W_jeN#-gN2ayA-m0vr$xsFErgmGNN#m2Ogut>uTK{jZ%r`Liz6~@kINFED^Yxq) zOinmkJ5yM+PbASCIDGp--LJjM(%2bZg`j>ACW?G{Q|xw5$Qw2$r3wK$7;WIkJgtMC z*sLYKs%|0S@=;s1N`(2%cP&SiRaI^kW=|NO^)+P|2fJ}sNj2LupR7B=`tWFv3q%N3 zW*>QMAFi$rw11eV*~m*U*JJrjal$FW=LH+1mIP0%#h3fB2^<~Xruu3zny%M+xwp_8 zgB~zr6RV~qkMP?^79)ipkZ8LhjCP=1P0NHV5n%QF-6&3kIDvI>t~@sThR zY?0~LikIHisZSSVKA^gjwK|fA zKC5~w*5SiU;_?e5tT724y3M7gbEU@Bo@y(@xtoDjY3qv8<04b*QKz5O7bwgGyPGxh zL-hjL983Eh959t>m0Ku5%W7qMrz-+))B|(aM6a!%9^3k& z=7b(w_AET$27l*=)9Eb_b74 z-kkt7H~U)1H6MF*dlbF0+m~B+J_sdoT)S)^agDREYbLJ{)1Pxsv#$%yDgG$6y?OADi#D?8LaC{m|-d>6IVP8F;H0_dKt7YIC!H!EZ!3y_jr%3$l!XZ!USlwHOFQC@^D;}*BWp_Mx-Rf8 zUb;DHRLf>!yJmItK=ObWTU0-X4m|W|;Cgewq21!gGc0l=N;9^*j#lBo_l`u8-iv1& z2e;l8Jy7_e_@qdXYz|s}95R`?M6oS3OI>*E__W?EegnJOF@tH2yZYrZQ{-WemgrYbdIK{=B^)Vhw9f!^>&iA085p=y zF;LbmFlOPu?7-K>S30=YEk5=lZ7!9oEOc6B+?rKumhx7c;W09{g=zG=yG^mW#OL7W z`6Ux-{buo*gD-E|y}dkcr10Wv`%)`iZOP4&M}rp^DHH!f^Y@<*=5=x*d;n9I==bT? z%8*^*;Zf7#OS8fy130YXxN65P-4VL6b`XpcdPEjWRU<5Ha{?WvWxwLbU zok`sXqhk+^eGEts3YP;;MZzk%v(=*+0EkT4ep4jU@5d9-Ti(E@o2hJXrpGNDSm6=_ z>*R9QYNEniJqC&Jxx07aGzdw_#F~mA_dR4SSI(tt!FWnb9RUeOIEeAgYlZogyJDhF#!@ zHRG>-@$^Gm7B8!C)~bMqs(?U`@nOT-wAC&<^f`PyL<6>QjC&QnKs`6}wwPe^Fsds} zzMKr|N?N**LhLt~(j%Qa-BOXmahzNij&zQ+1N^2;N4)kobII@#Y*>p`*EyeC;c=ov z^`S9AI(ZT(zv<3(<%)_eKagQ=6#Gr_LL?;Z0yue{aJ=)C%~5Q4E)A@5u!ChE&08W{ z(dvTcXgLa>$Ytm`u5}b)k)!6)aKj%p$|}#T5HcH6lmpt-Zs)Sb z3-q=2>1k?U<0bSuR8)j*)Nc%`nb7=#Wm*Lrt3=}iUiDT5^Pq#8&23~ZMHp(AEgtEY zuf$!CFDy@6*}KzlV<6P!^w(M9B09LdO|MtV_$TojA-dNXz|~rl#*FLhWff(r3~3KI z+s8;Q)LAK3O!5u|++<;dPhIcchi8oJindRd3zgFNNBlKoG=#-`!jut4z79W$<0Lfs z#58`z6hcdeJVnSPpykT$fSgJ2C+t=wLt?}Wo*g$M6*ib|(q;y-Fz2L=3ZAaRqR zj-*d@df^m0-@w`Y%<27x-i;LAgt@O0wnGtuIxcx@_qQ}*380&zVLbst)rEyDXp8b= zljk|7GO5Y594{$5I#^1yl#t(I`@ER55OAAIFOh-d(rzh#XJ7L z-4#p%K!-6{QX+uKC}4>992ii)VtP>609x=sHj^2kZQBHH6fFw-ZWMELG7A48{S@@q zlA{M1Qu3REYzo1h@X-VVtATKA6T9+n3PBn?NYt@m03JmVeDnZ>NfysR=U@0-25r&e z8)xu-0DN(?sxzk*r{ydn-hl-fldqlntKDmZQ?NC8*x8%>D{y{M4 z{7F2B@;*#(0re$PQDi*`HiImQ>gU3Tfe-wE*YTYJ1$6lrsg$R|BW-kSC`=7 zJxB=Hz7Vi|!Q0|D#SXxLT~!8JR9fLcEuW{|0iQy#O{k_f_=!IdvA^hFde(!)?)OLk z8O` zK#VoZ13BWr2Q6w`;q+f-7>g%&WrPWb2qE8<>IoI ziZ{v~lEVTZEvagi(wU~8i?LEJGShIiF4CAz^(S5sHex(6hQI0S_b?Vh1VAQpqYxCR7_Mm@N zb#?R?kz+3v8yhMx&^WNrz?2h`uf-s`H{$vF%er2!u&Sflc>8q9cxZ`NeNoim%CEwO zM0T9KWU;gm5!H5eXnLFTFY`9PG%u-Lens9wNih8gyru%p z#CEHuU2hO%d~k7tU-of**8CUQn-;w{Rg0FGjmC-)25329)JvyJ21X%ZbLY=W`R81k z6=#Q!iZMUx%YI89Y;KY<%h$*c|1#iHx$-$)k%v<+CMNa;o(2bRNxBya3nWVoyQZoR zZN@;)tb2%>jQ5;XpS= zE9sSzIfj=IuNEKnJ4mBFnrIkgMHkivgD>I$WnaAU0_dr3B?YlF&6?26)=0`*;_p7r z6H~92FKS_&zMhQu2^Qi-TAyFyw1m^BH^&{QKLdRngflp zDyyrXRu|vr-DV9df24Y;+s@J(#4iIT5Rb4T;dSmM<4BKYc|n|PbkMY{WCnb#>jV-f zneJlca8vYb96IiK^!<`sW(UO5w?sp1b6~d2hh8?vWor5}xm}bYKd`O>$9E-Jyoa}K z5H`*mKJuPv&+(Iq;+ZW5WJFl5-bM2-W?bA~x5Q$?=jSAQ`S0E}@VSFQfWX%V8W+`? z#4;cPSlbkX=3{$H>k=Dl_7d;x_)96OF(|+K(%kg?#Oog7ETX4Ab_Ml4~c6&n-cV1oaP9e5(-oDnc#KAfnYhR6ceny(YFgxR}GDNVOj~&<1 z+l*@Yjt8$-Wk?VPy9-`UODjh-@Wx(-d>uEY(>QMWRZ?_>`wTgi=g?g)sq4TGU;g?2 zJDZu)KHe4#&tG0?I6ItSNeLCG(>v1~o01Yc!ENl7|M>kQh}(nnuB8JB%o}BzAdp7?yUco!#%%^` zIiyGkcOe4xe1VC)VAazgNQ#A8&rlnh+InFc)8F?0I=EWjlb1#_n$*Mm>V=J^x!Ge) zrBG7??z8NV&VTRxn6&YYbX}I|M}9N)tA&kV#;}w)MplD2bRNkzd^xOJgtDTCNy39Ij7m^Zt}6_CxrY}>~x{W!rMLN-LxG$ z@g5U#{ejBb6Z9cMTgxz!jYCm^D%6snG%2Hj1BnXmb}q;;uSyq18f#n;%TCs8x=E$4 z-jr&sqSfN9v?P?sb?7k)JM{kLGLNQTlxG_JjvPE2(n8XR;IoW(V*b$YnBA=@pqjE; z$)h2+I9v@E>Obz7U6(uGNM`G=6Z~BCaU_W++}-hrpjX6`NR^$iywF>wj|lr<88dIg z5q3MKmSe2rH$_?$Jw8?j#}rxGbF*z{DEGsHfPP(ZnV^c6bKTYD9FH!JoAU{&cjS-X z-m1G{lLX`7la`5fh}q2c_*7q*UAc~Ncgwy0J)_S*;!vftl7#I%gYGf8k*vN}hbFww z{goO*CBbQ0$?9?CebZk+Y^UVDc#Fc>p)Hu(etG1UnVm=Fuw%~hDAFywGiC}sRthMc zxqyvSvMUK5LiTH9YhMx6;^Hi7T_;gPL_^=!UcRd_(nr|oXalWFXqTu<{F7sc3 zi2r$8HOPK@f1=F&I}1g0`WJRcTai>!u}|4VL&s*``p$LKg?dU`FFy>)3sYc$Sy>=L zzpsoEs*?4&prXu8rF5A#+~yijE~}W`J0&UooskwDdXN}lFql8$WKZW?zhqT0KGEeo zchui0k6LP(6V~ECkBsrA?)*xhc zU!(cl#f>@U)m?ac;*)b>>G7Uz&Xnxov*9b$r^3VO#4qWG+E?6St}o(ZGAy%xnKzu0 zTGr36R#{lDmQ`|`=iH>7qkWX2A<(*F#-VO#41 zOE)ECZpAGW7!9hwJEbUfMw0TK@=Gs^6E11_;r-|K7p%Kz1)fYvcp?U2_!C|_i)-4= zJ>|+<<4OMU$+aG72}I>r>8(5I_wF&Tr^%@Uh>Z2K6wfPGx{5+fTotJW(NQH~euKw% zFt}_Xmtj1=;0k2NA+sv@^=VBozAHztb|1m-`q*H||gBlc^pMhUDSf z!d1~3ybIZ{>ywKqHM__aU%?PhNwL_Hglc+&vHc( zFJ0SA-|a;ctD1=oy)zR(V2Q^drU95BZu>q%?H&SS=XE==eRF2F7eKv%YktJ(PsGfS znEtk?|9uSTvIrn>NJHVdXn=c4BGol7Zu90?k~5R!Dz5u&%EaF!3wsSjn z=iRP$+;?)Ew!Qu9L9}n@;pmpY^!U%UE2CHRvC7_79;Xs2uk3#6Vi?(Vy6M1jWMEXq zmHYi_3@kftWeh_z|LYl+`NLp~`MP$CX6^+=%MQIbKv|}jie^y~vOZXM$)OG{42}WO zyamUt@OV8ykOmuTu+#D=RWmZi`%N5N!CP73{2&mcufUa?S?h%7K_(j#-fW0t zedLj{sBt^D_vmq>hedd_Y2qcP6z5?>yOP9%RzR)M zf*WGXg!d+oZdm7PGqp^N>FCcQwY8%LPI#-kY-jU<51#(>W2>)t_1U|gVWr#fORHNC zDx5ocUN^C)-FbCl(IS)t5hJJ|2R{rrwjsk>wQ3NLed4zp@>Gb2a{N}(Weu|G%Imy% z!L*#utE}=7CqdgHyMzz6d5m@ib{YOB+NifO74JKR(`AJ_BEJz=ZY`wU?#+<-P~`jJ zMNF(?ypO$j*}BxkteuYOhL?feniVPg{m@|o8?7M?tUxJ?K^w4t-#xB(J>Ifj3=iU_ zoQOoxtilCZcWgDXCcbRv=NlgG+LRHCW`69h^&jjrdOlk^SL|^ha#2Yu*2_S>9Tt1} zqzoSfORK$^P9&o6GR3AnsNJ0$@|g^h7R1yHl$P!Mcj zCxEY>tOGMd1iDl1uzN`bymva&|NdOOd9+EO!R8)Bk^N9hhBM0|R?wp(?WOzv#CMmo zjefwyo|_bv_A7MlRl3Mxmv|``bvfZZO-#nlOl$AY<^y|tFGCD|a4zy~O+m-iKXGL( z_@#9x$o=Hq-K+U?0jJn+v6q3qc?BhBAL&aX9jhq zDzdroH-w>P{T%#iA>q&D1AWe3&?yd+$XnnyQB>GmvP}}HI;NQ&-GCp<_?)t=#qz$o zy}I9rfriv6_0FsNq^yuQ51)uo`3s`DIAlhKohikS0^Cq{kr8{jxTuydGVBl1^}Dd~ z^tK6?vgWAI3i6G!mUj{p(mmE?S!Q`pI7SJxrd?t*TC#P{O21V<;n7eygRxlKkFHqo zFkZ9*G^?9E!h9EWn} zME5e4g3e3v@i1)LvFZ&zqhx-;6X`3iut)(7gXT(9j*8KR1~Ktv6-@2>p~=h>YgNp? z$rxn^p&C$*sdStM%aw+H=*S%PYxu;@XQ}+9EcD-~5B{*gUp~m#X!LOea3*3uA^(^j z)p30oy5Thf-Rqs}{7vDGdC^OJA3j0u`Z4pH;)!GMQN|vKAI8SM2CJyLe*XD?2)8x=fG>Q^Pp*DE`FbkoKOFlKPRtB5{!LLDk530c*PLd7&1{?qY)4v<2szjx!G5KH z-1nl3vcr3wI0lN5&3(v7X~H_W;lYlgG9Hg2970J_em3MO)Xp6w4Y{@Z0Vv{%fG<#Q z-Udkii8s*o7R){if# zp8dB={%cGB(+-0FlimC8&w;<`^uM^sQa_OYYCK1aQ?zNG(C9Qyq>_5WK}p8m8|wiY-E1+0aS*Gexo|2N*=JF3ZS>mS## zprWGE6qJk#A|PO)w~R7?fPfT1X%P`=LZnH6kf;bqAE`=_;$T;hfTp~ug*1q80<%I zgSq{la40CBahCi1_YZ%%6+-4-j!dGm4`HW4I z<50--I){g8{NY_N?w)Yc;2NB&b8$%^@P#`9@ewTMczfk7hFw)4Rukg$lA-?hz7Kxf z41W&pcwNV8Of6jXiNYhLae9zdl3x5=U*zqCUZb)2+Xcz-dsP;_Q>y4|DO@tcT4^M)C*_lGK3X6 z-%a!<7MslALGQS|8s!E<{-gXM`K>0kDumB@vB8YmgvC{mE<1vT(~Ke=%d6;!;4-5_ zU5>|pvD61$yDNGu8&2w=sEIQYVtYj&PyceM{4V;*wmSBg@ETd#M&o_!;#AlA&3kT^ zah#5GJ)!Eyq;4rxWfYhXZ_EX1Uv5b?tuK?D9ujekXbUVz%?PW%!MJ2x``NExvRzuB zBCtA@!alnkL|HRH13>hX6X0_F`TP`l;wJkCa7X1(hhPF6%4m!)beap?-mcj?;+O~? zqp2krEtAB9?UtuGLVLWIA)QP}EatuJmVz}uNQfXp>E!XyZwMA%3VZP77vu&LWEv}W zKzzP+%Ufqi;6Y^F!8C9VUc)vPGk1YrMD0(=G;rnrj*G3$12RHiYr5bxk_fK#GmuBL z2*@V6j(4#S%~IGgI&6K|BgESMN^n`Whs-ni?Nww1Bu?HWTO=H3LS#=ttFzz`j@201SwUUD*zFMRk0G!;9FB z9S=1GbNj>p!X!}325j>?lK^cg)LC{~!+)SS4N_zu0*ITs2@GZakGuNMeERdQdN)-8 z0O>Ds^z~0vr?QdXkVS`s8ad>_538W0E)_@s;MKn!^*?!qU-1P7i^4_zn#{Zen4$tW zc)A-XP|LU=M_6VbpqDJP@ST1m9P~Fig0Ua{TZ&^hZUY*SC$JpBmtU|OO#lBR4FD5X z_kAazB9QE*F1BnaFx~%NBRHTl1hx@DheHt`R>>^3>d1el*!R6hih$%0kW(xb4d2}M zZ-o>ri$dG+7bzH{d{ZKA_P%s(tm9sbLI zeUfj>y8Ro$eixR%DE6O4>`%f1EY1t2H)Y}9NEq(#)&Lld1K&iT?wbfyeSriU0KyLl z8Tmg7nIQW&B?Z55fi_G2^lv0n<2T7%9E5~^7ap(Qg$MJ$n^VrG-!0D|WKZqIzWqU5G< zVFyz<(U1SLbpz?FhJVcU-8+2O>Zt$Sj$$|d#azkcV(|R^-@254DR%$KM$LkhCyf4A zY54k|xpe+t$oT(HlMOwn|*NFAAJG)rdR`J>MyLzdp(Y?uxd!CuC* zn_B=Nb{#7CJNXr8NaSYH8U?xlQkaFm2M`1{P{a+}ze{8jY)f{PL|zq!eFMgRk8Z#~ zh<6JK8WsL2yaE4__&vG-U|(|Q7WTt^>?Q&+2Y&1~7mefsX7nZ20Mw5-@dpF-%^<;{ zc|cGEkQC$ZS7fT+3`g!nDD)nG?8kl>LU_)q;F` zA$#yg+ZHIj{dXp&pj0c^?cZ0s{4e%6@!iG6a0E9gh|Q>&?@;6KUNi*-t{V1oz(0|u ze{|TwU{zoW;1|K5A&SvvbPR$OI=J=rAHH;?Zj?NO=*2Qy{1N{Mm5Ru#Tp(Wb$2NTa z7n=-(gJ9#gD61j}OT&S&O`zB5KSLkDMmPxO&H{&rOeE>ejkHdJpqF(`u<@Z+{TwEtFl1Q z?Eki{U;mHMEtb>wO(TBe1K7|1#y;#nh(chW2ClglOZ^_90fa5$OCWqk1^x{Z{hKLr z8z1}oWaQc3=Ng27Q)0a#|8ufZK$1@Y==%2mPQ@kijEcHHmgmjy`cwNG*P3MiKzX1C z#{X0x;BCRCzrol4PIeGdeV1lFAb`Ig4E`#TU{T%ky-d4*s=;o?Kh%Klj|U1s^HC5z z{+(B#1>T>85d_J<2_sODKZJDf1}2&IJGa0U#8(x#FYRBf@s9yG_~q)~H5Dx9)nCX* z{ue^{4$P$aEsFZisQ^%K#T)w#hyEA)lk~@f$TvRylYYpp1OH-6gHR=g@At)3fW;_o zU^|F%ta1PZdJV5#3y34i1kP@JMavdao=LzqR5 zSY7(VSPB^XuNnPUe*J+S*pJ=;;Hd;iLHu@z83C^njAlvX^#=C(pUfmSl>UcdV18gG z0U7^s^r0|+>4rqh zqW%p=*N#yHwZ6@h_{;yvdyx`OIQc`4`n4I4V*ELFdiAWgrW`}N% zRq84p{rH2?=$FT_+nNn`JKrhhO^(cNn_1LLnR-%&Uur5#NGltKzpS1ii0!>Ks_)rbk8&rbpXa-5m+Gm##QHK>6#M#l?L6Ps67ANu5&c znp&Q`x?P%w%=ozuJZg{>J`jD8%lf!)UaGaDRP$cjR!^Or7`%tJnTwW^X~ZU+>2bC0 zM|va&bqt=kSK|>(FQSswdENsvw{dEn6+Zox(|@#CZ}FWo5}a`J!+PW1ufwlk(ze5Y za`LsTtkVg!7ltmoAV;qoTG#g71pI=PX|7>e74>Lp7WBgj$Gar{?cr# zLjL~G&a7ivE4CN(7Hw5VJTv#0Ph}cjV0>=XYgHf)>cfAflS2??i1$2EDk1qmv@pU(uo6GZes!pqV)=4Xr z)Iz>If7^x_H@vjAxX#W`f0|}VTnoY*DAKfBWtQq=pYle&s;agT17Y-u(viNkq6i7} zg%I*+%;quBG!8S~f}!BRRhA z1FsVAh;-QJnmC79@MS%b!y7^a605E}K5m(_(+`fXeIXxH^XEt@qUO)`8ZWoPR%H67 zo$B}MccV8B)?W084J>Bo|D2GZbJVl_Cabt&N|QJ$zh|{+*wTmnh^KGI(&cejhB^b!C0^)EoM9WQLygb98vrjiX|t*EfYH`yQ0El||Zz zWj{`^B18>jO)Hj%8zA(pN;F0%E3QqZgO@RF$-zG-a8lEV8>g!+Iq5TmA+2}4QH1QI z7o>E~1&X@LdWZAwO!}1rAlC(-GCQrEmvrt<>iu-w!0X%4jx8Eoqi-Y#v0nhZ2xFGg!nGsa$MR|#`^5~Jo_;` z*k9shYTK>9SE%Ea-aJ;CImP%Ex9sX1mZrt5Fp z1TmuI5DiJx%wR*3?NM3}3TxeW5YH1%bnW2Q{KZ8e@!~8^c+_NQ@qO~RAI7ru?B|h6 zr%9@Xpau87^SQ$SnFU5NdE8bbLGqZp zApf4TZ6v`1rYSmpHyZOiV+~pLvtkZ|fkwTou3@S1U7?Nb*dPn?agD=6Y@2u0A#Gh$ zhcAtYJyxi#xuvB6E0*fbn$rrUu&`Yn%{ab_kMFDR7koUWbg>aVB>7amCVRoru+>6J+AfgOn#Fl&OzCA_^w zdw$(G+KGAbWwuKXA@GaYh!y@QNLU~6Qf%Gjo-EsE?Ffg+mV7-W4?^E9>(QbLDh5mU zG@aRuMGtG;at4L9Yyyphm`yBA_Fhi<+B2W!Xt*Hh1X{9ZsS#%v*MgDhW-DvtbZ@(B zAk@4y?Q`Oe_vfl0gOX~G=T+LS>E#+hu?)Ufld$OS2ul!DUmZ}Aqz5q)O=4?=pPGX# zv@j_1=;n%@OpJ@q@T*{$~un`CLMr=bEiC(BOQ}n(UM-4v^ZEGQ{IW!0{jY@^%l#sk=v<6Q4i3Y|Owp$y8<(RIdq~Hbr8X7iwcTnL zCXJq@AE6CCBL=9>SDllVDJvAT?O*HAG=1XA3dlce*~a}?x=m}}r4JLzvU@EPCFc(1 ze0ERE6wF)3KQBKMl$EK}bhcGO%puQZOK~bdk#Nj7^}NG_2Osu+ek61LBG>gw>4qP? z9SMLk zJr)P?;v;OG87WnxO=qA|7l4(m&6b^FAF>~zvoEoq!LO)0ZM@D_);@UN(BQ0&mFuUr z4FcEeOjlhcLPRDxgAQ+kG0!3va5N+%jD}dqr*ltee#Hv2vAL+zS80T&Mxn%!;yeml zv)@#kma1t+e4AuYE|iE@QwY(IcrzKwxf>aNJUFp0+MVv%a8~Q~Y-hI9iWcjw2@>xB z>KY@THJE1@`i$1b1;wlP*Ai+88?gI#pFGxe zKQeOb?(xX=okE=jIlWP5>o3*#FgzYwx3Ta&^LK>G{3z1I4HJv8(Wfnwop2bvQ)#0p zMeClifhh`ZUtngBbavY;-1;RRk11-eqZ+&biONF zp+AE1WFyvpX%YrMxm%-ho^qmUZ7RC3i-qZwDKp2t zq@QCGHl{1s2e2nSdV2@yBcPL;9VY8w%?;B8i5vB{e0>`EaQDDYcqn_b(9MUCo*~w*oh1!J>WWJ!74p`Wt*))|?VmhOQ}Kel zuIIHR4Jq|9+RZoZ0}#YQ(73?5WGgw}p^La_(PdD!#=8UL7iN1`xWfBo98mQK+Yug4 zi(l`~ot+gEUa0L8#t@|or z`Z5;eTR?r#AfPVun|NMj+(g#?ypZtZFtcp)$k^+JB6{H(lOEL%XQGn(z3pdW4YVppZ&d~q;(O?&`;86P z;;zRh$qR=1#vzB~2Bk;bkkx(0@l?S*o#>(s>y?15VrOm1!;z=UO!StP+O_igw<5L% zujg?6*YSnhm2%?ZNfp_pW!nsH)=(|jDdM30l@D0M|>K1ZQ z_tmWb^k|LA-dBTaHV2C*QpiUd{Degx4v>WCduc_F?-xrF^If*k_jd+7>OJRk(UK|o zGW4C%VRIv{c2+apWX8v=r{Wwo;@(DYrM> z7y?-Ts=^mM^wX_`BfAbd9Y#$ySt8!6#_%Ih?%OsLHeiQpR6WNI4oa`{72p0iJM0^= z_Kvl9>mb32MPSdD$&)WDZ(&+mW4 zZJ=)TN{wxpp3I^+qpUpNYqOaNL~R!wL}0CGkDf)0GFzMjWc429+2BR=Rb0a=)ZC** zyVM{84?H-k)rPo*a&6p#g<^hm(b)U^gMw?pEc}Q(?ogdrAFr*o_3)EY@7q(k-3{%+ zck>OjkCRqs0&It~`j;G{gM6fFPK;!wBwZ?*wi>Ce_FadUz<0XhjzHq*AG(Pgub=u! zTx@H4OoP4HOqh>IXwe*Qe~s^(ue~x|l8ZipT$U;V1;wM5XYj5CR)~T_b-wopHhjC~ z=*Ok5XYhwu#3!am<*WLFkWZMmVcn@OUt&_&IKtN%;W$lR{|I@*$A6*F%y@=NTPS7Z zMH`kpG=}4ItFf7YJ;m&zV6%v*t+xZ@myHB@8aIct`Q?fEOUeI^2Lf1OTI@A z9#f`6FKGjV)Gzgmyo>%&A=Wo=9KK&X!W+56nRG5~t#F6tfZG%c5q8G4(A;Y8vWeB@ zvyPfaN|yMW^e@#&-MNz)G;O_+Y(R4C_H3`Mb~<-g!oGCbA<5R`bzFYO(vZ#K=;zG} z1`xO>sn|Mi^8J`&=&MXROOfeSpDxL~K&ytNIs(Sm@sBaWR;VlbXDSj`;Cq}gCkMQ} znJGog$k|_{7wer!()xH(dXHn7g3<02xPm|$nhVnwo9&v=Fd$5`Ykt3g5*G84yJgC#<0mbIh78$ca}& z&{e5fNE(F-3x!jU(u-2JGA-wV(NeV4D?+UmE4LqgLcN%`^jHaD3Qsk!&-Yp@?j2?M zO3Dl%^?Ig5YUPPNhGULe)^gKLhw=QZXly>whi#S_KuCu|yAUOcY(6W9yPxHVmS(ow zvox552J#V~5~tB>d<< zsH*Fj_ud|`N2$4b<|9!W?LJ<2Pd&3WGFM6^s5Tn=CJOUBi{GprsC^nQ?mnx!m8wjX zu)B1;oWCsOV%bTfq%pGmqIWqf5&A*TAy4+?AX@Pp{c&@?}Ad! zM#E2pVDr1a$Cknt#V3Wa+fi4Le5kGl%3;zjOSBTx4(XUNXA7EC z6I?ESvO?w7NWdHU%T)@WxX?StG^#4G7wqGVtBO~SZdHjWL|;0PVxKjV8IpOcmFTSV z$&$Cs_hDSga_-ERPkQmL(@cK_&jdZS;jjI7zZ}3e1TebYJ>b09@e(raI$}ha5yOlc z$9+OhY}D}##Zko@lKL&Q`$|zS zA!~~l^=*_hL!hOJJ?>K?3I;;UyTU(64pH;;cwhI{Y>JyEN;i0q7|wccrkDFHoD6G! z>rIYP>cfkJ+>2-YO-%NK+Vcd+i$I zcp-n!-2^XDP%%r-C332_I+buYp?5a_D+;wocd}m@E1ytlz96^(b&1FyJ^e$WP1|w!2TYR z(2CErlGxGaxpmPDZjJQyxV0)^!`MeAA#NS|sTQPzqkQTQw z))Z1O#H}+?mPb327`xS^Y$y=uo|vPA);M)+@tTN)mKJrsLwf^ToqC5cf)y|9>cRrN znAtM(9CDH0xsZLIsm0QUI;uOCaC8wE&j{3P;g777J%F0O)%~TSq?UyU_J;90spv$p zb;sN9krl|pTaJy>^q&Hx>SND6T)>~>D?XTLBz0Ot>3WSIgW0o7ROSm$q;JGs0AVSUSn=KwSMY<7%wc}4QT%vR^T z0qbW)!Nf~C9zLS}_XmnQ#FPCNI`clZzwN`DzBJ1>JfPIns;rB!_&C+hkG|pZ+}wM% zQ{TMYU}Sl5DrU-a9@^ImVzqmm8n|nh2xa9 zfEm-^e=y%CXPAitKl5?zgh21rcQ-}D>;0DPDxOQF$b`6>?m9;~ zyr<=dsp$_h@dfKfL$wc`zxp4`dhlYuk6KPaRdMN4OS3^WnSsyr5oG&ERw=Zn8*s#x zxyZVXwqeGxL@=L{4U=5y8&pPG5yIK_OmEo%)q3CLGH7of^&{F5aEqVms~vve$Vj8g ziPa`l5(F#mDQkaIxNL8==OuskR_eaGN!pDIat>Wb#XfA|-ShGD1g|fpidHgj2*<7n za;EzU9i_TMZIs8uVAF2o@%+DSIH_#c#yc078&BU4wOuNU zr<@|PISTzat^M+98WzWU1q!bio0vSANo*UNtFV~CSfIEe?r%wMeohp4y)GL(#?K*Y z$bf_%p2Ww#8fQ>BXhn@C(k?Zsga)nUclDzxMRGRO0HYafmT`C+{S6pNuRpsEjPU|2FZ#x0mmtN-u}LWS zsVtpai!K;k2HV5*(z(#(=P%dlqZQq5LQ1kGmcs3d)N=T}_TRghej?w_(ImlFA@iu- z-qyJd!&WU$u2YQ8MQ<9&OD6!CE4ElUxqd56$9;~~}E@&TuB?(YS z6^N(a1a9<0nnp1VUN@WuMIiAvXQ7K9Pck2$A!IU}#}05gh7M0~){hm)B7VAAFl?hh zjmBlS3R^WDmpvy}nR7VOK}}ouu!LS}(z^~3hxRjTH5E_BbQOxCF=x_c)TAwVck$S( zU3`FUPwr?Q_V>dPNphSLvXefXsbpFQD=n-DLmwyab63;PL17G}As)7HCEbD{4?qMb zj1aXw6HJ^3je!kMWNZk%ShWnm3UN0@>y$q(T$oB9ojikz#0t=b2>f~pYWEzn&twhC z?8~nGG-4&@>)_a1J#n-KzUM)Qe_}Y{NjtJ_X}#HWHk%kwftk->-k@XkfOibVvjw&} zlWDPE5wy`&wow_tB?L?$PgAq})oc5b_eYJ_$#Go{rH<@T6Bu9^ohhWwmydObeRXX( zm%}`hRMs#lB19<93?W43n)o2j#o~=uv(g#8nwe2zPaFE)_oCZ!#1A}vs(feoOTK|z zin%V5fbZIP2kir?7hofc!5J20x`rwkqRf*yU#szpxf7J96i|*%F{VgPmYbRW#gJJ% zu?W*GsiJK>QIp`$LhwxY`=nun3$^E#02aDWP0_)@!`UHo_Da9j=Y3_xw-~@cBo2d0 z4jy@V@&@Aj-1AEVSZTHU-+T-)PBd+t^o~B2>ZnzxT%N6=-zr@@pRb7jusKKtaZ?bq zFM_oX8X)i2_yJpIP*_Gd%G8{=3kjxAK*+spl^(Urub8e)6)RuMG2*oJDq5EgZ6n0z zMOl<Xf?thD;95XBO&E$W)bVFkLk^ucR!u8(Qlgg@w4ba%$PGGZ>5+8 zROV7u1swz?%9-3p0m-Md9 zsJIpIhzbl2XS%5LJv+93LXY9|Ik09XN0{enW1Ao&|G}YgY!C9p@GRP8?#*qYM`DIwbgui zuj(m5J0;GV#L;&RxFWOEp4op(gu*u=zMmrV{`MVCR=iot$Pn8*Trwyb+=2t%<%P?m_dn(?8UB97y0AJ z`2IAZL1)VvzMMXIx>`O4FLFEAr0q>VzQaF(Uvy!^*^*^t;acH71yWp=Wae4IVifB% zW(Ze`sK*XXPVNA&F1TW9PEw;Bn@AvDBOOKM67@Oy6Nb63ZQD77$(UWJ6q}NZvkHfA zZO@$Ba=IRdj+FiRzVb?2Z;MBM-5vRQ&BTGByg{>~!okF@3U@sIrQNjA6XKMs)-^>F}M2I1%Y{MBh^2#KTCxcm9jCnOp}Jy+$H5QKcrgQNhX+p zf;Sen{=)ZsoUrzG7oL;F``<{Yx^~VssY?7Ng{p?GxM{J!>Ta`oo%)Qx8gSG;6t*4evk-u1?YJG%tkLo+`ywp}P92xjR zvh0S|lSZ#V_lNkMNpi|lJ>i~~?t|Xdsg*UV4^TC#G5wi-x)tp*SM%Gt*GOZ}w!rkN zKr?T0YBWGi$~qnBDEkyAp6vyDhB<~B0kP$FwaZlOlZx~mOvg7`bnwlDSZ(cR4Ok^z zqjY?JS=hOCB3H()cgejB$?II9uxE*plo;0>nfl2e_1WAZs_o4ieg358GWuaJy$c~H zY_qeGe%U2DI%iHe#IN2PuIuZ$=&=ELP>Rwv)CdS*AMjum2(lev#FXmWKpv@|tg|FP zf+SsSkMt8r$G$>Gm`-x)svw*TuQ3)0^}vqDh@hnOdTWf&D=e)C*KwuMxVmJlUjMF z<)z`Y_D}~P7V7S+IZVQKgFjp}cB5ES-_XHk#3A$rd)9dro;nze56edIqR4vm_$_j< z_uf|(u7091mIH+gavN9E1stlRgquIvH8h~E-Q!l6xG#OsLXSM~mTy@;`yrm&H9)G> zb=B53$1W^e<7nN4{IpqK+q;UIj4Ky>3aZP}pRH5)K@J2yUW}j_Ee~5!(<%V&)A5xn zWxs|v;?ukdTO+29vTtosx#q}lQv&%JPXk4mDX3FCP>9x{3J1(zwXdMVpUKni#u)}# z@@~eu9Pys6%+rUR3(rhq#NVMvT4d)i-jqGmi2=H*FJ5;~4m+AJI{R+ekTJ$%HbP8b zEoQ7E*nIO4H;i@F>2KSJwvSnSn0i}rrXOvjaW|zwya^|SInA?OESN-?NaHr57bYZ- zGUzhuI`1`vyS;%X&*^&P&yAgYOG>mFNg(!q=@l50!0lJxf6p$uv4N{?mMVVshG}wy zY4GL(uCXY6WVU#4ACMUpgr(q?pqWyPaMrimU&Ka(KiDc8RlBh zWO<@SsEFq7$x(AkJxP#RN^8c3R0kI&OcXjAhMLft3dzqfd{)k+opjkyVu)+tL28n2 z`QSNusfdTw$yEJee5N)DCLG#Aed}%n3(dU2nytslE9n{b3so4^th$&qQeBN3C+;Nf zYW4CYxg@3-M`gV0Z=PS%xcUyrC;&>-nUzsSPBUIH`DrC{EJj#*S2Ok~B*H$I4MNiR!S@S|^6KzSfF{Vp^QzogTyds1fCo?0$w8)x-HBc6$a zQ6$r_jIhr0FWuacNb}l#52rWaei}EH-SVrZXKvnVkp*o;^oM%OM%=reqivVSo}Zy+ zH7hz#Q#E2CZ~_^gs8W$M*>Q<+e-QKIE!3mgVciR;qAqH7SJ*^9xg;visfgDm1e~DW zYNUJDw@#-i_o}j&BpQt*8}1SB3~!NC_$J*Dr}Oujlvh;9kxes0GmqDsQPmw(4D)7D zQWPuTsPbVgh=n*{I6?CE2@U!L?Pubtu%R!F)xO|i2OsmIfo$W}MiX~T2>FLH8~wU! z_@{NgavC;#;!o540{2)+?t!HupVE6iHBO z^R()a_dDx@leAs2%r8n*;lC#50V?8|S~J6RjiY)?9vb_|(!3OxDA*bfH&_S)Tjx$X z$6S7oAYz}A-K+v^Tqk@Ns%W7t@MGijgK4j3H4gWqtzNU$oeR~B$0>)M{MFM_vaC>f zy=FMWlHTRDTA9wVxi+?@e4K8MeA582SWb$@zNEHGOR2Z<><#yBbh+=e0m)UbJE7be zU#jF{CuMgjCU=5*R<8{HFt&Qe?Uuo8+i+>rMpSY)?kF1|(x0RNW%0(kE*}P==PO{w z0(Uf6f-6;UD6tS!Oh3&u;(CM;(i#6$5c}&~FAAYIxL&J-)~3V4M)aS$SQuq7pNq3@ z)Z17MU3Nt$|IGdveesyqwHb8GF2fs{%3gSrwIe>#2S($1yMA_0=b!0Yap+hdPOW)9 z#ThHFAP4viR+s{QF-0BO{5u$voLo7=$g(kWnx4VF03%dYLebDuGr9FzDhNEBDnZqbar4^F$g;01nmu9wvJU^f)mkh_C?kyfhtyk$4)DB zu9GZ+8wcA|2+o{| zV*y*R+t2`7RO^@4l8(yd;(|{~-(SxROPw}m zDT@UY)-4l*`pGV}qk+@QQe(}P!+o9$qD~Wjnc^zfH||VTx%hDobKC1%C(ZUm1|n(>g><iyS1HC8$|7g!!cx-xVek#F=J7=`d_mA8uur!6`L-`}}_n#!S+zJ^K*7yU)p z7;p^l-Lg~;-Y>A*=cI#)F~h=qI44G@defUlmcksz)@>uZ8@MubdTSJcuTKGYr29~m zx?;3WKh|Mnc|U5nS1+`2u-YK>*(=&u1s)%Mzibozb9Ht?RB-?Mk4LQB?CI_KJFQ1TOrvQ7nH8hi{W7wvo%rGIx!>>8|!%niMOQE&2hnf;NdSW znnteV!zZpxsJ=s#b&lQ&R`JU*e(KVR61osQj29*+fM?44cNr}d4D#<>Tpx~&Tb=_wvJ1le-ED4f$}UsB8@800tDn^giMOKML(ZVJ8(sF+5{V2fm039Z&zE zZv;32?zK393?D}y@n{eZ2|K?%bu+uM6GFH0;F5F)LPUJrsd_bcYAx71A5NZL_h&vW zyKz>}K%>HgU4-=`7l%I9kYr!r#6v%Trm3R@a+rn`Q=du*SwkG3E3w5o)l@HLCue;$ zz*Z%1&D8C?+2y}r>%2IHmQ2uMtcI`U-^et`E-_z-<){RHNq8Ju(qNuDTD~~{WqQ_Y z6FiG}(h0Rth>G<*009=Ep@#XDyoV%%8r0^zg81f4n7Hdq1g*DOM7g|&C@bhB6w^Qs z^B2hWpcV>SR+Lo^u1%NsG4wwED%>cUTReV+EdD4%g$a|KGN` z2JUFt8jKih9M;avavkGMvFH(}4K|FNKTgUudP>aLs7SFq0Q)V1*= z4nUSCWZ8!!7Ab6{ToEtQKHmt6w&2sAvJG}=l#~Jn$<-g&>pVYM0Z{h#2Hi}crj7?d7QBLv* zMa(b5K@x6!*ysuT7{tv!%gHTUj)d)j&Z5tf2W$MsCCY^1VVE6s$45w?7x&lThnm#3 zZd8PqMG4Jt+_EcgW(8cuUuYHGciQo}Q0;wsgJ47cuFxL&^OZ0A^z)-nNg$?17yL?1 zalF-?P;+vVME*LeQVyCzw}ZZtQs z(G1T_j>oY1jG(yDf{9LxWt+BJb7S0Z7M6kP!3{P83|2r|UEb;h(Vs2q;2}h-3-V zZK53;44nwFU^*7nLiyE zBH>Pm?PwkB5$CM~jK|oD&ciOuCT`>X4!GHIlY!u!RBX z0W5A8*l{+Pe%B@qQ^+!KN(AY|p$Q%sTe}Z)n(3+^ezw5-gyRjS>V#Fx$HI(?SiAel z<}bw()9J0}N-m4?952;BB}YJuhoU0M;kl-WcQ>uQN$y#~>_9_z$y8cGNp&eR4gGG( z>~1*+Gov#>_@v1Irs9bc)PoZ|Cy!u?M+1kkYd2GKQq@g+gzEdu2N9ximiatm_93rJ z+^AFX1mVfrqUUPEm}ptWjUHl}xM`4~jitVGXG$O}j=$Y5PQtj3`oIUV^d&fF*j1<9 z(ha?)vZ`uW&U1p18P+J9`j#Hkj^X%zEo`KU25m^{5(syZs2>V zIiuI6^Uz+;r&9Ak2*@T0Maz`rx-G9OsrxRwk?!7>(hlY8YrI1aHZMA8wp_t#yiv3< zgl)hb#Mbe`9eGCdsn|xIk!F?_Q*5Fu1b#?OpQa5pP|dShKeJEM#~#xrn?%kcj}e1JqJUx?uk}paga$VKf!N~v(2!_Qc3X{S~!ptCO4`%`wf+GfQ zG@_QyLGqX`TLI=fD(>lu(?#p6^3pQP)J>7IOkEY1bM9B^&2bZj0>iB`Zoz{I=M-gS zMGmGpunO-N6|l)aHuYt)5x%6cK-mn=uTUM18#OS(#L4s*x78%gm&wF_h4+{>n{~{LVF2#-0rlW(I3DmK-0}%da?^0eNVH z@fpjMc1UVQ4yTNZHQSUi) zS)ma5dUkbq-v0^0+UnVnt(k?IuHJ^5mMDK~<0o%2m+w|Z=owAK5w5iNm&GoRki~fi z($J1Pley(pXB|AMNo`M)rbauF4X~Z$@hk-G=a}K;Nv<%B?U)XX7$=J)$kyv!j}mOy zqJ*ONPQp((S#|}B4kC%N+(x+_<4y!3!d>h__se zMtG-TtiV-+W!O$sWQ|C{B*sr zg!g5-U^DzE_8v^|*5#a=!@8nd&G}ibA{XD$eje^D&DFfm*fNaDbhbD&j8KYQHFnC1 z$Gv)g*|g(=(njqKu?-3voN9i% zjrgsSpalU&a&66dm+N!p4IR_%c?G41Ul`=%PUNd3OpqkQF^e*`q-lLa#Hi)x^$UI2 zvXakYT!gpT{2RA$5^OZhg3Z^?Ab>4D!gL_Y@GZ+jyc6W$!CM2E11>5WVdL;%5%{2* zB5j#E@O(1XO&V>Hchjl5^s9eMvb;Ldyo|11KerW_-FIp1lhXjwnPK=jJosG2vj>|| zu1W)qO%vHAc{5pG^<)^+St&E67H&4RJgV|V#mWMwWk~T(O2e~@Zm?0#=`~mjY#T-e zBrmx{P^TwPRMf>p@S;x=>7Ah-9&}4ssI6=Ywcuec&75VJIL-Du_zT2;^EN42>R75v zw#gc?ChGX7=t`y}(^h_Bj#=wuU+nj~0iospLZv23fjvRakHhtCwQx@<`4aly-U>`) zTyJjp|5$tPpeEP$UDSq%fT#!vQglfX5V26CTNbbYNu-wuQ4t{^gcfQbN|hR=DlJk& z3kW1cYNQK@Kxh(#K#<-NX@P`%`(6K>v(L*JD}P;PdiBx57na z3up8Cvlj=0krHp{iraSLPauSGr9;Z70O`fH_b*l=V)FQLG7!fc`oZrjQ_^nYR zUT_>ZVxRWUXp;_~Fl$E3>*IlBb#grdC5?9b=SC0i(WL#W>xa`=%%*P?7%5%AbnX=8I6Duasp;C@odq8!}1Ord#j|p>r!-d zU`l&+%j(7T$`=`++XJT2fhetkXBUB>x%?I}JttRo@WKo~Wx0 z_|1&&>g#OLWpGUu74Bxr6#Caqiw*t$=vi4w`{L3Fb&+f9H3*I87Noo%h7yFP`cJRb1-S6ux@kzK*CMsmK|>jVc80+*W%3q%G3#F$nGj2%*0C7 zjjt=RRN0}-0oFOTIo&EArpsGLuX_VjDw_`Yg-NDU8^tB*KS%J&8%TJNOQBnauEa^Ow`s2C(~LBuZAErq3{TE9}O)z@_x$LG}7sK8!zk_n}e66|f-2aYf2USt?XBSk+^ zneiRD;-l;09K|o{9J~K zF5K^VOu&LrIly6fbF)IG-U@VF3H(D*nG6}P29V#>qU(pb+?t;Q%P(uCaZ7=bBK z>Wadvw>t=Q9T;{>O%%g{Pg;C?L|F@30G zKp!_kCCC9~2pB^0v!#HK!|gBwvb{E2kN=Ls^l1@WZ2^VAMc+saW z#YbFt4$%YTD{cYrehr8-oF&8T`${^-x#lj#&E}`UCr)>5b+_;{t!Q1$XP;oxqGNd1 zs^6NN*n+7*7yV&BNJxAIq6lE;_5~V3A-;@ zdFui84Ed{t^{(5lbzM4Ye8~;f+J>p!?8d~S>dXyiTS24RaRP7w zsQhe~IR^p#Ml`LZD8%U%k)TpU)~8* zfBU1fVxqHXLb0zz`{wl;WrLFluYL5nak#NYiyEBRs7O3iADkH$X=n0jt5t!eOtIs+ zD&(!Y#U##<<1yfci&3pkC^vy{$J5Lq)-@(}=4AxE*iKuqWHmUWeN!wDKD!sKvhD;O z8t4!Zb#qi^m=-=}CY!v^hZsG>1_oG-UQT-zX>XGy4zL?CUJ0MkTh+a!vg(+)4Venq z=LEc3{O(3ttB|y&(#4(nM(wB32Q7QLum62v05VYHXdq7=enF}OIt=N<%&UhroYTy3 zYMa2EUZlF@xe;WLPz!ce@1(2aG0c62dgOLis12lU ztlwSmiTAVe(XTIqQuEjO3>0cYHs;4S$HyJc^lrljl-n(Xf2c*}?phP4RwoTYQ0()2 zGdAnojN#ovGQi&jkiZPq4bC^IV;qUVH*AOe6?@X!EKPtLX&KR>Y46f5=JIBz>f8!N zmxw4`rZlMqXLIB+?cNiuF0bmwtQlDuu{!z@fkU`!eWf`-ATiVqUP@cOzH8pJ;wM~65WnO*`(Q^IowD)ddzFp5}*yTm>qbl zdy5I53fHB!w!(uX5y0Qp~4?pwn7mi+R|4-xIaV_JnWt+MR!2`MDG@mN$ym@0qQY) z0{)eAg;`L+Gyuo=x&;eF;Q1eRIm**xl3FeVCQ+eu|Hgn>eoe}v#VGPt8JIusONI%) z5u(+sYZh?9+Wb=9{BMGybCYR8XWfW*P56$<@!s`6&`~s0%~Ix_b6_Cu*}&dbFQ+cF zDeD&-K%&E|ID-I761=We64s9qB)!smGsHeJBn4vVM$l_pEtn`9dRH|{4O1G3WcGF1 z*Co=h@Qbh^xAFDDN!V^?p>Vp16ZRANQ~EW^0*GCvQqcKPJlPmgt>L%1YJULqZL&dM zm?PNt&*fRu11nqGOb3z!dZV^`mB``QpL=>=iV;06cUh|GC{rfzp7%rz- zdUpr^$@X@j$%sb)2iw4A6`cQKYs)RdP}5aWhR#9`SI!Td5ZimwVR-@qv7`K&EE*2^ znQeWe(k8kOYm%JwS6q@jMDSiOw_~wh^RtJFa*}s>4r37>%ei?wA!FD zQk52u7G|3@i?vkEG3$3HDr+#Fc z=RMTP%bJkC-wg%pX+h`rLI7}EYS-=9_QUIvDt7qI)BWX3!spy6QES6__&T!iN=Sq+Ptt^TCvUNAh938L@m@h(+c358 z8U&hCH)-T?%~Y1bWBYJXX7)qmYe2z$uoBzbicInJ)A2yVJBcDKx<5F_(S zJbAlSZojf>yn12!4ATziBrY(!f$wPMaTbU}rq*+X=rq$tdJemKJOCO5is~FeM%^*dy%oU zw17&Kp*Bv|&od<874!Qi8oDa2TUKyk5>4n$!9m1PgR$OsGwB*!ym?3C`6`l59oK>= z$Yv5W;rn?atIqJjvYKY&_Ui8GJM=iT~<$ao3mVIdm&MrVU5C+1i zR+*~GNutxJP!N@V;@i>suU@_Tb6&4JEmnB0dg*-owvde#J6$CHz&!ASL6!yUv5`+_ zVz1u3+_dbN4)GYM+>MIF#;dy!_@4VJ0w8X>dDx@elpwf+Gg3&&8b!|&e_GRO-)Co+M{H|c0E~-@i%hQ#FE%9j zp;cRC{;>N>tq}@7)+s>7kGc|6*+Yd$J9@9}%^=rlEv_R+xIZ6xUhHipU8LGCQyUT+ z^4ZJ&{-$I^y}4$o#h*X-`HrIpjvjKXIh(x6+J8!&2Q&=KGi`IKRylZJ1vVo%?6m=joE2}?Ci4w)7)S9nuCw=D-it(585(|MA&%Rq?tpq z2gw?&{Rw-qQ6U8(cespC$=ZU29q~=_5z@GfPP^YNeJ-j;f8f!(JKxH3>;s=PTVnf+ z3xa!)rU(v!-L2qT#U7j8}!z8jrYc+z<8>}sj%b_Sz*I2n zMr@f8U6R)s&WFXB4W!u0?Vg=xvEfHG;af)4_z@{H2V(~?>o)b#f%f&%d8TnHz1lV) z);#IzM7d^lR#Pg~N>OnyRDfG_oiUuixRd^u$}b63wfS!|nTd6^asH4c)IWx~|NQW| zv(0nKcctuocW#~~Kp$O5)I^pUE70Q-Bw8*y?mF7QH#M6J7fmg)=dX2v+-`>$6=vh6 zik?l{42CjfZ*}b);lA4Vx=cNE?Z}<4rI}XO`T(N&179l{Blh`BiYdZ9PtnvmH+;rp zk}a1^Y6BhVk>F`d0&5H0w>K!9<380>Vhr-s5ib(rR<^m2^5^d#=Sr{rfEjzw&!%#<$t61o1Q@eB5agTYD< z2ur#){llK{eN(x4rM*t;g}9%%leoYmzB8}A2eV6BZ2Bc+rd&IfgM9j|CSn!>k0+yI z{HdJ*Edpj=X0{&gwJ3!mPO(U5a#UE6U$?nmf0DdsmT*M#+Qo}Uj(*)1x*3O+xho?o zhma|F-?J4f$XNxVMdB=mSs&bmT}l2+QA zW`|n@d1yRv7|ArCs?|$ z`%q1V`}W>LI2@T3gJo$8yb2CR?F`_~oJ*~zfWSdIy$Opv8V06D8)FBr=dhok%u`pw zflI9^shRLJn}TdG1e@|L3Yl$L8k@eNG~PRMvHOyjftJw46Cp{|m`^2Mkwv1$^1bTw z9v6`~~ZDVt-YVAKq>O}hA&YlWFWeg6DWTCI7cr|1wo8T~IBFA^QCoex0_nYz3xx0N~72wyXFr->w#o0Tf z(kc7W$=i4G(o?T|~Bqht!9MaRPjU(AE zu@fDP>atQiJbp{j1ZZdOvrnA}K6~o-aZ?!)L_tkbPC?D~1D_NO-g9f-dttSA&oP1f zl6Ti|S~neIwawO9aRv!8^D!lPav(N3oi$nV0SJ*lBIR{*P;chyo29!Kg(~DU5kj^` zUHQeO@>Q`GaW&zg$%C;5cTA1ti#IliuPg=}gOh@0vfmFl{qkEU=lA7U)-0M5Zj|;J z9NKxOM9CQlq^IJ7-Dmwr9fEFZ?<|IE{GQnnT}9I+!_oV}<$#s$?@wu9e445&AR%tZ z4Y#-Ovra8s_@&$D8<0iZ%ROu#+%x}2r}fIw#j3wl2AuFOi@g$!wtgsBEch;jY<>As z4{eNx?Vri=%k-mOHSXy)cvr8B-Sh-3S&qN^&yme=AF0jbgTu+@yU1Qnrw^I*)1hEK z&ygI)T0k`s_4aUtj;{wUaFFhX|MuEPEpC13v`$N?^#0t&zV)bvSTEr8baR*atcd%<25;?Wskg+c3>FDCw%EUC2sQyM%x%EAA zx;tkhVL$E^r@HXo?SWr%!!13^%F%OH?+0gL-m|rVIX8rKBR7-h&A^d}?1*m~Ma1)5_0M@p8LofH%ZdaRL`|UtUb;+u3}N%GA`Rmy&}0JITMUe zHUg+=bZazI2B1PvC(ZZ1Vnk3ctC9kMPL-pM)T&7_HB~laD97WKPcqvd5gIg$KVHw^ zTvX2hAl&Wd2X3&y9q}oI#?1mf`AQo*()gQ(zXin<$=+ zp=V7qshydCJRhH9K7Fv-E-4xVCcjbvpV6nu;*%yJ457mg`vm`S!Rd!isM7nMi<5n> z?cA|>NfoIpv*g`7>GW&__L^>zfF&C(b-T(!^ntChx!d^~Z-@`Vf!be{saLL-;CQ5g zf%;k%OXWk#3FRa%#_67C4u6#tCDy-RUsG}!ZIUPj@WeQprCnj%m|S{?=@mQUwil9+ z!sktuSK9j26J3>qbAq-;&=cAFsUwAiQB!%SsreQdE0fvx1j5Wa^Y<+D(cjed5fhf~4oU%1zei)yD z&l(tUda?h);9TOH!P9%Cmhc;GvyAh*Y4XpOhf`8)_5|nmyZ;Wlfsxfa=NP{GxYQnT zJ}GXCs7eBmTD~y)i#e%wd?Kkm`rA{HPyETJj-Plc)o^R^3)bAnZNuA$II6F&+|b7n z-_FKV7gy1H@QrG}sna_^__+9+pAzd=F8iHmY)n3Ba_78}Z0Un@$Xls55%eYHlRs|61h4Z+0G#TkdVzX`Db`cZ@PBODWowQK={#_sa>t zldABb0;=@S!-+Qcz}ChuRkEX0udjCpv_OWRuK2$=g9(T$Lp4OghWD;;YZxfHHpI#k z7NwKJqCL+cWUM+hlf$v{hghx<{T9mSuiH}XKYj6cpB${8H$t1P8Oj1W6$>NjG9zP{ zhrCkOmbJA?_PoVhO4=_7DX=?Pd0s-~-G_@^C-2UQd)X#wz7Ro57Wf`*RV|cWHZELl zu^Y3ndO^(0#E)RCWC}LkW?EeV2^v4npIO#l=Qf=_qcm(r5g z8m}}%;QkxbfT`I3L$c<7nRBZG1Uql7+do@svr;gc%p7N*wM@>wYARbK*+PnC@&otp z1u!F|O{y9k$+?9TX2#EvVlo%o;R#_<@f{hQlMG?vr(bT8XBeJ|G>P*IN=EqdKIa@I zwuL~9XI}DVaJNKXdBZK+$%SgGvf=(xUn7H5nE^#2%x9vc+w@7p4OTAa%&n@ZTz-R5 zEC^;g)e0*QHMaqS>oFPsIZ_7*38iRJSoYcRUB1z#D~yL-V$d#hqNIF1of@kRD`cV{ z;~7O8DRe_iMpXpsem*?;q#nW7Vio+$RCMGA{q7?*Myq*O zZ*j{HuX(Ke10_^n=KyYd&$)DtKJWUt_s(f%iOJzXF^}C1*MUr!WdJ2>eyA$MD$j6N z7$`B3NB}@R1!%9i1a$8*Gv-1AXq#<{r7Bduz^ab0DazQMx@l;r_aKb>7l!`uKSz>+sci#HIe6D5VCh6+j?Q_6v}Ne( zjuq97BLirm@Q!h@fM_{j~R8r|0!evF&|=VkZ7_VWs<{tg>JJO zaENZ<;ZUIb$Sa|&dq`F0+*}{{cwkt!Awv}tzQcc;HrJkebNmKyhLamX>e1xtM*JKe zw)(m@)Wz?bDG^vtfHQMRkg#se*XLKGOGPcS^G?TEuFYLD?b7aLmDDRP=iOC+Uy3e` zjj0#2I*csPk@=Cou$yR5*E%thHf>AnFr0Yin^~KT z-nIEF8-lME?;-4jR0Z$VG!rzI)!$a7ld+=e=rnz9a%OSm6sYGHb7hZnCg?C5ftFn1 z@I?R#+VyaHF>G_&i2-HVJn#UK$qST~9@TyJQLczX+&Sz@49o!_G; zkeVsET3iO%mY;ixHC{O=e}2n|oQ*0v$sba_FWDq6Z`onyy<6K3Qw6`=Y-mQmCe2Kt zk{TAW|6GHQX{Qtt%^H6_`DLen^fqHGW3*(RGo;?zoMU9@2~(9RuZxw< zS%ZO6%1wJfJj0Piy&QSFqI^9A(n}2UI`u1w60>W@++rC9>V4&0B{w;NT0@2f%97&xn8*q7qp!)at_FI+l1>x=T!6*K%Pv3ov+(ipH*xlcOl}i(S5L& z)u1AQs#*Gt3p*uc)}>-@*1^}X($hr3+Q*B==AADe_t|We4e;0qmsyfAwM9H2GkDm` z{I!Z5T_q+AsIfPZ#~Ga1SzdR{YmPcuSC%mYhxacxeTsLGj{7~ z%WTDB$j{}z5_dt$#ImM;TDhAI?s-_KE=9k&vg{m!Vf#u&2?-_;4B47tJzx4LDwUPP zgi4<|x9dWDroq5aa5P7CZMI^CW#zYwZ7^C5aSJ`l@tgE9K{cw$;^Ba&GSer-*LRVTY6Kj*F7Y@2XgD!P7?&w;R($GrY zj)(}}#AtxhPLAba(9vYrd?dJJAdQVK6n2*r|JrQI}T;#j>wZ>^l$`Ay?fipW~*- zZOAHc)hna=U6>*_F<&FT;h+8dBZ4GPnI<)E(GRj^7Om!KZgDyLnWl>R9^<$QpU2_2 z__n8uta>K}1#e%n!d`8L!>ce96U#aClIeV=iss=m+r8$?=%eYi>YZ}8Zm@1Btwpx%3Un$BcZg84+~iVpJJ_2-y=Q;{Ye67*QAKa6{AX+wEJE zUqVkly!JA%N!wkKc2m^z>N$HL2Ly8`e%IaMRdb=rAMG&dD)9Bb>bt?lRLAdLKi&MT z582Yq70qxEDse|uZ{`z}p2q2g5-{uwcXsXRzn^!vl7w}omu&3Q!g=y13p;5J$7#R~ zwHSRn%jFpycdFN^@9cDBoRRRcKge7Q^E#*G*+0FB4XIlnpUG2;Z0xQzYqEN$%(gW~ z#ezIxufIP{PWX&IXNQCH=?jS&?fdGJn7#*U{~EkF0Tc4GfDA1tOoV-zeljZ5yAr8G z-)jRL@lfYg_$4nzk0AJES2oQV7&H;aSPPl(gKP@kAcnv-_ubE+5k4$2vc~fRfwRru z`>tb6?c=+hlg@#51Fv6gf9{y&Yh_AuKxl(_4;Oc*>?THcZOc3z;ErYGCjAsKhiyG^ zJosPZY8Na}8%0zFekO0t76Skbzp`3sNt2Ctpt50xzK0v&5_V^`4kb9pNXU3U#cw>^ zKAui_BrJP(N3@8b>5{HuZSqlt25Y}$as1(_dbcvaVei$t!U6Ki@mC@CRVmW?ow8EzSY!gxx6s(N}+Iy@8fK_I&O8egPfzrqKL^( zt%2;!^(F!jJ{uX>Rm^iq`1!fvNi&#cD6if#fhai8%IamrBoZhTcV3qZ_Uv(uD{YdiaEu#uY6P!K86iZq9{0moD_r4wb@Ks&<^6B}mkri?q z%|)Mb(fEsVlF53R5~v8sMi>JI0IzMhtO}q)>1{O&$wiO}DniLRW7NTay_yMJC(7CbKZXG5`=18n$WESow zyT<1SCQlG9A)0I}<{Ti88|s`#^TWF>6IkbB`U6o{3exo-o&%-MnVXS8fw3$%<*89h zvb#e@E*4}V6E$#$7&n%cI$~i|R6e2QQ3Svg;g-PH<@35HfREn38ohr<2{QiX@Z(&? z9Ci4v=!!mqaoWB87eQxSa2PzQ5WuI-PVxd;luz0}s7%n>OH?cHVCEC1dSLD0tTIKj zeK(&8!7(!)GvB)uVWYM6iqIW|z)ehH{+bLK0o<& zT7eBo4(0xR_?{yZXgxiq`Vs$uKowlQ8JKdPKA-mO&6O6E022jn zOnm!(LTN)OVemx5b?rwzO|=mYPh6S`Ixg}kuGYzBtu75%3t~Tbs|iP+^BGBhm=IoL zG94KF-qfC@o301eo1s)q*z5)|v2>F;aF<>z=9D%M<2db1A_EH^L~7BL#R5Y>3;>*p zUQ>Y!xKh@ucE#KVpG?9spp-py*tq{tr?29D*zqSa1iZY|sCj#nq(0x1s`Xm?FFjA^ zL!Cq|OJ6kl5AHV}`fBCyppGjPg-74gi#AVGaNpYe<1#N2>j88kF9w*3(DhqV>%5HB zIh!?%cWGcbZLB(<4P)xhUek7>_4tt_SDiY-gxzfkca#61_yP;s?_}|)CQ5jECI^n2 zd~vShjMc>~+zk)}1wHbz2G~wfQJS@-^28sfaw0<;nh7?H>Ltql#GZ$w?S{GX!lSY?bxho(MG49eJHr8F{|K% z#WgQYqSTjyKJ<<-f_@lXR|&Gbb+*w#B?H&QlKP0HsedI!wD2;==b%3ocZZq#bPJ;h z`yp)8VKNGaj@IOLWLuovy_Vd`9nCgln9Ld`UZIaRDr2xn5c#?lxl1dnq%ew1`;rA# z?rTm@Zc_44I&_7<_3wNhTF_GEFzy($x(T3ANzmgcS3TxmsIOpg&M(sOFvUQ%VMk_Z z6~#47^YDF(AX{Y+kK$(zKlHFMA-7y{4?8v5WI=ClYfwWoB$g>LFBrg+&*EtvB zm8I;MV|!nN4~tSD4$D9#;$b5s(}}`MG)Vl#H0f=xyC1-s9pw00uLX0Xkax8v{GkY} z;*Wv)zDz(o9{K9}x*xWux8+xQO(%?;Pf+FX3v8QzJrX7J-soO;L{67^<9$Cz8M}+u zEBmCAuX6pY9~Wf9SL>4m4}X~rvk%5qh+#!Kouy|V|Bpn4|JIXI|7CpY!p6FLqkrS) zjon6~`}=;rfU|ukO3)XEO!!Lw+OUaprN}?7G7z{_BlOfVTH`{dIY>#iFxx&vWzQ4= zei_4KoSix=$J04wtkh++XX=Jdo!t|iDGb@YG%P&ZqiA> zuz-Jw^H+_BwJ1&%@Yb=1(N+XYCaF{L8G>5ibAD9#6?^$2V~`&X&oR>@Pv|_Zw_L``AZ$zl+frZw4fS;#9%c181PB8D6!L)m5sdMpfT2YjSnH%) z(4;z)9Q>-*mBpCtUxRPd(mWorM8FY`$kr_LMq*=Qy{1DHj*u8(>hnn0dT?^>V}8P^ zC{18&GJ8?g%o=pgj9^uTA3_F zsNNoRzn)aRob;%H5e>5@)WNyG*tv_UX&LHDRnEoDD!STmrW|TbcKWuY9(+P@H$?ZA zSj;Y#EzM7FY#RoQ-&_|1CKK@#zjS`zY`B@{=WqYOB&N=YC@fgiEI^EVSEf;82mHO} z);=CO!vWymAwb!lSOmzDJhM5MTJ^-k&NI1b#7J$u3VoUcZ@Z%geKflH)3VrlT~5ie zaAr>WM_=*u&(jcCW*yGuQU%ZH`@w(p34An?(eUl}?OmNtD^ijetK0m(PO(0F zZYcgkBv9-fDbVWaz=y3Z7wFtkcxA4@OYIcHC~d$NOrcMoz8S4za)FF@5HR{I=}?(b z4BK^C+qE7Fa#zTD(Z+rgUwKRu(_(eiX77DD&URqh3XW~b8NnNc^ekiFSseBylyFua zlW$V_8`?uBK3@tN_UV8PhZ~45>pz^34=7h;EHDs`XefY#OMXj3lf=EZdoirj> zrWjS5^czLZ|NdkD^PXn_*!z^}f~whqH<#vz?7HaF=QFOm8(?Lq%9<#Nx&_WI#|8Vk zB>gYg>a{jElTPmWs4mi>LQ^&ZGno%8Xw-`=y7qXS1*0{(WYsnH`9#HOi)*}FmZU?Ep zATOlur)B3uS7~9YyfqPEk~~b4mknQ zVQ1O8gSux{GD9~~%8=?qY^6fj^tsVB#Kla?0YCUY9ui`DAC7x;liDAm_yj70zx89` z)F^jWY{D(SG|?{AYa#!P_!Xy?ZgozXyr0(Y^IJy@u1Dr5lo8Zs?esgX;^#Btrxi>r za~q(LY7!U8W#A1U+Q!E0D4%AZVw%lBBXci}sp_rcfcO}>7ywb{w{x?vCd75DsPAUJ z@Sf}o9P=L=)T#wN=sMODJ~3vIng_}*k^?0kre5+?sVe`SG(_4nABjv(Gb&77g;08= zi_9l|o9EqO-zQ=iRlAmlnIzZUVHxHQU2!&`vuE4&d$83w8Yxl04BrIDe20Y%z(N8% zl>Xc!_eqnS&v(B{7XF9|UcC4qO~Io#=k5dWx`Bf7ru8ebm4d0y51&+2S`T5kU^rh( zDhkELInO>#uVG5f478(80>*?1zB;{2k|*h$tWPkXCmIPlot@1^O%FmQno1&xfU~ex z_XP#G_r^#AeF-d#ATjEnlREf zJHT(HYS3R%B7uvKzd)u8I}WJraK0%wN)E+jv4S|{^X}+}-?IlYjDwf5;G<#LxHdmQ|iFN&O|}fcRa(82B?sc{)`p*HlZgn#=aJ|Lp;;JiA{}Ul0aa4dIGVbyM1|*`)p! z77QTR$YExI@^t-%+jT?rcb^7THZJfz@@kiMw(~ibtbR;@?{s!V_$du@!{FElcW~>{ zRlIhFwHpm$7MR)&P0B>M&+_oVChP0YfLv*hH0DFbQ`-D}Q|Ga7nLbxdhU;8g@T!_4ICPoe~y5=4@PA| z{2IfzL2UANR2qwVze}5J)>2t1iQxz=?2*=gIM_gZ^fMzZ zoK=i;{#p(&gK>E9@yflUv@*qygb-IMuHl%ViUnHx1+`(WCe-lh0O3X?HpqT#Ylo zd82Acm~Rw>k!k+DNttygkk>EE37uBjM@G-Nxc}1FE+jj6%Ho?xSttnaJsH1Ae|HF~ z_4I@P?`r&Suh8Q^*oF+nhxG9d0l?W@SqTA2gwvil-pYE|P#fNZFX4_*Y1A?2=ol|7 zaK>oUCT|J6fotq?(OFns;hq|!_EDKR%mF@s2p@F+V@i@H!g~TVLczQ7OsN94ejO8B z%6>%eM58^G@rUBBM8RK%;+h*(M;eFNdWeck{)4ZOMz{$Rj}q5hu@O}*onTJe1{o5n z`TK4%GR;m)Rc$28Y+berA>v_Q+h9W=OeFPBDK^T;dB(0$Uu;xNCoMc85%kt}__6Vu zP#Q6MTKSlp`zL0OQs%~=)klm=s{jUQ(XRB2>tkaxC9ylseq>Ldw|#wX_N=i?h3@T2R+vo4!3`h=1D29dzhgFGoO<&2?f)8Efx_?f^) zOY4qt8q#(MqAA^JzXRzmn})91lOk<&r3Y~;S{}FIXVu^0y(%dgF_3>^I?f3xO1_gt z5R#UkJDIUmGUp@994VUK$eNtp-=-5iuDP>iwQl3dalw-x%S$TPapu$1+we1-QN3Df z92@ZA#s z94wqZsDGosp%qaoqUl~SL+}Y_nVHzg_%&4TB(HJ>RaQIvZt2~6NlMbyU>eR66MC=esPx`=H{Pt6Q?bA1h=ENJBI8&ur$ ztk{hlB&LRQhLzj?bX*O-(Hxlklj#m2KWioFwQyOp|Uw}0TB|P{; zeOy1n7U3cc0M@OMZkYeq%4b8qV(sPO?Y$JKSq#&uqQHd2hf&)~a>IkTGCUyMO`lt7s%gHh$3ctyG7m5tsp${khn@MMw)X|@sd zp}8O_c4@O_B`3FeY;t*ITkkFOToXSX+a92MgBeRRRd3@+5E`n73rCgbJu<}73pox+ zS;h8kDGn>abp>8xeTHQGQWb&Ud_gn{SNK(LqB`|(UgFhM7JGAYTV)s32n-U^zTg6g zo>d&l#mK;b-43Qw&TKJxp22sJRz%LZJ@MUo8>`N9tuv$!ZfccMI|}vOQ*R$$%=AH=RYDz|u-6XdSpobo*AOgTR)~AK z$&%x@Fxs7s(a_W)bZPj*T-dfwpRH$HtK)Hiaqbbqkp{Djt8?ZyMHI);phw)9NE@;*x` zq%+0c&|+|&UYA$`rNGj~ib*czKW!bC4qoO3l)x6+Rv!~19Vt_nmi`X*g-|u5g8p<* zBYTCDs&dM^gl+aRO^X`s3$?Tye~fwV`qvCK?m9Sr`$VlHt~I2K*r#Gd@PKixgy}ZU zoOe~=?8Hg~->L`PUsd3|Yx1%lrA3t92XUZGDaY-wAOieGFmHGeyy6$-mwlgCim8JN zd8lzYY+Pht9yM9@_u-`>ousX8Ve zBb_6OaU9L7O);cTVctqZYnN=ou8yd{*R$R(ioH;GJA21|{SXEHWIMpLVi~aSGCSv> z@hE|&%bY6!HiVw(PP_r=SikMS`B#EHa(?7F6}SfXcNOKirF3LE78GkTQyzV;v#YE? z7&b?k2jRc?Z4bi<`Ut}4F45&D?}5v@5Z%O%v5n#LBfaH_H#6|T(FIt;!gf{a1YA|= zul`L{)8n9VARqkxDAKTa@;)Mvsr@*!@mQ@|TcC1P1qI1$}N2W9-J<8o5lyl=#X5^i( z+{FjMODX`Y;YmsNAh}7s4hTEh!bA&nG@lIwn=ph(5j&Sk^F}|7tRtO5+}%-5v!YGP zx*w$yxMNi%^d1i*B<|dgX|Hu79yssh;+~z%E1EX+kAMNY^w5+Y=gP~CifyWCvwq8A ziSE&54&P7{O1WcG;7K5~!#-*uCC>pyrP$YDOWhhC^W&Bu2g3guhOYTS@Yv)y}{@iAs{m?2t6|??^e#Z*1;6X)Xf@5zWLY=yxyeYKB7^Gd{Pm?mF4vF5; zP+VRVi4tC3M>s$87SEK;)5|HvC1K_vzwYa>#XiQE-b2=KZ1!%aH?rKregxaRZjoU> zB(wc;mC0d(frgJ6s7qV z@^jVR6yP`LSgwAaSk)|w#unR7LF|mwqjzv0-+u2l84=}se~JepJssO(Io-ecV%Kv@ z*Z;FjKQ^rS`ZkcHQwq7qJfypHa5Q3ObKfuo+7C$RN^PBIv~O&An74F8FVoj*h{iaR zQ4T)grQ$U~UE1nKzVM|PE;1g|E+FJ)C^4`me||(V_k!PRJ*izNZlLV z@KBw4u9FN4cJ2r%cJ)cD&(1F(Y~adkY$k1rSxb*fH9ZV%{3uh6N_*pfSF)~VFxy#A z0S%vy2dz=brYl$&JEzPS7>el8mV%Y21PG{(W>H-mlsI*tpDZ=V5^1hix3txZ+D8y+uf3`?X(L#>r!QCf&+(S~sy3kg8;Yv()IxK6*hO@b;n2E zfpSNo6u&7l&-Xs(d7g8A|Ns8;1mouRt({!BCy&pfA3lJcOtM>K3~1 zgx1@ocbATq5Aw-!_Pp;KC5Iu3@{6=g|{-nQNg?YbgtGl z=3!h^Z$188M+v%Ot5|6u2Jm}tloINghfu}4_BDH#Up`|Wdw0#d>GrLv4L^m(n7G}h zQ?OTYLs+Vee1ciVA#3V^`n{W-hdHV7gYQbT6DJapEU%B^Pl1 z{HWTWI_w^-{Y-K_sSsfng?;gLc5SS#4MhtNa$XHeG@Ea=`N-^-u%hX$pS;10ppXrH z34}d)42+;fsPyRF!+Sb-ZMmG8<8FuU6xJ?!hcFfrTKuF-$?`~3h9M2{y29cy!!_{jCUQ(oLB zz6@lIZa4yvZoA5R1b>-dXRFSGmGi0NzKx8Qwr|lz9-+#i8zl>NwZ3;l*U@P()E(nS z>EarCJWhLgnvcnGNxR>fOEW^)+gj(e7v^lJ*5rHmP?chzYD8FB%L{H*Z)+l~dK7b` z6-bx4zlH3w!s5Va?ljP6u^Yo%f2)&=aAjxC$f+Plzr!T$Z|bS9Szhk^QC0l1fbOymT%Bu{kO6hK7&2q`mWF! z!!cBsGhC~}*;O^2t0N)}^G?hnhf{c-($;KUWLex6pHeV!LTR#D%G?1!FE)>W<*@!4 z4sJ<-62X7+2Ma~Pybcp8Oo8n-DDr z19%$any?+(rDnX&t z2ZAOKg7HhMEWNpW<$>I@!^B=(T+Fd%tuN*l=bz>F%F{ooeayH1ag(zgqZ*y%JFeTF z85Uhi#JFjEK{eZi)&(w2rp0i1s`fS^H|r)EUBk!c7V4i?E4h@0)O3t6$=wrZ5Z2(} zJ+U@?7P;=hh@n1ptNRG)^|AsPJ?Q_D4^6=>k4mOx$OqeVg?Yd1fKeuXaNKwW{BIaf z{x_>tFTsAv8q(>~IFVzb2cUzMZLrr%`C)buY?cPz z#fRhIRW%C+V5uhAUuhWRiv*o(`EhaUJ&*IW3le|lexEO(x688{oWF~binC14u#C*c zSSX@ij48DwB_=v(r8F*h*#$3X9bSlHj<7I-zm$4lhM5q0fZ!@6rzmcSP!QFLV<~af zR|l|V@5EZo$UUe9r(d%=qNy4&eQkeJ3Gf(^%@73rh_hjaY&Cj<)!b+u8G+p&ccorm zw|8n)EI+?S^HVo@XFo=dscH6^h->N#Ohs;Z69@8?j$m%q4R|+l_c?Kj?5g3mmLWs; zu0VKCzAry`H2eN4!e8Qde%Rq$bw|x7>&%LIzd>Xzqr=K)L_oM~fZJR`ZjgSEx;G~j z55N$}c(A1xOoJoY;>la>*%A<4<_VB(Itw8Wl#mwLqFr8TiGhaULSJrIfKNkEn4xwP zH*ai3m8Of~nm8_%2rt0S%d|3l^S6U)&MW>ul|RO3ny2kiNmi_X3PmBkg8Oh4S|in1 z1kENm3aO|7dK-(=*!N@UCL`$-GAX}cbA3*ppX>sX89Pu2uP%P)T&p4F$aLU&+v|C| zK9(ax7AN10f@bI!m+v;<`v5rncmI*i868_t>ysQo3EGuA5+zXr*z3pGo|5VMUQ>;Gvz%gBYCI zf21@vT#aBMI|3}tTxn_oyb3D>6D41{>h`Bz>lLT+r`s3|gWRm|G z9Cq;WenB$az@H$0`)Qq|Zdx|lp2;nn-1TP2xEZ;33|~7ocJ(Ug#*R*m*mv=TF0Qey zuy8?lrW@OUJioG7RQSUY5>jF%Hs#0zYFvuY?sW@HCDyBNnS>LNClAW<$pjm5Xk-7@ z3o@GrM90tqQd%wH!sKDPFQ8Kc7`wF87rMO~I>fUic!{tB2Od~3PLyHzDIW{gVH>JN zzS>y2?qDy&UkWTuf4(8pssvbUH-pGM;2YsQCh7L$rL@|B2^yN=+g(-U(X?kNJ*C zY@(Lu^{>P+E6sD$F>{!^ZGyPhyqbV=UdcaLI32n8UDyxr&2pKFv_PSUm8$Y0rXF{A&Bkq_8BKNFEX<8;J#_aB0#SbMU z2#XOsx8lw%hm=l)xBK}FE-Q~J{6Gp!`q|_ziUz~40=VJIU^Ne|@SX(*O)l6?e0n5V zNm6&KZ=zh`#h6^r6HOfT9# zzv0Rl+>=`!ro&sdXl%N(V5AF;9pIo_%(D8Uu{h2KXq4u#&Q%YSu(Yw}E@+}*nk=p} zj(V*ENDlaKd~4Ag#vs9@A}ruzyD0F`4CmegQ@4J2rEp`8;rwE=?R=;t#2x#tV&~3o zgq!DGj9uh3q2E~7M(YFb!bDlwN}Jo}PsbLAap-*KN^9m41)F3u*vZJ&M*ZOtkP~U*@wN>zDSm zmvIVnM*S;R671uegF$g?HnPdW^XuBx!-~3px6t0+CN+^3+nq`y%Z+;|D(QW3JfZ%V z5iuQfU!91ARj`Ep#-8~IgiV0#R&G>;gHDjfP&f>^@2Ci7t$*u*YaRdg2HcUc8c^zR zUG8BtWvnm*oJ_LQ3U)}Hc@Ki6MbtTjYm6-ejr-M|wvE(z zVv}P0kR^nsziWdE-$ci+e#zQ-tnlJJ3#vPli(*c;GjICW1j7283fJR)XvHA;&2o@g zXCcf!AW)#BRZ>C5(NRBk>ywPNfR>Rzq;ppY$V7{*Tx?8I#T9&zP?X%oThGvLDn8Jj zXOBy8KVo(LKIdTprhCG~;`-vE#Hh4k=o8ZQwBym7aH#81c{tRESYWt;i^L}4B9elm z)Fz6)GUBZBt%tiKu`xJ@JD<-)ZR^@C9XQBc)BcVc_~rW<^ON=bgWE6deEI)No$9h4 z+Ub>hfBv76(f|7we9&E~2Buj*j>J;rcUhYMZdu(A+P)f@MsrFRBT}+*5?!^a`4HUg z$qJQx-<9*fkNH6olmBE|hOso6DvC=0;swE02IH|IfWLL?44HWd_})d?gQL|l;)I(z zuJ@K*xegZ60TJd+dwtvRm)1A*_Q6IV(6Y>%`78r=Ca4@XSq5Jz{~_75=dRRWTJTa0 zDp-A{hvt2ds>R7efgd%qlP3W9Ucfd)S}20|jH_oF9s=$$&Hq=^BDU2jl7!0-4UbBh zg+ec>h<8S2w8{bp6xnKkU$2dmo%91g?tV{tB>cX>o3n3+474V<1`lJE&Ugi(axPFL z=?Cr0KD05t%i+2ioe2R=e#vZSdQ1Y^r!A1OGy(dcbeSfbnToh7!ZE3Ja@hjk+t40} z+VCWxH%o3)qmd6L;lQ;De47W5EfQq-S=$|}6fgfW8)s-Hovg=zNkk8uOsq?82&v(n zy;lbd-kH<;O~1zIJiMG+o_F@&E#IL3gk8JU=JuMZm1NjloE5Ns8+V|5v(ldQ59ic< zlXcJN!e$&??VVCx`41DkM6!wd2+p#LlNx#yveO~LZQw6)q7m3px`EF%&dIj0)CYm@cp6`R~p}=@3_myC9(f_otsBib7kjP>Q%YY(oEl7 z6Jm4hg+lUTFyrEr3&N_~bCK36x*H&~G3MoarC&}&dH?1S`DIz^Q)vTRx!ql`)unn? z(1ZX>rUNmK<=mI%V2misAV!d;hKV=~#Ol*!zcaN)y*%O#zVz6nE{z^C{?;JxhF#IsW+q}xc~Y(Pds56NhE)q@m>l3O)FH}TV_NuxGn>zp4uo4g z2UoHB1En6IQ9d7l>`Wg>A#RoO$ciYL`=ud;C%-q_K}9SlU$0=J5YP!d4Jo|lm?OT$4m~WUkJJrw* zt?s_RsCiSOwPTXYY+VNap48tg0xM`WFkM_@ABX}<1K(I%pi*`U&0*+^Xb&c#twS>a zMyB(&z$KaWDrO)nPq2d|{7n{@+34P`HvkF=;qB5F*s2vWIOe*wK0h^EKy0fL-+SV= z$HR34xIJ0ioFJ;NZnXK<&Ws(L{_xVP`(@7_Zr4{Zp5>}$xdp4emD4sKEog{aWXaIN z>@0}E_g*d`4*xpcv z&G&oF4?0)%`OLQR;+o3Of}l^aXPpKPb^W17`2Nq`+lQ0lrElg(D{0*y#4zFE)|fC zN1hjUCnSB%?-?^^*i60YN!isWl7vS*;KLqE(c`mC+m>L@V|c0h7s5G3b3>`DwsH^k zQDAk?ln^2EmM?1xGx=|Bg1f9P)ndobs9KQQwjAonHS zuPcD|05mS8>d9Lj4vEk^@ilBIK=v49fbP3v!&)-L=5mU|e+U*epTT@Ne(!do>{|78y3(Xv7ikSX<4Dq&moypxu6llKsYy+Clph~S!Gd~Tue zcmx!t58$k(n=a!l-Lz9MBu5vcwe#>w1;{@M@}y-~KH%k9iMKx)Ze_h+uL%@5*FTk= zk|Q?Dl&A407ud!2$Ulj@+N2?ieKOKi9D4xx58<-7$j?od{Xl7g_i_b)zfQlUdjT=R zcTN!C)J6Ir)$+QOLY63!qA-bxr%($zKX-ogWx(HVLZ%bEURL@(q0X$4-hOi$2bQIU zUI0ak@&@9B>HV6nyldb&u=kNJ%O`5T0UikS+u~n`2*@&w-PgRQ2jfoSDIhQLZ9;S> zEtMZaCcwpz13>2vowpGELqJKD0L!!(b=r>)kjuxtIYy)AjT4sRZ0w#Ql9ey+)cCwz zQ#0xdY4Hm00flY(YhOKR{W}KP8jwLvtcgNkZWRhjO1n(11-rdtEq*5I@*>N^zs}n)CR3n&S;VCOm=w#k!HOw zwjb=TeRVaAH~xI|;=2Eab;0ZSXp{H4pfD}-?jEUbYy6rB1++PXU&@zE{WffUb$0XC zszhNQk#)>(EOhHk7ZDu6-6IhK+md^ThMd(+P4uAC2|Q95n=acf_5r~Nq41wDN?n$; z5`0%xKz$?Hnx#&JVCrZ8-J%_B;mPjAR?SA#0qH_+i+1VD$$&7w9L%?~^1v%t4jp`3 zL4P7Ch>RV6xUvbSEs)xrb`Z>DyiVE!xB+*QVDJ)LYI zc#9OAn&U{Fyr6x!1Lo%Bzer8d;BR*f5GlWV*`+i+B|RT2)E+f@4@U7cR-5rby7+5O zW&Z44i@cft;`OK0d)4=Z`ck&R%p&e_6u)vDZphTTVnOVaM~NsYMD(?%NQ}+ao{xPr zH@TZ3%_9`NwFgD*G%RJ!%Cx^*g1 z>-v}T&C6%B<4eJ{tVZZV!cOUo5S^|$6+vd406mJ3E+mS@UDuA(1fnlgrlXJ*; zgx4@$f^sRrNWjJq`DgKc8w&oYmXF3Dz zdPPw120Jwc>CTt_4xZuU-oIAW4e`l7vOrpzlg?~Cfbz`lNe`}?&&3qvf-G9;Hf7zz zVv`(q+*u{qn8|J?guQUJuy^!}uqQqJ!iO&&kzsv?9Q-Tr1HRIwqL(P*#~?UhFqIjA z%%&JBPjny_}P_oqm5;7lK)9UV+)PFBP;DbrL z*lcj$UC@30x6I~NP^N$a+ha_P?L3D^Dyrem70keB$A})*wtu&TQ9T!W_%o?i=&^N! zM6u4I_yu9VtcOxda0AjUpH2lvb#fHH2X5^qYJnu2lg-5^hhoei4?Or;PpamERN6V= z*Y3IFye|J$r(j@}Ybq%(n5Ovm_-5SaeJRGorZwwWX2ow;AMWLRuGBMdGVgZ%7IB^5X&==#yl!B;-x^2_&D=dNgsN_>vz_x+p6~PvK_Bom3 z-??X+li8DpoJ@zxrPD>xe<^Hg5M|@kwG_XdrcZDF#wEzQg!3pA|G>Sv)k&@|G2r&^ z)%P35IP1ahR&pJ5O(r55+Q%(;^Ce22nDq$0aTwjnQu{OK;7@M(N`dsRKkz>n{c z7wG})j=lEa2`i5p6e<|PCC>gaZ|rdyiLMUzmdvES5Sk@z@Rw=lK7tID5YYe|!dIX2 zEf@Yn)CID;os2iDiFO1pY28zi1*$97$w1jPLJDrnR>=e#Ya`12RRh1y;v;Wz-AB0t zo*aUiXdEBspKbXiDCkT`@vhcB5w3Zwe&d!Z#h+rc_s) zn9cilOTC~wFtNu5y^n#0cIwhudO)^V@X#T0s!e}c3rO$K^HLyzGs1`zrIu8g4;uh8 z>q(-1r~OiD`AjCgtp>eyUS~MWuB_Fg@R!apWRdT)*{`s>Z;XiqZrp-$^g)Vq-O_tY zFuK<;Q168N2iH`-K5c)jX4~+m3qBdOjhsopd3i8t8}S_+qNOlV&xip*p6e>f%HKd< zP;81&0v92(l*hx?jqf}BB!oT)g2?vUg>)_J5p1P`%!t&QcoFsRLdWEG*>P?o7{7oT z50jw)e(;DIJ??rHr{?LUUK6vS$6sTpEwAaRZSEU=%T|?XMNpb2_H$S8X$RBR4ey5F zhq1F1(^c$0d=3Z>T;`vI-m?Z{wniz7(qa{Z^Rui2nRNXFT-(Ih?o)DVm<^)=C$5CF-8#i+uqSQOG`MJUcG+tA=51t7oCM(H8 z$NvOjGb`qJ0qSolTNPGxl13nuoU+N#o;)rcl~>+ezg1N8S?QSVhci>Oy_s7(AUo<5`UcJ2YPK;~ z{tJYN>d0agxCDuEuFnhM6NjC;Ki?~rvh~9xN+sV?47Pd z@4u}l2(~@)xKFETE#FbouAg5WP`Y9xuiB(IT$3ex0rq0_&-1SXfLx(dy(sXUQezsR z$W*328y@8-&_dRt*=z~$mvq2m6f98op#A^M_5bW5lwdtt=>_W_zq>~`O(ur;x)tB( z^5L&V{(a$(xd|LpqK+$H|3>G^Kb!c1C8vXG;s!2|)&5P%bm_AJ^>Jv|24xFS>I@og zR6<0^gCO9kv=P3yqC`x27-assSvJ$N`~a=W@UQp`PgkHTv6IJS)mAk|`s~CHpP=+j4!?3ODuVOoJ6!(I;n7&|k0LdD zk&nKG&YBgoJ-gP)P;nBNkg`QCJqY)6uK*t^-dI!#;v(>yFh{>0Crb{)uWSw?eTcX3 zV4fZ(33VHQ#H1JRlCA{{$s>#-U|!hHsPTnUlLq!zIgPrtCCs*WZY#fm4=*LGmDteb zUG>AgPX^0pR0hju`#c8O957d2tDY{~Dx`F)sfZK;1EQ+SltEM=Xib?g6INz3G(p8_ zeI_|NFv3OJ)Gjh0b=XZm5ku4gZ>KAnL?7zX>O_I6r>1i7T0OZ#NY?H@|5k zgI5Fb=VwoRbX}61P_atZ)~~Fe2s)cDp!9!;_5(unwmDYgv8Q0wVVuTDl+J*74w*`- zQcD1ke5D5Yotvfu!sRZ6W=AoUN4Gf4W4F4buGT>IgBzjhz6*iR=9>z5WWuSJ+lCt# zItz>uloCA zD}vdS)0~(3hR@_zo+N$$t<&#YWMw|*x$^1|(a#YpBrn?5;-PLJg|*#1Q2MngSIina z(gA5$Z7P30iKkuRT1D&wPn_5D29Tqd9rl$o(hFoQWaa zr+cKa26?7zi7rJcwT+tJLRCXSw2n664*;#T{8!At0X!Kc`xVHP4v)Xh3;3E)fOSxhyNop@@ehBv1fk=6b%!;&Uh4o;c;&?NF#zvI^ zg9e?^oITeYb{5TnaB%{EX(Ot>1PJ)-YkH2Gf5{c4)$deAcj64Qmh zodB5JI-nJ&V7xIMeypI@F;NAauJ;uxI;r&H!zlr-hbiG}0(zS-z{^5r5c#+~#rmxrGl3n^Ve3)|es zT<6+zl(aEJtxDoQBz^GB6hXIOY$&^6DKf~SF=oRI;9O$LAP*Ui+GH_OJv0c`G~{qj zh%g;^Yo{K-hZ=LTxLd(Gn<>djm@jwlZ*DcK;S&O9F2tc_F8< z9o{o(B@1s8Euar5oKURPVtwG6=&N)lWks+xtko~u(*VM*4|Cd{>njWStML3t#R)V! zGUUMbC34%@te?gy(CV*dOYId$#?98QzFwFcTp6JvRU&>wx|Ib7vtYJtpQM=lK%%&E zgmp9GAiR^59rOzaM%iKAA~TlfNg+MiJHytW$Z5Jw|6{o!@2xj(?Xr;^}VYrj5}=I7(8@mMQXzlM?Xu7 zAW_15p8@W2L-3q|MhB%%6LYjtazhw#A0CR_OGx0vwEep!8*WfXKQP0RvC@dYh8CEk ze>&3i3b=NSHdiq7z?r(1uHWOA;9C{Ey(He|9&?Nuh^nsqcMBBa>Pv;qnZCwKZ)wd8 z9Jg0kg@S2nTgr7M-&TK6oIx!~=+aYUCPqJWGAA5r0#PubPR9r*rE6@c<{V`|!Bs?3 zLkhK}bycEt$*Ha&!#Cg;aZeG>Jj5w)mIcqqdH2E>74`<3tKe#?&O|Is;xSFGC{p72e@%mk-Y^#ZkQ>DC|ewCg*T>jiND}yx^*ZG zy~)h&coC<2@~DiGtZ)>94*y@~4J}$Y1m~&rOiiKS;nHgM?jRRYJnEA4R_Qe%Dy`su zh%{AKqxR7D1EXGfH}oqO%=4c#E){El)-CL_M4VuLaz@4S$xMuaR;gV>C~x2SqeKus4(sf4IuJr__^yZ5aVk ziLb!fgY83$G>=lVNt8o%`}KU73;MYYyn@$v?`zhZ>%csboao9Em3JpZFA; zY-t$1IC9Jm*v9Jc>Xq7{P;;w}nz1mQxB_h7*LP&vWpJm@yAi=$C!wNY)WGZeGUCw0 zwjUs3wt%R;`8T*MjV2eL27gbzaJB4Y;;%qe6_70dbA)+VVLzfki@_P#X^s^u%Z}W+ zz=FOtG_MC@MA>`kywqC&@_9eWscOpLFhm!t$4ZOALrZ1q12Im$n)y{pXThFsCDpZSa@$cUp9MMk97A}g=# zTJT({(?{T|lqCvk7pdPvYdGolPO07Kp=^isCu}G+A|BWkw+PXy_-qew%u&aH)>?qm z9eh+z^Q0EHaZ@@G%Fn@vT-D(BSBHLc{w09g{Uy+wcPu3R8S`McA^wVdy2#mwAkpS| z?RxEVJ!iB|5dZD;W`@!-j8_bmLAo5HgdbCMGMu2qLG(TaQoR#AaN2>O7Z=h49m8G# zpdppO4N1`6p~_K)UnxHCqg?6Utald36D$V(8gEXYxV~_9II0S98Q1IgWtoSb2dOEr zCn0J1jM~C?&FGb#L7tSU&E+R64m#}h{B$@bk#Y~z`w5OTWj|kDK1Bi_TCw2Ip8!7^ zkl$t3oBBfL($OFtcjGxhXTg9LiKgc!WuLgqFX4Q4jP%8Za$jH){R{!OOg|!oPvSon zcy&39(T!F!vga>PB!WH1X@|3sfj=;?q&3uuk(aN$U#*nVtTAXU3*rZ1TGj+B{tK;s z72X^1i37$EP`2Yy>>$liCS=Yp0J`WeOP1emEA(OU7IEb=zbxL=taM`0MlU2~c}dXe z3z5=dvYW3uwuV^`1=INqc%LMi>r`4RtecSd(C&H=xvaSWaAR9(!i1 z6)(IKZGylam~O^JcMW~X0s(ABB*!fBrOiU+$>v@}Vz=Ec!pR}0gLq1J069&8H0sS@ z#EDLWBaArd2w-hs9|Wk@;eBV`2DoJCcr|nMmPP2lKsnaWiz%I`<>R=ykxnHq9j0$8 z>jUNlYhLUXpqiT*)4cYFAcx3CBg8yhf{o?nW={~nc zn@eG#F;y?V9W9Qev+y;}ZQVl&B+kR2&LFfF4L8~LDD7F8aQ;%RJKxM^EXufYYBT!e zYW5gOteq?av*ipKJ8i%b_FjAzGE44d)eZer_x`)9lIcw0`PbFM_{Sp=(~b1agzeWb z=eEq&Z2EV!p%(dTKjOZhMuf=E0YK|jruh&{=tW50^=3UIma;9g2_lG%ZeaEJ9HyuRxQBWfxeqHt&$R3wRPHLn(^87*?Tw;dJQUder= z9C}#({3g}aJxNk0fFpv>>neB$3haaM3BO^3H>x9(hcK-_By($i9T?>iD0wwdM|A8_ z*<5dDLOc0B16qaQhlS!qk|S)U=Abz&TbHtj-P-pbPRzes4v;$CBZWAqM{y#Gw9C2d z!{o($rvIwx@TE%EiKx>HlORNTwd4z@t;WCRZdG)G#qC6+D18+b<0HFHcK!Ef#e0@D z5_0O-nX2fm_No8*|2zo)clWC?r~CaZ^Y>HC;_ z1>Wy1OWoWGyao2nYwPVgOE@P|ZI&6f2($OhGW7>Zv{ij4LI4%fDX508$G74RxO^G}8iu|=3` zktgFAW+IH;2!+DLU+xVcrO;<#w4I@os(_1_rtUyA%)J;I zO-s|Wtgl7QtI_)EChHnu`tGMcp^(pKb=LK3dU$r}SKF!CH-(FLd`|dK4$J9>_6+42 zn#TN5M+@z)S>;V5Tz#stOP2h5iuKBB1uRMRX)DExyyB1pxQ$=}oHeqzPw-ZtMd>L1 zRR-Es|59kmu9J3$f+N!1j7V|13ag3CPS7ri6unWn-sUr_DuQMwAzTGg2u{7==+P3C z0lX_;HLkKRvDepWTr;)n_{*bn*RPAKbG)DFysI)!TAq&`31TnY^&|FIG#PqsLVn zrk~!JSm&KQ?L*{dJZne8+BH@LssC=dP1XM1q1?l&2h)SnMat@bx2QTDRJa1^HJ}Fz zhXF&1!5-O86Km%<*&s|DI5=;3D9OvS`60qfxtH=&pUk+cHI`!W@(Pr@#KqVL#@L@5 z>v3q}u}nwdel;gbblf;mj~`cwLa5Y@>i5rL11YOj2Kf@NU=S4Pg5<%zq_Y!@yOy&i zwMRYG$vTe&&O+9Gh-$R@gHz+ENoVoKLJLganf0dKT_$Xqmi@Xf^uKs4`#WZEo?qu< z_TDF{JjeCjn`lgpQO%g6-`|(3^fG%am$-hjt848s8+qhLg$A(pf^c^@JSNi^)YJ$D zH(MjftNnIp{aOBg?Vv-04lY2Ac?VM1i=kt(y&uZDOi>=OcBp zK$`&(!VU0baMef}*G16jL7{{CzZBXZO{_S`K5LE(rtLwSbB3p+{s8!0LifO?N$A7Q6x!s|a$ zMSx8=QWa2P=PRMya;aMYzHZI8iOH053lpip-QJ!6bV_)PL{GEU|2)?{QXb=_rF$9Q zX1v&*v>Y2F#JrEm(|kgd(?(y8Gp za7Z_>xV$L)*dSDktQd{{$K0xIE(UQr5bJ6B#0|LZvZO3YO+BJ>ns!g?=4ZpE*KzKX z&0iwD?sfI;d9_fuuxeI&tY8Em+QRemL*{5iOoYFSD4|Dego2Os_9CGwEtRa2Ez)DeiVsmyRSfRSAEDGyJcK(EIQqh^CPvGVS#0(98IUi(EQfb6zi% z^0K!aqr*m0OrMx=x<=XFSF4}c!Kz)CK?)p^r)E#$yvI34OG@@ud6;Uo{CF|%@t830 z6|QyU-!0*N$h?ZmZW^EDA+20o6Vmu9!jP0zN_qh_eRUw!ng|(gwBp=`srG|(m2|Le zo{PAd-EB8>fB54Dg6#Ju72&jw^{2vOn$mqx_7_%nTEs{C%wPM$zxQNY#H4*?#5>&F zdZ3CY3|=E0qA>Q2EmRfZPL7Hm~bdjNJ%L^ zEZa^gou3oZbl>5`WbV?cfxbI$C7rb|5N~`=mYP{&wBq7DYA*IK^LW5pAGxz%I=><# zavz6T+^ji|D9h_FqpUI#p*O1&UEh4P`Wo0f?B-CgShOrS2l3lvIO)&k6O9rDsjP$9 z_Z7x6a0WkBL6>QBI`n)%X|@D-5>bnqwTmN5j=Yv#R9cQq@nX^^>@N<}Hz2$Egk2-6 zW{6Whqbp!|Xd~)v(FJbS&*ev-$u3tJ{jw50RrYw4j(dMHu+gf@<5{5dfk3v#af<}g z$h-;KF$p+#Xn#rk3{h`%S1l1mfH$8W112_uKMdLnxW-7E{@v0^G#pVLauFdP*cq16 z06nEDL>1rLWe6E1*oaVprt--F|3QUo^^OP$STW_>+ZBX)oE>F)dr6bpEmTg5NV~?&?XXVjV!zm#)NhaQfl^&%W4C3@0b^S`UpsDvyhCnTJ zh+qp0MT(dADxA4YEu^#wqB5s09@q_V&Prow*-KQ0`)#I)lVQWKrGq}{n#fFD;}bsJ zYmjEuH}3v&^(SnkL3dOzr!uqaboZpg-)WYpuvd4z>(h>{$bEu!7j7zrBHKH4r>cJ( zZ@HYFJK^yA)mck!)h}P@?ai>;@Y~s``O1^8r2@qfrNe6}vr@KwSr}9(14sHE(k~FT zaOJOKVNsz`!0oHX4{yrut68?;BA<^f#0Bk1X4@2ez*h3Har-_8=z|59@x#muUSw-i zt;%<y+=`hZonmE?{6lgZT~bKxi<=)%WI}qx9rR!X28m0=RUutDzp=_04_#A$FH^cjS9k8kL}02W+Vc|+T$}Z{ zQue&%)#!=830is|m78uOGq#mD$6i&77^K&b!hOS=U@lF{PF_W8Fxx9JPFBDfnj)-z z#G`QAhgc^K=|m;jl12r+BG73@VV4eC`gpF1e=ENdHF+i}e!qM$>?HE2#_OJsS6q1y z-R?Ypl`|dAOSLSw^Zp{I&m*72D{TieB6lTw4Aac721p!^n)+1d6`8P~$`wlraL7hD zB|~;4WG92!t$UsH0d6mwOSB+^d$5b(hIMrqQ;XRic+xS>y;Vv|Cq$MZw2G_yf?r}9 z(3Z`mlMjxLME`y04Hyku?fuNyvk{f^_I>WN1h?Af;}w!&3z(qPw$yX}{;if98JXC= zAE7;wm#Yk5I5@%sEi{%Gy}*lm_JLdMNq(1P9;Kp)>_>Bc);5eKk5KfMA3^@=mLY6s4O4hVDNC04dCu28boj{9^V_0N2NbMtY1SYZOpAt@jU z)*6`@G>1kYWT)<*(iP^mRu%bmx~`_DqCKcAsdnM2?HC*f_A|T__zOTBh%6#pOA__L z^{{4OST5UcPkG(!L1Hk1g#79VXN3U~0oR<&Ra8Bf58$1u#@O){6X3Qq2ZhnOwT zD-7`Xa8f>6irA=*{*4~dUKHl}jLJDrCAsH6xL4|QVWV$MWZeJnmY`r=nqudLx6*tG zH6mJIxWtH(Hun-ikK29)HhpUCUM0u8(IUzdD6g3(v#pB_h8%24=88>6U}*$&4H`%_ z%X`&U&xxkOf6uX(czL}_bPO;vui{OwGahReAA>zUG`tf3gUTGthUb@DVK`vk?>ZGx zu(xQ#rUsqK7+SIEq-D11blVT;&ZY}V2MLZc%Ad!E$mtHMGKf3JiljMbO+3+4iVfFuNjSIZsvmSSAXR7I-5IpvzfB}^KKdFFl(Qilw9ye zihMs+`=e}_yZk!WccTei@*UX$8NbEpanb;=)e3ijBxdb)7H99BH{6vjYQ=~5dH|=4 zGr_ppRrsDcyOZ-aN>h>+W@sUzVvc{SkUH)#H^gCKT#_tn_?{WD}6(GF8EknXTmrrFC< z#Su_KxY}$%T(%YMXTWr=2OFpMkF1L`dpWErwm7gUU-UP@QS_&wZC$kLaU#cpqGfAc zZHWuf^)4&tYMH(~=fm|}^QoiWoLC9qJjS-3h`c8y{>MR`{J$#9s(B7|kT@ zP>$VMAcE~zT$0p9>^RdkkjC2G$a-i;VMBL>64khL(hj`aJP+wlKv5^J63)CH!a2ZR zhUG^E0JjDTyxW_i^m4f%R(jJ{?4@=TH z8>taZ&u$ML_rbEJR}+=(GfkT<%mY|EoqP0%9RR4)XT?DELzxybXI8QT{v3$qb=&Er z5DtK)c84CbMU)8L545p;69|5WhliGHtuhTQ&WpSC8i$Y(!Oz<#G8NjRw(rY|cJ_R( zo<}tw=swMS=U)kV(ycuKvv`*CB;P$eKes`F^crP_4x|*2Iw-pc33Q65%=o?{1}6-b zS_K&nrwGyrs2alAPz!>su>S~R#4`F-4At*4h#&t4R#mgT4bjN(lJq?#Xr3Z{*niX67z2qX`+>Oe4J6dKm$pAE; zNY~PDJ3z!^4w!NP3?UHam59^~lM*}DCT&L*wjydATOOd2S+cVdz;@YfuM}AvUg)yX zn2n3`waHNl>tgdqD&3ZxIGP84|H3rJCKk0s&=TkGp4(F;top;)_V`d?PL;g8CKih& zG%lSLG|^HiV9BRuHbs%Bhz#P`LEEJ8E{fKiopCb30=As$U@YFSAYB>?8U2GL`&f7c zYb~ENXa}c8yXF>>M4vu9a^9W{8*Qq>RZb+Nal363A7+Rp#q$&{Dq8>FEjs4UEJ*eS zR@djfGp@Hh!HmeQdHf`QT6q5B_|ksjdVB?aBSxWDpGJr7!4%tp4q2Rihm$UlDO%RU zYq}27q3Qr=Qh*JSgvX>kH6mRQ@Dj@ZSPK4Q%?tSj$iG$wKtaQ!=wO^(7Uk!OaWl;O z(a@m;I8F~1(QfOe@yxfd#kndb;Av-=>@uSy=t;oivc{Pd8%vBuY({Q+dvU?R-X8RL z?s;kUU&>QJvM}T?MWUDm_yiqb7SD)+iiGKoenRa`@eN@gX>Vxjp5`Q+C==eDkkf7W z|M2#vaY^Q3+;2@&O_`eJlA1a*X{M&MxRmQuqo$5p?xH~Em?9ySny4sKZn;mcg$FSLZp;D?cB6al_5c|Np

    -YQqh$V&Y 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

      aDnv`UWRj#03|J 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

      }~*!5xV~?yEB|4TRJY;2~~H{G`kWa)qpJNtLSEq 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 literal 0 HcmV?d00001 From 7da0879106f85d3152bf80bd6d04a089e00808bf Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Thu, 16 Feb 2023 10:47:24 -0300 Subject: [PATCH 19/32] refactor(components, screens): refactoring components --- src/components/Author/index.jsx | 4 +-- src/components/Author/style.js | 4 +-- src/components/Header/index.jsx | 7 +++-- src/components/Header/style.js | 4 +-- src/components/PostCard/index.jsx | 23 +++++--------- src/components/PostCard/style.js | 33 +++----------------- src/components/ShareButtons/index.jsx | 45 +++++++++++++++++++++------ src/screens/HomeScreen/index.jsx | 4 +-- src/screens/HomeScreen/style.js | 29 ----------------- 9 files changed, 60 insertions(+), 93 deletions(-) diff --git a/src/components/Author/index.jsx b/src/components/Author/index.jsx index a665d371..c11cd5f9 100644 --- a/src/components/Author/index.jsx +++ b/src/components/Author/index.jsx @@ -10,11 +10,11 @@ export function Author({href, image, name}) { rel="noopener noreferrer" > {`foto - {name} + {name} ); } \ No newline at end of file diff --git a/src/components/Author/style.js b/src/components/Author/style.js index f3318887..5219a093 100644 --- a/src/components/Author/style.js +++ b/src/components/Author/style.js @@ -8,14 +8,14 @@ export const AuthorContainer = styled.a` gap: .8rem; text-decoration: none; - .image { + .author__image { width: 4rem; height: 4rem; background-color: ${props => props.image}; border-radius: 50%; } - .name { + .author__name { color: ${colors.secondary[100]}; font-size: 1.2rem; font-weight: 500; diff --git a/src/components/Header/index.jsx b/src/components/Header/index.jsx index 59f72c8e..1001f56f 100644 --- a/src/components/Header/index.jsx +++ b/src/components/Header/index.jsx @@ -4,12 +4,15 @@ import { HeaderContainer, } from './style'; - export function Header() { return (

      - Logo da Apiki Blog + Logo da Apiki Blog
      diff --git a/src/components/Header/style.js b/src/components/Header/style.js index bad408de..02e2f7c4 100644 --- a/src/components/Header/style.js +++ b/src/components/Header/style.js @@ -3,10 +3,9 @@ import { colors } from "@/styles/colors"; import { device } from "@/styles/devices"; export const HeaderContainer = styled.header` - background-color: ${colors.primary[800]}; - width: 100%; padding: 3.2rem 0; + background-color: ${colors.primary[800]}; position: fixed; @@ -40,7 +39,6 @@ export const HeaderContainer = styled.header` left: 50%; transform: translate(-50%, -50%); } - } ${device.desktop} { diff --git a/src/components/PostCard/index.jsx b/src/components/PostCard/index.jsx index 75c5db70..2d8f21a4 100644 --- a/src/components/PostCard/index.jsx +++ b/src/components/PostCard/index.jsx @@ -1,8 +1,8 @@ import NextLink from "next/link"; +import { Author } from "../Author"; import { Card, - ProfileWrapper, ContentWrapper, Image, Content @@ -11,21 +11,14 @@ import { export function PostCard() { return ( - - foto de perfil de Luciana Kyoko - Nome do autor - + - +
      @@ -39,7 +32,7 @@ export function PostCard() {

      Reunimos as grandes vantagens do editor Gutenberg. Você precisa considerar o uso e explorar os benefícios desse novo editor do WordPress.

      - Ler artigo + Ler artigo diff --git a/src/components/PostCard/style.js b/src/components/PostCard/style.js index c1cdde76..a3428d24 100644 --- a/src/components/PostCard/style.js +++ b/src/components/PostCard/style.js @@ -1,7 +1,6 @@ import styled from "styled-components"; import { colors } from "@/styles/colors"; import { device } from "@/styles/devices"; -import { backgroundImage } from "@/styles/imageBackground"; export const Card = styled.li` width: 100%; @@ -14,9 +13,9 @@ export const Card = styled.li` &::after { content: ""; width: 20rem; - height: .1em; + height: .1rem; - background-color: ${colors.primary[300]}; + background-color: ${colors.primary[400]}; border-radius: .4rem; position: absolute; bottom: -2.4rem; @@ -43,52 +42,30 @@ export const Card = styled.li` } `; -export const ProfileWrapper = styled.a` - display: flex; - align-items: center; - gap: .8rem; - - text-decoration: none; - .profile-image { - width: 4rem; - height: 4rem; - - border-radius: 50%; - } - - .profile-author { - color: ${colors.secondary[100]}; - font-size: 1.2rem; - font-weight: 400; - } -`; - export const ContentWrapper = styled.div ` display: flex; flex-direction: column; gap: 1.6rem; ${device.tablet} { + flex: 1; flex-direction: row; gap: 2.4rem; } `; -export const Image = styled.div` - ${backgroundImage}; +export const Image = styled.img` width: 100%; height: 20.5rem; - background-color: yellowgreen; border-radius: .4rem; ${device.tablet} { - width: 60%; + width: 50%; min-height: 16rem; } ${device.laptop} { - width: 70%; height: 18rem; } diff --git a/src/components/ShareButtons/index.jsx b/src/components/ShareButtons/index.jsx index 4f8149bd..bbd0695d 100644 --- a/src/components/ShareButtons/index.jsx +++ b/src/components/ShareButtons/index.jsx @@ -1,23 +1,48 @@ -import { LinkedinLogo, TwitterLogo, WhatsappLogo } from 'phosphor-react'; +import { LinkedinLogo, FacebookLogo , TelegramLogo, WhatsappLogo } from 'phosphor-react'; import { ShareButtonContainer, } from './style'; export function ShareButtons() { + const slug = 'testando-slug-compartilhamento' + const buttons = [ + { + label: 'facebook', + icon: , + href: `https://www.facebook.com/sharer.php?u=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + }, + { + label: 'linkedin', + icon: , + href: `https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + }, + { + label: 'telegram', + icon: , + href: `https://telegram.me/share/url?url=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + }, + { + label: 'whatsapp', + icon: , + href: `https://api.whatsapp.com/send?text=${slug}%0Anome-do-site.vercel.com%2Fposts%2F${slug}`, + }, + ]; + return (

      Compartilhe este post

      - - - - - - - - - + {buttons.map(button => ( + + {button.icon} + + ))}
      diff --git a/src/screens/HomeScreen/index.jsx b/src/screens/HomeScreen/index.jsx index 977c29d4..94b82737 100644 --- a/src/screens/HomeScreen/index.jsx +++ b/src/screens/HomeScreen/index.jsx @@ -11,7 +11,7 @@ export function HomeScreen() { -
      + @@ -24,7 +24,7 @@ export function HomeScreen() { -
      + ) } \ No newline at end of file diff --git a/src/screens/HomeScreen/style.js b/src/screens/HomeScreen/style.js index d21da138..f331a22d 100644 --- a/src/screens/HomeScreen/style.js +++ b/src/screens/HomeScreen/style.js @@ -1,39 +1,10 @@ import styled from "styled-components"; -import { colors } from "@/styles/colors"; -import { device } from "@/styles/devices"; export const PostsListWrapper = styled.ul` list-style: none; - - width: 100%; padding: 1.6rem; display: flex; flex-direction: column; gap: 4.8rem; - - position: absolute; - top: 18rem; - z-index: -1; - - ${device.tablet} { - padding: 2.4rem 9.6rem; - top: 20rem; - gap: 6.4rem; - } - - ${device.laptop} { - top: 2.4rem; - left: 28rem; - max-width: 80rem; - gap: 8rem; - } - - ${device.laptopL} { - max-width: 100rem; - } - - ${device.desktop} { - left: 80rem; - } `; \ No newline at end of file From 63b19a95c84fc2a75727e1271558a3978277a6e4 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:57:15 -0300 Subject: [PATCH 20/32] chore: install axios and date-fns library --- package-lock.json | 170 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 + 2 files changed, 172 insertions(+) diff --git a/package-lock.json b/package-lock.json index 8b616315..e0cea9ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "0.1.0", "dependencies": { "@next/font": "13.1.6", + "axios": "^1.3.3", + "date-fns": "^2.29.3", "next": "13.1.6", "phosphor-react": "^1.4.1", "react": "18.2.0", @@ -480,6 +482,21 @@ "node": ">=4" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", + "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-plugin-styled-components": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", @@ -554,6 +571,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", @@ -572,6 +600,18 @@ "postcss-value-parser": "^4.0.2" } }, + "node_modules/date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -588,6 +628,14 @@ } } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -596,6 +644,38 @@ "node": ">=0.8.0" } }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -657,6 +737,25 @@ "loose-envify": "cli.js" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -779,6 +878,11 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -1194,6 +1298,21 @@ "color-convert": "^1.9.0" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.3.tgz", + "integrity": "sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "babel-plugin-styled-components": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", @@ -1249,6 +1368,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "css-color-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", @@ -1264,6 +1391,11 @@ "postcss-value-parser": "^4.0.2" } }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1272,11 +1404,31 @@ "ms": "2.1.2" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -1325,6 +1477,19 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1391,6 +1556,11 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", diff --git a/package.json b/package.json index 32cf63cf..6b387c22 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ }, "dependencies": { "@next/font": "13.1.6", + "axios": "^1.3.3", + "date-fns": "^2.29.3", "next": "13.1.6", "phosphor-react": "^1.4.1", "react": "18.2.0", From bb43e83a602c55082209b8192b9e283bebfb2143 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:58:08 -0300 Subject: [PATCH 21/32] feat(utils): create formatDate, getPostImage and getReadingTime files --- src/utils/formatDate.js | 10 ++++++++++ src/utils/getPostImage.js | 5 +++++ src/utils/getReadingTime.js | 6 ++++++ 3 files changed, 21 insertions(+) create mode 100644 src/utils/formatDate.js create mode 100644 src/utils/getPostImage.js create mode 100644 src/utils/getReadingTime.js diff --git a/src/utils/formatDate.js b/src/utils/formatDate.js new file mode 100644 index 00000000..620ac449 --- /dev/null +++ b/src/utils/formatDate.js @@ -0,0 +1,10 @@ +import { format } from "date-fns"; +import parseISO from 'date-fns/parseISO'; +import ptBR from 'date-fns/locale/pt-BR'; + +export const formatDate = date => { + const parsed = parseISO(date); + const formatedDate = format(parsed, "dd 'de' MMMM 'de' yyyy", {locale: ptBR}); + + return formatedDate; +} \ No newline at end of file diff --git a/src/utils/getPostImage.js b/src/utils/getPostImage.js new file mode 100644 index 00000000..4866b89d --- /dev/null +++ b/src/utils/getPostImage.js @@ -0,0 +1,5 @@ +export const getPostCoverImage = (post) => { + const image = post._embedded['wp:featuredmedia'][0].media_details.sizes.large.source_url; + + return image; +} \ No newline at end of file diff --git a/src/utils/getReadingTime.js b/src/utils/getReadingTime.js new file mode 100644 index 00000000..75797de5 --- /dev/null +++ b/src/utils/getReadingTime.js @@ -0,0 +1,6 @@ +export const getReadingTime = post => { + const readingTimeString = Object.entries(post.yoast_head_json.twitter_misc)[1][1]; + const readingTime = readingTimeString.replace(/\D/g, ''); + + return readingTime; +} \ No newline at end of file From 1d8888569992a1c89bbcc3b904e2ba588aa15a7a Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Thu, 16 Feb 2023 15:59:15 -0300 Subject: [PATCH 22/32] feat(screens/HomeScreen): fetch posts data from Apiki Blog API --- src/components/PostCard/index.jsx | 38 +++++++++++++------- src/components/PostCard/style.js | 8 ----- src/screens/HomeScreen/index.jsx | 60 ++++++++++++++++++++++--------- src/screens/HomeScreen/style.js | 23 ++++++++++++ 4 files changed, 93 insertions(+), 36 deletions(-) diff --git a/src/components/PostCard/index.jsx b/src/components/PostCard/index.jsx index 2d8f21a4..16fb06d2 100644 --- a/src/components/PostCard/index.jsx +++ b/src/components/PostCard/index.jsx @@ -1,4 +1,7 @@ import NextLink from "next/link"; +import { formatDate } from "@/utils/formatDate"; +import { getPostCoverImage } from "@/utils/getPostImage"; +import { getReadingTime } from "@/utils/getReadingTime"; import { Author } from "../Author"; import { @@ -8,31 +11,42 @@ import { Content } from './style'; -export function PostCard() { +export function PostCard({post}) { + const timeReading = getReadingTime(post); + const imageSrc = getPostCoverImage(post); + const publishedDate = formatDate(post.date); + const isPostAuthorExist = post._embedded.author[0].name; + const author = post._embedded.author[0] + return ( - + {isPostAuthorExist ? + : + + } - +
      -

      Titulo do post

      +

      {post.title.rendered}

      - 4 de agosto de 2022 + {publishedDate} | - dá pra ler em 5 minutinhos + dá pra ler em {timeReading} minutinhos
      -

      Reunimos as grandes vantagens do editor Gutenberg. Você precisa considerar o uso e explorar os benefícios desse novo editor do WordPress.

      +

      {post.yoast_head_json.description}

      - Ler artigo + Ler artigo
      diff --git a/src/components/PostCard/style.js b/src/components/PostCard/style.js index a3428d24..b1a754bd 100644 --- a/src/components/PostCard/style.js +++ b/src/components/PostCard/style.js @@ -129,11 +129,6 @@ export const Content = styled.div` } ${device.laptop} { - .detail { - &__title { - font-size: 2.4rem; - } - } .intro, .link { font-size: 1.4rem; @@ -143,9 +138,6 @@ export const Content = styled.div` ${device.laptopL} { .detail { - &__title { - font-size: 3.2rem; - } &__date { color: ${colors.primary[500]}; font-size: 1.6rem; diff --git a/src/screens/HomeScreen/index.jsx b/src/screens/HomeScreen/index.jsx index 94b82737..5a7213c6 100644 --- a/src/screens/HomeScreen/index.jsx +++ b/src/screens/HomeScreen/index.jsx @@ -1,30 +1,58 @@ -import { PostCard } from '@/components/PostCard'; import Head from 'next/head'; +import { useEffect, useState } from 'react'; +import axios from 'axios'; + +import { PostCard } from '@/components/PostCard'; -import { PostsListWrapper } from './style'; +import { + PostsListWrapper, + ShowMoreButton +} from './style'; export function HomeScreen() { + const [posts, setPosts] = useState([]); + const [page, setPage] = useState(1); + const [totalPage, setTotalPage] = useState(0); + + const getPosts = async () => { + const response = await axios.get(`https://blog.apiki.com/wp-json/wp/v2/posts?_embed&categories=518&page=${page}`); + + setPosts(response.data); + setTotalPage(response.headers['x-wp-totalpages']); + } + + const loadMore = async () => { + setPage(page + 1); + + if(page === totalPage) { + return; + } else { + const response = axios.get(`https://blog.apiki.com/wp-json/wp/v2/posts?_embed&categories=518&page=${page}`); + setPosts(posts.concat((await response).data)); + } + } + + useEffect(() => { + getPosts(); + }, []); + return ( <> Apiki Blog - - - - - - - - - - - - - - + + {posts.map(post => ( + + ))} + + + carregar mais... ) } \ No newline at end of file diff --git a/src/screens/HomeScreen/style.js b/src/screens/HomeScreen/style.js index f331a22d..c6e77173 100644 --- a/src/screens/HomeScreen/style.js +++ b/src/screens/HomeScreen/style.js @@ -1,10 +1,33 @@ +import { colors } from "@/styles/colors"; import styled from "styled-components"; export const PostsListWrapper = styled.ul` + margin-bottom: 4.8rem; + list-style: none; padding: 1.6rem; display: flex; flex-direction: column; gap: 4.8rem; +`; + +export const ShowMoreButton = styled.button` + margin-bottom: 4rem; + padding: 1rem; + + border: none; + background-color: transparent; + color: ${colors.secondary[100]}; + font-size: 1.6rem; + font-weight: 700; + + position: relative; + left: 50%; + transform: translateX(-50%); + + &:hover { + cursor: pointer; + color: ${colors.secondary[200]}; + } `; \ No newline at end of file From 7a4cf3920e290cda0fc6f6ee701a919ff797ccdd Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Fri, 17 Feb 2023 15:48:50 -0300 Subject: [PATCH 23/32] fetch data --- src/components/PostCard/index.jsx | 4 +-- src/components/ShareButtons/index.jsx | 15 ++++---- src/pages/[slug].js | 22 ++++++++++++ src/pages/posts/[slug].js | 2 -- src/screens/HomeScreen/index.jsx | 5 +-- .../PostScreen/NextPreviousButton/index.jsx | 4 +-- src/screens/PostScreen/PostHeader/index.jsx | 34 +++++++++++++------ src/screens/PostScreen/index.jsx | 23 +++++++------ src/utils/getPostImage.js | 3 +- src/utils/getReadingTime.js | 5 +-- 10 files changed, 79 insertions(+), 38 deletions(-) create mode 100644 src/pages/[slug].js delete mode 100644 src/pages/posts/[slug].js diff --git a/src/components/PostCard/index.jsx b/src/components/PostCard/index.jsx index 16fb06d2..9500ae37 100644 --- a/src/components/PostCard/index.jsx +++ b/src/components/PostCard/index.jsx @@ -40,13 +40,13 @@ export function PostCard({post}) {
      {publishedDate} | - dá pra ler em {timeReading} minutinhos + dá pra ler em {timeReading} minutinhos

      {post.yoast_head_json.description}

      - Ler artigo + Ler artigo diff --git a/src/components/ShareButtons/index.jsx b/src/components/ShareButtons/index.jsx index bbd0695d..fdfdcf10 100644 --- a/src/components/ShareButtons/index.jsx +++ b/src/components/ShareButtons/index.jsx @@ -3,28 +3,31 @@ import { ShareButtonContainer, } from './style'; -export function ShareButtons() { - const slug = 'testando-slug-compartilhamento' +export function ShareButtons({post}) { + const slug = post.slug; + const link = `https%3A%2F%2Fnome-do-site.vercel.com%2F${slug}`; + const title = post.title.rendered.replaceAll(' ', '+'); + const buttons = [ { label: 'facebook', icon: , - href: `https://www.facebook.com/sharer.php?u=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + href: `http://www.facebook.com/sharer.php?u=${link}&p${title}=${title}`, }, { label: 'linkedin', icon: , - href: `https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + href: `https://www.linkedin.com/shareArticle?mini=true&url=${link}&title=${title}`, }, { label: 'telegram', icon: , - href: `https://telegram.me/share/url?url=https%3A%2F%2Fnome-do-site.vercel.com%2Fposts%2F${slug}`, + href: `https://telegram.me/share/url?url=${link}`, }, { label: 'whatsapp', icon: , - href: `https://api.whatsapp.com/send?text=${slug}%0Anome-do-site.vercel.com%2Fposts%2F${slug}`, + href: `https://api.whatsapp.com/send?text=${title}%0Anome-do-site.vercel.com%2Fposts%2F${slug}`, }, ]; diff --git a/src/pages/[slug].js b/src/pages/[slug].js new file mode 100644 index 00000000..0b23e37a --- /dev/null +++ b/src/pages/[slug].js @@ -0,0 +1,22 @@ +import { PostScreen } from '@/screens/PostScreen'; +export default PostScreen; + +export async function getStaticPaths() { + const res = await fetch('https://blog.apiki.com/wp-json/wp/v2/posts?_embed&categories=518') + const posts = await res.json() + + const paths = posts.map((post) => ({ + params: { slug: post.slug }, + })) + + return { paths, fallback: false } +} + +export async function getStaticProps({ params }) { + const res = await fetch(`https://bl?og.apiki.com/wp-json/wp/v2/posts_embed&slug=${params.slug}`) + const post = await res.json() + + + + return { props: { post } } +} diff --git a/src/pages/posts/[slug].js b/src/pages/posts/[slug].js deleted file mode 100644 index 2c341b7a..00000000 --- a/src/pages/posts/[slug].js +++ /dev/null @@ -1,2 +0,0 @@ -import { PostScreen } from '@/screens/PostScreen'; -export default PostScreen; \ No newline at end of file diff --git a/src/screens/HomeScreen/index.jsx b/src/screens/HomeScreen/index.jsx index 5a7213c6..5821f6e6 100644 --- a/src/screens/HomeScreen/index.jsx +++ b/src/screens/HomeScreen/index.jsx @@ -31,6 +31,7 @@ export function HomeScreen() { setPosts(posts.concat((await response).data)); } } + console.log(posts) useEffect(() => { getPosts(); @@ -44,9 +45,9 @@ export function HomeScreen() { - {posts.map(post => ( + {posts.map((post, index) => ( ))} diff --git a/src/screens/PostScreen/NextPreviousButton/index.jsx b/src/screens/PostScreen/NextPreviousButton/index.jsx index f122f14d..41c432db 100644 --- a/src/screens/PostScreen/NextPreviousButton/index.jsx +++ b/src/screens/PostScreen/NextPreviousButton/index.jsx @@ -8,7 +8,7 @@ import { export function NextPreviousButton() { return( - +
      post anterior @@ -16,7 +16,7 @@ export function NextPreviousButton() {

      Titulo do post anterior

      - +
      próximo post diff --git a/src/screens/PostScreen/PostHeader/index.jsx b/src/screens/PostScreen/PostHeader/index.jsx index 38613105..49487096 100644 --- a/src/screens/PostScreen/PostHeader/index.jsx +++ b/src/screens/PostScreen/PostHeader/index.jsx @@ -1,31 +1,43 @@ import { Author } from "@/components/Author"; import { ShareButtons } from "@/components/ShareButtons"; +import { formatDate } from "@/utils/formatDate"; +import { getReadingTime } from "@/utils/getReadingTime"; import { Header, } from './style'; -export function PostHeader() { +export function PostHeader({post}) { + const isPostAuthorExist = post._embedded.author[0].name; + const author = post._embedded.author[0]; + const timeReading = getReadingTime(post); + const publishedDate = formatDate(post.date); + return (
      -

      As vantagens do editor Gutenberg para Wordpress

      -

      Lorem ipsum, dolor amet consectetur adipisicing elit. Quaerat ratione doloribus dignissimos, animi officiis nemo tempore atque iusto beatae expedita quae corporis a adipisci nesciunt unde dicta quia!

      +

      {post.title.rendered}

      +

      {post.yoast_head_json.description}

      - + {isPostAuthorExist ? + : + + }
      - 4 de Agosto de 2022 + {publishedDate} | - Dá pra ler em 5 minutinhos + Dá pra ler em {timeReading} minutinhos
      - +
      ); } \ No newline at end of file diff --git a/src/screens/PostScreen/index.jsx b/src/screens/PostScreen/index.jsx index 8e3d23d3..f3d01bb0 100644 --- a/src/screens/PostScreen/index.jsx +++ b/src/screens/PostScreen/index.jsx @@ -1,3 +1,4 @@ +import { getPostCoverImage } from '@/utils/getPostImage'; import Head from 'next/head'; import NextLink from 'next/link'; import { House } from 'phosphor-react'; @@ -10,25 +11,27 @@ import { Content, } from './style'; -export function PostScreen() { - const fakeContent = ` - \n

      O Google Web Stories é uma evolução do AMP Stories.

      \n\n\n\n

      Se você ainda não o conhecia, o AMP Stories é um dos quatros formatos AMP existentes.

      \n\n\n\n

      Esse recurso é uma variação do AMP, através do qual você implementa Stories em seu website.

      \n\n\n\n

      Me refiro ao “Story”, tipo de conteúdo popularmente utilizado em redes sociais.

      \n\n\n\n

      Se você ainda não está por dentro, leia Google AMP Stories e o que você precisa saber a respeito.

      \n\n\n\n

      Web Stories versus Stories das redes sociais

      \n\n\n\n

      Você pode se perguntar, por que deveria investir nos Web Stories dado que já publica e tem resultados com os Stories do Instagram, ou alguma outra plataforma.

      \n\n\n\n

      Acredito que um não substitui o outro, mas você precisa ter conhecimento das significativas diferenças e possibilidades entre os dois formatos.

      \n\n\n\n

      Abaixo uma tabela comparativa para você se inteirar.

      \n\n\n\n
      \n
      RecursoGoogle Web StoriesStories das redes sociais
      AlcancePúblico na internetPrivado e limitado a rede social em que foi publicado
      Exibe na busca do GoogleSimNão
      Embeda em outros sitesSimNão
      Tempo de vidaPara sempre. Você decide quando despublicarLimitado a 24h
      Como criarCom tecnologias web (HTML, CSS, JavaScript)Através do aplicativo da rede social
      FiltrosPré produzidos nas imagens e vídeosAtravés da interface do aplicativo da rede social
      AnimaçãoPara todos os elementos da históriaControle limitado sobre os elementos inseridos
      InteraçõesLinks, CTA, Conteúdo relacionado, menu, compartilhar, embeds diversosEnquetes, Like, Reações, Mensagens diretas
      Tipo de conteúdoTexto, Imagem, Vídeo, Áudio, GIF AnimadoTexto, Imagem, Vídeo, Áudio, GIF Animado
      Mobile FirstSimSim
      Fullscreen no desktopSimNão
      AnalyticsAtravés do Google Analytics, ou outras ferramentas. Além de interações de eventos inlineInsights sobre o total de visualizações, números de toques e outros específicos de cada rede social.
      \n\n\n\n

      Eaí, vai investir em Web Stories?

      \n
      \n\n\n\n

      A estruturação de código do AMP Stories

      \n\n\n\n

      Para você ter uma ideia técnica de como os elementos funcionam e são organizados, a ilustração abaixo te esclarece como os Web Stories são estruturados.

      \n\n\n\n

      Visualmente a representação seria assim:

      \n\n\n\n
      \"Imagem
      \n\n\n\n

      A composição de uma AMP Story seria: páginas (com mais de uma teremos um carrossel), camadas sobre essas páginas com seus respectivos elementos.

      \n\n\n\n

      Esses elementos são HTML básico e uma estruturação AMP.

      \n\n\n\n

      A marcação HTML seria da seguinte forma:

      \n\n\n\n
      \"Imagem
      \n\n\n\n

      Quando você é desenvolvedor e apaixonado pela codificação, esse desenvolvimento pode ser manual.

      \n\n\n\n

      Mas pode ser também através de um editor visual, o que permite editores, designers, profissionais de marketing e pessoas sem experiência em programação, contarem suas histórias.

      \n\n\n\n

      O Google preparou editores incríveis, tanto ferramentas autônomas quanto um editor poderoso de Web Stories para o WP.

      \n\n\n\n

      Web Stories para WordPress

      \n\n\n\n

      O plugin Web Stories é gratuito, de código aberto e traz uma experiência rica de edição visual para a funcionalidade.

      \n\n\n\n
      \"O
      \n\n\n\n

      O painel foge um pouco do padrão do WP, no entanto a experiência está boa para criar e gerir as suas histórias.

      \n\n\n\n

      Por padrão, alguns templates são disponibilizados. E você também pode criar os seus.

      \n\n\n\n

      A customização de foto é muito simples e várias opções.

      \n\n\n\n

      Seja as edições de texto, quanto vídeo, imagens e call to actions.

      \n\n\n\n

      A integração a biblioteca de WordPress também facilita bastante explorar seus conteúdos visuais existentes.

      \n\n\n\n

      Conclusão

      \n\n\n\n

      Através do Web Stories, o Google quer dar significativo alcance as suas histórias.

      \n\n\n\n

      Será uma briga interessante que ele vai disputar contra os gigantes das redes sociais.

      \n\n\n\n

      Mas na verdade, estamos falando da guerra da atenção dos usuários.

      \n\n\n\n

      E considerar uma estrutura relevante como a do Google faz todo sentido.

      \n\n\n\n

      Faz todo sentido para engajar ainda mais a sua audiência, atrair mais visitantes e converter para as ações desejadas pelo seus negócio.

      \n\n\n\n

      E o melhor de tudo, que o conteúdo não vai expirar em 24h, e ainda poderá ser encontrada através do maior buscador da internet.

      \n - `; +export function PostScreen({post}) { + const og = post[0].yoast_head_json; + const content = post[0].content.rendered; return ( <> - Titulo do post | Apiki Blog + {post[0].title.rendered} | Apiki Blog - - + + + + + - - + + -
      +
      home diff --git a/src/utils/getPostImage.js b/src/utils/getPostImage.js index 4866b89d..ece7f561 100644 --- a/src/utils/getPostImage.js +++ b/src/utils/getPostImage.js @@ -1,5 +1,6 @@ export const getPostCoverImage = (post) => { - const image = post._embedded['wp:featuredmedia'][0].media_details.sizes.large.source_url; + const sizes = post._embedded['wp:featuredmedia'][0].media_details.sizes + const image = sizes.full.source_url; return image; } \ No newline at end of file diff --git a/src/utils/getReadingTime.js b/src/utils/getReadingTime.js index 75797de5..85d4c431 100644 --- a/src/utils/getReadingTime.js +++ b/src/utils/getReadingTime.js @@ -1,6 +1,7 @@ export const getReadingTime = post => { - const readingTimeString = Object.entries(post.yoast_head_json.twitter_misc)[1][1]; - const readingTime = readingTimeString.replace(/\D/g, ''); + const readingTimeString = post.yoast_head_json.twitter_misc['Est. tempo de leitura']; + const isReadingTimeExist = Object.hasOwn(post.yoast_head_json.twitter_misc,'Est. tempo de leitura'); + const readingTime = isReadingTimeExist ? readingTimeString.replace(/\D/g, '') : 'alguns'; return readingTime; } \ No newline at end of file From bb05111846b2e6d809aca60e5e9d36bf096f542f Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Sat, 18 Feb 2023 16:51:00 -0300 Subject: [PATCH 24/32] refactor (screens): remove files --- .../PostScreen/NextPreviousButton/index.jsx | 28 ------ .../PostScreen/NextPreviousButton/style.js | 90 ------------------- 2 files changed, 118 deletions(-) delete mode 100644 src/screens/PostScreen/NextPreviousButton/index.jsx delete mode 100644 src/screens/PostScreen/NextPreviousButton/style.js diff --git a/src/screens/PostScreen/NextPreviousButton/index.jsx b/src/screens/PostScreen/NextPreviousButton/index.jsx deleted file mode 100644 index 41c432db..00000000 --- a/src/screens/PostScreen/NextPreviousButton/index.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import NextLink from "next/link"; -import { ArrowLeft, ArrowRight } from "phosphor-react"; - -import { - Buttons, -} from './style'; - -export function NextPreviousButton() { - return( - - -
      - - post anterior -
      -

      Titulo do post anterior

      -
      - - -
      - próximo post - -
      -

      Titulo do próximo post próximo post próximo post

      -
      -
      - ); -} \ No newline at end of file diff --git a/src/screens/PostScreen/NextPreviousButton/style.js b/src/screens/PostScreen/NextPreviousButton/style.js deleted file mode 100644 index 256cc092..00000000 --- a/src/screens/PostScreen/NextPreviousButton/style.js +++ /dev/null @@ -1,90 +0,0 @@ -import styled from "styled-components"; -import { colors } from "@/styles/colors"; -import { device } from "@/styles/devices"; - -export const Buttons = styled.div` - margin-bottom: 4rem; - padding: 1.6rem; - - display: flex; - align-items: flex-start; - justify-content: space-between; - - .button { - flex:1; - display: flex; - flex-direction: column; - gap: 1rem; - - text-decoration: none; - - .wrapper { - display: flex; - align-items: center; - gap: .2rem; - - span { - color: ${colors.secondary[100]}; - font-size: 1.4rem; - ${device.laptop} { - font-size: 1.6rem; - } - } - .icon { - color: ${colors.secondary[100]}; - font-size: 1.8rem; - } - } - - .title { - color: ${colors.primary[400]}; - font-size: 1rem; - } - - &:hover { - .title { - color: ${colors.primary[500]}; - } - span, .icon { - color: ${colors.secondary[200]}; - } - } - } - - .button.right { - align-items: flex-start; - .wrapper { - flex-direction: column; - } - } - - .button.left { - align-items: flex-end; - .wrapper { - flex-direction: column-reverse; - } - .title { - text-align: right; - } - } - - ${device.tablet} { - .button.right .wrapper, - .button.left .wrapper { - flex-direction: row; - gap: 1rem; - } - - .button.right .title, - .button.left .title { - font-size: 1.2rem; - } - } - - ${device.laptop} { - .button.right .title, - .button.left .title { - font-size: 1.4rem; - } - } -`; \ No newline at end of file From d821de0725c7f298e9c6437509d9aa9a6f54b6f7 Mon Sep 17 00:00:00 2001 From: Luciana Kyoko <69259218+lucianakyoko@users.noreply.github.com> Date: Sat, 18 Feb 2023 16:51:49 -0300 Subject: [PATCH 25/32] feat(components): create Footer component --- src/components/Footer/index.jsx | 22 +++++++++++++++++ src/components/Footer/style.js | 38 +++++++++++++++++++++++++++++ src/components/PageLayout/index.jsx | 2 ++ 3 files changed, 62 insertions(+) create mode 100644 src/components/Footer/index.jsx create mode 100644 src/components/Footer/style.js diff --git a/src/components/Footer/index.jsx b/src/components/Footer/index.jsx new file mode 100644 index 00000000..7c024d5b --- /dev/null +++ b/src/components/Footer/index.jsx @@ -0,0 +1,22 @@ +import { HeartStraight } from "phosphor-react"; + +import { + FooterContainer +} from './style'; + +export function Footer() { + const date = new Date(); + const currentYear = date.getFullYear(); + + return ( + +

      + Feito com pela Luciana Kyoko. +

      +

      + ©{currentYear}. Todos os direitos reservados. +

      + +
      + ); +} \ No newline at end of file diff --git a/src/components/Footer/style.js b/src/components/Footer/style.js new file mode 100644 index 00000000..032e6e36 --- /dev/null +++ b/src/components/Footer/style.js @@ -0,0 +1,38 @@ +import styled from "styled-components"; +import { colors } from "@/styles/colors"; +import { device } from "@/styles/devices"; + +export const FooterContainer = styled.footer` + padding: 1.6rem; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 1rem; + + .footer-text { + font-size: 1.2rem; + text-align: center; + + .link { + color: ${colors.secondary[100]}; + text-decoration: none; + &:hover { + color: ${colors.secondary[200]}; + } + } + } + + ${device.tablet} { + flex-direction: row; + font-size: 1.4rem; + + .footer-text .link{ + font-weight: 600; + } + } + + ${device.laptop} { + font-size: 1.6rem; + } +`; \ No newline at end of file diff --git a/src/components/PageLayout/index.jsx b/src/components/PageLayout/index.jsx index 91637e8d..25e6d9a7 100644 --- a/src/components/PageLayout/index.jsx +++ b/src/components/PageLayout/index.jsx @@ -1,3 +1,4 @@ +import { Footer } from '../Footer'; import { Page } from './style'; @@ -6,6 +7,7 @@ export function PageLayout({children}) { return( {children} +