diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..6bbb29b
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,38 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(curl:*)",
+ "Bash(cargo:*)",
+ "Bash(pkill:*)",
+ "Bash(RUST_LOG=debug leptos serve watch)",
+ "Bash(RUST_LOG=debug cargo leptos watch)",
+ "Bash(rm:*)",
+ "Bash(sqlite3:*)",
+ "Bash(lsof:*)",
+ "Bash(RUST_LOG=info cargo leptos watch)",
+ "Bash(RUST_LOG=info ./target/debug/server)",
+ "Bash(env)",
+ "Bash(cat:*)",
+ "Bash(grep:*)",
+ "Bash(ENVIRONMENT=development cargo run --bin server)",
+ "Bash(ls:*)",
+ "Bash(CONFIG_FILE=config.dev.toml cargo run --bin server)",
+ "Bash(git checkout:*)",
+ "Bash(CONFIG_FILE=/Users/Akasha/Development/rustelo/template/config.dev.toml cargo run --bin server)",
+ "Bash(ENVIRONMENT=development CONFIG_FILE=config.dev.toml cargo run --bin server)",
+ "Bash(find:*)",
+ "Bash(ln:*)",
+ "Bash(cp:*)",
+ "Bash(npm run build:css:*)",
+ "Bash(killall:*)",
+ "Bash(true)",
+ "Bash(mv:*)",
+ "Bash(LEPTOS_OUTPUT_NAME=website cargo leptos build)",
+ "Bash(LEPTOS_OUTPUT_NAME=website cargo leptos serve --hot-reload)",
+ "Bash(pgrep:*)",
+ "Bash(./scripts/link-pkg-files.sh:*)",
+ "Bash(LEPTOS_OUTPUT_NAME=website cargo run --bin server)"
+ ],
+ "deny": []
+ }
+}
\ No newline at end of file
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..d81cc5f
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,88 @@
+# Server Configuration
+# Copy this file to .env and modify the values as needed
+
+# Root Path Configuration
+# Base directory for all relative paths in the configuration
+# If not set, defaults to current working directory
+ROOT_PATH=.
+
+# Server Protocol (http or https)
+SERVER_PROTOCOL=http
+
+# Server Host
+SERVER_HOST=127.0.0.1
+
+# Server Port
+SERVER_PORT=3030
+
+# TLS Configuration (only used when SERVER_PROTOCOL=https)
+# Path to TLS certificate file
+TLS_CERT_PATH=./certs/cert.pem
+
+# Path to TLS private key file
+TLS_KEY_PATH=./certs/key.pem
+
+# Environment (development, production, dev, prod)
+ENVIRONMENT=development
+
+# Log Level (error, warn, info, debug, trace)
+LOG_LEVEL=info
+
+# Reload Port (for development)
+RELOAD_PORT=3031
+
+# Static Files Directory
+STATIC_DIR=target/site
+
+# Assets Directory
+ASSETS_DIR=public
+
+# Site Package Directory
+SITE_PKG_DIR=pkg
+
+# CORS Configuration
+CORS_ALLOWED_ORIGINS=http://localhost:3030,http://127.0.0.1:3030
+
+# Session Configuration
+SESSION_SECRET=your-session-secret-key-change-this-in-production
+
+# Database Configuration (if using a database)
+# DATABASE_URL=postgresql://user:password@localhost/dbname
+
+# Redis Configuration (if using Redis)
+# REDIS_URL=redis://localhost:6379
+
+# JWT Configuration
+JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
+JWT_ISSUER=rustelo-auth
+JWT_ACCESS_TOKEN_EXPIRES_IN=15
+JWT_REFRESH_TOKEN_EXPIRES_IN=7
+
+# OAuth Configuration
+OAUTH_REDIRECT_BASE_URL=http://localhost:3030/auth/callback
+
+# Google OAuth (optional)
+# GOOGLE_CLIENT_ID=your-google-client-id
+# GOOGLE_CLIENT_SECRET=your-google-client-secret
+
+# GitHub OAuth (optional)
+# GITHUB_CLIENT_ID=your-github-client-id
+# GITHUB_CLIENT_SECRET=your-github-client-secret
+
+# Discord OAuth (optional)
+# DISCORD_CLIENT_ID=your-discord-client-id
+# DISCORD_CLIENT_SECRET=your-discord-client-secret
+
+# Microsoft OAuth (optional)
+# MICROSOFT_CLIENT_ID=your-microsoft-client-id
+# MICROSOFT_CLIENT_SECRET=your-microsoft-client-secret
+# MICROSOFT_TENANT_ID=common
+
+# External API Configuration
+# API_BASE_URL=https://api.example.com
+# API_KEY=your-api-key
+
+# Feature Flags
+ENABLE_METRICS=false
+ENABLE_HEALTH_CHECK=true
+ENABLE_COMPRESSION=true
diff --git a/Cargo.toml b/Cargo.toml
index 9c0db49..83f87a2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -35,7 +35,7 @@ web-sys = { version = "0.3.77" , features = ["Clipboard", "Window", "Navigator",
regex = "1.11.1"
tracing = "0.1"
tracing-subscriber = "0.3"
-toml = "0.8"
+toml = "0.9"
fluent = "0.17"
fluent-bundle = "0.16"
unic-langid = "0.9"
@@ -52,6 +52,8 @@ site-root = "target/site"
# The site-root relative folder where all compiled output (JS, WASM and CSS) is written
# Defaults to pkg
site-pkg-dir = "pkg"
+# Add hash to JS/WASM files for cache busting
+hash-files = true
# The tailwind input file. Not needed if tailwind-input-file is not set
# Optional, Activates the tailwind build
#tailwind-input-file = "input.css"
@@ -59,7 +61,7 @@ site-pkg-dir = "pkg"
# [Optional] Files in the asset-dir will be copied to the site-root directory
assets-dir = "public"
# The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup.
-site-addr = "127.0.0.1:3030"
+site-addr = "0.0.0.0:3030"
# The port to use for automatic reload monitoring
reload-port = 3031
diff --git a/QUICK_START.md b/QUICK_START.md
index 50cfe88..952ebc2 100644
--- a/QUICK_START.md
+++ b/QUICK_START.md
@@ -180,7 +180,7 @@ ENABLE_CONTENT_DB=true
ENABLE_TLS=false
# Database (choose one)
-DATABASE_URL=sqlite:database.db # SQLite (simple)
+DATABASE_URL=sqlite://database.db # SQLite (simple)
# DATABASE_URL=postgresql://user:pass@localhost:5432/db # PostgreSQL (production)
# Logging
diff --git a/README.md b/README.md
index d2cafdf..bfe43ee 100644
--- a/README.md
+++ b/README.md
@@ -403,7 +403,7 @@ The application automatically detects your database type from the connection URL
DATABASE_URL=postgresql://user:pass@localhost/db
# SQLite
-DATABASE_URL=sqlite:data/app.db
+DATABASE_URL=sqlite://data/app.db
```
### Migration System
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..d220e27
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,8 @@
+- [X] Configuration builder
+- [X] Admin Dashboard
+- [ ] User profile manager
+- [ ] Remove python script are in docs ?
+
+- [ ] Add file upload capabilities** for media management?
+- [ ] **Enhance the dashboard** with content analytics?
+- [ ] **Show how to configure** the content sources (DB vs Files vs Both)?
diff --git a/book.toml b/book.toml
new file mode 100644
index 0000000..fa4a2c9
--- /dev/null
+++ b/book.toml
@@ -0,0 +1,85 @@
+[book]
+title = "Rustelo Documentation"
+description = "A comprehensive guide to building web applications with Rustelo - a modular Rust web application template"
+authors = ["Rustelo Contributors"]
+language = "en"
+multilingual = false
+src = "book"
+book = "_book"
+
+[rust]
+edition = "2021"
+
+[build]
+build-dir = "_book"
+create-missing = true
+preprocess = ["links", "index"]
+use-default-preprocessors = true
+
+[preprocessor.links]
+# Process relative links and convert them to proper mdBook links
+
+[preprocessor.index]
+# Generate index pages automatically
+
+[output.html]
+default-theme = "light"
+preferred-dark-theme = "navy"
+smart-punctuation = true
+mathjax-support = false
+copy-fonts = true
+
+edit-url-template = "https://github.com/yourusername/rustelo/edit/main/book/{path}"
+site-url = "/docs/"
+cname = ""
+git-repository-url = "https://github.com/yourusername/rustelo"
+git-repository-icon = "fa-github"
+
+# Logo configuration
+# additional-css = ["theme/custom.css"]
+# additional-js = ["theme/custom.js"]
+
+[output.html.print]
+enable = true
+page-break = true
+
+[output.html.search]
+enable = true
+limit-results = 30
+teaser-word-count = 30
+use-boolean-and = true
+boost-title = 2
+boost-hierarchy = 1
+boost-paragraph = 1
+expand = true
+heading-split-level = 3
+
+[output.html.redirect]
+# Add redirects for moved pages if needed
+
+[output.html.fold]
+enable = false
+level = 0
+
+[output.html.playground]
+runnable = true
+copyable = true
+copy-js = true
+line-numbers = false
+editable = false
+
+# [output.linkcheck]
+# # Check for broken links
+# optional = true
+# follow-web-links = false
+# traverse-parent-directories = false
+# exclude = [ "private" ]
+# # Temporarily disabled due to broken links
+
+# Optional: Generate PDF output
+# [output.pdf]
+# enable = true
+
+# Optional: Generate EPUB output
+# [output.epub]
+# enable = true
diff --git a/book/SUMMARY.md b/book/SUMMARY.md
new file mode 100644
index 0000000..6aabf88
--- /dev/null
+++ b/book/SUMMARY.md
@@ -0,0 +1,176 @@
+# Summary
+
+[Introduction](./introduction.md)
+
+# Getting Started
+
+- [What is Rustelo?](./getting-started/what-is-rustelo.md)
+- [Quick Installation](./getting-started/installation.md)
+- [First Run & Setup](./getting-started/first-run.md)
+- [First App](./getting-started/first-app.md)
+- [Basic Configuration](./getting-started/configuration.md)
+
+# For End Users
+
+## Using the Application
+
+- [User Interface Guide](./users/interface.md)
+- [User Registration & Login](./users/authentication.md)
+- [Managing Your Profile](./users/profile.md)
+- [Content Publishing](./users/content.md)
+- [File & Media Management](./users/media.md)
+
+## Features & Functionality
+
+- [Authentication & Security](./users/features/auth.md)
+- [Content Management](./users/features/content.md)
+- [Email & Notifications](./users/features/email.md)
+- [Search & Discovery](./users/features/search.md)
+- [Mobile Experience](./users/features/mobile.md)
+
+## Administration
+
+- [Admin Dashboard](./users/admin/dashboard.md)
+- [User Management](./users/admin/users.md)
+- [Content Moderation](./users/admin/content.md)
+- [System Settings](./users/admin/settings.md)
+- [Monitoring & Analytics](./users/admin/monitoring.md)
+
+# For Developers
+
+## Development Setup
+
+- [Development Environment](./developers/setup/environment.md)
+- [Project Structure](./developers/setup/structure.md)
+- [Build System & Tools](./developers/setup/build.md)
+- [Development Workflow](./developers/setup/workflow.md)
+
+## Architecture
+
+- [System Overview](./developers/architecture/overview.md)
+- [Frontend Architecture](./developers/architecture/frontend.md)
+- [Backend Architecture](./developers/architecture/backend.md)
+- [Database Design](./developers/architecture/database.md)
+- [Security Model](./developers/architecture/security.md)
+
+## Core Components
+
+- [Components Overview](./developers/components/README.md)
+- [Authentication System](./developers/components/auth.md)
+- [Content Management](./developers/components/content.md)
+- [Email System](./developers/components/email.md)
+- [Template Engine](./developers/components/templates.md)
+- [Configuration System](./developers/components/config.md)
+
+## Feature Development
+
+- [Adding New Features](./developers/features/adding-features.md)
+- [Feature Flags & Modules](./developers/features/feature-flags.md)
+- [Database Migrations](./developers/features/migrations.md)
+- [API Endpoints](./developers/features/api-endpoints.md)
+- [Frontend Components](./developers/features/frontend-components.md)
+
+## Brand & Design
+
+- [Logo Usage Guide](./developers/brand/logo-usage.md)
+
+## Testing
+
+- [Testing Strategy](./developers/testing/strategy.md)
+- [Unit Testing](./developers/testing/unit.md)
+- [Integration Testing](./developers/testing/integration.md)
+- [End-to-End Testing](./developers/testing/e2e.md)
+- [Performance Testing](./developers/testing/performance.md)
+
+# Configuration
+
+- [Configuration Overview](./configuration/README.md)
+- [Environment Variables](./configuration/environment.md)
+- [Configuration Files](./configuration/files.md)
+- [Features Configuration](./configuration/features.md)
+- [Database Configuration](./configuration/database.md)
+- [Security Settings](./configuration/security.md)
+- [Performance Tuning](./configuration/performance.md)
+
+# Deployment
+
+- [Production Setup](./deployment/production.md)
+- [Docker Deployment](./deployment/docker.md)
+- [Cloud Platforms](./deployment/cloud.md)
+- [SSL/TLS Configuration](./deployment/ssl.md)
+- [Monitoring & Logging](./deployment/monitoring.md)
+- [Backup & Recovery](./deployment/backup.md)
+
+# API Reference
+
+- [REST API Overview](./api/overview.md)
+- [Authentication Endpoints](./api/auth.md)
+- [Content Management API](./api/content.md)
+- [User Management API](./api/users.md)
+- [Email & Notifications API](./api/email.md)
+- [Error Handling](./api/errors.md)
+- [Rate Limiting](./api/rate-limiting.md)
+
+# Security
+
+- [Security Overview](./security/overview.md)
+- [Authentication & Authorization](./security/auth.md)
+- [Data Protection](./security/data-protection.md)
+- [CSRF & XSS Prevention](./security/web-security.md)
+- [TLS & Encryption](./security/encryption.md)
+- [Security Best Practices](./security/best-practices.md)
+
+# Performance
+
+- [Performance Overview](./performance/overview.md)
+- [Database Optimization](./performance/database.md)
+- [Caching Strategies](./performance/caching.md)
+- [Frontend Optimization](./performance/frontend.md)
+- [Memory Management](./performance/memory.md)
+- [Profiling & Monitoring](./performance/monitoring.md)
+
+# Troubleshooting
+
+- [Common Issues](./troubleshooting/common.md)
+- [Installation Problems](./troubleshooting/installation.md)
+- [Authentication Issues](./troubleshooting/auth.md)
+- [Database Problems](./troubleshooting/database.md)
+- [Performance Issues](./troubleshooting/performance.md)
+- [Build & Development Issues](./troubleshooting/development.md)
+- [Getting Help & Support](./troubleshooting/support.md)
+
+# Advanced Topics
+
+- [Custom Features & Extensions](./advanced/extensions.md)
+- [Plugin Development](./advanced/plugins.md)
+- [Theme Customization](./advanced/themes.md)
+- [Integration Examples](./advanced/integrations.md)
+- [Scaling & High Availability](./advanced/scaling.md)
+- [Migration Strategies](./advanced/migrations.md)
+
+# Contributing
+
+- [Contributing Guidelines](./contributing/guidelines.md)
+- [Development Setup](./contributing/setup.md)
+- [Code Standards](./contributing/standards.md)
+- [Testing Guidelines](./contributing/testing.md)
+- [Documentation Guidelines](./contributing/docs.md)
+- [Release Process](./contributing/releases.md)
+
+# Reference
+
+- [Configuration Options](./reference/config.md)
+- [Environment Variables](./reference/env-vars.md)
+- [CLI Commands](./reference/cli.md)
+- [Database Schema](./reference/schema.md)
+- [Error Codes](./reference/error-codes.md)
+- [Feature Matrix](./reference/features.md)
+- [System Requirements](./reference/requirements.md)
+- [FAQ](./reference/faq.md)
+- [Configuration Migration Guide](./reference/config-migration.md)
+- [Environment Migration Guide](./reference/env-migration.md)
+- [Feature Migration Guide](./reference/feature-migration.md)
+
+---
+
+[Glossary](./glossary.md)
diff --git a/book/advanced/custom-content.md b/book/advanced/custom-content.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/advanced/custom-features.md b/book/advanced/custom-features.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/advanced/extending-auth.md b/book/advanced/extending-auth.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/advanced/extensions.md b/book/advanced/extensions.md
new file mode 100644
index 0000000..118ad11
--- /dev/null
+++ b/book/advanced/extensions.md
@@ -0,0 +1 @@
+# Custom Features & Extensions
diff --git a/book/advanced/integrations.md b/book/advanced/integrations.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/advanced/migrations.md b/book/advanced/migrations.md
new file mode 100644
index 0000000..24d7be8
--- /dev/null
+++ b/book/advanced/migrations.md
@@ -0,0 +1 @@
+# Migration Strategies
diff --git a/book/advanced/performance-tuning.md b/book/advanced/performance-tuning.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/advanced/plugins.md b/book/advanced/plugins.md
new file mode 100644
index 0000000..1149304
--- /dev/null
+++ b/book/advanced/plugins.md
@@ -0,0 +1 @@
+# Plugin Development
diff --git a/book/advanced/scaling.md b/book/advanced/scaling.md
new file mode 100644
index 0000000..ae5b52b
--- /dev/null
+++ b/book/advanced/scaling.md
@@ -0,0 +1 @@
+# Scaling & High Availability
diff --git a/book/advanced/themes.md b/book/advanced/themes.md
new file mode 100644
index 0000000..4ebdbc8
--- /dev/null
+++ b/book/advanced/themes.md
@@ -0,0 +1 @@
+# Theme Customization
diff --git a/book/api/auth.md b/book/api/auth.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/api/content.md b/book/api/content.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/api/email.md b/book/api/email.md
new file mode 100644
index 0000000..5133a95
--- /dev/null
+++ b/book/api/email.md
@@ -0,0 +1 @@
+# Email & Notifications API
diff --git a/book/api/errors.md b/book/api/errors.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/api/overview.md b/book/api/overview.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/api/rate-limiting.md b/book/api/rate-limiting.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/api/users.md b/book/api/users.md
new file mode 100644
index 0000000..dfbb939
--- /dev/null
+++ b/book/api/users.md
@@ -0,0 +1 @@
+# User Management API
diff --git a/book/appendices/cli-commands.md b/book/appendices/cli-commands.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/appendices/env-variables.md b/book/appendices/env-variables.md
new file mode 100644
index 0000000..413e1ec
--- /dev/null
+++ b/book/appendices/env-variables.md
@@ -0,0 +1,51 @@
+# Environment Variables Reference
+
+This document lists all environment variables used by Rustelo.
+
+## Core Variables
+
+| Variable | Description | Default | Required |
+|----------|-------------|---------|----------|
+| `SERVER_HOST` | Server bind address | `127.0.0.1` | No |
+| `SERVER_PORT` | Server port | `3030` | No |
+| `SERVER_PROTOCOL` | Protocol (http/https) | `http` | No |
+| `ENVIRONMENT` | Environment (DEV/PROD) | `DEV` | No |
+| `LOG_LEVEL` | Log level | `info` | No |
+
+## Database Variables (auth, content-db features)
+
+| Variable | Description | Default | Required |
+|----------|-------------|---------|----------|
+| `DATABASE_URL` | Database connection URL | - | Yes |
+| `DATABASE_MAX_CONNECTIONS` | Maximum connections | `10` | No |
+| `DATABASE_MIN_CONNECTIONS` | Minimum connections | `1` | No |
+
+## Authentication Variables (auth feature)
+
+| Variable | Description | Default | Required |
+|----------|-------------|---------|----------|
+| `JWT_SECRET` | JWT signing secret | - | Yes |
+| `JWT_EXPIRATION_HOURS` | JWT expiration | `24` | No |
+| `GOOGLE_CLIENT_ID` | Google OAuth client ID | - | No |
+| `GOOGLE_CLIENT_SECRET` | Google OAuth secret | - | No |
+| `GITHUB_CLIENT_ID` | GitHub OAuth client ID | - | No |
+| `GITHUB_CLIENT_SECRET` | GitHub OAuth secret | - | No |
+
+## TLS Variables (tls feature)
+
+| Variable | Description | Default | Required |
+|----------|-------------|---------|----------|
+| `TLS_CERT_PATH` | TLS certificate path | - | Yes |
+| `TLS_KEY_PATH` | TLS private key path | - | Yes |
+
+## Email Variables (email feature)
+
+| Variable | Description | Default | Required |
+|----------|-------------|---------|----------|
+| `EMAIL_PROVIDER` | Email provider | `console` | No |
+| `EMAIL_FROM_ADDRESS` | Default from address | - | Yes |
+| `EMAIL_FROM_NAME` | Default from name | - | No |
+| `SMTP_HOST` | SMTP server host | - | Conditional |
+| `SMTP_PORT` | SMTP server port | `587` | Conditional |
+| `SMTP_USERNAME` | SMTP username | - | Conditional |
+| `SMTP_PASSWORD` | SMTP password | - | Conditional |
diff --git a/book/appendices/faq.md b/book/appendices/faq.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/appendices/feature-matrix.md b/book/appendices/feature-matrix.md
new file mode 100644
index 0000000..8c2be92
--- /dev/null
+++ b/book/appendices/feature-matrix.md
@@ -0,0 +1,38 @@
+# Feature Matrix
+
+This matrix shows which features are available in different configurations.
+
+| Feature | Minimal | Auth | Content | Email | TLS | Full |
+|---------|---------|------|---------|-------|-----|------|
+| Static Files | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Routing | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Security Headers | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| JWT Auth | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
+| OAuth2 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
+| 2FA/TOTP | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
+| Database Content | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
+| Markdown Rendering | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
+| Email System | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ |
+| HTTPS/TLS | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
+
+## Build Commands
+
+```bash
+# Minimal
+cargo build --no-default-features
+
+# Authentication only
+cargo build --no-default-features --features "auth"
+
+# Content management only
+cargo build --no-default-features --features "content-db"
+
+# Email only
+cargo build --no-default-features --features "email"
+
+# TLS only
+cargo build --no-default-features --features "tls"
+
+# Full featured
+cargo build --features "auth,content-db,email,tls"
+```
diff --git a/book/appendices/migration-guide.md b/book/appendices/migration-guide.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/configuration/README.md b/book/configuration/README.md
new file mode 100644
index 0000000..c461250
--- /dev/null
+++ b/book/configuration/README.md
@@ -0,0 +1,424 @@
+# Rustelo Configuration
+
+Welcome to the Rustelo Configuration documentation! This comprehensive guide covers all aspects of configuring your Rustelo application for different environments and use cases.
+
+## 📋 Configuration Overview
+
+Rustelo uses a powerful, modular configuration system that allows you to:
+
+- **Environment-specific configurations** - Different settings for dev, staging, production
+- **Feature-based configuration** - Enable/disable features as needed
+- **Secure secret management** - Environment variables for sensitive data
+- **Modular composition** - Build configurations from reusable components
+- **Runtime validation** - Ensure configurations are valid before startup
+
+## 🎯 Quick Start
+
+### Basic Configuration
+```bash
+# Build development configuration
+./config/scripts/build-config.sh dev
+
+# Build production configuration
+./config/scripts/build-config.sh prod config.prod.toml
+
+# View configuration status
+./config/scripts/debug-manage.sh status
+```
+
+### Environment Variables
+```bash
+# Create .env file
+cat > .env << EOF
+DATABASE_URL=sqlite//:app.db
+SESSION_SECRET=your-session-secret
+JWT_SECRET=your-jwt-secret
+EOF
+
+# Load environment
+source .env
+```
+
+## 📖 Configuration Guides
+
+### Core Configuration
+- **[Database Configuration](./database.md)** - Database connections, migrations, and pooling
+- **[Environment Variables](./environment.md)** - Managing secrets and environment-specific settings
+- **[Security Configuration](./security.md)** - Authentication, authorization, and security settings
+- **[Performance Configuration](./performance.md)** - Optimization and performance tuning
+
+### Advanced Configuration
+- **[Feature Configuration](./features.md)** - Enable/disable application features
+- **[Configuration Files](./files.md)** - Understanding configuration file structure
+- **[Configuration Files](./files.md)** - Understanding configuration file structure
+- **[Security Configuration](./security.md)** - Security settings and best practices
+
+## 🏗️ Configuration Architecture
+
+### File Structure
+```
+config/
+├── base/ # Base configurations
+│ ├── dev.toml # Development base
+│ ├── prod.toml # Production base
+│ └── example.toml # Example/documentation
+├── features/ # Feature-specific configs
+│ ├── auth/ # Authentication features
+│ ├── content/ # Content management
+│ ├── email/ # Email system
+│ ├── metrics/ # Monitoring & metrics
+│ └── tls/ # TLS/SSL configuration
+└── scripts/ # Configuration tools
+ ├── build-config.sh # Build configurations
+ ├── debug-manage.sh # Debug and management
+ └── validate-config.sh # Validation tools
+```
+
+### Configuration Layers
+
+1. **Base Configuration** - Core application settings
+2. **Feature Configuration** - Feature-specific settings
+3. **Environment Variables** - Runtime secrets and overrides
+4. **Command Line Arguments** - Runtime parameter overrides
+
+## 🔧 Configuration Types
+
+### Application Configuration
+```toml
+[app]
+name = "My Rustelo App"
+version = "1.0.0"
+environment = "development"
+debug = true
+
+[server]
+host = "127.0.0.1"
+port = 3030
+workers = 4
+```
+
+### Database Configuration
+```toml
+[database]
+url = "${DATABASE_URL}"
+max_connections = 10
+min_connections = 2
+connect_timeout = 30
+idle_timeout = 300
+```
+
+### Feature Configuration
+```toml
+[features]
+auth = true
+content_db = true
+email = false
+metrics = true
+tls = false
+```
+
+### Security Configuration
+```toml
+[security]
+session_secret = "${SESSION_SECRET}"
+jwt_secret = "${JWT_SECRET}"
+csrf_protection = true
+rate_limiting = true
+secure_cookies = true
+```
+
+## 🌍 Environment Management
+
+### Development Environment
+```bash
+# Development configuration
+DATABASE_URL=sqlite//:dev.db
+SESSION_SECRET=dev-session-secret
+LOG_LEVEL=debug
+ENABLE_HOT_RELOAD=true
+```
+
+### Production Environment
+```bash
+# Production configuration
+DATABASE_URL=postgresql://user:pass@host:5432/db
+SESSION_SECRET=secure-random-secret
+LOG_LEVEL=info
+ENABLE_HOT_RELOAD=false
+DOMAIN=myapp.com
+```
+
+### Staging Environment
+```bash
+# Staging configuration
+DATABASE_URL=postgresql://user:pass@staging-host:5432/db
+SESSION_SECRET=staging-secret
+LOG_LEVEL=info
+ENABLE_DEBUG=false
+```
+
+## 🔐 Secret Management
+
+### Environment Variables
+```bash
+# Required secrets
+export SESSION_SECRET=$(openssl rand -base64 32)
+export JWT_SECRET=$(openssl rand -base64 32)
+export DATABASE_URL="postgresql://user:pass@host:5432/db"
+
+# Optional secrets
+export SMTP_PASSWORD="your-smtp-password"
+export OAUTH_CLIENT_SECRET="your-oauth-secret"
+```
+
+### Secret Management Tools
+```bash
+# Generate secure secrets
+./config/scripts/generate-secrets.sh
+
+# Encrypt/decrypt configuration
+./config/scripts/encrypt-config.sh
+./config/scripts/decrypt-config.sh
+
+# Validate secrets
+./config/scripts/validate-secrets.sh
+```
+
+## 🎛️ Feature Management
+
+### Enabling Features
+```toml
+[features]
+# Authentication system
+auth = true
+
+# Content management
+content_db = true
+
+# Email functionality
+email = true
+
+# Monitoring and metrics
+metrics = true
+
+# TLS/SSL support
+tls = true
+```
+
+### Feature Dependencies
+```toml
+[features.auth]
+enabled = true
+dependencies = ["crypto", "database"]
+
+[features.content_db]
+enabled = true
+dependencies = ["database", "auth"]
+
+[features.email]
+enabled = false
+dependencies = ["auth"]
+```
+
+## 🚀 Configuration Best Practices
+
+### Development Best Practices
+- Use SQLite for development databases
+- Enable debug logging
+- Use relaxed security settings
+- Enable hot reloading
+- Use local file storage
+
+### Production Best Practices
+- Use PostgreSQL for production databases
+- Enable minimal logging
+- Use strict security settings
+- Disable debug features
+- Use cloud storage services
+
+### Security Best Practices
+- Never commit secrets to version control
+- Use environment variables for sensitive data
+- Rotate secrets regularly
+- Use strong encryption keys
+- Enable HTTPS in production
+
+## 📊 Configuration Validation
+
+### Validation Scripts
+```bash
+# Validate current configuration
+./config/scripts/validate-config.sh
+
+# Validate specific environment
+./config/scripts/validate-config.sh prod
+
+# Check configuration completeness
+./config/scripts/check-config.sh
+```
+
+### Schema Validation
+```toml
+[validation]
+strict_mode = true
+required_fields = ["database.url", "security.session_secret"]
+allowed_environments = ["dev", "staging", "prod"]
+```
+
+## 🔄 Configuration Updates
+
+### Runtime Updates
+```bash
+# Reload configuration (if supported)
+kill -HUP $(pidof rustelo-server)
+
+# Update feature flags
+./config/scripts/update-features.sh --enable email
+
+# Apply configuration changes
+./config/scripts/apply-config.sh
+```
+
+### Configuration Deployment
+```bash
+# Deploy configuration to staging
+./config/scripts/deploy-config.sh staging
+
+# Deploy configuration to production
+./config/scripts/deploy-config.sh prod
+
+# Rollback configuration
+./config/scripts/rollback-config.sh
+```
+
+## 🧪 Testing Configuration
+
+### Configuration Tests
+```bash
+# Test configuration validity
+just config-test
+
+# Test feature configurations
+just config-test-features
+
+# Test environment configurations
+just config-test-env prod
+```
+
+### Integration Tests
+```bash
+# Test configuration integration
+cargo test --test config_integration
+
+# Test feature integration
+cargo test --test feature_integration
+```
+
+## 🔍 Troubleshooting
+
+### Common Issues
+
+#### Configuration Not Found
+```bash
+# Check configuration file exists
+ls -la config.toml
+
+# Rebuild configuration
+./config/scripts/build-config.sh dev
+```
+
+#### Environment Variables Missing
+```bash
+# Check environment variables
+env | grep -E "(DATABASE_URL|SESSION_SECRET|JWT_SECRET)"
+
+# Load environment file
+source .env
+```
+
+#### Feature Configuration Conflicts
+```bash
+# Check feature dependencies
+./config/scripts/debug-manage.sh check-features
+
+# Resolve conflicts
+./config/scripts/resolve-conflicts.sh
+```
+
+### Debug Tools
+```bash
+# Debug configuration
+./config/scripts/debug-manage.sh debug
+
+# Show configuration tree
+./config/scripts/debug-manage.sh tree
+
+# Validate configuration
+./config/scripts/debug-manage.sh validate
+```
+
+## 📚 Configuration Examples
+
+### Minimal Configuration
+```toml
+[app]
+name = "My App"
+environment = "development"
+
+[database]
+url = "sqlite://app.db"
+
+[features]
+auth = true
+```
+
+### Full-Featured Configuration
+```toml
+[app]
+name = "Production App"
+environment = "production"
+debug = false
+
+[server]
+host = "0.0.0.0"
+port = 443
+workers = 8
+
+[database]
+url = "${DATABASE_URL}"
+max_connections = 20
+ssl_mode = "require"
+
+[features]
+auth = true
+content_db = true
+email = true
+metrics = true
+tls = true
+
+[security]
+session_secret = "${SESSION_SECRET}"
+jwt_secret = "${JWT_SECRET}"
+csrf_protection = true
+rate_limiting = true
+secure_cookies = true
+```
+
+## 🎯 Next Steps
+
+1. **[Database Configuration](./database.md)** - Set up your database
+2. **[Environment Variables](./environment.md)** - Configure environment-specific settings
+3. **[Security Configuration](./security.md)** - Secure your application
+4. **[Feature Configuration](./features.md)** - Enable the features you need
+5. **[Performance Configuration](./performance.md)** - Optimize for production
+
+## 🆘 Getting Help
+
+- **[Common Issues](../troubleshooting/common.md)** - Solutions to common problems
+- **[Configuration Files Guide](./files.md)** - Understanding configuration structure
+- **[Environment Guide](./environment.md)** - Environment variable management
+- **Community Support** - Discord, GitHub Issues, Stack Overflow
+
+---
+
+**Master your Rustelo configuration!** 🦀⚙️
diff --git a/book/configuration/database.md b/book/configuration/database.md
new file mode 100644
index 0000000..ee24a5c
--- /dev/null
+++ b/book/configuration/database.md
@@ -0,0 +1,343 @@
+# Database Configuration
+
+
+
+
+
+This guide covers how to configure and use databases in RUSTELO. The application supports both **PostgreSQL** and **SQLite** databases through SQLx's unified interface, with automatic database type detection based on the connection URL.
+
+## Quick Start
+
+### SQLite (Recommended for Development)
+```toml
+[database]
+url = "sqlite://database.db"
+```
+
+### PostgreSQL (Recommended for Production)
+```toml
+[database]
+url = "postgresql://username:password@localhost:5432/database_name"
+```
+
+## Database URL Formats
+
+### SQLite URLs
+- `sqlite://database.db` - Relative path to database file
+- `sqlite:///path/to/database.db` - Absolute path to database file
+- `sqlite::memory:` - In-memory database (testing only)
+
+### PostgreSQL URLs
+- `postgresql://user:password@host:port/database`
+- `postgres://user:password@host:port/database`
+
+## Environment Variables
+
+You can override the database URL using environment variables:
+
+```bash
+export DATABASE_URL="sqlite//:my_database.db"
+# or
+export DATABASE_URL="postgresql://user:pass@localhost:5432/mydb"
+```
+
+## Database-Specific Features
+
+### SQLite
+- **Pros:**
+ - Zero configuration setup
+ - Single file database
+ - Perfect for development and testing
+ - No separate server process required
+ - ACID compliant
+
+- **Cons:**
+ - Limited concurrent writes
+ - No network access
+ - Fewer advanced features
+ - File-based storage
+
+### PostgreSQL
+- **Pros:**
+ - Full ACID compliance
+ - Excellent concurrent access
+ - Advanced features (JSONB, arrays, etc.)
+ - Network accessible
+ - Production-ready scalability
+
+- **Cons:**
+ - Requires PostgreSQL server
+ - More complex setup
+ - Resource overhead
+
+## Configuration Examples
+
+### Development Configuration
+```toml
+# config.dev.toml
+[database]
+url = "sqlite://dev_database.db"
+max_connections = 5
+min_connections = 1
+connect_timeout = 30
+idle_timeout = 300
+max_lifetime = 1800
+```
+
+### Production Configuration
+```toml
+# config.prod.toml
+[database]
+url = "postgresql://prod_user:${DATABASE_PASSWORD}@db.example.com:5432/prod_database"
+max_connections = 20
+min_connections = 5
+connect_timeout = 30
+idle_timeout = 600
+max_lifetime = 3600
+```
+
+## Connection Pool Settings
+
+| Setting | Description | SQLite | PostgreSQL |
+|---------|-------------|--------|------------|
+| `max_connections` | Maximum pool size | 1 (recommended) | 10-50 |
+| `min_connections` | Minimum pool size | 1 | 1-5 |
+| `connect_timeout` | Connection timeout (seconds) | 30 | 30 |
+| `idle_timeout` | Idle connection timeout (seconds) | 300 | 600 |
+| `max_lifetime` | Maximum connection lifetime (seconds) | 1800 | 3600 |
+
+## Database Setup
+
+### SQLite Setup
+No setup required! The database file will be created automatically when the application starts.
+
+### PostgreSQL Setup
+
+#### Using Docker
+```bash
+# Start PostgreSQL container
+docker run -d \
+ --name postgres \
+ -e POSTGRES_PASSWORD=password \
+ -e POSTGRES_DB=myapp \
+ -p 5432:5432 \
+ postgres:15
+
+# Connect to database
+docker exec -it postgres psql -U postgres -d myapp
+```
+
+#### Using Local Installation
+
+**macOS (Homebrew):**
+```bash
+brew install postgresql
+brew services start postgresql
+createdb myapp
+```
+
+**Ubuntu/Debian:**
+```bash
+sudo apt-get install postgresql postgresql-contrib
+sudo systemctl start postgresql
+sudo -u postgres createdb myapp
+```
+
+## Migration Support
+
+The application automatically creates the necessary tables for both database types:
+
+### SQLite Tables
+- Uses `TEXT` for IDs (UUID format)
+- Uses `DATETIME` for timestamps
+- Uses `TEXT` for JSON storage
+- Uses `BOOLEAN` for boolean values
+
+### PostgreSQL Tables
+- Uses `UUID` for IDs with `gen_random_uuid()`
+- Uses `TIMESTAMPTZ` for timestamps
+- Uses `JSONB` for JSON storage
+- Uses `BOOLEAN` for boolean values
+
+## Switching Between Databases
+
+You can switch between databases by simply changing the `DATABASE_URL`:
+
+```bash
+# Switch to SQLite
+export DATABASE_URL="sqlite://database.db"
+
+# Switch to PostgreSQL
+export DATABASE_URL="postgresql://user:pass@localhost:5432/mydb"
+```
+
+The application will automatically:
+1. Detect the database type
+2. Use appropriate SQL syntax
+3. Create compatible table schemas
+4. Handle data type differences
+
+## Performance Considerations
+
+### SQLite
+- **Best for:**
+ - Single-user applications
+ - Development and testing
+ - Small to medium datasets
+ - Read-heavy workloads
+
+- **Optimization tips:**
+ - Use WAL mode: `PRAGMA journal_mode=WAL`
+ - Set appropriate timeout: `PRAGMA busy_timeout=5000`
+ - Use transactions for bulk operations
+
+### PostgreSQL
+- **Best for:**
+ - Multi-user applications
+ - Production environments
+ - Large datasets
+ - High concurrency requirements
+
+- **Optimization tips:**
+ - Configure appropriate connection pool size
+ - Use indexes on frequently queried columns
+ - Monitor and tune PostgreSQL configuration
+ - Use connection pooling (PgBouncer) for high traffic
+
+## Troubleshooting
+
+### Common SQLite Issues
+- **Database locked**: Check for long-running transactions
+- **File permissions**: Ensure write access to database file and directory
+- **Disk space**: Verify sufficient disk space for database growth
+
+### Common PostgreSQL Issues
+- **Connection refused**: Check PostgreSQL server status
+- **Authentication failed**: Verify username/password and pg_hba.conf
+- **Too many connections**: Adjust max_connections or use connection pooling
+
+### Debug Connection Issues
+```bash
+# Test SQLite connection
+sqlite3 database.db "SELECT 1;"
+
+# Test PostgreSQL connection
+psql "postgresql://user:pass@localhost:5432/mydb" -c "SELECT 1;"
+```
+
+## Environment-Specific Configuration
+
+### Development
+```bash
+# .env.development
+DATABASE_URL=sqlite://dev_database.db
+```
+
+### Testing
+```bash
+# .env.test
+DATABASE_URL=sqlite::memory:
+```
+
+### Production
+```bash
+# .env.production
+DATABASE_URL=postgresql://user:${DATABASE_PASSWORD}@db.internal:5432/prod_db
+```
+
+## Security Considerations
+
+### SQLite Security
+- Protect database file permissions (600 or 640)
+- Backup database files securely
+- Consider encryption for sensitive data
+
+### PostgreSQL Security
+- Use strong passwords
+- Enable SSL/TLS connections
+- Restrict network access
+- Regular security updates
+- Use connection pooling with authentication
+
+## Backup and Recovery
+
+### SQLite Backup
+```bash
+# Simple file copy
+cp database.db database_backup.db
+
+# Using SQLite backup command
+sqlite3 database.db ".backup database_backup.db"
+```
+
+### PostgreSQL Backup
+```bash
+# Database dump
+pg_dump myapp > myapp_backup.sql
+
+# Restore from dump
+psql myapp < myapp_backup.sql
+```
+
+## Monitoring and Maintenance
+
+### SQLite Maintenance
+```sql
+-- Analyze database
+ANALYZE;
+
+-- Vacuum database
+VACUUM;
+
+-- Check integrity
+PRAGMA integrity_check;
+```
+
+### PostgreSQL Maintenance
+```sql
+-- Analyze tables
+ANALYZE;
+
+-- Vacuum tables
+VACUUM;
+
+-- Check database size
+SELECT pg_size_pretty(pg_database_size('myapp'));
+```
+
+## Best Practices
+
+1. **Use environment variables** for database URLs in production
+2. **Configure appropriate connection pools** based on your workload
+3. **Monitor database performance** and adjust settings as needed
+4. **Regular backups** are essential for production databases
+5. **Test migrations** on both database types if supporting both
+6. **Use transactions** for data consistency
+7. **Index frequently queried columns** for better performance
+8. **Monitor connection pool usage** to prevent exhaustion
+
+## Feature Compatibility Matrix
+
+| Feature | SQLite | PostgreSQL |
+|---------|--------|------------|
+| ACID Transactions | ✅ | ✅ |
+| Concurrent Reads | ✅ | ✅ |
+| Concurrent Writes | ⚠️ Limited | ✅ |
+| JSON Support | ✅ (TEXT) | ✅ (JSONB) |
+| Full-text Search | ✅ (FTS) | ✅ (Built-in) |
+| Network Access | ❌ | ✅ |
+| Replication | ❌ | ✅ |
+| Partitioning | ❌ | ✅ |
+| Custom Functions | ✅ | ✅ |
+| Triggers | ✅ | ✅ |
+| Views | ✅ | ✅ |
+| Stored Procedures | ❌ | ✅ |
+
+## Next Steps
+
+- [Database Migrations](../developers/features/migrations.md)
+- [Performance Optimization](../performance/database.md)
+- [Security Best Practices](../security/data-protection.md)
+- [Backup Strategies](../deployment/backup.md)
+
+This guide should help you choose and configure the right database for your needs. Both options are fully supported and the application will work seamlessly with either choice.
diff --git a/book/configuration/environment.md b/book/configuration/environment.md
new file mode 100644
index 0000000..6560abd
--- /dev/null
+++ b/book/configuration/environment.md
@@ -0,0 +1,543 @@
+# Environment Variables
+
+Rustelo uses environment variables to configure sensitive settings, deployment-specific values, and runtime parameters. This approach ensures that secrets are kept separate from the codebase while allowing flexible configuration across different environments.
+
+## Overview
+
+Environment variables in Rustelo are used for:
+
+- **Sensitive Information**: Database credentials, API keys, secrets
+- **Environment-Specific Settings**: URLs, domains, feature flags
+- **Runtime Configuration**: Debug modes, logging levels, performance tuning
+- **Third-Party Integration**: External service configuration
+
+## Variable Categories
+
+### Core System Variables
+
+#### `RUSTELO_ENV`
+- **Description**: Application environment
+- **Values**: `development`, `production`, `staging`, `test`
+- **Default**: `development`
+- **Example**: `RUSTELO_ENV=production`
+
+#### `RUSTELO_CONFIG_FILE`
+- **Description**: Path to configuration file
+- **Default**: `config.toml`
+- **Example**: `RUSTELO_CONFIG_FILE=/etc/rustelo/config.prod.toml`
+
+#### `RUSTELO_LOG_LEVEL`
+- **Description**: Global log level override
+- **Values**: `error`, `warn`, `info`, `debug`, `trace`
+- **Default**: From config file
+- **Example**: `RUSTELO_LOG_LEVEL=info`
+
+### Database Configuration
+
+#### `DATABASE_URL`
+- **Description**: Database connection string
+- **Required**: Yes (production)
+- **Format**: `postgresql://user:password@host:port/database`
+- **Example**: `DATABASE_URL=postgresql://rustelo:password@localhost:5432/rustelo_prod`
+
+#### `DATABASE_MAX_CONNECTIONS`
+- **Description**: Maximum database connections
+- **Default**: From config file
+- **Example**: `DATABASE_MAX_CONNECTIONS=20`
+
+#### `DATABASE_SSL_MODE`
+- **Description**: Database SSL mode
+- **Values**: `disable`, `allow`, `prefer`, `require`
+- **Default**: `prefer`
+- **Example**: `DATABASE_SSL_MODE=require`
+
+### Authentication & Security
+
+#### `SESSION_SECRET`
+- **Description**: Session encryption secret
+- **Required**: Yes
+- **Min Length**: 32 characters
+- **Example**: `SESSION_SECRET=your-very-long-and-secure-session-secret-here`
+
+#### `JWT_SECRET`
+- **Description**: JWT signing secret
+- **Required**: Yes (if JWT enabled)
+- **Min Length**: 32 characters
+- **Example**: `JWT_SECRET=your-jwt-signing-secret-here`
+
+#### `ENCRYPTION_KEY`
+- **Description**: Application-level encryption key
+- **Required**: Yes (if encryption enabled)
+- **Length**: 32 bytes (base64 encoded)
+- **Example**: `ENCRYPTION_KEY=your-base64-encoded-encryption-key`
+
+#### `CSRF_SECRET`
+- **Description**: CSRF protection secret
+- **Required**: No (auto-generated if not provided)
+- **Example**: `CSRF_SECRET=your-csrf-secret-here`
+
+### Email Configuration
+
+#### `SMTP_HOST`
+- **Description**: SMTP server hostname
+- **Required**: Yes (if email enabled)
+- **Example**: `SMTP_HOST=smtp.gmail.com`
+
+#### `SMTP_PORT`
+- **Description**: SMTP server port
+- **Default**: `587`
+- **Example**: `SMTP_PORT=587`
+
+#### `SMTP_USERNAME`
+- **Description**: SMTP authentication username
+- **Required**: Yes (if SMTP auth enabled)
+- **Example**: `SMTP_USERNAME=your-app@gmail.com`
+
+#### `SMTP_PASSWORD`
+- **Description**: SMTP authentication password
+- **Required**: Yes (if SMTP auth enabled)
+- **Example**: `SMTP_PASSWORD=your-app-password`
+
+#### `FROM_EMAIL`
+- **Description**: Default sender email address
+- **Required**: Yes (if email enabled)
+- **Example**: `FROM_EMAIL=noreply@yourapp.com`
+
+#### `FROM_NAME`
+- **Description**: Default sender name
+- **Default**: Application name
+- **Example**: `FROM_NAME=Your App Name`
+
+### Web Server Configuration
+
+#### `RUSTELO_HOST`
+- **Description**: Server bind address
+- **Default**: `127.0.0.1` (dev), `0.0.0.0` (prod)
+- **Example**: `RUSTELO_HOST=0.0.0.0`
+
+#### `RUSTELO_PORT`
+- **Description**: Server port
+- **Default**: `3030`
+- **Example**: `RUSTELO_PORT=8080`
+
+#### `RUSTELO_WORKERS`
+- **Description**: Number of worker threads
+- **Default**: CPU core count
+- **Example**: `RUSTELO_WORKERS=4`
+
+#### `DOMAIN`
+- **Description**: Application domain for cookies and CORS
+- **Required**: Yes (production)
+- **Example**: `DOMAIN=yourapp.com`
+
+#### `FRONTEND_URL`
+- **Description**: Frontend application URL
+- **Required**: Yes (if separate frontend)
+- **Example**: `FRONTEND_URL=https://app.yourapp.com`
+
+### Redis Configuration
+
+#### `REDIS_URL`
+- **Description**: Redis connection string
+- **Required**: Yes (if Redis enabled)
+- **Example**: `REDIS_URL=redis://localhost:6379`
+
+#### `REDIS_PASSWORD`
+- **Description**: Redis authentication password
+- **Required**: No (if Redis auth disabled)
+- **Example**: `REDIS_PASSWORD=your-redis-password`
+
+#### `REDIS_DATABASE`
+- **Description**: Redis database number
+- **Default**: `0`
+- **Example**: `REDIS_DATABASE=1`
+
+### SSL/TLS Configuration
+
+#### `TLS_CERT_FILE`
+- **Description**: Path to TLS certificate file
+- **Required**: Yes (if HTTPS enabled)
+- **Example**: `TLS_CERT_FILE=/etc/ssl/certs/yourapp.crt`
+
+#### `TLS_KEY_FILE`
+- **Description**: Path to TLS private key file
+- **Required**: Yes (if HTTPS enabled)
+- **Example**: `TLS_KEY_FILE=/etc/ssl/private/yourapp.key`
+
+#### `TLS_CA_FILE`
+- **Description**: Path to TLS CA certificate file
+- **Required**: No
+- **Example**: `TLS_CA_FILE=/etc/ssl/certs/ca-certificates.crt`
+
+### External Services
+
+#### `OAUTH_GOOGLE_CLIENT_ID`
+- **Description**: Google OAuth client ID
+- **Required**: Yes (if Google OAuth enabled)
+- **Example**: `OAUTH_GOOGLE_CLIENT_ID=your-google-client-id`
+
+#### `OAUTH_GOOGLE_CLIENT_SECRET`
+- **Description**: Google OAuth client secret
+- **Required**: Yes (if Google OAuth enabled)
+- **Example**: `OAUTH_GOOGLE_CLIENT_SECRET=your-google-client-secret`
+
+#### `OAUTH_GITHUB_CLIENT_ID`
+- **Description**: GitHub OAuth client ID
+- **Required**: Yes (if GitHub OAuth enabled)
+- **Example**: `OAUTH_GITHUB_CLIENT_ID=your-github-client-id`
+
+#### `OAUTH_GITHUB_CLIENT_SECRET`
+- **Description**: GitHub OAuth client secret
+- **Required**: Yes (if GitHub OAuth enabled)
+- **Example**: `OAUTH_GITHUB_CLIENT_SECRET=your-github-client-secret`
+
+### Monitoring & Observability
+
+#### `PROMETHEUS_ENDPOINT`
+- **Description**: Prometheus metrics endpoint
+- **Default**: `/metrics`
+- **Example**: `PROMETHEUS_ENDPOINT=/prometheus`
+
+#### `JAEGER_ENDPOINT`
+- **Description**: Jaeger tracing endpoint
+- **Required**: No
+- **Example**: `JAEGER_ENDPOINT=http://localhost:14268/api/traces`
+
+#### `SENTRY_DSN`
+- **Description**: Sentry error reporting DSN
+- **Required**: No
+- **Example**: `SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id`
+
+### Development & Debug
+
+#### `RUST_LOG`
+- **Description**: Rust logging configuration
+- **Default**: `info`
+- **Example**: `RUST_LOG=rustelo=debug,sqlx=info`
+
+#### `RUST_BACKTRACE`
+- **Description**: Enable Rust backtraces
+- **Values**: `0`, `1`, `full`
+- **Default**: `0`
+- **Example**: `RUST_BACKTRACE=1`
+
+#### `RUSTELO_DEBUG`
+- **Description**: Enable debug mode
+- **Values**: `true`, `false`
+- **Default**: `false`
+- **Example**: `RUSTELO_DEBUG=true`
+
+#### `RUSTELO_MOCK_EXTERNAL`
+- **Description**: Mock external services
+- **Values**: `true`, `false`
+- **Default**: `false`
+- **Example**: `RUSTELO_MOCK_EXTERNAL=true`
+
+## Environment-Specific Configuration
+
+### Development Environment
+
+```bash
+# Core settings
+RUSTELO_ENV=development
+RUSTELO_LOG_LEVEL=debug
+RUSTELO_DEBUG=true
+
+# Database
+DATABASE_URL=sqlite//:dev_database.db
+
+# Authentication
+SESSION_SECRET=dev-session-secret-change-in-production
+JWT_SECRET=dev-jwt-secret-change-in-production
+
+# Email (console output)
+SMTP_HOST=localhost
+SMTP_PORT=1025
+FROM_EMAIL=dev@localhost
+
+# Features
+RUSTELO_MOCK_EXTERNAL=true
+```
+
+### Production Environment
+
+```bash
+# Core settings
+RUSTELO_ENV=production
+RUSTELO_LOG_LEVEL=info
+RUSTELO_DEBUG=false
+
+# Server
+RUSTELO_HOST=0.0.0.0
+RUSTELO_PORT=443
+DOMAIN=yourapp.com
+FRONTEND_URL=https://yourapp.com
+
+# Database
+DATABASE_URL=postgresql://rustelo:password@db-server:5432/rustelo_prod
+DATABASE_MAX_CONNECTIONS=20
+DATABASE_SSL_MODE=require
+
+# Authentication
+SESSION_SECRET=your-production-session-secret-64-chars-long
+JWT_SECRET=your-production-jwt-secret-64-chars-long
+ENCRYPTION_KEY=your-base64-encoded-encryption-key
+
+# Email
+SMTP_HOST=smtp.gmail.com
+SMTP_PORT=587
+SMTP_USERNAME=your-app@gmail.com
+SMTP_PASSWORD=your-app-password
+FROM_EMAIL=noreply@yourapp.com
+FROM_NAME=Your App
+
+# Redis
+REDIS_URL=redis://redis-server:6379
+REDIS_PASSWORD=your-redis-password
+
+# TLS
+TLS_CERT_FILE=/etc/ssl/certs/yourapp.crt
+TLS_KEY_FILE=/etc/ssl/private/yourapp.key
+
+# OAuth
+OAUTH_GOOGLE_CLIENT_ID=your-google-client-id
+OAUTH_GOOGLE_CLIENT_SECRET=your-google-client-secret
+
+# Monitoring
+SENTRY_DSN=https://your-sentry-dsn@sentry.io/project-id
+```
+
+### Staging Environment
+
+```bash
+# Core settings
+RUSTELO_ENV=staging
+RUSTELO_LOG_LEVEL=info
+RUSTELO_DEBUG=true
+
+# Server
+RUSTELO_HOST=0.0.0.0
+RUSTELO_PORT=443
+DOMAIN=staging.yourapp.com
+FRONTEND_URL=https://staging.yourapp.com
+
+# Database
+DATABASE_URL=postgresql://rustelo:password@staging-db:5432/rustelo_staging
+DATABASE_MAX_CONNECTIONS=10
+DATABASE_SSL_MODE=prefer
+
+# Authentication (use staging secrets)
+SESSION_SECRET=staging-session-secret-64-chars-long
+JWT_SECRET=staging-jwt-secret-64-chars-long
+
+# Email (test configuration)
+SMTP_HOST=smtp.mailtrap.io
+SMTP_PORT=2525
+SMTP_USERNAME=your-mailtrap-username
+SMTP_PASSWORD=your-mailtrap-password
+FROM_EMAIL=staging@yourapp.com
+```
+
+## Environment File Management
+
+### `.env` Files
+
+Create environment-specific `.env` files:
+
+```bash
+# .env.development
+RUSTELO_ENV=development
+DATABASE_URL=sqlite:dev_database.db
+SESSION_SECRET=dev-session-secret
+JWT_SECRET=dev-jwt-secret
+
+# .env.production
+RUSTELO_ENV=production
+DATABASE_URL=postgresql://user:pass@host:5432/db
+SESSION_SECRET=prod-session-secret
+JWT_SECRET=prod-jwt-secret
+
+# .env.staging
+RUSTELO_ENV=staging
+DATABASE_URL=postgresql://user:pass@staging-host:5432/db
+SESSION_SECRET=staging-session-secret
+JWT_SECRET=staging-jwt-secret
+```
+
+### Loading Environment Files
+
+```bash
+# Load development environment
+source .env.development
+
+# Load production environment
+source .env.production
+
+# Load with dotenv (if using dotenv tool)
+dotenv -f .env.production -- ./rustelo-server
+```
+
+## Docker Configuration
+
+### Docker Compose
+
+```yaml
+# docker-compose.yml
+version: '3.8'
+
+services:
+ app:
+ build: .
+ environment:
+ - RUSTELO_ENV=production
+ - DATABASE_URL=postgresql://rustelo:password@db:5432/rustelo
+ - SESSION_SECRET=your-session-secret
+ - JWT_SECRET=your-jwt-secret
+ - REDIS_URL=redis://redis:6379
+ env_file:
+ - .env.production
+ depends_on:
+ - db
+ - redis
+
+ db:
+ image: postgres:15
+ environment:
+ - POSTGRES_DB=rustelo
+ - POSTGRES_USER=rustelo
+ - POSTGRES_PASSWORD=password
+
+ redis:
+ image: redis:7-alpine
+ command: redis-server --requirepass your-redis-password
+```
+
+### Dockerfile
+
+```dockerfile
+FROM rust:1.70 as builder
+
+WORKDIR /app
+COPY . .
+RUN cargo build --release
+
+FROM debian:bookworm-slim
+
+# Install runtime dependencies
+RUN apt-get update && apt-get install -y \
+ ca-certificates \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /app/target/release/rustelo-server /usr/local/bin/
+COPY --from=builder /app/config.prod.toml /etc/rustelo/config.toml
+
+# Environment variables can be set here or passed at runtime
+ENV RUSTELO_ENV=production
+ENV RUSTELO_CONFIG_FILE=/etc/rustelo/config.toml
+
+EXPOSE 3030
+
+CMD ["rustelo-server"]
+```
+
+## Security Best Practices
+
+### Secret Management
+
+1. **Use Strong Secrets**
+ - Minimum 32 characters for session secrets
+ - Use cryptographically secure random generators
+ - Rotate secrets regularly
+
+2. **Environment Separation**
+ - Never use production secrets in development
+ - Use different secrets for each environment
+ - Store secrets in secure vaults (HashiCorp Vault, AWS Secrets Manager)
+
+3. **Access Control**
+ - Limit access to environment variables
+ - Use least privilege principle
+ - Audit secret access
+
+### Example Secret Generation
+
+```bash
+# Generate secure session secret
+openssl rand -base64 64
+
+# Generate JWT secret
+openssl rand -base64 64
+
+# Generate encryption key
+openssl rand -base64 32
+
+# Generate CSRF secret
+openssl rand -base64 32
+```
+
+## Validation and Testing
+
+### Variable Validation
+
+```bash
+# Check required variables
+./scripts/check-env.sh production
+
+# Validate configuration
+./config/scripts/build-config.sh prod --validate-only
+```
+
+### Testing Configuration
+
+```bash
+# Test with environment variables
+RUSTELO_ENV=test DATABASE_URL=sqlite::memory: cargo test
+
+# Test configuration loading
+./rustelo-server --check-config
+```
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Missing Environment Variables**
+ ```bash
+ # Check if variables are set
+ env | grep RUSTELO
+ env | grep DATABASE_URL
+ ```
+
+2. **Invalid Variable Format**
+ ```bash
+ # Validate database URL format
+ echo $DATABASE_URL | grep -E "^postgresql://"
+ ```
+
+3. **Permission Issues**
+ ```bash
+ # Check file permissions for certificates
+ ls -la /etc/ssl/certs/yourapp.crt
+ ```
+
+### Debug Environment Loading
+
+```bash
+# Enable debug logging
+RUST_LOG=rustelo=debug ./rustelo-server
+
+# Show loaded configuration
+./rustelo-server --show-config
+```
+
+## Migration Guide
+
+When updating environment variables:
+
+1. **Add new variables** to all environments
+2. **Update documentation** with new requirements
+3. **Provide default values** where possible
+4. **Test thoroughly** in staging before production
+5. **Update deployment scripts** and Docker configurations
+
+For detailed migration instructions, see the [Environment Migration Guide](../reference/env-migration.md).
diff --git a/book/configuration/features.md b/book/configuration/features.md
new file mode 100644
index 0000000..e5eebd1
--- /dev/null
+++ b/book/configuration/features.md
@@ -0,0 +1,617 @@
+# Features Configuration
+
+Rustelo's modular feature system allows you to enable, disable, and configure individual features based on your application's needs. This chapter covers how to configure features, understand their dependencies, and optimize your application by selecting the right combination of features.
+
+## Overview
+
+Features in Rustelo are:
+
+- **Modular**: Each feature can be enabled/disabled independently
+- **Configurable**: Features have their own configuration settings
+- **Environment-Aware**: Different settings for development, staging, and production
+- **Dependency-Aware**: Features can depend on other features
+- **Performance-Optimized**: Unused features don't impact performance
+
+## Feature System Architecture
+
+```
+features/
+├── auth/ # Authentication & Authorization
+│ ├── dev.toml # Development settings
+│ ├── prod.toml # Production settings
+│ └── example.toml # Example configuration
+├── content/ # Content Management
+├── email/ # Email System
+├── metrics/ # Monitoring & Metrics
+├── tls/ # SSL/TLS Security
+├── rbac/ # Role-Based Access Control
+└── cache/ # Caching System
+```
+
+## Core Features
+
+### Authentication Feature
+
+The authentication feature provides user authentication, session management, and security controls.
+
+#### Configuration
+
+```toml
+[features]
+auth = true
+
+[auth.jwt]
+secret = "${JWT_SECRET}"
+expiration = 3600 # Token expiration in seconds
+refresh_token_expiration = 604800 # Refresh token expiration (7 days)
+algorithm = "HS256" # JWT algorithm
+issuer = "rustelo-app" # JWT issuer
+audience = "rustelo-users" # JWT audience
+
+[auth.password]
+min_length = 8 # Minimum password length
+require_uppercase = true # Require uppercase letters
+require_lowercase = true # Require lowercase letters
+require_numbers = true # Require numbers
+require_special_chars = true # Require special characters
+max_age_days = 90 # Password expiration in days
+history_count = 5 # Number of previous passwords to remember
+
+[auth.security]
+max_login_attempts = 5 # Maximum failed login attempts
+lockout_duration = 900 # Account lockout duration in seconds
+session_timeout = 1800 # Session timeout in seconds
+require_email_verification = true # Require email verification
+password_reset_timeout = 3600 # Password reset token timeout
+
+[auth.two_factor]
+enabled = true # Enable 2FA
+backup_codes_count = 10 # Number of backup codes
+totp_issuer = "Rustelo App" # TOTP issuer name
+totp_digits = 6 # TOTP code length
+totp_period = 30 # TOTP time period in seconds
+
+[auth.sessions]
+cleanup_interval = 3600 # Session cleanup interval in seconds
+max_concurrent_sessions = 3 # Maximum concurrent sessions per user
+remember_me_duration = 2592000 # Remember me duration (30 days)
+```
+
+#### Environment-Specific Settings
+
+**Development:**
+```toml
+[auth.password]
+min_length = 6
+require_uppercase = false
+require_special_chars = false
+
+[auth.security]
+max_login_attempts = 10
+require_email_verification = false
+```
+
+**Production:**
+```toml
+[auth.password]
+min_length = 12
+require_uppercase = true
+require_special_chars = true
+
+[auth.security]
+max_login_attempts = 3
+require_email_verification = true
+```
+
+### Content Management Feature
+
+The content feature provides content creation, editing, and management capabilities.
+
+#### Configuration
+
+```toml
+[features]
+content = true
+
+[content]
+enabled = true
+content_dir = "content" # Content storage directory
+cache_enabled = true # Enable content caching
+cache_ttl = 3600 # Cache TTL in seconds
+max_file_size = 10485760 # Maximum file size (10MB)
+allowed_file_types = [ # Allowed file extensions
+ "md", "txt", "html", "css", "js", "json", "toml", "yaml"
+]
+
+[content.markdown]
+enabled = true # Enable Markdown processing
+syntax_highlighting = true # Enable code syntax highlighting
+math_support = false # Enable LaTeX math rendering
+table_of_contents = true # Generate table of contents
+auto_links = true # Automatically link URLs
+
+[content.media]
+enabled = true # Enable media uploads
+max_image_size = 5242880 # Maximum image size (5MB)
+max_video_size = 52428800 # Maximum video size (50MB)
+image_processing = true # Enable image processing
+thumbnail_generation = true # Generate thumbnails
+allowed_image_types = ["jpg", "jpeg", "png", "gif", "webp"]
+allowed_video_types = ["mp4", "webm", "ogg"]
+
+[content.versioning]
+enabled = false # Enable content versioning
+max_versions = 10 # Maximum versions to keep
+auto_save_interval = 60 # Auto-save interval in seconds
+
+[content.publishing]
+draft_mode = true # Enable draft mode
+scheduled_publishing = true # Enable scheduled publishing
+approval_workflow = false # Require approval for publishing
+```
+
+### Email System Feature
+
+The email feature provides email sending, templating, and queue management.
+
+#### Configuration
+
+```toml
+[features]
+email = true
+
+[email]
+enabled = true
+provider = "smtp" # Email provider: smtp, sendgrid, console
+from_email = "${FROM_EMAIL}" # Default sender email
+from_name = "${FROM_NAME}" # Default sender name
+reply_to = "" # Reply-to address
+templates_dir = "templates/email" # Email templates directory
+queue_enabled = true # Enable email queue
+max_retries = 3 # Maximum retry attempts
+retry_delay = 300 # Retry delay in seconds
+
+[email.smtp]
+host = "${SMTP_HOST}" # SMTP server host
+port = 587 # SMTP server port
+username = "${SMTP_USERNAME}" # SMTP username
+password = "${SMTP_PASSWORD}" # SMTP password
+use_tls = true # Use TLS encryption
+use_starttls = true # Use STARTTLS
+timeout = 30 # Connection timeout in seconds
+
+[email.sendgrid]
+api_key = "${SENDGRID_API_KEY}" # SendGrid API key
+endpoint = "https://api.sendgrid.com/v3/mail/send" # SendGrid endpoint
+
+[email.templates]
+cache_enabled = true # Cache compiled templates
+cache_ttl = 3600 # Template cache TTL
+default_language = "en" # Default template language
+```
+
+### Metrics & Monitoring Feature
+
+The metrics feature provides application monitoring, performance tracking, and observability.
+
+#### Configuration
+
+```toml
+[features]
+metrics = true
+
+[metrics]
+enabled = true
+endpoint = "/metrics" # Metrics endpoint path
+collect_interval = 15 # Collection interval in seconds
+retention_days = 30 # Metrics retention period
+
+[metrics.prometheus]
+enabled = true # Enable Prometheus metrics
+namespace = "rustelo" # Metrics namespace
+subsystem = "app" # Metrics subsystem
+labels = { version = "1.0.0", environment = "production" }
+
+[metrics.system]
+enabled = true # Collect system metrics
+cpu_usage = true # Monitor CPU usage
+memory_usage = true # Monitor memory usage
+disk_usage = true # Monitor disk usage
+network_usage = true # Monitor network usage
+
+[metrics.application]
+enabled = true # Collect application metrics
+request_metrics = true # HTTP request metrics
+database_metrics = true # Database query metrics
+cache_metrics = true # Cache hit/miss metrics
+error_metrics = true # Error rate metrics
+
+[metrics.custom]
+enabled = true # Enable custom metrics
+business_metrics = true # Business-specific metrics
+user_metrics = true # User activity metrics
+```
+
+### TLS/SSL Security Feature
+
+The TLS feature provides SSL/TLS encryption, certificate management, and security headers.
+
+#### Configuration
+
+```toml
+[features]
+tls = true
+
+[tls]
+enabled = true
+cert_file = "${TLS_CERT_FILE}" # Certificate file path
+key_file = "${TLS_KEY_FILE}" # Private key file path
+ca_file = "${TLS_CA_FILE}" # CA certificate file path
+protocols = ["TLSv1.2", "TLSv1.3"] # Supported TLS protocols
+ciphers = [ # Allowed cipher suites
+ "TLS_AES_256_GCM_SHA384",
+ "TLS_CHACHA20_POLY1305_SHA256",
+ "TLS_AES_128_GCM_SHA256"
+]
+
+[tls.security]
+force_https = true # Force HTTPS redirects
+hsts_enabled = true # Enable HSTS
+hsts_max_age = 31536000 # HSTS max age (1 year)
+hsts_include_subdomains = true # Include subdomains in HSTS
+hsts_preload = true # Enable HSTS preload
+
+[tls.certificates]
+auto_renewal = true # Enable automatic certificate renewal
+renewal_threshold = 2592000 # Renewal threshold (30 days)
+acme_enabled = false # Enable ACME/Let's Encrypt
+acme_directory = "https://acme-v02.api.letsencrypt.org/directory"
+```
+
+### Role-Based Access Control (RBAC)
+
+The RBAC feature provides fine-grained access control, permissions, and role management.
+
+#### Configuration
+
+```toml
+[features]
+rbac = true
+
+[rbac]
+enabled = true
+default_role = "user" # Default role for new users
+admin_role = "admin" # Administrator role name
+super_admin_role = "super_admin" # Super administrator role
+
+[rbac.permissions]
+hierarchical = true # Enable hierarchical permissions
+inheritance = true # Enable permission inheritance
+caching = true # Cache permission checks
+cache_ttl = 300 # Permission cache TTL
+
+[rbac.roles]
+dynamic_roles = true # Enable dynamic role creation
+role_templates = true # Enable role templates
+role_expiration = false # Enable role expiration
+
+[rbac.audit]
+enabled = true # Enable audit logging
+log_level = "info" # Audit log level
+retention_days = 90 # Audit log retention period
+```
+
+### Caching System Feature
+
+The caching feature provides multi-level caching for improved performance.
+
+#### Configuration
+
+```toml
+[features]
+cache = true
+
+[cache]
+enabled = true
+default_ttl = 3600 # Default cache TTL in seconds
+max_memory_size = 134217728 # Maximum memory cache size (128MB)
+cleanup_interval = 300 # Cache cleanup interval in seconds
+
+[cache.memory]
+enabled = true # Enable in-memory caching
+max_entries = 10000 # Maximum cache entries
+eviction_policy = "lru" # Eviction policy: lru, lfu, random
+
+[cache.redis]
+enabled = false # Enable Redis caching
+url = "${REDIS_URL}" # Redis connection URL
+database = 0 # Redis database number
+key_prefix = "rustelo:" # Cache key prefix
+compression = true # Enable compression
+
+[cache.file]
+enabled = false # Enable file-based caching
+cache_dir = "cache" # Cache directory
+max_file_size = 1048576 # Maximum file size (1MB)
+```
+
+## Feature Dependencies
+
+Some features depend on others. The system automatically handles these dependencies:
+
+```toml
+# Feature dependency matrix
+[feature_dependencies]
+rbac = ["auth"] # RBAC requires authentication
+content = ["auth"] # Content management requires authentication
+email = [] # Email has no dependencies
+metrics = [] # Metrics has no dependencies
+tls = [] # TLS has no dependencies
+cache = [] # Cache has no dependencies
+```
+
+## Feature Flags
+
+Feature flags allow runtime control of features:
+
+```toml
+[feature_flags]
+auth_enabled = true
+content_enabled = true
+email_enabled = true
+metrics_enabled = true
+tls_enabled = true
+rbac_enabled = false
+cache_enabled = true
+
+# Conditional features
+[feature_flags.conditional]
+oauth_enabled = false # Enable OAuth (requires auth)
+two_factor_enabled = true # Enable 2FA (requires auth)
+file_uploads_enabled = true # Enable file uploads (requires content)
+```
+
+## Environment-Specific Feature Configuration
+
+### Development Environment
+
+```toml
+[features]
+auth = true
+content = true
+email = true
+metrics = true
+tls = false
+rbac = false
+cache = true
+
+[feature_flags]
+debug_mode = true
+mock_external_services = true
+verbose_logging = true
+```
+
+### Production Environment
+
+```toml
+[features]
+auth = true
+content = true
+email = true
+metrics = true
+tls = true
+rbac = true
+cache = true
+
+[feature_flags]
+debug_mode = false
+mock_external_services = false
+verbose_logging = false
+performance_monitoring = true
+```
+
+## Performance Optimization
+
+### Feature-Based Optimization
+
+```toml
+[optimization]
+lazy_loading = true # Lazy load features
+compile_time_optimization = true # Optimize at compile time
+runtime_checks = false # Disable runtime feature checks in production
+
+[optimization.features]
+auth = { priority = "high", preload = true }
+content = { priority = "medium", preload = false }
+email = { priority = "low", preload = false }
+metrics = { priority = "low", preload = false }
+```
+
+### Resource Management
+
+```toml
+[resource_limits]
+max_memory_per_feature = 67108864 # 64MB per feature
+max_cpu_per_feature = 10 # 10% CPU per feature
+max_connections_per_feature = 100 # 100 connections per feature
+```
+
+## Feature Testing
+
+### Test Configuration
+
+```toml
+[testing]
+features_under_test = ["auth", "content"]
+mock_dependencies = true
+integration_tests = true
+performance_tests = false
+
+[testing.auth]
+test_users = 1000
+test_sessions = 100
+test_roles = 10
+
+[testing.content]
+test_documents = 500
+test_media_files = 100
+test_versions = 5
+```
+
+## Creating Custom Features
+
+### Feature Structure
+
+```
+features/my_feature/
+├── dev.toml # Development configuration
+├── prod.toml # Production configuration
+├── example.toml # Example configuration
+└── README.md # Feature documentation
+```
+
+### Example Custom Feature
+
+```toml
+# features/my_feature/dev.toml
+[features]
+my_feature = true
+
+[my_feature]
+enabled = true
+debug_mode = true
+api_endpoint = "http://localhost:8080"
+timeout = 30
+retry_count = 3
+
+[my_feature.settings]
+option1 = "value1"
+option2 = 42
+option3 = true
+```
+
+## Feature Management Commands
+
+### Using Configuration Scripts
+
+```bash
+# List available features
+./config/scripts/manage-config.sh list-features
+
+# Enable a feature
+./config/scripts/manage-config.sh enable-feature auth
+
+# Disable a feature
+./config/scripts/manage-config.sh disable-feature rbac
+
+# Check feature dependencies
+./config/scripts/manage-config.sh check-dependencies
+
+# Validate feature configuration
+./config/scripts/manage-config.sh validate-features
+```
+
+### Runtime Feature Management
+
+```bash
+# Check feature status
+curl http://localhost:3030/admin/features
+
+# Enable feature at runtime (if supported)
+curl -X POST http://localhost:3030/admin/features/auth/enable
+
+# Disable feature at runtime (if supported)
+curl -X POST http://localhost:3030/admin/features/auth/disable
+```
+
+## Best Practices
+
+### 1. Feature Selection
+
+- **Start Small**: Begin with essential features only
+- **Add Gradually**: Enable additional features as needed
+- **Monitor Impact**: Watch performance metrics when adding features
+- **Document Changes**: Keep track of feature changes and their impact
+
+### 2. Configuration Management
+
+- **Environment Consistency**: Use consistent feature sets across environments
+- **Version Control**: Track feature configuration changes
+- **Testing**: Test feature combinations thoroughly
+- **Rollback Plan**: Have a plan for disabling problematic features
+
+### 3. Performance Considerations
+
+- **Resource Usage**: Monitor resource usage per feature
+- **Startup Time**: Consider impact on application startup
+- **Memory Usage**: Track memory consumption of enabled features
+- **Database Impact**: Monitor database performance with features enabled
+
+### 4. Security Considerations
+
+- **Feature Isolation**: Ensure features don't interfere with each other
+- **Access Control**: Implement proper access controls for feature management
+- **Audit Logging**: Log feature changes and access
+- **Security Testing**: Test security implications of feature combinations
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Feature Not Loading**
+ ```bash
+ # Check feature configuration
+ ./config/scripts/manage-config.sh validate-features
+
+ # Check feature dependencies
+ ./config/scripts/manage-config.sh check-dependencies
+ ```
+
+2. **Performance Issues**
+ ```bash
+ # Monitor feature resource usage
+ curl http://localhost:3030/metrics | grep feature_
+
+ # Check feature startup time
+ grep "feature.*initialized" logs/app.log
+ ```
+
+3. **Configuration Conflicts**
+ ```bash
+ # Compare feature configurations
+ ./config/scripts/manage-config.sh diff-features dev prod
+ ```
+
+### Debug Mode
+
+Enable debug mode for detailed feature information:
+
+```bash
+RUSTELO_DEBUG=true FEATURE_DEBUG=true ./rustelo-server
+```
+
+## Migration Guide
+
+When updating feature configurations:
+
+1. **Backup Current Configuration**
+ ```bash
+ ./config/scripts/manage-config.sh backup-features
+ ```
+
+2. **Test New Configuration**
+ ```bash
+ ./config/scripts/manage-config.sh test-features
+ ```
+
+3. **Gradual Rollout**
+ - Update staging environment first
+ - Monitor for issues
+ - Update production environment
+
+4. **Rollback if Needed**
+ ```bash
+ ./config/scripts/manage-config.sh restore-features backup-file
+ ```
+
+For detailed migration instructions, see the [Feature Migration Guide](../reference/feature-migration.md).
\ No newline at end of file
diff --git a/book/configuration/files.md b/book/configuration/files.md
new file mode 100644
index 0000000..42a77a9
--- /dev/null
+++ b/book/configuration/files.md
@@ -0,0 +1,467 @@
+# Configuration Files
+
+Rustelo uses a modular configuration system that separates concerns by features and environments. This system allows for flexible configuration management across different deployment scenarios while maintaining clear separation between base settings and feature-specific configurations.
+
+## Overview
+
+The configuration system consists of:
+
+- **Base Configurations**: Core settings that apply to all features
+- **Feature Configurations**: Settings specific to individual features
+- **Environment-Specific Settings**: Optimized configurations for different environments
+- **Configuration Management Scripts**: Tools for building, validating, and managing configurations
+
+## Configuration Structure
+
+```
+config/
+├── base/ # Base configurations
+│ ├── dev.toml # Development base settings
+│ ├── prod.toml # Production base settings
+│ └── example.toml # Example/template base settings
+├── features/ # Feature-specific configurations
+│ ├── auth/ # Authentication feature
+│ ├── email/ # Email feature
+│ ├── tls/ # TLS/SSL feature
+│ ├── content/ # Content management feature
+│ └── metrics/ # Metrics and monitoring feature
+├── scripts/ # Configuration management scripts
+├── examples/ # Example configurations
+└── README.md # Configuration documentation
+```
+
+## Base Configuration Files
+
+Base configurations contain core settings that apply to all features:
+
+### `base/dev.toml` - Development Environment
+
+```toml
+# Server Configuration
+[server]
+protocol = "http"
+host = "127.0.0.1"
+port = 3030
+environment = "development"
+log_level = "debug"
+
+# Database Configuration
+[database]
+url = "sqlite//:dev_database.db"
+max_connections = 5
+enable_logging = true
+
+# Session Management
+[session]
+secret = "dev-session-secret"
+cookie_secure = false
+max_age = 7200
+
+# Security Settings (relaxed for development)
+[security]
+enable_csrf = false
+rate_limit_requests = 1000
+bcrypt_cost = 10
+```
+
+### `base/prod.toml` - Production Environment
+
+```toml
+# Server Configuration
+[server]
+protocol = "https"
+host = "0.0.0.0"
+port = 443
+environment = "production"
+log_level = "info"
+
+# Database Configuration
+[database]
+url = "${DATABASE_URL}"
+max_connections = 20
+ssl_mode = "require"
+
+# Session Management
+[session]
+secret = "${SESSION_SECRET}"
+cookie_secure = true
+max_age = 1800
+
+# Security Settings (strict for production)
+[security]
+enable_csrf = true
+rate_limit_requests = 100
+bcrypt_cost = 12
+```
+
+## Feature Configuration Files
+
+Feature configurations contain settings specific to individual features:
+
+### Authentication Feature (`features/auth/`)
+
+#### `features/auth/dev.toml`
+
+```toml
+[features]
+auth = true
+
+[auth.jwt]
+secret = "dev-jwt-secret"
+expiration = 86400
+algorithm = "HS256"
+
+[auth.password]
+min_length = 6
+require_uppercase = false
+require_numbers = true
+
+[auth.security]
+max_login_attempts = 10
+lockout_duration = 300
+```
+
+#### `features/auth/prod.toml`
+
+```toml
+[features]
+auth = true
+
+[auth.jwt]
+secret = "${JWT_SECRET}"
+expiration = 1800
+algorithm = "HS256"
+
+[auth.password]
+min_length = 12
+require_uppercase = true
+require_numbers = true
+require_special_chars = true
+
+[auth.security]
+max_login_attempts = 5
+lockout_duration = 900
+```
+
+### Email Feature (`features/email/`)
+
+#### `features/email/dev.toml`
+
+```toml
+[features]
+email = true
+
+[email]
+provider = "console"
+from_email = "dev@localhost"
+templates_dir = "templates/email"
+
+[email.smtp]
+host = "localhost"
+port = 1025
+use_tls = false
+```
+
+#### `features/email/prod.toml`
+
+```toml
+[features]
+email = true
+
+[email]
+provider = "smtp"
+from_email = "${FROM_EMAIL}"
+templates_dir = "templates/email"
+
+[email.smtp]
+host = "${SMTP_HOST}"
+port = 587
+username = "${SMTP_USERNAME}"
+password = "${SMTP_PASSWORD}"
+use_tls = true
+```
+
+## Environment Variables
+
+Configuration files support environment variable substitution using `${VARIABLE_NAME}` syntax:
+
+### Required Environment Variables
+
+#### Development
+- `DATABASE_URL` (optional, defaults to SQLite)
+- `SESSION_SECRET` (optional, uses dev default)
+
+#### Production
+- `DATABASE_URL` (required)
+- `SESSION_SECRET` (required)
+- `JWT_SECRET` (required)
+- `SMTP_HOST` (required if email enabled)
+- `SMTP_USERNAME` (required if email enabled)
+- `SMTP_PASSWORD` (required if email enabled)
+- `FROM_EMAIL` (required if email enabled)
+- `FRONTEND_URL` (required for CORS)
+- `DOMAIN` (required for cookies)
+
+### Environment Variable Examples
+
+```bash
+# Development
+export DATABASE_URL="postgresql://user:password@localhost/rustelo_dev"
+export SESSION_SECRET="your-session-secret-here"
+
+# Production
+export DATABASE_URL="postgresql://user:password@prod-db/rustelo"
+export SESSION_SECRET="your-production-session-secret"
+export JWT_SECRET="your-jwt-secret"
+export SMTP_HOST="smtp.gmail.com"
+export SMTP_USERNAME="your-app@gmail.com"
+export SMTP_PASSWORD="your-app-password"
+export FROM_EMAIL="noreply@yourapp.com"
+export FRONTEND_URL="https://yourapp.com"
+export DOMAIN="yourapp.com"
+```
+
+## Configuration Building
+
+### Using Build Scripts
+
+The configuration system includes scripts for building complete configuration files:
+
+#### Shell Script
+
+```bash
+# Build development configuration
+./config/scripts/build-config.sh dev
+
+# Build production configuration
+./config/scripts/build-config.sh prod config.prod.toml
+
+# Build with validation only
+CONFIG_VALIDATE_ONLY=1 ./config/scripts/build-config.sh dev
+```
+
+#### Python Script
+
+```bash
+# Build development configuration
+./config/scripts/build-config.sh dev
+
+# Build production configuration
+./config/scripts/build-config.sh prod config.prod.toml
+
+# Validate only
+CONFIG_VALIDATE_ONLY=1 ./config/scripts/build-config.sh dev
+```
+
+### Management Script
+
+The management script provides comprehensive configuration operations:
+
+```bash
+# Build configurations
+./config/scripts/manage-config.sh build dev
+./config/scripts/manage-config.sh build prod config.prod.toml
+
+# Validate configurations
+./config/scripts/manage-config.sh validate dev
+
+# List features and environments
+./config/scripts/manage-config.sh list-features
+./config/scripts/manage-config.sh list-environments
+
+# Compare configurations
+./config/scripts/manage-config.sh diff dev prod
+
+# Create backups
+./config/scripts/manage-config.sh backup prod
+```
+
+## Configuration Validation
+
+The system includes built-in validation for:
+
+### Syntax Validation
+- **TOML Syntax**: Ensures valid TOML structure
+- **Type Checking**: Validates that values are of expected types
+- **Required Fields**: Checks for presence of essential configuration sections
+
+### Semantic Validation
+- **Port Ranges**: Validates that ports are within valid ranges (1-65535)
+- **Protocol Values**: Ensures protocols are valid (http, https)
+- **Connection Limits**: Validates database connection pool settings
+- **Feature Dependencies**: Checks that required features are enabled
+
+### Security Validation
+- **Secret Length**: Validates that secrets meet minimum length requirements
+- **Password Policies**: Ensures password policies are configured securely
+- **TLS Settings**: Validates SSL/TLS configuration for production
+
+## Configuration Examples
+
+### Complete Development Configuration
+
+```toml
+# Base settings
+[server]
+protocol = "http"
+host = "127.0.0.1"
+port = 3030
+environment = "development"
+
+[database]
+url = "sqlite//:dev_database.db"
+max_connections = 5
+
+# Feature: Authentication
+[features]
+auth = true
+
+[auth.jwt]
+secret = "dev-jwt-secret"
+expiration = 86400
+
+# Feature: Email
+[features]
+email = true
+
+[email]
+provider = "console"
+from_email = "dev@localhost"
+
+# Build Information
+[build_info]
+environment = "dev"
+build_time = "2024-01-01T12:00:00Z"
+features = ["auth", "email"]
+```
+
+### Complete Production Configuration
+
+```toml
+# Base settings
+[server]
+protocol = "https"
+host = "0.0.0.0"
+port = 443
+environment = "production"
+
+[database]
+url = "${DATABASE_URL}"
+max_connections = 20
+ssl_mode = "require"
+
+# Feature: Authentication
+[features]
+auth = true
+
+[auth.jwt]
+secret = "${JWT_SECRET}"
+expiration = 1800
+
+[auth.password]
+min_length = 12
+require_uppercase = true
+require_numbers = true
+require_special_chars = true
+
+# Feature: Email
+[features]
+email = true
+
+[email]
+provider = "smtp"
+from_email = "${FROM_EMAIL}"
+
+[email.smtp]
+host = "${SMTP_HOST}"
+port = 587
+username = "${SMTP_USERNAME}"
+password = "${SMTP_PASSWORD}"
+use_tls = true
+
+# Build Information
+[build_info]
+environment = "prod"
+build_time = "2024-01-01T12:00:00Z"
+features = ["auth", "email"]
+```
+
+## Best Practices
+
+### 1. Environment-Specific Optimization
+
+- **Development**: Prioritize developer experience and debugging
+- **Production**: Prioritize security, performance, and reliability
+- **Staging**: Mirror production settings with relaxed security for testing
+
+### 2. Feature Independence
+
+- Keep feature configurations independent of each other
+- Use feature flags to enable/disable functionality
+- Provide sensible defaults for all settings
+
+### 3. Security
+
+- Never commit sensitive values to version control
+- Use environment variables for all secrets
+- Implement proper validation for security-critical settings
+- Use strong defaults for production environments
+
+### 4. Documentation
+
+- Document all configuration options in example files
+- Provide clear descriptions for complex settings
+- Include units and ranges for numeric values
+- Maintain migration guides for configuration changes
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Invalid TOML Syntax**
+ ```bash
+ # Validate syntax
+ ./config/scripts/manage-config.sh validate dev
+ ```
+
+2. **Missing Environment Variables**
+ ```bash
+ # Check required variables
+ env | grep -E "(DATABASE_URL|SESSION_SECRET|JWT_SECRET)"
+ ```
+
+3. **Feature Conflicts**
+ ```bash
+ # Compare configurations
+ ./config/scripts/manage-config.sh diff dev prod
+ ```
+
+### Debug Mode
+
+Enable debug output for detailed information:
+
+```bash
+CONFIG_DEBUG=1 ./config/scripts/build-config.sh dev
+```
+
+### Validation Only
+
+Validate configurations without building:
+
+```bash
+./config/scripts/manage-config.sh validate dev
+CONFIG_VALIDATE_ONLY=1 ./config/scripts/build-config.sh prod
+```
+
+## Migration Guide
+
+When upgrading configurations:
+
+1. **Backup existing configurations**
+2. **Update base configurations** for new settings
+3. **Update feature configurations** as needed
+4. **Test in development** before deploying to production
+5. **Validate configurations** using the build scripts
+6. **Update environment variables** if required
+
+For detailed migration instructions, see the [Configuration Migration Guide](../reference/config-migration.md).
diff --git a/book/configuration/performance.md b/book/configuration/performance.md
new file mode 100644
index 0000000..4824990
--- /dev/null
+++ b/book/configuration/performance.md
@@ -0,0 +1,532 @@
+# Performance Configuration
+
+Rustelo provides extensive performance tuning options to optimize your application for different workloads and deployment scenarios. This chapter covers how to configure performance-related settings, optimize resource usage, and monitor application performance.
+
+## Overview
+
+Performance optimization in Rustelo covers:
+
+- **Server Configuration**: Worker threads, connection limits, and request handling
+- **Database Optimization**: Connection pooling, query optimization, and caching
+- **Memory Management**: Heap size, garbage collection, and memory pools
+- **Caching Systems**: Multi-level caching strategies and cache invalidation
+- **Asset Optimization**: Static file serving, compression, and CDN integration
+- **Monitoring & Profiling**: Performance metrics and bottleneck identification
+
+## Server Performance Configuration
+
+### Worker Thread Configuration
+
+```toml
+[server.performance]
+workers = 8 # Number of worker threads (default: CPU cores)
+worker_max_blocking_threads = 32 # Max blocking threads per worker
+worker_thread_stack_size = 2097152 # Stack size per thread (2MB)
+worker_thread_keep_alive = 60 # Keep-alive time for idle threads
+max_connections = 10000 # Maximum concurrent connections
+connection_timeout = 30 # Connection timeout in seconds
+keep_alive_timeout = 65 # Keep-alive timeout
+```
+
+### Request Handling
+
+```toml
+[server.requests]
+max_request_size = 52428800 # 50MB max request size
+max_header_size = 32768 # 32KB max header size
+max_uri_length = 8192 # 8KB max URI length
+request_timeout = 30 # Request timeout in seconds
+slow_request_threshold = 1000 # Log slow requests over 1 second
+max_concurrent_requests = 1000 # Max concurrent requests
+```
+
+### Connection Management
+
+```toml
+[server.connections]
+tcp_nodelay = true # Disable Nagle's algorithm
+tcp_keepalive = true # Enable TCP keepalive
+keepalive_time = 7200 # Keepalive time (2 hours)
+keepalive_interval = 75 # Keepalive probe interval
+keepalive_probes = 9 # Number of keepalive probes
+reuse_port = true # Enable SO_REUSEPORT
+backlog = 1024 # Listen backlog queue size
+```
+
+## Database Performance Configuration
+
+### Connection Pool Optimization
+
+```toml
+[database.performance]
+max_connections = 20 # Maximum pool size
+min_connections = 5 # Minimum pool size
+acquire_timeout = 30 # Connection acquire timeout
+idle_timeout = 600 # Idle connection timeout
+max_lifetime = 1800 # Maximum connection lifetime
+test_before_acquire = false # Test connections before use
+```
+
+### Query Optimization
+
+```toml
+[database.queries]
+statement_timeout = 30000 # Query timeout in milliseconds
+slow_query_threshold = 1000 # Log slow queries over 1 second
+enable_query_cache = true # Enable query result caching
+query_cache_size = 134217728 # Query cache size (128MB)
+query_cache_ttl = 300 # Query cache TTL in seconds
+prepared_statement_cache_size = 256 # Prepared statement cache size
+```
+
+### Database-Specific Optimizations
+
+#### PostgreSQL
+
+```toml
+[database.postgresql]
+shared_buffers = "256MB" # Shared buffer size
+effective_cache_size = "1GB" # Effective cache size
+work_mem = "4MB" # Work memory per query
+maintenance_work_mem = "64MB" # Maintenance work memory
+checkpoint_completion_target = 0.7 # Checkpoint completion target
+wal_buffers = "16MB" # WAL buffer size
+default_statistics_target = 100 # Statistics target
+random_page_cost = 1.1 # Random page cost
+```
+
+#### SQLite
+
+```toml
+[database.sqlite]
+journal_mode = "WAL" # Write-Ahead Logging
+synchronous = "NORMAL" # Synchronous mode
+cache_size = 10000 # Page cache size
+temp_store = "memory" # Temporary storage in memory
+mmap_size = 268435456 # Memory-mapped I/O size (256MB)
+page_size = 4096 # Page size in bytes
+```
+
+## Memory Management
+
+### Heap Configuration
+
+```toml
+[memory]
+initial_heap_size = 134217728 # Initial heap size (128MB)
+max_heap_size = 2147483648 # Maximum heap size (2GB)
+gc_threshold = 0.75 # GC threshold (75% of heap)
+gc_trigger_interval = 60 # GC trigger interval in seconds
+```
+
+### Memory Pools
+
+```toml
+[memory.pools]
+buffer_pool_size = 67108864 # Buffer pool size (64MB)
+string_pool_size = 16777216 # String pool size (16MB)
+object_pool_size = 33554432 # Object pool size (32MB)
+connection_pool_memory = 8388608 # Connection pool memory (8MB)
+```
+
+### Memory Monitoring
+
+```toml
+[memory.monitoring]
+track_allocations = true # Track memory allocations
+memory_usage_threshold = 0.8 # Alert when memory usage > 80%
+enable_memory_profiling = false # Enable memory profiling (dev only)
+memory_leak_detection = true # Enable memory leak detection
+```
+
+## Caching Configuration
+
+### Multi-Level Caching
+
+```toml
+[cache]
+enabled = true
+default_ttl = 3600 # Default cache TTL (1 hour)
+max_memory_size = 268435456 # Max memory cache size (256MB)
+cleanup_interval = 300 # Cache cleanup interval (5 minutes)
+compression_enabled = true # Enable cache compression
+compression_threshold = 1024 # Compress items larger than 1KB
+```
+
+### L1 Cache (In-Memory)
+
+```toml
+[cache.l1]
+enabled = true
+max_entries = 10000 # Maximum cache entries
+eviction_policy = "lru" # Eviction policy: lru, lfu, fifo
+segment_count = 16 # Number of cache segments
+expire_after_write = 3600 # Expire after write (1 hour)
+expire_after_access = 1800 # Expire after access (30 minutes)
+```
+
+### L2 Cache (Redis)
+
+```toml
+[cache.l2]
+enabled = true
+redis_url = "${REDIS_URL}"
+database = 0 # Redis database number
+key_prefix = "rustelo:" # Cache key prefix
+connection_pool_size = 10 # Redis connection pool size
+connection_timeout = 5 # Redis connection timeout
+command_timeout = 5 # Redis command timeout
+```
+
+### Application-Level Caching
+
+```toml
+[cache.application]
+page_cache_enabled = true # Enable page caching
+page_cache_ttl = 1800 # Page cache TTL (30 minutes)
+api_cache_enabled = true # Enable API response caching
+api_cache_ttl = 300 # API cache TTL (5 minutes)
+template_cache_enabled = true # Enable template caching
+static_file_cache_enabled = true # Enable static file caching
+```
+
+## Asset Optimization
+
+### Static File Serving
+
+```toml
+[assets]
+serve_static_files = true # Serve static files
+static_file_cache_control = "public, max-age=31536000" # 1 year cache
+enable_etag = true # Enable ETag headers
+enable_last_modified = true # Enable Last-Modified headers
+enable_range_requests = true # Enable range requests
+```
+
+### Compression
+
+```toml
+[assets.compression]
+enabled = true
+algorithms = ["gzip", "deflate", "br"] # Compression algorithms
+compression_level = 6 # Compression level (1-9)
+min_file_size = 1024 # Minimum file size to compress
+compress_types = [ # MIME types to compress
+ "text/html",
+ "text/css",
+ "text/javascript",
+ "application/javascript",
+ "application/json",
+ "text/xml",
+ "application/xml"
+]
+```
+
+### CDN Integration
+
+```toml
+[assets.cdn]
+enabled = false # Enable CDN
+cdn_url = "https://cdn.example.com" # CDN base URL
+cdn_paths = ["/static", "/assets"] # Paths to serve from CDN
+cache_bust_enabled = true # Enable cache busting
+cache_bust_strategy = "timestamp" # Strategy: timestamp, hash, version
+```
+
+## Performance Monitoring
+
+### Metrics Collection
+
+```toml
+[performance.metrics]
+enabled = true
+collection_interval = 15 # Metrics collection interval (seconds)
+retention_period = 2592000 # Metrics retention (30 days)
+high_resolution_metrics = true # Enable high-resolution metrics
+```
+
+### Response Time Monitoring
+
+```toml
+[performance.response_times]
+track_percentiles = true # Track response time percentiles
+percentiles = [50, 75, 90, 95, 99, 99.9] # Percentiles to track
+slow_request_threshold = 1000 # Slow request threshold (1 second)
+very_slow_request_threshold = 5000 # Very slow request threshold (5 seconds)
+```
+
+### Resource Monitoring
+
+```toml
+[performance.resources]
+monitor_cpu = true # Monitor CPU usage
+monitor_memory = true # Monitor memory usage
+monitor_disk = true # Monitor disk I/O
+monitor_network = true # Monitor network I/O
+monitor_connections = true # Monitor connection count
+```
+
+## Profiling Configuration
+
+### CPU Profiling
+
+```toml
+[profiling.cpu]
+enabled = false # Enable CPU profiling (dev/staging only)
+sampling_interval = 10000 # Sampling interval in microseconds
+profile_duration = 60 # Profile duration in seconds
+output_format = "flamegraph" # Output format: flamegraph, callgrind
+```
+
+### Memory Profiling
+
+```toml
+[profiling.memory]
+enabled = false # Enable memory profiling (dev/staging only)
+track_allocations = true # Track individual allocations
+heap_profiling = true # Enable heap profiling
+leak_detection = true # Enable memory leak detection
+```
+
+### Database Profiling
+
+```toml
+[profiling.database]
+enabled = false # Enable database profiling
+log_all_queries = false # Log all database queries
+log_slow_queries = true # Log slow queries only
+explain_slow_queries = true # Add EXPLAIN to slow queries
+query_plan_cache = true # Cache query execution plans
+```
+
+## Environment-Specific Performance
+
+### Development Environment
+
+```toml
+[performance.development]
+optimize_for_development = true # Enable development optimizations
+hot_reload_enabled = true # Enable hot reloading
+debug_mode = true # Enable debug mode
+profiling_enabled = true # Enable profiling
+reduced_caching = true # Reduce caching for development
+```
+
+### Production Environment
+
+```toml
+[performance.production]
+optimize_for_production = true # Enable production optimizations
+aggressive_caching = true # Enable aggressive caching
+connection_pooling = true # Enable connection pooling
+jit_compilation = true # Enable JIT compilation
+gc_optimization = true # Enable garbage collection optimization
+```
+
+## Load Testing Configuration
+
+### Test Parameters
+
+```toml
+[load_testing]
+max_virtual_users = 1000 # Maximum virtual users
+ramp_up_time = 60 # Ramp-up time in seconds
+test_duration = 300 # Test duration in seconds
+think_time = 1 # Think time between requests
+```
+
+### Performance Targets
+
+```toml
+[load_testing.targets]
+response_time_p95 = 500 # 95th percentile response time (ms)
+response_time_p99 = 1000 # 99th percentile response time (ms)
+throughput_rps = 1000 # Requests per second
+error_rate_threshold = 0.01 # Maximum error rate (1%)
+cpu_usage_threshold = 0.8 # Maximum CPU usage (80%)
+memory_usage_threshold = 0.8 # Maximum memory usage (80%)
+```
+
+## Performance Optimization Strategies
+
+### Database Optimization
+
+```toml
+[optimization.database]
+enable_query_optimization = true
+index_optimization = true
+query_caching = true
+connection_pooling = true
+read_replicas = false
+database_sharding = false
+```
+
+### Application Optimization
+
+```toml
+[optimization.application]
+lazy_loading = true # Enable lazy loading
+async_processing = true # Enable async processing
+batch_operations = true # Enable batch operations
+response_streaming = true # Enable response streaming
+request_coalescing = true # Enable request coalescing
+```
+
+### System Optimization
+
+```toml
+[optimization.system]
+kernel_bypass = false # Enable kernel bypass (advanced)
+numa_awareness = true # Enable NUMA awareness
+cpu_affinity = false # Enable CPU affinity
+disk_io_optimization = true # Enable disk I/O optimization
+network_optimization = true # Enable network optimization
+```
+
+## Monitoring and Alerting
+
+### Performance Alerts
+
+```toml
+[alerts.performance]
+enabled = true
+response_time_threshold = 2000 # Response time alert threshold (2 seconds)
+throughput_threshold = 100 # Throughput alert threshold (100 RPS)
+error_rate_threshold = 0.05 # Error rate alert threshold (5%)
+memory_usage_threshold = 0.9 # Memory usage alert threshold (90%)
+cpu_usage_threshold = 0.9 # CPU usage alert threshold (90%)
+```
+
+### Health Checks
+
+```toml
+[health_checks]
+enabled = true
+check_interval = 30 # Health check interval (seconds)
+timeout = 5 # Health check timeout (seconds)
+failure_threshold = 3 # Consecutive failures before alert
+```
+
+## Benchmarking Configuration
+
+### Benchmark Settings
+
+```toml
+[benchmarking]
+enabled = false # Enable benchmarking
+benchmark_duration = 60 # Benchmark duration (seconds)
+warmup_duration = 10 # Warmup duration (seconds)
+concurrency_levels = [1, 10, 100, 1000] # Concurrency levels to test
+```
+
+### Performance Baselines
+
+```toml
+[benchmarking.baselines]
+response_time_baseline = 100 # Response time baseline (ms)
+throughput_baseline = 1000 # Throughput baseline (RPS)
+memory_baseline = 134217728 # Memory baseline (128MB)
+cpu_baseline = 0.5 # CPU baseline (50%)
+```
+
+## Troubleshooting Performance Issues
+
+### Common Performance Problems
+
+1. **High Response Times**
+ - Check database query performance
+ - Review caching configuration
+ - Monitor resource usage
+ - Analyze request patterns
+
+2. **Memory Issues**
+ - Monitor memory usage patterns
+ - Check for memory leaks
+ - Review garbage collection settings
+ - Optimize memory allocation
+
+3. **CPU Bottlenecks**
+ - Profile CPU usage
+ - Check for inefficient algorithms
+ - Review worker thread configuration
+ - Optimize hot code paths
+
+4. **Database Performance**
+ - Analyze slow queries
+ - Check connection pool settings
+ - Review database configuration
+ - Optimize indexes
+
+### Performance Debugging
+
+```toml
+[debugging.performance]
+enable_detailed_logging = true # Enable detailed performance logging
+request_tracing = true # Enable request tracing
+sql_query_logging = true # Enable SQL query logging
+memory_tracking = true # Enable memory tracking
+cpu_profiling = true # Enable CPU profiling
+```
+
+## Best Practices
+
+### Performance Optimization Guidelines
+
+1. **Measure Before Optimizing**
+ - Establish performance baselines
+ - Use profiling tools
+ - Monitor key metrics
+ - Identify bottlenecks
+
+2. **Optimize Incrementally**
+ - Make small, measurable changes
+ - Test each optimization
+ - Monitor impact
+ - Rollback if necessary
+
+3. **Cache Strategically**
+ - Cache frequently accessed data
+ - Use appropriate cache levels
+ - Implement cache invalidation
+ - Monitor cache hit rates
+
+4. **Database Optimization**
+ - Use appropriate indexes
+ - Optimize query structure
+ - Configure connection pooling
+ - Monitor slow queries
+
+### Performance Testing
+
+```toml
+[testing.performance]
+automated_testing = true # Enable automated performance testing
+regression_testing = true # Enable performance regression testing
+load_testing = true # Enable load testing
+stress_testing = true # Enable stress testing
+```
+
+## Performance Checklist
+
+### Pre-Production Performance Review
+
+- [ ] Database queries optimized
+- [ ] Appropriate indexes created
+- [ ] Connection pooling configured
+- [ ] Caching strategy implemented
+- [ ] Static assets optimized
+- [ ] Compression enabled
+- [ ] Memory limits configured
+- [ ] Worker threads optimized
+- [ ] Performance monitoring enabled
+- [ ] Load testing completed
+- [ ] Performance baselines established
+- [ ] Alerting configured
+
+## Next Steps
+
+- [Database Optimization](../performance/database.md)
+- [Caching Strategies](../performance/caching.md)
+- [Frontend Optimization](../performance/frontend.md)
+- [Memory Management](../performance/memory.md)
+- [Monitoring & Profiling](../performance/monitoring.md)
\ No newline at end of file
diff --git a/book/configuration/security.md b/book/configuration/security.md
new file mode 100644
index 0000000..286579b
--- /dev/null
+++ b/book/configuration/security.md
@@ -0,0 +1,605 @@
+# Security Configuration
+
+Rustelo provides comprehensive security features to protect your application and user data. This chapter covers how to configure authentication, authorization, encryption, and other security measures to ensure your application meets security best practices.
+
+## Overview
+
+Rustelo's security system includes:
+
+- **Authentication**: User identity verification and session management
+- **Authorization**: Role-based access control (RBAC) and permissions
+- **Encryption**: Data protection at rest and in transit
+- **Input Validation**: Protection against injection attacks
+- **Security Headers**: HTTP security headers and CSP
+- **Rate Limiting**: Protection against abuse and DoS attacks
+- **Audit Logging**: Security event tracking and monitoring
+
+## Authentication Configuration
+
+### Basic Authentication Settings
+
+```toml
+[auth]
+enabled = true
+require_authentication = true
+default_session_timeout = 1800 # 30 minutes
+max_session_duration = 28800 # 8 hours
+session_cleanup_interval = 300 # 5 minutes
+
+[auth.password]
+min_length = 12
+max_length = 128
+require_uppercase = true
+require_lowercase = true
+require_numbers = true
+require_special_chars = true
+forbidden_passwords = [
+ "password", "123456", "admin", "root"
+]
+password_history_count = 5
+password_expiry_days = 90
+```
+
+### JWT Configuration
+
+```toml
+[auth.jwt]
+secret = "${JWT_SECRET}"
+algorithm = "HS256"
+issuer = "rustelo-app"
+audience = ["rustelo-users"]
+access_token_expiry = 900 # 15 minutes
+refresh_token_expiry = 86400 # 24 hours
+require_exp = true
+require_iat = true
+require_nbf = true
+clock_skew = 60 # Allow 60 seconds clock skew
+```
+
+### Session Management
+
+```toml
+[auth.sessions]
+cookie_name = "rustelo_session"
+cookie_secure = true # HTTPS only
+cookie_http_only = true # No JavaScript access
+cookie_same_site = "Strict"
+cookie_path = "/"
+cookie_domain = "" # Current domain only
+session_regeneration = true # Regenerate session ID on login
+concurrent_sessions = 3 # Max concurrent sessions per user
+```
+
+### Account Security
+
+```toml
+[auth.security]
+max_login_attempts = 5
+lockout_duration = 900 # 15 minutes
+progressive_lockout = true # Increase lockout time on repeated failures
+require_email_verification = true
+email_verification_expiry = 86400 # 24 hours
+password_reset_expiry = 3600 # 1 hour
+```
+
+## Two-Factor Authentication
+
+### TOTP Configuration
+
+```toml
+[auth.two_factor]
+enabled = true
+required_for_admin = true
+backup_codes_count = 10
+backup_codes_length = 8
+
+[auth.two_factor.totp]
+issuer = "Rustelo App"
+algorithm = "SHA1"
+digits = 6
+period = 30
+window = 1 # Allow 1 step before/after current time
+```
+
+### SMS Configuration
+
+```toml
+[auth.two_factor.sms]
+enabled = false
+provider = "twilio" # twilio, aws_sns
+verification_code_length = 6
+verification_code_expiry = 300 # 5 minutes
+rate_limit = 5 # Max 5 SMS per hour per user
+
+[auth.two_factor.sms.twilio]
+account_sid = "${TWILIO_ACCOUNT_SID}"
+auth_token = "${TWILIO_AUTH_TOKEN}"
+from_number = "${TWILIO_FROM_NUMBER}"
+```
+
+## Authorization & RBAC
+
+### Role-Based Access Control
+
+```toml
+[rbac]
+enabled = true
+default_role = "user"
+admin_role = "admin"
+super_admin_role = "super_admin"
+guest_role = "guest"
+
+[rbac.permissions]
+hierarchical = true # Roles inherit permissions from parent roles
+cache_enabled = true
+cache_ttl = 300 # 5 minutes
+audit_enabled = true
+
+[rbac.roles]
+user = {
+ permissions = ["read_own_profile", "update_own_profile"],
+ inherits_from = ["guest"]
+}
+moderator = {
+ permissions = ["moderate_content", "view_reports"],
+ inherits_from = ["user"]
+}
+admin = {
+ permissions = ["manage_users", "manage_content", "view_logs"],
+ inherits_from = ["moderator"]
+}
+super_admin = {
+ permissions = ["*"],
+ inherits_from = []
+}
+```
+
+### Resource-Based Permissions
+
+```toml
+[rbac.resources]
+users = ["create", "read", "update", "delete"]
+content = ["create", "read", "update", "delete", "publish"]
+reports = ["create", "read", "update", "delete", "resolve"]
+logs = ["read", "export"]
+settings = ["read", "update"]
+```
+
+## Encryption Configuration
+
+### Data Encryption
+
+```toml
+[encryption]
+enabled = true
+algorithm = "AES-256-GCM"
+key_derivation = "PBKDF2"
+key_derivation_iterations = 100000
+salt_length = 32
+
+[encryption.at_rest]
+enabled = true
+encrypt_sensitive_fields = true
+sensitive_fields = [
+ "password", "email", "phone", "ssn", "credit_card"
+]
+
+[encryption.in_transit]
+min_tls_version = "1.2"
+cipher_suites = [
+ "TLS_AES_256_GCM_SHA384",
+ "TLS_CHACHA20_POLY1305_SHA256",
+ "TLS_AES_128_GCM_SHA256"
+]
+```
+
+### Key Management
+
+```toml
+[encryption.keys]
+rotation_enabled = true
+rotation_interval = 2592000 # 30 days
+key_backup_enabled = true
+key_backup_location = "${KEY_BACKUP_PATH}"
+master_key = "${MASTER_ENCRYPTION_KEY}"
+```
+
+## Input Validation & Sanitization
+
+### General Validation
+
+```toml
+[security.validation]
+enabled = true
+strict_mode = true
+max_request_size = 10485760 # 10MB
+max_field_length = 1000
+max_array_length = 100
+max_nesting_depth = 10
+
+[security.validation.email]
+allow_plus_addressing = true
+allow_internationalized = true
+require_verification = true
+blocked_domains = ["tempmail.com", "10minutemail.com"]
+```
+
+### SQL Injection Prevention
+
+```toml
+[security.sql_injection]
+use_prepared_statements = true
+validate_input_types = true
+escape_special_characters = true
+log_suspicious_queries = true
+```
+
+### XSS Prevention
+
+```toml
+[security.xss]
+enabled = true
+auto_escape_html = true
+content_security_policy = true
+sanitize_user_input = true
+allowed_html_tags = ["b", "i", "u", "em", "strong", "a"]
+allowed_attributes = ["href", "title", "alt"]
+```
+
+## Security Headers
+
+### HTTP Security Headers
+
+```toml
+[security.headers]
+enabled = true
+
+[security.headers.hsts]
+enabled = true
+max_age = 31536000 # 1 year
+include_subdomains = true
+preload = true
+
+[security.headers.csp]
+enabled = true
+default_src = ["'self'"]
+script_src = ["'self'", "'unsafe-inline'"]
+style_src = ["'self'", "'unsafe-inline'"]
+img_src = ["'self'", "data:", "https:"]
+connect_src = ["'self'"]
+font_src = ["'self'"]
+object_src = ["'none'"]
+frame_ancestors = ["'none'"]
+base_uri = ["'self'"]
+form_action = ["'self'"]
+
+[security.headers.other]
+x_content_type_options = "nosniff"
+x_frame_options = "DENY"
+x_xss_protection = "1; mode=block"
+referrer_policy = "strict-origin-when-cross-origin"
+permissions_policy = "geolocation=(), microphone=(), camera=()"
+```
+
+## Rate Limiting
+
+### API Rate Limiting
+
+```toml
+[security.rate_limiting]
+enabled = true
+storage = "memory" # memory, redis, database
+cleanup_interval = 3600 # 1 hour
+
+[security.rate_limiting.global]
+requests_per_minute = 100
+burst_limit = 10
+
+[security.rate_limiting.per_user]
+requests_per_minute = 60
+burst_limit = 5
+
+[security.rate_limiting.endpoints]
+"/api/auth/login" = { requests_per_minute = 5, burst_limit = 2 }
+"/api/auth/register" = { requests_per_minute = 3, burst_limit = 1 }
+"/api/password/reset" = { requests_per_minute = 2, burst_limit = 1 }
+"/api/upload" = { requests_per_minute = 10, burst_limit = 3 }
+```
+
+### DDoS Protection
+
+```toml
+[security.ddos]
+enabled = true
+max_connections_per_ip = 10
+connection_timeout = 30
+slow_loris_protection = true
+```
+
+## CSRF Protection
+
+```toml
+[security.csrf]
+enabled = true
+token_name = "csrf_token"
+header_name = "X-CSRF-Token"
+cookie_name = "csrf_cookie"
+token_length = 32
+double_submit_cookie = true
+same_site_cookie = "Strict"
+```
+
+## File Upload Security
+
+```toml
+[security.uploads]
+enabled = true
+max_file_size = 10485760 # 10MB
+max_files_per_request = 5
+allowed_extensions = [
+ "jpg", "jpeg", "png", "gif", "webp",
+ "pdf", "doc", "docx", "txt", "csv"
+]
+scan_for_viruses = true
+quarantine_suspicious_files = true
+```
+
+## Audit Logging
+
+### Security Event Logging
+
+```toml
+[security.audit]
+enabled = true
+log_level = "info"
+log_format = "json"
+log_file = "/var/log/rustelo/security.log"
+max_log_size = 104857600 # 100MB
+max_log_files = 10
+log_retention_days = 90
+
+[security.audit.events]
+login_success = true
+login_failure = true
+logout = true
+password_change = true
+password_reset = true
+account_lockout = true
+permission_denied = true
+data_access = true
+data_modification = true
+admin_actions = true
+```
+
+### Compliance Logging
+
+```toml
+[security.compliance]
+gdpr_logging = true
+hipaa_logging = false
+pci_logging = false
+sox_logging = false
+```
+
+## Environment-Specific Security
+
+### Development Environment
+
+```toml
+[security.development]
+relaxed_cors = true
+debug_headers = true
+disable_https_redirect = true
+allow_http_cookies = true
+verbose_error_messages = true
+```
+
+### Production Environment
+
+```toml
+[security.production]
+strict_mode = true
+hide_server_info = true
+disable_debug_endpoints = true
+require_https = true
+enable_monitoring = true
+```
+
+## SSL/TLS Configuration
+
+### Certificate Management
+
+```toml
+[security.tls]
+enabled = true
+cert_file = "${TLS_CERT_FILE}"
+key_file = "${TLS_KEY_FILE}"
+ca_file = "${TLS_CA_FILE}"
+protocols = ["TLSv1.2", "TLSv1.3"]
+prefer_server_ciphers = true
+
+[security.tls.auto_renewal]
+enabled = true
+provider = "lets_encrypt"
+renewal_threshold = 2592000 # 30 days
+notification_email = "${ADMIN_EMAIL}"
+```
+
+## Security Monitoring
+
+### Intrusion Detection
+
+```toml
+[security.monitoring]
+enabled = true
+failed_login_threshold = 10
+suspicious_activity_threshold = 5
+alert_admin = true
+auto_block_suspicious_ips = true
+block_duration = 3600 # 1 hour
+```
+
+### Security Metrics
+
+```toml
+[security.metrics]
+enabled = true
+track_login_attempts = true
+track_permission_denials = true
+track_rate_limit_hits = true
+track_security_violations = true
+```
+
+## Best Practices Configuration
+
+### Password Security
+
+```toml
+[security.passwords]
+use_bcrypt = true
+bcrypt_cost = 12
+require_password_confirmation = true
+prevent_password_reuse = true
+password_strength_meter = true
+```
+
+### API Security
+
+```toml
+[security.api]
+require_authentication = true
+require_https = true
+validate_content_type = true
+rate_limit_enabled = true
+cors_enabled = true
+cors_allow_credentials = false
+```
+
+## Security Testing
+
+### Penetration Testing
+
+```toml
+[security.testing]
+enable_security_tests = true
+sql_injection_tests = true
+xss_tests = true
+csrf_tests = true
+authentication_tests = true
+authorization_tests = true
+```
+
+## Incident Response
+
+### Security Incident Configuration
+
+```toml
+[security.incident_response]
+enabled = true
+auto_lockout_on_breach = true
+notify_admin_on_incident = true
+incident_log_file = "/var/log/rustelo/incidents.log"
+emergency_contact = "${SECURITY_CONTACT}"
+```
+
+## Compliance Frameworks
+
+### GDPR Compliance
+
+```toml
+[security.gdpr]
+enabled = true
+data_retention_days = 2555 # 7 years
+anonymize_on_deletion = true
+consent_tracking = true
+data_export_enabled = true
+```
+
+### OWASP Configuration
+
+```toml
+[security.owasp]
+top_10_protection = true
+injection_prevention = true
+broken_authentication_prevention = true
+sensitive_data_exposure_prevention = true
+xml_external_entities_prevention = true
+broken_access_control_prevention = true
+security_misconfiguration_prevention = true
+cross_site_scripting_prevention = true
+insecure_deserialization_prevention = true
+known_vulnerabilities_prevention = true
+insufficient_logging_prevention = true
+```
+
+## Security Checklist
+
+### Pre-Deployment Security Checks
+
+- [ ] Strong authentication configured
+- [ ] HTTPS enabled and enforced
+- [ ] Security headers implemented
+- [ ] Input validation enabled
+- [ ] Rate limiting configured
+- [ ] Audit logging enabled
+- [ ] File upload restrictions in place
+- [ ] Database security configured
+- [ ] Regular security updates scheduled
+- [ ] Backup and recovery procedures tested
+- [ ] Incident response plan documented
+- [ ] Security monitoring enabled
+- [ ] Penetration testing completed
+- [ ] Compliance requirements met
+
+## Troubleshooting
+
+### Common Security Issues
+
+1. **Authentication Failures**
+ - Check password policies
+ - Verify JWT configuration
+ - Review session settings
+
+2. **Authorization Issues**
+ - Validate RBAC configuration
+ - Check permission inheritance
+ - Review role assignments
+
+3. **SSL/TLS Problems**
+ - Verify certificate validity
+ - Check cipher suite compatibility
+ - Validate TLS version settings
+
+4. **Rate Limiting Issues**
+ - Monitor rate limit logs
+ - Adjust limits based on usage
+ - Check for IP blocking
+
+### Security Debugging
+
+```bash
+# Enable security debug logging
+RUST_LOG=rustelo::security=debug ./rustelo-server
+
+# Check security headers
+curl -I https://yourapp.com
+
+# Test authentication
+curl -X POST https://yourapp.com/api/auth/login \
+ -H "Content-Type: application/json" \
+ -d '{"username":"test","password":"test"}'
+```
+
+## Security Resources
+
+- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
+- [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework)
+- [Mozilla Security Guidelines](https://infosec.mozilla.org/guidelines/)
+- [Rust Security Guidelines](https://doc.rust-lang.org/nomicon/security.html)
+
+## Next Steps
+
+- [Authentication System](../developers/components/auth.md)
+- [Performance Optimization](../performance/overview.md)
+- [Monitoring & Logging](../deployment/monitoring.md)
+- [Security Best Practices](../security/best-practices.md)
\ No newline at end of file
diff --git a/book/contributing/docs.md b/book/contributing/docs.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/contributing/guide.md b/book/contributing/guide.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/contributing/guidelines.md b/book/contributing/guidelines.md
new file mode 100644
index 0000000..245759f
--- /dev/null
+++ b/book/contributing/guidelines.md
@@ -0,0 +1 @@
+# Contributing Guidelines
diff --git a/book/contributing/releases.md b/book/contributing/releases.md
new file mode 100644
index 0000000..3cba710
--- /dev/null
+++ b/book/contributing/releases.md
@@ -0,0 +1 @@
+# Release Process
diff --git a/book/contributing/setup.md b/book/contributing/setup.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/contributing/standards.md b/book/contributing/standards.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/contributing/testing.md b/book/contributing/testing.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/database/abstraction.md b/book/database/abstraction.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/database/configuration.md b/book/database/configuration.md
new file mode 100644
index 0000000..10482c2
--- /dev/null
+++ b/book/database/configuration.md
@@ -0,0 +1,332 @@
+# Database Configuration Guide
+
+This application supports both **PostgreSQL** and **SQLite** databases through SQLx's unified interface. The database type is automatically detected based on the connection URL.
+
+## Quick Start
+
+### SQLite (Recommended for Development)
+```toml
+[database]
+url = "sqlite//:database.db"
+```
+
+### PostgreSQL (Recommended for Production)
+```toml
+[database]
+url = "postgresql://username:password@localhost:5432/database_name"
+```
+
+## Database URL Formats
+
+### SQLite URLs
+- `sqlite//:database.db` - Relative path to database file
+- `sqlite:///path/to/database.db` - Absolute path to database file
+- `sqlite::memory:` - In-memory database (testing only)
+
+### PostgreSQL URLs
+- `postgresql://user:password@host:port/database`
+- `postgres://user:password@host:port/database`
+
+## Environment Variables
+
+You can override the database URL using environment variables:
+
+```bash
+export DATABASE_URL="sqlite//:my_database.db"
+# or
+export DATABASE_URL="postgresql://user:pass@localhost:5432/mydb"
+```
+
+## Database-Specific Features
+
+### SQLite
+- **Pros:**
+ - Zero configuration setup
+ - Single file database
+ - Perfect for development and testing
+ - No separate server process required
+ - ACID compliant
+
+- **Cons:**
+ - Limited concurrent writes
+ - No network access
+ - Fewer advanced features
+ - File-based storage
+
+### PostgreSQL
+- **Pros:**
+ - Full ACID compliance
+ - Excellent concurrent access
+ - Advanced features (JSONB, arrays, etc.)
+ - Network accessible
+ - Production-ready scalability
+
+- **Cons:**
+ - Requires PostgreSQL server
+ - More complex setup
+ - Resource overhead
+
+## Configuration Examples
+
+### Development Configuration
+```toml
+# config.dev.toml
+[database]
+url = "sqlite//:dev_database.db"
+max_connections = 5
+min_connections = 1
+connect_timeout = 30
+idle_timeout = 300
+max_lifetime = 1800
+```
+
+### Production Configuration
+```toml
+# config.prod.toml
+[database]
+url = "postgresql://prod_user:${DATABASE_PASSWORD}@db.example.com:5432/prod_database"
+max_connections = 20
+min_connections = 5
+connect_timeout = 30
+idle_timeout = 600
+max_lifetime = 3600
+```
+
+## Connection Pool Settings
+
+| Setting | Description | SQLite | PostgreSQL |
+|---------|-------------|--------|------------|
+| `max_connections` | Maximum pool size | 1 (recommended) | 10-50 |
+| `min_connections` | Minimum pool size | 1 | 1-5 |
+| `connect_timeout` | Connection timeout (seconds) | 30 | 30 |
+| `idle_timeout` | Idle connection timeout (seconds) | 300 | 600 |
+| `max_lifetime` | Maximum connection lifetime (seconds) | 1800 | 3600 |
+
+## Database Setup
+
+### SQLite Setup
+No setup required! The database file will be created automatically when the application starts.
+
+### PostgreSQL Setup
+
+#### Using Docker
+```bash
+# Start PostgreSQL container
+docker run -d \
+ --name postgres \
+ -e POSTGRES_PASSWORD=password \
+ -e POSTGRES_DB=myapp \
+ -p 5432:5432 \
+ postgres:15
+
+# Connect to database
+docker exec -it postgres psql -U postgres -d myapp
+```
+
+#### Using Local Installation
+
+**macOS (Homebrew):**
+```bash
+brew install postgresql
+brew services start postgresql
+createdb myapp
+```
+
+**Ubuntu/Debian:**
+```bash
+sudo apt-get install postgresql postgresql-contrib
+sudo systemctl start postgresql
+sudo -u postgres createdb myapp
+```
+
+## Migration Support
+
+The application automatically creates the necessary tables for both database types:
+
+### SQLite Tables
+- Uses `TEXT` for IDs (UUID format)
+- Uses `DATETIME` for timestamps
+- Uses `TEXT` for JSON storage
+- Uses `BOOLEAN` for boolean values
+
+### PostgreSQL Tables
+- Uses `UUID` for IDs with `gen_random_uuid()`
+- Uses `TIMESTAMPTZ` for timestamps
+- Uses `JSONB` for JSON storage
+- Uses `BOOLEAN` for boolean values
+
+## Switching Between Databases
+
+You can switch between databases by simply changing the `DATABASE_URL`:
+
+```bash
+# Switch to SQLite
+export DATABASE_URL="sqlite//:database.db"
+
+# Switch to PostgreSQL
+export DATABASE_URL="postgresql://user:pass@localhost:5432/mydb"
+```
+
+The application will automatically:
+1. Detect the database type
+2. Use appropriate SQL syntax
+3. Create compatible table schemas
+4. Handle data type differences
+
+## Performance Considerations
+
+### SQLite
+- **Best for:**
+ - Single-user applications
+ - Development and testing
+ - Small to medium datasets
+ - Read-heavy workloads
+
+- **Optimization tips:**
+ - Use WAL mode: `PRAGMA journal_mode=WAL`
+ - Set appropriate timeout: `PRAGMA busy_timeout=5000`
+ - Use transactions for bulk operations
+
+### PostgreSQL
+- **Best for:**
+ - Multi-user applications
+ - Production environments
+ - Large datasets
+ - High concurrency requirements
+
+- **Optimization tips:**
+ - Configure appropriate connection pool size
+ - Use indexes on frequently queried columns
+ - Monitor and tune PostgreSQL configuration
+ - Use connection pooling (PgBouncer) for high traffic
+
+## Troubleshooting
+
+### Common SQLite Issues
+- **Database locked**: Check for long-running transactions
+- **File permissions**: Ensure write access to database file and directory
+- **Disk space**: Verify sufficient disk space for database growth
+
+### Common PostgreSQL Issues
+- **Connection refused**: Check PostgreSQL server status
+- **Authentication failed**: Verify username/password and pg_hba.conf
+- **Too many connections**: Adjust max_connections or use connection pooling
+
+### Debug Connection Issues
+```bash
+# Test SQLite connection
+sqlite3 database.db "SELECT 1;"
+
+# Test PostgreSQL connection
+psql "postgresql://user:pass@localhost:5432/mydb" -c "SELECT 1;"
+```
+
+## Environment-Specific Configuration
+
+### Development
+```bash
+# .env.development
+DATABASE_URL=sqlite//:dev_database.db
+```
+
+### Testing
+```bash
+# .env.test
+DATABASE_URL=sqlite//::memory:
+```
+
+### Production
+```bash
+# .env.production
+DATABASE_URL=postgresql://user:${DATABASE_PASSWORD}@db.internal:5432/prod_db
+```
+
+## Security Considerations
+
+### SQLite Security
+- Protect database file permissions (600 or 640)
+- Backup database files securely
+- Consider encryption for sensitive data
+
+### PostgreSQL Security
+- Use strong passwords
+- Enable SSL/TLS connections
+- Restrict network access
+- Regular security updates
+- Use connection pooling with authentication
+
+## Backup and Recovery
+
+### SQLite Backup
+```bash
+# Simple file copy
+cp database.db database_backup.db
+
+# Using SQLite backup command
+sqlite3 database.db ".backup database_backup.db"
+```
+
+### PostgreSQL Backup
+```bash
+# Database dump
+pg_dump myapp > myapp_backup.sql
+
+# Restore from dump
+psql myapp < myapp_backup.sql
+```
+
+## Monitoring and Maintenance
+
+### SQLite Maintenance
+```sql
+-- Analyze database
+ANALYZE;
+
+-- Vacuum database
+VACUUM;
+
+-- Check integrity
+PRAGMA integrity_check;
+```
+
+### PostgreSQL Maintenance
+```sql
+-- Analyze tables
+ANALYZE;
+
+-- Vacuum tables
+VACUUM;
+
+-- Check database size
+SELECT pg_size_pretty(pg_database_size('myapp'));
+```
+
+## Best Practices
+
+1. **Use environment variables** for database URLs in production
+2. **Configure appropriate connection pools** based on your workload
+3. **Monitor database performance** and adjust settings as needed
+4. **Regular backups** are essential for production databases
+5. **Test migrations** on both database types if supporting both
+6. **Use transactions** for data consistency
+7. **Index frequently queried columns** for better performance
+8. **Monitor connection pool usage** to prevent exhaustion
+
+## Feature Compatibility Matrix
+
+| Feature | SQLite | PostgreSQL |
+|---------|--------|------------|
+| ACID Transactions | ✅ | ✅ |
+| Concurrent Reads | ✅ | ✅ |
+| Concurrent Writes | ⚠️ Limited | ✅ |
+| JSON Support | ✅ (TEXT) | ✅ (JSONB) |
+| Full-text Search | ✅ (FTS) | ✅ (Built-in) |
+| Network Access | ❌ | ✅ |
+| Replication | ❌ | ✅ |
+| Partitioning | ❌ | ✅ |
+| Custom Functions | ✅ | ✅ |
+| Triggers | ✅ | ✅ |
+| Views | ✅ | ✅ |
+| Stored Procedures | ❌ | ✅ |
+
+This guide should help you choose and configure the right database for your needs. Both options are fully supported and the application will work seamlessly with either choice.
diff --git a/book/database/migrations.md b/book/database/migrations.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/database/overview.md b/book/database/overview.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/database/postgresql.md b/book/database/postgresql.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/database/sqlite.md b/book/database/sqlite.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/backup.md b/book/deployment/backup.md
new file mode 100644
index 0000000..dc48113
--- /dev/null
+++ b/book/deployment/backup.md
@@ -0,0 +1 @@
+# Backup & Recovery
diff --git a/book/deployment/cloud.md b/book/deployment/cloud.md
new file mode 100644
index 0000000..ecb7673
--- /dev/null
+++ b/book/deployment/cloud.md
@@ -0,0 +1 @@
+# Cloud Platforms
diff --git a/book/deployment/docker.md b/book/deployment/docker.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/environments.md b/book/deployment/environments.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/monitoring.md b/book/deployment/monitoring.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/overview.md b/book/deployment/overview.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/production.md b/book/deployment/production.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/deployment/ssl.md b/book/deployment/ssl.md
new file mode 100644
index 0000000..12d7a8e
--- /dev/null
+++ b/book/deployment/ssl.md
@@ -0,0 +1 @@
+# SSL/TLS Configuration
diff --git a/book/developers/architecture/backend.md b/book/developers/architecture/backend.md
new file mode 100644
index 0000000..f1c9e33
--- /dev/null
+++ b/book/developers/architecture/backend.md
@@ -0,0 +1 @@
+# Backend Architecture
diff --git a/book/developers/architecture/database.md b/book/developers/architecture/database.md
new file mode 100644
index 0000000..f0a8621
--- /dev/null
+++ b/book/developers/architecture/database.md
@@ -0,0 +1 @@
+# Database Design
diff --git a/book/developers/architecture/frontend.md b/book/developers/architecture/frontend.md
new file mode 100644
index 0000000..5fdf18d
--- /dev/null
+++ b/book/developers/architecture/frontend.md
@@ -0,0 +1 @@
+# Frontend Architecture
diff --git a/book/developers/architecture/overview.md b/book/developers/architecture/overview.md
new file mode 100644
index 0000000..299adec
--- /dev/null
+++ b/book/developers/architecture/overview.md
@@ -0,0 +1 @@
+# System Overview
diff --git a/book/developers/architecture/security.md b/book/developers/architecture/security.md
new file mode 100644
index 0000000..9a211a3
--- /dev/null
+++ b/book/developers/architecture/security.md
@@ -0,0 +1 @@
+# Security Model
diff --git a/book/developers/brand/logo-usage.md b/book/developers/brand/logo-usage.md
new file mode 100644
index 0000000..3518efb
--- /dev/null
+++ b/book/developers/brand/logo-usage.md
@@ -0,0 +1,329 @@
+# Logo Usage Guide
+
+The Rustelo project includes a comprehensive logo system designed to work across different contexts and themes. This guide explains how to properly use the logos in your applications and documentation.
+
+## Logo Assets
+
+The logo system includes the following variants:
+
+### Available Logo Files
+
+| File | Usage | Context |
+|------|-------|---------|
+| `rustelo_dev-logo-h.svg` | Horizontal logo for normal/light themes | Primary horizontal logo |
+| `rustelo_dev-logo-b-h.svg` | Horizontal logo for dark themes | Dark theme horizontal logo |
+| `rustelo_dev-logo-v.svg` | Vertical logo for normal/light themes | Primary vertical logo |
+| `rustelo_dev-logo-b-v.svg` | Vertical logo for dark themes | Dark theme vertical logo |
+| `rustelo-imag.svg` | Logo image without text | Icon/favicon usage |
+
+### Logo Locations
+
+- **Source**: `logos/` directory (original assets)
+- **Public**: `public/logos/` directory (web-accessible assets)
+- **Documentation**: Referenced in mdBook via `../logos/` path
+
+## Usage Guidelines
+
+### 1. Web Application Usage
+
+#### Navigation Logo
+```rust
+use crate::components::NavbarLogo;
+
+// In your navigation component
+view! {
+
+
+ // ... other nav items
+
+}
+```
+
+#### Brand Header
+```rust
+use crate::components::BrandHeader;
+
+// For page headers
+view! {
+
+}
+```
+
+#### Standalone Logo
+```rust
+use crate::components::Logo;
+
+// Basic logo usage
+view! {
+
+}
+```
+
+### 2. Documentation Usage
+
+#### Markdown Files
+```markdown
+
+
+
+
+ # Your Page Title
+
+```
+
+#### mdBook Pages
+```markdown
+
+
+
+
+
+# Welcome to Rustelo
+```
+
+### 3. Size Guidelines
+
+#### Component Sizes
+- **small**: 32px height (navbar usage)
+- **medium**: 48px height (standard usage)
+- **large**: 64px height (headers)
+- **xlarge**: 80px height (hero sections)
+
+#### Documentation Sizes
+- **Small**: 150-200px width
+- **Medium**: 250-300px width
+- **Large**: 350-400px width
+
+### 4. Responsive Usage
+
+The logo components automatically adapt to different screen sizes:
+
+```rust
+// Mobile-responsive logo
+view! {
+
+}
+```
+
+## Theme Integration
+
+### Automatic Theme Detection
+
+The logo components automatically detect the current theme and switch between light and dark variants:
+
+```rust
+// This automatically uses the appropriate variant
+view! {
+
+}
+```
+
+### Manual Theme Selection
+
+For static contexts (like documentation), choose the appropriate variant:
+
+- **Light backgrounds**: Use `rustelo_dev-logo-h.svg` or `rustelo_dev-logo-v.svg`
+- **Dark backgrounds**: Use `rustelo_dev-logo-b-h.svg` or `rustelo_dev-logo-b-v.svg`
+
+## Best Practices
+
+### DO
+
+✅ Use the horizontal logo for navigation bars and headers
+✅ Use the vertical logo for sidebar or narrow layouts
+✅ Use the image-only logo for favicons and small icons
+✅ Maintain proper contrast with background colors
+✅ Use consistent sizing within the same context
+✅ Include proper alt text: "RUSTELO"
+
+### DON'T
+
+❌ Stretch or distort the logo proportions
+❌ Use light logos on light backgrounds
+❌ Use dark logos on dark backgrounds
+❌ Make the logo too small to read (minimum 24px height)
+❌ Use low-quality or pixelated versions
+
+## Component API Reference
+
+### Logo Component
+
+```rust
+#[component]
+pub fn Logo(
+ #[prop(default = "horizontal".to_string())] orientation: String,
+ #[prop(default = "normal".to_string())] size: String,
+ #[prop(default = true)] show_text: bool,
+ #[prop(default = "".to_string())] class: String,
+) -> impl IntoView
+```
+
+**Parameters:**
+- `orientation`: "horizontal" | "vertical"
+- `size`: "small" | "medium" | "large" | "xlarge"
+- `show_text`: true (full logo) | false (image only)
+- `class`: Additional CSS classes
+
+### LogoLink Component
+
+```rust
+#[component]
+pub fn LogoLink(
+ #[prop(default = "horizontal".to_string())] orientation: String,
+ #[prop(default = "normal".to_string())] size: String,
+ #[prop(default = true)] show_text: bool,
+ #[prop(default = "".to_string())] class: String,
+ #[prop(default = "/".to_string())] href: String,
+) -> impl IntoView
+```
+
+**Additional Parameters:**
+- `href`: Link destination (default: "/")
+
+### BrandHeader Component
+
+```rust
+#[component]
+pub fn BrandHeader(
+ #[prop(default = "RUSTELO".to_string())] title: String,
+ #[prop(default = "".to_string())] subtitle: String,
+ #[prop(default = "medium".to_string())] logo_size: String,
+ #[prop(default = "".to_string())] class: String,
+) -> impl IntoView
+```
+
+**Parameters:**
+- `title`: Main brand title
+- `subtitle`: Optional subtitle text
+- `logo_size`: Logo size variant
+- `class`: Additional CSS classes
+
+### NavbarLogo Component
+
+```rust
+#[component]
+pub fn NavbarLogo(
+ #[prop(default = "small".to_string())] size: String,
+ #[prop(default = "".to_string())] class: String,
+) -> impl IntoView
+```
+
+**Parameters:**
+- `size`: Logo size (optimized for navbar)
+- `class`: Additional CSS classes
+
+## Usage Examples
+
+### Hero Section
+```rust
+view! {
+
+}
+```
+
+### Sidebar
+```rust
+view! {
+
+}
+```
+
+### Footer
+```rust
+view! {
+
+}
+```
+
+## Troubleshooting
+
+### Logo Not Displaying
+
+1. **Check file paths**: Ensure logos are copied to `public/logos/`
+2. **Verify imports**: Make sure components are properly imported
+3. **Theme detection**: Confirm theme context is available
+
+### Theme Switching Issues
+
+1. **Theme provider**: Ensure `ThemeProvider` is properly configured
+2. **CSS classes**: Check that theme-specific CSS is loaded
+3. **JavaScript**: Verify theme switching JavaScript is working
+
+### Performance Optimization
+
+1. **SVG optimization**: Use optimized SVG files
+2. **Lazy loading**: Add `loading="lazy"` for non-critical logos
+3. **Caching**: Ensure proper cache headers for logo assets
+
+## File Structure
+
+```
+template/
+├── logos/ # Source logo files
+│ ├── rustelo_dev-logo-h.svg
+│ ├── rustelo_dev-logo-b-h.svg
+│ ├── rustelo_dev-logo-v.svg
+│ ├── rustelo_dev-logo-b-v.svg
+│ └── rustelo-imag.svg
+├── public/
+│ └── logos/ # Web-accessible logo files
+│ ├── rustelo_dev-logo-h.svg
+│ ├── rustelo_dev-logo-b-h.svg
+│ ├── rustelo_dev-logo-v.svg
+│ ├── rustelo_dev-logo-b-v.svg
+│ └── rustelo-imag.svg
+└── client/src/components/
+ └── Logo.rs # Logo components
+```
+
+## Contributing
+
+When adding new logo variants or updating existing ones:
+
+1. Update both `logos/` and `public/logos/` directories
+2. Test with both light and dark themes
+3. Verify responsive behavior
+4. Update this documentation
+5. Test in all supported browsers
+
+For questions or issues with logo usage, please refer to the [GitHub Issues](https://github.com/yourusername/rustelo/issues) page.
\ No newline at end of file
diff --git a/book/developers/components/README.md b/book/developers/components/README.md
new file mode 100644
index 0000000..1f2a0f8
--- /dev/null
+++ b/book/developers/components/README.md
@@ -0,0 +1,303 @@
+# Rustelo Components
+
+Welcome to the Rustelo Components documentation! This section covers all the built-in components and utilities available in the Rustelo framework.
+
+## 📦 Available Components
+
+### Authentication Components
+- **[Authentication System](./auth.md)** - User authentication, JWT tokens, and session management
+- Login/Register forms
+- Password reset functionality
+- User profile management
+- Role-based access control
+
+### Content Management
+- **[Content System](./content.md)** - Content creation, editing, and management
+- Markdown rendering
+- File uploads and media management
+- Content versioning
+- Search functionality
+
+### Email System
+- **[Email Components](./email.md)** - Email sending and template management
+- SMTP configuration
+- Email templates
+- Queue management
+- Notification system
+
+### Configuration
+- **[Configuration System](./config.md)** - Application configuration management
+- Environment-based configs
+- Feature toggles
+- Runtime configuration
+- Validation and schema
+
+### Templates & UI
+- **[Template System](./templates.md)** - UI templates and components
+- Responsive layouts
+- Theme system
+- Component library
+- Style utilities
+
+## 🎯 Component Architecture
+
+Rustelo follows a modular component architecture where each component is:
+
+- **Self-contained** - Each component manages its own state and dependencies
+- **Configurable** - Components can be enabled/disabled via features
+- **Extensible** - Easy to customize and extend for your needs
+- **Well-documented** - Complete API documentation and examples
+
+## 🚀 Getting Started
+
+### Enable Components
+
+Components are enabled through Cargo features:
+
+```toml
+[dependencies]
+server = { path = "../server", features = ["auth", "content-db", "email"] }
+```
+
+### Basic Usage
+
+```rust
+use rustelo::components::{Auth, Content, Email};
+
+// Initialize components
+let auth = Auth::new(config.auth)?;
+let content = Content::new(config.content)?;
+let email = Email::new(config.email)?;
+```
+
+## 📋 Component Status
+
+| Component | Status | Features | Documentation |
+|-----------|--------|----------|---------------|
+| Authentication | ✅ Complete | `auth` | [View](./auth.md) |
+| Content Management | ✅ Complete | `content-db` | [View](./content.md) |
+| Email System | ✅ Complete | `email` | [View](./email.md) |
+| Configuration | ✅ Complete | Always enabled | [View](./config.md) |
+| Templates | ✅ Complete | Always enabled | [View](./templates.md) |
+
+## 🔧 Component Development
+
+### Creating Custom Components
+
+```rust
+use rustelo::Component;
+
+pub struct MyComponent {
+ config: MyConfig,
+}
+
+impl Component for MyComponent {
+ type Config = MyConfig;
+
+ fn new(config: Self::Config) -> Result {
+ Ok(Self { config })
+ }
+
+ fn initialize(&mut self) -> Result<(), Error> {
+ // Initialize component
+ Ok(())
+ }
+}
+```
+
+### Component Lifecycle
+
+1. **Configuration** - Load component configuration
+2. **Initialization** - Set up component state
+3. **Registration** - Register routes and handlers
+4. **Runtime** - Handle requests and events
+5. **Cleanup** - Graceful shutdown
+
+## 🎨 Frontend Components
+
+### Leptos Components
+
+```rust
+use leptos::*;
+use rustelo::components::*;
+
+#[component]
+pub fn App() -> impl IntoView {
+ view! {
+
+
+
+
+
+
+
+
+
+
+
+ }
+}
+```
+
+### Styling Components
+
+```rust
+use rustelo::ui::*;
+
+#[component]
+pub fn MyPage() -> impl IntoView {
+ view! {
+
+
+
+ "Welcome"
+
+
+ "Content goes here"
+
+
+
+ }
+}
+```
+
+## 🔍 Component APIs
+
+### Authentication API
+
+```rust
+// Check if user is authenticated
+let is_authenticated = auth.is_authenticated(&request)?;
+
+// Get current user
+let user = auth.get_current_user(&request)?;
+
+// Login user
+let token = auth.login(&credentials)?;
+```
+
+### Content API
+
+```rust
+// Create content
+let content = content_manager.create(CreateContentRequest {
+ title: "My Article".to_string(),
+ body: "Article content...".to_string(),
+ content_type: ContentType::Article,
+})?;
+
+// Get content
+let content = content_manager.get_by_id(content_id)?;
+```
+
+### Email API
+
+```rust
+// Send email
+email_service.send(SendEmailRequest {
+ to: "user@example.com".to_string(),
+ subject: "Welcome!".to_string(),
+ template: "welcome".to_string(),
+ data: serde_json::json!({
+ "name": "John Doe"
+ }),
+})?;
+```
+
+## 📊 Performance Considerations
+
+### Component Optimization
+
+- **Lazy Loading** - Components are initialized only when needed
+- **Caching** - Built-in caching for frequently accessed data
+- **Connection Pooling** - Efficient database and external service connections
+- **Async Operations** - Non-blocking I/O operations
+
+### Resource Management
+
+```rust
+// Components automatically manage resources
+impl Drop for MyComponent {
+ fn drop(&mut self) {
+ // Cleanup resources
+ self.cleanup();
+ }
+}
+```
+
+## 🧪 Testing Components
+
+### Unit Tests
+
+```rust
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use rustelo::testing::*;
+
+ #[tokio::test]
+ async fn test_auth_component() {
+ let config = test_config();
+ let auth = Auth::new(config.auth).unwrap();
+
+ // Test authentication
+ assert!(auth.is_authenticated(&test_request()).is_ok());
+ }
+}
+```
+
+### Integration Tests
+
+```rust
+#[tokio::test]
+async fn test_component_integration() {
+ let app = test_app().await;
+
+ // Test component interactions
+ let response = app.post("/api/auth/login")
+ .json(&login_request())
+ .send()
+ .await?;
+
+ assert_eq!(response.status(), 200);
+}
+```
+
+## 🔐 Security
+
+### Security Best Practices
+
+- **Input Validation** - All inputs are validated and sanitized
+- **Authentication** - Secure token-based authentication
+- **Authorization** - Role-based access control
+- **CSRF Protection** - Built-in CSRF token validation
+- **Rate Limiting** - Configurable rate limiting
+
+### Security Configuration
+
+```toml
+[security]
+csrf_protection = true
+rate_limiting = true
+secure_cookies = true
+https_only = true
+```
+
+## 📚 Next Steps
+
+1. **[Authentication Guide](./auth.md)** - Set up user authentication
+2. **[Content Management](./content.md)** - Manage application content
+3. **[Email System](./email.md)** - Configure email functionality
+4. **[Configuration](./config.md)** - Understand configuration options
+5. **[Templates](./templates.md)** - Customize UI templates
+
+## 🆘 Getting Help
+
+- **[Common Issues](../../troubleshooting/common.md)** - Solutions to common problems
+- **[API Reference](../../api/overview.md)** - Complete API documentation
+- **[Examples](../../advanced/integrations.md)** - Real-world examples
+- **Community Support** - Discord, GitHub Issues, Stack Overflow
+
+---
+
+**Happy building with Rustelo components!** 🦀✨
\ No newline at end of file
diff --git a/book/developers/components/auth.md b/book/developers/components/auth.md
new file mode 100644
index 0000000..2912eec
--- /dev/null
+++ b/book/developers/components/auth.md
@@ -0,0 +1 @@
+# Authentication System
diff --git a/book/developers/components/config.md b/book/developers/components/config.md
new file mode 100644
index 0000000..aed405a
--- /dev/null
+++ b/book/developers/components/config.md
@@ -0,0 +1 @@
+# Configuration System
diff --git a/book/developers/components/content.md b/book/developers/components/content.md
new file mode 100644
index 0000000..1a420e8
--- /dev/null
+++ b/book/developers/components/content.md
@@ -0,0 +1 @@
+# Content Management
diff --git a/book/developers/components/email.md b/book/developers/components/email.md
new file mode 100644
index 0000000..bde7b00
--- /dev/null
+++ b/book/developers/components/email.md
@@ -0,0 +1,766 @@
+# Email System
+
+
+
+
+
+This guide covers RUSTELO's comprehensive email system, including setup, configuration, usage, and best practices for integrating email functionality into your application.
+
+## Overview
+
+The RUSTELO email system provides a complete solution for sending emails from your web application with support for multiple providers, template-based emails, form submissions, and both server-side and client-side integration.
+
+### Architecture
+
+- **Email Service**: Core service that handles email sending
+- **Providers**: Pluggable email providers (SMTP, SendGrid, Console)
+- **Templates**: Handlebars-based email templates
+- **Forms**: Ready-to-use contact and support form components
+- **API**: REST endpoints for email operations
+
+## Features
+
+✨ **Multiple Providers**
+- SMTP (Gmail, Outlook, custom servers)
+- SendGrid API
+- Console output (development)
+
+📧 **Template System**
+- Handlebars templates
+- HTML and text versions
+- Custom helpers
+- Variable substitution
+
+🔧 **Form Integration**
+- Contact forms
+- Support forms with priorities
+- Custom form handling
+
+🛡️ **Security**
+- Input validation
+- Rate limiting
+- CSRF protection
+- Secure configuration
+
+🎨 **Rich Components**
+- React/Leptos form components
+- Real-time validation
+- Error handling
+- Success feedback
+
+## Quick Start
+
+### 1. Enable Email Feature
+
+Make sure the email feature is enabled in your `Cargo.toml`:
+
+```toml
+[features]
+default = ["email"]
+email = ["lettre", "handlebars", "urlencoding"]
+```
+
+### 2. Basic Configuration
+
+Add email configuration to your `config.toml`:
+
+```toml
+[email]
+enabled = true
+provider = "console" # Start with console for development
+from_email = "noreply@yourapp.com"
+from_name = "Your App"
+template_dir = "templates/email"
+```
+
+### 3. Create Template Directory
+
+```bash
+mkdir -p templates/email/html
+mkdir -p templates/email/text
+```
+
+### 4. Start Using
+
+```rust
+// Send a simple email
+let result = email_service.send_simple_email(
+ "user@example.com",
+ "Welcome!",
+ "Thank you for signing up!"
+).await?;
+
+// Send a contact form
+let result = email_service.send_contact_form(
+ "John Doe",
+ "john@example.com",
+ "Question about pricing",
+ "I'd like to know more about your pricing plans.",
+ "admin@yourapp.com"
+).await?;
+```
+
+## Configuration
+
+### Email Configuration Options
+
+```toml
+[email]
+# Basic settings
+enabled = true
+provider = "smtp" # "smtp", "sendgrid", "console"
+from_email = "noreply@yourapp.com"
+from_name = "Your App Name"
+template_dir = "templates/email"
+
+# SMTP settings (when provider = "smtp")
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_username = "your-email@gmail.com"
+smtp_password = "@encrypted_smtp_password"
+smtp_use_tls = false
+smtp_use_starttls = true
+
+# SendGrid settings (when provider = "sendgrid")
+sendgrid_api_key = "@encrypted_sendgrid_api_key"
+sendgrid_endpoint = "https://api.sendgrid.com/v3/mail/send"
+```
+
+### Environment-Specific Configuration
+
+```toml
+# Development
+[environments.development]
+email.provider = "console"
+email.enabled = true
+
+# Production
+[environments.production]
+email.provider = "sendgrid"
+email.sendgrid_api_key = "@encrypted_sendgrid_api_key"
+email.enabled = true
+```
+
+## Email Providers
+
+### Console Provider
+
+Perfect for development and testing. Prints emails to the console.
+
+```toml
+[email]
+provider = "console"
+```
+
+**Features:**
+- No external dependencies
+- Immediate feedback
+- Safe for development
+
+### SMTP Provider
+
+Use any SMTP server including Gmail, Outlook, or custom servers.
+
+```toml
+[email]
+provider = "smtp"
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_username = "your-email@gmail.com"
+smtp_password = "@encrypted_smtp_password"
+smtp_use_starttls = true
+```
+
+**Common SMTP Configurations:**
+
+**Gmail:**
+```toml
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_use_starttls = true
+# Requires App Password (not regular password)
+```
+
+**Outlook:**
+```toml
+smtp_host = "smtp-mail.outlook.com"
+smtp_port = 587
+smtp_use_starttls = true
+```
+
+**Custom SMTP:**
+```toml
+smtp_host = "mail.yourserver.com"
+smtp_port = 587
+smtp_use_starttls = true
+```
+
+### SendGrid Provider
+
+Use SendGrid's API for reliable email delivery.
+
+```toml
+[email]
+provider = "sendgrid"
+sendgrid_api_key = "@encrypted_sendgrid_api_key"
+```
+
+**Features:**
+- High deliverability
+- Built-in analytics
+- Bounce handling
+- Reliable service
+
+## Templates
+
+### Template Structure
+
+```
+templates/email/
+├── html/
+│ ├── contact.hbs
+│ ├── support.hbs
+│ ├── welcome.hbs
+│ └── notification.hbs
+└── text/
+ ├── contact.hbs
+ ├── support.hbs
+ ├── welcome.hbs
+ └── notification.hbs
+```
+
+### Template Naming
+
+- `contact.hbs` - Contact form emails
+- `support.hbs` - Support form emails
+- `welcome.hbs` - Welcome/registration emails
+- `notification.hbs` - General notifications
+
+### Handlebars Helpers
+
+Built-in helpers for common email tasks:
+
+- `{{format_date}}` - Format dates
+- `{{format_currency}}` - Format money
+- `{{upper}}` - Uppercase text
+- `{{lower}}` - Lowercase text
+- `{{capitalize}}` - Capitalize words
+
+### Example Template
+
+**templates/email/html/contact.hbs:**
+
+```html
+
+
+
+
+ Contact Form Submission
+
+
+
+
+
+
+
Name: {{name}}
+
Email: {{email}}
+
Subject: {{subject}}
+
Message:
+
{{message}}
+
+
+
+
+
+```
+
+**templates/email/text/contact.hbs:**
+
+```text
+New Contact Form Submission
+
+Name: {{name}}
+Email: {{email}}
+Subject: {{subject}}
+
+Message:
+{{message}}
+
+Sent at {{format_date timestamp}}
+```
+
+## API Endpoints
+
+### GET /api/email/status
+
+Check email system status.
+
+**Response:**
+```json
+{
+ "enabled": true,
+ "provider": "smtp",
+ "configured": true,
+ "templates": ["contact", "support", "welcome", "notification"]
+}
+```
+
+### POST /api/email/contact
+
+Send a contact form email.
+
+**Request:**
+```json
+{
+ "name": "John Doe",
+ "email": "john@example.com",
+ "subject": "Question about pricing",
+ "message": "I'd like to know more about your pricing plans.",
+ "recipient": "admin@yourapp.com"
+}
+```
+
+**Response:**
+```json
+{
+ "message": "Email sent successfully",
+ "message_id": "abc123def456",
+ "status": "sent"
+}
+```
+
+### POST /api/email/support
+
+Send a support form email with priority.
+
+**Request:**
+```json
+{
+ "name": "Jane Smith",
+ "email": "jane@example.com",
+ "subject": "Technical Issue",
+ "message": "Having trouble with login functionality.",
+ "priority": "high",
+ "category": "technical",
+ "recipient": "support@yourapp.com"
+}
+```
+
+### POST /api/email/send
+
+Send a template-based email.
+
+**Request:**
+```json
+{
+ "to": "user@example.com",
+ "subject": "Welcome to Our Platform",
+ "template": "welcome",
+ "template_data": {
+ "user_name": "John Doe",
+ "activation_link": "https://yourapp.com/activate/token123"
+ }
+}
+```
+
+### POST /api/email/notification
+
+Send a notification email.
+
+**Request:**
+```json
+{
+ "to": "user@example.com",
+ "title": "Important Update",
+ "message": "Your account has been updated successfully.",
+ "content": "Additional details about the update..."
+}
+```
+
+## Client Components
+
+### ContactForm Component
+
+```rust
+#[component]
+pub fn ContactForm() -> impl IntoView {
+ let (form_data, set_form_data) = create_signal(ContactFormData::default());
+ let (is_submitting, set_is_submitting) = create_signal(false);
+ let (message, set_message) = create_signal(String::new());
+
+ let submit_form = create_action(move |data: &ContactFormData| {
+ let data = data.clone();
+ async move {
+ set_is_submitting(true);
+ let result = send_contact_form(data).await;
+ set_is_submitting(false);
+ match result {
+ Ok(_) => set_message("Thank you for your message! We'll get back to you soon.".to_string()),
+ Err(e) => set_message(format!("Error sending message: {}", e)),
+ }
+ }
+ });
+
+ view! {
+
+ }
+}
+```
+
+### SupportForm Component
+
+```rust
+#[component]
+pub fn SupportForm() -> impl IntoView {
+ let (form_data, set_form_data) = create_signal(SupportFormData::default());
+ let (is_submitting, set_is_submitting) = create_signal(false);
+ let (message, set_message) = create_signal(String::new());
+
+ let submit_form = create_action(move |data: &SupportFormData| {
+ let data = data.clone();
+ async move {
+ set_is_submitting(true);
+ let result = send_support_form(data).await;
+ set_is_submitting(false);
+ match result {
+ Ok(_) => set_message("Support ticket submitted successfully!".to_string()),
+ Err(e) => set_message(format!("Error submitting ticket: {}", e)),
+ }
+ }
+ });
+
+ view! {
+
+ }
+}
+```
+
+## Server Usage
+
+### Basic Email Sending
+
+```rust
+use server::email::{EmailService, EmailConfig};
+
+#[tokio::main]
+async fn main() -> Result<(), Box> {
+ let config = EmailConfig::from_file("config.toml")?;
+ let email_service = EmailService::new(config).await?;
+
+ // Send simple email
+ email_service.send_simple_email(
+ "user@example.com",
+ "Welcome!",
+ "Thank you for signing up!"
+ ).await?;
+
+ Ok(())
+}
+```
+
+### Template-Based Emails
+
+```rust
+use std::collections::HashMap;
+
+#[server(SendWelcomeEmail, "/api/email/welcome")]
+pub async fn send_welcome_email(
+ email: String,
+ name: String,
+ activation_token: String,
+) -> Result {
+ let email_service = get_email_service().await?;
+
+ let mut template_data = HashMap::new();
+ template_data.insert("user_name".to_string(), name);
+ template_data.insert("activation_link".to_string(),
+ format!("https://yourapp.com/activate/{}", activation_token));
+
+ email_service.send_template_email(
+ &email,
+ "Welcome to Our Platform",
+ "welcome",
+ template_data
+ ).await?;
+
+ Ok("Welcome email sent successfully".to_string())
+}
+```
+
+### Form Handling
+
+```rust
+#[server(HandleContactForm, "/api/email/contact")]
+pub async fn handle_contact_form(
+ name: String,
+ email: String,
+ subject: String,
+ message: String,
+) -> Result {
+ let email_service = get_email_service().await?;
+
+ // Validate input
+ if name.is_empty() || email.is_empty() || message.is_empty() {
+ return Err(ServerFnError::ServerError("All fields are required".to_string()));
+ }
+
+ // Send email
+ email_service.send_contact_form(
+ &name,
+ &email,
+ &subject,
+ &message,
+ "admin@yourapp.com"
+ ).await?;
+
+ Ok("Contact form submitted successfully".to_string())
+}
+```
+
+## Environment Variables
+
+### Common Variables
+
+```bash
+# SMTP Configuration
+SMTP_HOST=smtp.gmail.com
+SMTP_PORT=587
+SMTP_USERNAME=your-email@gmail.com
+SMTP_PASSWORD=your-app-password
+SMTP_USE_STARTTLS=true
+
+# SendGrid Configuration
+SENDGRID_API_KEY=your-sendgrid-api-key
+
+# Email Settings
+EMAIL_FROM=noreply@yourapp.com
+EMAIL_FROM_NAME="Your App"
+```
+
+### Using in Configuration
+
+```toml
+[email]
+smtp_username = "${SMTP_USERNAME}"
+smtp_password = "@encrypted_smtp_password"
+sendgrid_api_key = "@encrypted_sendgrid_api_key"
+from_email = "${EMAIL_FROM}"
+```
+
+## Security Considerations
+
+### 1. Credential Management
+
+Always encrypt sensitive credentials:
+
+```bash
+# Encrypt SMTP password
+cargo run --bin config_crypto_tool encrypt "your-smtp-password"
+
+# Encrypt SendGrid API key
+cargo run --bin config_crypto_tool encrypt "your-sendgrid-api-key"
+```
+
+### 2. Input Validation
+
+Always validate email inputs:
+
+```rust
+use validator::{Validate, ValidationError};
+
+#[derive(Validate)]
+struct ContactFormData {
+ #[validate(length(min = 1, message = "Name is required"))]
+ name: String,
+
+ #[validate(email(message = "Invalid email address"))]
+ email: String,
+
+ #[validate(length(min = 1, max = 1000, message = "Message must be between 1 and 1000 characters"))]
+ message: String,
+}
+```
+
+### 3. Rate Limiting
+
+Implement rate limiting for email endpoints:
+
+```rust
+use tower_governor::{governor::GovernorLayer, GovernorConfigBuilder};
+
+// Limit to 5 emails per minute per IP
+let governor_config = GovernorConfigBuilder::default()
+ .per_minute(5)
+ .burst_size(2)
+ .finish()
+ .unwrap();
+
+let governor_layer = GovernorLayer {
+ config: Arc::new(governor_config),
+};
+```
+
+### 4. CSRF Protection
+
+Enable CSRF protection for email forms:
+
+```rust
+use axum_csrf::{CsrfConfig, CsrfLayer};
+
+let csrf_config = CsrfConfig::default();
+let csrf_layer = CsrfLayer::new(csrf_config);
+```
+
+## Troubleshooting
+
+### Common Issues
+
+**Email not sending:**
+- Check provider configuration
+- Verify credentials
+- Check network connectivity
+- Review email service logs
+
+**Template not found:**
+- Verify template directory path
+- Check template file naming
+- Ensure HTML and text versions exist
+
+**Authentication failed:**
+- For Gmail: Use App Password, not regular password
+- For other providers: Check username/password
+- Verify server and port settings
+
+**Rate limiting:**
+- Check provider limits
+- Implement proper rate limiting
+- Consider using queues for bulk emails
+
+### Debug Mode
+
+Enable debug logging to troubleshoot issues:
+
+```toml
+[logging]
+level = "debug"
+
+[email]
+enabled = true
+debug = true
+```
+
+## Best Practices
+
+1. **Use encrypted configuration** for sensitive credentials
+2. **Implement proper validation** for all email inputs
+3. **Use rate limiting** to prevent abuse
+4. **Provide both HTML and text** versions of templates
+5. **Test with console provider** during development
+6. **Monitor email delivery** in production
+7. **Handle errors gracefully** with user-friendly messages
+8. **Use meaningful subject lines** and sender names
+
+## Next Steps
+
+- [API Reference](../../api/email.md)
+- [Security Best Practices](../../security/best-practices.md)
+- [Configuration Guide](../../configuration/files.md)
+- [Deployment Guide](../../deployment/production.md)
+
+The email system provides a robust foundation for all your application's communication needs while maintaining security and reliability.
\ No newline at end of file
diff --git a/book/developers/components/templates.md b/book/developers/components/templates.md
new file mode 100644
index 0000000..7e2a579
--- /dev/null
+++ b/book/developers/components/templates.md
@@ -0,0 +1 @@
+# Template Engine
diff --git a/book/developers/features/adding-features.md b/book/developers/features/adding-features.md
new file mode 100644
index 0000000..f705b4e
--- /dev/null
+++ b/book/developers/features/adding-features.md
@@ -0,0 +1 @@
+# Adding New Features
diff --git a/book/developers/features/api-endpoints.md b/book/developers/features/api-endpoints.md
new file mode 100644
index 0000000..4663a01
--- /dev/null
+++ b/book/developers/features/api-endpoints.md
@@ -0,0 +1 @@
+# API Endpoints
diff --git a/book/developers/features/feature-flags.md b/book/developers/features/feature-flags.md
new file mode 100644
index 0000000..ca3d97e
--- /dev/null
+++ b/book/developers/features/feature-flags.md
@@ -0,0 +1 @@
+# Feature Flags & Modules
diff --git a/book/developers/features/frontend-components.md b/book/developers/features/frontend-components.md
new file mode 100644
index 0000000..c9dbbd6
--- /dev/null
+++ b/book/developers/features/frontend-components.md
@@ -0,0 +1 @@
+# Frontend Components
diff --git a/book/developers/features/migrations.md b/book/developers/features/migrations.md
new file mode 100644
index 0000000..71a2f00
--- /dev/null
+++ b/book/developers/features/migrations.md
@@ -0,0 +1,867 @@
+# Database Migrations
+
+
+
+
+
+This guide covers database migrations in RUSTELO, including the database-agnostic migration system and how to migrate from legacy PostgreSQL-only code to the new multi-database architecture.
+
+## Overview
+
+RUSTELO has been upgraded to use a **database-agnostic architecture** that supports both PostgreSQL and SQLite. This guide covers:
+
+- Database migration patterns and best practices
+- Migrating from PostgreSQL-only to database-agnostic code
+- Writing database-specific migration files
+- Handling data type differences between databases
+- Testing migration strategies
+
+## Migration Architecture
+
+### Before (Legacy PostgreSQL-Only)
+
+```rust
+// Direct PostgreSQL dependency
+use sqlx::PgPool;
+
+// Repository tied to PostgreSQL
+pub struct AuthRepository {
+ pool: PgPool,
+}
+
+impl AuthRepository {
+ pub fn new(pool: PgPool) -> Self {
+ Self { pool }
+ }
+
+ pub async fn find_user(&self, id: Uuid) -> Result> {
+ sqlx::query_as!(User, "SELECT * FROM users WHERE id = $1", id)
+ .fetch_optional(&self.pool)
+ .await
+ }
+}
+```
+
+### After (Database-Agnostic)
+
+```rust
+// Database-agnostic abstractions
+use crate::database::{DatabaseConnection, DatabaseType};
+
+// Repository works with any database
+pub struct AuthRepository {
+ database: DatabaseConnection,
+}
+
+impl AuthRepository {
+ pub fn new(database: DatabaseConnection) -> Self {
+ Self { database }
+ }
+
+ pub async fn find_user(&self, id: Uuid) -> Result > {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.find_user_postgres(id).await,
+ DatabaseType::SQLite => self.find_user_sqlite(id).await,
+ }
+ }
+
+ async fn find_user_postgres(&self, id: Uuid) -> Result > {
+ let row = self.database
+ .fetch_optional(
+ "SELECT * FROM users WHERE id = $1",
+ &[id.into()],
+ )
+ .await?;
+
+ if let Some(row) = row {
+ Ok(Some(User {
+ id: row.get_uuid("id")?,
+ email: row.get_string("email")?,
+ username: row.get_string("username")?,
+ created_at: row.get_datetime("created_at")?,
+ }))
+ } else {
+ Ok(None)
+ }
+ }
+
+ async fn find_user_sqlite(&self, id: Uuid) -> Result > {
+ let row = self.database
+ .fetch_optional(
+ "SELECT * FROM users WHERE id = ?",
+ &[id.to_string().into()],
+ )
+ .await?;
+
+ if let Some(row) = row {
+ Ok(Some(User {
+ id: row.get_uuid("id")?,
+ email: row.get_string("email")?,
+ username: row.get_string("username")?,
+ created_at: row.get_datetime("created_at")?,
+ }))
+ } else {
+ Ok(None)
+ }
+ }
+}
+```
+
+## Migration Steps
+
+### 1. Update Repository Constructors
+
+**Before:**
+```rust
+let auth_repository = Arc::new(AuthRepository::new(pool.clone()));
+```
+
+**After:**
+```rust
+// For the new database-agnostic repositories
+let auth_repository = Arc::new(database::auth::AuthRepository::new(database.clone()));
+
+// Or create from pool
+let auth_repository = Arc::new(database::auth::AuthRepository::from_pool(&database_pool));
+```
+
+### 2. Replace Direct SQL Queries
+
+**Before:**
+```rust
+pub async fn create_user(&self, user: &User) -> Result<()> {
+ sqlx::query!(
+ "INSERT INTO users (id, email, username) VALUES ($1, $2, $3)",
+ user.id,
+ user.email,
+ user.username
+ )
+ .execute(&self.pool)
+ .await?;
+ Ok(())
+}
+```
+
+**After:**
+```rust
+pub async fn create_user(&self, user: &User) -> Result<()> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.create_user_postgres(user).await,
+ DatabaseType::SQLite => self.create_user_sqlite(user).await,
+ }
+}
+
+async fn create_user_postgres(&self, user: &User) -> Result<()> {
+ self.database
+ .execute(
+ "INSERT INTO users (id, email, username) VALUES ($1, $2, $3)",
+ &[
+ user.id.into(),
+ user.email.clone().into(),
+ user.username.clone().into(),
+ ],
+ )
+ .await?;
+ Ok(())
+}
+
+async fn create_user_sqlite(&self, user: &User) -> Result<()> {
+ self.database
+ .execute(
+ "INSERT INTO users (id, email, username) VALUES (?, ?, ?)",
+ &[
+ user.id.to_string().into(),
+ user.email.clone().into(),
+ user.username.clone().into(),
+ ],
+ )
+ .await?;
+ Ok(())
+}
+```
+
+### 3. Update Row Processing
+
+**Before:**
+```rust
+let row = sqlx::query_as::<_, UserRow>("SELECT * FROM users WHERE id = $1")
+ .bind(id)
+ .fetch_optional(&self.pool)
+ .await?;
+```
+
+**After:**
+```rust
+let row = self.database
+ .fetch_optional(
+ "SELECT * FROM users WHERE id = $1", // PostgreSQL
+ &[id.into()],
+ )
+ .await?;
+
+if let Some(row) = row {
+ let user = User {
+ id: row.get_uuid("id")?,
+ email: row.get_string("email")?,
+ username: row.get_string("username")?,
+ created_at: row.get_datetime("created_at")?,
+ };
+}
+```
+
+### 4. Database Initialization
+
+**Before:**
+```rust
+let pool = PgPool::connect(&database_url).await?;
+let auth_repository = AuthRepository::new(pool);
+```
+
+**After:**
+```rust
+let database_config = DatabaseConfig {
+ url: database_url.to_string(),
+ max_connections: 10,
+ min_connections: 1,
+ connect_timeout: Duration::from_secs(30),
+ idle_timeout: Duration::from_secs(600),
+ max_lifetime: Duration::from_secs(3600),
+};
+
+let database_pool = DatabasePool::new(&database_config).await?;
+let database = Database::new(database_pool.clone());
+let auth_repository = database::auth::AuthRepository::new(database.create_connection());
+```
+
+## Database-Specific Considerations
+
+### PostgreSQL vs SQLite Differences
+
+| Feature | PostgreSQL | SQLite |
+|---------|------------|--------|
+| **Parameter Binding** | `$1, $2, $3` | `?, ?, ?` |
+| **UUID Storage** | Native `UUID` type | `TEXT` (string) |
+| **Timestamps** | `TIMESTAMP WITH TIME ZONE` | `TEXT` (ISO 8601) |
+| **JSON** | `JSONB` | `TEXT` (JSON string) |
+| **Arrays** | Native arrays | `TEXT` (JSON array) |
+| **Boolean** | `BOOLEAN` | `INTEGER` (0/1) |
+
+### Handling Data Type Differences
+
+```rust
+// UUID handling
+match self.database.database_type() {
+ DatabaseType::PostgreSQL => {
+ // PostgreSQL stores UUIDs natively
+ params.push(user_id.into());
+ }
+ DatabaseType::SQLite => {
+ // SQLite stores UUIDs as strings
+ params.push(user_id.to_string().into());
+ }
+}
+
+// Timestamp handling
+match self.database.database_type() {
+ DatabaseType::PostgreSQL => {
+ // PostgreSQL stores timestamps natively
+ params.push(created_at.into());
+ }
+ DatabaseType::SQLite => {
+ // SQLite stores timestamps as ISO strings
+ params.push(created_at.to_rfc3339().into());
+ }
+}
+
+// JSON handling
+match self.database.database_type() {
+ DatabaseType::PostgreSQL => {
+ // PostgreSQL supports native JSONB
+ params.push(serde_json::to_value(&data)?.into());
+ }
+ DatabaseType::SQLite => {
+ // SQLite stores JSON as text
+ params.push(serde_json::to_string(&data)?.into());
+ }
+}
+```
+
+## Database Migration Files
+
+### Migration File Structure
+
+```
+migrations/
+├── 001_create_users/
+│ ├── up_postgres.sql
+│ ├── down_postgres.sql
+│ ├── up_sqlite.sql
+│ └── down_sqlite.sql
+├── 002_add_2fa_support/
+│ ├── up_postgres.sql
+│ ├── down_postgres.sql
+│ ├── up_sqlite.sql
+│ └── down_sqlite.sql
+└── 003_create_posts/
+ ├── up_postgres.sql
+ ├── down_postgres.sql
+ ├── up_sqlite.sql
+ └── down_sqlite.sql
+```
+
+### Example Migration Files
+
+**PostgreSQL Migration (001_create_users/up_postgres.sql):**
+```sql
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
+
+CREATE TABLE users (
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
+ email VARCHAR(255) UNIQUE NOT NULL,
+ username VARCHAR(100) UNIQUE NOT NULL,
+ password_hash VARCHAR(255) NOT NULL,
+ email_verified BOOLEAN DEFAULT FALSE,
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
+ updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
+);
+
+CREATE INDEX idx_users_email ON users(email);
+CREATE INDEX idx_users_username ON users(username);
+```
+
+**SQLite Migration (001_create_users/up_sqlite.sql):**
+```sql
+CREATE TABLE users (
+ id TEXT PRIMARY KEY,
+ email TEXT UNIQUE NOT NULL,
+ username TEXT UNIQUE NOT NULL,
+ password_hash TEXT NOT NULL,
+ email_verified INTEGER DEFAULT 0,
+ created_at TEXT DEFAULT (datetime('now')),
+ updated_at TEXT DEFAULT (datetime('now'))
+);
+
+CREATE INDEX idx_users_email ON users(email);
+CREATE INDEX idx_users_username ON users(username);
+```
+
+### Running Migrations
+
+```bash
+# Run migrations for PostgreSQL
+cargo run --bin migrate -- --database-url "postgresql://user:pass@localhost/db"
+
+# Run migrations for SQLite
+cargo run --bin migrate -- --database-url "sqlite//:database.db"
+
+# Roll back migrations
+cargo run --bin migrate -- --database-url "sqlite//:database.db" --rollback
+
+# Check migration status
+cargo run --bin migrate -- --database-url "sqlite//:database.db" --status
+```
+
+## Migration Patterns
+
+### Pattern 1: Simple Repository Migration
+
+```rust
+// Old
+pub struct MyRepository {
+ pool: PgPool,
+}
+
+// New
+pub struct MyRepository {
+ database: DatabaseConnection,
+}
+
+impl MyRepository {
+ pub fn new(database: DatabaseConnection) -> Self {
+ Self { database }
+ }
+
+ // Add convenience constructor
+ pub fn from_pool(pool: &DatabasePool) -> Self {
+ let connection = DatabaseConnection::from_pool(pool);
+ Self::new(connection)
+ }
+}
+```
+
+### Pattern 2: Complex Query Migration
+
+```rust
+// Old
+pub async fn complex_query(&self) -> Result> {
+ sqlx::query_as!(
+ Item,
+ r#"
+ SELECT i.*, u.username
+ FROM items i
+ JOIN users u ON i.user_id = u.id
+ WHERE i.created_at > $1
+ ORDER BY i.created_at DESC
+ "#,
+ since
+ )
+ .fetch_all(&self.pool)
+ .await
+}
+
+// New
+pub async fn complex_query(&self, since: DateTime) -> Result> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.complex_query_postgres(since).await,
+ DatabaseType::SQLite => self.complex_query_sqlite(since).await,
+ }
+}
+
+async fn complex_query_postgres(&self, since: DateTime) -> Result> {
+ let rows = self.database
+ .fetch_all(
+ r#"
+ SELECT i.id, i.name, i.user_id, i.created_at, u.username
+ FROM items i
+ JOIN users u ON i.user_id = u.id
+ WHERE i.created_at > $1
+ ORDER BY i.created_at DESC
+ "#,
+ &[since.into()],
+ )
+ .await?;
+
+ self.rows_to_items(rows)
+}
+
+async fn complex_query_sqlite(&self, since: DateTime) -> Result> {
+ let rows = self.database
+ .fetch_all(
+ r#"
+ SELECT i.id, i.name, i.user_id, i.created_at, u.username
+ FROM items i
+ JOIN users u ON i.user_id = u.id
+ WHERE i.created_at > ?
+ ORDER BY i.created_at DESC
+ "#,
+ &[since.to_rfc3339().into()],
+ )
+ .await?;
+
+ self.rows_to_items(rows)
+}
+
+fn rows_to_items(&self, rows: Vec) -> Result> {
+ let mut items = Vec::new();
+ for row in rows {
+ items.push(Item {
+ id: row.get_uuid("id")?,
+ name: row.get_string("name")?,
+ user_id: row.get_uuid("user_id")?,
+ username: row.get_string("username")?,
+ created_at: row.get_datetime("created_at")?,
+ });
+ }
+ Ok(items)
+}
+```
+
+### Pattern 3: Transaction Handling
+
+```rust
+pub async fn create_user_with_profile(&self, user: &User, profile: &Profile) -> Result<()> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => {
+ self.create_user_with_profile_postgres(user, profile).await
+ }
+ DatabaseType::SQLite => {
+ self.create_user_with_profile_sqlite(user, profile).await
+ }
+ }
+}
+
+async fn create_user_with_profile_postgres(&self, user: &User, profile: &Profile) -> Result<()> {
+ let mut tx = self.database.begin().await?;
+
+ // Create user
+ tx.execute(
+ "INSERT INTO users (id, email, username) VALUES ($1, $2, $3)",
+ &[user.id.into(), user.email.clone().into(), user.username.clone().into()],
+ ).await?;
+
+ // Create profile
+ tx.execute(
+ "INSERT INTO profiles (user_id, first_name, last_name) VALUES ($1, $2, $3)",
+ &[profile.user_id.into(), profile.first_name.clone().into(), profile.last_name.clone().into()],
+ ).await?;
+
+ tx.commit().await?;
+ Ok(())
+}
+
+async fn create_user_with_profile_sqlite(&self, user: &User, profile: &Profile) -> Result<()> {
+ let mut tx = self.database.begin().await?;
+
+ // Create user
+ tx.execute(
+ "INSERT INTO users (id, email, username) VALUES (?, ?, ?)",
+ &[user.id.to_string().into(), user.email.clone().into(), user.username.clone().into()],
+ ).await?;
+
+ // Create profile
+ tx.execute(
+ "INSERT INTO profiles (user_id, first_name, last_name) VALUES (?, ?, ?)",
+ &[profile.user_id.to_string().into(), profile.first_name.clone().into(), profile.last_name.clone().into()],
+ ).await?;
+
+ tx.commit().await?;
+ Ok(())
+}
+```
+
+## Migration Checklist
+
+### Code Migration
+
+- [ ] Replace `PgPool` with `DatabaseConnection`
+- [ ] Update repository constructors
+- [ ] Split database operations into database-specific methods
+- [ ] Handle parameter binding differences (`$1` vs `?`)
+- [ ] Handle data type differences (UUID, timestamps, etc.)
+- [ ] Update imports to use new database modules
+- [ ] Add convenience constructors (`from_pool`)
+- [ ] Update error handling
+
+### Database Migration Files
+
+- [ ] Create separate migration files for PostgreSQL (`*_postgres.sql`)
+- [ ] Create separate migration files for SQLite (`*_sqlite.sql`)
+- [ ] Update migration runner configuration
+- [ ] Test migrations on both database types
+- [ ] Add rollback migrations
+- [ ] Document migration dependencies
+
+### Configuration
+
+- [ ] Update environment variables
+- [ ] Test with different database URLs
+- [ ] Update deployment scripts
+- [ ] Update documentation
+- [ ] Configure connection pooling
+- [ ] Set appropriate timeouts
+
+### Testing
+
+- [ ] Update unit tests to use new abstractions
+- [ ] Add integration tests for both database types
+- [ ] Test migration path from old to new architecture
+- [ ] Performance testing on both databases
+- [ ] Test rollback scenarios
+- [ ] Add database-specific test fixtures
+
+## Troubleshooting
+
+### Common Issues and Solutions
+
+#### 1. UUID Conversion Errors
+**Problem:** SQLite doesn't support UUID natively
+**Solution:** Convert UUIDs to strings for SQLite
+
+```rust
+match self.database.database_type() {
+ DatabaseType::PostgreSQL => params.push(uuid.into()),
+ DatabaseType::SQLite => params.push(uuid.to_string().into()),
+}
+```
+
+#### 2. Parameter Binding Mismatch
+**Problem:** Using PostgreSQL syntax (`$1`) with SQLite
+**Solution:** Use database-specific query strings
+
+```rust
+let query = match self.database.database_type() {
+ DatabaseType::PostgreSQL => "SELECT * FROM users WHERE id = $1",
+ DatabaseType::SQLite => "SELECT * FROM users WHERE id = ?",
+};
+```
+
+#### 3. Migration File Not Found
+**Problem:** Missing database-specific migration files
+**Solution:** Ensure both `*_postgres.sql` and `*_sqlite.sql` files exist
+
+#### 4. Type Conversion Errors
+**Problem:** Data type mismatches between databases
+**Solution:** Use the `DatabaseRow` trait methods consistently
+
+```rust
+// Always use the trait methods
+let user_id = row.get_uuid("user_id")?; // Handles conversion automatically
+let created_at = row.get_datetime("created_at")?; // Handles conversion automatically
+```
+
+#### 5. Connection Pool Issues
+**Problem:** Connection pool exhaustion or configuration issues
+**Solution:** Properly configure connection pool settings
+
+```rust
+let database_config = DatabaseConfig {
+ url: database_url.to_string(),
+ max_connections: 10,
+ min_connections: 1,
+ connect_timeout: Duration::from_secs(30),
+ idle_timeout: Duration::from_secs(600),
+ max_lifetime: Duration::from_secs(3600),
+};
+```
+
+## Best Practices
+
+### 1. Database-Agnostic Design
+- Write repositories that work with both databases
+- Use the database abstraction layer consistently
+- Avoid database-specific features when possible
+- Test with both databases regularly
+
+### 2. Migration Strategy
+- Migrate one module at a time
+- Test thoroughly with both database types
+- Keep the old code until migration is complete
+- Document the migration process
+
+### 3. Performance Considerations
+- PostgreSQL: Better for complex queries and large datasets
+- SQLite: Better for simple queries and small datasets
+- Use appropriate database features for your use case
+- Monitor query performance on both databases
+
+### 4. Testing Strategy
+- Test all code paths with both databases
+- Use SQLite for fast unit tests
+- Use PostgreSQL for integration tests
+- Test migration rollbacks
+- Use database-specific test fixtures
+
+### 5. Error Handling
+- Handle database-specific errors appropriately
+- Use consistent error types across databases
+- Log database operations for debugging
+- Provide meaningful error messages
+
+## Example: Complete Repository Migration
+
+Here's a complete example of migrating a repository from PostgreSQL-only to database-agnostic:
+
+### Before (PostgreSQL-Only)
+```rust
+use sqlx::PgPool;
+use uuid::Uuid;
+use chrono::{DateTime, Utc};
+
+pub struct PostRepository {
+ pool: PgPool,
+}
+
+impl PostRepository {
+ pub fn new(pool: PgPool) -> Self {
+ Self { pool }
+ }
+
+ pub async fn create_post(&self, post: &Post) -> Result<()> {
+ sqlx::query!(
+ "INSERT INTO posts (id, title, content, author_id, published) VALUES ($1, $2, $3, $4, $5)",
+ post.id,
+ post.title,
+ post.content,
+ post.author_id,
+ post.published
+ )
+ .execute(&self.pool)
+ .await?;
+ Ok(())
+ }
+
+ pub async fn find_post(&self, id: Uuid) -> Result> {
+ let row = sqlx::query_as!(
+ Post,
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE id = $1",
+ id
+ )
+ .fetch_optional(&self.pool)
+ .await?;
+ Ok(row)
+ }
+
+ pub async fn find_posts_by_author(&self, author_id: Uuid) -> Result> {
+ let rows = sqlx::query_as!(
+ Post,
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE author_id = $1 ORDER BY created_at DESC",
+ author_id
+ )
+ .fetch_all(&self.pool)
+ .await?;
+ Ok(rows)
+ }
+}
+```
+
+### After (Database-Agnostic)
+```rust
+use crate::database::{DatabaseConnection, DatabaseType, DatabaseRow};
+use uuid::Uuid;
+use chrono::{DateTime, Utc};
+
+pub struct PostRepository {
+ database: DatabaseConnection,
+}
+
+impl PostRepository {
+ pub fn new(database: DatabaseConnection) -> Self {
+ Self { database }
+ }
+
+ pub fn from_pool(pool: &crate::database::DatabasePool) -> Self {
+ let connection = DatabaseConnection::from_pool(pool);
+ Self::new(connection)
+ }
+
+ pub async fn create_post(&self, post: &Post) -> Result<()> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.create_post_postgres(post).await,
+ DatabaseType::SQLite => self.create_post_sqlite(post).await,
+ }
+ }
+
+ async fn create_post_postgres(&self, post: &Post) -> Result<()> {
+ self.database
+ .execute(
+ "INSERT INTO posts (id, title, content, author_id, published) VALUES ($1, $2, $3, $4, $5)",
+ &[
+ post.id.into(),
+ post.title.clone().into(),
+ post.content.clone().into(),
+ post.author_id.into(),
+ post.published.into(),
+ ],
+ )
+ .await?;
+ Ok(())
+ }
+
+ async fn create_post_sqlite(&self, post: &Post) -> Result<()> {
+ self.database
+ .execute(
+ "INSERT INTO posts (id, title, content, author_id, published) VALUES (?, ?, ?, ?, ?)",
+ &[
+ post.id.to_string().into(),
+ post.title.clone().into(),
+ post.content.clone().into(),
+ post.author_id.to_string().into(),
+ (post.published as i32).into(),
+ ],
+ )
+ .await?;
+ Ok(())
+ }
+
+ pub async fn find_post(&self, id: Uuid) -> Result> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.find_post_postgres(id).await,
+ DatabaseType::SQLite => self.find_post_sqlite(id).await,
+ }
+ }
+
+ async fn find_post_postgres(&self, id: Uuid) -> Result > {
+ let row = self
+ .database
+ .fetch_optional(
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE id = $1",
+ &[id.into()],
+ )
+ .await?;
+
+ self.row_to_post(row)
+ }
+
+ async fn find_post_sqlite(&self, id: Uuid) -> Result > {
+ let row = self
+ .database
+ .fetch_optional(
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE id = ?",
+ &[id.to_string().into()],
+ )
+ .await?;
+
+ self.row_to_post(row)
+ }
+
+ pub async fn find_posts_by_author(&self, author_id: Uuid) -> Result> {
+ match self.database.database_type() {
+ DatabaseType::PostgreSQL => self.find_posts_by_author_postgres(author_id).await,
+ DatabaseType::SQLite => self.find_posts_by_author_sqlite(author_id).await,
+ }
+ }
+
+ async fn find_posts_by_author_postgres(&self, author_id: Uuid) -> Result> {
+ let rows = self
+ .database
+ .fetch_all(
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE author_id = $1 ORDER BY created_at DESC",
+ &[author_id.into()],
+ )
+ .await?;
+
+ self.rows_to_posts(rows)
+ }
+
+ async fn find_posts_by_author_sqlite(&self, author_id: Uuid) -> Result> {
+ let rows = self
+ .database
+ .fetch_all(
+ "SELECT id, title, content, author_id, published, created_at FROM posts WHERE author_id = ? ORDER BY created_at DESC",
+ &[author_id.to_string().into()],
+ )
+ .await?;
+
+ self.rows_to_posts(rows)
+ }
+
+ fn row_to_post(&self, row: Option) -> Result> {
+ if let Some(row) = row {
+ Ok(Some(Post {
+ id: row.get_uuid("id")?,
+ title: row.get_string("title")?,
+ content: row.get_string("content")?,
+ author_id: row.get_uuid("author_id")?,
+ published: row.get_bool("published")?,
+ created_at: row.get_datetime("created_at")?,
+ }))
+ } else {
+ Ok(None)
+ }
+ }
+
+ fn rows_to_posts(&self, rows: Vec) -> Result> {
+ let mut posts = Vec::new();
+ for row in rows {
+ posts.push(Post {
+ id: row.get_uuid("id")?,
+ title: row.get_string("title")?,
+ content: row.get_string("content")?,
+ author_id: row.get_uuid("author_id")?,
+ published: row.get_bool("published")?,
+ created_at: row.get_datetime("created_at")?,
+ });
+ }
+ Ok(posts)
+ }
+}
+```
+
+## Next Steps
+
+- [Database Configuration](../../configuration/database.md)
+- [Performance Optimization](../../performance/database.md)
+- [Testing Strategies](../testing/strategy.md)
+- [Deployment Guide](../../deployment/production.md)
+
+This migration guide provides a comprehensive approach to transitioning from PostgreSQL-only to database-agnostic architecture while maintaining functionality and performance across both database systems.
diff --git a/book/developers/setup/build.md b/book/developers/setup/build.md
new file mode 100644
index 0000000..340fc9e
--- /dev/null
+++ b/book/developers/setup/build.md
@@ -0,0 +1 @@
+# Build System & Tools
diff --git a/book/developers/setup/environment.md b/book/developers/setup/environment.md
new file mode 100644
index 0000000..f71241a
--- /dev/null
+++ b/book/developers/setup/environment.md
@@ -0,0 +1 @@
+# Development Environment
diff --git a/book/developers/setup/structure.md b/book/developers/setup/structure.md
new file mode 100644
index 0000000..782fdf4
--- /dev/null
+++ b/book/developers/setup/structure.md
@@ -0,0 +1 @@
+# Project Structure
diff --git a/book/developers/setup/workflow.md b/book/developers/setup/workflow.md
new file mode 100644
index 0000000..c61ee16
--- /dev/null
+++ b/book/developers/setup/workflow.md
@@ -0,0 +1 @@
+# Development Workflow
diff --git a/book/developers/testing/e2e.md b/book/developers/testing/e2e.md
new file mode 100644
index 0000000..938c187
--- /dev/null
+++ b/book/developers/testing/e2e.md
@@ -0,0 +1 @@
+# End-to-End Testing
diff --git a/book/developers/testing/integration.md b/book/developers/testing/integration.md
new file mode 100644
index 0000000..828016f
--- /dev/null
+++ b/book/developers/testing/integration.md
@@ -0,0 +1 @@
+# Integration Testing
diff --git a/book/developers/testing/performance.md b/book/developers/testing/performance.md
new file mode 100644
index 0000000..c045985
--- /dev/null
+++ b/book/developers/testing/performance.md
@@ -0,0 +1 @@
+# Performance Testing
diff --git a/book/developers/testing/strategy.md b/book/developers/testing/strategy.md
new file mode 100644
index 0000000..ddecbb0
--- /dev/null
+++ b/book/developers/testing/strategy.md
@@ -0,0 +1 @@
+# Testing Strategy
diff --git a/book/developers/testing/unit.md b/book/developers/testing/unit.md
new file mode 100644
index 0000000..d35a3c4
--- /dev/null
+++ b/book/developers/testing/unit.md
@@ -0,0 +1 @@
+# Unit Testing
diff --git a/book/development/debugging.md b/book/development/debugging.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/development/hot-reloading.md b/book/development/hot-reloading.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/development/setup.md b/book/development/setup.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/development/structure.md b/book/development/structure.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/development/testing.md b/book/development/testing.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/development/workflow.md b/book/development/workflow.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/auth/2fa.md b/book/features/auth/2fa.md
new file mode 100644
index 0000000..bd16867
--- /dev/null
+++ b/book/features/auth/2fa.md
@@ -0,0 +1,361 @@
+# Two-Factor Authentication (2FA) Implementation
+
+
+
+
+
+This document describes the implementation of Time-based One-Time Password (TOTP) two-factor authentication in the Rustelo application.
+
+## Overview
+
+The 2FA implementation provides an additional layer of security for user accounts by requiring a second form of authentication beyond username and password. This implementation uses TOTP (Time-based One-Time Password) compatible with popular authenticator apps like Google Authenticator, Authy, and Microsoft Authenticator.
+
+## Features
+
+- **TOTP Authentication**: Standards-compliant TOTP implementation (RFC 6238)
+- **QR Code Generation**: Automatic QR code generation for easy setup
+- **Backup Codes**: Recovery codes for account access if authenticator device is lost
+- **Rate Limiting**: Protection against brute force attacks
+- **Audit Trail**: Logging of 2FA attempts for security monitoring
+- **Graceful Degradation**: Existing users can continue using the system without 2FA until they opt-in
+
+## Architecture
+
+### Backend Components
+
+#### Database Schema
+- `user_2fa`: Stores TOTP secrets and configuration
+- `user_2fa_recovery_codes`: Individual recovery codes for better tracking
+- `user_2fa_attempts`: Audit trail of authentication attempts
+- `users`: Extended with `two_factor_required` flag
+- `sessions`: Extended with `two_factor_verified` flag
+
+#### Core Services
+- `TwoFactorService`: Main 2FA business logic
+- `AuthService`: Extended to handle 2FA login flow
+- `AuthRepository`: Database operations for user management
+
+#### API Endpoints
+- `POST /api/auth/login`: First step login (returns 2FA requirement)
+- `POST /api/auth/login/2fa`: Second step login with 2FA code
+- `POST /api/auth/2fa/setup`: Initialize 2FA setup
+- `POST /api/auth/2fa/verify`: Verify and enable 2FA
+- `GET /api/auth/2fa/status`: Get current 2FA status
+- `POST /api/auth/2fa/disable`: Disable 2FA
+- `POST /api/auth/2fa/backup-codes`: Generate new backup codes
+
+### Frontend Components
+
+#### React Components
+- `TwoFactorSetup`: Complete 2FA setup flow
+- `TwoFactorLoginForm`: 2FA code input during login
+- `TwoFactorLoginPage`: Full page 2FA login
+- `GenerateBackupCodesComponent`: Backup code management
+- `DisableTwoFactorComponent`: 2FA disabling interface
+
+#### Auth Context
+- Extended `AuthContext` to handle 2FA states
+- `requires_2fa` flag to track 2FA requirement
+- `pending_2fa_email` to store email during 2FA flow
+
+## Setup Process
+
+### 1. User Initiates 2FA Setup
+```rust
+POST /api/auth/2fa/setup
+{
+ "password": "current_password"
+}
+```
+
+### 2. Server Response
+```json
+{
+ "success": true,
+ "data": {
+ "secret": "BASE32_ENCODED_SECRET",
+ "qr_code_url": "data:image/svg+xml;base64,QR_CODE_DATA",
+ "backup_codes": ["12345678", "87654321", ...]
+ }
+}
+```
+
+### 3. User Scans QR Code
+- User scans QR code with authenticator app
+- Alternatively, manually enters the secret key
+
+### 4. User Verifies Setup
+```rust
+POST /api/auth/2fa/verify
+{
+ "code": "123456"
+}
+```
+
+### 5. 2FA Enabled
+- TOTP verification successful
+- 2FA is now enabled for the account
+- Backup codes are active
+
+## Login Flow
+
+### 1. Standard Login
+```rust
+POST /api/auth/login
+{
+ "email": "user@example.com",
+ "password": "password",
+ "remember_me": false
+}
+```
+
+### 2. 2FA Required Response
+```json
+{
+ "success": true,
+ "data": {
+ "user": { ... },
+ "access_token": "",
+ "requires_2fa": true
+ }
+}
+```
+
+### 3. 2FA Code Submission
+```rust
+POST /api/auth/login/2fa
+{
+ "email": "user@example.com",
+ "code": "123456",
+ "remember_me": false
+}
+```
+
+### 4. Complete Authentication
+```json
+{
+ "success": true,
+ "data": {
+ "user": { ... },
+ "access_token": "JWT_TOKEN",
+ "refresh_token": "REFRESH_TOKEN",
+ "requires_2fa": false
+ }
+}
+```
+
+## Security Features
+
+### Rate Limiting
+- Maximum 5 failed attempts per 15-minute window
+- Prevents brute force attacks on 2FA codes
+
+### Backup Codes
+- 8-digit recovery codes
+- Hashed storage in database
+- Single-use only
+- Can be regenerated
+
+### Audit Trail
+- All 2FA attempts are logged
+- Includes IP address, user agent, and timestamp
+- Distinguishes between TOTP and backup code usage
+
+### Secret Management
+- TOTP secrets are Base32 encoded
+- Secrets are unique per user
+- Secrets are generated using cryptographically secure random number generation
+
+## Configuration
+
+### Environment Variables
+```env
+# Database connection
+DATABASE_URL=postgresql://localhost/rustelo_dev
+
+# JWT configuration
+JWT_SECRET=your_jwt_secret_key
+JWT_EXPIRATION=3600
+
+# Application settings
+APP_NAME=Rustelo
+ISSUER_NAME=Rustelo Authentication
+```
+
+### Dependencies
+```toml
+[dependencies]
+# 2FA specific
+totp-rs = "5.6"
+qrcode = { version = "0.15", features = ["svg"] }
+base32 = "0.5"
+sha2 = "0.10"
+base64 = "0.22"
+```
+
+## Usage Examples
+
+### Enable 2FA for a User
+```rust
+// Setup 2FA
+let request = Setup2FARequest {
+ password: "user_password".to_string(),
+};
+let response = auth_service.setup_2fa(user_id, request).await?;
+
+// Verify and enable
+let verify_request = Verify2FARequest {
+ code: "123456".to_string(),
+};
+auth_service.verify_2fa_setup(user_id, verify_request, None, None).await?;
+```
+
+### Login with 2FA
+```rust
+// First step: regular login
+let login_request = LoginCredentials {
+ email: "user@example.com".to_string(),
+ password: "password".to_string(),
+ remember_me: false,
+};
+let response = auth_service.login(login_request, None).await?;
+
+if response.requires_2fa {
+ // Second step: 2FA verification
+ let twofa_request = Login2FARequest {
+ email: "user@example.com".to_string(),
+ code: "123456".to_string(),
+ remember_me: false,
+ };
+ let final_response = auth_service.login_with_2fa(twofa_request, None, None, None).await?;
+}
+```
+
+## Testing
+
+### Unit Tests
+```rust
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[tokio::test]
+ async fn test_2fa_setup() {
+ let service = TwoFactorService::new(pool, "Test".to_string(), "Test".to_string());
+ let response = service.setup_2fa(user_id, "user@test.com", request).await;
+ assert!(response.is_ok());
+ }
+
+ #[tokio::test]
+ async fn test_totp_verification() {
+ // Test TOTP code verification
+ let service = TwoFactorService::new(pool, "Test".to_string(), "Test".to_string());
+ let result = service.verify_2fa_for_login(user_id, "123456", None, None).await;
+ // Assert based on test conditions
+ }
+}
+```
+
+### Integration Tests
+```rust
+#[tokio::test]
+async fn test_full_2fa_flow() {
+ // Test complete 2FA setup and login flow
+ // 1. Setup 2FA
+ // 2. Verify setup
+ // 3. Login with 2FA
+ // 4. Verify successful authentication
+}
+```
+
+## Migration Guide
+
+### Database Migration
+```sql
+-- Run migration 002_add_2fa_support.sql
+-- This adds all necessary 2FA tables and columns
+```
+
+### Existing Users
+- Existing users can continue using the system without 2FA
+- 2FA is opt-in for existing users
+- `two_factor_enabled` field defaults to `false`
+
+### Deployment Steps
+1. Deploy database migration
+2. Deploy backend code with 2FA support
+3. Deploy frontend code with 2FA components
+4. Update documentation and user guides
+
+## Troubleshooting
+
+### Common Issues
+
+#### QR Code Not Displaying
+- Check that SVG rendering is enabled
+- Verify QR code generation dependencies
+- Check browser console for errors
+
+#### Invalid 2FA Code
+- Ensure device time is synchronized
+- Verify secret key entry
+- Check for typos in manual entry
+
+#### Backup Code Not Working
+- Verify code hasn't been used before
+- Check for typing errors
+- Ensure user has remaining backup codes
+
+### Debug Commands
+```bash
+# Check 2FA status for user
+psql -d rustelo_dev -c "SELECT * FROM user_2fa WHERE user_id = 'USER_ID';"
+
+# View recent 2FA attempts
+psql -d rustelo_dev -c "SELECT * FROM user_2fa_attempts WHERE user_id = 'USER_ID' ORDER BY created_at DESC LIMIT 10;"
+
+# Check backup codes
+psql -d rustelo_dev -c "SELECT code_hash, used_at FROM user_2fa_recovery_codes WHERE user_id = 'USER_ID';"
+```
+
+## Security Considerations
+
+### Best Practices
+- Use HTTPS in production
+- Implement proper session management
+- Regular security audits
+- Monitor 2FA attempt logs
+- User education on 2FA security
+
+### Compliance
+- TOTP implementation follows RFC 6238
+- Backup codes follow industry best practices
+- Audit logging supports compliance requirements
+
+## Future Enhancements
+
+### Planned Features
+- SMS-based 2FA as alternative
+- Hardware security key support (WebAuthn)
+- Admin-enforced 2FA policies
+- Bulk 2FA management for organizations
+- Advanced reporting and analytics
+
+### Performance Optimizations
+- Caching of 2FA status
+- Async processing of audit logs
+- Database query optimization
+- CDN for QR code generation
+
+## Support
+
+For issues or questions regarding 2FA implementation:
+1. Check this documentation
+2. Review server logs
+3. Check database state
+4. Contact development team
+
+---
+
+Last Updated: 2024-01-XX
+Version: 1.0.0
diff --git a/book/features/auth/jwt.md b/book/features/auth/jwt.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/auth/oauth2.md b/book/features/auth/oauth2.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/auth/sessions.md b/book/features/auth/sessions.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/authentication.md b/book/features/authentication.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/combinations.md b/book/features/combinations.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/content-management.md b/book/features/content-management.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/content/database.md b/book/features/content/database.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/content/markdown.md b/book/features/content/markdown.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/content/static.md b/book/features/content/static.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/features/detailed.md b/book/features/detailed.md
new file mode 100644
index 0000000..28bba88
--- /dev/null
+++ b/book/features/detailed.md
@@ -0,0 +1,315 @@
+# Rustelo Features Configuration
+
+
+
+
+
+This document describes the optional features available in the Rustelo template and how to configure them.
+
+## Available Features
+
+### Default Features
+By default, the following features are enabled:
+- `auth` - Authentication and authorization system
+- `content-db` - Database-driven content management
+
+### Optional Features
+
+#### 1. TLS (`tls`)
+Enables HTTPS/TLS support for secure connections.
+
+**Dependencies:**
+- `axum-server` with TLS support
+- `rustls` for TLS implementation
+- `rustls-pemfile` for PEM file handling
+
+**Configuration:**
+```bash
+# Environment variables
+SERVER_PROTOCOL=https
+TLS_CERT_PATH=/path/to/certificate.pem
+TLS_KEY_PATH=/path/to/private_key.pem
+```
+
+**Usage:**
+```bash
+# Enable TLS feature
+cargo build --features tls
+
+# Run with TLS
+SERVER_PROTOCOL=https TLS_CERT_PATH=./certs/cert.pem TLS_KEY_PATH=./certs/key.pem cargo run
+```
+
+#### 2. Authentication (`auth`)
+Comprehensive authentication and authorization system including:
+- JWT token-based authentication
+- OAuth2 providers (Google, GitHub, etc.)
+- Two-factor authentication (2FA/TOTP)
+- Password hashing with Argon2
+- Session management
+
+**Dependencies:**
+- `jsonwebtoken` - JWT handling
+- `argon2` - Password hashing
+- `oauth2` - OAuth2 client
+- `totp-rs` - Two-factor authentication
+- `qrcode` - QR code generation for 2FA setup
+- `tower-sessions` - Session management
+- `sqlx` - Database access
+
+**API Endpoints:**
+- `/api/auth/login` - User login
+- `/api/auth/logout` - User logout
+- `/api/auth/register` - User registration
+- `/api/auth/refresh` - Token refresh
+- `/api/auth/oauth/google` - Google OAuth
+- `/api/auth/oauth/github` - GitHub OAuth
+- `/api/auth/2fa/setup` - 2FA setup
+- `/api/auth/2fa/verify` - 2FA verification
+
+**Configuration:**
+```bash
+# Database connection
+DATABASE_URL=postgres://username:password@localhost:5432/database_name
+
+# JWT configuration
+JWT_SECRET=your-jwt-secret-key
+JWT_EXPIRATION_HOURS=24
+
+# OAuth providers
+GOOGLE_CLIENT_ID=your-google-client-id
+GOOGLE_CLIENT_SECRET=your-google-client-secret
+GITHUB_CLIENT_ID=your-github-client-id
+GITHUB_CLIENT_SECRET=your-github-client-secret
+
+# 2FA configuration
+TOTP_ISSUER=YourAppName
+TOTP_SERVICE_NAME=YourAppName
+```
+
+#### 3. Database Content (`content-db`)
+Database-driven content management system with:
+- Markdown content rendering
+- Syntax highlighting
+- YAML frontmatter support
+- Content caching
+- Dynamic content loading
+
+**Dependencies:**
+- `pulldown-cmark` - Markdown parsing
+- `syntect` - Syntax highlighting
+- `serde_yaml` - YAML frontmatter
+- `sqlx` - Database access
+
+**API Endpoints:**
+- `/api/content/pages` - List pages
+- `/api/content/page/{slug}` - Get page by slug
+- `/api/content/posts` - List blog posts
+- `/api/content/post/{slug}` - Get post by slug
+
+**Configuration:**
+```bash
+# Database connection
+DATABASE_URL=postgres://username:password@localhost:5432/database_name
+
+# Content configuration
+CONTENT_CACHE_ENABLED=true
+CONTENT_CACHE_TTL=3600
+```
+
+## Feature Combinations
+
+### Minimal Setup (No optional features)
+```bash
+cargo build --no-default-features
+```
+This provides a basic Leptos application with static content only.
+
+### Basic Setup (No database)
+```bash
+cargo build --no-default-features --features tls
+```
+Basic application with TLS support but no database features.
+
+### Authentication Only
+```bash
+cargo build --no-default-features --features auth
+```
+Includes authentication system but no database content management.
+
+### Content Management Only
+```bash
+cargo build --no-default-features --features content-db
+```
+Includes database-driven content but no authentication.
+
+### Full Featured (Default)
+```bash
+cargo build --features "auth,content-db"
+# or simply
+cargo build
+```
+All features enabled for a complete application.
+
+### Production Setup
+```bash
+cargo build --release --features "tls,auth,content-db"
+```
+Full featured application with TLS for production deployment.
+
+## Environment Configuration
+
+Create a `.env` file in your project root:
+
+```env
+# Server configuration
+SERVER_HOST=127.0.0.1
+SERVER_PORT=3030
+SERVER_PROTOCOL=http
+ENVIRONMENT=DEV
+LOG_LEVEL=info
+
+# Database (required for auth and content-db features)
+DATABASE_URL=postgres://username:password@localhost:5432/rustelo_dev
+
+# TLS configuration (required when using https protocol)
+TLS_CERT_PATH=./certs/cert.pem
+TLS_KEY_PATH=./certs/key.pem
+
+# JWT configuration (for auth feature)
+JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
+JWT_EXPIRATION_HOURS=24
+
+# OAuth providers (for auth feature)
+GOOGLE_CLIENT_ID=your-google-client-id
+GOOGLE_CLIENT_SECRET=your-google-client-secret
+GITHUB_CLIENT_ID=your-github-client-id
+GITHUB_CLIENT_SECRET=your-github-client-secret
+
+# 2FA configuration (for auth feature)
+TOTP_ISSUER=Rustelo
+TOTP_SERVICE_NAME=Rustelo Authentication
+
+# Content configuration (for content-db feature)
+CONTENT_CACHE_ENABLED=true
+CONTENT_CACHE_TTL=3600
+```
+
+## Docker Configuration
+
+For containerized deployments, you can use build arguments:
+
+```dockerfile
+# Build with specific features
+ARG FEATURES="tls,auth,content-db"
+RUN cargo build --release --features ${FEATURES}
+```
+
+## Development vs Production
+
+### Development
+```bash
+# Development with all features
+cargo run
+
+# Development without TLS
+cargo run --no-default-features --features "auth,content-db"
+```
+
+### Production
+```bash
+# Production build with TLS
+cargo build --release --features "tls,auth,content-db"
+
+# Set production environment
+ENVIRONMENT=PROD SERVER_PROTOCOL=https ./target/release/server
+```
+
+## Feature Detection at Runtime
+
+The application will log which features are enabled at startup:
+
+```
+INFO Server starting on 127.0.0.1:3030
+INFO Environment: Development
+INFO Security features enabled: CSRF, Rate Limiting, Security Headers
+INFO Authentication endpoints available at: /api/auth/*
+INFO Content management endpoints available at: /api/content/*
+INFO OAuth providers configured: ["google", "github"]
+```
+
+If features are disabled, you'll see:
+```
+INFO Authentication disabled - no auth endpoints available
+INFO Database content disabled - using static content only
+```
+
+## Migration Guide
+
+### Disabling Authentication
+If you want to disable authentication in an existing project:
+
+1. Remove `auth` from default features in `Cargo.toml`
+2. Remove authentication-related environment variables
+3. Remove database tables if not using `content-db`
+
+### Disabling Database Content
+If you want to switch to static content only:
+
+1. Remove `content-db` from default features in `Cargo.toml`
+2. Place your content files in the `content/` directory
+3. Update your content loading logic to use file-based content
+
+### Adding TLS
+To add TLS support to an existing deployment:
+
+1. Add `tls` feature to your build command
+2. Obtain SSL certificates
+3. Set `SERVER_PROTOCOL=https` and certificate paths
+4. Update your reverse proxy configuration if applicable
+
+## Troubleshooting
+
+### Common Issues
+
+**TLS Certificate Errors:**
+- Ensure certificate files exist at the specified paths
+- Check certificate format (PEM expected)
+- Verify certificate chain completeness
+
+**Database Connection Issues:**
+- Verify DATABASE_URL format
+- Check database server availability
+- Ensure database exists and user has permissions
+
+**OAuth Configuration:**
+- Verify client IDs and secrets
+- Check OAuth provider redirect URLs
+- Ensure proper scopes are configured
+
+### Feature Compilation Errors
+
+If you encounter compilation errors:
+
+1. Check that all required dependencies are available
+2. Verify feature combinations are valid
+3. Ensure environment variables are set correctly
+4. Check that conditional compilation blocks match your feature selection
+
+## Security Considerations
+
+- Always use TLS in production environments
+- Rotate JWT secrets regularly
+- Use strong OAuth client secrets
+- Enable 2FA for sensitive applications
+- Regularly update dependencies
+- Monitor authentication logs
+- Use environment-specific configurations
+
+## Performance Considerations
+
+- Enable content caching for better performance
+- Consider database connection pooling
+- Use appropriate log levels in production
+- Monitor memory usage with enabled features
+- Consider feature combinations based on your needs
diff --git a/book/features/email/email.md b/book/features/email/email.md
new file mode 100644
index 0000000..b6ad4e9
--- /dev/null
+++ b/book/features/email/email.md
@@ -0,0 +1,824 @@
+# Email System Documentation
+
+
+
+
+
+This document provides comprehensive documentation for the Rustelo email system, including setup, configuration, usage, and examples.
+
+## Table of Contents
+
+- [Overview](#overview)
+- [Features](#features)
+- [Quick Start](#quick-start)
+- [Configuration](#configuration)
+- [Email Providers](#email-providers)
+- [Templates](#templates)
+- [API Endpoints](#api-endpoints)
+- [Client Components](#client-components)
+- [Server Usage](#server-usage)
+- [Environment Variables](#environment-variables)
+- [Security Considerations](#security-considerations)
+- [Troubleshooting](#troubleshooting)
+- [Examples](#examples)
+
+## Overview
+
+The Rustelo email system provides a comprehensive solution for sending emails from your web application. It supports multiple email providers, template-based emails, form submissions, and both server-side and client-side integration.
+
+### Architecture
+
+- **Email Service**: Core service that handles email sending
+- **Providers**: Pluggable email providers (SMTP, SendGrid, Console)
+- **Templates**: Handlebars-based email templates
+- **Forms**: Ready-to-use contact and support form components
+- **API**: REST endpoints for email operations
+
+## Features
+
+✨ **Multiple Providers**
+- SMTP (Gmail, Outlook, custom servers)
+- SendGrid API
+- Console output (development)
+
+📧 **Template System**
+- Handlebars templates
+- HTML and text versions
+- Custom helpers
+- Variable substitution
+
+🔧 **Form Integration**
+- Contact forms
+- Support forms with priorities
+- Custom form handling
+
+🛡️ **Security**
+- Input validation
+- Rate limiting
+- CSRF protection
+- Secure configuration
+
+🎨 **Rich Components**
+- React/Leptos form components
+- Real-time validation
+- Error handling
+- Success feedback
+
+## Quick Start
+
+### 1. Enable Email Feature
+
+Make sure the email feature is enabled in your `Cargo.toml`:
+
+```toml
+[features]
+default = ["email"]
+email = ["lettre", "handlebars", "urlencoding"]
+```
+
+### 2. Basic Configuration
+
+Add email configuration to your `config.toml`:
+
+```toml
+[email]
+enabled = true
+provider = "console" # Start with console for development
+from_email = "noreply@yourapp.com"
+from_name = "Your App"
+template_dir = "templates/email"
+```
+
+### 3. Create Template Directory
+
+```bash
+mkdir -p templates/email/html
+mkdir -p templates/email/text
+```
+
+### 4. Start Using
+
+```rust
+// Send a simple email
+let result = email_service.send_simple_email(
+ "user@example.com",
+ "Welcome!",
+ "Thank you for signing up!"
+).await?;
+
+// Send a contact form
+let result = email_service.send_contact_form(
+ "John Doe",
+ "john@example.com",
+ "Question about pricing",
+ "I'd like to know more about your pricing plans.",
+ "admin@yourapp.com"
+).await?;
+```
+
+## Configuration
+
+### Email Configuration Options
+
+```toml
+[email]
+# Basic settings
+enabled = true
+provider = "smtp" # "smtp", "sendgrid", "console"
+from_email = "noreply@yourapp.com"
+from_name = "Your App Name"
+template_dir = "templates/email"
+
+# SMTP settings (when provider = "smtp")
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_username = "your-email@gmail.com"
+smtp_password = "your-app-password"
+smtp_use_tls = false
+smtp_use_starttls = true
+
+# SendGrid settings (when provider = "sendgrid")
+sendgrid_api_key = "your-sendgrid-api-key"
+sendgrid_endpoint = "https://api.sendgrid.com/v3/mail/send"
+```
+
+### Environment-Specific Configuration
+
+```toml
+# Development
+[environments.development]
+email.provider = "console"
+email.enabled = true
+
+# Production
+[environments.production]
+email.provider = "sendgrid"
+email.sendgrid_api_key = "${SENDGRID_API_KEY}"
+email.enabled = true
+```
+
+## Email Providers
+
+### Console Provider
+
+Perfect for development and testing. Prints emails to the console.
+
+```toml
+[email]
+provider = "console"
+```
+
+**Features:**
+- No external dependencies
+- Immediate feedback
+- Safe for development
+
+### SMTP Provider
+
+Use any SMTP server including Gmail, Outlook, or custom servers.
+
+```toml
+[email]
+provider = "smtp"
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_username = "your-email@gmail.com"
+smtp_password = "your-app-password"
+smtp_use_starttls = true
+```
+
+**Common SMTP Configurations:**
+
+**Gmail:**
+```toml
+smtp_host = "smtp.gmail.com"
+smtp_port = 587
+smtp_use_starttls = true
+# Requires App Password (not regular password)
+```
+
+**Outlook:**
+```toml
+smtp_host = "smtp-mail.outlook.com"
+smtp_port = 587
+smtp_use_starttls = true
+```
+
+**Custom Server:**
+```toml
+smtp_host = "mail.yourdomain.com"
+smtp_port = 587
+smtp_use_starttls = true
+```
+
+### SendGrid Provider
+
+Professional email service with high deliverability.
+
+```toml
+[email]
+provider = "sendgrid"
+sendgrid_api_key = "your-api-key"
+```
+
+**Setup Steps:**
+1. Sign up at [SendGrid](https://sendgrid.com)
+2. Create an API key
+3. Verify your sender identity
+4. Add API key to configuration
+
+## Templates
+
+### Template Structure
+
+Templates are organized in HTML and text directories:
+
+```
+templates/email/
+├── html/
+│ ├── contact.hbs
+│ ├── notification.hbs
+│ └── welcome.hbs
+└── text/
+ ├── contact.hbs
+ ├── notification.hbs
+ └── welcome.hbs
+```
+
+### Template Naming
+
+Templates are named using the pattern: `{template_name}_{format}.hbs`
+
+- `contact_html` - HTML version of contact template
+- `contact_text` - Text version of contact template
+
+### Handlebars Helpers
+
+The system includes several built-in helpers:
+
+**Date Formatting:**
+```handlebars
+{{date_format submitted_at "%B %d, %Y at %I:%M %p UTC"}}
+```
+
+**Capitalization:**
+```handlebars
+{{capitalize form_type}}
+```
+
+**Truncation:**
+```handlebars
+{{truncate user_agent 100}}
+```
+
+**Default Values:**
+```handlebars
+{{default action_text "Take Action"}}
+```
+
+**URL Encoding:**
+```handlebars
+{{url_encode email}}
+```
+
+### Example Template
+
+**HTML Template (contact.hbs):**
+```html
+
+
+
+ Contact Form Submission
+
+
+ New Contact Form Submission
+
+ Name: {{name}}
+ Email: {{email}}
+ Subject: {{subject}}
+
+
+
Message:
+
{{message}}
+
+
+
+ Submitted on {{date_format submitted_at}}
+
+
+```
+
+**Text Template (contact.hbs):**
+```text
+Contact Form Submission
+
+Name: {{name}}
+Email: {{email}}
+Subject: {{subject}}
+
+Message:
+{{message}}
+
+---
+Submitted on {{date_format submitted_at}}
+```
+
+## API Endpoints
+
+### GET /api/email/status
+
+Get email service status and available templates.
+
+**Response:**
+```json
+{
+ "enabled": true,
+ "provider": "smtp",
+ "configured": true,
+ "templates": ["contact_html", "contact_text", "notification_html"]
+}
+```
+
+### POST /api/email/contact
+
+Submit a contact form.
+
+**Request:**
+```json
+{
+ "name": "John Doe",
+ "email": "john@example.com",
+ "subject": "Question about pricing",
+ "message": "I'd like to know more about your plans.",
+ "recipient": "admin@yourapp.com"
+}
+```
+
+**Response:**
+```json
+{
+ "message": "Contact form submitted successfully",
+ "message_id": "smtp-1234567890",
+ "status": "sent"
+}
+```
+
+### POST /api/email/support
+
+Submit a support form with priority and category.
+
+**Request:**
+```json
+{
+ "name": "Jane Smith",
+ "email": "jane@example.com",
+ "subject": "Login issues",
+ "message": "I can't log into my account.",
+ "priority": "high",
+ "category": "technical",
+ "recipient": "support@yourapp.com"
+}
+```
+
+### POST /api/email/send
+
+Send a custom email (admin only).
+
+**Request:**
+```json
+{
+ "to": "user@example.com",
+ "subject": "Welcome to our service",
+ "template": "welcome",
+ "template_data": {
+ "user_name": "John",
+ "activation_link": "https://app.com/activate/123"
+ }
+}
+```
+
+### POST /api/email/notification
+
+Send a notification email.
+
+**Request:**
+```json
+{
+ "to": "user@example.com",
+ "title": "Account Verification",
+ "message": "Please verify your email address",
+ "content": "Click the link below to verify...
"
+}
+```
+
+## Client Components
+
+### ContactForm Component
+
+```jsx
+import { ContactForm } from './components/forms';
+
+
+```
+
+**Props:**
+- `recipient`: Email address to send form to
+- `title`: Form title
+- `description`: Form description
+- `class`: Custom CSS class
+- `showSuccess`: Show success message
+- `resetAfterSuccess`: Reset form after success
+- `submitText`: Custom submit button text
+
+### SupportForm Component
+
+```jsx
+import { SupportForm } from './components/forms';
+
+
+```
+
+**Additional Props:**
+- `showPriority`: Show priority selector
+- `showCategory`: Show category selector
+- `categories`: Custom category options
+
+### Form Validation
+
+Both forms include comprehensive validation:
+- Required field validation
+- Email format validation
+- Length limits
+- Real-time error display
+- Accessibility support
+
+## Server Usage
+
+### Basic Email Sending
+
+```rust
+use crate::email::{EmailService, EmailServiceBuilder};
+
+// Initialize service
+let email_service = EmailServiceBuilder::new()
+ .smtp_provider(smtp_config)
+ .default_from("noreply@app.com")
+ .default_from_name("My App")
+ .build()
+ .await?;
+
+// Send simple email
+let result = email_service.send_simple_email(
+ "user@example.com",
+ "Welcome!",
+ "Thank you for signing up!"
+).await?;
+```
+
+### Template-Based Emails
+
+```rust
+use std::collections::HashMap;
+use serde_json::json;
+
+let mut template_data = HashMap::new();
+template_data.insert("user_name".to_string(), json!("John"));
+template_data.insert("login_url".to_string(), json!("https://app.com/login"));
+
+let result = email_service.send_templated_email(
+ "user@example.com",
+ "Welcome to Our Service",
+ "welcome",
+ template_data
+).await?;
+```
+
+### Form Handling
+
+```rust
+// Contact form
+let result = email_service.send_contact_form(
+ "John Doe",
+ "john@example.com",
+ "Question",
+ "Message content",
+ "admin@app.com"
+).await?;
+
+// Support form
+let result = email_service.send_support_form(
+ "Jane Smith",
+ "jane@example.com",
+ "Bug report",
+ "Description of the bug",
+ Some("high"), // priority
+ Some("technical"), // category
+ "support@app.com"
+).await?;
+```
+
+### Custom Email Messages
+
+```rust
+use crate::email::EmailMessage;
+
+let message = EmailMessage::new("user@example.com", "Custom Subject")
+ .from("custom@app.com")
+ .from_name("Custom Sender")
+ .html_body("HTML Content ")
+ .text_body("Text content")
+ .cc("manager@app.com")
+ .reply_to("reply@app.com");
+
+let result = email_service.send_email(&message).await?;
+```
+
+## Environment Variables
+
+### Common Variables
+
+```bash
+# SMTP Configuration
+SMTP_HOST=smtp.gmail.com
+SMTP_PORT=587
+SMTP_USERNAME=your-email@gmail.com
+SMTP_PASSWORD=your-app-password
+
+# SendGrid Configuration
+SENDGRID_API_KEY=your-sendgrid-api-key
+
+# General Email Settings
+EMAIL_FROM_ADDRESS=noreply@yourapp.com
+EMAIL_FROM_NAME="Your App Name"
+EMAIL_ENABLED=true
+```
+
+### Using in Configuration
+
+```toml
+[email]
+smtp_username = "${SMTP_USERNAME}"
+smtp_password = "${SMTP_PASSWORD}"
+sendgrid_api_key = "${SENDGRID_API_KEY}"
+from_email = "${EMAIL_FROM_ADDRESS}"
+```
+
+## Security Considerations
+
+### 1. Credential Management
+
+**❌ Never do:**
+```toml
+# Don't commit real credentials
+smtp_password = "real-password-123"
+sendgrid_api_key = "SG.real-api-key"
+```
+
+**✅ Do instead:**
+```toml
+# Use environment variables
+smtp_password = "${SMTP_PASSWORD}"
+sendgrid_api_key = "${SENDGRID_API_KEY}"
+```
+
+### 2. Input Validation
+
+All email inputs are validated:
+- Email format validation
+- Length limits (name: 100, subject: 200, message: 5000)
+- Required field checking
+- HTML sanitization
+
+### 3. Rate Limiting
+
+- Built-in rate limiting per IP address
+- Configurable limits
+- Automatic blocking of suspicious activity
+
+### 4. CSRF Protection
+
+- CSRF tokens on all forms
+- Secure cookie settings
+- SameSite cookie protection
+
+### 5. Email Provider Security
+
+**Gmail:**
+- Use App Passwords, not regular passwords
+- Enable 2-Factor Authentication
+- Monitor for suspicious activity
+
+**SendGrid:**
+- Rotate API keys regularly
+- Use least-privilege API keys
+- Monitor sending quotas
+
+## Troubleshooting
+
+### Common Issues
+
+**1. Gmail Authentication Failed**
+```
+Error: SMTP authentication failed
+```
+
+**Solution:**
+- Enable 2-Factor Authentication
+- Generate an App Password
+- Use App Password instead of regular password
+
+**2. SendGrid 401 Unauthorized**
+```
+Error: SendGrid API error: 401
+```
+
+**Solution:**
+- Check API key is correct
+- Verify API key has send permissions
+- Ensure sender is verified
+
+**3. Template Not Found**
+```
+Error: Template not found: welcome_html
+```
+
+**Solution:**
+- Check template exists in correct directory
+- Verify template naming convention
+- Check template_dir configuration
+
+**4. Port Connection Refused**
+```
+Error: Connection refused (port 587)
+```
+
+**Solution:**
+- Check firewall settings
+- Try different ports (465, 25)
+- Verify SMTP server settings
+
+### Debug Mode
+
+Enable debug logging to troubleshoot issues:
+
+```toml
+[logging]
+level = "debug"
+
+[email]
+enabled = true
+# Debug output will show detailed email information
+```
+
+### Testing Email Delivery
+
+**1. Use Console Provider:**
+```toml
+[email]
+provider = "console"
+```
+
+**2. Use Test SMTP Service:**
+- [Mailtrap](https://mailtrap.io) - Testing SMTP
+- [MailHog](https://github.com/mailhog/MailHog) - Local testing
+- [Ethereal Email](https://ethereal.email) - Temporary testing
+
+**3. Check Email Status Endpoint:**
+```bash
+curl http://localhost:3030/api/email/status
+```
+
+## Examples
+
+### Complete Contact Page
+
+```rust
+use leptos::prelude::*;
+use crate::components::ContactForm;
+
+#[component]
+pub fn ContactPage() -> impl IntoView {
+ view! {
+
+
+
+ "Contact Us"
+
+
+ "We'd love to hear from you. Send us a message and we'll respond as soon as possible."
+
+
+
+
+
+ }
+}
+```
+
+### Custom Email Service Integration
+
+```rust
+use crate::email::{EmailService, EmailServiceBuilder, SmtpConfig};
+
+pub async fn setup_email_service() -> Result> {
+ let smtp_config = SmtpConfig {
+ host: "smtp.gmail.com".to_string(),
+ port: 587,
+ username: std::env::var("SMTP_USERNAME")?,
+ password: std::env::var("SMTP_PASSWORD")?,
+ use_tls: false,
+ use_starttls: true,
+ };
+
+ let service = EmailServiceBuilder::new()
+ .smtp_provider(smtp_config)
+ .default_from("noreply@yourapp.com")
+ .default_from_name("Your App")
+ .template_dir("./templates/email")
+ .enabled(true)
+ .build()
+ .await?;
+
+ Ok(service)
+}
+
+// Usage in your application
+pub async fn send_welcome_email(
+ email_service: &EmailService,
+ user_email: &str,
+ user_name: &str,
+) -> Result<(), Box> {
+ let mut template_data = HashMap::new();
+ template_data.insert("user_name".to_string(), json!(user_name));
+ template_data.insert("app_name".to_string(), json!("Your App"));
+ template_data.insert("support_email".to_string(), json!("support@yourapp.com"));
+
+ email_service.send_templated_email(
+ user_email,
+ "Welcome to Your App!",
+ "welcome",
+ template_data
+ ).await?;
+
+ Ok(())
+}
+```
+
+### Advanced Form with Custom Fields
+
+```rust
+#[component]
+pub fn CustomSupportForm() -> impl IntoView {
+ let custom_categories = vec![
+ CategoryOption {
+ value: "bug".to_string(),
+ label: "Bug Report".to_string(),
+ icon: "🐛".to_string(),
+ description: "Something isn't working correctly".to_string(),
+ },
+ CategoryOption {
+ value: "feature".to_string(),
+ label: "Feature Request".to_string(),
+ icon: "✨".to_string(),
+ description: "Suggest a new feature or improvement".to_string(),
+ },
+ CategoryOption {
+ value: "billing".to_string(),
+ label: "Billing Question".to_string(),
+ icon: "💳".to_string(),
+ description: "Questions about your account or billing".to_string(),
+ },
+ ];
+
+ view! {
+
+ }
+}
+```
+
+This email system provides a robust, secure, and user-friendly solution for all your application's email needs. From simple notifications to complex form handling, it scales with your application's requirements while maintaining security and reliability.
diff --git a/book/features/overview.md b/book/features/overview.md
new file mode 100644
index 0000000..6c90383
--- /dev/null
+++ b/book/features/overview.md
@@ -0,0 +1,394 @@
+# Features Overview
+
+
+
+
+
+Rustelo is built around a modular feature system that allows you to enable only the functionality you need. This approach keeps your application lean, reduces compile times, and ensures you're not carrying unnecessary dependencies.
+
+## Philosophy
+
+The feature system is designed with these principles in mind:
+
+- **🎯 Opt-in by Design**: Start minimal and add features as needed
+- **🔧 Zero Configuration**: Features work out of the box with sensible defaults
+- **📦 Minimal Dependencies**: Each feature only includes what it absolutely needs
+- **🔄 Composable**: Features work together seamlessly
+- **🛡️ Secure by Default**: Security considerations built into every feature
+
+## Feature Categories
+
+### Core Features (Always Available)
+
+These features are always available regardless of your configuration:
+
+- **Static File Serving**: Serve static assets (CSS, JS, images)
+- **Routing**: Client-side and server-side routing
+- **CSRF Protection**: Cross-site request forgery protection
+- **Security Headers**: Basic security headers
+- **Rate Limiting**: Basic rate limiting
+- **Health Checks**: System health monitoring endpoints
+- **Logging**: Structured logging with tracing
+
+### Optional Features
+
+#### 🔐 Authentication (`auth`)
+**Default: Enabled**
+
+Complete user authentication and authorization system.
+
+**What it provides:**
+- JWT token-based authentication
+- OAuth2 integration (Google, GitHub, etc.)
+- Two-factor authentication (2FA/TOTP)
+- Password hashing with Argon2
+- Session management
+- User registration and login
+- Password reset functionality
+- Role-based access control (RBAC)
+
+**Use cases:**
+- User portals and dashboards
+- SaaS applications
+- Protected content areas
+- Multi-tenant applications
+
+**Dependencies:**
+- `jsonwebtoken` - JWT handling
+- `argon2` - Secure password hashing
+- `oauth2` - OAuth2 client implementation
+- `totp-rs` - Two-factor authentication
+- `qrcode` - QR code generation
+- `tower-sessions` - Session management
+
+#### 📄 Content Management (`content-db`)
+**Default: Enabled**
+
+Database-driven content management with Markdown support.
+
+**What it provides:**
+- Markdown content rendering
+- Syntax highlighting for code blocks
+- YAML frontmatter support
+- Content caching system
+- Dynamic content loading
+- Content versioning
+- SEO-friendly URLs
+- Full-text search capabilities
+
+**Use cases:**
+- Blogs and news sites
+- Documentation sites
+- Content management systems
+- Marketing websites
+- Knowledge bases
+
+**Dependencies:**
+- `pulldown-cmark` - Markdown parsing
+- `syntect` - Syntax highlighting
+- `serde_yaml` - YAML frontmatter
+- `sqlx` - Database access
+
+#### 🔒 TLS Support (`tls`)
+**Default: Disabled**
+
+HTTPS/TLS encryption for secure connections.
+
+**What it provides:**
+- HTTPS server support
+- TLS certificate management
+- Automatic HTTP to HTTPS redirects
+- SSL/TLS configuration
+- Certificate validation
+- Support for Let's Encrypt certificates
+
+**Use cases:**
+- Production deployments
+- Security-sensitive applications
+- Compliance requirements
+- E-commerce applications
+
+**Dependencies:**
+- `axum-server` - TLS-enabled server
+- `rustls` - Pure Rust TLS implementation
+- `rustls-pemfile` - Certificate file handling
+
+#### 📧 Email System (`email`)
+**Default: Enabled**
+
+Comprehensive email functionality with multiple providers.
+
+**What it provides:**
+- Multiple email providers (SMTP, SendGrid, AWS SES)
+- HTML and text email templates
+- Contact form handling
+- Email verification
+- Password reset emails
+- Notification system
+- Email queue management
+- Bounce handling
+
+**Use cases:**
+- Contact forms
+- User notifications
+- Marketing emails
+- Transactional emails
+- Newsletter systems
+
+**Dependencies:**
+- `lettre` - Email sending
+- `handlebars` - Email templating
+- `urlencoding` - URL encoding
+- `async-trait` - Async trait support
+
+## Feature Combinations
+
+### Common Combinations
+
+#### Minimal Static Site
+```bash
+cargo build --no-default-features
+```
+**Perfect for:**
+- Marketing websites
+- Landing pages
+- Documentation sites
+- Portfolio sites
+
+**Features included:**
+- Static file serving
+- Basic routing
+- Security headers
+
+#### Secure Static Site
+```bash
+cargo build --no-default-features --features "tls"
+```
+**Perfect for:**
+- Production static sites
+- Security-conscious deployments
+- Compliance requirements
+
+**Features included:**
+- All minimal features
+- HTTPS/TLS support
+
+#### Authentication-Only App
+```bash
+cargo build --no-default-features --features "auth"
+```
+**Perfect for:**
+- User portals
+- Dashboard applications
+- API services with authentication
+
+**Features included:**
+- User management
+- JWT authentication
+- OAuth2 providers
+- Session management
+
+#### Content Management System
+```bash
+cargo build --no-default-features --features "content-db"
+```
+**Perfect for:**
+- Blogs
+- News sites
+- Documentation platforms
+- Knowledge bases
+
+**Features included:**
+- Markdown rendering
+- Database content storage
+- Content caching
+
+#### Communication Site
+```bash
+cargo build --no-default-features --features "email"
+```
+**Perfect for:**
+- Contact pages
+- Feedback forms
+- Newsletter signups
+- Notification systems
+
+**Features included:**
+- Email sending
+- Form handling
+- Template system
+
+#### Full-Featured Application
+```bash
+cargo build --features "auth,content-db,email"
+# or simply: cargo build (uses defaults)
+```
+**Perfect for:**
+- Complete web applications
+- SaaS platforms
+- User-generated content sites
+- E-commerce applications
+
+**Features included:**
+- Complete user management
+- Content management
+- Email system
+- All security features
+
+#### Production-Ready
+```bash
+cargo build --release --features "tls,auth,content-db,email"
+```
+**Perfect for:**
+- Production deployments
+- Enterprise applications
+- High-security requirements
+
+**Features included:**
+- All features enabled
+- HTTPS/TLS security
+- Optimized for performance
+
+## Configuration Matrix
+
+| Feature | Database Required | Email Required | TLS Recommended |
+|---------|------------------|----------------|-----------------|
+| Static Site | ❌ | ❌ | ✅ (Production) |
+| Auth | ✅ | ✅ (Password Reset) | ✅ |
+| Content-DB | ✅ | ❌ | ✅ (Production) |
+| Email | ❌ | ✅ | ✅ (Production) |
+| TLS | ❌ | ❌ | N/A |
+
+## Performance Impact
+
+### Build Times
+- **Minimal**: ~30 seconds
+- **Auth Only**: ~45 seconds
+- **Content-DB Only**: ~40 seconds
+- **Full Featured**: ~60 seconds
+
+### Binary Size
+- **Minimal**: ~2MB
+- **Auth Only**: ~5MB
+- **Content-DB Only**: ~4MB
+- **Full Featured**: ~8MB
+
+### Memory Usage
+- **Minimal**: ~10MB RAM
+- **Auth Only**: ~25MB RAM
+- **Content-DB Only**: ~20MB RAM
+- **Full Featured**: ~40MB RAM
+
+### Cold Start Time
+- **Minimal**: ~50ms
+- **Auth Only**: ~200ms
+- **Content-DB Only**: ~150ms
+- **Full Featured**: ~300ms
+
+## Feature Dependencies
+
+### Database Features
+Features that require database access:
+- `auth` - User accounts, sessions, OAuth tokens
+- `content-db` - Content storage, caching, search
+
+### Email Features
+Features that benefit from email:
+- `auth` - Password reset, email verification
+- `email` - Contact forms, notifications
+
+### Security Features
+Features that enhance security:
+- `tls` - HTTPS encryption
+- `auth` - User authentication
+- All features include basic security (CSRF, rate limiting, headers)
+
+## Development vs Production
+
+### Development Recommendations
+```bash
+# Fast development cycle
+cargo build --features "auth,content-db,email"
+
+# With hot reloading
+cargo leptos serve --features "auth,content-db,email"
+```
+
+### Production Recommendations
+```bash
+# Secure production build
+cargo build --release --features "tls,auth,content-db,email"
+
+# Minimal production (static sites)
+cargo build --release --no-default-features --features "tls"
+```
+
+## Migration Between Features
+
+### Adding Features
+1. Update feature flags in build command
+2. Add required environment variables
+3. Run database migrations (if applicable)
+4. Update frontend components
+5. Test thoroughly
+
+### Removing Features
+1. Export/backup relevant data
+2. Update feature flags
+3. Remove unused environment variables
+4. Clean up unused code
+5. Test reduced functionality
+
+## Feature Roadmap
+
+### Planned Features
+- **WebSocket Support**: Real-time communication
+- **File Upload**: File management system
+- **Admin Dashboard**: Administrative interface
+- **API Documentation**: Automatic API docs
+- **Metrics & Monitoring**: Application metrics
+- **Search Engine**: Full-text search
+- **Caching Layer**: Redis integration
+- **Message Queue**: Background job processing
+
+### Experimental Features
+- **GraphQL API**: Alternative to REST
+- **Server-Side Events**: Real-time updates
+- **Multi-tenancy**: Tenant isolation
+- **Audit Logging**: Comprehensive audit trails
+
+## Best Practices
+
+### Feature Selection
+1. **Start Minimal**: Begin with only essential features
+2. **Add Gradually**: Introduce features as requirements evolve
+3. **Consider Dependencies**: Understand feature interactions
+4. **Test Combinations**: Verify feature combinations work together
+5. **Document Choices**: Record why features were selected
+
+### Configuration
+1. **Environment-Specific**: Use different features per environment
+2. **Feature Flags**: Use runtime feature flags for A/B testing
+3. **Graceful Degradation**: Handle missing features gracefully
+4. **Monitoring**: Monitor feature usage and performance
+
+### Development
+1. **Feature Branches**: Develop features in isolation
+2. **Integration Testing**: Test feature combinations
+3. **Documentation**: Document feature usage
+4. **Performance Testing**: Measure feature impact
+
+## Next Steps
+
+Ready to dive deeper into specific features? Check out:
+
+- **[Authentication System](./authentication.md)** - Complete user management
+- **[Content Management](./content-management.md)** - Database-driven content
+- **[TLS Support](./tls.md)** - HTTPS configuration
+- **[Email System](./email.md)** - Communication features
+- **[Feature Combinations](./combinations.md)** - Detailed combination guide
+
+Or explore the technical details:
+- **[Database Overview](../database/overview.md)** - Database configuration
+- **[Security Overview](../security/overview.md)** - Security features
+- **[Performance Overview](../performance/overview.md)** - Performance considerations
diff --git a/book/features/tls.md b/book/features/tls.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/getting-started/configuration.md b/book/getting-started/configuration.md
new file mode 100644
index 0000000..076680b
--- /dev/null
+++ b/book/getting-started/configuration.md
@@ -0,0 +1,444 @@
+# Basic Configuration
+
+
+
+
+
+Welcome to Rustelo's configuration system! This guide will help you get started with configuring your Rustelo application for different environments and use cases.
+
+## Overview
+
+Rustelo uses a powerful, modular configuration system that allows you to:
+
+- Configure different settings for development, staging, and production
+- Enable or disable features based on your needs
+- Manage secrets securely through environment variables
+- Build complete configurations from modular components
+
+## Quick Start
+
+### 1. Build Your First Configuration
+
+The easiest way to get started is to build a development configuration:
+
+```bash
+# Navigate to your Rustelo project
+cd your-rustelo-project
+
+# Build development configuration
+./config/scripts/build-config.sh dev
+```
+
+This creates a `config.toml` file with all the settings needed for development.
+
+### 2. Environment Variables
+
+Set up your basic environment variables:
+
+```bash
+# Create a .env file for development
+cat > .env << EOF
+DATABASE_URL=sqlite//:dev_database.db
+SESSION_SECRET=your-development-session-secret
+JWT_SECRET=your-development-jwt-secret
+EOF
+```
+
+### 3. Start Your Application
+
+With your configuration in place, you can start your application:
+
+```bash
+# Load environment variables and start
+source .env
+cargo run --bin server
+```
+
+## Configuration Structure
+
+Rustelo's configuration is built from two main components:
+
+### Base Configuration
+
+Base configurations contain core settings that apply to all features:
+
+- **Server settings**: Host, port, workers
+- **Database settings**: Connection URL, pool size
+- **Security settings**: CSRF protection, rate limiting
+- **Session management**: Cookie settings, timeouts
+
+### Feature Configuration
+
+Feature configurations contain settings specific to individual features:
+
+- **Authentication**: JWT settings, password policies, OAuth
+- **Email**: SMTP configuration, templates, providers
+- **Content**: Markdown processing, file uploads, search
+- **Metrics**: Monitoring, alerts, dashboards
+- **TLS**: SSL certificates, cipher suites, security headers
+
+## Available Environments
+
+Rustelo comes with three pre-configured environments:
+
+### Development (`dev`)
+- Optimized for developer experience
+- Relaxed security settings
+- Verbose logging
+- SQLite database by default
+- Hot reloading enabled
+
+```bash
+./config/scripts/build-config.sh dev
+```
+
+### Production (`prod`)
+- Optimized for performance and security
+- Strict security settings
+- Minimal logging
+- PostgreSQL database recommended
+- Monitoring enabled
+
+```bash
+./config/scripts/build-config.sh prod config.prod.toml
+```
+
+### Example (`example`)
+- Complete documentation of all options
+- Best practice configurations
+- Commented examples for learning
+
+```bash
+./config/scripts/build-config.sh example config.example.toml
+```
+
+## Essential Configuration Options
+
+### Database Configuration
+
+Choose your database backend:
+
+```toml
+[database]
+# SQLite (great for development)
+url = "sqlite://database.db"
+
+# PostgreSQL (recommended for production)
+url = "postgresql://user:password@localhost:5432/myapp"
+```
+
+### Server Configuration
+
+Configure your web server:
+
+```toml
+[server]
+host = "127.0.0.1" # Development
+# host = "0.0.0.0" # Production
+port = 3030
+workers = 1 # Development
+# workers = 4 # Production
+```
+
+### Feature Enablement
+
+Enable the features you need:
+
+```toml
+[features]
+auth = true # User authentication
+content = true # Content management
+email = false # Email system (requires SMTP setup)
+metrics = true # Monitoring and metrics
+tls = false # SSL/TLS (enable for production)
+```
+
+## Environment Variables
+
+Rustelo uses environment variables for sensitive configuration:
+
+### Required Variables
+
+For development:
+```bash
+DATABASE_URL=sqlite://dev_database.db # Optional, has default
+SESSION_SECRET=your-session-secret # Required
+```
+
+For production:
+```bash
+DATABASE_URL=postgresql://user:pass@host/db # Required
+SESSION_SECRET=your-secure-session-secret # Required (32+ chars)
+JWT_SECRET=your-secure-jwt-secret # Required (32+ chars)
+DOMAIN=yourapp.com # Required for cookies
+FRONTEND_URL=https://yourapp.com # Required for CORS
+```
+
+### Optional Variables
+
+Email configuration (if email feature enabled):
+```bash
+SMTP_HOST=smtp.gmail.com
+SMTP_USERNAME=your-app@gmail.com
+SMTP_PASSWORD=your-app-password
+FROM_EMAIL=noreply@yourapp.com
+```
+
+TLS configuration (if TLS feature enabled):
+```bash
+TLS_CERT_FILE=/etc/ssl/certs/yourapp.crt
+TLS_KEY_FILE=/etc/ssl/private/yourapp.key
+```
+
+## Feature Configuration Examples
+
+### Authentication Setup
+
+Enable authentication with basic settings:
+
+```toml
+[features]
+auth = true
+
+[auth.jwt]
+secret = "${JWT_SECRET}"
+expiration = 3600 # 1 hour
+
+[auth.password]
+min_length = 8
+require_numbers = true
+```
+
+### Email Setup
+
+Configure email for notifications:
+
+```toml
+[features]
+email = true
+
+[email]
+provider = "smtp"
+from_email = "${FROM_EMAIL}"
+
+[email.smtp]
+host = "${SMTP_HOST}"
+port = 587
+username = "${SMTP_USERNAME}"
+password = "${SMTP_PASSWORD}"
+use_tls = true
+```
+
+### Content Management
+
+Enable content features:
+
+```toml
+[features]
+content = true
+
+[content]
+enabled = true
+max_file_size = 10485760 # 10MB
+allowed_file_types = ["jpg", "png", "pdf", "md"]
+
+[content.markdown]
+enabled = true
+syntax_highlighting = true
+```
+
+## Configuration Management
+
+### List Available Features
+
+See what features are available:
+
+```bash
+./config/scripts/debug-manage.sh list-features
+```
+
+### Check Configuration Status
+
+Review your current configuration:
+
+```bash
+./config/scripts/debug-manage.sh status
+```
+
+### Compare Environments
+
+Compare settings between environments:
+
+```bash
+# Build both configurations first
+./config/scripts/build-config.sh dev config.dev.toml
+./config/scripts/build-config.sh prod config.prod.toml
+
+# Compare them
+diff config.dev.toml config.prod.toml
+```
+
+### Backup Configurations
+
+Backup your current configuration:
+
+```bash
+cp config.toml config.backup.toml
+```
+
+## Common Configuration Patterns
+
+### Development Setup
+
+For local development:
+
+```bash
+# Set environment
+export RUSTELO_ENV=development
+
+# Simple database
+export DATABASE_URL=sqlite://dev_database.db
+
+# Basic auth secrets
+export SESSION_SECRET=dev-session-secret
+export JWT_SECRET=dev-jwt-secret
+
+# Build config
+./config/scripts/build-config.sh dev
+```
+
+### Production Setup
+
+For production deployment:
+
+```bash
+# Set environment
+export RUSTELO_ENV=production
+
+# Production database
+export DATABASE_URL=postgresql://user:password@db:5432/app
+
+# Secure secrets (use a secret manager in real deployments)
+export SESSION_SECRET=$(openssl rand -base64 32)
+export JWT_SECRET=$(openssl rand -base64 32)
+
+# Domain configuration
+export DOMAIN=yourapp.com
+export FRONTEND_URL=https://yourapp.com
+
+# Build config
+./config/scripts/build-config.sh prod config.prod.toml
+```
+
+### Docker Setup
+
+For containerized deployment:
+
+```dockerfile
+FROM rust:1.70 as builder
+WORKDIR /app
+COPY . .
+RUN ./config/scripts/build-config.sh prod config.prod.toml
+RUN cargo build --release
+
+FROM debian:bookworm-slim
+COPY --from=builder /app/target/release/server /usr/local/bin/
+COPY --from=builder /app/config.prod.toml /etc/rustelo/config.toml
+
+ENV RUSTELO_CONFIG_FILE=/etc/rustelo/config.toml
+EXPOSE 3030
+CMD ["server"]
+```
+
+## Troubleshooting
+
+### Configuration Build Fails
+
+If configuration building fails:
+
+1. Check that all required files exist:
+ ```bash
+ ls -la config/base/
+ ls -la config/features/
+ ```
+
+2. Validate individual files:
+ ```bash
+ # Check base configuration
+ cat config/base/dev.toml
+
+ # Check feature configurations
+ cat config/features/auth/dev.toml
+ ```
+
+3. Check for syntax errors:
+ ```bash
+ # Install TOML validator (optional)
+ cargo install toml-cli
+
+ # Validate syntax
+ toml get config/base/dev.toml
+ ```
+
+### Missing Environment Variables
+
+If you get errors about missing environment variables:
+
+1. Check required variables are set:
+ ```bash
+ echo $DATABASE_URL
+ echo $SESSION_SECRET
+ echo $JWT_SECRET
+ ```
+
+2. Create a .env file:
+ ```bash
+ cat > .env << EOF
+ DATABASE_URL=sqlite:dev_database.db
+ SESSION_SECRET=your-session-secret
+ JWT_SECRET=your-jwt-secret
+ EOF
+
+ # Load environment
+ source .env
+ ```
+
+### Application Won't Start
+
+If the application fails to start:
+
+1. Check configuration file exists:
+ ```bash
+ ls -la config.toml
+ ```
+
+2. Validate configuration:
+ ```bash
+ ./config/scripts/debug-manage.sh status
+ ```
+
+3. Check logs for specific errors:
+ ```bash
+ cargo run --bin server 2>&1 | head -20
+ ```
+
+## Next Steps
+
+Now that you have basic configuration working:
+
+1. **Explore Features**: Learn about [Features Configuration](../configuration/features.md)
+2. **Security Setup**: Review [Security Settings](../configuration/security.md)
+3. **Environment Variables**: Deep dive into [Environment Variables](../configuration/environment.md)
+4. **Production Deployment**: Check out [Production Setup](../deployment/production.md)
+5. **Performance Tuning**: Optimize with [Performance Configuration](../configuration/performance.md)
+
+## Getting Help
+
+If you need assistance with configuration:
+
+- Check the [Troubleshooting Guide](../troubleshooting/common.md)
+- Review the [Configuration Files Guide](../configuration/files.md)
+- Look at example configurations in `config/features/*/example.toml`
+- Ask questions in the community forums
+
+The configuration system is designed to be flexible and powerful while remaining approachable for new users. Start simple and add complexity as your needs grow!
diff --git a/book/getting-started/first-app.md b/book/getting-started/first-app.md
new file mode 100644
index 0000000..c3ce66c
--- /dev/null
+++ b/book/getting-started/first-app.md
@@ -0,0 +1,825 @@
+# Building Your First Rustelo Application
+
+
+
+
+
+
+
+
+
+Welcome to building your first[Rustelo](/)application! This guide will walk you through creating a complete web application from scratch, covering both frontend and backend development with Rustelo's powerful features.
+
+## 🎯 What You'll Build
+
+By the end of this guide, you'll have created a **Task Management Application** with:
+
+- 📝 **Frontend**: Interactive task list with Leptos components
+- 🔧 **Backend**: RESTful API with Axum server
+- 🗄️ **Database**: Data persistence with SQLx
+- 🔐 **Authentication**: User login and registration
+- 🎨 **Styling**: Modern UI with Tailwind CSS
+- 📱 **Responsive**: Mobile-friendly design
+
+## 🚀 Prerequisites
+
+Before starting, ensure you have:
+
+- ✅ **Rustelo installed** - Follow the [Installation Guide](./installation.md)
+- ✅ **Basic Rust knowledge** - Variables, structs, functions
+- ✅ **Web development basics** - HTML, CSS, HTTP concepts
+- ✅ **Development environment** - Your favorite code editor
+
+## 📋 Step 1: Project Setup
+
+### Create Your Project
+
+```bash
+# Clone the[Rustelo](/) template
+git clone https://github.com/yourusername/rustelo.git my-task-app
+cd my-task-app
+
+# Run the installer
+./scripts/install.sh
+```
+
+### Configure Your Application
+
+```bash
+# Set up environment variables
+cat > .env << EOF
+# Database Configuration
+DATABASE_URL=sqlite//:tasks.db
+
+# Security Configuration
+SESSION_SECRET=your-development-session-secret-here
+JWT_SECRET=your-development-jwt-secret-here
+
+# Application Configuration
+RUSTELO_ENV=development
+SERVER_HOST=127.0.0.1
+SERVER_PORT=3030
+LOG_LEVEL=debug
+
+# Features Configuration
+ENABLE_AUTH=true
+ENABLE_CONTENT_DB=true
+ENABLE_EMAIL=false
+ENABLE_TLS=false
+EOF
+```
+
+### Build Your Configuration
+
+```bash
+# Build development configuration
+./config/scripts/build-config.sh dev
+
+# Verify setup
+just verify-setup
+```
+
+## 🏗️ Step 2: Database Schema
+
+### Create Database Migration
+
+```bash
+# Create migration for tasks table
+sqlx migrate add create_tasks_table
+```
+
+Edit the migration file in `migrations/`:
+
+```sql
+-- migrations/001_create_tasks_table.sql
+CREATE TABLE IF NOT EXISTS tasks (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ title TEXT NOT NULL,
+ description TEXT,
+ completed BOOLEAN NOT NULL DEFAULT FALSE,
+ priority INTEGER NOT NULL DEFAULT 1,
+ due_date TEXT,
+ created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ user_id INTEGER,
+ FOREIGN KEY (user_id) REFERENCES users(id)
+);
+
+-- Index for faster queries
+CREATE INDEX IF NOT EXISTS idx_tasks_user_id ON tasks(user_id);
+CREATE INDEX IF NOT EXISTS idx_tasks_completed ON tasks(completed);
+```
+
+### Run Migration
+
+```bash
+# Apply database migrations
+just db-migrate
+
+# Verify database structure
+just db-status
+```
+
+## 🔧 Step 3: Shared Types
+
+Create shared data structures in `shared/src/types.rs`:
+
+```rust
+// shared/src/types.rs
+use serde::{Deserialize, Serialize};
+use chrono::{DateTime, Utc};
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct Task {
+ pub id: Option,
+ pub title: String,
+ pub description: Option,
+ pub completed: bool,
+ pub priority: TaskPriority,
+ pub due_date: Option>,
+ pub created_at: DateTime,
+ pub updated_at: DateTime,
+ pub user_id: Option,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub enum TaskPriority {
+ Low = 1,
+ Medium = 2,
+ High = 3,
+ Urgent = 4,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct CreateTaskRequest {
+ pub title: String,
+ pub description: Option,
+ pub priority: TaskPriority,
+ pub due_date: Option>,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct UpdateTaskRequest {
+ pub title: Option,
+ pub description: Option,
+ pub completed: Option,
+ pub priority: Option,
+ pub due_date: Option>,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct TasksResponse {
+ pub tasks: Vec,
+ pub total: usize,
+ pub page: usize,
+ pub per_page: usize,
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ApiResponse {
+ pub success: bool,
+ pub data: Option,
+ pub message: Option,
+}
+```
+
+Update `shared/src/lib.rs`:
+
+```rust
+// shared/src/lib.rs
+pub mod types;
+pub mod utils;
+
+pub use types::*;
+```
+
+## 🖥️ Step 4: Backend API
+
+### Create Task Repository
+
+Create `server/src/repositories/task_repository.rs`:
+
+```rust
+// server/src/repositories/task_repository.rs
+use sqlx::{SqlitePool, Row};
+use chrono::{DateTime, Utc};
+use shared::{Task, CreateTaskRequest, UpdateTaskRequest, TaskPriority};
+use anyhow::Result;
+
+pub struct TaskRepository {
+ pool: SqlitePool,
+}
+
+impl TaskRepository {
+ pub fn new(pool: SqlitePool) -> Self {
+ Self { pool }
+ }
+
+ pub async fn create_task(&self, request: CreateTaskRequest, user_id: i32) -> Result {
+ let now = Utc::now();
+
+ let row = sqlx::query!(
+ r#"
+ INSERT INTO tasks (title, description, priority, due_date, created_at, updated_at, user_id)
+ VALUES (?, ?, ?, ?, ?, ?, ?)
+ RETURNING id, title, description, completed, priority, due_date, created_at, updated_at, user_id
+ "#,
+ request.title,
+ request.description,
+ request.priority as i32,
+ request.due_date.map(|d| d.to_rfc3339()),
+ now.to_rfc3339(),
+ now.to_rfc3339(),
+ user_id
+ )
+ .fetch_one(&self.pool)
+ .await?;
+
+ Ok(Task {
+ id: Some(row.id),
+ title: row.title,
+ description: row.description,
+ completed: row.completed,
+ priority: match row.priority {
+ 1 => TaskPriority::Low,
+ 2 => TaskPriority::Medium,
+ 3 => TaskPriority::High,
+ 4 => TaskPriority::Urgent,
+ _ => TaskPriority::Medium,
+ },
+ due_date: row.due_date.and_then(|d| DateTime::parse_from_rfc3339(&d).ok())
+ .map(|d| d.with_timezone(&Utc)),
+ created_at: DateTime::parse_from_rfc3339(&row.created_at).unwrap().with_timezone(&Utc),
+ updated_at: DateTime::parse_from_rfc3339(&row.updated_at).unwrap().with_timezone(&Utc),
+ user_id: Some(row.user_id),
+ })
+ }
+
+ pub async fn get_tasks_by_user(&self, user_id: i32, page: usize, per_page: usize) -> Result> {
+ let offset = (page - 1) * per_page;
+
+ let rows = sqlx::query!(
+ r#"
+ SELECT id, title, description, completed, priority, due_date, created_at, updated_at, user_id
+ FROM tasks
+ WHERE user_id = ?
+ ORDER BY created_at DESC
+ LIMIT ? OFFSET ?
+ "#,
+ user_id,
+ per_page as i32,
+ offset as i32
+ )
+ .fetch_all(&self.pool)
+ .await?;
+
+ let tasks = rows.into_iter().map(|row| Task {
+ id: Some(row.id),
+ title: row.title,
+ description: row.description,
+ completed: row.completed,
+ priority: match row.priority {
+ 1 => TaskPriority::Low,
+ 2 => TaskPriority::Medium,
+ 3 => TaskPriority::High,
+ 4 => TaskPriority::Urgent,
+ _ => TaskPriority::Medium,
+ },
+ due_date: row.due_date.and_then(|d| DateTime::parse_from_rfc3339(&d).ok())
+ .map(|d| d.with_timezone(&Utc)),
+ created_at: DateTime::parse_from_rfc3339(&row.created_at).unwrap().with_timezone(&Utc),
+ updated_at: DateTime::parse_from_rfc3339(&row.updated_at).unwrap().with_timezone(&Utc),
+ user_id: Some(row.user_id),
+ }).collect();
+
+ Ok(tasks)
+ }
+
+ pub async fn update_task(&self, task_id: i32, request: UpdateTaskRequest, user_id: i32) -> Result {
+ // First check if task exists and belongs to user
+ let existing = sqlx::query!(
+ "SELECT id FROM tasks WHERE id = ? AND user_id = ?",
+ task_id,
+ user_id
+ )
+ .fetch_optional(&self.pool)
+ .await?;
+
+ if existing.is_none() {
+ return Err(anyhow::anyhow!("Task not found or access denied"));
+ }
+
+ let now = Utc::now();
+
+ // Build dynamic update query
+ let mut update_fields = Vec::new();
+ let mut params: Vec<&dyn sqlx::Encode<'_, sqlx::Sqlite>> = Vec::new();
+
+ if let Some(title) = &request.title {
+ update_fields.push("title = ?");
+ params.push(title);
+ }
+ if let Some(description) = &request.description {
+ update_fields.push("description = ?");
+ params.push(description);
+ }
+ if let Some(completed) = &request.completed {
+ update_fields.push("completed = ?");
+ params.push(completed);
+ }
+ if let Some(priority) = &request.priority {
+ update_fields.push("priority = ?");
+ let priority_val = *priority as i32;
+ params.push(&priority_val);
+ }
+ if let Some(due_date) = &request.due_date {
+ update_fields.push("due_date = ?");
+ let due_date_str = due_date.to_rfc3339();
+ params.push(&due_date_str);
+ }
+
+ if update_fields.is_empty() {
+ return Err(anyhow::anyhow!("No fields to update"));
+ }
+
+ update_fields.push("updated_at = ?");
+ let now_str = now.to_rfc3339();
+ params.push(&now_str);
+
+ let query = format!(
+ "UPDATE tasks SET {} WHERE id = ? AND user_id = ?",
+ update_fields.join(", ")
+ );
+
+ // Execute update
+ sqlx::query(&query)
+ .bind(task_id)
+ .bind(user_id)
+ .execute(&self.pool)
+ .await?;
+
+ // Return updated task
+ let row = sqlx::query!(
+ r#"
+ SELECT id, title, description, completed, priority, due_date, created_at, updated_at, user_id
+ FROM tasks
+ WHERE id = ?
+ "#,
+ task_id
+ )
+ .fetch_one(&self.pool)
+ .await?;
+
+ Ok(Task {
+ id: Some(row.id),
+ title: row.title,
+ description: row.description,
+ completed: row.completed,
+ priority: match row.priority {
+ 1 => TaskPriority::Low,
+ 2 => TaskPriority::Medium,
+ 3 => TaskPriority::High,
+ 4 => TaskPriority::Urgent,
+ _ => TaskPriority::Medium,
+ },
+ due_date: row.due_date.and_then(|d| DateTime::parse_from_rfc3339(&d).ok())
+ .map(|d| d.with_timezone(&Utc)),
+ created_at: DateTime::parse_from_rfc3339(&row.created_at).unwrap().with_timezone(&Utc),
+ updated_at: DateTime::parse_from_rfc3339(&row.updated_at).unwrap().with_timezone(&Utc),
+ user_id: Some(row.user_id),
+ })
+ }
+
+ pub async fn delete_task(&self, task_id: i32, user_id: i32) -> Result {
+ let result = sqlx::query!(
+ "DELETE FROM tasks WHERE id = ? AND user_id = ?",
+ task_id,
+ user_id
+ )
+ .execute(&self.pool)
+ .await?;
+
+ Ok(result.rows_affected() > 0)
+ }
+
+ pub async fn count_tasks_by_user(&self, user_id: i32) -> Result {
+ let row = sqlx::query!(
+ "SELECT COUNT(*) as count FROM tasks WHERE user_id = ?",
+ user_id
+ )
+ .fetch_one(&self.pool)
+ .await?;
+
+ Ok(row.count as usize)
+ }
+}
+```
+
+### Create API Handlers
+
+Create `server/src/handlers/task_handlers.rs`:
+
+```rust
+// server/src/handlers/task_handlers.rs
+use axum::{
+ extract::{Path, Query, State},
+ response::Json,
+ http::StatusCode,
+};
+use serde::{Deserialize, Serialize};
+use shared::{CreateTaskRequest, UpdateTaskRequest, TasksResponse, ApiResponse};
+use crate::{
+ repositories::task_repository::TaskRepository,
+ auth::AuthUser,
+ AppState,
+};
+
+#[derive(Debug, Deserialize)]
+pub struct TaskQuery {
+ pub page: Option,
+ pub per_page: Option,
+}
+
+pub async fn create_task(
+ State(state): State,
+ AuthUser(user_id): AuthUser,
+ Json(request): Json,
+) -> Result>, StatusCode> {
+ let task_repo = TaskRepository::new(state.db_pool.clone());
+
+ match task_repo.create_task(request, user_id).await {
+ Ok(task) => Ok(Json(ApiResponse {
+ success: true,
+ data: Some(task),
+ message: Some("Task created successfully".to_string()),
+ })),
+ Err(e) => {
+ tracing::error!("Failed to create task: {}", e);
+ Err(StatusCode::INTERNAL_SERVER_ERROR)
+ }
+ }
+}
+
+pub async fn get_tasks(
+ State(state): State,
+ AuthUser(user_id): AuthUser,
+ Query(params): Query,
+) -> Result>, StatusCode> {
+ let task_repo = TaskRepository::new(state.db_pool.clone());
+
+ let page = params.page.unwrap_or(1);
+ let per_page = params.per_page.unwrap_or(10).min(100); // Limit to 100 per page
+
+ match task_repo.get_tasks_by_user(user_id, page, per_page).await {
+ Ok(tasks) => {
+ let total = task_repo.count_tasks_by_user(user_id).await.unwrap_or(0);
+
+ let response = TasksResponse {
+ tasks,
+ total,
+ page,
+ per_page,
+ };
+
+ Ok(Json(ApiResponse {
+ success: true,
+ data: Some(response),
+ message: None,
+ }))
+ }
+ Err(e) => {
+ tracing::error!("Failed to get tasks: {}", e);
+ Err(StatusCode::INTERNAL_SERVER_ERROR)
+ }
+ }
+}
+
+pub async fn update_task(
+ State(state): State,
+ AuthUser(user_id): AuthUser,
+ Path(task_id): Path,
+ Json(request): Json,
+) -> Result>, StatusCode> {
+ let task_repo = TaskRepository::new(state.db_pool.clone());
+
+ match task_repo.update_task(task_id, request, user_id).await {
+ Ok(task) => Ok(Json(ApiResponse {
+ success: true,
+ data: Some(task),
+ message: Some("Task updated successfully".to_string()),
+ })),
+ Err(e) => {
+ tracing::error!("Failed to update task: {}", e);
+ if e.to_string().contains("not found") {
+ Err(StatusCode::NOT_FOUND)
+ } else {
+ Err(StatusCode::INTERNAL_SERVER_ERROR)
+ }
+ }
+ }
+}
+
+pub async fn delete_task(
+ State(state): State,
+ AuthUser(user_id): AuthUser,
+ Path(task_id): Path,
+) -> Result>, StatusCode> {
+ let task_repo = TaskRepository::new(state.db_pool.clone());
+
+ match task_repo.delete_task(task_id, user_id).await {
+ Ok(true) => Ok(Json(ApiResponse {
+ success: true,
+ data: None,
+ message: Some("Task deleted successfully".to_string()),
+ })),
+ Ok(false) => Err(StatusCode::NOT_FOUND),
+ Err(e) => {
+ tracing::error!("Failed to delete task: {}", e);
+ Err(StatusCode::INTERNAL_SERVER_ERROR)
+ }
+ }
+}
+```
+
+### Update API Routes
+
+Update `server/src/main.rs` to include task routes:
+
+```rust
+// Add to server/src/main.rs
+use axum::{
+ routing::{get, post, put, delete},
+ Router,
+};
+
+mod handlers;
+mod repositories;
+
+use handlers::task_handlers::*;
+
+// In your app router setup:
+pub fn api_routes() -> Router {
+ Router::new()
+ .route("/api/tasks", post(create_task))
+ .route("/api/tasks", get(get_tasks))
+ .route("/api/tasks/:id", put(update_task))
+ .route("/api/tasks/:id", delete(delete_task))
+ // ... other routes
+}
+```
+
+## 🎨 Step 5: Frontend Components
+
+### Create Task Components
+
+Create `client/src/components/tasks/task_item.rs`:
+
+```rust
+// client/src/components/tasks/task_item.rs
+use leptos::prelude::*;
+use shared::{Task, TaskPriority};
+use chrono::{DateTime, Utc};
+
+#[component]
+pub fn TaskItem(
+ task: Task,
+ #[prop(into)] on_toggle: Callback,
+ #[prop(into)] on_delete: Callback,
+ #[prop(into)] on_edit: Callback,
+) -> impl IntoView {
+ let task_id = task.id.unwrap_or(0);
+ let is_completed = task.completed;
+ let is_overdue = task.due_date
+ .map(|due| due < Utc::now() && !task.completed)
+ .unwrap_or(false);
+
+ let priority_class = match task.priority {
+ TaskPriority::Low => "border-l-green-400",
+ TaskPriority::Medium => "border-l-yellow-400",
+ TaskPriority::High => "border-l-orange-400",
+ TaskPriority::Urgent => "border-l-red-400",
+ };
+
+ let priority_text = match task.priority {
+ TaskPriority::Low => "Low",
+ TaskPriority::Medium => "Medium",
+ TaskPriority::High => "High",
+ TaskPriority::Urgent => "Urgent",
+ };
+
+ view! {
+
+ }
+}
+```
+
+### Create Task List Component
+
+Create `client/src/components/tasks/task_list.rs`:
+
+```rust
+// client/src/components/tasks/task_list.rs
+use leptos::prelude::*;
+use shared::{Task, TasksResponse, ApiResponse};
+use crate::components::tasks::task_item::TaskItem;
+use crate::api::tasks::*;
+
+#[component]
+pub fn TaskList() -> impl IntoView {
+ let (tasks, set_tasks) = signal(Vec::::new());
+ let (loading, set_loading) = signal(false);
+ let (error, set_error) = signal(None::);
+ let (current_page, set_current_page) = signal(1);
+ let (total_pages, set_total_pages) = signal(1);
+
+ // Load tasks on component mount
+ Effect::new(move |_| {
+ spawn_local(async move {
+ set_loading(true);
+ set_error(None);
+
+ match fetch_tasks(current_page.get_untracked(), 10).await {
+ Ok(ApiResponse { success: true, data: Some(response), .. }) => {
+ set_tasks(response.tasks);
+ set_total_pages((response.total + response.per_page - 1) / response.per_page);
+ }
+ Ok(ApiResponse { message: Some(msg), .. }) => {
+ set_error(Some(msg));
+ }
+ Err(e) => {
+ set_error(Some(format!("Failed to load tasks: {}", e)));
+ }
+ }
+
+ set_loading(false);
+ });
+ });
+
+ let handle_toggle = Callback::new(move |task_id: i32| {
+ spawn_local(async move {
+ // Find the task and toggle its completion status
+ let current_tasks = tasks.get_untracked();
+ if let Some(task) = current_tasks.iter().find(|t| t.id == Some(task_id)) {
+ let update_request = shared::UpdateTaskRequest {
+ completed: Some(!task.completed),
+ title: None,
+ description: None,
+ priority: None,
+ due_date: None,
+ };
+
+ match update_task(task_id, update_request).await {
+ Ok(ApiResponse { success: true, data: Some(updated_task), .. }) => {
+ let mut new_tasks = current_tasks;
+ if let Some(index) = new_tasks.iter().position(|t| t.id == Some(task_id)) {
+ new_tasks[index] = updated_task;
+ set_tasks(new_tasks);
+ }
+ }
+ Err(e) => {
+ set_error(Some(format!("Failed to update task: {}", e)));
+ }
+ }
+ }
+ });
+ });
+
+ let handle_delete = Callback::new(move |task_id: i32| {
+ spawn_local(async move {
+ match delete_task(task_id).await {
+ Ok(ApiResponse { success: true, .. }) => {
+ let current_tasks = tasks.get_untracked();
+ let new_tasks: Vec = current_tasks
+ .into_iter()
+ .filter(|t| t.id != Some(task_id))
+ .collect();
+ set_tasks(new_tasks);
+ }
+ Err(e) => {
+ set_error(Some(format!("Failed to delete task: {}", e)));
+ }
+ }
+ });
+ });
+
+ let handle_edit = Callback::new(move |task: Task| {
+ // For now, just log - you can implement an edit modal here
+ logging::log!("Edit task: {:?}", task);
+ });
+
+ view! {
+
+
+
"My Tasks"
+
"Manage your tasks efficiently"
+
+
+ {move || {
+ if loading.get() {
+ view! {
+
+ }
+ } else if let Some(error_msg) = error.get() {
+ view! {
+
+ }
+ } else {
+ let task_list = tasks.get();
+ if task_list.is_empty() {
+ view! {
+
+
+
+
+
+
+Welcome to your first[Rustelo](/)application! This guide will walk you through setting up and running your application for the first time, ensuring everything is configured correctly and working as expected.
+
+## 🎯 What You'll Accomplish
+
+By the end of this guide, you'll have:
+
+- ✅ **Verified your installation** - Confirmed all tools are working
+- ✅ **Started your application** - Both frontend and backend running
+- ✅ **Accessed your app** - Connected via web browser
+- ✅ **Tested core features** - Authentication, database, and API
+- ✅ **Explored the interface** - Understand the user interface
+- ✅ **Generated documentation** - Local documentation site running
+
+## 🚀 Quick Start (30 seconds)
+
+If you've already completed the installation, here's the fastest way to get running:
+
+```bash
+# Navigate to your project
+cd your-rustelo-app
+
+# Start everything
+just dev
+
+# Open your browser to:
+# http://localhost:3030
+```
+
+## 📋 Pre-Run Checklist
+
+Before starting your application, verify these prerequisites:
+
+### 1. Installation Complete
+```bash
+# Check Rust installation
+rustc --version # Should be 1.70.0 or later
+cargo --version
+
+# Check Node.js installation
+node --version # Should be 18.0.0 or later
+npm --version
+
+# Check Rustelo tools
+cargo leptos --version
+mdbook --version
+just --version
+```
+
+### 2. Project Structure
+```bash
+# Verify your project has the correct structure
+ls -la
+# Should see: client/, server/, shared/, book/, justfile, Cargo.toml, etc.
+```
+
+### 3. Environment Configuration
+```bash
+# Check your .env file exists
+cat .env
+# Should contain: DATABASE_URL, SESSION_SECRET, etc.
+```
+
+### 4. Dependencies Installed
+```bash
+# Install/update dependencies
+cargo build
+npm install
+```
+
+## 🏃♂️ Step-by-Step First Run
+
+### Step 1: Verify Setup
+
+First, let's make sure everything is properly configured:
+
+```bash
+# Run the setup verification script
+just verify-setup
+
+# This checks:
+# - All required tools are installed
+# - Environment variables are set
+# - Database connection works
+# - Dependencies are installed
+# - Configuration files are valid
+```
+
+**Expected Output:**
+```
+✅ Rust toolchain: 1.70.0
+✅ Node.js: 18.17.0
+✅ Database connection: OK
+✅ Environment variables: OK
+✅ Dependencies: OK
+✅ Configuration: Valid
+🎉 Your[Rustelo](/)setup is ready!
+```
+
+### Step 2: Database Setup
+
+Initialize your database with the required schema:
+
+```bash
+# Check database status
+just db-status
+
+# Run database migrations
+just db-migrate
+
+# Verify database setup
+just db-health
+```
+
+**Expected Output:**
+```
+📊 Database Status:
+- Type: SQLite
+- File: database.db
+- Size: 32 KB
+- Tables: 3 (users, sessions, tasks)
+- Migrations: 3 applied
+✅ Database is ready!
+```
+
+### Step 3: Start the Application
+
+Now start your[Rustelo](/)application:
+
+```bash
+# Start the development server
+just dev
+
+# Alternative: Start with verbose logging
+just dev-verbose
+
+# Alternative: Start on different port
+just dev-port 3031
+```
+
+**Expected Output:**
+```
+🚀 Starting[Rustelo](/)Development Server...
+
+📦 Building frontend assets...
+ Compiling client v0.1.0
+ Finished dev [unoptimized + debuginfo] target(s) in 12.3s
+
+🔧 Starting backend server...
+ Compiling server v0.1.0
+ Finished dev [unoptimized + debuginfo] target(s) in 8.7s
+
+🌐 Server running on: http://127.0.0.1:3030
+🔄 Hot reload enabled on port: 3031
+📁 Serving assets from: public/
+🗄️ Database: sqlite:database.db
+
+✨ Ready! Your app is running at http://localhost:3030
+```
+
+### Step 4: Access Your Application
+
+Open your web browser and navigate to:
+
+**🌐 http://localhost:3030**
+
+You should see:
+- **Welcome Page** -[Rustelo](/) landing page
+- **Navigation Menu** - Links to different sections
+- **Login/Register** - Authentication forms
+- **Dashboard** - Main application interface
+
+### Step 5: Test Core Features
+
+Let's test the main features to ensure everything is working:
+
+#### Authentication Test
+```bash
+# Test authentication endpoints
+curl -X POST http://localhost:3030/api/auth/register \
+ -H "Content-Type: application/json" \
+ -d '{
+ "username": "testuser",
+ "email": "test@example.com",
+ "password": "testpassword123"
+ }'
+```
+
+**Expected Response:**
+```json
+{
+ "success": true,
+ "data": {
+ "user_id": 1,
+ "username": "testuser",
+ "email": "test@example.com"
+ },
+ "message": "User registered successfully"
+}
+```
+
+#### Database Test
+```bash
+# Test database connection
+just db-health
+
+# View database tables
+just db-status
+```
+
+#### API Test
+```bash
+# Test API health endpoint
+curl http://localhost:3030/api/health
+```
+
+**Expected Response:**
+```json
+{
+ "status": "healthy",
+ "version": "0.1.0",
+ "uptime": "00:01:23",
+ "database": "connected"
+}
+```
+
+## 🎨 Start the Documentation Server
+
+Rustelo includes a comprehensive documentation system:
+
+```bash
+# Start documentation server (in a new terminal)
+just docs-dev
+
+# This starts mdbook server on http://localhost:3000
+```
+
+**Expected Output:**
+```
+📚 Starting Documentation Server...
+
+2024-01-15 10:30:45 [INFO] (mdbook::book): Book building has started
+2024-01-15 10:30:45 [INFO] (mdbook::book): Running the html backend
+2024-01-15 10:30:45 [INFO] (mdbook::cmd::serve): Serving on: http://localhost:3000
+2024-01-15 10:30:45 [INFO] (mdbook::cmd::serve): Press Ctrl+C to quit.
+
+📖 Documentation available at: http://localhost:3000
+```
+
+## 🔧 Common First-Run Issues
+
+### Issue 1: Port Already in Use
+
+**Problem:** `Address already in use (os error 48)`
+
+**Solution:**
+```bash
+# Check what's using the port
+lsof -i :3030
+
+# Kill the process or use a different port
+just dev-port 3031
+```
+
+### Issue 2: Database Connection Failed
+
+**Problem:** `Failed to connect to database`
+
+**Solution:**
+```bash
+# Check database file exists
+ls -la database.db
+
+# Recreate database
+just db-reset
+
+# Run migrations
+just db-migrate
+```
+
+### Issue 3: Missing Dependencies
+
+**Problem:** `Cannot find binary cargo-leptos`
+
+**Solution:**
+```bash
+# Install missing tools
+cargo install cargo-leptos
+cargo install sqlx-cli --features sqlite
+
+# Verify installation
+just verify-setup
+```
+
+### Issue 4: Environment Variables Missing
+
+**Problem:** `Environment variable not found`
+
+**Solution:**
+```bash
+# Check .env file exists and is correct
+cat .env
+
+# Generate new .env file
+cp .env.example .env
+# Edit .env with your values
+
+# Load environment variables
+source .env
+```
+
+### Issue 5: Frontend Build Errors
+
+**Problem:** `npm ERR! or webpack compilation failed`
+
+**Solution:**
+```bash
+# Clean and reinstall
+rm -rf node_modules package-lock.json
+npm install
+
+# Rebuild CSS
+npm run build:css
+
+# Clear cargo cache
+cargo clean
+```
+
+## 🎯 Your First Actions
+
+Now that your application is running, here's what you should do:
+
+### 1. Create Your First User Account
+
+1. **Go to:** http://localhost:3030/register
+2. **Fill in the form:**
+ - Username: `your-username`
+ - Email: `your-email@example.com`
+ - Password: `your-secure-password`
+3. **Click:** "Register"
+4. **Verify:** You're redirected to the dashboard
+
+### 2. Explore the Interface
+
+Visit these pages to understand your application:
+
+- **Dashboard:** http://localhost:3030/dashboard - Main application view
+- **Profile:** http://localhost:3030/profile - User settings
+- **Tasks:** http://localhost:3030/tasks - Task management (if enabled)
+- **API Docs:** http://localhost:3030/api/docs - API documentation
+
+### 3. Test Authentication
+
+1. **Logout:** Click the logout button
+2. **Login:** Use your credentials to log back in
+3. **Verify:** Session persistence works correctly
+
+### 4. Check the Database
+
+```bash
+# View your user data
+just db-query "SELECT * FROM users;"
+
+# Check sessions
+just db-query "SELECT * FROM sessions;"
+```
+
+### 5. Explore Documentation
+
+Visit http://localhost:3000 and explore:
+- **Getting Started** - This guide and more
+- **API Reference** - Complete API documentation
+- **Features** - Available features and how to use them
+- **Development** - How to customize and extend
+
+## 🛠️ Development Workflow
+
+Now that everything is running, here's your daily development workflow:
+
+### Morning Setup
+```bash
+# Start your development session
+cd your-rustelo-app
+just dev # Start app (Terminal 1)
+just docs-dev # Start docs (Terminal 2)
+just css-watch # Watch CSS changes (Terminal 3)
+```
+
+### Making Changes
+```bash
+# Frontend changes (client/)
+# - Edit files in client/src/
+# - Changes auto-reload in browser
+
+# Backend changes (server/)
+# - Edit files in server/src/
+# - Server auto-restarts
+
+# Database changes
+just db-migration create_new_feature
+# - Edit migration file
+just db-migrate
+```
+
+### Testing Changes
+```bash
+# Run tests
+just test
+
+# Check code quality
+just check
+
+# Build for production
+just build-prod
+```
+
+## 📊 Performance Monitoring
+
+Monitor your application's performance:
+
+### Real-time Metrics
+```bash
+# View system metrics
+just health
+
+# Check memory usage
+just monitor-resources
+
+# View logs
+just logs
+```
+
+### Browser DevTools
+1. **Open DevTools** (F12)
+2. **Network Tab** - Monitor API calls
+3. **Console Tab** - Check for errors
+4. **Performance Tab** - Analyze load times
+
+## 🔍 Debugging Tips
+
+### Enable Debug Logging
+```bash
+# Set debug level in .env
+LOG_LEVEL=debug
+
+# Restart server
+just dev
+```
+
+### Common Debug Commands
+```bash
+# View detailed logs
+just logs-verbose
+
+# Check server health
+curl http://localhost:3030/api/health
+
+# Test database queries
+just db-query "SELECT COUNT(*) FROM users;"
+
+# Verify configuration
+just config-status
+```
+
+## 🎉 Success Checklist
+
+Verify your first run was successful:
+
+- [ ] **Application starts without errors**
+- [ ] **Web interface loads at http://localhost:3030**
+- [ ] **User registration works**
+- [ ] **User login works**
+- [ ] **Database operations work**
+- [ ] **API endpoints respond correctly**
+- [ ] **Documentation site loads at http://localhost:3000**
+- [ ] **Hot reload works for frontend changes**
+- [ ] **Backend restarts on changes**
+- [ ] **No errors in console logs**
+
+## 🚀 Next Steps
+
+Congratulations! Your Rustelo application is now running. Here's what to do next:
+
+### Immediate Next Steps (Today)
+1. **[Build Your First App](./first-app.md)** - Create a complete application
+2. **[Configure Features](./configuration.md)** - Enable additional features
+3. **[Explore Components](../developers/components/README.md)** - Learn about available components
+
+### Short-term Goals (This Week)
+1. **Customize Styling** - Update colors, fonts, and layout
+2. **Add Content** - Create pages and content for your app
+3. **Configure Production** - Set up production deployment
+4. **Add Features** - Enable email, content management, etc.
+
+### Long-term Goals (This Month)
+1. **Deploy to Production** - Launch your app
+2. **Set up Monitoring** - Track performance and errors
+3. **Add Custom Features** - Build app-specific functionality
+4. **Scale Your App** - Optimize for growth
+
+## 🆘 Getting Help
+
+If you encounter issues:
+
+### Quick Fixes
+```bash
+# Reset everything
+just clean-all
+just setup
+
+# Verify setup
+just verify-setup
+
+# Check logs
+just logs
+```
+
+### Documentation Resources
+- **[Troubleshooting Guide](../troubleshooting/common.md)** - Common issues and solutions
+- **[Configuration Guide](../configuration/README.md)** - Advanced configuration options
+
+### Community Support
+- **GitHub Issues** - Report bugs and request features
+- **Discord Server** - Real-time help and discussion
+- **Stack Overflow** - Tag questions with `rustelo`
+
+## 💡 Pro Tips
+
+### Development Efficiency
+- **Use `just help`** - See all available commands
+- **Keep docs running** - Reference documentation while coding
+- **Use hot reload** - Changes appear instantly
+- **Check logs regularly** - Catch issues early
+
+### Best Practices
+- **Commit often** - Small, frequent commits
+- **Test thoroughly** - Use `just test` before commits
+- **Monitor performance** - Use `just health` regularly
+- **Document changes** - Update documentation as you build
+
+### Security
+- **Change default secrets** - Use secure SESSION_SECRET and JWT_SECRET
+- **Use HTTPS in production** - Enable TLS feature
+- **Keep dependencies updated** - Regular `just update`
+- **Monitor security** - Use `just security-audit`
+
+## 🎊 You're Ready!
+
+Your[Rustelo](/) application is now running successfully! You have:
+
+- ✅ **A working web application** with authentication
+- ✅ **A development environment** with hot reload
+- ✅ **A documentation system** for reference
+- ✅ **Database connectivity** for data persistence
+- ✅ **API endpoints** for frontend-backend communication
+- ✅ **All tools configured** for productive development
+
+**Time to start building something amazing!** 🚀
+
+---
+
+**Next:** Continue with [Building Your First App](./first-app.md) to create a complete application, or explore [Configuration](./configuration.md) to customize your setup.
+
+Happy coding! 🦀✨
diff --git a/book/getting-started/installation.md b/book/getting-started/installation.md
new file mode 100644
index 0000000..22a004f
--- /dev/null
+++ b/book/getting-started/installation.md
@@ -0,0 +1,544 @@
+# Quick Installation
+
+
+
+
+
+This guide will help you install[Rustelo](/) and set up your development environment quickly and efficiently.
+
+## Prerequisites
+
+Before installing Rustelo, ensure you have the following prerequisites:
+
+### System Requirements
+
+- **Operating System**: Linux, macOS, or Windows (WSL2 recommended for Windows)
+- **Memory**: Minimum 4GB RAM, 8GB+ recommended for comfortable development
+- **Storage**: At least 2GB free space for tools and dependencies
+- **Internet Connection**: Required for downloading dependencies
+
+### Required Tools
+
+#### 1. Rust Programming Language
+
+Rustelo requires Rust 1.70.0 or later.
+
+**Install Rust using rustup:**
+
+```bash
+# Install rustup (Rust installer and version manager)
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+
+# Follow the on-screen instructions, then restart your shell or run:
+source ~/.cargo/env
+
+# Verify installation
+rustc --version # Should be 1.70.0 or later
+cargo --version
+```
+
+**Update existing Rust installation:**
+
+```bash
+rustup update
+```
+
+#### 2. Node.js and npm (for frontend assets)
+
+Node.js 18.0.0 or later is required for building frontend assets.
+
+**Option 1: Using Node Version Manager (recommended)**
+
+```bash
+# Install nvm (Linux/macOS)
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
+
+# Restart your shell or run:
+source ~/.bashrc
+
+# Install and use Node.js 18
+nvm install 18
+nvm use 18
+
+# Option 2: Direct installation
+# Visit https://nodejs.org/ and download LTS version
+
+# Verify installation
+node --version # Should be 18.0.0 or later
+npm --version
+```
+
+#### 3. Git
+
+Git is required for version control and dependency management.
+
+**Linux (Ubuntu/Debian):**
+```bash
+sudo apt update
+sudo apt install git
+```
+
+**Linux (RHEL/CentOS/Fedora):**
+```bash
+sudo dnf install git
+# or for older versions: sudo yum install git
+```
+
+**macOS:**
+```bash
+# Using Homebrew
+brew install git
+
+# Or download from https://git-scm.com/download/mac
+```
+
+**Windows:**
+```bash
+# Download from https://git-scm.com/download/win
+
+# Verify installation
+git --version
+```
+
+### Recommended Tools
+
+#### 1. cargo-leptos
+
+Essential for building Leptos applications:
+
+```bash
+cargo install cargo-leptos
+
+# Verify installation
+cargo leptos --version
+```
+
+#### 2. SQLx CLI
+
+For database migrations and management:
+
+```bash
+cargo install sqlx-cli --features postgres,sqlite
+
+# Verify installation
+sqlx --version
+```
+
+#### 3. Just (command runner)
+
+Optional but recommended for task automation:
+
+```bash
+cargo install just
+
+# Verify installation
+just --version
+```
+
+#### 4. mdBook (for documentation)
+
+If you plan to work with documentation:
+
+```bash
+cargo install mdbook
+
+# Verify installation
+mdbook --version
+```
+
+## Installation Methods
+
+### Method 1: Clone from Repository (Recommended for Development)
+
+This method gives you the complete[Rustelo](/) template with all features:
+
+```bash
+# Clone the repository
+git clone https://github.com/yourusername/rustelo.git
+cd rustelo
+
+# Copy the template to your project
+cp -r template my-rustelo-app
+cd my-rustelo-app
+
+# Install dependencies
+cargo build
+
+# Install npm dependencies for frontend
+npm install
+```
+
+### Method 2: Use as Template
+
+Create a new repository using Rustelo as a template:
+
+1. Go to the[Rustelo](/) repository on GitHub
+2. Click "Use this template"
+3. Create your new repository
+4. Clone your new repository:
+
+```bash
+git clone https://github.com/yourusername/your-new-app.git
+cd your-new-app
+
+# Install dependencies
+cargo build
+npm install
+```
+
+### Method 3: Download and Extract
+
+Download the latest release:
+
+```bash
+# Download the latest release
+curl -L https://github.com/yourusername/rustelo/archive/main.zip -o rustelo.zip
+
+# Extract
+unzip rustelo.zip
+cd rustelo-main/template
+
+# Install dependencies
+cargo build
+npm install
+```
+
+## Database Setup
+
+Rustelo supports both SQLite and PostgreSQL. Choose based on your needs:
+
+### Option 1: SQLite (Recommended for Development)
+
+SQLite requires no additional setup and is perfect for development:
+
+```bash
+# Set database URL (optional, SQLite is the default)
+export DATABASE_URL="sqlite//:database.db"
+```
+
+### Option 2: PostgreSQL (Recommended for Production)
+
+#### Option 2a: Using Docker (Easiest)
+
+```bash
+# Start PostgreSQL container
+docker run -d \
+ --name rustelo-postgres \
+ -e POSTGRES_PASSWORD=password \
+ -e POSTGRES_DB=rustelo \
+ -p 5432:5432 \
+ postgres:15
+
+# Set database URL
+export DATABASE_URL="postgresql://postgres:password@localhost:5432/rustelo"
+```
+
+#### Option 2b: Native Installation
+
+**Ubuntu/Debian:**
+```bash
+sudo apt update
+sudo apt install postgresql postgresql-contrib
+sudo systemctl start postgresql
+sudo systemctl enable postgresql
+
+# Create database
+sudo -u postgres createdb rustelo
+sudo -u postgres psql -c "CREATE USER rustelo WITH PASSWORD 'password';"
+sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE rustelo TO rustelo;"
+```
+
+**macOS:**
+```bash
+# Using Homebrew
+brew install postgresql
+brew services start postgresql
+
+# Create database
+createdb rustelo
+psql rustelo -c "CREATE USER rustelo WITH PASSWORD 'password';"
+psql rustelo -c "GRANT ALL PRIVILEGES ON DATABASE rustelo TO rustelo;"
+```
+
+**Windows:**
+```bash
+# Download and install from https://www.postgresql.org/download/windows/
+# Follow the installation wizard
+# Use pgAdmin or command line to create database
+```
+
+## Environment Configuration
+
+### 1. Create Environment File
+
+Create a `.env` file in your project root:
+
+```bash
+cat > .env << EOF
+# Database configuration
+DATABASE_URL=sqlite//:database.db
+
+# Security secrets (change these!)
+SESSION_SECRET=your-session-secret-here
+JWT_SECRET=your-jwt-secret-here
+
+# Application settings
+RUSTELO_ENV=development
+RUSTELO_LOG_LEVEL=debug
+
+# Optional: Email configuration (if using email features)
+# SMTP_HOST=smtp.gmail.com
+# SMTP_USERNAME=your-email@gmail.com
+# SMTP_PASSWORD=your-app-password
+# FROM_EMAIL=noreply@yourapp.com
+EOF
+```
+
+### 2. Generate Secure Secrets
+
+For production or if you want secure development secrets:
+
+```bash
+# Generate session secret
+openssl rand -base64 32
+
+# Generate JWT secret
+openssl rand -base64 32
+
+# Update your .env file with these values
+```
+
+### 3. Build Configuration
+
+Generate your application configuration:
+
+```bash
+# Build development configuration
+./config/scripts/build-config.sh dev
+
+# This creates config.toml with all your settings
+```
+
+## Verify Installation
+
+### 1. Check Dependencies
+
+```bash
+# Check Rust
+rustc --version
+cargo --version
+
+# Check Node.js
+node --version
+npm --version
+
+# Check Git
+git --version
+
+# Check optional tools
+cargo leptos --version
+sqlx --version
+just --version
+```
+
+### 2. Build Project
+
+```bash
+# Build the project
+cargo build
+
+# Build frontend assets
+npm run build
+
+# Or use leptos build command
+cargo leptos build
+```
+
+### 3. Run Tests
+
+```bash
+# Run Rust tests
+cargo test
+
+# Run with all features
+cargo test --all-features
+```
+
+### 4. Start Development Server
+
+```bash
+# Load environment variables
+source .env
+
+# Start development server
+cargo leptos watch
+
+# Or use just if available
+just dev
+```
+
+Your application should now be running at `http://localhost:3030`!
+
+## Post-Installation Setup
+
+### 1. Database Migrations
+
+If using a SQL database, run initial migrations:
+
+```bash
+# Create initial migration (if not exists)
+sqlx migrate add initial
+
+# Run migrations
+sqlx migrate run
+```
+
+### 2. Create Admin User (Optional)
+
+Some applications may need an initial admin user:
+
+```bash
+# This depends on your application setup
+cargo run --bin create-admin-user
+```
+
+### 3. Configure Features
+
+Enable the features you need by editing your configuration:
+
+```bash
+# Edit configuration
+./config/scripts/build-config.sh dev
+
+# Enable specific features in config/features/
+```
+
+## Development Environment Setup
+
+### 1. IDE Configuration
+
+**VS Code (Recommended):**
+
+Install recommended extensions:
+- rust-analyzer
+- Leptos Language Server
+- TOML Language Support
+- SQLx Language Server
+
+**Other IDEs:**
+- IntelliJ IDEA with Rust plugin
+- Neovim with rust-analyzer
+- Emacs with rust-mode
+
+### 2. Git Configuration
+
+Set up Git hooks and configuration:
+
+```bash
+# Configure git (if not already done)
+git config --global user.name "Your Name"
+git config --global user.email "your.email@example.com"
+
+# Set up pre-commit hooks (optional)
+cargo install pre-commit
+pre-commit install
+```
+
+### 3. Development Tools
+
+Install additional development tools:
+
+```bash
+# Code formatting
+rustup component add rustfmt
+
+# Linting
+rustup component add clippy
+
+# Documentation
+cargo install cargo-doc
+
+# Watch for changes
+cargo install cargo-watch
+```
+
+## Troubleshooting
+
+### Common Installation Issues
+
+#### Rust Installation Problems
+
+```bash
+# If rustup installation fails
+curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path
+
+# Add to PATH manually
+echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
+source ~/.bashrc
+```
+
+#### cargo-leptos Installation Issues
+
+```bash
+# If cargo-leptos fails to install
+cargo install cargo-leptos --force
+
+# Or install specific version
+cargo install cargo-leptos --version 0.2.1
+```
+
+#### Database Connection Issues
+
+```bash
+# Test SQLite
+sqlite3 database.db ".tables"
+
+# Test PostgreSQL
+psql $DATABASE_URL -c "SELECT version();"
+```
+
+#### Permission Issues (Linux/macOS)
+
+```bash
+# If you get permission errors
+sudo chown -R $USER:$USER ~/.cargo
+chmod -R u+rw ~/.cargo
+```
+
+### Performance Issues
+
+If compilation is slow:
+
+```bash
+# Use faster linker (Linux)
+sudo apt install lld
+export RUSTFLAGS="-C link-arg=-fuse-ld=lld"
+
+# Use faster linker (macOS)
+export RUSTFLAGS="-C link-arg=-fuse-ld=/usr/bin/ld"
+
+# Increase parallel compilation
+export CARGO_BUILD_JOBS=4
+```
+
+### Getting Help
+
+If you encounter issues:
+
+1. **Check system requirements** - Ensure you meet all prerequisites
+2. **Update tools** - Make sure Rust and other tools are up to date
+3. **Check logs** - Look at error messages carefully
+4. **Search documentation** - Check the troubleshooting guide
+5. **Community support** - Ask questions in forums or chat
+6. **GitHub issues** - Report bugs on the repository
+
+## Next Steps
+
+After successful installation:
+
+1. **[Basic Configuration](./configuration.md)** - Configure your application settings
+2. **[First Run & Setup](./first-run.md)** - Get your application running
+3. **[Development Workflow](../developers/setup/workflow.md)** - Learn the development process
+4. **[Project Structure](../developers/setup/structure.md)** - Understand the codebase organization
+
+Congratulations! You now have[Rustelo](/) installed and ready for development. 🎉
diff --git a/book/getting-started/quick-start.md b/book/getting-started/quick-start.md
new file mode 100644
index 0000000..94f58b5
--- /dev/null
+++ b/book/getting-started/quick-start.md
@@ -0,0 +1,374 @@
+# Quick Start
+
+
+
+
+
+Get up and running with[Rustelo](/) in just a few minutes! This guide will help you create your first[Rustelo](/) application with minimal setup.
+
+## Prerequisites
+
+Before you begin, ensure you have the following installed:
+
+- **Rust** (1.75 or later) - [Install Rust](https://rustup.rs/)
+- **Node.js** (18 or later) - [Install Node.js](https://nodejs.org/)
+- **Git** - [Install Git](https://git-scm.com/)
+
+Optional but recommended:
+- **Docker** - For database setup and deployment
+- **cargo-leptos** - For enhanced development experience
+
+## 30-Second Setup
+
+### 1. Clone the Template
+
+```bash
+git clone https://github.com/yourusername/rustelo.git my-app
+cd my-app
+```
+
+### 2. Run the Interactive Setup
+
+```bash
+./scripts/configure-features.sh
+```
+
+This interactive script will:
+- Help you choose which features to enable
+- Set up your environment configuration
+- Install necessary dependencies
+- Initialize your database (if needed)
+
+### 3. Start Development Server
+
+```bash
+cargo run
+```
+
+Your application will be available at `http://localhost:3030`
+
+## Manual Setup
+
+If you prefer to configure everything manually:
+
+### 1. Choose Your Features
+
+Rustelo uses a modular feature system. Choose the combination that fits your needs:
+
+```bash
+# Minimal static website
+cargo build --no-default-features
+
+# Static website with HTTPS
+cargo build --no-default-features --features "tls"
+
+# Authentication-enabled app
+cargo build --no-default-features --features "auth"
+
+# Full-featured application (default)
+cargo build --features "auth,content-db,email"
+```
+
+### 2. Configure Environment
+
+Create a `.env` file in your project root:
+
+```bash
+# Basic configuration
+SERVER_HOST=127.0.0.1
+SERVER_PORT=3030
+SERVER_PROTOCOL=http
+ENVIRONMENT=DEV
+LOG_LEVEL=info
+
+# Database (if using auth or content-db features)
+DATABASE_URL=sqlite//:database.db
+
+# JWT (if using auth feature)
+JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
+JWT_EXPIRATION_HOURS=24
+```
+
+### 3. Start the Application
+
+```bash
+cargo run
+```
+
+## First Steps
+
+Once your application is running, you can:
+
+### Access Your Application
+- **Frontend**: `http://localhost:3030`
+- **Health Check**: `http://localhost:3030/api/health`
+
+### Explore the Structure
+```
+my-app/
+├── client/ # Frontend Leptos components
+├── server/ # Backend Axum server
+├── shared/ # Shared types and utilities
+├── content/ # Static content files
+├── docs/ # Documentation
+├── migrations/ # Database migrations
+└── scripts/ # Helper scripts
+```
+
+### Try Different Configurations
+
+#### Static Website
+```bash
+# Stop the current server (Ctrl+C)
+cargo run --no-default-features
+```
+Perfect for: Marketing sites, documentation, landing pages
+
+#### Authentication-Enabled
+```bash
+# Requires database setup
+cargo run --features "auth"
+```
+Perfect for: User portals, SaaS applications
+
+#### Content Management
+```bash
+# Requires database setup
+cargo run --features "content-db"
+```
+Perfect for: Blogs, news sites, CMS
+
+## Common First Tasks
+
+### 1. Customize the Homepage
+
+Edit `client/src/pages/home.rs`:
+
+```rust
+#[component]
+pub fn HomePage() -> impl IntoView {
+ view! {
+
+
+
+
"Welcome to My App"
+
"Your awesome application built with Rustelo"
+
+
+
+ }
+}
+```
+
+### 2. Add a New Page
+
+Create `client/src/pages/about.rs`:
+
+```rust
+use leptos::*;
+
+#[component]
+pub fn AboutPage() -> impl IntoView {
+ view! {
+
+
"About Us"
+
"This is our awesome application!"
+
+ }
+}
+```
+
+Add it to the router in `client/src/app.rs`:
+
+```rust
+
+```
+
+### 3. Add Authentication (Optional)
+
+If you enabled the `auth` feature, you can add login/register forms:
+
+```rust
+use leptos::*;
+use shared::auth::*;
+
+#[component]
+pub fn LoginPage() -> impl IntoView {
+ let (email, set_email) = create_signal(String::new());
+ let (password, set_password) = create_signal(String::new());
+
+ let login_action = create_action(|credentials: &LoginRequest| {
+ let credentials = credentials.clone();
+ async move {
+ // Login logic here
+ }
+ });
+
+ view! {
+
+
+
"Login"
+
+
+ "Email"
+
+
+
+
+
+ "Password"
+
+
+
+
+
+ "Login"
+
+
+
+
+ }
+}
+```
+
+## Database Setup (Optional)
+
+If you're using features that require a database (`auth` or `content-db`):
+
+### SQLite (Recommended for development)
+```bash
+# Already configured with DATABASE_URL=sqlite:database.db
+# The database file will be created automatically
+```
+
+### PostgreSQL (Recommended for production)
+```bash
+# Start PostgreSQL with Docker
+docker run -d \
+ --name postgres \
+ -e POSTGRES_PASSWORD=password \
+ -e POSTGRES_DB=rustelo \
+ -p 5432:5432 \
+ postgres:15
+
+# Update your .env file
+DATABASE_URL=postgresql://postgres:password@localhost:5432/rustelo
+```
+
+### Run Migrations
+```bash
+# Install sqlx-cli if not already installed
+cargo install sqlx-cli
+
+# Run migrations
+sqlx migrate run
+```
+
+## Development Tips
+
+### Hot Reloading
+For the best development experience, use `cargo-leptos`:
+
+```bash
+# Install cargo-leptos
+cargo install cargo-leptos
+
+# Start with hot reloading
+cargo leptos serve
+```
+
+### Database Inspection
+```bash
+# SQLite
+sqlite3 database.db ".tables"
+
+# PostgreSQL
+psql postgresql://postgres:password@localhost:5432/rustelo -c "\dt"
+```
+
+### Logs and Debugging
+```bash
+# Verbose logging
+LOG_LEVEL=debug cargo run
+
+# Trace level (very verbose)
+LOG_LEVEL=trace cargo run
+```
+
+## Next Steps
+
+Now that you have[Rustelo](/) running, here are some suggested next steps:
+
+1. **[Learn about Features](../features/overview.md)** - Understand what each feature provides
+2. **[Project Structure](../development/structure.md)** - Get familiar with the codebase
+3. **[Configuration](../configuration/environment.md)** - Configure your application
+4. **[Database Setup](../database/overview.md)** - Set up your database properly
+5. **[Deployment](../deployment/overview.md)** - Deploy your application
+
+## Troubleshooting
+
+### Common Issues
+
+**Port already in use:**
+```bash
+# Change the port in .env
+SERVER_PORT=3031
+```
+
+**Database connection error:**
+```bash
+# Check if PostgreSQL is running
+docker ps
+
+# Or use SQLite instead
+DATABASE_URL=sqlite//:database.db
+```
+
+**Build errors:**
+```bash
+# Clean build
+cargo clean && cargo build
+
+# Update dependencies
+cargo update
+```
+
+**Permission denied on scripts:**
+```bash
+chmod +x scripts/configure-features.sh
+```
+
+### Getting Help
+
+- **Documentation**: Check the relevant sections in this book
+- **Examples**: Look at the `examples/` directory
+- **Issues**: Search or create an issue on GitHub
+- **Community**: Join our discussions
+
+## What's Next?
+
+Congratulations! You now have a working[Rustelo](/) application. Here are some recommended next steps:
+
+- **Customize the UI**: Modify the frontend components to match your design
+- **Add Business Logic**: Implement your application's core functionality
+- **Set Up Database**: Configure your preferred database system
+- **Add Authentication**: Enable user management if needed
+- **Deploy**: Get your application ready for production
+
+Ready to dive deeper? Continue with the [Installation](./installation.md) guide for more detailed setup instructions.
diff --git a/book/getting-started/what-is-rustelo.md b/book/getting-started/what-is-rustelo.md
new file mode 100644
index 0000000..98b2a04
--- /dev/null
+++ b/book/getting-started/what-is-rustelo.md
@@ -0,0 +1,299 @@
+# What is Rustelo?
+
+
+
+
+
+Rustelo is a modern, high-performance web application framework built with Rust that combines the best of both worlds: the safety and speed of systems programming with the flexibility and ease of web development.
+
+## The Rustelo Philosophy
+
+### Built for the Modern Web
+Rustelo was designed from the ground up to address the challenges of modern web development:
+
+- **Performance First** - Every component is optimized for speed and efficiency
+- **Security by Default** - Built-in protections against common web vulnerabilities
+- **Developer Experience** - Tools and patterns that make development enjoyable
+- **Production Ready** - Tested and proven in real-world applications
+
+### Why Rust for Web Development?
+
+Traditional web frameworks often force you to choose between performance and safety.[Rustelo](/) breaks this false dichotomy by leveraging Rust's unique advantages:
+
+#### Memory Safety Without Garbage Collection
+```rust
+// No null pointer exceptions
+// No buffer overflows
+// No memory leaks
+// No data races
+```
+
+#### Zero-Cost Abstractions
+```rust
+// High-level code that compiles to fast machine code
+async fn handle_request(req: Request) -> Response {
+ let user = authenticate(&req).await?;
+ let content = fetch_content(&user).await?;
+ render_response(content)
+}
+```
+
+#### Fearless Concurrency
+```rust
+// Handle thousands of concurrent users safely
+#[tokio::main]
+async fn main() {
+ let app = create_app().await;
+ let listener = tokio::net::TcpListener::bind("0.0.0.0:3030").await?;
+ axum::serve(listener, app).await?;
+}
+```
+
+## Core Architecture
+
+### Frontend: Reactive and Fast
+Rustelo uses **Leptos** for the frontend, providing:
+- **Server-Side Rendering (SSR)** - Fast initial page loads
+- **Client-Side Hydration** - Interactive user experience
+- **Reactive Components** - Efficient updates and state management
+- **WebAssembly** - Near-native performance in the browser
+
+### Backend: Robust and Scalable
+The backend is powered by **Axum**, offering:
+- **Async-First Design** - Handle many concurrent requests
+- **Type-Safe Routing** - Catch errors at compile time
+- **Middleware System** - Composable request/response processing
+- **Tower Integration** - Rich ecosystem of networking components
+
+### Database: Flexible and Reliable
+Database integration through **SQLx** provides:
+- **Compile-Time SQL Checking** - Catch database errors before deployment
+- **Multiple Database Support** - PostgreSQL, SQLite, and more
+- **Connection Pooling** - Efficient resource management
+- **Migration System** - Version-controlled schema changes
+
+## Feature Ecosystem
+
+### Modular by Design
+Rustelo uses Rust's feature flags to create a modular system:
+
+```toml
+[features]
+default = ["auth", "content-db", "email"]
+
+# Core features
+auth = ["jsonwebtoken", "argon2", "oauth2"]
+content-db = ["pulldown-cmark", "syntect", "sqlx"]
+email = ["lettre", "handlebars"]
+tls = ["rustls", "axum-server/tls"]
+```
+
+This means you only compile and include what you actually use.
+
+### Available Modules
+
+#### 🔐 Authentication Module
+- JWT token-based authentication
+- OAuth2 integration (Google, GitHub, etc.)
+- Two-factor authentication (TOTP)
+- Session management
+- Role-based access control (RBAC)
+
+#### 📝 Content Management Module
+- Markdown rendering with syntax highlighting
+- Rich text editing interface
+- Media file management
+- Content versioning
+- SEO optimization tools
+
+#### 📧 Email Module
+- Multiple email providers (SMTP, SendGrid, AWS SES)
+- HTML and text templates
+- Contact forms
+- Email verification workflows
+- Newsletter capabilities
+
+#### 🔒 Security Module
+- HTTPS/TLS encryption
+- CSRF protection
+- Rate limiting
+- Security headers
+- Input validation and sanitization
+
+## Real-World Benefits
+
+### For End Users
+- **Fast Loading** - Pages load quickly and stay responsive
+- **Secure** - Your data is protected by industry best practices
+- **Reliable** - Applications stay up and running
+- **Mobile-Friendly** - Works perfectly on all devices
+
+### For Developers
+- **Productive** - Rich tooling and clear error messages
+- **Maintainable** - Type safety prevents many bugs
+- **Scalable** - Performance that grows with your users
+- **Enjoyable** - Modern development experience
+
+### For Businesses
+- **Cost-Effective** - Lower server costs due to efficiency
+- **Secure** - Reduced risk of data breaches
+- **Fast Time-to-Market** - Rapid development cycles
+- **Future-Proof** - Built on growing, stable technology
+
+## Comparison with Other Frameworks
+
+### vs. Node.js Frameworks
+| Aspect | Rustelo | Node.js |
+|--------|---------|---------|
+| Performance | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
+| Memory Safety | ⭐⭐⭐⭐⭐ | ⭐⭐ |
+| Type Safety | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
+| Ecosystem | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
+| Learning Curve | ⭐⭐⭐ | ⭐⭐⭐⭐ |
+
+### vs. Python Frameworks
+| Aspect | Rustelo | Django/Flask |
+|--------|---------|-------------|
+| Performance | ⭐⭐⭐⭐⭐ | ⭐⭐ |
+| Concurrency | ⭐⭐⭐⭐⭐ | ⭐⭐ |
+| Type Safety | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
+| Development Speed | ⭐⭐⭐ | ⭐⭐⭐⭐ |
+| Runtime Errors | ⭐⭐⭐⭐⭐ | ⭐⭐ |
+
+### vs. Go Frameworks
+| Aspect | Rustelo | Go |
+|--------|---------|-----|
+| Performance | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
+| Memory Safety | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
+| Frontend Integration | ⭐⭐⭐⭐⭐ | ⭐⭐ |
+| Compile Time | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
+| Error Handling | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
+
+## When to Choose Rustelo
+
+### Perfect For:
+- **High-Performance Applications** - When speed matters
+- **Security-Critical Systems** - When safety is paramount
+- **Long-Term Projects** - When maintainability is key
+- **Growing Applications** - When you need to scale
+- **Modern Development Teams** - When you want the latest tools
+
+### Consider Alternatives If:
+- **Rapid Prototyping** - When you need something in hours, not days
+- **Large Existing Ecosystem** - When you need tons of third-party packages
+- **Team Constraints** - When your team isn't ready for Rust
+- **Simple CRUD Apps** - When basic functionality is sufficient
+
+## Success Stories
+
+### Performance Gains
+> "We migrated our API from Node.js to[Rustelo](/) and saw a 10x improvement in response times while reducing server costs by 60%."
+>
+> — *Tech Lead at Growing SaaS Company*
+
+### Developer Experience
+> "The type safety caught so many bugs before they reached production. Our deployment confidence went through the roof."
+>
+> — *Senior Developer at Fintech Startup*
+
+### Scalability
+> "Rustelo handled our traffic spike during a viral campaign without any issues. The old system would have crashed."
+>
+> — *CTO at Media Company*
+
+## The Technology Stack
+
+### Frontend Technologies
+- **Leptos** - Reactive web framework
+- **WebAssembly** - High-performance client code
+- **Tailwind CSS** - Utility-first styling
+- **DaisyUI** - Beautiful components
+
+### Backend Technologies
+- **Axum** - Fast, ergonomic web server
+- **Tokio** - Async runtime
+- **Tower** - Modular networking
+- **SQLx** - Type-safe database queries
+
+### Infrastructure
+- **Docker** - Containerized deployment
+- **PostgreSQL/SQLite** - Flexible database options
+- **Nginx** - Reverse proxy and load balancing
+- **Let's Encrypt** - Automatic SSL certificates
+
+## Getting Started Journey
+
+### For Different User Types
+
+#### Content Creators & Bloggers
+1. **[Installation](./installation.md)** - Get Rustelo running
+2. **[User Interface](../users/interface.md)** - Learn the admin panel
+3. **[Content Publishing](../users/content.md)** - Create your first post
+4. **[Customization](../users/profile.md)** - Make it yours
+
+#### Developers & Teams
+1. **[Development Setup](../developers/setup/environment.md)** - Configure your tools
+2. **[Architecture Overview](../developers/architecture/overview.md)** - Understand the system
+3. **[First Feature](../developers/features/adding-features.md)** - Build something
+4. **[Testing](../developers/testing/strategy.md)** - Ensure quality
+
+#### System Administrators
+1. **[Production Installation](../deployment/production.md)** - Deploy securely
+2. **[Configuration](../configuration/environment.md)** - Optimize settings
+3. **[Monitoring](../deployment/monitoring.md)** - Keep it healthy
+4. **[Backup Strategy](../deployment/backup.md)** - Protect your data
+
+## Community and Ecosystem
+
+### Open Source Benefits
+- **Transparency** - You can see exactly how everything works
+- **Security** - Many eyes make bugs shallow
+- **Flexibility** - Modify anything to fit your needs
+- **Longevity** - Not dependent on any single company
+
+### Growing Ecosystem
+- **Active Development** - Regular updates and improvements
+- **Community Plugins** - Extensions built by users
+- **Documentation** - Comprehensive guides and examples
+- **Support** - Multiple channels for getting help
+
+### Contributing Opportunities
+- **Code Contributions** - Features, bug fixes, optimizations
+- **Documentation** - Guides, tutorials, translations
+- **Testing** - Quality assurance and feedback
+- **Community** - Help other users succeed
+
+## The Future of Rustelo
+
+### Roadmap Highlights
+- **Performance Optimizations** - Even faster response times
+- **Enhanced Developer Tools** - Better debugging and profiling
+- **More Integrations** - Additional third-party services
+- **Mobile-First Features** - Progressive Web App capabilities
+- **AI/ML Integration** - Modern AI-powered features
+
+### Long-Term Vision
+Rustelo aims to be the go-to framework for building high-performance, secure web applications that can grow from prototype to enterprise scale while maintaining developer productivity and system reliability.
+
+## Next Steps
+
+Ready to experience Rustelo? Here's what to do next:
+
+### Try It Out
+- **[Quick Installation](./installation.md)** - Get running in minutes
+- **[Live Demo](https://demo.rustelo.dev)** - See it in action
+- **[Example Applications](https://github.com/rustelo/examples)** - Real-world code
+
+### Learn More
+- **[Architecture Deep Dive](../developers/architecture/overview.md)** - Technical details
+- **[Feature Comparison](../reference/features.md)** - What's included
+- **[Performance Benchmarks](../performance/overview.md)** - How fast is it?
+
+### Get Involved
+- **[Community Forum](https://forum.rustelo.dev)** - Join the discussion
+- **[GitHub Repository](https://github.com/rustelo/rustelo)** - See the code
+- **[Contributing Guide](../contributing/guidelines.md)** - Help improve Rustelo
+
+---
+
+*Rustelo represents the future of web development: safe, fast, and enjoyable. Join us in building better web applications with the power of Rust.* 🦀⚡
diff --git a/book/glossary.md b/book/glossary.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/introduction.md b/book/introduction.md
new file mode 100644
index 0000000..442490b
--- /dev/null
+++ b/book/introduction.md
@@ -0,0 +1,244 @@
+
+
+
+
+# Welcome to [Rustelo](/)
+
+**[Rustelo](/)** is a modern, secure web application framework built with Rust that provides everything you need to create powerful web applications. Whether you're an end user looking to understand how to use a Rustelo application, or a developer wanting to build with the framework, this comprehensive guide has you covered.
+
+## What is Rustelo?
+
+[Rustelo](/) combines the performance and safety of Rust with modern web development patterns to create a framework that is:
+
+- **🚀 Fast** - Built on Rust's zero-cost abstractions
+- **🔒 Secure** - Security-first design with built-in protections
+- **📦 Modular** - Choose only the features you need
+- **🌐 Modern** - Reactive frontend with server-side rendering
+- **🔧 Developer-Friendly** - Excellent tooling and documentation
+
+## Two Guides in One
+
+This documentation serves two distinct audiences:
+
+### 📚 For End Users
+If you're using a Rustelo application (blog, CMS, web portal, etc.), the **"For End Users"** sections will teach you:
+
+- How to navigate and use the interface
+- How to create and manage content
+- How to customize your profile and settings
+- How to use security features like 2FA
+- How to troubleshoot common issues
+
+### 🔧 For Developers
+If you're building applications with Rustelo or contributing to the framework, the **"For Developers"** sections cover:
+
+- Setting up your development environment
+- Understanding the architecture and design patterns
+- Adding new features and functionality
+- Testing strategies and best practices
+- Deployment and production considerations
+
+## Key Technologies
+
+Rustelo is built on a modern technology stack:
+
+### Frontend
+- **[Leptos](https://leptos.dev/)** - Reactive web framework with SSR and hydration
+- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first styling
+- **[DaisyUI](https://daisyui.com/)** - Beautiful component library
+- **WebAssembly** - High-performance client-side code
+
+### Backend
+- **[Axum](https://github.com/tokio-rs/axum)** - Ergonomic async web framework
+- **[Tokio](https://tokio.rs/)** - Async runtime for high concurrency
+- **[SQLx](https://github.com/launchbadge/sqlx)** - Compile-time checked SQL queries
+- **[Serde](https://serde.rs/)** - Powerful serialization framework
+
+### Database Support
+- **PostgreSQL** - Full-featured production database
+- **SQLite** - Lightweight development and small-scale deployment
+- **Automatic detection** - Works with both seamlessly
+
+## Core Features
+
+### 🔐 Authentication & Security
+- **JWT-based authentication** with secure token handling
+- **OAuth2 integration** for Google, GitHub, and other providers
+- **Two-factor authentication (2FA)** with TOTP support
+- **Role-based access control** for fine-grained permissions
+- **CSRF protection** and security headers built-in
+
+### 📝 Content Management
+- **Rich text editor** with markdown support
+- **Media management** for images, videos, and documents
+- **Content organization** with categories and tags
+- **SEO optimization** with meta tags and structured data
+- **Version control** and draft/publish workflows
+
+### 📧 Communication
+- **Email system** with multiple provider support (SMTP, SendGrid, AWS SES)
+- **Template-based emails** with HTML and text versions
+- **Notification system** for user alerts and updates
+- **Contact forms** with spam protection
+- **Real-time messaging** capabilities
+
+### 🛡️ Enterprise Security
+- **HTTPS/TLS encryption** for all communications
+- **Rate limiting** to prevent abuse
+- **Input validation** and sanitization
+- **Audit logging** for compliance
+- **Data encryption** at rest and in transit
+
+## Use Cases
+
+### For Content Creators
+Perfect for bloggers, writers, and content teams who need:
+- Professional publishing platform
+- Rich content editing capabilities
+- SEO and analytics tools
+- User engagement features
+
+### For Businesses
+Ideal for companies that need:
+- Customer portals and dashboards
+- Content management systems
+- User authentication and profiles
+- Secure document sharing
+
+### For Developers
+Excellent for teams building:
+- SaaS applications
+- E-commerce platforms
+- Social applications
+- API services
+- Custom web applications
+
+### For Educational Institutions
+Great for schools and universities needing:
+- Student/faculty portals
+- Course management systems
+- Research collaboration tools
+- Secure communication platforms
+
+## Getting Started
+
+### 🚀 For End Users
+If you're new to using Rustelo applications:
+
+1. **[What is Rustelo?](./getting-started/what-is-rustelo.md)** - Learn the basics
+2. **[User Interface Guide](./users/interface.md)** - Navigate the interface
+3. **[Authentication](./users/authentication.md)** - Set up your account
+4. **[Content Publishing](./users/content.md)** - Create your first content
+
+### 🔧 For Developers
+If you're building with Rustelo:
+
+1. **[Development Environment](./developers/setup/environment.md)** - Set up your tools
+2. **[Project Structure](./developers/setup/structure.md)** - Understand the codebase
+3. **[System Overview](./developers/architecture/overview.md)** - Learn the architecture
+4. **[Adding Features](./developers/features/adding-features.md)** - Build functionality
+
+### ⚙️ For System Administrators
+If you're deploying and managing Rustelo:
+
+1. **[Installation](./getting-started/installation.md)** - Install and configure
+2. **[Configuration](./configuration/environment.md)** - Environment setup
+3. **[Production Deployment](./deployment/production.md)** - Go live securely
+4. **[Monitoring](./deployment/monitoring.md)** - Keep it running smoothly
+
+## Why Choose Rustelo?
+
+### Performance
+- **Blazing fast** - Rust's performance with modern web optimizations
+- **Low memory usage** - Efficient resource utilization
+- **Concurrent** - Handle thousands of users simultaneously
+- **Scalable** - Grows with your needs
+
+### Security
+- **Memory safe** - Rust prevents entire classes of vulnerabilities
+- **Security by default** - Best practices built into the framework
+- **Regular updates** - Active security maintenance
+- **Compliance ready** - Meet industry standards
+
+### Developer Experience
+- **Type safety** - Catch errors at compile time
+- **Excellent tooling** - Rich ecosystem and development tools
+- **Hot reloading** - Fast development iteration
+- **Clear documentation** - Comprehensive guides and examples
+
+### Production Ready
+- **Battle tested** - Used in production by growing companies
+- **Reliable** - Robust error handling and recovery
+- **Observable** - Built-in metrics, logging, and monitoring
+- **Maintainable** - Clean architecture and code organization
+
+## Community and Support
+
+### Getting Help
+- **📖 Documentation** - Comprehensive guides for all skill levels
+- **💬 Community Forum** - Connect with other users and developers
+- **🐛 Issue Tracker** - Report bugs and request features
+- **📧 Professional Support** - Available for enterprise customers
+
+### Contributing
+- **🔧 Code Contributions** - Help improve the framework
+- **📝 Documentation** - Improve guides and tutorials
+- **🧪 Testing** - Help ensure quality and reliability
+- **🌍 Translation** - Make Rustelo accessible worldwide
+
+### Resources
+- **[GitHub Repository](https://github.com/rustelo/rustelo)** - Source code and development
+- **[API Documentation](https://docs.rs/rustelo)** - Generated API reference
+- **[Example Applications](https://github.com/rustelo/examples)** - Real-world examples
+- **[Blog](https://rustelo.dev/blog)** - Updates and tutorials
+
+## System Requirements
+
+### Minimum Requirements
+- **CPU**: 2 cores, 2.0 GHz
+- **RAM**: 4 GB
+- **Storage**: 20 GB available space
+- **OS**: Linux, macOS, or Windows
+- **Database**: SQLite (included) or PostgreSQL
+
+### Recommended for Production
+- **CPU**: 4+ cores, 3.0+ GHz
+- **RAM**: 8+ GB
+- **Storage**: 100+ GB SSD
+- **OS**: Linux (Ubuntu 20.04+ or CentOS 8+)
+- **Database**: PostgreSQL 13+
+- **Reverse Proxy**: Nginx or Apache
+
+## What's in This Guide
+
+This documentation is organized into clear sections:
+
+### Essential Information
+- **Getting Started** - Installation, setup, and first steps
+- **For End Users** - Using Rustelo applications effectively
+- **For Developers** - Building and extending Rustelo applications
+
+### Technical References
+- **Configuration** - Environment and system configuration
+- **API Reference** - Complete API documentation
+- **Security** - Security features and best practices
+- **Performance** - Optimization and scaling guidance
+
+### Support Resources
+- **Troubleshooting** - Solutions to common issues
+- **Contributing** - How to participate in development
+- **Reference** - Quick lookup for configurations and commands
+
+## Quick Navigation
+
+**New Users?** Start with [What is Rustelo?](./getting-started/what-is-rustelo.md)
+
+**Want to try it?** Go to [Installation](./getting-started/installation.md)
+
+**Ready to develop?** Begin with [Development Setup](./developers/setup/environment.md)
+
+**Need help?** Check [Troubleshooting](./troubleshooting/common.md)
+
+---
+
+*Welcome to the Rustelo community! Whether you're here to use, build, or contribute, we're excited to have you join us in creating the future of web applications with Rust.* 🦀✨
\ No newline at end of file
diff --git a/book/logos/rustelo-imag.svg b/book/logos/rustelo-imag.svg
new file mode 100644
index 0000000..c22850d
--- /dev/null
+++ b/book/logos/rustelo-imag.svg
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/book/logos/rustelo-image.ascii b/book/logos/rustelo-image.ascii
new file mode 100644
index 0000000..e69de29
diff --git a/book/logos/rustelo_dev-logo-b-h.svg b/book/logos/rustelo_dev-logo-b-h.svg
new file mode 100644
index 0000000..13dc0d5
--- /dev/null
+++ b/book/logos/rustelo_dev-logo-b-h.svg
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rustelo
+ dev
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/book/logos/rustelo_dev-logo-b-v.svg b/book/logos/rustelo_dev-logo-b-v.svg
new file mode 100644
index 0000000..070bca2
--- /dev/null
+++ b/book/logos/rustelo_dev-logo-b-v.svg
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dev
+ Rustelo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/book/logos/rustelo_dev-logo-h.svg b/book/logos/rustelo_dev-logo-h.svg
new file mode 100644
index 0000000..5576400
--- /dev/null
+++ b/book/logos/rustelo_dev-logo-h.svg
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rustelo
+ dev
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/book/logos/rustelo_dev-logo-v.svg b/book/logos/rustelo_dev-logo-v.svg
new file mode 100644
index 0000000..65c3822
--- /dev/null
+++ b/book/logos/rustelo_dev-logo-v.svg
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dev
+ Rustelo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/book/n b/book/n
new file mode 100644
index 0000000..9c4cf54
--- /dev/null
+++ b/book/n
@@ -0,0 +1,3 @@
+Add file upload capabilities** for media management?
+**Enhance the dashboard** with content analytics?
+**Show how to configure** the content sources (DB vs Files vs Both)?
diff --git a/book/performance/caching.md b/book/performance/caching.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/performance/database.md b/book/performance/database.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/performance/frontend.md b/book/performance/frontend.md
new file mode 100644
index 0000000..6b71e7e
--- /dev/null
+++ b/book/performance/frontend.md
@@ -0,0 +1 @@
+# Frontend Optimization
diff --git a/book/performance/memory.md b/book/performance/memory.md
new file mode 100644
index 0000000..7327319
--- /dev/null
+++ b/book/performance/memory.md
@@ -0,0 +1 @@
+# Memory Management
diff --git a/book/performance/monitoring.md b/book/performance/monitoring.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/performance/optimization.md b/book/performance/optimization.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/performance/overview.md b/book/performance/overview.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/reference/cli.md b/book/reference/cli.md
new file mode 100644
index 0000000..79aafc4
--- /dev/null
+++ b/book/reference/cli.md
@@ -0,0 +1 @@
+# CLI Commands
diff --git a/book/reference/config-migration.md b/book/reference/config-migration.md
new file mode 100644
index 0000000..68cf0e0
--- /dev/null
+++ b/book/reference/config-migration.md
@@ -0,0 +1,67 @@
+# Configuration Migration Guide
+
+This guide covers how to migrate configurations between different versions of Rustelo.
+
+## Overview
+
+Configuration migrations may be necessary when:
+- Upgrading to a new version of Rustelo
+- Changing configuration structure
+- Adding or removing features
+- Moving between environments
+
+## Migration Process
+
+### 1. Backup Current Configuration
+
+Always backup your current configuration before migrating:
+
+```bash
+./config/scripts/manage-config.sh backup prod
+```
+
+### 2. Review Changes
+
+Check the changelog for configuration changes in the new version.
+
+### 3. Update Configuration
+
+Update your configuration files according to the migration instructions.
+
+### 4. Validate Configuration
+
+Validate the new configuration:
+
+```bash
+./config/scripts/manage-config.sh validate prod
+```
+
+### 5. Test Migration
+
+Test the migration in a staging environment before production.
+
+## Version-Specific Migrations
+
+### v1.0.0 to v1.1.0
+
+No breaking changes in configuration format.
+
+### Future Versions
+
+Migration instructions will be added here as new versions are released.
+
+## Troubleshooting
+
+If you encounter issues during migration:
+
+1. Check the configuration validation output
+2. Review the error logs
+3. Consult the troubleshooting guide
+4. Restore from backup if necessary
+
+## Getting Help
+
+For migration assistance:
+- Check the documentation
+- Review the FAQ
+- Contact support
\ No newline at end of file
diff --git a/book/reference/config.md b/book/reference/config.md
new file mode 100644
index 0000000..a1dd211
--- /dev/null
+++ b/book/reference/config.md
@@ -0,0 +1 @@
+# Configuration Options
diff --git a/book/reference/env-migration.md b/book/reference/env-migration.md
new file mode 100644
index 0000000..fb8a51b
--- /dev/null
+++ b/book/reference/env-migration.md
@@ -0,0 +1,308 @@
+# Environment Variable Migration Guide
+
+This guide covers how to migrate environment variables between different versions of Rustelo and different deployment environments.
+
+## Overview
+
+Environment variable migrations may be necessary when:
+- Upgrading to a new version of Rustelo
+- Moving between deployment environments (dev → staging → production)
+- Changing configuration structure
+- Adding or removing features
+- Updating security requirements
+
+## Migration Process
+
+### 1. Audit Current Environment Variables
+
+First, document your current environment variables:
+
+```bash
+# List all Rustelo-related environment variables
+env | grep -E "(RUSTELO|DATABASE|SMTP|JWT|SESSION)" > current_env.txt
+```
+
+### 2. Compare with New Requirements
+
+Review the environment variable documentation for the target version:
+- [Environment Variables Guide](../configuration/environment.md)
+- Version-specific release notes
+- Feature documentation
+
+### 3. Create Migration Plan
+
+Document the changes needed:
+- Variables to add
+- Variables to update
+- Variables to remove
+- Variables to rename
+
+### 4. Update Environment Variables
+
+Update your environment configuration:
+
+```bash
+# Development
+cp .env.development .env.development.backup
+# Update .env.development with new variables
+
+# Production
+# Update environment variables in your deployment system
+```
+
+### 5. Validate Configuration
+
+Test the new environment variables:
+
+```bash
+# Validate configuration loading
+./rustelo-server --check-config
+
+# Test specific features
+./rustelo-server --test-feature auth
+./rustelo-server --test-feature email
+```
+
+## Common Migration Scenarios
+
+### Adding New Features
+
+When enabling new features, you may need to add:
+
+```bash
+# Email feature
+SMTP_HOST=smtp.gmail.com
+SMTP_USERNAME=your-app@gmail.com
+SMTP_PASSWORD=your-app-password
+FROM_EMAIL=noreply@yourapp.com
+
+# Metrics feature
+PROMETHEUS_ENDPOINT=/metrics
+GRAFANA_URL=https://grafana.yourapp.com
+
+# TLS feature
+TLS_CERT_FILE=/etc/ssl/certs/yourapp.crt
+TLS_KEY_FILE=/etc/ssl/private/yourapp.key
+```
+
+### Security Updates
+
+Security updates may require new secrets:
+
+```bash
+# New encryption key
+ENCRYPTION_KEY=your-base64-encoded-key
+
+# Updated JWT configuration
+JWT_SECRET=your-new-jwt-secret
+JWT_ALGORITHM=HS256
+
+# Enhanced session security
+SESSION_SECRET=your-new-session-secret
+CSRF_SECRET=your-csrf-secret
+```
+
+### Database Migrations
+
+Database configuration updates:
+
+```bash
+# Connection pool updates
+DATABASE_MAX_CONNECTIONS=20
+DATABASE_SSL_MODE=require
+
+# New database features
+DATABASE_QUERY_TIMEOUT=30000
+DATABASE_PREPARED_STATEMENT_CACHE_SIZE=256
+```
+
+## Environment-Specific Considerations
+
+### Development Environment
+
+Development environments typically require:
+- Relaxed security settings
+- Local service URLs
+- Debug-friendly configuration
+
+```bash
+RUSTELO_ENV=development
+RUSTELO_DEBUG=true
+DATABASE_URL=sqlite//:dev_database.db
+SMTP_HOST=localhost
+SMTP_PORT=1025
+```
+
+### Staging Environment
+
+Staging environments should mirror production:
+- Production-like security
+- Test service configurations
+- Monitoring enabled
+
+```bash
+RUSTELO_ENV=staging
+DATABASE_URL=postgresql://user:pass@staging-db:5432/app
+FRONTEND_URL=https://staging.yourapp.com
+```
+
+### Production Environment
+
+Production environments require:
+- Maximum security
+- Performance optimization
+- Full monitoring
+
+```bash
+RUSTELO_ENV=production
+DATABASE_URL=postgresql://user:pass@prod-db:5432/app
+FRONTEND_URL=https://yourapp.com
+TLS_ENABLED=true
+```
+
+## Rollback Procedures
+
+### Environment Variable Rollback
+
+If migration fails, rollback environment variables:
+
+```bash
+# Restore from backup
+cp .env.production.backup .env.production
+
+# Or restore specific variables
+export DATABASE_URL="previous-database-url"
+export SESSION_SECRET="previous-session-secret"
+```
+
+### Configuration Rollback
+
+Rollback to previous configuration:
+
+```bash
+# Restore configuration from backup
+./config/scripts/manage-config.sh restore backup_file.toml
+
+# Rebuild configuration
+./config/scripts/build-config.sh prod config.prod.toml
+```
+
+## Validation and Testing
+
+### Environment Variable Validation
+
+Validate environment variables:
+
+```bash
+# Check required variables are set
+./scripts/check-env.sh production
+
+# Validate variable formats
+./scripts/validate-env.sh production
+```
+
+### Integration Testing
+
+Test the complete system:
+
+```bash
+# Run integration tests
+cargo test --features integration
+
+# Test specific components
+cargo test auth_tests
+cargo test email_tests
+cargo test database_tests
+```
+
+## Version-Specific Migrations
+
+### v1.0.0 to v1.1.0
+
+No breaking changes in environment variables.
+
+### v1.1.0 to v1.2.0 (Planned)
+
+Potential changes:
+- New security-related variables
+- Enhanced monitoring variables
+- Performance tuning variables
+
+## Best Practices
+
+### Secret Management
+
+- Use secure secret management systems
+- Rotate secrets regularly
+- Never commit secrets to version control
+- Use different secrets for each environment
+
+### Documentation
+
+- Document all environment variables
+- Maintain migration logs
+- Update deployment documentation
+- Train team members on new variables
+
+### Testing
+
+- Test migrations in staging first
+- Validate all features after migration
+- Monitor application health
+- Have rollback plans ready
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Missing Environment Variables**
+ ```bash
+ # Check for missing variables
+ ./scripts/check-env.sh production
+ ```
+
+2. **Invalid Variable Formats**
+ ```bash
+ # Validate variable formats
+ echo $DATABASE_URL | grep -E "^postgresql://"
+ ```
+
+3. **Permission Issues**
+ ```bash
+ # Check file permissions for certificates
+ ls -la /etc/ssl/certs/yourapp.crt
+ ```
+
+### Debug Commands
+
+```bash
+# Show loaded environment variables
+./rustelo-server --show-env
+
+# Test configuration loading
+./rustelo-server --check-config
+
+# Validate specific features
+./rustelo-server --validate-feature auth
+```
+
+## Getting Help
+
+For environment variable migration assistance:
+- Review the [Environment Variables Guide](../configuration/environment.md)
+- Check the [Troubleshooting Guide](../troubleshooting/common.md)
+- Consult the community forums
+- Contact technical support
+
+## Migration Checklist
+
+- [ ] Backup current environment variables
+- [ ] Review new requirements
+- [ ] Create migration plan
+- [ ] Update development environment
+- [ ] Test in staging environment
+- [ ] Validate all features
+- [ ] Update production environment
+- [ ] Monitor application health
+- [ ] Update documentation
+- [ ] Train team members
diff --git a/book/reference/env-vars.md b/book/reference/env-vars.md
new file mode 100644
index 0000000..1d535f2
--- /dev/null
+++ b/book/reference/env-vars.md
@@ -0,0 +1 @@
+# Environment Variables
diff --git a/book/reference/error-codes.md b/book/reference/error-codes.md
new file mode 100644
index 0000000..19ad908
--- /dev/null
+++ b/book/reference/error-codes.md
@@ -0,0 +1 @@
+# Error Codes
diff --git a/book/reference/faq.md b/book/reference/faq.md
new file mode 100644
index 0000000..4514b4c
--- /dev/null
+++ b/book/reference/faq.md
@@ -0,0 +1 @@
+# FAQ
diff --git a/book/reference/feature-migration.md b/book/reference/feature-migration.md
new file mode 100644
index 0000000..4743f69
--- /dev/null
+++ b/book/reference/feature-migration.md
@@ -0,0 +1,473 @@
+# Feature Migration Guide
+
+This guide covers how to migrate features between different versions of Rustelo and how to add or remove features from your configuration.
+
+## Overview
+
+Feature migrations may be necessary when:
+- Upgrading to a new version of Rustelo
+- Adding new features to your application
+- Removing unused features
+- Changing feature configurations
+- Moving between environments with different feature sets
+
+## Migration Process
+
+### 1. Backup Current Configuration
+
+Always backup your current configuration before migrating:
+
+```bash
+./config/scripts/manage-config.sh backup prod
+./config/scripts/manage-config.sh backup dev
+```
+
+### 2. Assess Current Features
+
+List currently enabled features:
+
+```bash
+./config/scripts/debug-manage.sh list-features
+./config/scripts/debug-manage.sh status
+```
+
+### 3. Plan Feature Changes
+
+Document the changes needed:
+- Features to enable
+- Features to disable
+- Feature configurations to update
+- Dependencies to consider
+
+### 4. Update Feature Configurations
+
+Update individual feature configurations as needed.
+
+### 5. Rebuild Configurations
+
+Rebuild configurations for all environments:
+
+```bash
+./config/scripts/build-config.sh dev
+./config/scripts/build-config.sh prod config.prod.toml
+./config/scripts/build-config.sh example config.example.toml
+```
+
+### 6. Validate Changes
+
+Validate the new configuration:
+
+```bash
+./config/scripts/debug-manage.sh test
+```
+
+## Feature Dependencies
+
+Some features depend on others. The system handles these dependencies automatically:
+
+### Core Dependencies
+- **RBAC** requires **Authentication**
+- **Content Management** requires **Authentication**
+- **Advanced Email** may require **Authentication** for user-specific templates
+
+### Optional Dependencies
+- **Metrics** can integrate with any enabled feature
+- **TLS** enhances security for all features
+- **Caching** can improve performance for any feature
+
+## Adding New Features
+
+### Step 1: Create Feature Configuration
+
+Use the template command to create a new feature:
+
+```bash
+./config/scripts/debug-manage.sh template my_new_feature
+```
+
+This creates:
+- `config/features/my_new_feature/dev.toml`
+- `config/features/my_new_feature/prod.toml`
+- `config/features/my_new_feature/example.toml`
+- `config/features/my_new_feature/README.md`
+
+### Step 2: Configure Feature Settings
+
+Edit each environment file with appropriate settings:
+
+```toml
+# config/features/my_new_feature/dev.toml
+[features]
+my_new_feature = true
+
+[my_new_feature]
+enabled = true
+debug_mode = true
+# Development-specific settings
+```
+
+```toml
+# config/features/my_new_feature/prod.toml
+[features]
+my_new_feature = true
+
+[my_new_feature]
+enabled = true
+debug_mode = false
+# Production-specific settings
+```
+
+### Step 3: Update Documentation
+
+Document your new feature:
+- Update feature README
+- Add to main documentation
+- Update migration guides
+
+### Step 4: Test Feature
+
+Test the feature in all environments:
+
+```bash
+# Test development
+./config/scripts/build-config.sh dev config.test.toml
+# Test production
+./config/scripts/build-config.sh prod config.test-prod.toml
+```
+
+## Removing Features
+
+### Step 1: Assess Dependencies
+
+Check if other features depend on the feature you want to remove:
+
+```bash
+# Review feature dependencies in documentation
+grep -r "my_feature" config/features/
+```
+
+### Step 2: Disable Feature
+
+Set the feature to disabled in all environments:
+
+```toml
+[features]
+my_feature = false
+
+[my_feature]
+enabled = false
+```
+
+### Step 3: Remove Configuration Files (Optional)
+
+If permanently removing:
+
+```bash
+rm -rf config/features/my_feature/
+```
+
+### Step 4: Update Dependencies
+
+Update any features that depended on the removed feature.
+
+## Feature Configuration Updates
+
+### Updating Existing Features
+
+When updating feature configurations:
+
+1. **Review Changes**: Understand what's changing and why
+2. **Update Gradually**: Start with development, then staging, then production
+3. **Test Thoroughly**: Ensure the feature still works as expected
+4. **Monitor Impact**: Watch for performance or functionality changes
+
+### Example: Updating Authentication Feature
+
+```toml
+# Before
+[auth.password]
+min_length = 8
+require_special_chars = false
+
+# After
+[auth.password]
+min_length = 12
+require_special_chars = true
+require_uppercase = true
+require_lowercase = true
+```
+
+## Environment-Specific Feature Management
+
+### Development Environment
+
+Development typically enables more features for testing:
+
+```toml
+[features]
+auth = true
+content = true
+email = true
+metrics = true
+tls = false # Not needed in development
+rbac = true # For testing
+cache = true
+debug_features = true # Development-only features
+```
+
+### Production Environment
+
+Production focuses on essential, stable features:
+
+```toml
+[features]
+auth = true
+content = true
+email = true
+metrics = true
+tls = true # Required for production
+rbac = true
+cache = true
+debug_features = false # Disabled in production
+```
+
+## Feature Flag Management
+
+### Runtime Feature Flags
+
+Some features can be toggled at runtime:
+
+```toml
+[feature_flags]
+auth_enabled = true
+content_enabled = true
+email_enabled = true
+metrics_enabled = true
+```
+
+### Conditional Features
+
+Features can be conditionally enabled:
+
+```toml
+[feature_flags.conditional]
+oauth_enabled = false # Enable OAuth (requires auth)
+two_factor_enabled = true # Enable 2FA (requires auth)
+file_uploads_enabled = true # Enable file uploads (requires content)
+```
+
+## Migration Scripts
+
+### Automated Feature Migration
+
+Create scripts for common migrations:
+
+```bash
+#!/bin/bash
+# migrate-to-v2.sh
+
+# Update authentication feature
+sed -i 's/min_length = 8/min_length = 12/' config/features/auth/*.toml
+
+# Enable new security features
+echo "csrf_protection = true" >> config/features/auth/prod.toml
+
+# Rebuild configurations
+./config/scripts/build-config.sh prod config.prod.toml
+```
+
+### Feature Validation Script
+
+```bash
+#!/bin/bash
+# validate-features.sh
+
+echo "Validating feature configurations..."
+
+for env in dev prod example; do
+ echo "Testing $env environment..."
+ if ./config/scripts/build-config.sh "$env" "test_$env.toml"; then
+ echo "✓ $env configuration valid"
+ rm "test_$env.toml"
+ else
+ echo "✗ $env configuration invalid"
+ exit 1
+ fi
+done
+
+echo "All feature configurations valid!"
+```
+
+## Rollback Procedures
+
+### Feature Rollback
+
+If a feature migration fails:
+
+1. **Disable the Feature**:
+ ```toml
+ [features]
+ problematic_feature = false
+ ```
+
+2. **Restore Previous Configuration**:
+ ```bash
+ ./config/scripts/manage-config.sh restore backup_file.toml
+ ```
+
+3. **Rebuild and Deploy**:
+ ```bash
+ ./config/scripts/build-config.sh prod config.prod.toml
+ ```
+
+### Partial Rollback
+
+Roll back specific feature settings:
+
+```bash
+# Restore specific feature from backup
+cp backup/features/auth/prod.toml config/features/auth/prod.toml
+
+# Rebuild configuration
+./config/scripts/build-config.sh prod config.prod.toml
+```
+
+## Testing Feature Migrations
+
+### Unit Testing
+
+Test individual feature configurations:
+
+```bash
+# Test feature configuration loading
+cargo test feature_config_tests
+
+# Test feature initialization
+cargo test feature_init_tests
+```
+
+### Integration Testing
+
+Test feature interactions:
+
+```bash
+# Test feature dependencies
+cargo test feature_dependency_tests
+
+# Test feature combinations
+cargo test feature_integration_tests
+```
+
+### End-to-End Testing
+
+Test complete feature workflows:
+
+```bash
+# Test authentication flow
+cargo test auth_e2e_tests
+
+# Test content management flow
+cargo test content_e2e_tests
+```
+
+## Monitoring Feature Changes
+
+### Feature Usage Metrics
+
+Monitor feature usage after migration:
+
+```toml
+[metrics.features]
+track_feature_usage = true
+track_feature_performance = true
+track_feature_errors = true
+```
+
+### Health Checks
+
+Add health checks for new features:
+
+```toml
+[health.features]
+check_auth_status = true
+check_email_connectivity = true
+check_database_features = true
+```
+
+## Best Practices
+
+### Planning
+- Always plan feature changes in advance
+- Consider impact on users and system performance
+- Test changes in non-production environments first
+
+### Documentation
+- Document all feature changes
+- Update user guides and API documentation
+- Maintain feature compatibility matrices
+
+### Communication
+- Communicate feature changes to stakeholders
+- Provide migration guides for users
+- Announce deprecations well in advance
+
+### Monitoring
+- Monitor feature performance after changes
+- Track error rates and user feedback
+- Be prepared to rollback if necessary
+
+## Troubleshooting
+
+### Common Issues
+
+1. **Feature Dependencies Not Met**
+ ```bash
+ # Check feature dependencies
+ grep -r "requires.*auth" config/features/
+ ```
+
+2. **Configuration Conflicts**
+ ```bash
+ # Validate configuration
+ ./config/scripts/debug-manage.sh test
+ ```
+
+3. **Feature Not Loading**
+ ```bash
+ # Check feature flag
+ grep "my_feature.*=.*true" config.toml
+ ```
+
+### Debug Commands
+
+```bash
+# List enabled features
+./config/scripts/debug-manage.sh list-features
+
+# Show feature status
+./config/scripts/debug-manage.sh status
+
+# Test specific feature
+./config/scripts/build-config.sh dev --feature=my_feature
+```
+
+## Getting Help
+
+For feature migration assistance:
+- Review the [Features Configuration Guide](../configuration/features.md)
+- Check the [Troubleshooting Guide](../troubleshooting/common.md)
+- Consult feature-specific documentation
+- Contact technical support
+
+## Migration Checklist
+
+- [ ] Backup current configurations
+- [ ] Document planned changes
+- [ ] Check feature dependencies
+- [ ] Update feature configurations
+- [ ] Test in development environment
+- [ ] Validate in staging environment
+- [ ] Deploy to production
+- [ ] Monitor feature performance
+- [ ] Update documentation
+- [ ] Train team on changes
\ No newline at end of file
diff --git a/book/reference/features.md b/book/reference/features.md
new file mode 100644
index 0000000..c7ebb59
--- /dev/null
+++ b/book/reference/features.md
@@ -0,0 +1 @@
+# Feature Matrix
diff --git a/book/reference/requirements.md b/book/reference/requirements.md
new file mode 100644
index 0000000..1049473
--- /dev/null
+++ b/book/reference/requirements.md
@@ -0,0 +1 @@
+# System Requirements
diff --git a/book/reference/schema.md b/book/reference/schema.md
new file mode 100644
index 0000000..aa1a789
--- /dev/null
+++ b/book/reference/schema.md
@@ -0,0 +1 @@
+# Database Schema
diff --git a/book/theme/custom.css b/book/theme/custom.css
new file mode 100644
index 0000000..5cbb373
--- /dev/null
+++ b/book/theme/custom.css
@@ -0,0 +1,226 @@
+/* Rustelo Documentation Custom Styles */
+
+:root {
+ --rustelo-primary: #e53e3e;
+ --rustelo-secondary: #3182ce;
+ --rustelo-accent: #38a169;
+ --rustelo-dark: #2d3748;
+ --rustelo-light: #f7fafc;
+}
+
+/* Logo styling */
+.rustelo-logo {
+ max-width: 100%;
+ height: auto;
+ display: block;
+ margin: 0 auto;
+}
+
+.rustelo-logo-header {
+ max-width: 400px;
+ height: auto;
+ display: block;
+ margin: 2rem auto;
+}
+
+.rustelo-logo-small {
+ max-width: 200px;
+ height: auto;
+ display: block;
+ margin: 1rem auto;
+}
+
+/* Header logo integration */
+.menu-title img {
+ height: 32px;
+ width: auto;
+ vertical-align: middle;
+ margin-right: 0.5rem;
+}
+
+/* Responsive logo sizing */
+@media (max-width: 768px) {
+ .rustelo-logo-header {
+ max-width: 280px;
+ margin: 1.5rem auto;
+ }
+
+ .rustelo-logo-small {
+ max-width: 150px;
+ margin: 0.75rem auto;
+ }
+
+ .menu-title img {
+ height: 24px;
+ }
+}
+
+/* Custom header styling */
+.menu-title {
+ color: var(--rustelo-primary);
+ font-weight: bold;
+}
+
+/* Code block improvements */
+pre {
+ border-radius: 8px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+}
+
+/* Improved table styling */
+table {
+ border-collapse: collapse;
+ width: 100%;
+ margin: 1rem 0;
+}
+
+table th,
+table td {
+ border: 1px solid #e2e8f0;
+ padding: 0.75rem;
+ text-align: left;
+}
+
+table th {
+ background-color: var(--rustelo-light);
+ font-weight: 600;
+}
+
+table tr:nth-child(even) {
+ background-color: #f8f9fa;
+}
+
+/* Feature badge styling */
+.feature-badge {
+ display: inline-block;
+ padding: 0.25rem 0.5rem;
+ border-radius: 0.25rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ margin: 0.125rem;
+}
+
+.feature-badge.enabled {
+ background-color: #c6f6d5;
+ color: #22543d;
+}
+
+.feature-badge.disabled {
+ background-color: #fed7d7;
+ color: #742a2a;
+}
+
+.feature-badge.optional {
+ background-color: #fef5e7;
+ color: #744210;
+}
+
+/* Callout boxes */
+.callout {
+ padding: 1rem;
+ margin: 1rem 0;
+ border-left: 4px solid;
+ border-radius: 0 4px 4px 0;
+}
+
+.callout.note {
+ border-left-color: var(--rustelo-secondary);
+ background-color: #ebf8ff;
+}
+
+.callout.warning {
+ border-left-color: #ed8936;
+ background-color: #fffaf0;
+}
+
+.callout.tip {
+ border-left-color: var(--rustelo-accent);
+ background-color: #f0fff4;
+}
+
+.callout.danger {
+ border-left-color: var(--rustelo-primary);
+ background-color: #fff5f5;
+}
+
+/* Command line styling */
+.command-line {
+ background-color: #1a202c;
+ color: #e2e8f0;
+ padding: 1rem;
+ border-radius: 8px;
+ font-family: "JetBrains Mono", "Fira Code", monospace;
+ margin: 1rem 0;
+}
+
+.command-line::before {
+ content: "$ ";
+ color: #48bb78;
+ font-weight: bold;
+}
+
+/* Navigation improvements */
+.chapter li.part-title {
+ color: var(--rustelo-primary);
+ font-weight: bold;
+ margin-top: 1rem;
+}
+
+/* Search improvements */
+#searchresults mark {
+ background-color: #fef5e7;
+ color: #744210;
+}
+
+/* Mobile improvements */
+@media (max-width: 768px) {
+ .content {
+ padding: 1rem;
+ }
+
+ table {
+ font-size: 0.875rem;
+ }
+
+ .command-line {
+ font-size: 0.8rem;
+ padding: 0.75rem;
+ }
+}
+
+/* Dark theme overrides */
+.navy .callout.note {
+ background-color: #1e3a8a;
+}
+
+.navy .callout.warning {
+ background-color: #92400e;
+}
+
+.navy .callout.tip {
+ background-color: #14532d;
+}
+
+.navy .callout.danger {
+ background-color: #991b1b;
+}
+
+/* Print styles */
+@media print {
+ .nav-wrapper,
+ .page-wrapper > .page > .menu,
+ .mobile-nav-chapters,
+ .nav-chapters,
+ .sidebar-scrollbox {
+ display: none !important;
+ }
+
+ .page-wrapper > .page {
+ left: 0 !important;
+ }
+
+ .content {
+ margin-left: 0 !important;
+ max-width: none !important;
+ }
+}
diff --git a/book/theme/custom.js b/book/theme/custom.js
new file mode 100644
index 0000000..553ba42
--- /dev/null
+++ b/book/theme/custom.js
@@ -0,0 +1,136 @@
+// Rustelo Documentation Custom JavaScript
+
+// Add copy buttons to code blocks
+document.addEventListener("DOMContentLoaded", function () {
+ // Add copy buttons to code blocks
+ const codeBlocks = document.querySelectorAll("pre > code");
+ codeBlocks.forEach(function (codeBlock) {
+ const pre = codeBlock.parentElement;
+ const button = document.createElement("button");
+ button.className = "copy-button";
+ button.textContent = "Copy";
+ button.style.cssText = `
+ position: absolute;
+ top: 8px;
+ right: 8px;
+ background: #4a5568;
+ color: white;
+ border: none;
+ padding: 4px 8px;
+ border-radius: 4px;
+ font-size: 12px;
+ cursor: pointer;
+ opacity: 0;
+ transition: opacity 0.2s;
+ `;
+
+ pre.style.position = "relative";
+ pre.appendChild(button);
+
+ pre.addEventListener("mouseenter", function () {
+ button.style.opacity = "1";
+ });
+
+ pre.addEventListener("mouseleave", function () {
+ button.style.opacity = "0";
+ });
+
+ button.addEventListener("click", function () {
+ const text = codeBlock.textContent;
+ navigator.clipboard.writeText(text).then(function () {
+ button.textContent = "Copied!";
+ button.style.background = "#48bb78";
+ setTimeout(function () {
+ button.textContent = "Copy";
+ button.style.background = "#4a5568";
+ }, 2000);
+ });
+ });
+ });
+
+ // Add feature badges
+ const content = document.querySelector(".content");
+ if (content) {
+ let html = content.innerHTML;
+
+ // Replace feature indicators
+ html = html.replace(
+ /\[FEATURE:([^\]]+)\]/g,
+ '$1 ',
+ );
+ html = html.replace(
+ /\[OPTIONAL:([^\]]+)\]/g,
+ '$1 ',
+ );
+ html = html.replace(
+ /\[DISABLED:([^\]]+)\]/g,
+ '$1 ',
+ );
+
+ // Add callout boxes
+ html = html.replace(
+ /\[NOTE\]([\s\S]*?)\[\/NOTE\]/g,
+ '$1
',
+ );
+ html = html.replace(
+ /\[WARNING\]([\s\S]*?)\[\/WARNING\]/g,
+ '$1
',
+ );
+ html = html.replace(
+ /\[TIP\]([\s\S]*?)\[\/TIP\]/g,
+ '$1
',
+ );
+ html = html.replace(
+ /\[DANGER\]([\s\S]*?)\[\/DANGER\]/g,
+ '$1
',
+ );
+
+ content.innerHTML = html;
+ }
+
+ // Add smooth scrolling
+ document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
+ anchor.addEventListener("click", function (e) {
+ e.preventDefault();
+ const target = document.querySelector(this.getAttribute("href"));
+ if (target) {
+ target.scrollIntoView({
+ behavior: "smooth",
+ });
+ }
+ });
+ });
+});
+
+// Add keyboard shortcuts
+document.addEventListener("keydown", function (e) {
+ // Ctrl/Cmd + K to focus search
+ if ((e.ctrlKey || e.metaKey) && e.key === "k") {
+ e.preventDefault();
+ const searchInput = document.querySelector("#searchbar");
+ if (searchInput) {
+ searchInput.focus();
+ }
+ }
+});
+
+// Add version info to footer
+document.addEventListener("DOMContentLoaded", function () {
+ const content = document.querySelector(".content");
+ if (content) {
+ const footer = document.createElement("div");
+ footer.style.cssText = `
+ margin-top: 3rem;
+ padding: 2rem 0;
+ border-top: 1px solid #e2e8f0;
+ text-align: center;
+ font-size: 0.875rem;
+ color: #718096;
+ `;
+ footer.innerHTML = `
+ Built with ❤️ using mdBook
+ Rustelo Documentation • Last updated: ${new Date().toLocaleDateString()}
+ `;
+ content.appendChild(footer);
+ }
+});
diff --git a/book/troubleshooting/auth.md b/book/troubleshooting/auth.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/troubleshooting/build.md b/book/troubleshooting/build.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/troubleshooting/common-issues.md b/book/troubleshooting/common-issues.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/troubleshooting/common.md b/book/troubleshooting/common.md
new file mode 100644
index 0000000..d916a0f
--- /dev/null
+++ b/book/troubleshooting/common.md
@@ -0,0 +1 @@
+# Common Issues
diff --git a/book/troubleshooting/database.md b/book/troubleshooting/database.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/troubleshooting/development.md b/book/troubleshooting/development.md
new file mode 100644
index 0000000..63aba52
--- /dev/null
+++ b/book/troubleshooting/development.md
@@ -0,0 +1 @@
+# Build & Development Issues
diff --git a/book/troubleshooting/installation.md b/book/troubleshooting/installation.md
new file mode 100644
index 0000000..5b1b3bc
--- /dev/null
+++ b/book/troubleshooting/installation.md
@@ -0,0 +1 @@
+# Installation Problems
diff --git a/book/troubleshooting/performance.md b/book/troubleshooting/performance.md
new file mode 100644
index 0000000..20cc088
--- /dev/null
+++ b/book/troubleshooting/performance.md
@@ -0,0 +1 @@
+# Performance Issues
diff --git a/book/troubleshooting/runtime.md b/book/troubleshooting/runtime.md
new file mode 100644
index 0000000..e69de29
diff --git a/book/troubleshooting/support.md b/book/troubleshooting/support.md
new file mode 100644
index 0000000..40c85e0
--- /dev/null
+++ b/book/troubleshooting/support.md
@@ -0,0 +1 @@
+# Getting Help & Support
diff --git a/book/users/admin/README.md b/book/users/admin/README.md
new file mode 100644
index 0000000..e87307a
--- /dev/null
+++ b/book/users/admin/README.md
@@ -0,0 +1,205 @@
+[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md).[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🛡[](../../introduction.md)️[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)Y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📊[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)-[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)👥[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)n[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)B[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📝[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)T[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)-[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)⚙[](../../introduction.md)️[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📈[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)K[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)'[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)h[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔐[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)-[](../../introduction.md)F[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)2[](../../introduction.md)F[](../../introduction.md)A[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🚀[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🛠[](../../introduction.md)️[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)P[](../../introduction.md)I[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)P[](../../introduction.md)I[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)-[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)B[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)/[](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📋[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)H[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)-[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)H[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)E[](../../introduction.md)O[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)H[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🚨[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)k[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)d[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)-[](../../introduction.md)b[](../../introduction.md)y[](../../introduction.md)-[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)-[](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📚[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)P[](../../introduction.md)I[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)V[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)-[](../../introduction.md)b[](../../introduction.md)y[](../../introduction.md)-[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔄[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)K[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)Q[](../../introduction.md)u[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)j[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)💡[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)-[](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)K[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)K[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md)-[](../../introduction.md)-[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)-[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md).[](../../introduction.md)*[](../../introduction.md)
\ No newline at end of file
diff --git a/book/users/admin/content.md b/book/users/admin/content.md
new file mode 100644
index 0000000..5a28b75
--- /dev/null
+++ b/book/users/admin/content.md
@@ -0,0 +1 @@
+# Content Moderation
diff --git a/book/users/admin/dashboard.md b/book/users/admin/dashboard.md
new file mode 100644
index 0000000..5d5274a
--- /dev/null
+++ b/book/users/admin/dashboard.md
@@ -0,0 +1 @@
+# Admin Dashboard
diff --git a/book/users/admin/monitoring.md b/book/users/admin/monitoring.md
new file mode 100644
index 0000000..6a28bf6
--- /dev/null
+++ b/book/users/admin/monitoring.md
@@ -0,0 +1 @@
+# Monitoring & Analytics
diff --git a/book/users/admin/settings.md b/book/users/admin/settings.md
new file mode 100644
index 0000000..37650b2
--- /dev/null
+++ b/book/users/admin/settings.md
@@ -0,0 +1 @@
+# System Settings
diff --git a/book/users/admin/users.md b/book/users/admin/users.md
new file mode 100644
index 0000000..5a22e3d
--- /dev/null
+++ b/book/users/admin/users.md
@@ -0,0 +1 @@
+# User Management
diff --git a/book/users/authentication.md b/book/users/authentication.md
new file mode 100644
index 0000000..e745cef
--- /dev/null
+++ b/book/users/authentication.md
@@ -0,0 +1,648 @@
+# User Registration & Login Guide
+
+
+
+
+
+Welcome to the[Rustelo](/) Authentication Guide! This comprehensive guide will help you create your account, log in securely, and manage your authentication settings.
+
+## 🎯 Overview
+
+Rustelo provides a secure, user-friendly authentication system that protects your account while making it easy to access your content. Whether you're creating a new account or managing an existing one, this guide has you covered.
+
+## 🚀 Getting Started
+
+### Creating Your Account
+
+#### Step 1: Navigate to Registration
+1. Go to the[Rustelo](/) homepage
+2. Click **"Sign Up"** or **"Create Account"**
+3. You'll be taken to the registration page
+
+#### Step 2: Fill Out Registration Form
+
+```
+┌─────────────────────────────────────┐
+│ Create Your Account │
+├─────────────────────────────────────┤
+│ Full Name: [________________] │
+│ Email: [________________] │
+│ Username: [________________] │
+│ Password: [________________] │
+│ Confirm: [________________] │
+│ │
+│ □ I agree to the Terms of Service │
+│ □ Subscribe to newsletter (optional) │
+│ │
+│ [ Create Account ] │
+│ │
+│ Already have an account? Sign in │
+└─────────────────────────────────────┘
+```
+
+#### Registration Fields Explained
+
+**Full Name**
+- Your display name throughout the application
+- Can be changed later in profile settings
+- Used for personalization and greetings
+
+**Email Address**
+- Must be unique and valid
+- Used for login and account recovery
+- Will receive verification email
+
+**Username**
+- Must be unique across all users
+- Used for mentions and public profile URLs
+- Can only contain letters, numbers, and underscores
+- Cannot be changed after registration
+
+**Password**
+- Must meet security requirements
+- At least 8 characters long
+- Include uppercase and lowercase letters
+- Include at least one number
+- Include at least one special character
+
+**Confirm Password**
+- Must match your password exactly
+- Prevents typing errors
+
+#### Step 3: Password Strength Indicator
+
+As you type your password, you'll see a strength indicator:
+
+```
+Password: [weak____strong]
+✗ At least 8 characters
+✗ Contains uppercase letter
+✓ Contains lowercase letter
+✗ Contains number
+✗ Contains special character
+```
+
+**Password Tips:**
+- Use a unique password not used elsewhere
+- Consider using a password manager
+- Avoid common words or personal information
+- Mix letters, numbers, and symbols
+
+#### Step 4: Agree to Terms
+- Read the Terms of Service
+- Check the agreement box
+- Newsletter subscription is optional
+
+#### Step 5: Complete Registration
+1. Click **"Create Account"**
+2. Check your email for verification
+3. Click the verification link
+4. Your account is now active!
+
+### Email Verification
+
+After registration, you'll receive an email like this:
+
+```
+Subject: Verify Your[Rustelo](/) Account
+
+Hello [Your Name],
+
+Welcome to Rustelo! Please click the link below to verify your email address:
+
+[Verify Email Address]
+
+This link expires in 24 hours. If you didn't create this account, please ignore this email.
+
+Thanks,
+The[Rustelo](/) Team
+```
+
+**Important Notes:**
+- Check your spam folder if you don't see the email
+- The verification link expires in 24 hours
+- You can request a new verification email from the login page
+
+## 🔐 Logging In
+
+### Standard Login Process
+
+#### Step 1: Navigate to Login
+1. Go to the[Rustelo](/) homepage
+2. Click **"Sign In"** or **"Login"**
+3. You'll see the login form
+
+#### Step 2: Enter Credentials
+
+```
+┌─────────────────────────────────────┐
+│ Welcome Back │
+├─────────────────────────────────────┤
+│ Email: [________________] │
+│ Password: [________________] │
+│ │
+│ □ Remember me │
+│ │
+│ [ Sign In ] │
+│ │
+│ Forgot password? | Create account │
+└─────────────────────────────────────┘
+```
+
+#### Login Options
+
+**Email/Username**
+- Enter your registered email address
+- Or use your username
+- Case-insensitive
+
+**Password**
+- Enter your account password
+- Case-sensitive
+- Use the exact password you created
+
+**Remember Me**
+- Stay logged in for 30 days
+- Only use on trusted devices
+- Automatically logs you out after inactivity
+
+#### Step 3: Successful Login
+After successful login, you'll be redirected to:
+- Your dashboard (default)
+- The page you were trying to access
+- Your last visited page
+
+### Login Troubleshooting
+
+#### Common Login Issues
+
+**"Invalid credentials" Error**
+- Double-check email and password spelling
+- Try typing instead of copy-pasting
+- Check if Caps Lock is on
+- Ensure you're using the correct email
+
+**"Account not verified" Error**
+- Check your email for verification link
+- Click "Resend verification email"
+- Check spam folder
+- Contact support if still not received
+
+**"Account locked" Error**
+- Too many failed login attempts
+- Account temporarily locked for security
+- Wait 15 minutes and try again
+- Use password reset if needed
+
+**"Login session expired" Error**
+- Your session timed out
+- Click "Sign In" again
+- Enter your credentials
+- Check "Remember me" to stay logged in longer
+
+## 🔑 Password Management
+
+### Forgotten Password Recovery
+
+#### Step 1: Request Password Reset
+1. Go to the login page
+2. Click **"Forgot password?"**
+3. Enter your email address
+4. Click **"Send Reset Link"**
+
+#### Step 2: Check Your Email
+
+```
+Subject: Reset Your[Rustelo](/) Password
+
+Hello [Your Name],
+
+We received a request to reset your password. Click the link below to create a new password:
+
+[Reset Password]
+
+This link expires in 1 hour. If you didn't request this, please ignore this email.
+
+Thanks,
+The[Rustelo](/) Team
+```
+
+#### Step 3: Create New Password
+1. Click the reset link in your email
+2. Enter your new password
+3. Confirm your new password
+4. Click **"Update Password"**
+5. You'll be automatically logged in
+
+### Changing Your Password
+
+#### While Logged In
+1. Go to **Profile** > **Security Settings**
+2. Click **"Change Password"**
+3. Enter current password
+4. Enter new password
+5. Confirm new password
+6. Click **"Update Password"**
+
+#### Password Change Form
+
+```
+┌─────────────────────────────────────┐
+│ Change Password │
+├─────────────────────────────────────┤
+│ Current: [________________] │
+│ New: [________________] │
+│ Confirm: [________________] │
+│ │
+│ Password Strength: [████████░░] 80% │
+│ │
+│ [ Update Password ] │
+└─────────────────────────────────────┘
+```
+
+## 🛡️ Two-Factor Authentication (2FA)
+
+### What is 2FA?
+Two-Factor Authentication adds an extra layer of security by requiring:
+1. Something you know (password)
+2. Something you have (phone/authenticator app)
+
+### Setting Up 2FA
+
+#### Step 1: Enable 2FA
+1. Go to **Profile** > **Security Settings**
+2. Find **"Two-Factor Authentication"**
+3. Click **"Enable 2FA"**
+
+#### Step 2: Choose Authentication Method
+
+**Authenticator App (Recommended)**
+- Google Authenticator
+- Authy
+- Microsoft Authenticator
+- 1Password
+
+**SMS Text Messages**
+- Receive codes via text
+- Requires phone number
+- Less secure than authenticator apps
+
+#### Step 3: Set Up Authenticator App
+1. Download an authenticator app
+2. Scan the QR code with your app
+3. Enter the 6-digit code from your app
+4. Save your backup codes
+5. Click **"Enable 2FA"**
+
+#### Step 4: Save Backup Codes
+```
+Your 2FA Backup Codes
+Save these codes in a safe place!
+
+1. 123456
+2. 789012
+3. 345678
+4. 901234
+5. 567890
+
+Each code can only be used once.
+```
+
+**Important:**
+- Store backup codes securely
+- Each code works only once
+- Use if you lose your phone
+- Generate new codes periodically
+
+### Using 2FA Login
+
+#### With 2FA Enabled
+1. Enter email and password
+2. You'll see the 2FA prompt
+3. Open your authenticator app
+4. Enter the 6-digit code
+5. Click **"Verify"**
+
+```
+┌─────────────────────────────────────┐
+│ Two-Factor Authentication │
+├─────────────────────────────────────┤
+│ Enter the code from your │
+│ authenticator app: │
+│ │
+│ Code: [______] │
+│ │
+│ [ Verify ] │
+│ │
+│ Lost your device? Use backup code │
+└─────────────────────────────────────┘
+```
+
+#### If You Lose Your Device
+1. Click **"Lost your device?"**
+2. Enter one of your backup codes
+3. Click **"Verify"**
+4. Set up 2FA again with new device
+
+### Disabling 2FA
+1. Go to **Profile** > **Security Settings**
+2. Find **"Two-Factor Authentication"**
+3. Click **"Disable 2FA"**
+4. Enter your password to confirm
+5. Enter 2FA code or backup code
+6. Click **"Disable"**
+
+## 📱 Device Management
+
+### Viewing Connected Devices
+
+Go to **Profile** > **Security Settings** > **Connected Devices**
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Connected Devices │
+├─────────────────────────────────────────────────────────────┤
+│ 💻 Chrome on Windows │
+│ Current session • Last used: Now │
+│ IP: 192.168.1.100 • Location: San Francisco, CA │
+│ │
+│ 📱 Safari on iPhone │
+│ Last used: 2 hours ago │
+│ IP: 10.0.0.50 • Location: San Francisco, CA │
+│ [Sign Out] │
+│ │
+│ 💻 Firefox on Mac │
+│ Last used: 3 days ago │
+│ IP: 192.168.1.102 • Location: San Francisco, CA │
+│ [Sign Out] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Managing Devices
+- **Current Session** - The device you're using now
+- **Sign Out** - Remotely log out from other devices
+- **Sign Out All** - Log out from all devices except current
+- **Device Information** - Browser, OS, location, IP address
+
+### Suspicious Activity
+If you see unfamiliar devices:
+1. Click **"Sign Out"** immediately
+2. Change your password
+3. Enable 2FA if not already active
+4. Review recent account activity
+
+## 🔒 Security Best Practices
+
+### Account Security Checklist
+
+#### Strong Authentication
+- [ ] Use a unique, strong password
+- [ ] Enable two-factor authentication
+- [ ] Regularly update your password
+- [ ] Use a password manager
+- [ ] Don't share your credentials
+
+#### Device Security
+- [ ] Log out from public computers
+- [ ] Don't save passwords on shared devices
+- [ ] Use "Remember me" only on trusted devices
+- [ ] Regularly review connected devices
+- [ ] Keep your devices updated
+
+#### Email Security
+- [ ] Use a secure email provider
+- [ ] Enable 2FA on your email account
+- [ ] Don't forward authentication emails
+- [ ] Check email regularly for security notifications
+- [ ] Report suspicious emails
+
+### Recognizing Phishing Attempts
+
+**Red Flags:**
+- Urgent requests for password/login
+- Generic greetings ("Dear User")
+- Suspicious sender addresses
+- Links to unfamiliar domains
+- Spelling and grammar errors
+- Requests for personal information
+
+**Always:**
+- Type the URL directly in your browser
+- Check the sender's email address
+- Hover over links to see destinations
+- Contact support if unsure
+- Report suspicious emails
+
+### Account Recovery Tips
+
+**Prepare for Recovery:**
+- Keep email account secure
+- Save backup codes safely
+- Update recovery information
+- Note down your username
+- Keep contact information current
+
+**If Locked Out:**
+1. Try password reset first
+2. Use backup codes if 2FA enabled
+3. Contact support with account details
+4. Provide proof of identity if required
+
+## 🎯 Profile & Account Settings
+
+### Account Information
+- **Full Name** - Your display name
+- **Email** - Login email (requires verification to change)
+- **Username** - Unique identifier (cannot be changed)
+- **Joined Date** - When you created your account
+- **Last Login** - Your most recent login time
+
+### Privacy Settings
+- **Profile Visibility** - Who can see your profile
+- **Email Visibility** - Show/hide email address
+- **Activity Status** - Show when you're online
+- **Search Visibility** - Allow others to find you
+
+### Notification Preferences
+- **Email Notifications** - Security alerts, updates
+- **Login Notifications** - New device alerts
+- **Security Notifications** - Suspicious activity alerts
+- **Newsletter** - Product updates and news
+
+## 🔍 Login History & Activity
+
+### Viewing Login History
+
+Go to **Profile** > **Security Settings** > **Login History**
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Login History │
+├─────────────────────────────────────────────────────────────┤
+│ ✅ Successful login │
+│ Today at 2:30 PM • Chrome on Windows │
+│ IP: 192.168.1.100 • San Francisco, CA │
+│ │
+│ ✅ Successful login │
+│ Yesterday at 9:15 AM • Safari on iPhone │
+│ IP: 10.0.0.50 • San Francisco, CA │
+│ │
+│ ❌ Failed login attempt │
+│ 2 days ago at 3:45 AM • Unknown browser │
+│ IP: 203.0.113.1 • Unknown location │
+│ │
+│ ✅ Password changed │
+│ 1 week ago at 11:22 AM • Chrome on Windows │
+│ IP: 192.168.1.100 • San Francisco, CA │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Activity Monitoring
+- **Successful Logins** - Normal access to your account
+- **Failed Attempts** - Someone tried to access your account
+- **Password Changes** - When you updated your password
+- **2FA Changes** - When you modified 2FA settings
+- **Device Management** - Adding/removing devices
+
+### Security Alerts
+You'll receive emails for:
+- New device logins
+- Multiple failed login attempts
+- Password changes
+- 2FA modifications
+- Suspicious activity
+
+## 🛠️ Troubleshooting Authentication
+
+### Common Issues & Solutions
+
+#### Email Verification Problems
+**Issue:** Verification email not received
+**Solutions:**
+1. Check spam/junk folders
+2. Add noreply@rustelo.com to contacts
+3. Wait 5-10 minutes for delivery
+4. Request new verification email
+5. Try different email address
+
+#### 2FA Code Issues
+**Issue:** 2FA codes not working
+**Solutions:**
+1. Check device time is correct
+2. Try the next code generated
+3. Use backup codes
+4. Resync authenticator app
+5. Disable and re-enable 2FA
+
+#### Browser-Specific Issues
+**Issue:** Login not working in browser
+**Solutions:**
+1. Clear browser cache and cookies
+2. Disable browser extensions
+3. Try incognito/private mode
+4. Update browser to latest version
+5. Try different browser
+
+#### Mobile Login Issues
+**Issue:** Can't login on mobile
+**Solutions:**
+1. Check internet connection
+2. Update mobile browser
+3. Try desktop site option
+4. Clear browser data
+5. Restart device
+
+### Getting Help
+
+#### Self-Service Options
+- **Password Reset** - Reset forgotten passwords
+- **Resend Verification** - Get new verification email
+- **Backup Codes** - Access with 2FA backup codes
+- **Device Logout** - Remove suspicious devices
+
+#### Contact Support
+If you can't resolve login issues:
+1. Go to the help center
+2. Submit a support ticket
+3. Include your username/email
+4. Describe the problem clearly
+5. Mention steps you've tried
+
+**Support will ask for:**
+- Your username or email
+- Description of the problem
+- Browser and device information
+- Error messages you see
+- Steps you've already tried
+
+## 🎓 Authentication Tips
+
+### For New Users
+1. **Choose a Strong Password** - Use password manager
+2. **Verify Email Quickly** - Check spam folder
+3. **Enable 2FA Early** - Set up before you need it
+4. **Save Backup Codes** - Store them securely
+5. **Complete Profile** - Add recovery information
+
+### For Regular Users
+1. **Review Login History** - Check monthly
+2. **Update Passwords** - Every 3-6 months
+3. **Manage Devices** - Remove old devices
+4. **Monitor Activity** - Watch for suspicious logins
+5. **Keep Email Secure** - Protect your email account
+
+### For Advanced Users
+1. **Use Hardware Keys** - If supported
+2. **Monitor IP Addresses** - Check for unusual locations
+3. **Set Strong Recovery** - Multiple recovery options
+4. **Regular Security Audits** - Monthly reviews
+5. **Stay Informed** - Follow security best practices
+
+## 🚨 Security Incident Response
+
+### If Your Account is Compromised
+
+#### Immediate Actions
+1. **Change Password** - Use different device if possible
+2. **Enable 2FA** - If not already enabled
+3. **Log Out All Devices** - Remove attacker access
+4. **Check Account Activity** - Review recent changes
+5. **Contact Support** - Report the incident
+
+#### Recovery Steps
+1. **Secure Email Account** - Change email password
+2. **Review Account Settings** - Check for unauthorized changes
+3. **Check Connected Apps** - Remove suspicious connections
+4. **Update Recovery Info** - Ensure you control recovery methods
+5. **Monitor Activity** - Watch for continued suspicious activity
+
+### Prevention Tips
+- Never share your login credentials
+- Use strong, unique passwords
+- Enable 2FA on all accounts
+- Keep devices and browsers updated
+- Be cautious on public WiFi
+- Log out from public computers
+
+## 📚 Next Steps
+
+Now that you understand authentication, explore:
+
+1. **[User Interface Guide](./interface.md)** - Navigate the application
+2. **[Profile Management](./profile.md)** - Customize your account
+3. **[Content Management](./content.md)** - Create and manage content
+4. **[Media Management](./media.md)** - Handle files and images
+5. **[Features Overview](./features/)** - Discover all features
+
+## 🎉 Conclusion
+
+Rustelo's authentication system is designed to keep your account secure while making it easy to access your content. By following the practices in this guide, you'll have a secure, well-managed account.
+
+Remember to:
+- Use strong, unique passwords
+- Enable two-factor authentication
+- Regularly review your account activity
+- Keep your recovery information updated
+- Contact support if you need help
+
+**Stay secure and enjoy using Rustelo!** 🔐✨
\ No newline at end of file
diff --git a/book/users/content.md b/book/users/content.md
new file mode 100644
index 0000000..ff588b9
--- /dev/null
+++ b/book/users/content.md
@@ -0,0 +1,814 @@
+# Content Management Guide
+
+
+
+
+
+Welcome to the[Rustelo](/) Content Management Guide! This comprehensive guide will help you create, organize, and manage all types of content on the platform with confidence and efficiency.
+
+## 🎯 Overview
+
+Rustelo's content management system is designed to be intuitive, powerful, and flexible. Whether you're writing blog posts, creating documentation, sharing media, or building complex content structures, this guide will help you master every aspect of content creation and management.
+
+## 📝 Getting Started with Content
+
+### Content Types Available
+
+#### Text Content
+- **Articles**: Long-form written content
+- **Blog Posts**: Personal or professional blog entries
+- **Documentation**: Technical or instructional content
+- **Notes**: Quick thoughts and ideas
+- **Comments**: Responses to other content
+
+#### Rich Media Content
+- **Images**: Photos, graphics, illustrations
+- **Videos**: Uploaded or embedded video content
+- **Audio**: Podcasts, recordings, music
+- **Documents**: PDFs, presentations, spreadsheets
+- **Interactive**: Embedded widgets and tools
+
+#### Structured Content
+- **Pages**: Static pages with custom layouts
+- **Collections**: Organized groups of related content
+- **Galleries**: Image and media collections
+- **Lists**: Curated lists and directories
+- **Forms**: Interactive forms and surveys
+
+### Content Creation Workflow
+
+```
+[💡 Idea] → [📝 Draft] → [👀 Review] → [✅ Publish] → [📊 Analyze]
+```
+
+1. **Ideation**: Brainstorm and plan your content
+2. **Creation**: Write, design, or produce your content
+3. **Review**: Edit, proofread, and refine
+4. **Publication**: Share with your audience
+5. **Analysis**: Track performance and engagement
+
+## ✍️ Creating New Content
+
+### Starting a New Post
+
+#### Quick Create Options
+- **+ Button**: Click the main create button
+- **Keyboard Shortcut**: Press `Ctrl+N` (or `Cmd+N` on Mac)
+- **Dashboard**: Use "Create New" from dashboard
+- **Menu**: Select "New Post" from main menu
+
+#### Content Creation Form
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Create New Content [Save Draft]│
+├─────────────────────────────────────────────────────────────┤
+│ Title: [_______________________________________________] │
+│ │
+│ Content Type: [Article ▼] Status: [Draft ▼] │
+│ │
+│ Tags: [tag1] [tag2] [+ Add Tag] │
+│ │
+│ ┌─────────────────────────────────────────────────────────┐ │
+│ │ [B] [I] [U] [📷] [🔗] [📊] [💾] [👁️] │ │
+│ │ │ │
+│ │ Start writing your content here... │ │
+│ │ │ │
+│ │ │ │
+│ │ │ │
+│ └─────────────────────────────────────────────────────────┘ │
+│ │
+│ [📂 Featured Image] [⚙️ Advanced Settings] │
+│ │
+│ [Save Draft] [Preview] [Publish] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Content Editor Features
+
+#### Text Formatting Toolbar
+- **B** - Bold text
+- **I** - Italic text
+- **U** - Underline text
+- **S** - Strikethrough text
+- **H** - Headers (H1-H6)
+- **📝** - Lists (ordered/unordered)
+- **💬** - Quotes and callouts
+- **📋** - Code blocks
+- **🔗** - Links and hyperlinks
+
+#### Media Integration
+- **📷** - Insert images
+- **🎥** - Embed videos
+- **🎵** - Add audio files
+- **📊** - Insert charts and graphs
+- **📎** - Attach files
+- **🌐** - Embed external content
+
+#### Advanced Features
+- **🔍** - SEO optimization tools
+- **📅** - Schedule publishing
+- **👥** - Collaboration tools
+- **📊** - Analytics tracking
+- **🔒** - Access control settings
+
+### Writing Tools
+
+#### Auto-Save
+- **Frequency**: Saves every 30 seconds
+- **Visual Indicator**: Shows last saved time
+- **Recovery**: Automatically recovers lost work
+- **Versions**: Maintains version history
+- **Offline**: Works without internet connection
+
+#### Spell Check & Grammar
+- **Real-time**: Checks as you type
+- **Suggestions**: Click to accept corrections
+- **Custom Dictionary**: Add personal words
+- **Language Support**: Multiple languages
+- **Grammar Tips**: Advanced writing suggestions
+
+#### Word Count & Reading Time
+- **Live Counter**: Updates as you type
+- **Reading Time**: Estimated time to read
+- **Character Count**: For social media limits
+- **Target Goals**: Set word count targets
+- **Progress Tracking**: Visual progress indicators
+
+## 🎨 Content Formatting
+
+### Markdown Support
+
+Rustelo supports full Markdown syntax for easy formatting:
+
+#### Basic Syntax
+```markdown
+# Heading 1
+## Heading 2
+### Heading 3
+
+**Bold text**
+*Italic text*
+~~Strikethrough~~
+
+[Link text](https://example.com)
+
+
+- Bullet point 1
+- Bullet point 2
+
+1. Numbered list
+2. Second item
+
+> Quote or callout
+```
+
+#### Advanced Markdown
+```markdown
+| Table Header 1 | Table Header 2 |
+|----------------|----------------|
+| Cell 1 | Cell 2 |
+| Cell 3 | Cell 4 |
+
+```code block```
+
+- [ ] Unchecked task
+- [x] Checked task
+
+:emoji: Support for emojis
+```
+
+### Rich Text Editor
+
+#### Visual Editing Mode
+- **WYSIWYG**: What you see is what you get
+- **Click and Type**: Direct text editing
+- **Drag and Drop**: Move elements easily
+- **Context Menus**: Right-click for options
+- **Keyboard Shortcuts**: Power user features
+
+#### Block-Based Editing
+- **Text Blocks**: Paragraphs, headers, quotes
+- **Media Blocks**: Images, videos, embeds
+- **Layout Blocks**: Columns, spacers, dividers
+- **Interactive Blocks**: Buttons, forms, widgets
+- **Custom Blocks**: User-defined content types
+
+### Content Styling
+
+#### Typography Options
+- **Font Family**: Choose from available fonts
+- **Font Size**: Adjust text size
+- **Line Height**: Control text spacing
+- **Text Alignment**: Left, center, right, justify
+- **Text Color**: Custom color selection
+
+#### Layout Controls
+- **Content Width**: Full, wide, or contained
+- **Margins**: Control spacing around content
+- **Padding**: Internal spacing within elements
+- **Background**: Colors, images, or gradients
+- **Borders**: Add borders and dividers
+
+## 📁 Content Organization
+
+### Categories and Tags
+
+#### Categories
+- **Hierarchical**: Organized in parent-child structure
+- **Primary**: Main topic classification
+- **Single Selection**: One category per post
+- **Navigation**: Used in site navigation
+- **SEO Benefits**: Improves search visibility
+
+#### Tags
+- **Keywords**: Specific topics and terms
+- **Multiple**: Many tags per post allowed
+- **Flexible**: Create tags on the fly
+- **Discovery**: Helps users find related content
+- **Trending**: Shows popular topics
+
+#### Best Practices
+```
+Categories: Broad topics (Tech, Lifestyle, Business)
+Tags: Specific keywords (JavaScript, productivity, startup-tips)
+
+Example:
+Category: Web Development
+Tags: JavaScript, React, Tutorial, Beginner-Friendly
+```
+
+### Content Series and Collections
+
+#### Creating Series
+1. **Plan the Series**: Outline all parts
+2. **Create Landing Page**: Overview of the series
+3. **Link Posts**: Connect related content
+4. **Navigation**: Add series navigation
+5. **Promote**: Market the complete series
+
+#### Collection Management
+- **Curated Content**: Hand-picked related posts
+- **Auto-Collections**: Based on tags or categories
+- **Custom Order**: Arrange content logically
+- **Featured Items**: Highlight important content
+- **Dynamic Updates**: Automatically updated collections
+
+### Content Calendar
+
+#### Planning Features
+- **Calendar View**: Visual content planning
+- **Scheduling**: Plan future publications
+- **Deadlines**: Set writing deadlines
+- **Collaboration**: Team planning tools
+- **Templates**: Reusable content templates
+
+#### Editorial Workflow
+```
+[📝 Idea] → [✍️ Writing] → [👀 Review] → [✅ Approved] → [📅 Scheduled] → [🚀 Published]
+```
+
+- **Draft Stage**: Initial content creation
+- **Review Stage**: Editing and feedback
+- **Approval Stage**: Final approval process
+- **Scheduled Stage**: Queued for publication
+- **Published Stage**: Live and accessible
+
+## 🖼️ Media Management
+
+### Image Handling
+
+#### Uploading Images
+1. **Drag and Drop**: Drag images into editor
+2. **File Picker**: Click to browse files
+3. **Paste**: Copy-paste from clipboard
+4. **URL Import**: Import from web URLs
+5. **Camera**: Take photos directly (mobile)
+
+#### Image Requirements
+- **File Types**: JPG, PNG, GIF, WebP, SVG
+- **Size Limit**: 10MB per image
+- **Dimensions**: No strict limits
+- **Optimization**: Auto-compression available
+- **Alt Text**: Required for accessibility
+
+#### Image Editing Tools
+- **Crop**: Adjust image dimensions
+- **Resize**: Change image size
+- **Filters**: Apply visual effects
+- **Compression**: Optimize file size
+- **Captions**: Add descriptive text
+
+### Video Content
+
+#### Video Upload
+- **File Types**: MP4, MOV, AVI, WebM
+- **Size Limit**: 100MB per video
+- **Duration**: Up to 10 minutes
+- **Quality**: Auto-optimization
+- **Thumbnails**: Auto-generated previews
+
+#### Video Embedding
+- **YouTube**: Direct URL embedding
+- **Vimeo**: Professional video hosting
+- **Wistia**: Business video platform
+- **Custom**: Self-hosted video files
+- **Live Streams**: Real-time video content
+
+### File Attachments
+
+#### Supported File Types
+- **Documents**: PDF, DOC, DOCX, TXT
+- **Spreadsheets**: XLS, XLSX, CSV
+- **Presentations**: PPT, PPTX
+- **Archives**: ZIP, RAR, 7Z
+- **Audio**: MP3, WAV, OGG
+
+#### File Management
+- **Storage Quota**: Track usage limits
+- **Version Control**: Track file versions
+- **Access Control**: Set download permissions
+- **Expiration**: Set file expiry dates
+- **Analytics**: Track download statistics
+
+## 📊 Content Analytics
+
+### Performance Metrics
+
+#### Engagement Metrics
+- **Views**: Total content views
+- **Unique Visitors**: Individual user views
+- **Time on Page**: How long users read
+- **Bounce Rate**: Users who leave quickly
+- **Social Shares**: Shares across platforms
+
+#### Interaction Metrics
+- **Comments**: User discussions
+- **Likes/Reactions**: User appreciation
+- **Bookmarks**: Users saving content
+- **Downloads**: File download counts
+- **Click-through Rate**: Link clicks
+
+### Analytics Dashboard
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Analytics Dashboard [Last 30 Days]│
+├─────────────────────────────────────────────────────────────┤
+│ 📊 Overview │
+│ Total Views: 12,456 ↑ 15% Comments: 234 ↑ 8% │
+│ Unique Visitors: 8,901 ↑ 12% Shares: 156 ↑ 23% │
+├─────────────────────────────────────────────────────────────┤
+│ 🏆 Top Performing Content │
+│ 1. "Getting Started Guide" - 2,345 views │
+│ 2. "Best Practices Tips" - 1,890 views │
+│ 3. "Advanced Techniques" - 1,567 views │
+├─────────────────────────────────────────────────────────────┤
+│ 📈 Growth Trends │
+│ [📊 Graph showing views over time] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### SEO Insights
+
+#### Search Performance
+- **Search Rankings**: Position in search results
+- **Keywords**: Terms driving traffic
+- **Click-through Rate**: Search result clicks
+- **Impressions**: Times shown in search
+- **Search Console**: Google integration
+
+#### SEO Optimization Tools
+- **Title Optimization**: Suggested improvements
+- **Meta Descriptions**: Auto-generated or custom
+- **Keyword Density**: Optimal keyword usage
+- **Readability**: Content readability scores
+- **Schema Markup**: Structured data integration
+
+## 🔒 Content Permissions
+
+### Access Control
+
+#### Visibility Settings
+- **Public**: Anyone can view
+- **Unlisted**: Only with direct link
+- **Private**: Only you can view
+- **Members Only**: Registered users only
+- **Custom**: Specific user groups
+
+#### Permission Levels
+- **View**: Can read content
+- **Comment**: Can add comments
+- **Edit**: Can modify content
+- **Delete**: Can remove content
+- **Manage**: Full administrative control
+
+### Collaboration Features
+
+#### Team Collaboration
+- **Co-authors**: Multiple writers per post
+- **Editors**: Review and edit permissions
+- **Reviewers**: Approval workflow
+- **Contributors**: Limited editing rights
+- **Viewers**: Read-only access
+
+#### Version Control
+- **Revision History**: Track all changes
+- **Compare Versions**: See differences
+- **Restore**: Revert to previous versions
+- **Author Attribution**: Who made changes
+- **Change Notes**: Comments on modifications
+
+## 🚀 Publishing Options
+
+### Publication Settings
+
+#### Publishing Modes
+- **Immediate**: Publish right away
+- **Scheduled**: Set future publish date
+- **Draft**: Save without publishing
+- **Review**: Submit for approval
+- **Private**: Publish privately
+
+#### Publication Workflow
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Publish Content │
+├─────────────────────────────────────────────────────────────┤
+│ Status: [Published ▼] │
+│ │
+│ Visibility: [Public ▼] │
+│ │
+│ Publish Date: [Now ▼] [📅 Schedule] │
+│ │
+│ URL Slug: [my-article-title] │
+│ │
+│ Featured: [☐] Stick to top: [☐] │
+│ │
+│ [Update] [Preview] [Move to Trash] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Distribution Options
+
+#### Social Media Integration
+- **Auto-posting**: Share to social platforms
+- **Custom Messages**: Platform-specific text
+- **Scheduling**: Time social media posts
+- **Analytics**: Track social media performance
+- **Cross-posting**: Multiple platform sharing
+
+#### Email Newsletters
+- **Subscriber Lists**: Email to followers
+- **Custom Templates**: Branded email design
+- **Segmentation**: Target specific audiences
+- **A/B Testing**: Test different approaches
+- **Performance Tracking**: Email analytics
+
+#### RSS Feeds
+- **Auto-generation**: Automatic feed creation
+- **Custom Feeds**: Category-specific feeds
+- **Syndication**: Share content widely
+- **Podcast Feeds**: Audio content distribution
+- **Feed Analytics**: Subscriber tracking
+
+## 🔍 Content Discovery
+
+### Search Optimization
+
+#### Internal Search
+- **Full-text Search**: Search all content
+- **Filters**: Narrow by category, date, author
+- **Suggestions**: Search term suggestions
+- **Related Content**: Show similar articles
+- **Search Analytics**: Popular search terms
+
+#### External SEO
+- **Meta Tags**: Title, description, keywords
+- **Open Graph**: Social media previews
+- **Twitter Cards**: Enhanced Twitter sharing
+- **Schema Markup**: Rich search results
+- **Sitemap**: Search engine indexing
+
+### Content Recommendations
+
+#### Algorithmic Suggestions
+- **Related Articles**: Based on content similarity
+- **Popular Content**: Trending articles
+- **Personalized**: Based on user behavior
+- **Collaborative Filtering**: User-based recommendations
+- **Machine Learning**: AI-powered suggestions
+
+#### Manual Curation
+- **Featured Content**: Editor's picks
+- **Related Links**: Manual content linking
+- **Series Navigation**: Sequential content
+- **Topic Collections**: Curated topic pages
+- **Reading Lists**: Recommended reading
+
+## 🛠️ Content Management Tools
+
+### Bulk Operations
+
+#### Content Actions
+- **Bulk Edit**: Modify multiple posts
+- **Bulk Delete**: Remove multiple items
+- **Bulk Categorize**: Assign categories
+- **Bulk Tag**: Add tags to multiple posts
+- **Bulk Export**: Download content data
+
+#### Import/Export Tools
+- **Content Import**: From other platforms
+- **WordPress Import**: Migrate from WordPress
+- **CSV Import**: Bulk content upload
+- **JSON Export**: Structured data export
+- **Backup Creation**: Full content backup
+
+### Content Templates
+
+#### Template Types
+- **Post Templates**: Pre-formatted layouts
+- **Page Templates**: Static page designs
+- **Email Templates**: Newsletter layouts
+- **Social Templates**: Social media formats
+- **Custom Templates**: User-created designs
+
+#### Template Features
+- **Placeholder Text**: Example content
+- **Dynamic Fields**: Auto-populated data
+- **Reusable Blocks**: Saved content elements
+- **Style Variations**: Different visual options
+- **Template Library**: Shared template collection
+
+## 📱 Mobile Content Management
+
+### Mobile Editor
+
+#### Touch-Optimized Interface
+- **Large Buttons**: Easy touch targets
+- **Swipe Gestures**: Intuitive navigation
+- **Voice Input**: Dictate content
+- **Camera Integration**: Add photos directly
+- **Simplified Tools**: Essential features only
+
+#### Mobile Features
+- **Offline Editing**: Work without internet
+- **Auto-sync**: Sync when connected
+- **Quick Actions**: Fast common tasks
+- **Image Optimization**: Auto-resize for mobile
+- **Responsive Preview**: See mobile layout
+
+### Mobile-First Content
+
+#### Mobile Optimization
+- **Short Paragraphs**: Easy mobile reading
+- **Scannable Headers**: Clear structure
+- **Optimized Images**: Fast loading
+- **Touch-Friendly**: Interactive elements
+- **Thumb Navigation**: Easy one-hand use
+
+## 🎯 Content Strategy Tips
+
+### Planning Your Content
+
+#### Content Audit
+1. **Inventory**: List all existing content
+2. **Performance**: Analyze what works
+3. **Gaps**: Identify missing topics
+4. **Opportunities**: Find improvement areas
+5. **Strategy**: Plan future content
+
+#### Editorial Calendar
+- **Monthly Themes**: Organize by topics
+- **Seasonal Content**: Holiday and event posts
+- **Evergreen Content**: Timeless articles
+- **Trending Topics**: Current events and news
+- **Consistency**: Regular publishing schedule
+
+### Engagement Strategies
+
+#### Building Community
+- **Ask Questions**: Encourage comments
+- **Respond Promptly**: Engage with readers
+- **User-Generated**: Feature reader content
+- **Contests**: Interactive engagement
+- **Polls and Surveys**: Gather feedback
+
+#### Content Promotion
+- **Social Sharing**: Promote across platforms
+- **Email Marketing**: Newsletter inclusion
+- **Internal Linking**: Connect related content
+- **Guest Posting**: Write for other sites
+- **Influencer Outreach**: Partner with others
+
+## 🔧 Troubleshooting Content Issues
+
+### Common Problems
+
+#### Editor Issues
+**Problem**: Editor not loading
+**Solutions**:
+1. Refresh the browser page
+2. Clear browser cache and cookies
+3. Disable browser extensions
+4. Try incognito/private mode
+5. Update browser to latest version
+
+#### Save Issues
+**Problem**: Content not saving
+**Solutions**:
+1. Check internet connection
+2. Verify browser permissions
+3. Try saving smaller sections
+4. Use manual save button
+5. Copy content as backup
+
+#### Formatting Issues
+**Problem**: Formatting not displaying correctly
+**Solutions**:
+1. Check markdown syntax
+2. Use preview mode to test
+3. Clear formatting and reapply
+4. Switch between editor modes
+5. Contact support if persistent
+
+### Performance Issues
+
+#### Large File Uploads
+**Problem**: Files won't upload
+**Solutions**:
+1. Check file size limits
+2. Compress images before upload
+3. Use supported file formats
+4. Split large files into parts
+5. Upload during off-peak hours
+
+#### Slow Loading
+**Problem**: Content loads slowly
+**Solutions**:
+1. Optimize image sizes
+2. Reduce number of images
+3. Use efficient file formats
+4. Enable content caching
+5. Check internet speed
+
+## 📚 Advanced Content Features
+
+### Dynamic Content
+
+#### Personalization
+- **User-Specific**: Content based on user data
+- **Location-Based**: Geographic personalization
+- **Behavior-Driven**: Based on user actions
+- **Time-Sensitive**: Different content by time
+- **Device-Specific**: Mobile vs desktop content
+
+#### Interactive Elements
+- **Forms**: Contact and feedback forms
+- **Polls**: Audience opinion gathering
+- **Quizzes**: Interactive knowledge tests
+- **Calculators**: Useful tools and calculators
+- **Maps**: Location-based content
+
+### Content APIs
+
+#### Headless CMS
+- **API Access**: Programmatic content management
+- **Multi-Platform**: Use content anywhere
+- **Custom Frontends**: Build custom interfaces
+- **Mobile Apps**: Native app integration
+- **Third-Party**: External service integration
+
+#### Webhooks
+- **Real-Time**: Instant notifications
+- **Custom Actions**: Trigger external processes
+- **Integration**: Connect with other tools
+- **Automation**: Automated workflows
+- **Monitoring**: Track content changes
+
+## 📈 Measuring Content Success
+
+### Key Performance Indicators
+
+#### Engagement KPIs
+- **Page Views**: Total content views
+- **Time on Page**: Reader engagement time
+- **Bounce Rate**: Single-page sessions
+- **Social Shares**: Content amplification
+- **Comment Rate**: Reader interaction
+
+#### Business KPIs
+- **Lead Generation**: Contacts acquired
+- **Conversion Rate**: Goals achieved
+- **Revenue Attribution**: Sales from content
+- **Cost Per Acquisition**: Marketing efficiency
+- **Customer Lifetime Value**: Long-term impact
+
+### Analytics Tools
+
+#### Built-in Analytics
+- **Content Dashboard**: Performance overview
+- **Real-Time Stats**: Live visitor tracking
+- **Historical Data**: Long-term trends
+- **Comparison Tools**: Period comparisons
+- **Export Options**: Data download
+
+#### Third-Party Integration
+- **Google Analytics**: Comprehensive web analytics
+- **Social Analytics**: Platform-specific insights
+- **Email Analytics**: Newsletter performance
+- **Heatmaps**: User behavior visualization
+- **A/B Testing**: Content optimization
+
+## 🚨 Content Guidelines & Best Practices
+
+### Content Quality Standards
+
+#### Writing Guidelines
+- **Clear and Concise**: Easy to understand
+- **Well-Structured**: Logical organization
+- **Error-Free**: Proper grammar and spelling
+- **Engaging**: Interesting and valuable
+- **Original**: Unique and authentic content
+
+#### Technical Standards
+- **Mobile-Friendly**: Responsive design
+- **Fast Loading**: Optimized performance
+- **Accessible**: Inclusive for all users
+- **SEO-Optimized**: Search engine friendly
+- **Standards-Compliant**: Web standards adherence
+
+### Content Policies
+
+#### Acceptable Use
+- **Original Content**: No plagiarism
+- **Respectful**: No harassment or hate speech
+- **Legal**: No copyright infringement
+- **Appropriate**: Suitable for all audiences
+- **Factual**: Accurate information
+
+#### Enforcement
+- **Community Guidelines**: Clear rules
+- **Reporting System**: User reporting tools
+- **Review Process**: Content moderation
+- **Appeals Process**: Dispute resolution
+- **Penalties**: Consequences for violations
+
+## 🎉 Content Success Stories
+
+### Best Practices Examples
+
+#### High-Performing Content Types
+- **How-To Guides**: Step-by-step tutorials
+- **Case Studies**: Real-world examples
+- **Lists**: "Top 10" style content
+- **Behind the Scenes**: Process insights
+- **User Stories**: Customer experiences
+
+#### Engagement Strategies That Work
+- **Interactive Content**: Polls, quizzes, surveys
+- **Visual Content**: Images, videos, infographics
+- **Storytelling**: Narrative-driven content
+- **Community Features**: User-generated content
+- **Timely Content**: Current events and trends
+
+## 🔮 Future of Content Management
+
+### Emerging Trends
+
+#### AI-Powered Features
+- **Content Generation**: AI writing assistance
+- **Auto-Optimization**: Automatic SEO improvements
+- **Smart Recommendations**: AI content suggestions
+- **Personalization**: Dynamic content adaptation
+- **Analytics Insights**: AI-driven performance analysis
+
+#### New Content Formats
+- **Interactive Videos**: Clickable video content
+- **AR/VR Content**: Immersive experiences
+- **Voice Content**: Audio-first experiences
+- **Live Content**: Real-time streaming
+- **Collaborative Content**: Multi-author creation
+
+## 📚 Next Steps
+
+Now that you understand content management, explore:
+
+1. **[Media Management](./media.md)** - Handle files and multimedia
+2. **[User Interface Guide](./interface.md)** - Navigate the platform
+3. **[Profile Management](./profile.md)** - Customize your account
+4. **[Features Overview](./features/)** - Discover all platform features
+5. **[Admin Tools](./admin/)** - Advanced management features
+
+## 🎉 Conclusion
+
+Effective content management is key to building a successful online presence. With Rustelo's powerful content management tools, you have everything you need to create, organize, and optimize content that engages your audience and achieves your goals.
+
+Remember to:
+- Plan your content strategy thoughtfully
+- Create high-quality, valuable content consistently
+- Optimize for both users and search engines
+- Engage with your audience regularly
+- Analyze performance and iterate
+
+**Start creating amazing content today!** 🚀✨
diff --git a/book/users/features/README.md b/book/users/features/README.md
new file mode 100644
index 0000000..2dc193b
--- /dev/null
+++ b/book/users/features/README.md
@@ -0,0 +1,173 @@
+[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)[[](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)k[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)'[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md).[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔐[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)[[](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md).[](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)k[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)-[](../../introduction.md)F[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)([](../../introduction.md)2[](../../introduction.md)F[](../../introduction.md)A[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)O[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)H[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📝[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)L[](../../introduction.md)i[](../../introduction.md)b[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)V[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)E[](../../introduction.md)O[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)-[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📧[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)-[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)E[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)-[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔍[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📱[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)O[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)W[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)-[](../../introduction.md)F[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🎨[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)h[](../../introduction.md)t[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)r[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)'[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)L[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)-[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)📊[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)h[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)U[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔧[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)s[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)P[](../../introduction.md)I[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)-[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🛡[](../../introduction.md)️[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)y[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)D[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)n[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)k[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)k[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)G[](../../introduction.md)D[](../../introduction.md)P[](../../introduction.md)R[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🎯[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)-[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)-[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)E[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)N[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)[[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)&[](../../introduction.md) [](../../introduction.md)D[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md)][](../../introduction.md)([](../../introduction.md).[](../../introduction.md)/[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md).[](../../introduction.md)m[](../../introduction.md)d[](../../introduction.md))[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)m[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)P[](../../introduction.md)I[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🆕[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)E[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)-[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)W[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)-[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)I[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)h[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🔮[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)p[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)'[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)u[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)m[](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)'[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)'[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)V[](../../introduction.md)o[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)I[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)v[](../../introduction.md)o[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)I[](../../introduction.md)-[](../../introduction.md)P[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)g[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)A[](../../introduction.md)d[](../../introduction.md)v[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)A[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)f[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md)f[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)W[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)w[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)💡[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)M[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)P[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)d[](../../introduction.md)u[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)k[](../../introduction.md)e[](../../introduction.md)y[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)k[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)b[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)-[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)E[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)2[](../../introduction.md)F[](../../introduction.md)A[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)a[](../../introduction.md)l[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md),[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)w[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)d[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)K[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)O[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)i[](../../introduction.md)p[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)g[](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)z[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)f[](../../introduction.md)i[](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)c[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)o[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🆘[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)H[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)p[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)I[](../../introduction.md)f[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)1[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)S[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)d[](../../introduction.md)o[](../../introduction.md)c[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)e[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)U[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)
+[](../../introduction.md)2[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)o[](../../introduction.md)l[](../../introduction.md)u[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)3[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)s[](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)t[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)G[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)p[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)m[](../../introduction.md)
+[](../../introduction.md)4[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)u[](../../introduction.md)m[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)w[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)#[](../../introduction.md)#[](../../introduction.md) [](../../introduction.md)🚀[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)H[](../../introduction.md)a[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)?[](../../introduction.md) [](../../introduction.md)W[](../../introduction.md)e[](../../introduction.md)'[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md):[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)e[](../../introduction.md)q[](../../introduction.md)u[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)F[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)m[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)u[](../../introduction.md)b[](../../introduction.md)m[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)C[](../../introduction.md)o[](../../introduction.md)m[](../../introduction.md)m[](../../introduction.md)u[](../../introduction.md)n[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)V[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)V[](../../introduction.md)o[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)r[](../../introduction.md)o[](../../introduction.md)p[](../../introduction.md)o[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)B[](../../introduction.md)e[](../../introduction.md)t[](../../introduction.md)a[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)T[](../../introduction.md)r[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)e[](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)y[](../../introduction.md)'[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md)F[](../../introduction.md)e[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)y[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)m[](../../introduction.md)*[](../../introduction.md)*[](../../introduction.md) [](../../introduction.md)-[](../../introduction.md) [](../../introduction.md)S[](../../introduction.md)h[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)y[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)o[](../../introduction.md)u[](../../introduction.md)g[](../../introduction.md)h[](../../introduction.md)t[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)n[](../../introduction.md) [](../../introduction.md)e[](../../introduction.md)x[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)n[](../../introduction.md)g[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)-[](../../introduction.md)-[](../../introduction.md)-[](../../introduction.md)
+[](../../introduction.md)
+[](../../introduction.md)*[](../../introduction.md)T[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)e[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)u[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)o[](../../introduction.md)v[](../../introduction.md)e[](../../introduction.md)r[](../../introduction.md)v[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)n[](../../introduction.md)e[](../../introduction.md)w[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)a[](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)b[](../../introduction.md)i[](../../introduction.md)l[](../../introduction.md)i[](../../introduction.md)t[](../../introduction.md)i[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)d[](../../introduction.md)d[](../../introduction.md)e[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)o[](../../introduction.md) [](../../introduction.md)R[](../../introduction.md)u[](../../introduction.md)s[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)l[](../../introduction.md)o[](../../introduction.md).[](../../introduction.md) [](../../introduction.md)B[](../../introduction.md)o[](../../introduction.md)o[](../../introduction.md)k[](../../introduction.md)m[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)t[](../../introduction.md)h[](../../introduction.md)i[](../../introduction.md)s[](../../introduction.md) [](../../introduction.md)p[](../../introduction.md)a[](../../introduction.md)g[](../../introduction.md)e[](../../introduction.md) [](../../introduction.md)a[](../../introduction.md)n[](../../introduction.md)d[](../../introduction.md) [](../../introduction.md)c[](../../introduction.md)h[](../../introduction.md)e[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)b[](../../introduction.md)a[](../../introduction.md)c[](../../introduction.md)k[](../../introduction.md) [](../../introduction.md)r[](../../introduction.md)e[](../../introduction.md)g[](../../introduction.md)u[](../../introduction.md)l[](../../introduction.md)a[](../../introduction.md)r[](../../introduction.md)l[](../../introduction.md)y[](../../introduction.md) [](../../introduction.md)f[](../../introduction.md)o[](../../introduction.md)r[](../../introduction.md) [](../../introduction.md)u[](../../introduction.md)p[](../../introduction.md)d[](../../introduction.md)a[](../../introduction.md)t[](../../introduction.md)e[](../../introduction.md)s[](../../introduction.md)*[](../../introduction.md)
\ No newline at end of file
diff --git a/book/users/features/auth.md b/book/users/features/auth.md
new file mode 100644
index 0000000..1d1e227
--- /dev/null
+++ b/book/users/features/auth.md
@@ -0,0 +1,799 @@
+# Authentication & Security Features
+
+
+
+
+
+Welcome to the Rustelo Authentication & Security Features Guide! This comprehensive guide covers all the security features available to keep your account safe and secure while providing a smooth user experience.
+
+## 🎯 Overview
+
+Rustelo's authentication system is built with security-first principles, offering multiple layers of protection while maintaining ease of use. From basic password security to advanced two-factor authentication, we provide enterprise-grade security features accessible to all users.
+
+## 🔐 Core Authentication Features
+
+### Multi-Factor Authentication (MFA)
+
+#### Two-Factor Authentication (2FA)
+The most effective way to protect your account beyond passwords:
+
+**Authenticator Apps (Recommended)**
+- **Google Authenticator** - Free, reliable, works offline
+- **Authy** - Cloud backup, multi-device sync
+- **Microsoft Authenticator** - Enterprise integration
+- **1Password** - Password manager integration
+- **Bitwarden Authenticator** - Open-source option
+
+**SMS Authentication**
+- **Text Message Codes** - 6-digit codes via SMS
+- **Backup Numbers** - Multiple phone numbers supported
+- **International Support** - Works worldwide
+- **Carrier Independence** - Works with all carriers
+
+**Hardware Keys (Advanced)**
+- **YubiKey Support** - Physical security keys
+- **FIDO2/WebAuthn** - Modern web authentication
+- **USB/NFC Keys** - Multiple connection options
+- **Backup Keys** - Multiple keys for redundancy
+
+#### Setting Up 2FA
+
+**Step-by-Step Setup Process:**
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Enable Two-Factor Authentication │
+├─────────────────────────────────────────────────────────────┤
+│ Step 1: Choose Your Method │
+│ ○ Authenticator App (Recommended) │
+│ ○ SMS Text Messages │
+│ ○ Hardware Security Key │
+│ │
+│ Step 2: Verify Current Password │
+│ Password: [________________] │
+│ │
+│ Step 3: Scan QR Code or Enter Key │
+│ [QR CODE] Manual Entry: ABCD EFGH IJKL MNOP │
+│ │
+│ Step 4: Enter Verification Code │
+│ Code: [______] │
+│ │
+│ Step 5: Save Backup Codes │
+│ [Download] [Print] [Copy to Clipboard] │
+│ │
+│ [Enable 2FA] [Cancel] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+**Backup Codes Management:**
+```
+Your 2FA Backup Codes - Keep These Safe!
+
+1. 123456789 ← Used ✓
+2. 987654321
+3. 456789123
+4. 789123456
+5. 321654987
+6. 654321987
+7. 147258369
+8. 258369147
+9. 369147258
+10. 951753842
+
+⚠️ Important Notes:
+• Each code can only be used once
+• Generate new codes if you run low
+• Store in a secure location (password manager)
+• Don't share these codes with anyone
+```
+
+### Single Sign-On (SSO) Integration
+
+#### Supported Providers
+- **Google** - Gmail and Google Workspace accounts
+- **Microsoft** - Azure AD and Office 365
+- **GitHub** - Developer-focused authentication
+- **LinkedIn** - Professional network integration
+- **Apple** - Sign in with Apple ID
+- **Facebook** - Social media authentication
+
+#### SSO Benefits
+- **Simplified Login** - One click authentication
+- **Centralized Management** - Manage access from one place
+- **Enhanced Security** - Leverage provider's security
+- **Reduced Password Fatigue** - Fewer passwords to remember
+- **Enterprise Integration** - Works with company systems
+
+#### SSO Setup Process
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Connect Social Accounts │
+├─────────────────────────────────────────────────────────────┤
+│ Link your social accounts for easy sign-in: │
+│ │
+│ [🔗 Connect Google] Status: Not Connected │
+│ [🔗 Connect Microsoft] Status: Not Connected │
+│ [🔗 Connect GitHub] Status: ✅ Connected │
+│ [🔗 Connect LinkedIn] Status: Not Connected │
+│ [🔗 Connect Apple] Status: Not Connected │
+│ │
+│ Connected Accounts: │
+│ 🐙 GitHub (john-doe) │
+│ Connected: March 15, 2024 │
+│ Last Used: 2 hours ago │
+│ [Disconnect] [Set as Primary] │
+│ │
+│ ⚠️ Keep at least one login method active │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 🛡️ Password Security Features
+
+### Advanced Password Requirements
+
+#### Smart Password Policies
+- **Length Requirements** - Minimum 8 characters, recommended 12+
+- **Complexity Rules** - Mix of uppercase, lowercase, numbers, symbols
+- **Dictionary Checks** - Prevents common passwords
+- **Personal Info Detection** - Blocks passwords with personal data
+- **Breach Database** - Checks against known compromised passwords
+
+#### Password Strength Indicator
+```
+Create Your Password:
+Password: [MySecureP@ssw0rd2024!]
+
+Strength: ████████████████████░ Excellent (95/100)
+
+✅ 20 characters (8+ required)
+✅ Contains uppercase letters
+✅ Contains lowercase letters
+✅ Contains numbers
+✅ Contains special characters
+✅ Not found in breach databases
+✅ Doesn't contain personal info
+⚠️ Consider avoiding common substitutions (@ for a, 0 for o)
+
+Estimated time to crack: 2.3 trillion years
+```
+
+### Password Management Tools
+
+#### Built-in Password Generator
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Password Generator │
+├─────────────────────────────────────────────────────────────┤
+│ Generated Password: kX9$mN2pQ!7vL#8wE3rY │
+│ │
+│ Options: │
+│ Length: [20 ] characters │
+│ ☑ Uppercase letters (A-Z) │
+│ ☑ Lowercase letters (a-z) │
+│ ☑ Numbers (0-9) │
+│ ☑ Special characters (!@#$%^&*) │
+│ ☐ Exclude similar characters (0, O, l, 1) │
+│ ☐ Exclude ambiguous characters ({}[]()\/~,;.<>) │
+│ │
+│ [Generate New] [Copy Password] [Use This Password] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Password History
+- **Previous Passwords** - Prevents reusing recent passwords
+- **History Limit** - Remembers last 12 passwords
+- **Secure Storage** - Hashed and encrypted storage
+- **Rotation Reminders** - Suggests regular password changes
+- **Compromise Alerts** - Notifies if password appears in breaches
+
+### Password Recovery & Reset
+
+#### Secure Recovery Process
+1. **Identity Verification** - Email or SMS verification
+2. **Security Questions** - Backup verification method
+3. **Time-Limited Links** - Recovery links expire
+4. **IP Tracking** - Monitor recovery attempts
+5. **Notification System** - Alert on recovery actions
+
+#### Recovery Options
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Account Recovery Options │
+├─────────────────────────────────────────────────────────────┤
+│ Primary Recovery: │
+│ 📧 Email: j***e@example.com │
+│ Status: ✅ Verified │
+│ [Change Email] [Verify Again] │
+│ │
+│ Backup Recovery: │
+│ 📱 Phone: +1 (555) ***-*234 │
+│ Status: ✅ Verified │
+│ [Change Number] [Verify Again] │
+│ │
+│ Security Questions: │
+│ Question 1: What was your first pet's name? [Set] │
+│ Question 2: What city were you born in? [Set] │
+│ Question 3: What's your mother's maiden name? [Set] │
+│ │
+│ Recovery Codes: │
+│ Generated: March 1, 2024 │
+│ Remaining: 8 of 10 codes │
+│ [Regenerate Codes] [Download Codes] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 🔍 Session Management
+
+### Active Session Monitoring
+
+#### Session Dashboard
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Active Sessions │
+├─────────────────────────────────────────────────────────────┤
+│ 🖥️ Windows 11 - Chrome 121 │
+│ Current Session │
+│ IP: 192.168.1.100 • San Francisco, CA │
+│ Started: Today at 9:15 AM │
+│ Last Activity: Just now │
+│ │
+│ 📱 iPhone 15 - Safari │
+│ Mobile App │
+│ IP: 10.0.0.50 • San Francisco, CA │
+│ Started: Yesterday at 3:22 PM │
+│ Last Activity: 2 hours ago │
+│ [End Session] │
+│ │
+│ 💻 MacBook Pro - Firefox 122 │
+│ Work Computer │
+│ IP: 203.0.113.45 • New York, NY │
+│ Started: 3 days ago at 11:30 AM │
+│ Last Activity: 6 hours ago │
+│ [End Session] │
+│ │
+│ [End All Other Sessions] [Download Session Log] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Session Security Features
+- **IP Address Tracking** - Monitor login locations
+- **Device Fingerprinting** - Identify unique devices
+- **Geolocation Monitoring** - Track unusual locations
+- **Concurrent Session Limits** - Prevent excessive logins
+- **Idle Timeout** - Automatic logout after inactivity
+
+### Login History & Analytics
+
+#### Detailed Login Records
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Login History (Last 30 Days) │
+├─────────────────────────────────────────────────────────────┤
+│ Filter: [All Activities ▼] [Last 7 Days ▼] [🔍 Search] │
+├─────────────────────────────────────────────────────────────┤
+│ ✅ Successful Login │
+│ Today, 9:15 AM • Chrome on Windows │
+│ IP: 192.168.1.100 • San Francisco, CA │
+│ Method: Email + 2FA │
+│ │
+│ ✅ Successful Login │
+│ Yesterday, 3:22 PM • Safari on iPhone │
+│ IP: 10.0.0.50 • San Francisco, CA │
+│ Method: Email + 2FA │
+│ │
+│ ❌ Failed Login Attempt │
+│ 2 days ago, 2:45 AM • Unknown Browser │
+│ IP: 185.220.101.17 • Moscow, Russia │
+│ Reason: Invalid password (5 attempts) │
+│ Action: IP temporarily blocked │
+│ │
+│ 🔐 Password Changed │
+│ 1 week ago, 11:30 AM • Chrome on Windows │
+│ IP: 192.168.1.100 • San Francisco, CA │
+│ Triggered by: User request │
+│ │
+│ [Export Report] [Set Up Alerts] [Report Suspicious] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Security Analytics
+- **Login Patterns** - Track normal vs unusual activity
+- **Geographic Analysis** - Map of login locations
+- **Device Recognition** - Known vs new devices
+- **Time Analysis** - Unusual login times
+- **Threat Intelligence** - Known malicious IP addresses
+
+## 🚨 Security Alerts & Monitoring
+
+### Real-Time Security Alerts
+
+#### Alert Types
+- **New Device Login** - First-time device access
+- **Unusual Location** - Login from new geographic location
+- **Failed Login Attempts** - Multiple incorrect passwords
+- **Password Breach** - Password found in data breaches
+- **Account Changes** - Security settings modifications
+
+#### Alert Delivery Methods
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Security Alert Preferences │
+├─────────────────────────────────────────────────────────────┤
+│ Alert Types: │
+│ ☑ New device logins │
+│ ☑ Unusual location access │
+│ ☑ Multiple failed login attempts │
+│ ☑ Password security warnings │
+│ ☑ Account setting changes │
+│ ☑ Suspicious activity detection │
+│ │
+│ Delivery Methods: │
+│ ☑ Email notifications │
+│ ☑ SMS text messages (critical alerts only) │
+│ ☑ In-app notifications │
+│ ☑ Browser push notifications │
+│ ☐ Slack integration │
+│ │
+│ Alert Frequency: │
+│ ○ Immediate (real-time) │
+│ ○ Hourly digest │
+│ ○ Daily summary │
+│ │
+│ [Save Preferences] [Test Alerts] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Automated Security Responses
+
+#### Threat Detection
+- **Brute Force Protection** - Automatic account locking
+- **Suspicious IP Blocking** - Known threat IP addresses
+- **Device Fingerprint Analysis** - Unusual device characteristics
+- **Behavioral Analysis** - Unusual usage patterns
+- **Geographic Anomalies** - Impossible travel detection
+
+#### Response Actions
+```
+Automated Security Response Triggered
+
+Threat Detected: Multiple failed login attempts
+Source IP: 203.0.113.99 (Moscow, Russia)
+Time: March 15, 2024 at 2:45 AM
+
+Actions Taken:
+✅ Account temporarily locked (15 minutes)
+✅ IP address blocked for 24 hours
+✅ Security team notified
+✅ Email alert sent to account owner
+✅ Incident logged for analysis
+
+If this was you:
+• Wait 15 minutes and try again
+• Use account recovery if needed
+• Contact support if problems persist
+
+If this wasn't you:
+• Your account is secure
+• Consider changing your password
+• Enable 2FA if not already active
+```
+
+## 🔒 Privacy & Data Protection
+
+### Data Encryption
+
+#### Encryption Standards
+- **AES-256** - Industry-standard encryption
+- **TLS 1.3** - Secure data transmission
+- **End-to-End** - Client-side encryption options
+- **Key Management** - Secure key storage and rotation
+- **Zero-Knowledge** - Optional zero-knowledge features
+
+#### What We Encrypt
+```
+🔐 Data Encryption Status
+
+✅ Passwords - Salted and hashed (bcrypt)
+✅ Personal Information - AES-256 encryption
+✅ Session Data - Encrypted session storage
+✅ File Uploads - Encrypted at rest
+✅ Database Contents - Full database encryption
+✅ Backups - Encrypted backup storage
+✅ Communications - TLS 1.3 in transit
+✅ API Requests - End-to-end encryption
+
+🔑 Encryption Keys:
+• Unique per user data
+• Rotated automatically
+• Hardware security modules
+• Zero-knowledge options available
+```
+
+### Privacy Controls
+
+#### Data Visibility Settings
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Privacy & Data Controls │
+├─────────────────────────────────────────────────────────────┤
+│ Profile Visibility: │
+│ ○ Public - Anyone can view your profile │
+│ ● Members Only - Registered users only │
+│ ○ Private - Only you can view │
+│ ○ Custom - Specific groups/users │
+│ │
+│ Contact Information: │
+│ ☐ Show email address publicly │
+│ ☐ Allow contact from non-members │
+│ ☑ Show online status │
+│ ☑ Show last active time │
+│ │
+│ Data Collection: │
+│ ☑ Analytics and usage data │
+│ ☐ Marketing communications │
+│ ☑ Security and fraud prevention │
+│ ☐ Third-party integrations │
+│ │
+│ Data Retention: │
+│ Keep my data: [Until account deletion ▼] │
+│ Delete inactive data after: [2 years ▼] │
+│ │
+│ [Save Settings] [Export My Data] [Delete Account] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Data Export & Portability
+- **Complete Data Export** - All your account data
+- **Selective Export** - Choose specific data types
+- **Standard Formats** - JSON, CSV, XML formats
+- **Regular Exports** - Scheduled automatic exports
+- **Secure Delivery** - Encrypted download links
+
+## 🛡️ Advanced Security Features
+
+### API Security
+
+#### API Key Management
+```
+┌─────────────────────────────────────────────────────────────┐
+│ API Key Management │
+├─────────────────────────────────────────────────────────────┤
+│ Active API Keys: │
+│ │
+│ 🔑 Mobile App Integration │
+│ Key: rk_live_****************************abc123 │
+│ Created: March 1, 2024 │
+│ Last Used: 2 hours ago │
+│ Permissions: Read, Write │
+│ [Regenerate] [Revoke] [Edit Permissions] │
+│ │
+│ 🔑 Third-party Analytics │
+│ Key: rk_live_****************************def456 │
+│ Created: February 15, 2024 │
+│ Last Used: 1 day ago │
+│ Permissions: Read Only │
+│ [Regenerate] [Revoke] [Edit Permissions] │
+│ │
+│ [Create New API Key] [View Documentation] │
+│ │
+│ Security Settings: │
+│ ☑ Require HTTPS for all API calls │
+│ ☑ Enable rate limiting (1000 requests/hour) │
+│ ☑ Log all API access │
+│ ☐ Require IP whitelisting │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### OAuth Applications
+- **Third-party App Authorization** - Control app access
+- **Scope Management** - Limit app permissions
+- **Token Lifecycle** - Automatic token expiration
+- **Audit Trail** - Track app usage
+- **Revocation** - Instantly remove app access
+
+### Security Compliance
+
+#### Compliance Standards
+- **SOC 2 Type II** - Security and availability controls
+- **GDPR** - European data protection compliance
+- **CCPA** - California privacy rights compliance
+- **HIPAA** - Healthcare data protection (when applicable)
+- **ISO 27001** - Information security management
+
+#### Audit Features
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Security Audit Log │
+├─────────────────────────────────────────────────────────────┤
+│ Filter: [All Events ▼] [Security Only] [Last 30 Days ▼] │
+├─────────────────────────────────────────────────────────────┤
+│ 🔐 Security Event Log: │
+│ │
+│ 2024-03-15 14:30:22 | Password Changed │
+│ User: john.doe@example.com │
+│ IP: 192.168.1.100 | Browser: Chrome 121 │
+│ Result: Success │
+│ │
+│ 2024-03-15 09:15:33 | 2FA Code Generated │
+│ User: john.doe@example.com │
+│ IP: 192.168.1.100 | Method: Authenticator App │
+│ Result: Success │
+│ │
+│ 2024-03-14 23:45:12 | Failed Login Attempt │
+│ Target: john.doe@example.com │
+│ IP: 203.0.113.99 | Browser: Unknown │
+│ Result: Blocked - Too many attempts │
+│ │
+│ [Export Log] [Set Alert Rules] [Download Report] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 🔧 Security Configuration
+
+### Account Security Settings
+
+#### Security Preferences
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Advanced Security Settings │
+├─────────────────────────────────────────────────────────────┤
+│ Login Security: │
+│ ☑ Require 2FA for all logins │
+│ ☑ Remember trusted devices for 30 days │
+│ ☑ Require password re-entry for sensitive actions │
+│ ☐ Allow login from new countries │
+│ ☑ Block logins from known bad IP addresses │
+│ │
+│ Session Management: │
+│ Session timeout: [4 hours ▼] │
+│ Max concurrent sessions: [5 ▼] │
+│ ☑ End sessions on password change │
+│ ☑ Notify when new session starts │
+│ │
+│ Password Policy: │
+│ Minimum length: [12 characters ▼] │
+│ ☑ Require special characters │
+│ ☑ Check against breach databases │
+│ ☑ Prevent password reuse (last 12) │
+│ Password change frequency: [Every 90 days ▼] │
+│ │
+│ [Save Settings] [Reset to Defaults] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Enterprise Security Features
+
+#### Team Security Management
+- **Organization-wide Policies** - Enforce security standards
+- **Single Sign-On (SSO)** - Enterprise identity integration
+- **User Provisioning** - Automatic account management
+- **Audit Logging** - Comprehensive activity logs
+- **Compliance Reporting** - Automated compliance reports
+
+#### Advanced Threat Protection
+- **Machine Learning Detection** - AI-powered threat detection
+- **Behavioral Analytics** - Unusual activity patterns
+- **Threat Intelligence** - Real-time threat feeds
+- **Incident Response** - Automated threat response
+- **Forensic Analysis** - Detailed security investigations
+
+## 🎓 Security Best Practices
+
+### User Security Guidelines
+
+#### Essential Security Habits
+1. **Use Unique Passwords** - Never reuse passwords across sites
+2. **Enable 2FA Everywhere** - Use 2FA on all important accounts
+3. **Keep Software Updated** - Update browsers and apps regularly
+4. **Verify Login Alerts** - Review all security notifications
+5. **Secure Your Email** - Protect your email account well
+
+#### Password Manager Integration
+```
+Recommended Password Managers:
+
+🔐 1Password
+• Excellent security features
+• Cross-platform support
+• 2FA integration
+• Security audits
+
+🔐 Bitwarden
+• Open source
+• Free tier available
+• Self-hosting option
+• Enterprise features
+
+🔐 Dashlane
+• User-friendly interface
+• Dark web monitoring
+• VPN included
+• Identity theft protection
+
+🔐 LastPass
+• Long-established
+• Good browser integration
+• Family sharing
+• Emergency access
+```
+
+### Security Checklist
+
+#### Monthly Security Review
+```
+□ Review active sessions and devices
+□ Check login history for suspicious activity
+□ Update backup codes if used
+□ Verify recovery information is current
+□ Review connected applications
+□ Check for password breach notifications
+□ Update security questions if needed
+□ Review privacy settings
+□ Clean up old API keys
+□ Check security alert preferences
+```
+
+#### Annual Security Audit
+```
+□ Change master password
+□ Regenerate all backup codes
+□ Review and update security questions
+□ Audit all connected applications
+□ Update emergency contact information
+□ Review data export/backup
+□ Check compliance requirements
+□ Update security training
+□ Review incident response plans
+□ Test account recovery process
+```
+
+## 🚨 Incident Response
+
+### If Your Account is Compromised
+
+#### Immediate Actions
+1. **Change Your Password** - Use a different device if possible
+2. **End All Sessions** - Log out all devices
+3. **Enable 2FA** - If not already active
+4. **Check Account Activity** - Review recent changes
+5. **Contact Support** - Report the incident immediately
+
+#### Recovery Steps
+```
+🚨 Account Compromise Response Plan
+
+Immediate (First 15 minutes):
+✅ Change password from secure device
+✅ End all active sessions
+✅ Enable 2FA if not active
+✅ Check recent account activity
+✅ Secure email account
+
+Short-term (First hour):
+✅ Review and revoke suspicious API keys
+✅ Check connected applications
+✅ Update recovery information
+✅ Contact support team
+✅ Document incident details
+
+Long-term (First 24 hours):
+✅ Monitor account for unusual activity
+✅ Update passwords on related accounts
+✅ Review security practices
+✅ Implement additional security measures
+✅ Consider security training
+```
+
+### Reporting Security Issues
+
+#### Bug Bounty Program
+- **Responsible Disclosure** - Report security vulnerabilities
+- **Bounty Rewards** - Financial rewards for valid reports
+- **Hall of Fame** - Recognition for security researchers
+- **Quick Response** - Fast turnaround on reports
+- **Coordinated Disclosure** - Proper vulnerability handling
+
+#### Contact Information
+```
+🔒 Security Contact Information
+
+For security vulnerabilities:
+📧 security@rustelo.com
+🔒 PGP Key: Available on website
+⏱️ Response time: 24-48 hours
+
+For account security issues:
+📞 Emergency hotline: +1-800-RUSTELO
+💬 Live chat: Available 24/7
+📧 support@rustelo.com
+📱 Mobile app: Emergency support
+
+For compliance questions:
+📧 compliance@rustelo.com
+📄 Privacy officer contact
+📋 Data protection inquiries
+🏛️ Legal department
+```
+
+## 📚 Security Resources
+
+### Educational Materials
+
+#### Security Training
+- **Phishing Awareness** - Recognize and avoid phishing
+- **Password Security** - Creating and managing strong passwords
+- **2FA Setup** - Step-by-step authentication guides
+- **Privacy Protection** - Protecting personal information
+- **Incident Response** - What to do when things go wrong
+
+#### Security Tools
+- **Password Strength Checker** - Test password security
+- **Breach Checker** - Check if accounts are compromised
+- **Security Scorecard** - Rate your security posture
+- **Threat Simulator** - Practice security scenarios
+- **Compliance Checker** - Verify regulatory compliance
+
+### Community & Support
+
+#### Security Community
+- **Security Forum** - Discuss security topics
+- **Expert AMAs** - Ask security professionals
+- **User Groups** - Local security meetups
+- **Webinars** - Regular security training
+- **Newsletter** - Latest security news and tips
+
+#### Professional Services
+- **Security Consulting** - Expert security advice
+- **Penetration Testing** - Professional security testing
+- **Compliance Audits** - Regulatory compliance reviews
+- **Incident Response** - Professional incident handling
+- **Security Training** - Custom training programs
+
+## 🔮 Future Security Features
+
+### Upcoming Enhancements
+
+#### Biometric Authentication
+- **Fingerprint Login** - Touch ID/Windows Hello
+- **Face Recognition** - Face ID/Windows Hello
+- **Voice Recognition** - Voice-based authentication
+- **Behavioral Biometrics** - Typing and usage patterns
+- **Multi-modal** - Combine multiple biometric factors
+
+#### Advanced AI Security
+- **Predictive Threat Detection** - AI-powered threat prediction
+- **Automated Response** - Intelligent threat response
+- **User Behavior Analysis** - Deep learning behavior models
+- **Anomaly Detection** - Advanced anomaly identification
+- **Risk Scoring** - Dynamic risk assessment
+
+#### Zero-Trust Architecture
+- **Continuous Verification** - Never trust, always verify
+- **Micro-segmentation** - Granular access controls
+- **Context-aware Access** - Location and device-based access
+- **Adaptive Authentication** - Risk-based authentication
+- **Least Privilege** - Minimal necessary permissions
+
+## 🎉 Conclusion
+
+Rustelo's authentication and security features provide enterprise-grade protection while maintaining ease of use. By following the guidelines in this guide and taking advantage of all available security features, you can ensure your account remains secure.
+
+### Key Takeaways
+
+**Essential Security Steps:**
+1. Enable two-factor authentication immediately
+2. Use a strong, unique password
+3. Regularly monitor your account activity
+4. Keep your recovery information updated
+5. Report any suspicious activity promptly
+
+**Advanced Security:**
+- Consider hardware security keys for maximum protection
+- Use enterprise SSO if available
+- Implement organization-wide security policies
+- Regular security audits and training
+- Stay informed about emerging threats
+
+**Remember:** Security is an ongoing process, not a one-time setup. Stay vigilant, keep your security knowledge current, and don't hesitate to contact support if you have questions or concerns.
+
+**Stay secure with Rustelo!** 🔐✨
diff --git a/book/users/features/content.md b/book/users/features/content.md
new file mode 100644
index 0000000..9f166ac
--- /dev/null
+++ b/book/users/features/content.md
@@ -0,0 +1,650 @@
+# Content Management Features
+
+
+
+
+
+Welcome to the Rustelo Content Management Features Guide! This comprehensive guide covers all the powerful content creation, editing, and management features available to help you create and organize amazing content efficiently.
+
+## 🎯 Overview
+
+Rustelo's content management system combines the power of modern web technologies with an intuitive user experience. Whether you're writing blog posts, creating documentation, building knowledge bases, or managing media libraries, our feature-rich platform provides everything you need to create compelling content.
+
+## 📝 Content Creation Features
+
+### Advanced Text Editor
+
+#### Rich Text Editing
+Our powerful editor provides a seamless writing experience with professional-grade features:
+
+**Visual Editor Mode**
+- **WYSIWYG Interface** - See exactly how your content will look
+- **Live Preview** - Real-time rendering as you type
+- **Distraction-Free Writing** - Clean, focused writing environment
+- **Split View** - Edit and preview simultaneously
+- **Full-Screen Mode** - Immersive writing experience
+
+**Markdown Support**
+```
+# Headers and Structure
+## Subheadings work perfectly
+### Even third-level headers
+
+**Bold text** and *italic text*
+~~Strikethrough~~ and `inline code`
+
+- Bullet points
+- Nested lists
+ - Sub-items
+ - More sub-items
+
+1. Numbered lists
+2. With proper numbering
+3. Auto-incrementing
+
+> Blockquotes for emphasis
+> Multiple line quotes
+
+[Links](https://example.com) and 
+
+| Tables | Are | Supported |
+|--------|-----|-----------|
+| Data | In | Columns |
+| Easy | To | Create |
+
+```code blocks```
+With syntax highlighting
+```
+
+#### Editor Toolbar
+```
+┌─────────────────────────────────────────────────────────────┐
+│ [B] [I] [U] [S] [H▼] [🎨] [📋] [🔗] [📷] [📊] [💾] [👁️] [📱] │
+├─────────────────────────────────────────────────────────────┤
+│ │
+│ # Your Content Title Here │
+│ │
+│ Start writing your amazing content... │
+│ │
+│ The editor supports **bold**, *italic*, and even │
+│ [links](https://example.com) with live preview. │
+│ │
+│ - Add bullet points │
+│ - Create lists easily │
+│ - Insert images and media │
+│ │
+│ > Use blockquotes for emphasis │
+│ │
+│ ``` │
+│ Code blocks with syntax highlighting │
+│ ``` │
+│ │
+└─────────────────────────────────────────────────────────────┘
+```
+
+**Toolbar Features:**
+- **B** - Bold text formatting
+- **I** - Italic text formatting
+- **U** - Underline text
+- **S** - Strikethrough text
+- **H▼** - Heading levels (H1-H6)
+- **🎨** - Text and background colors
+- **📋** - Lists and formatting
+- **🔗** - Insert/edit links
+- **📷** - Add images and media
+- **📊** - Insert tables and charts
+- **💾** - Save/auto-save
+- **👁️** - Preview mode
+- **📱** - Mobile preview
+
+### Content Templates
+
+#### Template Library
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Templates │
+├─────────────────────────────────────────────────────────────┤
+│ 📝 Blog Post Templates: │
+│ • How-To Guide Template │
+│ • Product Review Template │
+│ • News Article Template │
+│ • Personal Story Template │
+│ │
+│ 📚 Documentation Templates: │
+│ • API Documentation │
+│ • User Manual Template │
+│ • FAQ Page Template │
+│ • Troubleshooting Guide │
+│ │
+│ 💼 Business Templates: │
+│ • Press Release Template │
+│ • Case Study Template │
+│ • White Paper Template │
+│ • Product Announcement │
+│ │
+│ [Create Custom Template] [Import Template] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Custom Template Creation
+- **Save Current Content** - Turn any post into a template
+- **Template Variables** - Placeholder text and fields
+- **Reusable Blocks** - Common sections and components
+- **Team Templates** - Share templates with team members
+- **Template Categories** - Organize by purpose or topic
+
+### Content Scheduling
+
+#### Publishing Schedule
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Calendar [Month ▼] [2024 ▼]│
+├─────────────────────────────────────────────────────────────┤
+│ Sun Mon Tue Wed Thu Fri Sat │
+├─────────────────────────────────────────────────────────────┤
+│ 1 2 3 4 5 6 7 │
+│ 📝 📷 📝 │
+│ │
+│ 8 9 10 11 12 13 14 │
+│ 📝 📹 📝 📄 │
+│ │
+│ 15 16 17 18 19 20 21 │
+│ 📝 📝 📷 │
+│ │
+│ 22 23 24 25 26 27 28 │
+│ 📝 📹 📝 │
+│ │
+├─────────────────────────────────────────────────────────────┤
+│ Legend: 📝 Blog Post 📷 Gallery 📹 Video 📄 Document │
+│ │
+│ Upcoming Publications: │
+│ • "Getting Started Guide" - Tomorrow at 9:00 AM │
+│ • "Feature Update" - March 18 at 2:00 PM │
+│ • "User Spotlight" - March 20 at 10:00 AM │
+│ │
+│ [Schedule New Content] [View Queue] [Bulk Actions] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Scheduling Features
+- **Future Publishing** - Set exact date and time
+- **Recurring Content** - Automatically schedule repeating posts
+- **Time Zone Support** - Schedule across different time zones
+- **Social Media Integration** - Auto-post to social platforms
+- **Email Notifications** - Alert when content is published
+
+## 🎨 Content Design & Layout
+
+### Visual Content Builder
+
+#### Block-Based Editing
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Blocks [+ Add Block] │
+├─────────────────────────────────────────────────────────────┤
+│ [📝 Text Block] │
+│ This is a text block with rich formatting options... │
+│ [↕ Move] [⚙️ Settings] [🗑️ Delete] │
+├─────────────────────────────────────────────────────────────┤
+│ [📷 Image Block] │
+│ [🖼️ Beautiful landscape image] │
+│ Caption: "Sunset over the mountains" │
+│ [↕ Move] [⚙️ Settings] [🗑️ Delete] │
+├─────────────────────────────────────────────────────────────┤
+│ [📊 Two-Column Block] │
+│ ┌─────────────────┬─────────────────┐ │
+│ │ Left Column │ Right Column │ │
+│ │ Content here... │ More content... │ │
+│ └─────────────────┴─────────────────┘ │
+│ [↕ Move] [⚙️ Settings] [🗑️ Delete] │
+├─────────────────────────────────────────────────────────────┤
+│ [🎥 Video Block] │
+│ [▶️ Product Demo Video] │
+│ Auto-play: Off | Controls: On │
+│ [↕ Move] [⚙️ Settings] [🗑️ Delete] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Available Block Types
+- **Text Blocks** - Paragraphs, headers, quotes
+- **Media Blocks** - Images, videos, audio, galleries
+- **Layout Blocks** - Columns, spacers, dividers, containers
+- **Interactive Blocks** - Buttons, forms, polls, maps
+- **Social Blocks** - Social media embeds, share buttons
+- **Code Blocks** - Syntax-highlighted code snippets
+- **Table Blocks** - Data tables with sorting and filtering
+- **Chart Blocks** - Graphs, charts, and visualizations
+
+### Responsive Design
+
+#### Multi-Device Preview
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Responsive Preview [💻] [📱] [⌚] [🖥️] │
+├─────────────────────────────────────────────────────────────┤
+│ Desktop (1920×1080) │ Mobile (375×667) │
+│ ┌─────────────────────────┐ │ ┌───────────────┐ │
+│ │ # Your Article Title │ │ │ # Your Article │ │
+│ │ │ │ │ Title │ │
+│ │ [Image] Text content │ │ │ │ │
+│ │ flows beside │ │ │ [Image] │ │
+│ │ the image in │ │ │ │ │
+│ │ two columns │ │ │ Text content │ │
+│ │ │ │ │ stacks below │ │
+│ │ [Button] [Button] │ │ │ the image │ │
+│ └─────────────────────────┘ │ │ │ │
+│ │ │ [Button] │ │
+│ │ │ [Button] │ │
+│ │ └───────────────┘ │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Responsive Features
+- **Automatic Adaptation** - Content adjusts to screen size
+- **Custom Breakpoints** - Set specific device behaviors
+- **Mobile-First Design** - Optimized for mobile devices
+- **Touch-Friendly** - Large buttons and touch targets
+- **Fast Loading** - Optimized images and lazy loading
+
+### Content Styling
+
+#### Style Customization
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Styling Options │
+├─────────────────────────────────────────────────────────────┤
+│ Typography: │
+│ Font Family: [Inter ▼] │
+│ Font Size: [16px ▼] │
+│ Line Height: [1.6 ▼] │
+│ Text Color: [#333333] [🎨] │
+│ │
+│ Layout: │
+│ Content Width: [○ Full ● Contained ○ Wide] │
+│ Margins: [Normal ▼] │
+│ Spacing: [Default ▼] │
+│ │
+│ Colors & Branding: │
+│ Primary Color: [#007cba] [🎨] │
+│ Secondary Color: [#6c757d] [🎨] │
+│ Background: [#ffffff] [🎨] │
+│ Accent Color: [#28a745] [🎨] │
+│ │
+│ Custom CSS: │
+│ [Enable custom CSS editor] │
+│ ┌─────────────────────────────────────────────────────────┐ │
+│ │ .my-custom-style { │ │
+│ │ color: #007cba; │ │
+│ │ font-weight: bold; │ │
+│ │ } │ │
+│ └─────────────────────────────────────────────────────────┘ │
+│ │
+│ [Apply Styles] [Preview Changes] [Reset to Default] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 📁 Content Organization Features
+
+### Advanced Categorization
+
+#### Hierarchical Categories
+```
+📁 Content Categories
+├── 📝 Blog
+│ ├── 🚀 Product Updates
+│ ├── 💡 Tips & Tricks
+│ ├── 📰 Company News
+│ └── 👥 Team Stories
+├── 📚 Documentation
+│ ├── 🔧 Getting Started
+│ ├── 📖 User Guides
+│ ├── 🔌 API Reference
+│ └── ❓ FAQ
+├── 🎥 Media
+│ ├── 📹 Videos
+│ ├── 📷 Photo Galleries
+│ ├── 🎵 Audio Content
+│ └── 📊 Presentations
+└── 📄 Resources
+ ├── 📑 White Papers
+ ├── 📈 Case Studies
+ ├── 🎯 Templates
+ └── 🔗 External Links
+```
+
+#### Smart Tagging System
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Tags │
+├─────────────────────────────────────────────────────────────┤
+│ Current Tags: [tutorial] [beginner] [javascript] [web-dev] │
+│ │
+│ Tag Suggestions: │
+│ Based on content analysis: │
+│ + [html] + [css] + [frontend] + [coding] │
+│ │
+│ Popular Tags: │
+│ [javascript] 234 posts [tutorial] 189 posts │
+│ [web-dev] 156 posts [beginner] 145 posts │
+│ [react] 134 posts [node.js] 98 posts │
+│ │
+│ Create New Tag: [________________] [+ Add] │
+│ │
+│ Tag Management: │
+│ [View All Tags] [Merge Tags] [Bulk Edit] [Export List] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Auto-Categorization
+- **AI-Powered Suggestions** - Smart category recommendations
+- **Content Analysis** - Automatic tag suggestions
+- **Pattern Recognition** - Learn from your categorization habits
+- **Bulk Categorization** - Apply categories to multiple posts
+- **Category Templates** - Predefined category structures
+
+### Content Series Management
+
+#### Series Creation
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Create Content Series: "Web Development Fundamentals" │
+├─────────────────────────────────────────────────────────────┤
+│ Series Information: │
+│ Title: [Web Development Fundamentals] │
+│ Description: [Complete guide to modern web development...] │
+│ Category: [Documentation > Tutorials] │
+│ Status: [Active ▼] │
+│ │
+│ Series Structure: │
+│ 1. 📝 "Introduction to HTML" [Published] │
+│ 2. 📝 "CSS Fundamentals" [Published] │
+│ 3. 📝 "JavaScript Basics" [Draft] │
+│ 4. 📝 "React Getting Started" [Planned] │
+│ 5. 📝 "Building Your First App" [Planned] │
+│ │
+│ [+ Add Episode] [Reorder] [Auto-Navigation] [Preview] │
+│ │
+│ Series Settings: │
+│ ☑ Auto-generate navigation between episodes │
+│ ☑ Create series landing page │
+│ ☑ Email subscribers when new episode published │
+│ ☐ Restrict access to series subscribers only │
+│ │
+│ [Save Series] [Publish Landing Page] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Series Features
+- **Episode Management** - Organize content in logical order
+- **Auto-Navigation** - Previous/next links between episodes
+- **Progress Tracking** - Show reader progress through series
+- **Landing Pages** - Overview pages for each series
+- **Subscription System** - Allow users to follow specific series
+
+### Content Collections
+
+#### Dynamic Collections
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Smart Collections │
+├─────────────────────────────────────────────────────────────┤
+│ 🔥 Trending This Week │
+│ Auto-collected based on: Views, shares, comments │
+│ 5 articles • Updated daily │
+│ [View Collection] [Edit Rules] │
+│ │
+│ ⭐ Staff Picks │
+│ Manually curated by: Editorial Team │
+│ 12 articles • Updated weekly │
+│ [View Collection] [Add Content] │
+│ │
+│ 🏷️ JavaScript Resources │
+│ Auto-collected based on: Tags [javascript, js, node] │
+│ 34 articles • Updated automatically │
+│ [View Collection] [Edit Rules] │
+│ │
+│ 📚 Beginner Guides │
+│ Auto-collected based on: Tags [beginner, tutorial, guide] │
+│ 23 articles • Updated automatically │
+│ [View Collection] [Edit Rules] │
+│ │
+│ [+ Create New Collection] [Manage All Collections] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Collection Types
+- **Manual Collections** - Hand-picked content
+- **Smart Collections** - Rule-based automatic collections
+- **Tag-Based** - Automatically collect by tags
+- **Category-Based** - Automatically collect by categories
+- **Performance-Based** - Collect by metrics (views, likes, etc.)
+
+## 🔍 Content Discovery Features
+
+### Advanced Search
+
+#### Search Interface
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 🔍 Search Content [____________________________] [🔍 Search] │
+├─────────────────────────────────────────────────────────────┤
+│ Filters: │
+│ Content Type: [All ▼] [Blog Posts] [Documentation] [Media] │
+│ Date Range: [All Time ▼] [Last Week] [Last Month] [Custom] │
+│ Author: [All Authors ▼] [John Doe] [Jane Smith] [Team Bot] │
+│ Category: [All Categories ▼] [Tutorials] [News] [Reviews] │
+│ Tags: [Select Tags...] [javascript] [×] [tutorial] [×] │
+│ Status: [Published ▼] [Draft] [Scheduled] [All] │
+│ │
+│ Sort By: [Relevance ▼] [Date] [Views] [Title] [Author] │
+│ Order: [Descending ▼] [Ascending] │
+│ │
+│ [Apply Filters] [Save Search] [Clear All] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Search Results
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Search Results for "javascript tutorial" (47 found) │
+├─────────────────────────────────────────────────────────────┤
+│ 📝 JavaScript Fundamentals for Beginners │
+│ A comprehensive guide to getting started with JS... │
+│ By John Doe • March 10, 2024 • Tutorial • 1,234 views │
+│ Tags: [javascript] [tutorial] [beginner] [web-dev] │
+│ [Edit] [View] [Analytics] [Duplicate] │
+├─────────────────────────────────────────────────────────────┤
+│ 🎥 JavaScript Arrays Deep Dive │
+│ Video tutorial covering array methods and best... │
+│ By Jane Smith • March 8, 2024 • Video • 892 views │
+│ Tags: [javascript] [arrays] [tutorial] [advanced] │
+│ [Edit] [View] [Analytics] [Duplicate] │
+├─────────────────────────────────────────────────────────────┤
+│ 📚 Modern JavaScript ES2024 Features │
+│ Exploring the latest features in JavaScript ES2024... │
+│ By Tech Team • March 5, 2024 • Documentation • 567 views│
+│ Tags: [javascript] [es2024] [modern] [features] │
+│ [Edit] [View] [Analytics] [Duplicate] │
+│ │
+│ [1] [2] [3] [4] [5] ... [Next] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Search Features
+- **Full-Text Search** - Search through all content
+- **Faceted Search** - Filter by multiple criteria
+- **Saved Searches** - Bookmark frequent searches
+- **Search Analytics** - Track what users search for
+- **Autocomplete** - Suggest searches as you type
+- **Search History** - Remember previous searches
+
+### Content Recommendations
+
+#### AI-Powered Suggestions
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Recommendations │
+├─────────────────────────────────────────────────────────────┤
+│ 🤖 AI Suggestions for "React Hooks Tutorial": │
+│ │
+│ Related Content to Include: │
+│ • "JavaScript Fundamentals" - Foundation knowledge │
+│ • "React Components Basics" - Prerequisites │
+│ • "State Management Guide" - Related concepts │
+│ │
+│ Similar Content (avoid duplication): │
+│ • "React Hooks Deep Dive" - Advanced version │
+│ • "Custom Hooks Tutorial" - Natural follow-up │
+│ • "React State Management" - Overlapping topic │
+│ │
+│ Trending Topics to Consider: │
+│ • "React 18 Features" - Current trending topic │
+│ • "TypeScript with React" - Popular combination │
+│ • "React Testing" - Complementary skill │
+│ │
+│ SEO Opportunities: │
+│ • "React hooks examples" - High search volume │
+│ • "useState vs useEffect" - Common comparison │
+│ • "React hooks best practices" - Evergreen content │
+│ │
+│ [Apply Suggestions] [Ignore] [Learn More] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Recommendation Engine
+- **Content Analysis** - AI analyzes your content
+- **Topic Modeling** - Understand content relationships
+- **User Behavior** - Learn from reader interactions
+- **Trending Topics** - Suggest popular subjects
+- **Gap Analysis** - Identify missing content opportunities
+
+## 📊 Content Analytics & Insights
+
+### Performance Dashboard
+
+#### Content Analytics Overview
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Performance Dashboard [Last 30 Days ▼] │
+├─────────────────────────────────────────────────────────────┤
+│ 📊 Overview Metrics: │
+│ Total Views: 45,678 ↑ 23% Unique Visitors: 28,945 ↑ 18%│
+│ Avg. Time on Page: 3:24 ↑ 12% Bounce Rate: 35% ↓ 8% │
+│ Social Shares: 1,234 ↑ 45% Comments: 567 ↑ 89% │
+│ │
+│ 🏆 Top Performing Content: │
+│ 1. "JavaScript Tutorial" - 5,678 views (↑ 234%) │
+│ 2. "React Best Practices" - 4,321 views (↑ 156%) │
+│ 3. "Web Design Trends" - 3,456 views (↑ 98%) │
+│ │
+│ 📈 Traffic Sources: │
+│ Organic Search: 45% [██████████████████] │
+│ Direct: 23% [████████] │
+│ Social Media: 18% [██████] │
+│ Referrals: 14% [████] │
+│ │
+│ 🎯 Content Goals Progress: │
+│ Monthly Views Target: 78% [███████████████████░░] │
+│ Engagement Rate Goal: 92% [████████████████████] │
+│ Content Publication: 85% [████████████████████░] │
+│ │
+│ [Detailed Report] [Export Data] [Set Goals] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Individual Content Analytics
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Content Analytics: "JavaScript Tutorial for Beginners" │
+├─────────────────────────────────────────────────────────────┤
+│ 📊 Performance Metrics (Last 30 Days): │
+│ Views: 5,678 ↑ 234% Unique Visitors: 4,321 │
+│ Avg. Session: 4:32 Bounce Rate: 28% │
+│ Shares: 123 ↑ 45% Comments: 67 ↑ 89% │
+│ Bookmarks: 234 Downloads: 45 │
+│ │
+│ 📈 Traffic Timeline: │
+│ [Graph showing daily views over 30 days] │
+│ Peak: March 15 (892 views) - Featured on social media │
+│ │
+│ 🌍 Geographic Data: │
+│ United States: 35% United Kingdom: 18% │
+│ Canada: 12% Germany: 8% │
+│ Australia: 7% Other: 20% │
+│ │
+│ 📱 Device Breakdown: │
+│ Desktop: 58% Mobile: 35% Tablet: 7% │
+│ │
+│ 🔍 Search Keywords: │
+│ "javascript tutorial" - 45% of organic traffic │
+│ "learn javascript" - 23% of organic traffic │
+│ "js beginner guide" - 18% of organic traffic │
+│ │
+│ [Detailed Report] [Optimize for SEO] [A/B Test] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### SEO Analysis & Optimization
+
+#### SEO Dashboard
+```
+┌─────────────────────────────────────────────────────────────┐
+│ SEO Analysis: "JavaScript Tutorial for Beginners" │
+├─────────────────────────────────────────────────────────────┤
+│ 🎯 SEO Score: 85/100 (Good) │
+│ │
+│ ✅ Strengths: │
+│ • Title tag optimized (52 characters) │
+│ • Meta description present (148 characters) │
+│ • Header structure (H1, H2, H3) properly used │
+│ • Images have alt text │
+│ • Internal links present (8 links) │
+│ • Mobile-friendly design │
+│ • Fast loading speed (2.1s) │
+│ │
+│ ⚠️ Improvements Needed: │
+│ • Add more internal links (recommend 12-15) │
+│ • Optimize images (3 images could be compressed) │
+│ • Add schema markup for better rich snippets │
+│ • Consider adding FAQ section │
+│ │
+│ 🔍 Keyword Analysis: │
+│ Primary: "javascript tutorial" - Density: 1.2% ✅ │
+│ Secondary: "learn javascript" - Density: 0.8% ✅ │
+│ Related: "js basics" - Density: 0.5% ⚠️ (increase) │
+│ │
+│ 📈 SERP Position: │
+│ "javascript tutorial": #3 ↑2 (Google) │
+│ "learn javascript": #7 ↓1 (Google) │
+│ "js beginner guide": #12 ↑5 (Google) │
+│ │
+│ [Apply Suggestions] [Keyword Research] [Competitor Analysis] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### SEO Tools
+- **Keyword Research** - Find optimal keywords
+- **Competitor Analysis** - Compare with similar content
+- **Schema Markup** - Add structured data automatically
+- **Meta Tag Optimization** - Suggest optimal meta tags
+- **Internal Linking** - Smart internal link suggestions
+- **Page Speed Analysis** - Performance optimization tips
+
+### A/B Testing Features
+
+#### Content Testing
+```
+┌─────────────────────────────────────────────────────────────┐
+│ A/B Test: "JavaScript Tutorial" Title Optimization │
+├─────────────────────────────────────────────────────────────┤
+│ Test Status: Running (Day 5 of 14) │
+│ Confidence Level: 78% (needs 95% to conclude) │
+│ │
+│ Variant A (Control): "JavaScript Tutorial for Beginners" │
+│ Visitors: 1,234 CTR: 12.3% Time on Page: 4:32 │
+│ Bounce Rate: 28% Conversions: 45 │
+│ │
+│ Variant B (Test): "Learn JavaScript from Zero to Hero" │
+│ Visitors: 1,198 CTR: 15.7% ↑28% Time on Page: 5:11 │
+│ Bounce Rate: 22% ↓21% Conversions: 67 ↑49% │
+│
diff --git a/book/users/features/email.md b/book/users/features/email.md
new file mode 100644
index 0000000..61c78ec
--- /dev/null
+++ b/book/users/features/email.md
@@ -0,0 +1,769 @@
+# Email & Notifications Features
+
+
+
+
+
+Welcome to the Rustelo Email & Notifications Features Guide! This comprehensive guide covers all the email communication and notification features available to keep you connected and informed about your account activity.
+
+## 🎯 Overview
+
+Rustelo's email and notification system is designed to keep you informed without overwhelming you. From account security alerts to content updates, our intelligent notification system ensures you get the right information at the right time through your preferred channels.
+
+## 📧 Email System Features
+
+### Email Notifications
+
+#### Account Security Emails
+Essential security communications to protect your account:
+
+**Login Alerts**
+```
+Subject: New sign-in to your Rustelo account
+
+Hello John,
+
+We noticed a new sign-in to your account:
+
+Device: Chrome on Windows 11
+Location: San Francisco, CA, USA
+IP Address: 192.168.1.100
+Time: March 15, 2024 at 2:30 PM PST
+
+If this was you, no action is needed. If you don't recognize this
+activity, please secure your account immediately:
+
+[Secure My Account] [Contact Support]
+
+This is an automated security email. Please don't reply to this message.
+
+Best regards,
+The Rustelo Security Team
+```
+
+**Password Change Confirmations**
+- Immediate confirmation when password is changed
+- Instructions if change was unauthorized
+- Contact information for support
+- Account recovery options
+- Security recommendations
+
+**Two-Factor Authentication Updates**
+- 2FA enabled/disabled notifications
+- Backup code generation alerts
+- Device authorization confirmations
+- Security key registration notices
+- Recovery method updates
+
+#### Content & Activity Emails
+
+**Publishing Notifications**
+```
+Subject: Your content "JavaScript Tutorial" is now live!
+
+Hello John,
+
+Great news! Your content has been successfully published:
+
+📝 "JavaScript Tutorial for Beginners"
+Published: March 15, 2024 at 3:00 PM
+Views in first hour: 127
+Initial engagement: 23 likes, 8 comments
+
+[View Content] [Check Analytics] [Share on Social]
+
+Keep up the great work!
+
+The Rustelo Team
+```
+
+**Comment & Interaction Alerts**
+- New comments on your content
+- Likes and reactions notifications
+- Mentions in comments or content
+- Content shares and referrals
+- Follower activity updates
+
+**Weekly/Monthly Summaries**
+```
+Subject: Your Rustelo Weekly Summary - March 15, 2024
+
+Hello John,
+
+Here's what happened with your content this week:
+
+📊 Performance Highlights:
+• Total views: 2,456 (↑ 23% from last week)
+• New followers: 34
+• Comments received: 67
+• Content published: 3 posts
+
+🏆 Top Performing Content:
+1. "React Hooks Guide" - 1,234 views
+2. "CSS Grid Tutorial" - 891 views
+3. "JavaScript Tips" - 567 views
+
+🎯 Goals Progress:
+• Monthly views: 78% complete (7,890 / 10,000)
+• Engagement rate: 4.2% (target: 5%)
+• Publishing schedule: On track
+
+[View Full Report] [Update Goals]
+
+Happy creating!
+The Rustelo Team
+```
+
+### Email Preferences
+
+#### Notification Categories
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email Notification Preferences │
+├─────────────────────────────────────────────────────────────┤
+│ 🔒 Security & Account (Required): │
+│ ☑ Login alerts from new devices │
+│ ☑ Password changes │
+│ ☑ Two-factor authentication updates │
+│ ☑ Suspicious activity warnings │
+│ │
+│ 📝 Content & Publishing: │
+│ ☑ Content publishing confirmations │
+│ ☑ Comment notifications │
+│ ☐ Like and reaction alerts │
+│ ☑ Mention notifications │
+│ ☐ Content performance milestones │
+│ │
+│ 📊 Analytics & Reports: │
+│ ☑ Weekly summary reports │
+│ ☐ Monthly analytics digest │
+│ ☐ Goal achievement notifications │
+│ ☐ Traffic spike alerts │
+│ │
+│ 🎯 Marketing & Updates: │
+│ ☐ Product updates and announcements │
+│ ☐ Feature tutorials and tips │
+│ ☐ Community highlights │
+│ ☐ Special offers and promotions │
+│ │
+│ ⏰ Frequency Settings: │
+│ Immediate: Security alerts │
+│ Hourly digest: [Comments and interactions ▼] │
+│ Daily digest: [Performance summaries ▼] │
+│ Weekly digest: [Analytics reports ▼] │
+│ │
+│ [Save Preferences] [Preview Email] [Unsubscribe All] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Email Delivery Options
+- **Immediate** - Critical alerts sent right away
+- **Hourly Digest** - Non-urgent notifications batched
+- **Daily Summary** - Daily activity roundup
+- **Weekly Report** - Comprehensive weekly overview
+- **Custom Schedule** - Set your own delivery times
+
+### Email Templates & Customization
+
+#### Template System
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email Template Customization │
+├─────────────────────────────────────────────────────────────┤
+│ Template: Welcome Email │
+│ │
+│ Subject Line: │
+│ [Welcome to {{site_name}}, {{user_name}}!] │
+│ │
+│ Email Content: │
+│ ┌─────────────────────────────────────────────────────────┐ │
+│ │ Hello {{user_name}}, │ │
+│ │ │ │
+│ │ Welcome to {{site_name}}! We're excited to have you │ │
+│ │ join our community of content creators. │ │
+│ │ │ │
+│ │ Here's what you can do next: │ │
+│ │ • Complete your profile │ │
+│ │ • Create your first post │ │
+│ │ • Explore our features │ │
+│ │ │ │
+│ │ [Get Started] [View Tutorial] │ │
+│ │ │ │
+│ │ If you have questions, we're here to help! │ │
+│ │ │ │
+│ │ Best regards, │ │
+│ │ The {{site_name}} Team │ │
+│ └─────────────────────────────────────────────────────────┘ │
+│ │
+│ Available Variables: │
+│ {{user_name}} {{user_email}} {{site_name}} {{site_url}} │
+│ {{date}} {{time}} {{content_count}} {{follower_count}} │
+│ │
+│ [Preview Email] [Send Test] [Save Template] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Branding Options
+- **Custom Logo** - Add your brand logo to emails
+- **Color Scheme** - Match your brand colors
+- **Typography** - Choose fonts that match your style
+- **Footer Content** - Custom footer with contact info
+- **Header Design** - Customize email header layout
+
+### Email Analytics
+
+#### Delivery Metrics
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email Analytics Dashboard │
+├─────────────────────────────────────────────────────────────┤
+│ 📊 Email Performance (Last 30 Days): │
+│ │
+│ Total Emails Sent: 12,456 │
+│ Delivery Rate: 98.7% ↑ 0.3% │
+│ Open Rate: 42.3% ↑ 2.1% │
+│ Click Rate: 8.7% ↑ 1.2% │
+│ Unsubscribe Rate: 0.8% ↓ 0.1% │
+│ │
+│ 📈 Top Performing Emails: │
+│ 1. "Weekly Summary" - 67% open rate │
+│ 2. "New Comment Alert" - 54% open rate │
+│ 3. "Security Alert" - 98% open rate │
+│ │
+│ 📱 Device Breakdown: │
+│ Mobile: 58% Desktop: 35% Tablet: 7% │
+│ │
+│ 📅 Best Send Times: │
+│ Tuesday 10 AM: 48% open rate │
+│ Thursday 2 PM: 45% open rate │
+│ Wednesday 9 AM: 43% open rate │
+│ │
+│ [Detailed Report] [A/B Test] [Optimize Send Times] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Email Performance Tracking
+- **Delivery Rates** - Successfully delivered emails
+- **Open Rates** - How many recipients open emails
+- **Click Rates** - Engagement with email content
+- **Bounce Rates** - Failed delivery tracking
+- **Unsubscribe Rates** - Opt-out monitoring
+
+## 🔔 In-App Notifications
+
+### Real-Time Notifications
+
+#### Notification Center
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Notifications [Mark All Read] [Settings] │
+├─────────────────────────────────────────────────────────────┤
+│ 🔔 New comment on "JavaScript Tutorial" │
+│ Sarah Johnson: "Great explanation of closures!" │
+│ 2 minutes ago [Reply] [View] │
+├─────────────────────────────────────────────────────────────┤
+│ 👍 Your post received 10 new likes │
+│ "React Hooks Guide" is gaining traction │
+│ 15 minutes ago [View Post] │
+├─────────────────────────────────────────────────────────────┤
+│ 📈 Traffic milestone reached! │
+│ Your content hit 1,000 total views │
+│ 1 hour ago [View Analytics] │
+├─────────────────────────────────────────────────────────────┤
+│ 🔒 New device login detected │
+│ iPhone from San Francisco, CA │
+│ 3 hours ago [Review] [Secure] │
+├─────────────────────────────────────────────────────────────┤
+│ 📝 Scheduled post published │
+│ "CSS Grid Tutorial" is now live │
+│ 6 hours ago [View] [Share] │
+├─────────────────────────────────────────────────────────────┤
+│ 👥 New follower: Alex Chen │
+│ Started following your content │
+│ 1 day ago [View Profile] │
+│ │
+│ [Load More] [Mark All Read] [Filter Notifications] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Notification Types
+- **Content Interactions** - Comments, likes, shares
+- **Publishing Updates** - Content status changes
+- **Security Alerts** - Account security events
+- **Milestones** - Achievement notifications
+- **System Updates** - Platform announcements
+- **Social Activity** - Follower interactions
+
+### Push Notifications
+
+#### Browser Push Notifications
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Browser Notification Settings │
+├─────────────────────────────────────────────────────────────┤
+│ Status: ✅ Enabled (Chrome on Windows) │
+│ │
+│ Notification Types: │
+│ ☑ New comments on your content │
+│ ☑ Security alerts and login notifications │
+│ ☐ Content performance milestones │
+│ ☐ Daily summary notifications │
+│ ☑ Direct messages from other users │
+│ ☐ Weekly analytics reports │
+│ │
+│ Timing Preferences: │
+│ Quiet Hours: 10:00 PM to 8:00 AM │
+│ Weekend Mode: [Enabled ▼] - Reduced notifications │
+│ Do Not Disturb: [Disabled ▼] │
+│ │
+│ Sound & Appearance: │
+│ Sound: [Default ▼] [Custom] [Silent] │
+│ Duration: [5 seconds ▼] │
+│ Position: [Top Right ▼] │
+│ │
+│ [Test Notification] [Disable All] [Reset to Default] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Mobile App Notifications
+```
+Mobile Push Notification Example:
+
+┌─────────────────────────────────┐
+│ 🔔 Rustelo │
+│ New comment on your post │
+│ "Great tutorial! Thanks for... │
+│ 📝 JavaScript Tutorial │
+│ Just now │
+│ [Reply] [View] │
+└─────────────────────────────────┘
+```
+
+### Notification Preferences
+
+#### Granular Control
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Notification Preferences │
+├─────────────────────────────────────────────────────────────┤
+│ 💬 Content Interactions: │
+│ Comments: [Email + Push ▼] [Email Only] [Push Only] [Off] │
+│ Likes: [Push Only ▼] [Email + Push] [Email Only] [Off] │
+│ Shares: [Email + Push ▼] [Push Only] [Email Only] [Off] │
+│ Mentions: [Email + Push ▼] [Push Only] [Email Only] [Off] │
+│ │
+│ 📊 Performance Updates: │
+│ View milestones: [Push Only ▼] [Email + Push] [Off] │
+│ Engagement spikes: [Email Only ▼] [Push Only] [Off] │
+│ Goal achievements: [Email + Push ▼] [Email Only] [Off] │
+│ │
+│ 🔒 Security & Account: │
+│ Login alerts: [Email + Push ▼] (Cannot be disabled) │
+│ Password changes: [Email + Push ▼] (Cannot be disabled) │
+│ 2FA updates: [Email + Push ▼] (Cannot be disabled) │
+│ Suspicious activity: [Email + Push ▼] (Cannot be disabled) │
+│ │
+│ ⏰ Timing Controls: │
+│ Immediate notifications: [Security only ▼] │
+│ Batch notifications: [Every 2 hours ▼] │
+│ Daily digest time: [9:00 AM ▼] │
+│ Weekly report day: [Monday ▼] │
+│ │
+│ [Save Preferences] [Preview Settings] [Reset to Default] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 📱 Mobile Notifications
+
+### Mobile App Features
+
+#### Native Mobile Notifications
+```
+iOS/Android Notification Settings:
+
+📱 Rustelo Mobile App
+├── 🔔 Allow Notifications: ✅ Enabled
+├── 🔊 Sounds: ✅ Enabled
+├── 🚨 Badges: ✅ Enabled
+├── 🔒 Lock Screen: ✅ Show
+├── 📢 Banners: ✅ Persistent
+├── ⏰ Scheduled Summary: ✅ 9:00 AM
+└── 🌙 Focus Modes: ✅ Respect Do Not Disturb
+
+Notification Categories:
+• Comments & Interactions: Immediate
+• Security Alerts: Critical (Bypasses Focus)
+• Performance Updates: Scheduled Summary
+• System Updates: Weekly Digest
+```
+
+#### Rich Notifications
+- **Interactive Elements** - Reply, like, or view directly
+- **Media Previews** - Image/video thumbnails
+- **Action Buttons** - Quick response options
+- **Progress Indicators** - Upload/publish progress
+- **Grouped Notifications** - Related notifications bundled
+
+### Smart Notification Features
+
+#### Intelligent Timing
+```
+🤖 Smart Notification AI:
+
+Learning Your Patterns:
+• Most active: Weekdays 9 AM - 5 PM
+• Engagement peak: Tuesday & Thursday afternoons
+• Preferred notification time: 10:30 AM
+• Response rate highest: Morning notifications
+
+Adaptive Scheduling:
+✅ Delay non-urgent notifications during busy periods
+✅ Bundle similar notifications during low-activity times
+✅ Prioritize security alerts regardless of timing
+✅ Respect local time zones and working hours
+✅ Learn from your interaction patterns
+
+Current Optimization:
+• Comments: Delivered during your peak engagement hours
+• Analytics: Sent Monday mornings when you typically review
+• Security: Immediate delivery always
+• Social: Bundled into afternoon digest
+```
+
+#### Contextual Notifications
+- **Location-Aware** - Relevant notifications based on location
+- **Device-Aware** - Different notifications per device type
+- **Activity-Aware** - Adjust based on current app usage
+- **Time-Aware** - Respect work hours and time zones
+- **Preference Learning** - Adapt to your interaction patterns
+
+## 🔧 Advanced Email Features
+
+### Email Automation
+
+#### Automated Email Sequences
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email Automation: New User Onboarding │
+├─────────────────────────────────────────────────────────────┤
+│ Trigger: User completes registration │
+│ │
+│ Email Sequence: │
+│ 📧 Email 1: Welcome & Getting Started │
+│ Send: Immediately after registration │
+│ Content: Welcome message, basic setup guide │
+│ CTA: Complete profile, create first post │
+│ │
+│ 📧 Email 2: Feature Introduction │
+│ Send: 3 days after registration │
+│ Content: Platform features overview │
+│ CTA: Explore editor, upload media │
+│ │
+│ 📧 Email 3: Community & Best Practices │
+│ Send: 7 days after registration │
+│ Content: Community guidelines, success tips │
+│ CTA: Join community discussions │
+│ │
+│ 📧 Email 4: Analytics & Growth │
+│ Send: 14 days after registration │
+│ Content: Understanding analytics, growth strategies │
+│ CTA: Check your analytics dashboard │
+│ │
+│ Conditions: │
+│ • Stop if user becomes inactive (no login for 30 days) │
+│ • Skip email 2 if user already created 3+ posts │
+│ • Personalize based on user's content type preferences │
+│ │
+│ [Edit Sequence] [View Analytics] [Test Automation] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Trigger-Based Emails
+- **Milestone Achievements** - Celebrate user accomplishments
+- **Engagement Drops** - Re-engagement campaigns
+- **Content Performance** - Performance-based alerts
+- **Behavior-Based** - Actions trigger specific emails
+- **Date-Based** - Anniversary, reminder emails
+
+### Email Personalization
+
+#### Dynamic Content
+```
+Email Personalization Variables:
+
+User Data:
+• {{user_name}} - "John Doe"
+• {{user_email}} - "john@example.com"
+• {{join_date}} - "March 2024"
+• {{user_timezone}} - "PST"
+• {{user_location}} - "San Francisco, CA"
+
+Content Stats:
+• {{post_count}} - "23 posts"
+• {{total_views}} - "12,456 views"
+• {{follower_count}} - "89 followers"
+• {{engagement_rate}} - "4.2%"
+
+Recent Activity:
+• {{last_post_title}} - "JavaScript Tutorial"
+• {{last_login}} - "2 hours ago"
+• {{top_post_title}} - "React Hooks Guide"
+• {{recent_comment}} - "Great explanation!"
+
+Behavioral Data:
+• {{favorite_category}} - "Tutorials"
+• {{posting_frequency}} - "3 times per week"
+• {{peak_activity_time}} - "Tuesday mornings"
+• {{device_preference}} - "Mobile"
+```
+
+#### A/B Testing for Emails
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email A/B Test: Weekly Summary Subject Lines │
+├─────────────────────────────────────────────────────────────┤
+│ Test Running: Day 3 of 7 │
+│ Sample Size: 2,000 recipients per variant │
+│ │
+│ Variant A (Control): │
+│ Subject: "Your weekly Rustelo summary" │
+│ Open Rate: 34.2% Click Rate: 6.8% │
+│ Recipients: 2,000 Opens: 684 Clicks: 136 │
+│ │
+│ Variant B (Test): │
+│ Subject: "Your content got 1,234 views this week! 📊" │
+│ Open Rate: 47.8% ↑40% Click Rate: 12.3% ↑81% │
+│ Recipients: 2,000 Opens: 956 Clicks: 246 │
+│ │
+│ Statistical Significance: 97% (High Confidence) │
+│ Recommended Action: Deploy Variant B │
+│ │
+│ [Deploy Winner] [Extend Test] [Create New Test] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 🎯 Notification Best Practices
+
+### User Experience Guidelines
+
+#### Notification Frequency Management
+```
+🎯 Smart Frequency Controls:
+
+Daily Limits:
+• Comments: Max 10 notifications
+• Likes/Reactions: Max 5 notifications
+• Security Alerts: No limit (critical)
+• Performance Updates: Max 3 notifications
+
+Batching Rules:
+• Similar notifications grouped together
+• Non-urgent items bundled into digests
+• Time-sensitive alerts sent immediately
+• User-configurable batching preferences
+
+Escalation Logic:
+1. First notification: Immediate
+2. Similar notifications: 1-hour delay
+3. Multiple similar: Batch into digest
+4. User interaction: Reset frequency counter
+```
+
+#### Content Relevance Scoring
+- **Engagement History** - Based on past interactions
+- **Content Preferences** - User's stated interests
+- **Timing Patterns** - When user typically engages
+- **Device Context** - Notification appropriateness for device
+- **Social Signals** - Community engagement levels
+
+### Privacy & Consent
+
+#### Notification Privacy Controls
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Privacy & Data Controls for Notifications │
+├─────────────────────────────────────────────────────────────┤
+│ 🔒 Data Collection for Notifications: │
+│ ☑ Basic engagement metrics (anonymized) │
+│ ☑ Timing preference analysis │
+│ ☐ Location-based notification optimization │
+│ ☐ Cross-device notification synchronization │
+│ ☐ Third-party service integration │
+│ │
+│ 📧 Email Data Handling: │
+│ ☑ Track email opens (for delivery optimization) │
+│ ☑ Track email clicks (for content improvement) │
+│ ☐ Share email metrics with partners │
+│ ☐ Use email data for advertising │
+│ │
+│ 🔔 Notification Content: │
+│ Show in notifications: [Basic info only ▼] │
+│ Options: Full content | Basic info | Title only | Count only│
+│ │
+│ Sensitive content handling: [Extra privacy ▼] │
+│ Options: Standard | Extra privacy | Maximum privacy │
+│ │
+│ 📱 Device Permissions: │
+│ • Camera access: For QR code notifications │
+│ • Microphone access: For voice message alerts │
+│ • Location access: For location-relevant notifications │
+│ • Contacts access: For social notifications │
+│ │
+│ [Save Privacy Settings] [Export Data] [Delete All Data] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Consent Management
+- **Granular Permissions** - Individual consent for each type
+- **Easy Opt-out** - One-click unsubscribe options
+- **Consent History** - Track permission changes
+- **Regular Reminders** - Periodic consent verification
+- **Clear Explanations** - Why each notification type is useful
+
+## 📊 Email & Notification Analytics
+
+### Performance Dashboard
+
+#### Comprehensive Analytics
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Email & Notification Analytics │
+├─────────────────────────────────────────────────────────────┤
+│ 📧 Email Performance (Last 30 Days): │
+│ Sent: 45,678 Delivered: 45,123 (98.8%) │
+│ Opened: 19,205 (42.6%) Clicked: 3,841 (8.5%) │
+│ Unsubscribed: 127 (0.3%) Bounced: 555 (1.2%) │
+│ │
+│ 🔔 Push Notification Performance: │
+│ Sent: 23,456 Delivered: 22,891 (97.6%) │
+│ Clicked: 6,867 (29.3%) Dismissed: 15,024 (64.0%) │
+│ Disabled after: 234 (1.0%) │
+│ │
+│ 📱 In-App Notification Performance: │
+│ Shown: 34,567 Clicked: 12,345 (35.7%) │
+│ Dismissed: 20,123 (58.2%) Ignored: 2,099 (6.1%) │
+│ │
+│ 🎯 Top Performing Notification Types: │
+│ 1. Security alerts: 94% engagement │
+│ 2. Comment notifications: 67% engagement │
+│ 3. Performance milestones: 45% engagement │
+│ 4. Weekly summaries: 38% engagement │
+│ 5. Product updates: 23% engagement │
+│ │
+│ 📈 Engagement Trends: │
+│ Best send time: Tuesday 10:30 AM (52% open rate) │
+│ Worst send time: Friday 6:00 PM (18% open rate) │
+│ Mobile vs Desktop: 62% mobile opens │
+│ │
+│ [Detailed Report] [Optimize Timing] [A/B Test Setup] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Deliverability Monitoring
+
+#### Email Deliverability Health
+```
+📧 Email Deliverability Report:
+
+Sender Reputation: ✅ Excellent (98/100)
+• IP Reputation: Clean
+• Domain Reputation: Excellent
+• Authentication: DKIM ✅ SPF ✅ DMARC ✅
+• List Quality: High (2.1% bounce rate)
+
+Inbox Placement Rates:
+• Gmail: 94% inbox, 5% promotions, 1% spam
+• Outlook: 91% inbox, 7% clutter, 2% spam
+• Yahoo: 89% inbox, 9% bulk, 2% spam
+• Apple Mail: 96% inbox, 3% junk, 1% blocked
+
+Recommendations:
+✅ Maintain current sending practices
+⚠️ Monitor Yahoo delivery (slight decline)
+✅ Continue regular list cleaning
+✅ Keep engagement rates above 20%
+```
+
+## 🛠️ Advanced Configuration
+
+### Developer Integration
+
+#### Webhook Notifications
+```json
+{
+ "event": "comment.created",
+ "timestamp": "2024-03-15T14:30:00Z",
+ "data": {
+ "content_id": "post_123",
+ "content_title": "JavaScript Tutorial",
+ "comment_id": "comment_456",
+ "comment_text": "Great explanation!",
+ "author": {
+ "id": "user_789",
+ "name": "Sarah Johnson",
+ "email": "sarah@example.com"
+ },
+ "notification_settings": {
+ "email_enabled": true,
+ "push_enabled": true,
+ "immediate_delivery": true
+ }
+ }
+}
+```
+
+#### API Integration
+```javascript
+// Email API Example
+const emailAPI = {
+ // Send custom notification email
+ sendNotification: async (userId, template, data) => {
+ const response = await fetch('/api/notifications/email', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({
+ user_id: userId,
+ template: template,
+ data: data,
+ priority: 'normal'
+ })
+ });
+ return response.json();
+ },
+
+ // Get notification preferences
+ getPreferences: async (userId) => {
+ const response = await fetch(`/api/users/${userId}/notifications`);
+ return response.json();
+ },
+
+ // Update notification settings
+ updatePreferences: async (userId, preferences) => {
+ const response = await fetch(`/api/users/${userId}/notifications`, {
+ method: 'PUT',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(preferences)
+ });
+ return response.json();
+ }
+};
+```
+
+### Enterprise Features
+
+#### Team Notification Management
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Team Notification Settings │
+├─────────────────────────────────────────────────────────────┤
+│ Organization: TechCorp Inc. │
+│ Team Members: 25 users │
+│ │
+│ 👥 Team-wide Policies: │
+│ ☑ Require security notifications (cannot be disabled) │
+│ ☑ Standardize business hours across team │
+│ ☑ Limit marketing emails to weekly digest │
+│ ☐ Enforce notification frequency limits │
+│ │
+│ 📊 Team Notification Analytics: │
+│ • Average engagement rate:
diff --git a/book/users/features/mobile.md b/book/users/features/mobile.md
new file mode 100644
index 0000000..f9a8ab3
--- /dev/null
+++ b/book/users/features/mobile.md
@@ -0,0 +1 @@
+# Mobile Experience
diff --git a/book/users/features/search.md b/book/users/features/search.md
new file mode 100644
index 0000000..75eed59
--- /dev/null
+++ b/book/users/features/search.md
@@ -0,0 +1 @@
+# Search & Discovery
diff --git a/book/users/interface.md b/book/users/interface.md
new file mode 100644
index 0000000..c358419
--- /dev/null
+++ b/book/users/interface.md
@@ -0,0 +1,492 @@
+# User Interface Guide
+
+
+
+
+
+Welcome to the[Rustelo](/) User Interface Guide! This comprehensive guide will help you navigate and use all the features of your[Rustelo](/) application with confidence.
+
+## 🎯 Overview
+
+The[Rustelo](/) interface is designed to be intuitive, responsive, and accessible across all devices. Whether you're using a desktop computer, tablet, or mobile phone, you'll have a consistent and enjoyable experience.
+
+## 🏠 Homepage & Navigation
+
+### Main Navigation Bar
+
+The navigation bar is your primary way to move around the application:
+
+```
+[Logo] [Home] [Dashboard] [Content] [Profile] [Settings] [Logout]
+```
+
+#### Navigation Elements:
+- **Home** - Return to the main landing page
+- **Dashboard** - Your personal workspace and overview
+- **Content** - Create, view, and manage content
+- **Profile** - Manage your account settings
+- **Settings** - Application preferences
+- **Logout** - Securely sign out of your account
+
+### Mobile Navigation
+
+On mobile devices, the navigation transforms into a hamburger menu:
+
+```
+[≡] [Logo] [🔔] [👤]
+```
+
+- **≡** - Opens the full navigation menu
+- **🔔** - Notifications (if enabled)
+- **👤** - Quick access to profile
+
+## 📱 Responsive Design
+
+### Desktop Experience
+- **Full sidebar navigation** - Always visible for quick access
+- **Multi-column layouts** - Efficient use of screen space
+- **Keyboard shortcuts** - Power user features
+- **Drag and drop** - Intuitive content management
+
+### Tablet Experience
+- **Collapsible sidebar** - Maximizes content area
+- **Touch-friendly buttons** - Optimized for touch interaction
+- **Swipe gestures** - Navigate between sections
+- **Adaptive layouts** - Adjusts to orientation changes
+
+### Mobile Experience
+- **Bottom navigation** - Easy thumb access
+- **Swipe navigation** - Gesture-based interactions
+- **Optimized forms** - Mobile-first input design
+- **Offline support** - Basic functionality without internet
+
+## 🎨 Interface Elements
+
+### Color Scheme
+
+The[Rustelo](/) interface uses a carefully crafted color palette:
+
+- **Primary Blue** (#3182ce) - Main actions and links
+- **Secondary Gray** (#718096) - Supporting text and borders
+- **Success Green** (#38a169) - Positive feedback and success states
+- **Warning Orange** (#ed8936) - Caution and warning messages
+- **Error Red** (#e53e3e) - Error states and destructive actions
+
+### Typography
+
+- **Headers** - Clear hierarchy with consistent sizing
+- **Body Text** - Readable font with optimal line spacing
+- **Code** - Monospace font for technical content
+- **Links** - Clearly distinguished with hover effects
+
+### Buttons & Controls
+
+#### Primary Actions
+```
+[Save Changes] [Create Post] [Send Message]
+```
+- Blue background with white text
+- Used for main actions on a page
+
+#### Secondary Actions
+```
+[Cancel] [Edit] [View Details]
+```
+- Gray border with blue text
+- Used for supporting actions
+
+#### Destructive Actions
+```
+[Delete] [Remove] [Clear All]
+```
+- Red background or border
+- Used for actions that remove or destroy data
+
+## 🔧 Dashboard Overview
+
+### Dashboard Layout
+
+Your dashboard provides an at-a-glance view of your account:
+
+```
+┌─────────────────┬─────────────────┐
+│ Quick Stats │ Recent Activity│
+├─────────────────┼─────────────────┤
+│ Content │ Notifications │
+│ Overview │ & Messages │
+├─────────────────┼─────────────────┤
+│ Quick Actions │ System Status │
+└─────────────────┴─────────────────┘
+```
+
+### Quick Stats Widget
+- **Total Content** - Number of posts, articles, or items
+- **Views/Engagement** - Traffic and interaction metrics
+- **Storage Used** - File and media storage usage
+- **Account Status** - Current subscription or plan level
+
+### Recent Activity
+- **Latest actions** - Recent posts, edits, and interactions
+- **System updates** - Important notifications about the application
+- **Community activity** - Updates from other users (if applicable)
+
+### Quick Actions
+- **Create New** - Shortcuts to create content
+- **Upload Files** - Direct access to media upload
+- **Settings** - Quick access to account preferences
+- **Help** - Direct link to support resources
+
+## 📝 Content Management Interface
+
+### Content List View
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ [🔍 Search] [📝 New Post] [🔄 Refresh] [⚙️ Settings] │
+├─────────────────────────────────────────────────────────────┤
+│ Title │ Status │ Date │ Actions │
+├─────────────────────────────────────────────────────────────┤
+│ Welcome to Rustelo │ Published│ 2024-01-15 │ [Ed][Del]│
+│ Getting Started Guide │ Draft │ 2024-01-14 │ [Ed][Del]│
+│ Feature Documentation │ Published│ 2024-01-13 │ [Ed][Del]│
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Content Editor
+
+The content editor provides a rich writing experience:
+
+#### Editor Toolbar
+```
+[B] [I] [U] [📎] [🔗] [📷] [📊] [💾] [👁️] [📱]
+```
+
+- **B** - Bold text
+- **I** - Italic text
+- **U** - Underline text
+- **📎** - Insert files/attachments
+- **🔗** - Insert links
+- **📷** - Insert images
+- **📊** - Insert tables/charts
+- **💾** - Save draft
+- **👁️** - Preview
+- **📱** - Mobile preview
+
+#### Editor Features
+- **Live Preview** - See changes as you type
+- **Auto-save** - Automatically saves drafts
+- **Markdown Support** - Rich text formatting
+- **Spell Check** - Built-in spelling and grammar
+- **Word Count** - Track document length
+- **Version History** - Access previous versions
+
+## 🔐 Authentication Interface
+
+### Login Screen
+
+```
+┌─────────────────────────────────────┐
+│ Welcome Back │
+├─────────────────────────────────────┤
+│ Email: [________________] │
+│ Password: [________________] │
+│ □ Remember me │
+│ │
+│ [ Sign In ] │
+│ │
+│ Forgot password? | Create account │
+└─────────────────────────────────────┘
+```
+
+### Registration Screen
+
+```
+┌─────────────────────────────────────┐
+│ Create Your Account │
+├─────────────────────────────────────┤
+│ Full Name: [________________] │
+│ Email: [________________] │
+│ Username: [________________] │
+│ Password: [________________] │
+│ Confirm: [________________] │
+│ │
+│ □ I agree to the Terms of Service │
+│ │
+│ [ Create Account ] │
+│ │
+│ Already have an account? Sign in │
+└─────────────────────────────────────┘
+```
+
+### Password Strength Indicator
+
+```
+Password: [weak____strong]
+✗ At least 8 characters
+✗ Contains uppercase letter
+✓ Contains lowercase letter
+✗ Contains number
+✗ Contains special character
+```
+
+## 👤 Profile Management
+
+### Profile Overview
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ [👤 Avatar] John Doe │
+│ john.doe@example.com │
+│ Member since: January 2024 │
+├─────────────────────────────────────────────────────────────┤
+│ [Edit Profile] [Change Password] [Privacy Settings] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Profile Editing
+
+#### Basic Information
+- **Full Name** - Your display name
+- **Email Address** - Account email (used for login)
+- **Username** - Unique identifier
+- **Bio/Description** - About yourself
+- **Location** - Your location (optional)
+- **Website** - Personal or professional website
+
+#### Profile Picture
+- **Upload New** - Choose from your device
+- **Remove Current** - Delete existing avatar
+- **Supported Formats** - JPG, PNG, GIF (max 2MB)
+
+#### Privacy Settings
+- **Profile Visibility** - Public, Private, or Friends Only
+- **Contact Information** - Show/hide email and other details
+- **Activity Status** - Show when you're online
+- **Search Visibility** - Allow others to find you in search
+
+## 📊 Settings & Preferences
+
+### Account Settings
+
+#### Security
+- **Change Password** - Update your login password
+- **Two-Factor Authentication** - Enable/disable 2FA
+- **Login History** - View recent login attempts
+- **Connected Devices** - Manage logged-in devices
+
+#### Notifications
+- **Email Notifications** - Control email alerts
+- **Push Notifications** - Mobile and desktop notifications
+- **Frequency** - How often to receive updates
+- **Types** - What events trigger notifications
+
+#### Privacy
+- **Data Sharing** - Control what data is shared
+- **Cookie Preferences** - Manage tracking cookies
+- **Export Data** - Download your account data
+- **Delete Account** - Permanently remove your account
+
+### Application Settings
+
+#### Appearance
+- **Theme** - Light, Dark, or System preference
+- **Font Size** - Adjust text size for readability
+- **Compact Mode** - Reduce spacing for more content
+- **Animations** - Enable/disable interface animations
+
+#### Language & Region
+- **Language** - Select your preferred language
+- **Time Zone** - Set your local time zone
+- **Date Format** - Choose date display format
+- **Number Format** - Regional number formatting
+
+## 🔍 Search & Discovery
+
+### Search Interface
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ [🔍] Search everything... [⚙️] │
+├─────────────────────────────────────────────────────────────┤
+│ Recent Searches: │
+│ • getting started guide │
+│ • user authentication │
+│ • content management │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Search Features
+- **Real-time suggestions** - As you type
+- **Search history** - Recent searches saved
+- **Filters** - Refine by date, type, author
+- **Saved searches** - Bookmark frequent searches
+- **Advanced search** - Boolean operators and field-specific search
+
+### Search Results
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Results for "getting started" (42 found) │
+├─────────────────────────────────────────────────────────────┤
+│ 📄 Getting Started Guide │
+│ A comprehensive guide to help you get started with... │
+│ By Admin • 2024-01-15 • Documentation │
+├─────────────────────────────────────────────────────────────┤
+│ 📝 First Steps Tutorial │
+│ Learn the basics of using the platform with this... │
+│ By Support Team • 2024-01-10 • Tutorial │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 📧 Notifications & Messages
+
+### Notification Center
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Notifications [Mark All] │
+├─────────────────────────────────────────────────────────────┤
+│ 🔔 New comment on your post • 2 min ago │
+│ 📝 Your draft was auto-saved • 5 min ago │
+│ ⚠️ Storage limit reached • 1 hr ago │
+│ 🎉 Welcome to Rustelo! • 1 day ago │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Notification Types
+- **🔔 Activity** - Comments, likes, shares
+- **📝 Content** - Auto-saves, publishing status
+- **⚠️ System** - Warnings, maintenance alerts
+- **🎉 Welcome** - Onboarding and milestone messages
+- **📧 Email** - New messages and updates
+
+## 🛠️ Accessibility Features
+
+### Keyboard Navigation
+- **Tab** - Move between interactive elements
+- **Enter/Space** - Activate buttons and links
+- **Escape** - Close modals and menus
+- **Arrow Keys** - Navigate menus and lists
+- **Ctrl+/** - Open keyboard shortcuts help
+
+### Screen Reader Support
+- **ARIA Labels** - Descriptive labels for all elements
+- **Semantic HTML** - Proper heading hierarchy
+- **Focus Management** - Logical tab order
+- **Status Announcements** - Screen reader notifications
+
+### Visual Accessibility
+- **High Contrast Mode** - Enhanced color contrast
+- **Large Text** - Scalable font sizes
+- **Color Blind Friendly** - Distinguishable colors
+- **Reduced Motion** - Minimize animations
+
+## 📱 Mobile Interface
+
+### Mobile Navigation Patterns
+
+#### Bottom Navigation
+```
+[🏠 Home] [📝 Content] [🔍 Search] [👤 Profile]
+```
+
+#### Swipe Gestures
+- **Swipe Left** - Go back/previous
+- **Swipe Right** - Go forward/next
+- **Pull Down** - Refresh content
+- **Pull Up** - Load more content
+
+### Mobile-Specific Features
+- **Voice Input** - Dictate text content
+- **Camera Integration** - Take photos directly
+- **Offline Mode** - Basic functionality without internet
+- **Share Integration** - Share to other apps
+
+## 🎯 Tips for Better Experience
+
+### Productivity Tips
+1. **Use Keyboard Shortcuts** - Speed up common actions
+2. **Customize Your Dashboard** - Arrange widgets to your preference
+3. **Save Frequent Searches** - Bookmark commonly used searches
+4. **Enable Auto-save** - Never lose your work
+5. **Use Tags** - Organize content with labels
+
+### Performance Tips
+1. **Close Unused Tabs** - Reduce memory usage
+2. **Use Compact Mode** - Fit more content on screen
+3. **Optimize Images** - Compress before uploading
+4. **Clear Cache** - Refresh data when needed
+5. **Update Browser** - Use latest version for best performance
+
+### Security Tips
+1. **Enable 2FA** - Add extra security layer
+2. **Use Strong Passwords** - Unique for each account
+3. **Log Out on Shared Devices** - Protect your account
+4. **Review Login History** - Check for suspicious activity
+5. **Keep Software Updated** - Install security patches
+
+## 🔧 Troubleshooting Common Issues
+
+### Login Problems
+**Issue:** Can't log in
+**Solutions:**
+- Check email and password spelling
+- Try password reset if forgotten
+- Clear browser cache and cookies
+- Disable browser extensions temporarily
+
+### Loading Issues
+**Issue:** Pages won't load
+**Solutions:**
+- Check internet connection
+- Refresh the page (Ctrl+R or F5)
+- Clear browser cache
+- Try incognito/private browsing mode
+
+### Mobile Issues
+**Issue:** App not working on mobile
+**Solutions:**
+- Update your browser
+- Try the mobile app if available
+- Check mobile data/WiFi connection
+- Restart your device
+
+## 🆘 Getting Help
+
+### Built-in Help
+- **Help Button** - Available on most pages
+- **Tooltips** - Hover for quick explanations
+- **Getting Started Tour** - Guided walkthrough
+- **FAQ Section** - Common questions answered
+
+### Support Options
+- **Help Center** - Comprehensive documentation
+- **Community Forum** - User discussions and solutions
+- **Email Support** - Direct assistance from support team
+- **Live Chat** - Real-time help when available
+
+### Self-Service
+- **Knowledge Base** - Searchable help articles
+- **Video Tutorials** - Visual step-by-step guides
+- **Feature Announcements** - Stay updated on new features
+- **Status Page** - Check system status and outages
+
+## 📚 Next Steps
+
+Now that you understand the interface, explore these areas:
+
+1. **[User Authentication](./authentication.md)** - Learn about account security
+2. **[Content Management](./content.md)** - Create and manage your content
+3. **[Profile Management](./profile.md)** - Customize your account
+4. **[Media Management](./media.md)** - Handle files and images
+5. **[Features Overview](./features/)** - Discover all available features
+
+## 🎉 Conclusion
+
+The[Rustelo](/) interface is designed to be intuitive and powerful, helping you accomplish your goals efficiently. Whether you're a new user or an experienced one, these interface elements will help you navigate the application with confidence.
+
+Remember, the interface is responsive and works great on all devices. Take some time to explore and find the workflow that works best for you!
+
+---
+
+**Happy exploring!** 🚀✨
diff --git a/book/users/media.md b/book/users/media.md
new file mode 100644
index 0000000..fbf6806
--- /dev/null
+++ b/book/users/media.md
@@ -0,0 +1,774 @@
+# Media & File Management Guide
+
+
+
+
+
+Welcome to the Rustelo Media & File Management Guide! This comprehensive guide will help you upload, organize, and manage all types of media and files on the platform efficiently and effectively.
+
+## 🎯 Overview
+
+Rustelo's media management system is designed to handle all your digital assets seamlessly. Whether you're working with images, videos, documents, or audio files, this guide will help you master every aspect of media handling, from upload to optimization.
+
+## 📁 Supported File Types
+
+### Image Formats
+- **JPEG/JPG** - Best for photos and complex images
+- **PNG** - Best for graphics with transparency
+- **GIF** - Best for simple animations
+- **WebP** - Modern format with excellent compression
+- **SVG** - Vector graphics and logos
+- **AVIF** - Next-generation image format
+- **HEIC** - iPhone/modern device format
+
+### Video Formats
+- **MP4** - Universal video format
+- **MOV** - Apple QuickTime format
+- **AVI** - Windows video format
+- **WebM** - Web-optimized video format
+- **MKV** - High-quality container format
+- **WMV** - Windows Media Video
+
+### Audio Formats
+- **MP3** - Universal audio format
+- **WAV** - Uncompressed audio
+- **AAC** - Advanced audio coding
+- **OGG** - Open-source audio format
+- **FLAC** - Lossless audio compression
+- **M4A** - Apple audio format
+
+### Document Formats
+- **PDF** - Portable Document Format
+- **DOC/DOCX** - Microsoft Word documents
+- **XLS/XLSX** - Microsoft Excel spreadsheets
+- **PPT/PPTX** - Microsoft PowerPoint presentations
+- **TXT** - Plain text files
+- **RTF** - Rich Text Format
+- **ODT/ODS/ODP** - OpenDocument formats
+
+### Archive Formats
+- **ZIP** - Standard compression format
+- **RAR** - WinRAR archive format
+- **7Z** - 7-Zip archive format
+- **TAR.GZ** - Unix/Linux archive format
+
+## 📤 Uploading Media
+
+### Upload Methods
+
+#### Drag and Drop
+1. **Open the media library** or content editor
+2. **Drag files** from your computer
+3. **Drop them** into the upload area
+4. **Wait for processing** to complete
+5. **Review and organize** uploaded files
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 📤 Upload Area │
+│ │
+│ Drag and drop files here │
+│ or click to browse │
+│ │
+│ Supported: Images, Videos, Audio, Documents │
+│ Maximum size: 50MB per file │
+│ │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### File Browser
+1. **Click "Upload Files"** button
+2. **Browse your computer** using the file dialog
+3. **Select single or multiple files** (Ctrl+click for multiple)
+4. **Click "Open"** to start upload
+5. **Monitor progress** in the upload queue
+
+#### URL Import
+1. **Click "Import from URL"** option
+2. **Enter the file URL** in the input field
+3. **Click "Import"** to download and add
+4. **Wait for processing** to complete
+5. **File is added** to your media library
+
+#### Mobile Camera
+1. **Tap the camera icon** (mobile only)
+2. **Choose "Take Photo"** or "Record Video"
+3. **Capture your media** using device camera
+4. **Review and confirm** the captured media
+5. **Upload directly** to your library
+
+### Upload Progress & Queue
+
+#### Progress Indicators
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Upload Queue [✕ Cancel] │
+├─────────────────────────────────────────────────────────────┤
+│ 📷 vacation-photo.jpg [████████████] 100% ✅ │
+│ 🎥 presentation-video.mp4 [██████░░░░░░] 45% │
+│ 📄 report-document.pdf [░░░░░░░░░░░░] 0% ⏸️ │
+├─────────────────────────────────────────────────────────────┤
+│ 3 files • 2 completed • 1 uploading • 0 failed │
+└─────────────────────────────────────────────────────────────┘
+```
+
+#### Upload Controls
+- **Pause/Resume** - Control individual uploads
+- **Cancel** - Stop specific file uploads
+- **Retry Failed** - Restart failed uploads
+- **Clear Completed** - Remove finished uploads
+- **Upload All** - Start all queued uploads
+
+### File Size Limits
+
+#### Default Limits
+- **Images**: 10MB per file
+- **Videos**: 100MB per file
+- **Audio**: 25MB per file
+- **Documents**: 50MB per file
+- **Archives**: 100MB per file
+
+#### Storage Quotas
+- **Free Account**: 1GB total storage
+- **Premium Account**: 50GB total storage
+- **Business Account**: 500GB total storage
+- **Enterprise**: Unlimited storage
+
+#### Optimization Tips
+- **Compress images** before uploading
+- **Use appropriate formats** for content type
+- **Resize large images** to reasonable dimensions
+- **Convert videos** to web-friendly formats
+- **Archive multiple files** to save space
+
+## 🖼️ Image Management
+
+### Image Upload & Processing
+
+#### Automatic Processing
+- **Format Conversion** - Automatic WebP generation
+- **Thumbnail Creation** - Multiple size thumbnails
+- **Metadata Extraction** - EXIF data reading
+- **Color Palette** - Dominant color detection
+- **Optimization** - Lossless compression
+
+#### Image Information Display
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 📷 landscape-photo.jpg [Edit] [✕] │
+├─────────────────────────────────────────────────────────────┤
+│ [🖼️ Preview Image] │
+├─────────────────────────────────────────────────────────────┤
+│ Dimensions: 1920 × 1080 pixels │
+│ File Size: 2.3 MB (original) • 845 KB (optimized) │
+│ Format: JPEG • Color Space: sRGB │
+│ Created: March 15, 2024 at 2:30 PM │
+│ Camera: Canon EOS R5 • ISO 200 • f/8 • 1/250s │
+├─────────────────────────────────────────────────────────────┤
+│ Alt Text: [Beautiful mountain landscape at sunset] │
+│ Caption: [Optional image caption] │
+│ Tags: [landscape] [sunset] [mountains] [+ Add Tag] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Image Editing Tools
+
+#### Basic Editing
+- **Crop** - Adjust image dimensions and aspect ratio
+- **Resize** - Change image resolution
+- **Rotate** - Rotate 90°, 180°, or 270°
+- **Flip** - Horizontal or vertical flipping
+- **Straighten** - Correct tilted horizons
+
+#### Advanced Editing
+- **Brightness** - Adjust image brightness
+- **Contrast** - Enhance or reduce contrast
+- **Saturation** - Color intensity adjustment
+- **Exposure** - Lighten or darken images
+- **Filters** - Apply artistic effects
+
+#### Image Editor Interface
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Image Editor [Save] [Cancel] │
+├─────────────────────────────────────────────────────────────┤
+│ [🖼️ Large Preview Image] │
+├─────────────────────────────────────────────────────────────┤
+│ Tools: [✂️ Crop] [↻ Rotate] [🔄 Flip] [📐 Straighten] │
+│ │
+│ Adjustments: │
+│ Brightness: [━━━━━●━━━━] 0 │
+│ Contrast: [━━━━━●━━━━] 0 │
+│ Saturation: [━━━━━●━━━━] 0 │
+│ │
+│ Filters: [None] [B&W] [Sepia] [Vintage] [Vibrant] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Image Optimization
+
+#### Automatic Optimization
+- **WebP Generation** - Modern format for web
+- **Progressive JPEG** - Faster loading
+- **Lossless Compression** - Reduce file size
+- **Responsive Images** - Multiple sizes generated
+- **Lazy Loading** - Load images as needed
+
+#### Manual Optimization
+- **Quality Settings** - Adjust compression level
+- **Format Selection** - Choose optimal format
+- **Dimension Control** - Set maximum dimensions
+- **Metadata Stripping** - Remove unnecessary data
+
+### Image Gallery Features
+
+#### Gallery Views
+- **Grid View** - Thumbnail grid layout
+- **List View** - Detailed list with metadata
+- **Slideshow** - Full-screen image viewing
+- **Lightbox** - Overlay image display
+- **Comparison** - Side-by-side image comparison
+
+#### Bulk Operations
+- **Select Multiple** - Checkbox selection
+- **Bulk Delete** - Remove multiple images
+- **Bulk Tag** - Add tags to multiple images
+- **Bulk Download** - Download as archive
+- **Bulk Optimization** - Process multiple images
+
+## 🎥 Video Management
+
+### Video Upload & Processing
+
+#### Video Processing Pipeline
+1. **Upload** - File transfer to server
+2. **Validation** - Format and size checking
+3. **Transcoding** - Convert to web formats
+4. **Thumbnail Generation** - Create preview images
+5. **Metadata Extraction** - Duration, resolution, etc.
+6. **Quality Optimization** - Multiple quality levels
+
+#### Video Information
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 🎥 product-demo.mp4 [Edit] [✕] │
+├─────────────────────────────────────────────────────────────┤
+│ [🎬 Video Player with Preview] │
+├─────────────────────────────────────────────────────────────┤
+│ Duration: 5:32 • Resolution: 1920×1080 • 30 FPS │
+│ File Size: 45.2 MB • Bitrate: 1.2 Mbps │
+│ Format: MP4 (H.264) • Audio: AAC Stereo │
+│ Upload Date: March 15, 2024 │
+├─────────────────────────────────────────────────────────────┤
+│ Title: [Product Demo Video] │
+│ Description: [Comprehensive overview of our new product] │
+│ Tags: [demo] [product] [tutorial] [+ Add Tag] │
+│ │
+│ Thumbnail: [Auto] [Custom Upload] [Generate from Video] │
+│ Captions: [Auto-Generated] [Upload SRT] [Manual Entry] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Video Player Features
+
+#### Playback Controls
+- **Play/Pause** - Standard playback control
+- **Seek Bar** - Timeline navigation
+- **Volume Control** - Audio level adjustment
+- **Speed Control** - Playback speed options (0.5x to 2x)
+- **Fullscreen** - Full browser/screen viewing
+
+#### Advanced Features
+- **Captions/Subtitles** - Text overlay support
+- **Quality Selection** - Multiple resolution options
+- **Chapter Markers** - Navigate to specific sections
+- **Thumbnail Preview** - Hover to see preview frames
+- **Download Options** - Allow video downloads
+
+### Video Optimization
+
+#### Automatic Processing
+- **Multiple Resolutions** - 480p, 720p, 1080p versions
+- **Adaptive Streaming** - Quality adjusts to connection
+- **Compression** - Optimal file size for web
+- **Format Conversion** - Web-compatible formats
+- **Mobile Optimization** - Device-specific encoding
+
+#### Compression Settings
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Video Compression Settings │
+├─────────────────────────────────────────────────────────────┤
+│ Quality Preset: [Web Optimized ▼] │
+│ │
+│ Resolutions to Generate: │
+│ ☑ 480p (854×480) - Mobile │
+│ ☑ 720p (1280×720) - Standard HD │
+│ ☑ 1080p (1920×1080) - Full HD │
+│ ☐ 4K (3840×2160) - Ultra HD │
+│ │
+│ Video Codec: [H.264 ▼] Audio Codec: [AAC ▼] │
+│ Bitrate: [Auto ▼] Frame Rate: [Original ▼] │
+│ │
+│ [Process Video] [Use Defaults] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Video Embedding
+
+#### Embed Options
+- **Direct Embed** - Host videos on your site
+- **YouTube Integration** - Upload to YouTube
+- **Vimeo Integration** - Professional video hosting
+- **Custom Player** - Branded video player
+- **Responsive Embed** - Mobile-friendly embedding
+
+#### Embed Code Generation
+```html
+
+
+
+
+```
+
+## 🎵 Audio Management
+
+### Audio Upload & Processing
+
+#### Audio File Support
+- **Podcast Episodes** - Full podcast management
+- **Music Files** - Songs and instrumental tracks
+- **Voice Recordings** - Interviews and narration
+- **Sound Effects** - Audio clips and samples
+- **Ambient Audio** - Background sounds
+
+#### Audio Player Interface
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 🎵 podcast-episode-01.mp3 [Edit] [✕] │
+├─────────────────────────────────────────────────────────────┤
+│ [▶️] [⏸️] [⏹️] [⏪] [⏩] [🔊] [█████████░] 9:32 / 15:45 │
+│ │
+│ [🎵 Audio Waveform Visualization] │
+├─────────────────────────────────────────────────────────────┤
+│ Title: [Introduction to Web Development] │
+│ Artist/Creator: [John Doe] │
+│ Duration: 15:45 • Bitrate: 128 kbps • File Size: 15.2 MB │
+│ Format: MP3 • Sample Rate: 44.1 kHz • Channels: Stereo │
+├─────────────────────────────────────────────────────────────┤
+│ Description: [Welcome to our podcast series on web dev...] │
+│ Tags: [podcast] [web-development] [tutorial] [+ Add Tag] │
+│ │
+│ Transcript: [Auto-Generated] [Upload Text] [Manual Entry] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Audio Features
+
+#### Playback Controls
+- **Standard Controls** - Play, pause, stop, seek
+- **Speed Control** - Adjust playback speed
+- **Volume Control** - Audio level adjustment
+- **Loop Options** - Repeat single or playlist
+- **Shuffle** - Random playback order
+
+#### Audio Processing
+- **Normalization** - Consistent volume levels
+- **Noise Reduction** - Remove background noise
+- **Compression** - Optimize file size
+- **Format Conversion** - Multiple format support
+- **Metadata Extraction** - ID3 tags and information
+
+### Podcast Management
+
+#### Podcast Features
+- **Episode Management** - Organize podcast episodes
+- **RSS Feed Generation** - Automatic podcast feed
+- **iTunes Integration** - Submit to podcast directories
+- **Transcript Support** - Episode transcriptions
+- **Chapter Markers** - Navigate episode sections
+
+#### Podcast Dashboard
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 🎙️ Podcast: "Web Development Weekly" │
+├─────────────────────────────────────────────────────────────┤
+│ Episodes: 24 • Subscribers: 1,250 • Total Downloads: 15,630 │
+├─────────────────────────────────────────────────────────────┤
+│ Recent Episodes: │
+│ 📅 Ep. 24 - "React Hooks Deep Dive" (Mar 15) - 523 plays │
+│ 📅 Ep. 23 - "CSS Grid Mastery" (Mar 8) - 612 plays │
+│ 📅 Ep. 22 - "JavaScript ES2024" (Mar 1) - 734 plays │
+├─────────────────────────────────────────────────────────────┤
+│ [New Episode] [Manage Feed] [Analytics] [Settings] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 📄 Document Management
+
+### Document Upload & Viewing
+
+#### Document Types
+- **Reports** - Business and research reports
+- **Presentations** - Slide decks and pitch materials
+- **Spreadsheets** - Data and financial documents
+- **eBooks** - Digital books and publications
+- **Manuals** - User guides and documentation
+
+#### Document Viewer
+```
+┌─────────────────────────────────────────────────────────────┐
+│ 📄 quarterly-report.pdf [Edit] [✕] │
+├─────────────────────────────────────────────────────────────┤
+│ [📖 PDF Viewer with Page Navigation] │
+│ Page 1 of 25 | [◀️] [▶️] | Zoom: [100% ▼] | [🖨️] [💾] │
+├─────────────────────────────────────────────────────────────┤
+│ Title: [Q1 2024 Quarterly Business Report] │
+│ Author: [Finance Department] │
+│ Pages: 25 • File Size: 2.8 MB • Created: March 1, 2024 │
+├─────────────────────────────────────────────────────────────┤
+│ Description: [Comprehensive overview of Q1 performance...] │
+│ Tags: [quarterly] [finance] [2024] [+ Add Tag] │
+│ │
+│ Permissions: [Public View] [Download Allowed] [Print: Yes] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Document Features
+
+#### Viewing Options
+- **In-Browser Viewing** - No download required
+- **Full-Screen Mode** - Distraction-free reading
+- **Page Navigation** - Easy page jumping
+- **Zoom Controls** - Adjustable document size
+- **Search Within** - Find text in documents
+
+#### Document Controls
+- **Download** - Save to device
+- **Print** - Physical printing options
+- **Share** - Generate sharing links
+- **Embed** - Embed in other pages
+- **Annotate** - Add comments and notes (premium)
+
+### Document Security
+
+#### Access Controls
+- **Public Access** - Anyone can view
+- **Private Access** - Only you can view
+- **Password Protected** - Require password
+- **Time-Limited** - Expire after set time
+- **Download Restrictions** - View-only mode
+
+#### Watermarking
+- **Text Watermarks** - Add text overlay
+- **Image Watermarks** - Add logo/image overlay
+- **Dynamic Watermarks** - User-specific marks
+- **Position Control** - Choose watermark placement
+- **Transparency** - Adjust visibility level
+
+## 📚 Media Library Organization
+
+### Folder Structure
+
+#### Hierarchical Organization
+```
+📁 Media Library
+├── 📁 Images
+│ ├── 📁 Blog Posts
+│ ├── 📁 Product Photos
+│ ├── 📁 Team Photos
+│ └── 📁 Stock Images
+├── 📁 Videos
+│ ├── 📁 Product Demos
+│ ├── 📁 Tutorials
+│ └── 📁 Marketing
+├── 📁 Audio
+│ ├── 📁 Podcast Episodes
+│ ├── 📁 Music
+│ └── 📁 Sound Effects
+└── 📁 Documents
+ ├── 📁 Reports
+ ├── 📁 Presentations
+ └── 📁 Legal
+```
+
+#### Folder Management
+- **Create Folders** - Organize by project or type
+- **Nested Folders** - Unlimited folder depth
+- **Move Files** - Drag and drop between folders
+- **Rename Folders** - Update folder names
+- **Delete Folders** - Remove empty folders
+
+### Tagging System
+
+#### Tag Categories
+- **Content Type** - Image, video, audio, document
+- **Topic** - Subject matter and themes
+- **Project** - Associate with specific projects
+- **Quality** - Draft, final, approved
+- **Usage Rights** - Copyright and licensing info
+
+#### Tag Management
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Tag Management │
+├─────────────────────────────────────────────────────────────┤
+│ Popular Tags: │
+│ [blog-post] 124 files [tutorial] 89 files │
+│ [product] 67 files [team] 45 files │
+│ [marketing] 34 files [draft] 23 files │
+├─────────────────────────────────────────────────────────────┤
+│ Recently Used: │
+│ [web-development] [javascript] [design] [photography] │
+├─────────────────────────────────────────────────────────────┤
+│ Create New Tag: [________________] [Create] │
+│ │
+│ Bulk Tag Actions: │
+│ [Merge Tags] [Delete Unused] [Export Tag List] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Search and Filtering
+
+#### Advanced Search
+- **File Name** - Search by filename
+- **Content Search** - Search within documents
+- **Metadata** - Search by EXIF, author, etc.
+- **Date Range** - Filter by upload/creation date
+- **File Size** - Filter by size range
+
+#### Filter Options
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Media Library Filters │
+├─────────────────────────────────────────────────────────────┤
+│ File Type: [All ▼] [Images] [Videos] [Audio] [Documents] │
+│ Date Range: [Last 30 Days ▼] │
+│ Size Range: [Any Size ▼] │
+│ Tags: [Select Tags...] [tutorial] [×] [blog-post] [×] │
+│ Folder: [All Folders ▼] │
+│ │
+│ Sort By: [Date Added ▼] [Name] [Size] [Type] │
+│ Order: [Newest First ▼] [Oldest First] │
+│ │
+│ [Apply Filters] [Clear All] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Bulk Operations
+
+#### Selection Methods
+- **Select All** - All visible files
+- **Select by Type** - All images, videos, etc.
+- **Select by Tag** - Files with specific tags
+- **Select by Date** - Files from date range
+- **Manual Selection** - Click to select individual files
+
+#### Bulk Actions
+- **Move to Folder** - Relocate multiple files
+- **Add Tags** - Tag multiple files at once
+- **Delete** - Remove multiple files
+- **Download** - Download as ZIP archive
+- **Change Permissions** - Update access settings
+
+## 🔍 Media Analytics
+
+### Usage Statistics
+
+#### File Performance
+- **View Count** - How many times viewed
+- **Download Count** - Number of downloads
+- **Embed Usage** - Where files are embedded
+- **Referrer Data** - Traffic sources
+- **Geographic Data** - Where files are accessed
+
+#### Storage Analytics
+```
+┌─────────────────────────────────────────────────────────────┐
+│ Storage Analytics │
+├─────────────────────────────────────────────────────────────┤
+│ Total Storage Used: 2.3 GB of 50 GB (4.6%) │
+│ [████████████████████████████████████████████████░░░░░░] │
+├─────────────────────────────────────────────────────────────┤
+│ Breakdown by Type: │
+│ Images: 1.2 GB (52%) [████████████████████████████████] │
+│ Videos: 856 MB (37%) [████████████████████████] │
+│ Audio: 156 MB (7%) [██████] │
+│ Docs: 88 MB (4%) [████] │
+├─────────────────────────────────────────────────────────────┤
+│ Largest Files: │
+│ 📹 product-launch.mp4 - 245 MB │
+│ 📹 training-video.mp4 - 189 MB │
+│ 📄 annual-report.pdf - 45 MB │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Performance Monitoring
+
+#### Load Time Analytics
+- **Average Load Time** - File loading performance
+- **Geographic Performance** - Speed by location
+- **Device Performance** - Mobile vs desktop speeds
+- **CDN Effectiveness** - Content delivery performance
+- **Optimization Impact** - Before/after compression
+
+#### Bandwidth Usage
+- **Monthly Bandwidth** - Data transfer amounts
+- **Peak Usage Times** - When files are accessed most
+- **Top Consuming Files** - Which files use most bandwidth
+- **Traffic Patterns** - Usage trends over time
+- **Cost Analysis** - Bandwidth cost tracking
+
+## 🔒 Media Security & Privacy
+
+### Access Controls
+
+#### File Permissions
+- **Public** - Anyone can access
+- **Unlisted** - Only with direct link
+- **Private** - Only you can access
+- **Team** - Team members only
+- **Custom** - Specific user groups
+
+#### Permission Management
+```
+┌─────────────────────────────────────────────────────────────┐
+│ File Permissions: conference-presentation.pdf │
+├─────────────────────────────────────────────────────────────┤
+│ Visibility: [Private ▼] │
+│ │
+│ Allowed Actions: │
+│ ☑ View/Preview │
+│ ☐ Download │
+│ ☐ Print │
+│ ☐ Share Link │
+│ ☐ Embed │
+├─────────────────────────────────────────────────────────────┤
+│ Specific Users/Groups: │
+│ 👤 john.doe@company.com [View + Download] │
+│ 👥 Marketing Team [View Only] │
+│ [+ Add User/Group] │
+├─────────────────────────────────────────────────────────────┤
+│ Expiration: [Never ▼] Password: [None ▼] │
+│ │
+│ [Save Permissions] [Preview as User] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### Copyright & Licensing
+
+#### License Management
+- **All Rights Reserved** - Full copyright protection
+- **Creative Commons** - Various CC license options
+- **Public Domain** - No rights reserved
+- **Custom License** - Your own licensing terms
+- **Stock License** - Commercial stock licensing
+
+#### Copyright Information
+- **Creator/Author** - Who created the content
+- **Copyright Year** - When content was created
+- **License Terms** - Usage permissions
+- **Attribution** - How to credit the creator
+- **Commercial Use** - Whether commercial use is allowed
+
+### Content Protection
+
+#### Watermarking
+- **Visible Watermarks** - Logo/text overlays
+- **Invisible Watermarks** - Hidden identification
+- **Dynamic Watermarks** - User-specific marking
+- **Batch Watermarking** - Apply to multiple files
+- **Removal Prevention** - Protect watermark integrity
+
+#### Download Protection
+- **Disable Right-Click** - Prevent easy downloading
+- **Hotlink Protection** - Prevent direct linking
+- **Expiring Links** - Time-limited access URLs
+- **IP Restrictions** - Limit access by location
+- **Device Limits** - Restrict number of devices
+
+## 🛠️ Media Tools & Utilities
+
+### Compression Tools
+
+#### Image Compression
+- **Lossless Compression** - No quality loss
+- **Lossy Compression** - Smaller files, slight quality loss
+- **Progressive JPEG** - Faster loading images
+- **WebP Conversion** - Modern format optimization
+- **Batch Compression** - Process multiple images
+
+#### Video Compression
+- **Quality Presets** - Easy optimization settings
+- **Custom Bitrates** - Fine-tune compression
+- **Resolution Scaling** - Reduce video dimensions
+- **Frame Rate Adjustment** - Optimize playback
+- **Audio Compression** - Reduce audio file size
+
+### Format Conversion
+
+#### Supported Conversions
+```
+Images: JPEG ↔ PNG ↔ WebP ↔ AVIF ↔ GIF
+Videos: MP4 ↔ WebM ↔ MOV ↔ AVI
+Audio: MP3 ↔ AAC ↔ OGG ↔ WAV
+Docs: PDF ↔ DOC ↔ TXT ↔ RTF
+```
+
+#### Batch Conversion
+- **Multiple Files** - Convert many files at once
+- **Queue Management** - Process conversion queue
+- **Progress Tracking** - Monitor conversion status
+- **Quality Settings** - Maintain desired quality
+- **Output Formats** - Multiple format options
+
+### Metadata Management
+
+#### EXIF Data
+- **Camera Information** - Camera model, settings
+- **Location Data** - GPS coordinates
+- **Timestamp** - When photo was taken
+- **Technical Details** - ISO, aperture, shutter speed
+- **Edit/Remove** - Modify or strip metadata
+
+#### Custom Metadata
+- **Title** - File title or name
+- **Description** - File description
+- **Keywords** - Search terms
+- **Author** - Creator information
+- **Copyright** - Rights information
+
+## 📱 Mobile Media Management
+
+### Mobile Upload
+
+#### Upload Methods
+- **Camera Roll** - Select from existing photos
+- **Take Photo** - Capture new image
+- **Record Video** - Create new video
+- **Voice Recording** - Record audio
+- **Document Scan** - Scan physical documents
+
+#### Mobile Features
+- **Background Upload** - Continue upload when app closed
+- **Auto-Upload** - Automatically upload camera photos
+- **Compression Options** - Reduce file size for mobile
+- **Offline Queue** - Queue uploads for when online
+- **Push Notifications** - Upload completion alerts
+
+### Mobile Optimization
+
+#### Responsive Media
+- **Adaptive Images** - Different sizes for different screens
+- **Progressive Loading** - Load images progressively
+- **Touch Controls** - Touch-friendly media controls
+- **Swipe Navigation** - Gesture-based browsing
+- **Mobile Player** - Optimized video/audio player
+
+#### Data Saving
\ No newline at end of file
diff --git a/book/users/profile.md b/book/users/profile.md
new file mode 100644
index 0000000..222820f
--- /dev/null
+++ b/book/users/profile.md
@@ -0,0 +1,552 @@
+# Profile Management Guide
+
+
+
+
+
+Welcome to the[Rustelo](/) Profile Management Guide! This comprehensive guide will help you customize your profile, manage your account settings, and make the most of your Rustelo experience.
+
+## 🎯 Overview
+
+Your profile is your digital identity in Rustelo. It's how other users see you, how you represent yourself, and how you control your account settings. This guide covers everything from basic profile setup to advanced privacy controls.
+
+## 👤 Profile Basics
+
+### Accessing Your Profile
+
+#### From the Navigation Bar
+1. Click your **profile picture** or **username** in the top right
+2. Select **"View Profile"** from the dropdown
+3. Or click **"Edit Profile"** to make changes
+
+#### Quick Access Methods
+- **Keyboard Shortcut**: `Ctrl+P` (or `Cmd+P` on Mac)
+- **Mobile**: Tap the profile icon in the bottom navigation
+- **URL**: Visit `/profile` directly
+
+### Profile Overview
+
+Your profile displays key information about you:
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ [🖼️ Cover Photo] │
+├─────────────────────────────────────────────────────────────┤
+│ [👤] John Doe [Edit] │
+│ @johndoe │
+│ 📧 john.doe@example.com │
+│ 📅 Joined January 2024 │
+│ 📍 San Francisco, CA │
+│ 🌐 https://johndoe.com │
+├─────────────────────────────────────────────────────────────┤
+│ "Full-stack developer passionate about building great │
+│ user experiences with modern web technologies." │
+├─────────────────────────────────────────────────────────────┤
+│ [📊 Activity] [📝 Content] [⚙️ Settings] │
+└─────────────────────────────────────────────────────────────┘
+```
+
+## 🖼️ Profile Picture & Cover Photo
+
+### Profile Picture
+
+#### Uploading a Profile Picture
+1. Go to **Edit Profile**
+2. Click on your current profile picture
+3. Select **"Upload New Photo"**
+4. Choose an image from your device
+5. Crop and adjust as needed
+6. Click **"Save"**
+
+#### Profile Picture Requirements
+- **File Types**: JPG, PNG, GIF, WebP
+- **Size Limit**: 5MB maximum
+- **Dimensions**: Square images work best (1:1 ratio)
+- **Recommended**: 400x400 pixels or higher
+- **Quality**: High-resolution images for best display
+
+#### Profile Picture Tips
+- **Professional Look**: Use a clear, well-lit photo
+- **Brand Consistency**: Match your other social profiles
+- **Face Visibility**: Ensure your face is clearly visible
+- **Avoid Clutter**: Simple backgrounds work best
+- **Update Regularly**: Keep your photo current
+
+### Cover Photo
+
+#### Adding a Cover Photo
+1. Go to **Edit Profile**
+2. Click **"Add Cover Photo"** or hover over existing cover
+3. Select **"Upload New Cover"**
+4. Choose an image from your device
+5. Position and crop as needed
+6. Click **"Save"**
+
+#### Cover Photo Requirements
+- **File Types**: JPG, PNG, WebP
+- **Size Limit**: 10MB maximum
+- **Dimensions**: 1200x400 pixels (3:1 ratio)
+- **Quality**: High-resolution for crisp display
+
+#### Cover Photo Ideas
+- **Workspace**: Your desk or work environment
+- **Hobby**: Something that represents your interests
+- **Landscape**: A favorite place or view
+- **Abstract**: Patterns or designs that reflect your style
+- **Professional**: Related to your industry or expertise
+
+## ✏️ Basic Information
+
+### Personal Details
+
+#### Full Name
+- **Display Name**: How others see you
+- **Professional Use**: Consider using your real name
+- **Creative Use**: Stage names or handles are fine
+- **Changes**: Can be updated anytime
+- **Visibility**: Always visible to other users
+
+#### Username
+- **Unique Identifier**: Must be unique across the platform
+- **URL Component**: Used in your profile URL
+- **Mentions**: How others can tag you
+- **Permanent**: Cannot be changed after registration
+- **Format**: Letters, numbers, and underscores only
+
+#### Email Address
+- **Primary Contact**: Used for all communications
+- **Login Method**: How you sign into your account
+- **Verification**: Must be verified to change
+- **Privacy**: Can be hidden from public view
+- **Backup**: Keep access to this email address
+
+### Contact Information
+
+#### Website/Portfolio
+- **Personal Site**: Your blog or personal website
+- **Portfolio**: Showcase your work
+- **Company**: Your business website
+- **Social Media**: Link to your main social profile
+- **Format**: Must start with https://
+
+#### Location
+- **City/State**: Where you're based
+- **Country**: Your country of residence
+- **Privacy**: Can be hidden from public view
+- **Networking**: Helps connect with local users
+- **Optional**: Not required to fill out
+
+#### Bio/About Section
+- **Description**: Tell others about yourself
+- **Length**: Up to 500 characters
+- **Formatting**: Markdown supported
+- **Keywords**: Include relevant terms for discoverability
+- **Personality**: Let your personality shine through
+
+### Bio Writing Tips
+
+#### Effective Bio Examples
+
+**Professional Bio:**
+```
+Full-stack developer with 5+ years building scalable web applications.
+Passionate about React, Node.js, and cloud architecture.
+Currently working on developer tools at @TechCorp.
+
+🔧 JavaScript, Python, AWS
+🎯 Open to consulting opportunities
+📍 San Francisco, CA
+```
+
+**Creative Bio:**
+```
+Digital artist exploring the intersection of technology and creativity.
+Creating NFTs, generative art, and interactive installations.
+
+🎨 Currently: AI-assisted art project
+✨ Tools: Processing, p5.js, Blender
+🌍 Based in Berlin, traveling the world
+```
+
+**Casual Bio:**
+```
+Coffee enthusiast ☕ Dog parent 🐕 Weekend hiker 🥾
+
+Sharing my journey learning web development and building cool stuff.
+Always up for a chat about tech, coffee, or outdoor adventures!
+```
+
+## 🎨 Customization Options
+
+### Profile Theme
+
+#### Theme Selection
+1. Go to **Profile Settings** > **Appearance**
+2. Choose from available themes:
+ - **Light**: Clean, professional look
+ - **Dark**: Modern, easy on the eyes
+ - **Auto**: Matches system preference
+ - **Custom**: Create your own color scheme
+
+#### Color Customization
+- **Primary Color**: Main accent color
+- **Secondary Color**: Supporting elements
+- **Background**: Profile background color
+- **Text**: Primary text color
+- **Links**: Color for clickable elements
+
+### Layout Options
+
+#### Profile Layout Styles
+- **Standard**: Traditional profile layout
+- **Compact**: Minimalist, space-efficient
+- **Showcase**: Emphasizes your content
+- **Business**: Professional, corporate look
+- **Creative**: Artistic, expressive design
+
+#### Content Organization
+- **Sections**: Choose which sections to display
+- **Order**: Arrange sections in preferred order
+- **Visibility**: Show/hide specific information
+- **Highlights**: Feature your best content
+
+## 🔒 Privacy Settings
+
+### Profile Visibility
+
+#### Public Profile
+- **Visible to Everyone**: Anyone can view your profile
+- **Search Engine**: May appear in search results
+- **Discoverability**: Easier for others to find you
+- **Networking**: Best for professional networking
+
+#### Private Profile
+- **Registered Users Only**: Only logged-in users can view
+- **No Search Results**: Won't appear in public searches
+- **Controlled Access**: More privacy control
+- **Selective Sharing**: Share profile link manually
+
+#### Friends/Connections Only
+- **Restricted Access**: Only your connections can view
+- **Maximum Privacy**: Highest level of privacy
+- **Limited Discoverability**: Harder for others to find
+- **Invitation Only**: Others must request access
+
+### Information Visibility
+
+#### Contact Information
+- **Email Address**: Show/hide from public view
+- **Phone Number**: Display preferences
+- **Website**: Always visible when provided
+- **Location**: Show/hide location information
+- **Social Links**: Control which links are visible
+
+#### Activity Information
+- **Last Seen**: Show when you were last active
+- **Online Status**: Display when you're currently online
+- **Activity Feed**: Show your recent actions
+- **Content Stats**: Display content metrics
+
+### Privacy Controls
+
+#### Who Can Contact You
+- **Anyone**: All users can send messages
+- **Connections Only**: Only your connections
+- **No One**: Disable direct messaging
+- **Filtered**: Messages go to filtered folder
+
+#### Who Can Find You
+- **Search**: Appear in user searches
+- **Suggestions**: Appear in "people you may know"
+- **Email**: Allow finding by email address
+- **Import**: Allow import from address books
+
+## 🔔 Notification Preferences
+
+### Email Notifications
+
+#### Account Activity
+- **Login Alerts**: New device logins
+- **Security Changes**: Password/2FA changes
+- **Account Updates**: Important account notices
+- **Policy Updates**: Terms of service changes
+
+#### Content Notifications
+- **New Comments**: Comments on your content
+- **Likes/Reactions**: Engagement on your posts
+- **Mentions**: When someone mentions you
+- **Shares**: When someone shares your content
+
+#### System Notifications
+- **Maintenance**: Scheduled system maintenance
+- **Feature Updates**: New features and improvements
+- **Newsletter**: Product updates and tips
+- **Promotional**: Special offers and events
+
+### In-App Notifications
+
+#### Real-time Alerts
+- **Instant Notifications**: Immediate alerts
+- **Sound**: Audio notification preferences
+- **Badge**: Show notification count
+- **Popup**: Display notification popup
+
+#### Notification Types
+- **Messages**: Direct messages from other users
+- **Activity**: Likes, comments, and shares
+- **System**: Important system messages
+- **Reminders**: Scheduled reminders and tasks
+
+### Notification Timing
+
+#### Frequency Settings
+- **Immediate**: Get notified right away
+- **Hourly**: Batched hourly summaries
+- **Daily**: Daily digest emails
+- **Weekly**: Weekly summary reports
+- **Never**: Turn off specific notifications
+
+#### Quiet Hours
+- **Do Not Disturb**: Set quiet hours
+- **Time Zone**: Respect your local time
+- **Weekend Mode**: Different weekend settings
+- **Vacation Mode**: Pause notifications temporarily
+
+## 🏆 Profile Stats & Analytics
+
+### Activity Overview
+
+#### Content Metrics
+- **Posts Created**: Total number of posts
+- **Comments Made**: Your comment activity
+- **Likes Given**: How many likes you've given
+- **Shares Made**: Content you've shared
+- **Profile Views**: How many times your profile was viewed
+
+#### Engagement Stats
+- **Followers**: People following your content
+- **Following**: People you follow
+- **Connections**: Mutual connections
+- **Engagement Rate**: How much others interact with your content
+
+### Growth Tracking
+
+#### Monthly Reports
+- **Activity Summary**: Monthly activity overview
+- **Growth Trends**: How your metrics are changing
+- **Popular Content**: Your most successful posts
+- **Audience Insights**: Who's engaging with your content
+
+#### Goal Setting
+- **Content Goals**: Set posting frequency targets
+- **Engagement Goals**: Target engagement metrics
+- **Growth Goals**: Follower/connection targets
+- **Progress Tracking**: Monitor goal achievement
+
+## 🔗 Social Connections
+
+### Adding Social Links
+
+#### Supported Platforms
+- **LinkedIn**: Professional networking
+- **Twitter**: Microblogging platform
+- **GitHub**: Code repositories
+- **Instagram**: Photo and video sharing
+- **Facebook**: Social networking
+- **YouTube**: Video content
+- **Personal Website**: Your own site
+- **Portfolio**: Online portfolio
+
+#### Link Verification
+- **Verified Links**: Prove you own the account
+- **Trust Indicators**: Show verified status
+- **Click Tracking**: Monitor link clicks
+- **Link Preview**: Show content previews
+
+### Managing Connections
+
+#### Connection Types
+- **Followers**: People who follow your content
+- **Following**: People whose content you follow
+- **Mutual Friends**: People you both follow
+- **Blocked Users**: Users you've blocked
+- **Pending Requests**: Connection requests awaiting approval
+
+#### Connection Management
+- **Accept/Decline**: Manage connection requests
+- **Unfollow**: Stop following someone
+- **Block**: Prevent someone from contacting you
+- **Report**: Report inappropriate behavior
+
+## 📊 Account Management
+
+### Data & Privacy
+
+#### Data Export
+- **Download Data**: Export your account data
+- **Content Archive**: Download all your content
+- **Settings Backup**: Export your settings
+- **Privacy Report**: See what data is collected
+
+#### Data Deletion
+- **Delete Content**: Remove specific content
+- **Clear History**: Delete activity history
+- **Account Deletion**: Permanently delete account
+- **Data Retention**: How long data is kept
+
+### Account Status
+
+#### Account Types
+- **Free Account**: Basic features included
+- **Premium Account**: Advanced features
+- **Business Account**: Professional tools
+- **Developer Account**: API access
+
+#### Subscription Management
+- **Current Plan**: Your active subscription
+- **Billing History**: Payment records
+- **Upgrade Options**: Available plan upgrades
+- **Cancellation**: How to cancel subscription
+
+## 🛠️ Profile Maintenance
+
+### Regular Updates
+
+#### Monthly Tasks
+- **Profile Picture**: Update if needed
+- **Bio**: Keep information current
+- **Contact Info**: Verify accuracy
+- **Privacy Settings**: Review and adjust
+- **Notification Preferences**: Update as needed
+
+#### Quarterly Tasks
+- **Security Review**: Check login activity
+- **Connection Audit**: Review your connections
+- **Content Review**: Clean up old content
+- **Goal Assessment**: Review and adjust goals
+
+### Profile Optimization
+
+#### Discoverability
+- **Complete Profile**: Fill out all sections
+- **Keywords**: Use relevant keywords in bio
+- **Regular Activity**: Stay active on the platform
+- **Quality Content**: Share valuable content
+- **Engagement**: Interact with others
+
+#### Professional Branding
+- **Consistent Imagery**: Use consistent colors/style
+- **Professional Photo**: High-quality profile picture
+- **Clear Value Proposition**: Communicate what you do
+- **Contact Information**: Make it easy to reach you
+- **Portfolio Links**: Showcase your work
+
+## 🔍 Troubleshooting Profile Issues
+
+### Common Problems
+
+#### Profile Not Updating
+**Issue**: Changes aren't saving
+**Solutions**:
+1. Check internet connection
+2. Try refreshing the page
+3. Clear browser cache
+4. Disable browser extensions
+5. Try a different browser
+
+#### Image Upload Issues
+**Issue**: Can't upload profile picture
+**Solutions**:
+1. Check file size (under 5MB)
+2. Use supported format (JPG, PNG, GIF)
+3. Try different image
+4. Check browser permissions
+5. Clear browser cache
+
+#### Privacy Settings Not Working
+**Issue**: Profile still visible when set to private
+**Solutions**:
+1. Wait 24 hours for changes to take effect
+2. Clear browser cache
+3. Check all privacy settings
+4. Contact support if issue persists
+
+### Getting Help
+
+#### Self-Service
+- **Help Center**: Search for solutions
+- **FAQ**: Common questions answered
+- **Video Tutorials**: Step-by-step guides
+- **Community Forum**: Ask other users
+
+#### Contact Support
+- **Email Support**: Send detailed description
+- **Live Chat**: Real-time assistance
+- **Phone Support**: For urgent issues
+- **Bug Reports**: Report technical issues
+
+## 🎯 Profile Best Practices
+
+### For Personal Use
+
+#### Building Your Online Presence
+1. **Complete Your Profile**: Fill out all sections
+2. **Professional Photo**: Use a clear, current photo
+3. **Engaging Bio**: Tell your story concisely
+4. **Regular Updates**: Keep information current
+5. **Consistent Branding**: Use consistent style
+
+#### Privacy Considerations
+1. **Review Settings**: Check privacy settings monthly
+2. **Limit Personal Info**: Don't overshare
+3. **Secure Account**: Use strong password and 2FA
+4. **Monitor Activity**: Check login history regularly
+5. **Trust Carefully**: Be selective with connections
+
+### For Business Use
+
+#### Professional Profile Setup
+1. **Brand Consistency**: Match your company branding
+2. **Clear Value Proposition**: Communicate what you offer
+3. **Contact Information**: Make it easy to reach you
+4. **Portfolio Links**: Showcase your work
+5. **Regular Content**: Share valuable insights
+
+#### Networking Strategy
+1. **Strategic Connections**: Connect with industry professionals
+2. **Thought Leadership**: Share expertise and insights
+3. **Engagement**: Actively participate in discussions
+4. **Content Quality**: Share high-quality, relevant content
+5. **Consistency**: Maintain regular activity
+
+### For Creative Use
+
+#### Showcasing Your Work
+1. **Visual Profile**: Use high-quality images
+2. **Portfolio Integration**: Link to your best work
+3. **Creative Bio**: Let your personality shine
+4. **Regular Updates**: Share work in progress
+5. **Community Engagement**: Connect with other creators
+
+## 📚 Next Steps
+
+Now that you understand profile management, explore:
+
+1. **[User Interface Guide](./interface.md)** - Navigate the application
+2. **[Content Management](./content.md)** - Create and manage content
+3. **[Media Management](./media.md)** - Handle files and images
+4. **[Authentication Guide](./authentication.md)** - Secure your account
+5. **[Features Overview](./features/)** - Discover all features
+
+## 🎉 Conclusion
+
+Your profile is your digital identity on Rustelo. By following the guidelines in this comprehensive guide, you'll have a professional, secure, and engaging profile that represents you well.
+
+Remember to:
+- Keep your information current and accurate
+- Regularly review your privacy settings
+- Use high-quality images and engaging content
+- Stay active and engaged with the community
+- Maintain consistency across all your online presence
+
+**Make your profile work for you!** 🌟✨
\ No newline at end of file
diff --git a/client/src/app.rs b/client/src/app.rs
index 535af93..b964259 100644
--- a/client/src/app.rs
+++ b/client/src/app.rs
@@ -6,18 +6,17 @@
//#![allow(unused_assignments)]
//use crate::defs::{NAV_LINK_CLASS, ROUTES};
-
use crate::auth::AuthProvider;
-use crate::components::NavbarLogo;
-use crate::i18n::{I18nProvider, LanguageSelector, use_i18n};
-use crate::pages::{AboutPage, DaisyUIPage, FeaturesDemoPage, HomePage};
+use crate::components::NavMenu;
+use crate::i18n::{I18nProvider, ThemeProvider};
+use crate::pages::{AboutPage, DaisyUIPage, FeaturesDemoPage, HomePage, UserPage};
use crate::state::*;
-use crate::utils::{get_initial_path, make_navigate, make_on_link_click, make_popstate_effect};
+use crate::utils::{get_initial_path, make_popstate_effect};
use leptos::children::Children;
use leptos::prelude::*;
use leptos_meta::{MetaTags, Title, provide_meta_context};
// use regex::Regex;
-use shared::{get_bundle, load_menu_toml, t};
+use shared::{get_bundle, t};
use std::collections::HashMap;
//// Wrapper component for consistent layout.
@@ -32,147 +31,35 @@ fn NotFoundPage() -> impl IntoView {
view! { "Page not found."
}
}
-/// Navigation menu component, maps over ROUTES.
-#[component]
-pub fn NavMenu(path: ReadSignal, set_path: WriteSignal) -> impl IntoView {
- let navigate = make_navigate(set_path.clone());
- let on_link_click = make_on_link_click(set_path.clone(), navigate.clone());
- let i18n = use_i18n();
- let menu_items = load_menu_toml().unwrap_or_default();
- println!("NavMenu rendered");
- view! {
-
-
-
-
-
-
- {menu_items.menu.into_iter().map(|item| {
- let on_link_click = on_link_click.clone();
- let route = item.route.clone();
- let route_for_click = route.clone();
- let route_for_aria = route.clone();
- let lang_val = i18n.lang_code();
- let label = match lang_val.as_str() {
- "es" => item.label.es.clone(),
- _ => item.label.en.clone(),
- };
- view! {
- }
- >
-
- {label}
-
- }
- }).collect_view()}
-
-
-
- {i18n.t("pages")}
-
-
-
-
- //
- // Account
- //
- //
- // Blocks
- //
- //
- // Docs
- //
-
-
-
-
-
-
-
-
- }
- // view! {
- //
- //
- //
- //
- //
- // //{ROUTES.iter().map(|(route, label)| {
- // {menu_items.menu.into_iter().map(|item| {
- // let on_link_click = on_link_click.clone();
- // let route = item.route.clone();
- // let route_for_click = route.clone();
- // let route_for_aria = route.clone();
- // let lang_val = lang.get();
- // let label = match lang_val.as_str() {
- // "es" => item.label.es.as_str(),
- // _ => item.label.en.as_str(),
- // };
- // view! {
- //
{label}
- // }
- // }).collect_view()}
- // { view! {
- //
- // }}
- //
- //
- //
- //
- //}
-}
-
/// Main app component with SSR path awareness and SPA routing.
#[component]
-pub fn App() -> impl IntoView {
+pub fn App(#[prop(default = String::new())] initial_path: String) -> impl IntoView {
provide_meta_context();
- let (path, set_path) = signal(get_initial_path());
+
+ // Always start with HOME during SSR, then route to correct page on client
+ let (path, set_path) = signal("/".to_string());
make_popstate_effect(set_path);
+
+ // Update path from URL after hydration (client-side redirect)
+ #[cfg(target_arch = "wasm32")]
+ {
+ use wasm_bindgen_futures::spawn_local;
+ spawn_local(async move {
+ if let Some(win) = web_sys::window() {
+ let current_path = win
+ .location()
+ .pathname()
+ .unwrap_or_else(|_| "/".to_string());
+ // If URL path is different from home, redirect to it
+ if current_path != "/" {
+ web_sys::console::log_1(
+ &format!("Client-side redirect to: {}", current_path).into(),
+ );
+ set_path.set(current_path);
+ }
+ }
+ });
+ }
let (lang, _set_lang) = signal("en".to_string());
// --- Unit test placeholder for route matching ---
// #[cfg(test)]
@@ -193,73 +80,75 @@ pub fn App() -> impl IntoView {
-