Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
f5bbc4c
first commit
Jan 21, 2026
70b922e
the fist runable version
brucezy Jan 21, 2026
fd6b958
prompt write api, query by prompt id and company id api
brucezy Jan 21, 2026
3ab09ca
ask ai to return json and parse json as the response for ai recommend…
brucezy Jan 22, 2026
8757f39
fix prompts, users and companies table
brucezy Jan 27, 2026
5719765
stop tracking .idea directory
brucezy Jan 31, 2026
1eb14c4
add setup and makefile for the front-end app
brucezy Jan 31, 2026
d53bb15
customer sign up and login
brucezy Feb 3, 2026
f3e4275
fix the issue for user login in backend
brucezy Feb 3, 2026
92c75f5
temp store before refactor database
brucezy Feb 8, 2026
eea651a
change to use common shared package for database model
brucezy Feb 9, 2026
add0e56
refactored dashboard backend and frontend to use real data from datab…
brucezy Feb 11, 2026
bd8627e
add new frontend page to show projects and add new project
brucezy Feb 11, 2026
84a9b2b
added project user relationship and when user create a new project, a…
brucezy Feb 12, 2026
f52d79d
refactored dashboard to add brand, visibility and ranking dashboard tab
brucezy Feb 13, 2026
764966d
refactor dashbaord, sidebar and user management
brucezy Feb 14, 2026
65b367e
refactor dashbaord to present different score
brucezy Feb 17, 2026
9361dba
added insight frontend code and migrated db to postgresql
brucezy Feb 22, 2026
a7e04dc
add docker config
brucezy Feb 23, 2026
86ceb7c
Fix Docker build: replace uv export with pre-generated requirements.p…
brucezy Feb 23, 2026
c6f0b23
Use deployer user instead of root for SSH deployment
brucezy Feb 23, 2026
c3ebf5f
Fix all frontend TypeScript build errors
brucezy Feb 23, 2026
a347257
Fix nginx: use Docker DNS resolver to avoid startup host-not-found error
brucezy Feb 23, 2026
7210798
Make frontend mobile-first responsive
brucezy Feb 23, 2026
4b79862
added secrets
brucezy Feb 23, 2026
506ff46
add application name for db connection
brucezy Feb 23, 2026
979e201
Remove unused template CI workflows
brucezy Feb 23, 2026
ab42b9d
Remove search bar from top bar, show user name and avatar on the right
brucezy Feb 23, 2026
6a42d0d
Fix Ofelia cron schedule: use 6-field format 0 0 22 * * * for daily a…
brucezy Feb 23, 2026
5c4f2f7
Add --full-run flag to scheduled job so it queries BrandPromptTable
brucezy Feb 23, 2026
f50acd9
Fix 502: remove application_name from asyncpg connection URL
brucezy Feb 23, 2026
b4a7d39
Fix browser caching: no-cache for index.html, immutable for hashed as…
brucezy Feb 24, 2026
ca353b4
change font and added a new logo
brucezy Feb 24, 2026
a3d8858
fixed a issue when build package
brucezy Feb 24, 2026
3e049f0
Fix browser caching of error pages: no-store on 5xx, no-cache on fron…
brucezy Feb 24, 2026
5fb5142
Use Kila SVG as browser tab favicon
brucezy Feb 24, 2026
33c2a73
Enable HTTPS with Cloudflare Origin Certificate
brucezy Feb 25, 2026
afc33b9
added a new page for basic metrics and changed font, style
brucezy Feb 26, 2026
dedc8fe
Fix 502: pull kila-models before docker build in deploy workflow
brucezy Feb 26, 2026
bfae6aa
Fix deploy: clone kila-models if missing, use set -e for fail-fast
brucezy Feb 26, 2026
49b42b2
Fix TS build errors blocking Docker frontend build
brucezy Feb 26, 2026
802742f
Deploy: rebuild all containers on every push
brucezy Feb 26, 2026
82014df
Update Ofelia to run daily_pipeline orchestrator instead of single job
brucezy Feb 26, 2026
a3e124c
adjust the frontend, refactored the backend service to query basic me…
brucezy Feb 27, 2026
555c52d
formalized brand impression and brand competitive analysis page and b…
brucezy Mar 1, 2026
d895995
feat: migration to create user_subscriptions table; fix alembic env t…
brucezy Mar 4, 2026
bc8348e
feat: create free_trial subscription row on email/password signup; ex…
brucezy Mar 4, 2026
6eaf15a
feat: create free_trial subscription on Clerk auto-create path; idemp…
brucezy Mar 4, 2026
15993bb
feat: backfill company_id on subscription row at profile setup
brucezy Mar 4, 2026
3aaaf07
feat: expose subscription tier/status/trial_expires_at in GET /profil…
brucezy Mar 4, 2026
4c88eac
feat: add Stripe webhook endpoint for subscription tier upgrades; add…
brucezy Mar 4, 2026
c79a13b
feat: add personal email domain blocklist utility for tier 2/3 upgrad…
brucezy Mar 4, 2026
0fca5af
chore: regenerate OpenAPI TypeScript client with SubscriptionResponse…
brucezy Mar 4, 2026
3b2c2a8
feat: add entitlements config with tier quotas and feature flags
brucezy Mar 4, 2026
4c1adb6
feat: add SubscriptionContext and useEntitlement hook; load subscript…
brucezy Mar 4, 2026
8da619a
feat: add FeatureGate and QuotaGate components for entitlement enforc…
brucezy Mar 4, 2026
7018636
feat: add trial expiry banner and locked insight nav items based on tier
brucezy Mar 4, 2026
5c5689a
feat: gate CompetitiveAnalysis full content behind competitiveAnalysi…
brucezy Mar 4, 2026
bc37aaf
feat: wrap project/segment create buttons with QuotaGate
brucezy Mar 4, 2026
bb78a51
feat: add is_super_user to subscription — migration + API response
brucezy Mar 6, 2026
f05d7dd
feat: super user bypasses all entitlement checks on frontend
brucezy Mar 6, 2026
8e3fed4
fix: resolve TypeScript build errors blocking Docker image build
brucezy Mar 6, 2026
fef7e49
fix: add stripe to requirements.prod.txt for Docker production image
brucezy Mar 6, 2026
f4531d5
feat: add migration for trailing window metric columns
brucezy Mar 6, 2026
2f16837
feat: add Market Dynamic insight page with competitive visualizations
brucezy Mar 8, 2026
c624c6b
chore: add .worktrees/ to .gitignore
brucezy Mar 8, 2026
a8ad06a
feat: extend risk-history API with 4 new signal fields
brucezy Mar 8, 2026
8400ebf
feat: replace 4 risk pages with consolidated Risk Intelligence page
brucezy Mar 8, 2026
cf9b6e4
feat: merge risk-intelligence frontend + backend changes
brucezy Mar 8, 2026
676b307
removed projects
brucezy Mar 11, 2026
6cb1dd0
refactored layout of the frontend to make it professional
brucezy Mar 11, 2026
8d307ec
fixed a bug when build
brucezy Mar 11, 2026
3a59bf1
Add Stripe billing integration design spec
brucezy Mar 12, 2026
f09d281
feat(billing): add implementation plan and update spec
brucezy Mar 13, 2026
67ca351
feat(billing): add Stripe config fields (secret key, frontend URL)
brucezy Mar 13, 2026
895a105
feat: add past_due to SubscriptionStatus type and isReadOnly check
brucezy Mar 13, 2026
3097207
feat(billing): add past_due to subscriptionstatus enum via migration
brucezy Mar 13, 2026
c7d595f
feat(billing): add checkout and portal session endpoints with tests
brucezy Mar 13, 2026
75c2df5
feat(billing): update webhook handler with user_id lookup and new events
brucezy Mar 13, 2026
98c7749
feat(billing): add billing API client
brucezy Mar 13, 2026
cb9a8a9
feat(billing): add billing page with subscription management
brucezy Mar 13, 2026
dffc674
feat(billing): add pricing page with plan cards and checkout flow
brucezy Mar 13, 2026
16ed6b9
feat(billing): add UpgradeModal and fix FeatureGate pricing link
brucezy Mar 13, 2026
2e30237
feat(billing): add Pricing/Billing nav links and fix /pricing paths i…
brucezy Mar 13, 2026
d821af8
fix(billing): remove duplicate secret_key config and improve hasStrip…
brucezy Mar 13, 2026
1e1a159
chore: commit route tree, lock file, and dashboard segment fix
brucezy Mar 13, 2026
b490fb7
fix(billing): set stripe_frontend_url default to port 3000 (actual fr…
brucezy Mar 13, 2026
1103d42
fix bugs for free tire and change to 1 paid subscription
brucezy Mar 15, 2026
d0cfec6
ignore .env.development
brucezy Mar 15, 2026
fe201ff
fixed several bugs for subscription
brucezy Mar 15, 2026
e9ea82a
migrate awareness database and change backend accordingly
brucezy Mar 17, 2026
6e07e32
feat: add Alembic migration for pipeline_run and pipeline_job_run tables
brucezy Mar 17, 2026
f80eaae
change dashboard to use daily aggregation tables for both target bran…
brucezy Mar 17, 2026
505e058
hide the risk intelligence from user
brucezy Mar 17, 2026
daf6829
enable reset password, and hide account setting for now
brucezy Mar 18, 2026
69480dc
enabled multiple model support for search
brucezy Mar 18, 2026
3124dff
change rate limit on prod
brucezy Mar 18, 2026
96aa7da
new landing page layout
brucezy Mar 18, 2026
10a68b8
feat: add browser chrome frame + perspective tilt to hero screenshot
brucezy Mar 19, 2026
80847a0
refactor: convert hero chrome bar inline styles to tailwind, fix inde…
brucezy Mar 19, 2026
9780a37
refactor: replace remaining inline bg colors with tailwind arbitrary …
brucezy Mar 19, 2026
339ada5
docs: add hero screenshot enhancement spec and plan
brucezy Mar 19, 2026
07a7cea
chore: ignore .superpowers brainstorm session files
brucezy Mar 19, 2026
603487b
feat: reduce hero screenshot tilt to subtle (8deg)
brucezy Mar 19, 2026
ac15208
feat: add pills overlay with data-flow animation to hero screenshot
brucezy Mar 19, 2026
d95a45b
feat: #BAE8E8 pill bg, #272643 connectors, 85% height, remove mask
brucezy Mar 19, 2026
7a0a3c3
revert: restore dark slate pill style and white connectors
brucezy Mar 19, 2026
94e3dbe
feat: add full-width gradient mask + blue pill styling to hero section
brucezy Mar 19, 2026
92b110d
feat: replace perspective tilt with flat card + blue border on hero s…
brucezy Mar 19, 2026
d23e7d8
feat: change hero mask color from dark slate to #E1E8FF blue tint
brucezy Mar 19, 2026
f967287
feat: increase pill padding, height, font size, and border thickness
brucezy Mar 19, 2026
628ee0b
fix: connector lines now terminate at top of last pill box
brucezy Mar 19, 2026
71eb08a
fix: connector lines stop exactly at top of last pill, all pills same…
brucezy Mar 19, 2026
23653fe
feat: hide StatsSection and TestimonialSection until we have customer…
brucezy Mar 19, 2026
ea7d62b
chnage the feature list from risk intelligence to Brand Sentiment
brucezy Mar 19, 2026
2c0fe44
feat: refresh pricing section with Free/Pro/Enterprise tiers
brucezy Mar 19, 2026
1e5b553
feat: replace product section with 3-category feature matrix
brucezy Mar 20, 2026
0e266e7
feat: replace integration icon boxes with real AI platform logos
brucezy Mar 20, 2026
f9e4eed
remove copilot
brucezy Mar 20, 2026
daaecd8
feat: restore perspective tilt on hero screenshot, reduce width to 60%
brucezy Mar 20, 2026
7fa3216
feat: increase hero screenshot width to 70%
brucezy Mar 20, 2026
953a455
feat: hide SecuritySection until post-MVP
brucezy Mar 20, 2026
da7f345
fix: make Book a Demo button text visible in CTA section
brucezy Mar 20, 2026
283b4e7
improved hero section and fix several issues on other sections
brucezy Mar 20, 2026
d72122b
change price and feature list, fix the CTA
brucezy Mar 21, 2026
237259c
feat: add report storage abstraction (read side)
brucezy Mar 23, 2026
a29e96e
feat: migrate weekly report tables
brucezy Mar 23, 2026
78b6ab0
fix: make get_report_storage accept explicit params for config injection
brucezy Mar 23, 2026
30de52b
feat: add shared kila-reports volume for PDF storage
brucezy Mar 23, 2026
1bfc286
feat: add weekly report download button and email subscription toggle
brucezy Mar 23, 2026
5d52cd7
feat: add weekly report download and subscription API endpoints
brucezy Mar 23, 2026
e1e8b39
system test procedure and operational SOP
brucezy Mar 23, 2026
a088e13
feat: make Clerk JWKS URL configurable via CLERK_JWKS_URL env var
brucezy Mar 24, 2026
01fafab
feat: honor trial period days in Stripe Checkout (prevent mid-trial d…
brucezy Mar 24, 2026
f72917e
test: add naive datetime coverage for _calculate_trial_end timezone h…
brucezy Mar 24, 2026
f0c69f9
test: fix flaky assertion in naive datetime timezone test
brucezy Mar 24, 2026
0750fc4
feat: Pro plan CTA routes to Stripe trial checkout via /app/onboarding
brucezy Mar 24, 2026
d0ab478
fix: use forceRedirectUrl for Pro CTA and fix retry logic in onboarding
brucezy Mar 24, 2026
064e2dc
front end change for report generation
brucezy Mar 24, 2026
073bb0a
change how to deploy and pick up the environment variables
brucezy Mar 24, 2026
7ef8f3a
fix: disable SSL for asyncpg PostgreSQL connection
brucezy Mar 24, 2026
5c8021a
fix: URL-encode password in database_url to handle special characters
brucezy Mar 24, 2026
dda8d3d
fix: use 172.17.0.1 instead of host.docker.internal for PG_HOST
brucezy Mar 24, 2026
e2563f1
feat: switch Stripe Checkout to embedded mode
brucezy Mar 24, 2026
136010e
fix: show embedded checkout before profile-setup for Pro signups
brucezy Mar 24, 2026
d1cccc4
feat: disable sidebar nav during onboarding checkout
brucezy Mar 24, 2026
5120155
feat: migration to add blog_posts table
brucezy Mar 25, 2026
03e5545
fix: remove redundant slug index from migration and improve ssl param…
brucezy Mar 25, 2026
6c0e775
feat: add blog API routes with public read and admin CRUD endpoints
brucezy Mar 25, 2026
059394c
fix: remove unused import, use exclude_unset in update, clean test pa…
brucezy Mar 25, 2026
649b00e
feat: add seed script for GEO blog post
brucezy Mar 25, 2026
125d6ac
fix: add path validation and error handling to seed_blog.py
brucezy Mar 25, 2026
7245d8d
feat: add blog API client and marked dependency
brucezy Mar 25, 2026
78721fa
feat: add public blog list and post pages
brucezy Mar 25, 2026
ac776dc
fix: improve type safety, dynamic year, error state in public blog pages
brucezy Mar 25, 2026
f8ec419
feat: add admin blog CMS pages
brucezy Mar 25, 2026
2295fa1
feat: add Blog links to header/footer and Blog Admin to super user si…
brucezy Mar 25, 2026
d4b37bd
fix: validate slug uniqueness on blog post update
brucezy Mar 25, 2026
3f52deb
chore: gitignore .superpowers brainstorm directory
brucezy Mar 25, 2026
2072726
fix: add SSL context for production DB connections (skip cert verify …
brucezy Mar 26, 2026
c30ec7d
feat(migration): add model column to brand_prompts_running, fix PK
brucezy Mar 26, 2026
e26f6c6
change deploy to restart ofelia to link to new kila-scraper container
brucezy Mar 29, 2026
dea17fc
add database migrate before any containers start, so that we don't ne…
brucezy Mar 30, 2026
d34bb24
feat: add actionable insights backend endpoints
brucezy Mar 30, 2026
036cfa9
feat: add SignalCommandCenter component
brucezy Mar 30, 2026
5863c59
feat: add SignalDetail component
brucezy Mar 30, 2026
5813c76
feat: add QueryDrillDown component
brucezy Mar 30, 2026
ab07770
feat: add ActionableInsights page, route guard, and Risk Signals nav
brucezy Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
21 changes: 15 additions & 6 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,21 @@ SMTP_TLS=True
SMTP_SSL=False
SMTP_PORT=587

# Postgres
POSTGRES_SERVER=localhost
POSTGRES_PORT=5432
POSTGRES_DB=app
POSTGRES_USER=postgres
POSTGRES_PASSWORD=changethis
# Database Configuration
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=ai_prompts

# AI Model Configuration
ANTHROPIC_API_KEY=your_anthropic_api_key_here
AI_MODEL=claude-sonnet-4-5-20250929
MAX_TOKENS=1024

# Application Configuration
ENVIRONMENT=development
LOG_LEVEL=info

SENTRY_DSN=

Expand Down
18 changes: 0 additions & 18 deletions .github/workflows/add-to-project.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .github/workflows/deploy-production.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .github/workflows/deploy-staging.yml

This file was deleted.

113 changes: 113 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Deploy to Production

on:
push:
branches: [main, master]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy frontend and backend to production
uses: appleboy/ssh-action@v1.2.0
env:
GH_PAT: ${{ secrets.GH_PAT }}
PG_PASSWORD: ${{ secrets.PG_PASSWORD }}
BACKEND_SECRET_KEY: ${{ secrets.BACKEND_SECRET_KEY }}
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
CLERK_PUBLISHABLE_KEY: ${{ secrets.CLERK_PUBLISHABLE_KEY }}
CLERK_JWKS_URL: ${{ secrets.CLERK_JWKS_URL }}
STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_PRICE_ID: ${{ secrets.STRIPE_PRO_PRICE_ID }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
PIPELINE_ALERT_EMAIL: ${{ secrets.PIPELINE_ALERT_EMAIL }}
HEALTHCHECKS_PING_URL: ${{ secrets.HEALTHCHECKS_PING_URL }}
VITE_CLERK_PUBLISHABLE_KEY: ${{ vars.VITE_CLERK_PUBLISHABLE_KEY }}
VITE_STRIPE_PRO_PRICE_ID: ${{ vars.VITE_STRIPE_PRO_PRICE_ID }}
VITE_STRIPE_PUBLISHABLE_KEY: ${{ vars.VITE_STRIPE_PUBLISHABLE_KEY }}
with:
host: 89.167.87.10
username: deployer
key: ${{ secrets.SSH_PRIVATE_KEY }}
envs: GH_PAT,PG_PASSWORD,BACKEND_SECRET_KEY,CLERK_SECRET_KEY,CLERK_PUBLISHABLE_KEY,CLERK_JWKS_URL,STRIPE_SECRET_KEY,STRIPE_WEBHOOK_SECRET,STRIPE_PRO_PRICE_ID,GEMINI_API_KEY,RESEND_API_KEY,PIPELINE_ALERT_EMAIL,HEALTHCHECKS_PING_URL,VITE_CLERK_PUBLISHABLE_KEY,VITE_STRIPE_PRO_PRICE_ID,VITE_STRIPE_PUBLISHABLE_KEY
script: |
set -e

# Pull latest code
cd /opt/geo/kila
BRANCH=$(git rev-parse --abbrev-ref HEAD)
git remote set-url origin https://x-access-token:${GH_PAT}@github.com/brucezy/kila.git
git pull origin $BRANCH

if [ -d /opt/geo/kila-models ]; then
cd /opt/geo/kila-models
git remote set-url origin https://x-access-token:${GH_PAT}@github.com/brucezy/kila-models.git
git pull origin main
else
cd /opt/geo
git clone https://x-access-token:${GH_PAT}@github.com/brucezy/kila-models.git kila-models
fi

# Write backend .env.prod from GitHub Secrets
cat > /opt/geo/kila/backend/.env.prod << EOF
ENVIRONMENT=production
PG_HOST=172.17.0.1
PG_PORT=5432
PG_USER=yongzhang
PG_PASSWORD=${PG_PASSWORD}
PG_DATABASE=kila_intelligence
SECRET_KEY=${BACKEND_SECRET_KEY}
CLERK_SECRET_KEY=${CLERK_SECRET_KEY}
CLERK_PUBLISHABLE_KEY=${CLERK_PUBLISHABLE_KEY}
CLERK_JWKS_URL=${CLERK_JWKS_URL}
STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
STRIPE_PRO_PRICE_ID=${STRIPE_PRO_PRICE_ID}
STRIPE_FRONTEND_URL=https://www.spekila.com
ALLOWED_ORIGINS=["http://www.spekila.com","https://www.spekila.com"]
LOG_LEVEL=WARNING
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS=200
RATE_LIMIT_PERIOD=60
EOF

# Write scraper .env.prod from GitHub Secrets
cat > /opt/geo/kila-scraper/.env.prod << EOF
ENVIRONMENT=production
DEBUG=False
ENABLE_DOCS=False
HOST=0.0.0.0
PORT=8001
PG_HOST=172.17.0.1
PG_PORT=5432
PG_USER=yongzhang
PG_PASSWORD=${PG_PASSWORD}
PG_DATABASE=kila_intelligence
SECRET_KEY=${BACKEND_SECRET_KEY}
GEMINI_API_KEY=${GEMINI_API_KEY}
GEMINI_DEFAULT_MODEL=gemini-2.5-flash
BACKEND_CORS_ORIGINS=["http://www.spekila.com","https://www.spekila.com"]
LOG_LEVEL=WARNING
RESEND_API_KEY=${RESEND_API_KEY}
PIPELINE_ALERT_EMAIL=${PIPELINE_ALERT_EMAIL}
HEALTHCHECKS_PING_URL=${HEALTHCHECKS_PING_URL}
EOF

# Export frontend build-time vars for docker-compose
export VITE_CLERK_PUBLISHABLE_KEY=${VITE_CLERK_PUBLISHABLE_KEY}
export VITE_STRIPE_PRO_PRICE_ID=${VITE_STRIPE_PRO_PRICE_ID}
export VITE_STRIPE_PUBLISHABLE_KEY=${VITE_STRIPE_PUBLISHABLE_KEY}

cd /opt/geo
docker compose -f kila/docker-compose.prod.yml up --build -d
# Run migrations explicitly so schema is always in sync before the scraper
# can run jobs. The backend prestart also does this, but running it here
# guarantees it completes before ofelia fires — even if a kila-models change
# was deployed without a backend restart.
docker compose -f kila/docker-compose.prod.yml exec -T backend alembic upgrade head
# Restart ofelia so it re-reads the scraper's labels after any container rebuild.
# Without this, a full rebuild replaces the scraper container and ofelia silently
# stops firing the daily pipeline.
docker compose -f kila/docker-compose.prod.yml restart ofelia
19 changes: 0 additions & 19 deletions .github/workflows/detect-conflicts.yml

This file was deleted.

60 changes: 0 additions & 60 deletions .github/workflows/generate-client.yml

This file was deleted.

51 changes: 0 additions & 51 deletions .github/workflows/issue-manager.yml

This file was deleted.

33 changes: 0 additions & 33 deletions .github/workflows/labeler.yml

This file was deleted.

Loading
Loading