From 66f33746cbaefa0e2b7926d171505b2f7eca5706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Wed, 9 Oct 2024 10:29:42 -0500 Subject: [PATCH] fix: some linting --- package.json | 2 +- packages/website-legacy/next-env.d.ts | 5 - packages/website-legacy/next.config.js | 34 - packages/website-legacy/package.json | 32 - packages/website-legacy/public/ads.txt | 1108 ----------------- .../public/assets/audio/lotta-damage.mp3 | Bin 33354 -> 0 bytes .../public/assets/versions.json | 1 - packages/website-legacy/public/favicon.png | Bin 692 -> 0 bytes .../src/app/auth/[provider]/constants.ts | 1 - .../src/app/auth/[provider]/layout.tsx | 9 - .../src/app/auth/[provider]/page.tsx | 89 -- .../src/app/components/Checks.tsx | 191 --- .../src/app/components/PageLoader.tsx | 9 - packages/website-legacy/src/app/layout.css | 8 - packages/website-legacy/src/app/layout.tsx | 78 -- packages/website-legacy/src/app/not-found.tsx | 41 - packages/website-legacy/src/app/page.tsx | 104 -- .../website-legacy/src/app/settings/page.tsx | 28 - packages/website-legacy/tsconfig.json | 16 - packages/website-legacy/vercel.json | 5 - packages/website/package.json | 1 + packages/website/src/components/Ad.tsx | 106 +- .../src/components/AdMidSectionResponsive.tsx | 41 +- packages/website/src/components/Party3.astro | 10 +- .../TankSandbox/components/TankModel.tsx | 3 - .../Votes/components/VoteCaster.tsx | 2 - .../src/core/blitzkit/tankCharacteristics.ts | 4 - .../src/pages/tools/session/_index.tsx | 6 +- packages/website/src/stores/session.ts | 2 +- tsconfig.json | 2 +- 30 files changed, 82 insertions(+), 1856 deletions(-) delete mode 100644 packages/website-legacy/next-env.d.ts delete mode 100644 packages/website-legacy/next.config.js delete mode 100644 packages/website-legacy/package.json delete mode 100644 packages/website-legacy/public/ads.txt delete mode 100644 packages/website-legacy/public/assets/audio/lotta-damage.mp3 delete mode 100644 packages/website-legacy/public/assets/versions.json delete mode 100644 packages/website-legacy/public/favicon.png delete mode 100644 packages/website-legacy/src/app/auth/[provider]/constants.ts delete mode 100644 packages/website-legacy/src/app/auth/[provider]/layout.tsx delete mode 100644 packages/website-legacy/src/app/auth/[provider]/page.tsx delete mode 100644 packages/website-legacy/src/app/components/Checks.tsx delete mode 100644 packages/website-legacy/src/app/components/PageLoader.tsx delete mode 100644 packages/website-legacy/src/app/layout.css delete mode 100644 packages/website-legacy/src/app/layout.tsx delete mode 100644 packages/website-legacy/src/app/not-found.tsx delete mode 100644 packages/website-legacy/src/app/page.tsx delete mode 100644 packages/website-legacy/src/app/settings/page.tsx delete mode 100644 packages/website-legacy/tsconfig.json delete mode 100644 packages/website-legacy/vercel.json diff --git a/package.json b/package.json index 0db831705..cf6ee6534 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "start:website": "bun --filter=@blitzkit/website run start", "host:docs": "vitepress preview docs", "lint": "tsc", - "lint:website": "next lint", + "lint:website": "bun --filter=@blitzkit/website run lint", "format": "prettier --write \"**/*.@(json|js|jsx|css|md|ts|tsx|html|xml|yml|gltf)\"", "update": "yarn upgrade --latest", "tunnel": "cloudflared tunnel --url http://localhost:3000", diff --git a/packages/website-legacy/next-env.d.ts b/packages/website-legacy/next-env.d.ts deleted file mode 100644 index 40c3d6809..000000000 --- a/packages/website-legacy/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/packages/website-legacy/next.config.js b/packages/website-legacy/next.config.js deleted file mode 100644 index 98415da83..000000000 --- a/packages/website-legacy/next.config.js +++ /dev/null @@ -1,34 +0,0 @@ -import { createVanillaExtractPlugin } from '@vanilla-extract/next-plugin'; - -const withVanillaExtract = createVanillaExtractPlugin({ tests: /\.css$/ }); - -/** @type {import('next').NextConfig} */ -const nextConfig = { - output: 'export', - - ...withVanillaExtract({ - webpack: (config) => { - config.module.rules.push( - { - test: /\.glsl$/, - type: 'asset/source', - }, - { - test: /\.proto$/, - type: 'asset/source', - }, - ); - - return config; - }, - }), - - distDir: 'dist/website', - reactStrictMode: true, - - experimental: { - workerThreads: false, - }, -}; - -export default nextConfig; diff --git a/packages/website-legacy/package.json b/packages/website-legacy/package.json deleted file mode 100644 index 77604ca49..000000000 --- a/packages/website-legacy/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@blitzkit/website-legacy", - "private": true, - "type": "module", - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start" - }, - "dependencies": { - "@radix-ui/themes": "^3.1.3", - "@radix-ui/react-icons": "^1.3.0", - "@blitzkit/core": "workspace:*", - "fuzzysort": "^2.0.4", - "@nivo/bar": "^0.87.0", - "lodash": "^4.17.21", - "next": "^14.2.7", - "three-stdlib": "^2.32.2", - "urlon": "^3.1.0", - "react": "^18.3.1", - "@vanilla-extract/css": "^1.15.5", - "react-device-detect": "^2.2.3", - "react-dom": "^18.3.1", - "react-fuzzysort": "^1.0.1", - "immer": "^10.1.1", - "@vanilla-extract/dynamic": "^2.1.2" - }, - "devDependencies": { - "@types/lodash": "^4.17.7", - "@vanilla-extract/next-plugin": "^2.4.5" - } -} diff --git a/packages/website-legacy/public/ads.txt b/packages/website-legacy/public/ads.txt deleted file mode 100644 index 6512f38d8..000000000 --- a/packages/website-legacy/public/ads.txt +++ /dev/null @@ -1,1108 +0,0 @@ -#ads.txt https://blitzkit.app - -ownerdomain=blitzkit.app -managerdomain=newormedia.com -contact=hello@newormedia.com - -#Sovrn -lijit.com, 217352, DIRECT, fafdf38b16bf6b2b #SOVRN  -lijit.com, 217352-eb, DIRECT, fafdf38b16bf6b2b #SOVRN  -openx.com, 538959099, RESELLER, 6a698e2ec38604c6  -pubmatic.com, 137711, RESELLER, 5d62403b186f2ace  -pubmatic.com, 156212, RESELLER, 5d62403b186f2ace  -rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807  -appnexus.com, 1019, RESELLER, f5ab79cb980f11d1  - -#OpenX -openx.com, 539824308, DIRECT, 6a698e2ec38604c6 - -#Conversant Media -conversantmedia.com, 41812, DIRECT, 03113cd04947736d  -appnexus.com, 4052, RESELLER  -contextweb.com, 561998, RESELLER, 89ff185a4c4e857c  -lijit.com, 411121, RESELLER, fafdf38b16bf6b2b #SOVRN  -openx.com, 540031703, RESELLER, 6a698e2ec38604c6  -pubmatic.com, 158100, RESELLER, 5d62403b186f2ace  -rubiconproject.com, 23644, RESELLER, 0bfd66d529a55807  -yahoo.com, 55771, RESELLER, e1a5b5b6e3255540  -admanmedia.com, 2050, RESELLER -Appnerve.com, 187287, RESELLER -conversantmedia.com, 100658, RESELLER, 03113cd04947736d -conversantmedia.com, 100660, RESELLER, 03113cd04947736d -conversantmedia.com, 100661, RESELLER, 03113cd04947736d -conversantmedia.com, 100662, RESELLER, 03113cd04947736d -conversantmedia.com, 100663, RESELLER, 03113cd04947736d -conversantmedia.com, 100670, RESELLER, 03113cd04947736d -conversantmedia.com, 100671, RESELLER, 03113cd04947736d -conversantmedia.com, 100672, RESELLER, 03113cd04947736d -conversantmedia.com, 100677, RESELLER, 03113cd04947736d -conversantmedia.com, 100688, RESELLER, 03113cd04947736d -conversantmedia.com, 100691, RESELLER, 03113cd04947736d -conversantmedia.com, 100659, RESELLER, 03113cd04947736d - -#Amazon A9 -aps.amazon.com, 094e2c86-72d9-47d6-a647-d95ce39ad4c7, DIRECT  -sovrn.com, 217352, DIRECT, fafdf38b16bf6b2b  -lijit.com, 217352, DIRECT, fafdf38b16bf6b2b  -rubiconproject.com, 18020, RESELLER, 0bfd66d529a55807  -openx.com, 540191398, RESELLER, 6a698e2ec38604c6  -appnexus.com, 1908, RESELLER, f5ab79cb980f11d1  -smaato.com, 110004504, DIRECT, 07bcf65f187117b4  -ad-generation.jp, 12474, RESELLER, 7f4ea9029ac04e53  -districtm.io, 100962, RESELLER, 3fd707be9c4527c3  -yieldmo.com, 2719019867620450718, RESELLER  -appnexus.com, 3663, RESELLER, f5ab79cb980f11d1  -gumgum.com, 14141, RESELLER, ffdef49475d318a9  -admanmedia.com, 726, RESELLER  -sharethrough.com, 3a0f657b, DIRECT, d53b998a7bd4ecd2  -emxdgt.com, 2009, RESELLER, 1e1d41537f7cad7f  -appnexus.com, 1356, RESELLER, f5ab79cb980f11d1  -contextweb.com, 562541, RESELLER, 89ff185a4c4e857c  -smartadserver.com, 4125, RESELLER, 060d053dcf45cbf3  -themediagrid.com, JTQKMP, RESELLER, 35d5010d7789b49d  -beachfront.com, 14804, RESELLER, e2541279e8e2ca4d  -improvedigital.com, 2050, RESELLER  -mintegral.com, 10043, RESELLER, 0aeed750c80d6423  -sonobi.com, 7f5fa520f8, RESELLER, d1a215d9eb5aee9e  -appnexus.com, 8692, DIRECT, f5ab79cb980f11d1  -onetag.com, 732218ebb38c233, DIRECT  -video.unrulymedia.com, 2310154583, DIRECT, a670c89d4a324e47  -rhythmone.com, 1654642120, RESELLER, a670c89d4a324e47  -indexexchange.com, 198541, DIRECT, 50b1c356f2c5c8fc  -pubmatic.com, 161855, DIRECT, 5d62403b186f2ace  -media.net, 8CUZ1MK22, RESELLER  -risecodes.com, 63832beef8189a00015cb6d3, RESELLER  -mediago.io, 045ac24b888bcf59a09731e7f0f2084f, RESELLER  -adyoulike.com, 7463c359225e043c111036d7a29affa5, RESELLER  -minutemedia.com, 01gya4708ddm, RESELLER  -minutemedia.com, 01g889hj3s8c, DIRECT  -visiblemeasures.com, 1052, RESELLER  -undertone.com, 4205, RESELLER, d954590d0cb265b9  -pubmatic.com, 160096, RESELLER, 5d62403b186f2ace  -yahoo.com, 55029, RESELLER, e1a5b5b6e3255540  -imds.tv, AM1601, RESELLER, ae6c32151e71f19d  -kargo.com, 8824, RESELLER  -triplelift.com, 6c33edb13117fd86, DIRECT  -triplelift.com, DIRECT, 6c33edb13117fd86  - -#RhythmOne/Unruly -video.unrulymedia.com, 2310154583, DIRECT - -#Sharethrough -sharethrough.com, nW2sZwdg, DIRECT, d53b998a7bd4ecd2  -sharethrough.com, 3a0f657b, DIRECT, d53b998a7bd4ecd2  -pubmatic.com, 156557, RESELLER  -rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807  -openx.com, 540274407, RESELLER, 6a698e2ec38604c6  -33across.com, 0013300001kQj2HAAS, RESELLER, bbea06d9c4d2853c  -smaato.com, 1100047713, RESELLER, 07bcf65f187117b4  -yahoo.com, 59531, RESELLER, e1a5b5b6e3255540  -smartadserver.com, 4342, RESELLER  -smartadserver.com, 4012, RESELLER  -sharethrough.com, Tsc1fZ67, RESELLER, d53b998a7bd4ecd2  - -#Rubicon -rubiconproject.com, 17822, DIRECT, 0bfd66d529a55807 -rubiconproject.com, 17822, RESELLER, 0bfd66d529a55807 - -#NextMillennium -nextmillennium.io, 15882, DIRECT, 65bd090fa4a1e3d6 -admagnetix.io, 200954, DIRECT -appnexus.com, 9284, DIRECT, f5ab79cb980f11d1 -appnexus.com, 15799, DIRECT, f5ab79cb980f11d1 -rubiconproject.com, 17888, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 26296, RESELLER, 0bfd66d529a55807 -pubmatic.com, 157577, DIRECT, 5d62403b186f2ace -pubmatic.com, 164400, RESELLER, 5d62403b186f2ace -indexexchange.com, 194648, RESELLER, 50b1c356f2c5c8fc -indexexchange.com, 207985, RESELLER, 50b1c356f2c5c8fc -openx.com, 540224251, DIRECT, 6a698e2ec38604c6 -openx.com, 540225743, DIRECT, 6a698e2ec38604c6 -33across.com, 0010b00002e4MRRAA2, DIRECT, bbea06d9c4d2853c -33across.com, 001Pg000007PnplIAC, DIRECT, bbea06d9c4d2853c #33Across #hb #tag -yieldmo.com, 2230523609997805235, DIRECT -yieldmo.com, 3483642730188317326, DIRECT - -#33Across -33across.com, 0010b00002Mpn7AAAR, DIRECT, bbea06d9c4d2853c -appnexus.com, 10239, RESELLER, f5ab79cb980f11d1 #33Across #hb #tag #viewable  -rubiconproject.com, 16414, RESELLER, 0bfd66d529a55807 #33Across #hb #tag  -pubmatic.com, 156423, RESELLER, 5d62403b186f2ace #33Across #hb #tag  -yahoo.com, 57289, RESELLER, e1a5b5b6e3255540 #33Across #hb #tag  -rubiconproject.com, 21642, RESELLER, 0bfd66d529a55807 #33Across #hb #tag #viewable  -conversantmedia.com, 100141, DIRECT #33Across #hb #tag  -indexexchange.com, 191973, RESELLER, 50b1c356f2c5c8fc #33Across #hb #tag #viewable  -openx.com, 537120563, RESELLER, 6a698e2ec38604c6 #33Across #hb #tag  -contextweb.com, 561516, RESELLER, 89ff185a4c4e857c  -loopme.com, 11575, RESELLER, 6c8d5f95897a5a3b  -triplelift.com, 12503, RESELLER, 6c33edb13117fd86  -video.unrulymedia.com, 2439829435, DIRECT  -loopme.com, 11575, RESELLER, 6c8d5f95897a5a3b -adyoulike.com, 1f301d3bcd723f5c372070bdfd142940, RESELLER - -#TripleLift -triplelift.com, 7205, DIRECT, 6c33edb13117fd86  - -#Consumable -consumable.com, 2000908, DIRECT, aefcd3d2f45b5070 -appnexus.com, 7556, RESELLER, f5ab79cb980f11d1 -google.com, pub-6694481294649483, RESELLER, f08c47fec0942fa0 -indexexchange.com, 186248, RESELLER, 50b1c356f2c5c8fc -lijit.com, 248396, RESELLER, fafdf38b16bf6b2b -openx.com, 537150004, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 156319, RESELLER, 5d62403b186f2ace -sonobi.com, e55fb5d7c2, RESELLER, d1a215d9eb5aee9e -rubiconproject.com, 24856, RESELLER, 0bfd66d529a55807 -openx.com, 539699341, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 157367, RESELLER, 5d62403b186f2ace -indexexchange.com, 187454, RESELLER, 50b1c356f2c5c8fc -sonobi.com, 6e5cfb5420, DIRECT, d1a215d9eb5aee9e -lijit.com, 248396-eb, DIRECT, fafdf38b16bf6b2b -onetag.com, 6c68086c0c61793, DIRECT -smartadserver.com, 4295, RESELLER -supply.colossusssp.com, 442, DIRECT, 6c5b49d96ec1b458 -amxrtb.com, 105199577, DIRECT -contextweb.com, 562763, RESELLER, 89ff185a4c4e857c -yieldmo.com, 3129364219166663150, RESELLER - -#Newor Media Adx -google.com, pub-4641608711979091, RESELLER, f08c47fec0942fa0 - -#Select Media -152media.info, 152M10, RESELLER  -33across.com, 0010b00002T3JniAAF, RESELLER, bbea06d9c4d2853c  -adtelligent.com, 311542, RESELLER  -amxrtb.com, 105199498, RESELLER  -appnexus.com, 11924, RESELLER, f5ab79cb980f11d1  -appnexus.com, 12290, RESELLER, f5ab79cb980f11d1  -appnexus.com, 3153, RESELLER, f5ab79cb980f11d1  -appnexus.com, 9684, RESELLER, f5ab79cb980f11d1  -bidmatic.io, b-4c0f6, RESELLER   -e-planning.net, 835fbafe26d231b1, RESELLER, c1ba615865ed87b2  -indexexchange.com, 191503, RESELLER, 50b1c356f2c5c8fc  -indexexchange.com, 192700, RESELLER, 50b1c356f2c5c8fc  -lijit.com, 310770, RESELLER, fafdf38b16bf6b2b  -lijit.com, 322507, RESELLER, fafdf38b16bf6b2b  -loopme.com, 11378, RESELLER, 6c8d5f95897a5a3b  -media.net, 8CU816538, DIRECT  -onetag.com, 59a18369e249bfb, RESELLER  -openx.com, 540999880, RESELLER, 6a698e2ec38604c6  -openx.com, 541177116, RESELLER, 6a698e2ec38604c6  -pubmatic.com, 157288, RESELLER, 5d62403b186f2ace  -pubmatic.com, 161562, RESELLER, 5d62403b186f2ace  -rhythmone.com, 3139274702404301777, RESELLER, a670c89d4a324e47  -rubiconproject.com, 11006, RESELLER, 0bfd66d529a55807  -sovrn.com, 310770, RESELLER, fafdf38b16bf6b2b  -sovrn.com, 322507, RESELLER, fafdf38b16bf6b2b  -video.unrulymedia.com, 3139274702404301777, RESELLER  -yahoo.com, 58073, RESELLER, e1a5b5b6e3255540  - -#AMX/AdaptMX/AppMonet -indexexchange.com, 191503, RESELLER, 50b1c356f2c5c8fc  -lijit.com, 260380, RESELLER, fafdf38b16bf6b2b  -sovrn.com, 260380, RESELLER, fafdf38b16bf6b2b  -pubmatic.com, 161527, RESELLER, 5d62403b186f2ace  -appnexus.com, 9393, RESELLER, f5ab79cb980f11d1  -appnexus.com, 11924, RESELLER, f5ab79cb980f11d1  -rubiconproject.com, 23844, RESELLER, 0bfd66d529a55807  -adform.com, 2865, RESELLER  -rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807  -yahoo.com, 49648, RESELLER  -smartadserver.com, 3056, RESELLER, 060d053dcf45cbf3  -pubmatic.com, 158355, RESELLER, 5d62403b186f2ace  -amxrtb.com, 105199384, DIRECT  -appnexus.com, 12290, RESELLER, f5ab79cb980f11d1  -advertising.com, 28305, RESELLER  -openx.com, 559680764, RESELLER, 6a698e2ec38604c6 - -#PubMatic -pubmatic.com, 160082, RESELLER, 5d62403b186f2ace -pubmatic.com, 160131, RESELLER, 5d62403b186f2ace -pubmatic.com, 161855, RESELLER, 5d62403b186f2ace - -#BigHappy Ads -appnexus.com, 12263, RESELLER  - -#Adagio -adagio.io, 1102, RESELLER  -rubiconproject.com, 19116, RESELLER, 0bfd66d529a55807  -pubmatic.com, 159110, RESELLER, 5d62403b186f2ace  -improvedigital.com, 1790, RESELLER  -onetag.com, 6b859b96c564fbe, RESELLER  -yahoo.com, 58905, RESELLER, e1a5b5b6e3255540  -appnexus.com, 13099, RESELLER  -smartadserver.com, 4111, RESELLER  -indexexchange.com, 194558, RESELLER  -33across.com, 0015a00002oUk4aAAC, RESELLER, bbea06d9c4d2853c  -yahoo.com, 57289, RESELLER, e1a5b5b6e3255540  -appnexus.com, 10239, RESELLER, f5ab79cb980f11d1  -rubiconproject.com, 16414, RESELLER, 0bfd66d529a55807  -smartadserver.com, 3554, RESELLER  -pubmatic.com, 156439, RESELLER, 5d62403b186f2ace  -pubmatic.com, 154037, RESELLER, 5d62403b186f2ace  -rubiconproject.com, 16114, RESELLER, 0bfd66d529a55807  -openx.com, 537149888, RESELLER, 6a698e2ec38604c6  -appnexus.com, 3703, RESELLER, f5ab79cb980f11d1  -loopme.com, 5679, RESELLER, 6c8d5f95897a5a3b  -xad.com, 958, RESELLER, 81cbf0a75a5e0e9a  -video.unrulymedia.com, 2564526802, RESELLER  -smaato.com, 1100044045, RESELLER, 07bcf65f187117b4  -pubnative.net, 1006576, RESELLER, d641df8625486a7b  -verve.com, 15503, RESELLER, 0c8f5958fc2d6270  -adyoulike.com, b4bf4fdd9b0b915f746f6747ff432bde, RESELLER  -axonix.com, 57264, RESELLER  -admanmedia.com, 43, RESELLER  -sharethrough.com, OAW69Fon, RESELLER, d53b998a7bd4ecd2  -contextweb.com, 560288, RESELLER, 89ff185a4c4e857c  -lijit.com, 367236, RESELLER, fafdf38b16bf6b2b  -openx.com, 538959099, RESELLER, 6a698e2ec38604c6  -pubmatic.com, 137711, RESELLER, 5d62403b186f2ace  -pubmatic.com, 156212, RESELLER, 5d62403b186f2ace  -rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807  -appnexus.com, 1019, RESELLER, f5ab79cb980f11d1  -yahoo.com, 59973, RESELLER, e1a5b5b6e3255540  -appnexus.com, 11664, RESELLER  -indexexchange.com, 195924, RESELLER  -pubmatic.com, 156325, RESELLER, 5d62403b186f2ace  -pubmatic.com, 155967, RESELLER, 5d62403b186f2ace  -openx.com, 544096208, RESELLER, 6a698e2ec38604c6  -rubiconproject.com, 17250, RESELLER, 0bfd66d529a55807  -telaria.com, 4jdlm-4qsx9, RESELLER, 1a4e959a1b50034a  -tremorhub.com, 4jdlm-4qsx9, RESELLER, 1a4e959a1b50034a  -emxdgt.com, 1291, RESELLER, 1e1d41537f7cad7f  -contextweb.com, 561707, RESELLER, 89ff185a4c4e857c  -triplelift.com, 12396, RESELLER, 6c33edb13117fd86  -sharethrough.com, 8bab9627, RESELLER, d53b998a7bd4ecd2  -gumgum.com, 15563, RESELLER, ffdef49475d318a9  -freewheel.tv, 1568036, RESELLER  -freewheel.tv, 1568041, RESELLER  -openx.com, 558899373, RESELLER, 6a698e2ec38604c6  -video.unrulymedia.com, 5672421953199218469, RESELLER  -e-planning.net, 83c06e81531537f4, RESELLER, c1ba615865ed87b2  -video.unrulymedia.com, 2439829435, RESELLER  -conversantmedia.com, 100141, RESELLER  -triplelift.com, 13482, RESELLER, 6c33edb13117fd86 - -#Apacdex -quantumdex.io, 1988, RESELLER  -interdogmedia.com, 1988, RESELLER  -apacdex.com, 1988, RESELLER  -pubpower.io, 1988, RESELLER  -appnexus.com, 10273, RESELLER, f5ab79cb980f11d1  -appnexus.com, 11395, RESELLER, f5ab79cb980f11d1  -indexexchange.com, 192922, RESELLER, 50b1c356f2c5c8fc  -advertising.com, 28643, RESELLER #VerizonVideo  -yahoo.com, 58754, RESELLER, e1a5b5b6e3255540  -aol.com, 58754, RESELLER, e1a5b5b6e3255540  -pubmatic.com, 157940, RESELLER, 5d62403b186f2ace  -video.unrulymedia.com, 2276989117, DIRECT  -rhythmone.com, 2276989117, DIRECT, a670c89d4a324e47  -disqus.com, 4715692, DIRECT  -appnexus.com, 9393, DIRECT, f5ab79cb980f11d1  -sovrn.com, 278426, DIRECT, fafdf38b16bf6b2b  -lijit.com, 278426, DIRECT, fafdf38b16bf6b2b  -onetag.com, 2bb78272a859ca6, DIRECT  -sharethrough.com, cc26d15a, DIRECT, d53b998a7bd4ecd2  -smaato.com, 1100045673, DIRECT, 07bcf65f187117b4  -smaato.com, 1100004890, DIRECT, 07bcf65f187117b4  -appnexus.com, 11711, RESELLER, f5ab79cb980f11d1  -onetag.com, 2bb78272a859ca6, RESELLER  -betweendigital.com, 43894, RESELLER  -video.unrulymedia.com, 2276989117, RESELLER  -rhythmone.com, 2276989117, RESELLER, a670c89d4a324e47  -disqus.com, 4715692, RESELLER  -sharethrough.com, cc26d15a, RESELLER, d53b998a7bd4ecd2  -smaato.com, 1100045673, RESELLER, 07bcf65f187117b4  -smaato.com, 1100004890, RESELLER, 07bcf65f187117b4  - -#Smaato -smaato.com, 1100048590, RESELLER, 07bcf65f187117b4 -smaato.com, 1100004890, DIRECT, 07bcf65f187117b4 -rubiconproject.com, 24600, RESELLER, 0bfd66d529a55807 -advangelists.com, 9766527f2b5d3e95d4a733fcfb77bd7e, RESELLER, 60d26397ec060f98 -appnexus.com, 1752, RESELLER, f5ab79cb980f11d1 -contextweb.com, 558622, RESELLER, 89ff185a4c4e857c -inmobi.com, 55049d2e109d4ac1820ca1432dda4e13, RESELLER, 83e75a7ae333ca9d -inmobi.com, 95ef2003a2c742db81a45303d6e4cf8b, RESELLER, 83e75a7ae333ca9d -openx.com, 540421297, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 156177, RESELLER, 5d62403b186f2ace -pubmatic.com, 156425, RESELLER, 5d62403b186f2ace -pubmatic.com, 156557, RESELLER -pubmatic.com, 161771, RESELLER, 5d62403b186f2ace -rhebus.works, 8978398251, RESELLER -rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 13132, RESELLER, 0bfd66d529a55807 -sharethrough.com, iBAzay96, RESELLER, d53b998a7bd4ecd2 -smartadserver.com, 4762, RESELLER, 060d053dcf45cbf3 -thunder-monetize.com, 1252316774, RESELLER -video.unrulymedia.com, 251620492, RESELLER -xad.com, 241, RESELLER, 81cbf0a75a5e0e9a - -#NoBid -nobid.io, 22418789427, DIRECT   -33across.com, 0010b00002Mq2FYAAZ, DIRECT, bbea06d9c4d2853c  -yahoo.com, 57289, RESELLER, e1a5b5b6e3255540  -rhythmone.com, 2439829435, RESELLER, a670c89d4a324e47  -google.com, pub-1789253751882305, DIRECT, f08c47fec0942fa0  -google.com, pub-1835489473992347, RESELLER, f08c47fec0942fa0  -gumgum.com, 13926, DIRECT, ffdef49475d318a9  -onetag.com, 694e68b73971b58, DIRECT  -rubiconproject.com, 11006, RESELLER, 0bfd66d529a55807  -advertising.com, 28246, RESELLER  -advertising.com, 28246, RESELLER  -yahoo.com, 57872, DIRECT  -smartadserver.com,3447, DIRECT  -lijit.com, 273657, DIRECT, fafdf38b16bf6b2b  -sovrn.com, 273657, DIRECT, fafdf38b16bf6b2b  -xandr.com, 11429, DIRECT, f5ab79cb980f11d1  -xandr.com, 12701, DIRECT, f5ab79cb980f11d1  -rubiconproject.com, 13702, DIRECT, 0bfd66d529a55807  -video.unrulymedia.com, 3736557092, RESELLER  -rhythmone.com, 3736557092, RESELLER, a670c89d4a324e47  -nativo.com, 5677, Direct  -admanmedia.com, 812, DIRECT  -sonobi.com, 7ad1b9f952, RESELLER, d1a215d9eb5aee9e  -rhythmone.com, 1059622079, RESELLER, a670c89d4a324e47  -contextweb.com, 560606, RESELLER, 89ff185a4c4e857c  -yahoo.com, 58905, RESELLER, e1a5b5b6e3255540  -aol.com, 58905, RESELLER, e1a5b5b6e3255540  -appnexus.com, 13099, RESELLER  -amxrtb.com, 105199579, DIRECT  -indexexchange.com, 195491, RESELLER, 50b1c356f2c5c8fc  - -#Media.net -media.net, 8CUT8W5DX, RESELLER  -pubmatic.com, 159463, RESELLER, 5d62403b186f2ace  -openx.com, 537100188, RESELLER, 6a698e2ec38604c6  -rubiconproject.com, 19396, Reseller, 0bfd66d529a55807  -media.net, 8CUZ8181A, DIRECT   - -#OneTag -onetag.com, 732218ebb38c233, DIRECT  -onetag.com, 732218ebb38c233-OB, DIRECT  -appnexus.com, 13099, RESELLER  -yahoo.com, 58905, RESELLER, e1a5b5b6e3255540  -pubmatic.com, 161593, RESELLER, 5d62403b186f2ace  -rubiconproject.com, 11006, RESELLER, 0bfd66d529a55807  - -#Brightcom -brightcom.com, 20292, DIRECT  -amxrtb.com, 105199514, RESELLER  -appnexus.com, 11801, RESELLER  -indexexchange.com, 189744, RESELLER  -audienciad.com, 202922, DIRECT  -rubiconproject.com, 20416, RESELLER, 0bfd66d529a55807   -onomagic.com, 202921, DIRECT  -smartadserver.com, 3439, RESELLER   -limpid.tv, 920292, DIRECT  -google.com, pub-5231479214411897, RESELLER, f08c47fec0942fa0  -pubmatic.com, 159477, RESELLER, 5d62403b186f2ace  -sparcmedia.com, 320292, DIRECT  -smartadserver.com, 4253, RESELLER   -getmediamx.com, 1220292, DIRECT  -appnexus.com, 13162, RESELLER, f5ab79cb980f11d1  -adyoulike.com, e102ab4faade732565927e57d62d6b8b, RESELLER  -onetag.com, 75753f1ebcc343c, RESELLER  -pubmatic.com, 161332, RESELLER, 5d62403b186f2ace  -appnexus.com, 14423, RESELLER, f5ab79cb980f11d1  -yieldmo.com, 2757543169808605705, RESELLER  -sonobi.com, 37dd19ad4a, RESELLER, d1a215d9eb5aee9e  -rhythmone.com, 1059622079, RESELLER, a670c89d4a324e47  -contextweb.com, 560606, RESELLER, 89ff185a4c4e857c  -sonobi.com, 42a06dc622, RESELLER, d1a215d9eb5aee9e  -contextweb.com, 560606, RESELLER, 89ff185a4c4e857c  -rubiconproject.com, 21310, RESELLER, 0bfd66d529a55807  -appnexus.com, 12695, RESELLER, f5ab79cb980f11d1  -appnexus.com, 12366, RESELLER, f5ab79cb980f11d1  -sovrn.com, 374814, RESELLER, fafdf38b16bf6b2b  -lijit.com, 374814, RESELLER, fafdf38b16bf6b2b  -lijit.com, 374814-eb, RESELLER, fafdf38b16bf6b2b  -openx.com, 537153209, RESELLER, 6a698e2ec38604c6  -rubiconproject.com, 24364, RESELLER, 0bfd66d529a55807  -criteo.com, B-067384, RESELLER, 9fac4a4a87c2a44f  -themediagrid.com, IRK975, RESELLER, 35d5010d7789b49d  -conversantmedia.com, 41996, DIRECT, 03113cd04947736d  -adform.com, 2708, RESELLER, 9f5210a2f0999e32  -contextweb.com, 562981, RESELLER, 89ff185a4c4e857c  -onetag.com, 7b561459c997848, RESELLER -pubmatic.com, 163517, RESELLER, 5d62403b186f2ace -rubiconproject.com, 25722, RESELLER, 0bfd66d529a55807 -smartadserver.com, 4253, RESELLER -smartadserver.com, 4483, RESELLER -loopme.com, 11228, RESELLER, 6c8d5f95897a5a3b  -advibe.media, 820292, DIRECT  -appnexus.com, 15127, RESELLER  -aps.amazon.com, 48266a61-b3d9-4cb7-b172-553abc6a42a4, DIRECT  -whildey.com, 202925, DIRECT  -sharethrough.com, lTiXlNiO, DIRECT  -media.net, 8CUB46Z7R, RESELLER   -adform.com, 2708, DIRECT, 9f5210a2f0999e32  -conversantmedia.com, 41996, RESELLER, 03113cd04947736d  -adsparc.com, 720292, DIRECT  -onlinemediasolutions.com, 20292, DIRECT -sharethrough.com, r4ScMSsf, RESELLER -indexexchange.com, 197494, RESELLER, 50b1c356f2c5c8fc -sonobi.com, 3aed893727, RESELLER, d1a215d9eb5aee9e -appnexus.com, 15710, RESELLER -loopme.com, 12733, RESELLER, 6c8d5f95897a5a3b -appnexus.com, 15629, RESELLER, f5ab79cb980f11d1 -sharethrough.com, Ey4o0VpT, RESELLER, d53b998a7bd4ecd2 -video.unrulymedia.com, 6694405583287859332, RESELLER -adyoulike.com, e9a771d72c076dbe3cafc2c6477f9238, RESELLER - - -#Media Grid -themediagrid.com, 47RT8V, DIRECT, 35d5010d7789b49d  - -#Adtelligent -adtelligent.com, 501918, DIRECT  -bidmatic.io, b-82687, DIRECT  -openx.com, 541177116, RESELLER, 6a698e2ec38604c6  -pubmatic.com, 161562, RESELLER, 5d62403b186f2ace  -152media.info, 152M10, RESELLER  -xandr.com, 3153, RESELLER, f5ab79cb980f11d1  -xandr.com, 11924, RESELLER, f5ab79cb980f11d1  -video.unrulymedia.com, 3139274702404301777, RESELLER, 6f752381ad5ec0e5  -onetag.com, 59a18369e249bfb, RESELLER  -33across.com, 0010b00002T3JniAAF, RESELLER, bbea06d9c4d2853c  -lijit.com, 310770, RESELLER, fafdf38b16bf6b2b  -Media.net, 8CU816538, DIRECT  -rubiconproject.com, 20086, RESELLER, 0bfd66d529a55807  -orangeclickmedia.com, ach5lxtq1pmgjoz4, RESELLER, cd730d2f56b472c4  -adform.com, 2656, RESELLER, 9f5210a2f0999e32  -aceex.io, 1641, DIRECT, b1cf3c874d5c6682  -hcodemedia.com, 585, DIRECT  -adform.com, 3062, RESELLER, 9f5210a2f0999e32  -mgid.com, 827967, RESELLER, d4c29acad76ce94f  -rubiconproject.com, 9655, RESELLER, 0bfd66d529a55807  -afront.io, 3975, RESELLER  -markappmedia.site, 533994, RESELLER  -appnexus.com, 14416, RESELLER, f5ab79cb980f11d1  -vidoomy.com, 2252369, RESELLER  -minutemedia.com, 01h915hbq5pj, RESELLER  -amxrtb.com, 105199328, RESELLER  -jfacassoc.com, 1621, RESELLER  -rubiconproject.com, 25230, RESELLER, 0bfd66d529a55807  -xandr.com, 14674, RESELLER, f5ab79cb980f11d1  - -#Smile Wanted -smilewanted.com, 3855, RESELLER -pubmatic.com, 158810, RESELLER, 5d62403b186f2ace -appnexus.com, 10040, RESELLER -smartadserver.com, 2491, RESELLER, -pubmatic.com, 156439, RESELLER, -pubmatic.com, 154037, RESELLER, -appnexus.com, 3703, RESELLER, f5ab79cb980f11d1 -rubiconproject.com, 16114, RESELLER, -openx.com, 537149888, RESELLER, 6a698e2ec38604c6 -loopme.com, 5679, RESELLER, 6c8d5f95897a5a3b -smaato.com, 1100044045, RESELLER, 07bcf65f187117b4 -rhythmone.com, 2564526802, RESELLER, a670c89d4a324e47 -xad.com, 958, RESELLER, 81cbf0a75a5e0e9a -verve.com, 15503, RESELLER, 0c8f5958fc2d6270 -sharethrough.com, OAW69Fon, RESELLER, d53b998a7bd4ecd2 -rubiconproject.com, 19814, RESELLER, 0bfd66d529a55807 -openx.com, 557083110, RESELLER, 6a698e2ec38604c6 -lijit.com, 346012, DIRECT, fafdf38b16bf6b2b -lijit.com, 346012-eb, DIRECT, fafdf38b16bf6b2b -appnexus.com, 1019, RESELLER, f5ab79cb980f11d1 -openx.com, 538959099, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 137711, RESELLER, 5d62403b186f2ace -pubmatic.com, 156212, RESELLER, 5d62403b186f2ace -rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807 -improvedigital.com, 1010, RESELLER -indexexchange.com, 193216, RESELLER -adform.com, 3027, RESELLER -sharethrough.com, TZ1ahFV8, RESELLER, d53b998a7bd4ecd2 -video.unrulymedia.com, 266978658, RESELLER -pubmatic.com, 156557, RESELLER -rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807 -openx.com, 540274407, RESELLER, 6a698e2ec38604c6 -33across.com, 0013300001kQj2HAAS, RESELLER, bbea06d9c4d2853c -smaato.com, 1100047713, RESELLER, 07bcf65f187117b4 -yahoo.com, 59531, RESELLER, e1a5b5b6e3255540 -smartadserver.com, 4342, RESELLER -smartadserver.com, 4012, RESELLER -smaato.com,1100055901, RESELLER, 07bcf65f187117b4 -smaato.com, 1100004890, RESELLER, 07bcf65f187117b4 -33across.com, 001Pg000009Gtq2IAC, DIRECT, bbea06d9c4d2853c -appnexus.com, 10239, RESELLER, f5ab79cb980f11d1 -rubiconproject.com, 16414, RESELLER, 0bfd66d529a55807 -pubmatic.com, 156423, RESELLER, 5d62403b186f2ace -yahoo.com, 57289, RESELLER, e1a5b5b6e3255540 -conversantmedia.com, 100141, RESELLER, 03113cd04947736d -indexexchange.com, 191973, RESELLER, 50b1c356f2c5c8fc -openx.com, 537120563, RESELLER, 6a698e2ec38604c6 -contextweb.com, 561516, RESELLER, 89ff185a4c4e857c -triplelift.com, 12503, RESELLER, 6c33edb13117fd86 -video.unrulymedia.com, 2439829435, RESELLER -loopme.com,11575,RESELLER,6c8d5f95897a5a3b -loopme.com, 11468, RESELLER, 6c8d5f95897a5a3b -rubiconproject.com, 20744, RESELLER, 0bfd66d529a55807 -pubmatic.com, 158154, RESELLER, 5d62403b186f2ace -xandr.com, 13799, RESELLER -Vidoomy.com, 7763608 , RESELLER -Adform.com , 2742 , RESELLER -onetag.com, 7f5d22b0006ab5a, RESELLER -appnexus.com, 13099, RESELLER -pubmatic.com, 161593, RESELLER, 5d62403b186f2ace -rubiconproject.com, 11006, RESELLER, 0bfd66d529a55807 -google.com, pub-3769010358500643, RESELLER, f08c47fec0942fa0 -freewheel.tv, 20393, RESELLER -freewheel.tv, 24377, RESELLER -richaudience.com, lDF5XleM05, DIRECT -openx.com, 539625136, RESELLER -yahoo.com, 57857, RESELLER, e1a5b5b6e3255540 -appnexus.com, 8233, RESELLER -appnexus.com, 2928, RESELLER -indexexchange.com, 201092, RESELLER, 50b1c356f2c5c8fc -sharethrough.com, 1udopJ1S, RESELLER, d53b998a7bd4ecd2 -e-planning.net, c0749812fd2a9ac4, RESELLER, c1ba615865ed87b2 -Zeta.com, 891, RESELLER -bizzclick.com, 292, RESELLER, 7e936b1feafdaa61 -152media.info, 152M728, RESELLER -appnexus.com, 11924, RESELLER, f5ab79cb980f11d1 -betweendigital.com, 45128, DIRECT -smartadserver.com, 4467, RESELLER -33across.com, 0015a00003DKg9ZAAT, RESELLER, bbea06d9c4d2853c -outbrain.com, 0089b17935555149a32ed30dc72fc83f2d, RESELLER -vi.ai, 987349031605160, DIRECT -appnexus.com, 7597, RESELLER, f5ab79cb980f11d1 -xandr.com, 10736, RESELLER -freewheel.tv, 1220655, RESELLER -indexexchange.com, 193091, RESELLER, 50b1c356f2c5c8fc -rubiconproject.com, 17130, RESELLER, 0bfd66d529a55807 -improvedigital.com, 1863, RESELLER -admanmedia.com, 722, DIRECT -criteo.com, B-063105, RESELLER, 9fac4a4a87c2a44f -triplelift.com, 12456, RESELLER, 6c33edb13117fd86 -smartadserver.com, 3713, RESELLER -openx.com, 540866936, DIRECT, 6a698e2ec38604c6 -rhythmone.com, 3948367200, RESELLER, a670c89d4a324e47 -adform.com, 2671, RESELLER -axonix.com, 57869, RESELLER -pubmatic.com, 158481, RESELLER, 5d62403b186f2ace -sonobi.com, 7b37f8ccbc, RESELLER, d1a215d9eb5aee9e -rubiconproject.com, 25386, DIRECT, 0bfd66d529a55807 -video.unrulymedia.com, 1767448067723954599, RESELLER -google.com, pub-6346866704322274, RESELLER, f08c47fec0942fa0 -google.com, pub-3565385483761681, RESELLER, f08c47fec0942fa0 -google.com, pub-5717092533913515, RESELLER, f08c47fec0942fa0 -pubmatic.com, 159277, RESELLER, -pubmatic.com, 161335, RESELLER, 5d62403b186f2ace -pubmatic.com, 160993, RESELLER, 5d62403b186f2ace -pubmatic.com, 161058, RESELLER, 5d62403b186f2ace -appnexus.com, 12637, RESELLER, f5ab79cb980f11d1 -appnexus.com, 9382, RESELLER, f5ab79cb980f11d1 -appnexus.com, 6849, RESELLER -yahoo.com, 59244, RESELLER -advertising.com, 23089, RESELLER -advertising.com, 28605, RESELLER -rubiconproject.com, 13918, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 15268, RESELLER -indexexchange.com, 182257, RESELLER -synacor.com, 82171, RESELLER, e108f11b2cdf7d5b -loopme.com, 9718, RESELLER, 6c8d5f95897a5a3b -aniview.com, 603f65a2e291680ef30af9c7, RESELLER, 78b21b97965ec3f8 -adwmg.com, 100746, RESELLER -appnexus.com, 12290, RESELLER -amxrtb.com, 105199440, RESELLER -onetag.com, 5d0d72448d8bfb0, RESELLER -pubmatic.com, 161527, RESELLER, 5d62403b186f2ace -openx.com, 557745905, RESELLER, 6a698e2ec38604c6 -adform.com, 2865, RESELLER -pubmatic.com, 156631, RESELLER, 5d62403b186f2ace -videoheroes.tv, 212648, RESELLER , 064bc410192443d8 -appnexus.com, 12976, RESELLER, f5ab79cb980f11d1 -sharethrough.com, K5WDGAsP, RESELLER, d53b998a7bd4ecd2 -rubiconproject.com, 25060 , RESELLER, 0bfd66d529a55807 -adform.com, 3016, RESELLER -bliink.io, c0ca664a-6776-11ee-b177-023bc0057c90, RESELLER -mediafuse.com, 729, RESELLER -google.com, pub-2235342635275361, DIRECT, f08c47fec0942fa0 -google.com, pub-9949628778928908, DIRECT, f08c47fec0942fa0 -freewheel.tv, 770449, DIRECT -freewheel.tv, 774673, RESELLER -freewheel.tv, 893873, RESELLER -video.unrulymedia.com, 1767448067723954599, RESELLER -videoheroes.tv, 212648, RESELLER , 064bc410192443d8 -adwmg.com, 100746, RESELLER -33across.com, 0015a00003DKg9ZAAT, RESELLER, bbea06d9c4d2853c -onetag.com, 7f5d22b0006ab5a, RESELLER - -#152 Media -152media.info, 152M250, RESELLER -appnexus.com, 3153, RESELLER, f5ab79cb980f11d1 -appnexus.com, 11924, RESELLER, f5ab79cb980f11d1 - -#BetweenX -betweendigital.com, 44543, DIRECT  -appnexus.com, 13817, DIRECT, f5ab79cb980f11d1  -vidoomy.com, 9148331, RESELLER   -contextweb.com, 562827, RESELLER, 89ff185a4c4e857c  -smartadserver.com, 4467, RESELLER  -33across.com, 0015a00003DKg9ZAAT, RESELLER, bbea06d9c4d2853c  -pubmatic.com, 159668, RESELLER, 5d62403b186f2ace  -lijit.com, 273644, RESELLER, fafdf38b16bf6b2b  -onetag.com, 5d1628750185ace, RESELLER  -brightcom.com, 29559, RESELLER  -rubiconproject.com, 19724, RESELLER, 0bfd66d529a55807  -google.com, pub-4125454196932019, RESELLER, f08c47fec0942fa0  -yeahmobi.com, 113772, RESELLER  -e-planning.net, 949b688810cb7439, RESELLER, c1ba615865ed87b2  -xapads.com, 144307, RESELLER -lunamedia.io, bfacf5e017bb11edb41173b0ca2c748c, RESELLER, 524ecb396915caaf - -#MinuteMedia -minutemedia.com, 01g889hj3s8c, RESELLER  -pubmatic.com, 161683, RESELLER, 5d62403b186f2ace  -appnexus.com, 8381, RESELLER  -triplelift.com, 6030, RESELLER, 6c33edb13117fd86  -sonobi.com, 37fbaf262c, RESELLER, d1a215d9eb5aee9e  -openx.com, 540780517, RESELLER, 6a698e2ec38604c6  -rubiconproject.com, 17598, RESELLER, 0bfd66d529a55807  -indexexchange.com, 196326, RESELLER  -yahoo.com, 59407, RESELLER, e1a5b5b6e3255540  -sharethrough.com, xz7QjFBY, RESELLER, d53b998a7bd4ecd2  -33across.com, 0013300001jlr99AAA, RESELLER, bbea06d9c4d2853c  -amxrtb.com, 105199663, RESELLER  -sovrn.com, 264726, RESELLER, fafdf38b16bf6b2b  -video.unrulymedia.com, 699546687, RESELLER  -onetag.com, 765b4e6bb9c8438, RESELLER  -yieldmo.com, 2240559316355155321, RESELLER  -zeta.com, 591, RESELLER  -disqus.com, 591, RESELLER"  -admanmedia.com, 953, RESELLER  -iqzone.com, IQ161, RESELLER  -smartadserver.com, 4106, RESELLER, 060d053dcf45cbf3  -improvedigital.com, 2073, RESELLER  -krushmedia.com, AJxF6R470a9M6CaTvK, RESELLER  -betweendigital.com, 44808, RESELLER  -betweendigital.com, 44938, RESELLER"  -loopme.com, 11556, RESELLER, 6c8d5f95897a5a3b  -Contextweb.com ,562963, RESELLER,89ff185a4c4e857c  -lijit.com, 264726, RESELLER, fafdf38b16bf6b2b  -yieldmo.com, 2954622693783052507, RESELLER  -Contextweb.com, 562963, RESELLER, 89ff185a4c4e857c   -imds.tv, 82302, RESELLER, ae6c32151e71f19d  -adyoulike.com, 53264963677efeda057eef7db2cb305f, RESELLER  - -#PulsePoint -contextweb.com, 562735, RESELLER, 89ff185a4c4e857c -rubiconproject.com, 26184, RESELLER, 0bfd66d529a55807 -mediafuse.com, 720, RESELLER -appnexus.com, 9538, RESELLER, f5ab79cb980f11d1 -rubiconproject.com, 24434, RESELLER, 0bfd66d529a55807  -sovrn.com, 253233, RESELLER, fafdf38b16bf6b2b -lijit.com, 253233, RESELLER, fafdf38b16bf6b2b -thebrave.io, 1234696, RESELLER, c25b2154543746ac -sharethrough.com, Bc6D1WHS, RESELLER, d53b998a7bd4ecd2 -freewheel.tv, 1601349, RESELLER -freewheel.tv, 1601388, RESELLER -onetag.com, 82bad7d17eccf7c, RESELLER -axonix.com, 59107, RESELLER, bc385f2b4a87b721 -smartadserver.com, 4343, RESELLER -smartadserver.com, 4865, RESELLER - -#Google AdSense -google.com, pub-6022628118304495, DIRECT, f08c47fec0942fa0 - -#E-Planning -e-planning.net, 161ebfe76aea73c3, DIRECT, c1ba615865ed87b2  -openx.com, 541031350, RESELLER, 6a698e2ec38604c6  -conversantmedia.com, 100066, DIRECT, 03113cd04947736d  -admanmedia.com, 7adaec45, DIRECT  -rubiconproject.com, 12186, RESELLER, 0bfd66d529a55807  -pubmatic.com, 156631, RESELLER, 5d62403b186f2ace  -richaudience.com, 25BiP9IMgN, DIRECT  -advertising.com, 7574, DIRECT  -appnexus.com, 8233, DIRECT  -rubiconproject.com, 13510, DIRECT  -aol.com, 57992, RESELLER, e1a5b5b6e3255540  -Yahoo.com, 57992, RESELLER, e1a5b5b6e3255540  -rhythmone.com, 1059622079, RESELLER, a670c89d4a324e47  -contextweb.com, 560606, RESELLER, 89ff185a4c4e857c  -appnexus.com, 10273, RESELLER, f5ab79cb980f11d1  -indexexchange.com, 192922, RESELLER, 50b1c356f2c5c8fc  -sonobi.com, 4d443a3ea2, RESELLER, d1a215d9eb5aee9e  -admanmedia.com, 771, DIRECT  -pubmatic.com, 158481, RESELLER, 5d62403b186f2ace  -appnexus.com, 8804, RESELLER, f5ab79cb980f11d1  -beachfront.com, 14513, RESELLER, e2541279e8e2ca4d  -aol.com, 57992, RESELLER, e1a5b5b6e3255540  -Yahoo.com, 57992, RESELLER, e1a5b5b6e3255540  -openx.com, 541031350, RESELLER, 6a698e2ec38604c6  -aol.com, 57992, RESELLER, e1a5b5b6e3255540  -Yahoo.com, 57992, RESELLER, e1a5b5b6e3255540  -axonix.com, 56222, RESELLER  -sonobi.com, 8efb591506, DIRECT, d1a215d9eb5aee9e  -inmobi.com, 09f53411034d4d608cd6230490d46fff, DIRECT, 83e75a7ae333ca9d  -yandex.com, 97790217, RESELLER  -disqus.com, 891, DIRECT  -video.unrulymedia.com, 1767353092, RESELLER, a670c89d4a324e47  -triplelift.com, 8446, DIRECT, 6c33edb13117fd86  -triplelift.com, 8446, DIRECT, 6c33edb13117fd86  -indexexchange.com, 190243, DIRECT  -axonix.com, 56222, RESELLER  -sonobi.com, 8efb591506, DIRECT, d1a215d9eb5aee9e  -sharethrough.com, 23830661, DIRECT, d53b998a7bd4ecd2  -onetag.com, 5927d926323dc2c, DIRECT  -triplelift.com, 8446, DIRECT, 6c33edb13117fd86  -contextweb.com, 562965, RESELLER, 89ff185a4c4e857c  -zeta.com, 891, DIRECT  -rubiconproject.com, 12186, RESELLER, 0bfd66d529a55807  - supply.colossusssp.com, 601, DIRECT, 6c5b49d96ec1b458  -appnexus.com, 15941, RESELLER  -zetaglobal.net, 891, DIRECT  -video.unrulymedia.com, 851532539, RESELLER  - -#Rich Audience -richaudience.com, PRVNEccxEi, DIRECT -richaudience.com, quxufDBTNs, DIRECT -richaudience.com, 06EhCbcfZK, DIRECT -adpone.com, 1813bfe577448f6ef478, DIRECT -sunmedia.tv, 12918514-294e-4e6e-8eae-c89a8fec20f5, DIRECT -adpone.com, 1813bfe577448f6ef478, RESELLER -appnexus.com, 8233, RESELLER -pubmatic.com, 81564, RESELLER, 5d62403b186f2ace -pubmatic.com, 156538, RESELLER, 5d62403b186f2ace -rubiconproject.com, 13510, DIRECT -spotx.tv, 202100, RESELLER, 7842df1d2fe2db34 -spotxchange.com, 202100, RESELLER, 7842df1d2fe2db34 -smartadserver.com, 1999-OB, RESELLER, 060d053dcf45cbf3 -smartadserver.com, 1999, RESELLER, 060d053dcf45cbf3 -adform.com, 1942, DIRECT -adform.com, 1941, DIRECT -lijit.com, 249425, RESELLER -openx.com, 539625136, RESELLER -smartadserver.com, 2640, RESELLER -smartadserver.com, 2441, RESELLER -sovrn.com, 249425, RESELLER -indexexchange.com, 201092, RESELLER, 50b1c356f2c5c8fc -smilewanted.com, 3834, RESELLER -sharethrough.com, 1udopJ1S, RESELLER, d53b998a7bd4ecd2 -onetag.com, 7a4244b2979db22-OB, RESELLER -onetag.com, 7a4244b2979db22, RESELLER -triplelift.com, 8683, RESELLER, 6c33edb13117fd86 -google.com, pub-8221793852898543, RESELLER, f08c47fec0942fa0 -pubmatic.com, 156136, RESELLER, 5d62403b186f2ace -appnexus.com, 1199, RESELLER, f5ab79cb980f11d1 -rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 22328, RESELLER, 0bfd66d529a55807 -adform.com, 2631, RESELLER, 9f5210a2f0999e32 -indexexchange.com, 192051, RESELLER -sovrn.com, 277115, DIRECT, fafdf38b16bf6b2b -google.com, pub-4673227357197067, RESELLER, f08c47fec0942fa0  -smartadserver.com, 3374, RESELLER -smartadserver.com, 2951, RESELLER -aps.amazon.com, bbbb77a7-1459-4c85-af82-cd7e0a773a21, DIRECT -improvedigital.com, 1062, RESELLER -improvedigital.com, 543, RESELLER -adform.com, 582, RESELLER, 9f5210a2f0999e32 -adform.com, 2474, DIRECT, 9f5210a2f0999e32 -appnexus.com,10264, RESELLER, f5ab79cb980f11d1 -appnexus.com, 2928, DIRECT -aps.amazon.com, 93aec77c-f6d2-45bd-affc-a85ab5a72683, DIRECT -criteo.com,B-060278,DIRECT, 9fac4a4a87c2a44f -google.com,pub-2128757167812663, reseller, f08c47fec0942fa0 -improvedigital.com, 2048, RESELLER -indexexchange.com, 192450, RESELLER -richaudience.com, sZn9xIbZzF, DIRECT - -#Criteo -criteo.com, B-072429, DIRECT, 9fac4a4a87c2a44f -themediagrid.com, SE27CZ, DIRECT, 35d5010d7789b49d - -#Aniview -aniview.com, 644fea68a67ac0f49c0f54d4, RESELLER, 78b21b97965ec3f8 -google.com, pub-6346866704322274, RESELLER, f08c47fec0942fa0 -google.com, pub-4586415728471297, RESELLER, f08c47fec0942fa0 -playstream.media, 911, RESELLER -sharethrough.com, UXUWG46h, RESELLER, d53b998a7bd4ecd2 -sharethrough.com, zLsEa05k, RESELLER, d53b998a7bd4ecd2 -pubmatic.com, 156557, RESELLER, 5d62403b186f2ace -rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807 -openx.com, 540274407, RESELLER, 6a698e2ec38604c6 -33across.com, 0013300001kQj2HAAS, RESELLER, bbea06d9c4d2853c -smaato.com, 1100047713, RESELLER, 07bcf65f187117b4 -yahoo.com, 59531, RESELLER, e1a5b5b6e3255540 -smartadserver.com, 4342, RESELLER -smartadserver.com, 4012, RESELLER -google.com, pub-3565385483761681, RESELLER, f08c47fec0942fa0 -didna.io, 22652678936, RESELLER -google.com, pub-6479999173277695, RESELLER, f08c47fec0942fa0 -google.com, pub-5717092533913515, RESELLER, f08c47fec0942fa0 -gannett.com, 22652678936, RESELLER -appnexus.com, 12637, RESELLER, f5ab79cb980f11d1 -rubiconproject.com, 13918, RESELLER, 0bfd66d529a55807 -pubmatic.com, 160993, RESELLER, 5d62403b186f2ace -pubmatic.com, 161335, RESELLER, 5d62403b186f2ace -aps.amazon.com, 1ad7261b-91ea-4b6f-b9e9-b83522205b75, RESELLER  -yahoo.com, 59988,  RESELLER, e1a5b5b6e3255540 -video.unrulymedia.com, 3350674472, RESELLER -google.com, pub-4903453974745530, RESELLER, f08c47fec0942fa0 -google.com, pub-2930805104418204, RESELLER, f08c47fec0942fa0 -adipolo.com, 22652678936, RESELLER -adipolosolutions.com, 22652678936, RESELLER -richaudience.com, 1ru8dKmJJV, RESELLER -appnexus.com, 8233, RESELLER, f5ab79cb980f11d1 -openx.com, 539625136, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 81564, RESELLER, 5d62403b186f2ace -pubmatic.com, 156538, RESELLER, 5d62403b186f2ace -rubiconproject.com, 13510, RESELLER, 0bfd66d529a55807 -smartadserver.com, 2640, RESELLER -smartadserver.com, 2441, RESELLER -yahoo.com, 57857, RESELLER, e1a5b5b6e3255540 -hindsightsolutions.net, 22652678936, RESELLER -openx.com, 540862677, RESELLER, 6a698e2ec38604c6 -openx.com, 557739593, RESELLER, 6a698e2ec38604c6 -criteo.com, B-068458, RESELLER, 9fac4a4a87c2a44f -themediagrid.com, 4AJU2M, RESELLER, 35d5010d7789b49d -krushmedia.com, AJxF6R55a9M6CaTvK, RESELLER -google.com, pub-7734005103835923, RESELLER, f08c47fec0942fa0 -sonobi.com, 30fcea73d4, RESELLER, d1a215d9eb5aee9e -yieldmo.com, 3482868977292485608, RESELLER, 6a92c77cfc3d2258 -rubiconproject.com, 17070, RESELLER, 0bfd66d529a55807 #yieldmo -pubmatic.com, 160648, RESELLER, 5d62403b186f2ace #yieldmo -contextweb.com, 561118, RESELLER, 89ff185a4c4e857c #yieldmo -conversantmedia.com, 100270, RESELLER, 03113cd04947736d #yieldmo  -video.unrulymedia.com, 3463482822, RESELLER #yieldmo -aps.amazon.com, f3e7ba0e-0a47-4c65-bede-04deda118e32, RESELLER - -#Vidazoo -vidazoo.com, 65df4e02b96f7dd7640979b0, DIRECT, b6ada874b4d7d0b2 -pubmatic.com, 159988, RESELLER, 5d62403b186f2ace -rubiconproject.com, 17130, RESELLER, 0bfd66d529a55807 -pubmatic.com, 159470, RESELLER, 5d62403b186f2ace -appnexus.com, 2794, RESELLER, f5ab79cb980f11d1 -undertone.com, 4151, RESELLER -lijit.com, 222372, RESELLER, fafdf38b16bf6b2b -yahoo.com, 59040, RESELLER, e1a5b5b6e3255540 -openx.com, 541017750, RESELLER, 6a698e2ec38604c6 -supply.colossusssp.com, 181, RESELLER, 6c5b49d96ec1b458 -themediagrid.com, 3AW9JB, RESELLER, 35d5010d7789b49d -undertone.com, 3934, RESELLER -video.unrulymedia.com, 2743945877, RESELLER -sonobi.com, e32c07f4ba, RESELLER, d1a215d9eb5aee9e -media.net, 8CUN4Y5Y3, RESELLER -sharethrough.com, S2rESyUH, RESELLER, d53b998a7bd4ecd2 -freewheel.tv, 625393, RESELLER -adform.com, 2643, RESELLER, 9f5210a2f0999e32 -sharethrough.com, 0c3ba0a3, RESELLER, d53b998a7bd4ecd2 -emxdgt.com, 1799, RESELLER, 1e1d41537f7cad7f - - -#Outbrain -outbrain.com, 005e2917706422c5880fb62e50a475412f, DIRECT -appnexus.com, 7597, RESELLER, f5ab79cb980f11d1 -Freewheel.tv, 741650, RESELLER # Premium video demand -openx.com, 540393169, RESELLER, 6a698e2ec38604c6 # Premium video demand -rubiconproject.com, 19668, RESELLER, 0bfd66d529a55807 -indexexchange.com, 190856, RESELLER, 50b1c356f2c5c8fc # Premium Video Demand -pubmatic.com, 158615, RESELLER, 5d62403b186f2ace # Premium video & display demand -vidazoo.com, 1773068026, RESELLER, b6ada874b4d7d0b2 # Premium Video Demand -smartadserver.com, 3820, RESELLER # Premium Video Demand -video.unrulymedia.com, 367782854, RESELLER # Premium video demand from Outbrain -indexexchange.com, 193091, RESELLER, 50b1c356f2c5c8fc # Premium video demand from Outbrain -pubmatic.com, 160065, RESELLER, 5d62403b186f2ace # Premium video demand from Outbrain -improvedigital.com, 1863, RESELLER # Premium video demand from Outbrain -freewheel.tv, 1220655, RESELLER # Premium video demand from Outbrain -vi.ai, g-00005a4dec27011ec3811c4728cde7dbe5, DIRECT #instream video by outbrain -google.com, pub-5617098146054077, RESELLER, f08c47fec0942fa0 #instream video by outbrain -pubmatic.com, 158055, RESELLER, 5d62403b186f2ace #instream video by outbrain -xandr.com, 10736, RESELLER #instream video by outbrain -rubiconproject.com, 21506, RESELLER, 0bfd66d529a55807 #instream video by outbrain -Indexexchange.com, 190500, RESELLER #instream video by outbrain -smartadserver.com,2776,RESELLER #instream video by outbrain -openx.com, 540362347, RESELLER, 6a698e2ec38604c6 #instream video by outbrain -triplelift.com, 11547, RESELLER, 6c33edb13117fd86 #instream video by outbrain -improvedigital.com, 1552, Reseller #instream video by outbrain -contextweb.com, 562709, RESELLER, 89ff185a4c4e857c -aps.amazon.com, 3965, RESELLER #instream video by outbrain -freewheel.tv, 1220559, RESELLER # Premium video demand from Outbrain -freewheel.tv, 1133073, RESELLER #instream video by outbrain -sovrn.com, 267974, RESELLER, fafdf38b16bf6b2b #instream video by outbrain -adform.com, 2611, RESELLER #instream video by outbrain -Media.net, 8CU33YS38, RESELLER # all formats -Media.net, 8CULQ3LW5, RESELLER #outbrain_video - -#STN Video -# STN Ads.txt for Newor Media -stnvideo.com, STN_0005660, DIRECT -google.com, pub-9505823743978337, RESELLER, f08c47fec0942fa0 -aps.amazon.com, 6c3f03cd-6fa8-4477-ac05-2c0f4f8da092, RESELLER -indexexchange.com, 187621, RESELLER, 50b1c356f2c5c8fc -pubmatic.com, 159710, RESELLER, 5d62403b186f2ace -rubiconproject.com, 18782, RESELLER, 0bfd66d529a55807 -sharethrough.com, 956615a1, RESELLER, d53b998a7bd4ecd2 -triplelift.com, 11014, RESELLER, 6c33edb13117fd86 -video.unrulymedia.com, 3728224204249146186, RESELLER, 6f752381ad5ec0e5 -appnexus.com, 8354, RESELLER, f5ab79cb980f11d1 -smartadserver.com, 4949, RESELLER, 060d053dcf45cbf3 -freewheel.tv, 1607068, RESELLER, 74e8e47458f74754 -freewheel.tv, 1607069, RESELLER, 74e8e47458f74754 -openx.com, 539363661, RESELLER, 6a698e2ec38604c6 -undertone.com, 3590, RESELLER, d954590d0cb265b9 -yieldmo.com, 3584282742088475163, RESELLER -nativo.com, 5923, RESELLER, 59521ca7cc5e9fee -pubmatic.com, 161523, RESELLER, 5d62403b186f2ace -indexexchange.com, 187780, RESELLER, 50b1c356f2c5c8fc -openx.com, 540021061, RESELLER, 6a698e2ec38604c6 -rubiconproject.com, 18784, RESELLER, 0bfd66d529a55807 -google.com, pub-3844877863303739, RESELLER, f08c47fec0942fa0 -condenast.com, 22597733940, RESELLER, d6e8ec0b2b8564e0 -google.com, pub-4159017740785598, RESELLER, f08c47fec0942fa0 -google.com, pub-0978064532142215, RESELLER, f08c47fec0942fa0 -google.com, pub-6245227841947028, RESELLER, f08c47fec0942fa0 -google.com, pub-1872236547113677, RESELLER, f08c47fec0942fa0 -onefootball.com, stn, RESELLER -google.com, pub-8820362605711196, RESELLER, f08c47fec0942fa0 -rogerssportsandmedia.com, 22597733940, RESELLER -google.com, pub-0942427266003794, RESELLER, f08c47fec0942fa0 -google.com, pub-5717092533913515, RESELLER, f08c47fec0942fa0 -google.com, pub-5405132603504384, RESELLER, f08c47fec0942fa0 -indexexchange.com, 184912, RESELLER, 50b1c356f2c5c8fc -openx.com, 538995730, RESELLER, 6a698e2ec38604c6 -rubiconproject.com, 17814, RESELLER, 0bfd66d529a55807 -telaria.com, gjth7-b76sj, RESELLER, 1a4e959a1b50034a -telaria.com, i0unc-nzux7, RESELLER, 1a4e959a1b50034a -rubiconproject.com, 12738, RESELLER, 0bfd66d529a55807 -openx.com, 540922801, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 158926, RESELLER, 5d62403b186f2ace -rubiconproject.com, 21840, RESELLER, 0bfd66d529a55807 -video.unrulymedia.com, 1204009095, RESELLER, 6f752381ad5ec0e5 -yahoo.com, 57560, RESELLER, e1a5b5b6e3255540 -google.com, pub-3689904677185774, RESELLER, f08c47fec0942fa0 -aps.amazon.com, 3719, RESELLER -districtm.io, 100127, RESELLER -indexexchange.com, 184315, RESELLER, 50b1c356f2c5c8fc -indexexchange.com, 184601, RESELLER, 50b1c356f2c5c8fc -openx.com, 540302365, RESELLER, 6a698e2ec38604c6 -openx.com, 539708628, RESELLER, 6a698e2ec38604c6 -openx.com, 539462051, RESELLER, 6a698e2ec38604c6 -telaria.com, tkz15-14wqj, RESELLER, 1a4e959a1b50034a -appnexus.com, 1321, RESELLER, f5ab79cb980f11d1 -indexexchange.com, 185192, RESELLER, 50b1c356f2c5c8fc -media.net, 8cuz310g2, RESELLER -openx.com, 538929384, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 157904, RESELLER, 5d62403b186f2ace -rhythmone.com, 1149317856, RESELLER, a670c89d4a324e47 -rubiconproject.com, 17346, RESELLER, 0bfd66d529a55807 -sharethrough.com, be0f9eb9, RESELLER, d53b998a7bd4ecd2 -smaato.com, 1100033996, RESELLER -triplelift.com, 913-EB, RESELLER, 6c33edb13117fd86 -video.unrulymedia.com, 1149317856, RESELLER -yieldmo.com, 2150737881135219824, RESELLER -indexexchange.com, 192410, RESELLER, 50b1c356f2c5c8fc -sharethrough.com, 7144eb80, RESELLER, d53b998a7bd4ecd2 -nextmillennium.io, 14904, RESELLER, 65bd090fa4a1e3d6 -hcodemedia.com, 74, RESELLER, 4ad830b803b0c6b2 -google.com, pub-7995104076770938, RESELLER, f08c47fec0942fa0 -indexexchange.com, 197137, RESELLER, 50b1c356f2c5c8fc -openx.com, 537153564, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 160318, RESELLER, 5d62403b186f2ace -rubiconproject.com, 22412, RESELLER, 0bfd66d529a55807 -yahoo.com, 59262, RESELLER -33across.com, 0013300001kQj2HAAS, RESELLER, bbea06d9c4d2853c -rubiconproject.com, 18694, RESELLER, 0bfd66d529a55807 -openx.com, 540274407, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 156557, RESELLER, 5d62403b186f2ace -smaato.com, 1100047713, RESELLER, 07bcf65f187117b4 -smartadserver.com, 4342, RESELLER -video.unrulymedia.com, 266978658, RESELLER, 98c21ef9a666c68b -adyoulike.com, 7e16410ba3667b9583c748e3d4b91e35, RESELLER -contextweb.com, 560921, RESELLER, 89ff185a4c4e857c -loopme.com, 11656, RESELLER, 6c8d5f95897a5a3b -rubiconproject.com, 16156, RESELLER, 0bfd66d529a55807 -openx.com, 540709535, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 156500, RESELLER, 5d62403b186f2ace -smartadserver.com, 4878, RESELLER, 060d053dcf45cbf3 -appnexus.com, 8035, RESELLER, f5ab79cb980f11d1 -zetaglobal.net, 989, RESELLER -33across.com, 0010b00002e4MRRAA2, RESELLER, bbea06d9c4d2853c -indexexchange.com, 194648, RESELLER, 50b1c356f2c5c8fc -rubiconproject.com, 17888, RESELLER, 0bfd66d529a55807 -openx.com, 540225743, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 157577, RESELLER, 5d62403b186f2ace -appnexus.com, 9284, RESELLER, f5ab79cb980f11d1 -ad-generation.jp, 12474, RESELLER, 7f4ea9029ac04e53 -admanmedia.com, 726, RESELLER -beachfront.com, 14804, RESELLER, e2541279e8e2ca4d -contextweb.com, 562541, RESELLER, 89ff185a4c4e857c -districtm.io, 100962, RESELLER, 3fd707be9c4527c3 -gumgum.com, 14141, RESELLER, ffdef49475d318a9 -improvedigital.com, 2050, RESELLER -lijit.com, 375328, RESELLER, fafdf38b16bf6b2b -themediagrid.com, JTQKMP, RESELLER, 35d5010d7789b49d -mintegral.com, 10043, RESELLER, 0aeed750c80d6423 -onetag.com, 770a440e65869c2, RESELLER -openx.com, 540191398, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 160006, RESELLER, 5d62403b186f2ace -pubmatic.com, 160096, RESELLER, 5d62403b186f2ace -rhythmone.com, 1654642120, RESELLER, a670c89d4a324e47 -smaato.com, 1100044650, RESELLER, 07bcf65f187117b4 -smartadserver.com, 4125, RESELLER, 060d053dcf45cbf3 -sonobi.com, 7f5fa520f8, RESELLER, d1a215d9eb5aee9e -sovrn.com, 375328, RESELLER, fafdf38b16bf6b2b -appnexus.com, 1908, RESELLER, f5ab79cb980f11d1 -appnexus.com, 3663, RESELLER, f5ab79cb980f11d1 -yahoo.com, 55029, RESELLER, e1a5b5b6e3255540 -yieldmo.com, 2719019867620450718, RESELLER -freewheel.tv, 1569001, RESELLER -freewheel.tv, 1569004, RESELLER -indexexchange.com, 189458, RESELLER, 50b1c356f2c5c8fc -indexexchange.com, 187924, RESELLER, 50b1c356f2c5c8fc -inmobi.com, 3068e448cc0543aaa44220e2fa2b0bad, RESELLER, 83e75a7ae333ca9d -lkqd.net, 282, RESELLER, 59c49fa9598a0117 -lkqd.com, 282, RESELLER, 59c49fa9598a0117 -media.net, 8CU5MY34U, RESELLER -onetag.com, 7659d380e89645e-OB, RESELLER -openx.com, 542291481, RESELLER, 6a698e2ec38604c6 -openx.com, 540322758, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 157752, RESELLER, 5d62403b186f2ace -pubmatic.com, 157102, RESELLER, 5d62403b186f2ace -rubiconproject.com, 13894, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 18008, RESELLER, 0bfd66d529a55807 -sharethrough.com, dd2c91e6, RESELLER, d53b998a7bd4ecd2 -smartadserver.com, 4245, RESELLER -triplelift.com, 4777-EB, RESELLER, 6c33edb13117fd86 -video.unrulymedia.com, 217819044, RESELLER -appnexus.com, 8790, RESELLER, f5ab79cb980f11d1 -contextweb.com, 561998, RESELLER, 89ff185a4c4e857c -lijit.com, 411121, RESELLER, fafdf38b16bf6b2b -openx.com, 540031703, RESELLER, 6a698e2ec38604c6 -pubmatic.com, 158100, RESELLER, 5d62403b186f2ace -rubiconproject.com, 23644, RESELLER, 0bfd66d529a55807 -appnexus.com, 4052, RESELLER, f5ab79cb980f11d1 -yahoo.com, 55771, RESELLER, e1a5b5b6e3255540 -conversantmedia.com, 100461, RESELLER, 03113cd04947736d -adform.com, 1942, RESELLER, 9f5210a2f0999e32 -rubiconproject.com, 13510, RESELLER, 0bfd66d529a55807 -pubmatic.com, 81564, RESELLER, 5d62403b186f2ace -pubmatic.com, 156538, RESELLER, 5d62403b186f2ace -smartadserver.com, 1999, RESELLER, 060d053dcf45cbf3 -smartadserver.com, 2441, RESELLER, 060d053dcf45cbf3 -triplelift.com, 8683, RESELLER, 6c33edb13117fd86 -appnexus.com, 8233, RESELLER, f5ab79cb980f11d1 -appnexus.com, 6849, RESELLER, f5ab79cb980f11d1 -appnexus.com, 12637, RESELLER, f5ab79cb980f11d1 -appnexus.com, 9382, RESELLER, f5ab79cb980f11d1 -appnexus.com, 14135, RESELLER, f5ab79cb980f11d1 -google.com, pub-6346866704322274, RESELLER, f08c47fec0942fa0 -google.com, pub-3565385483761681, RESELLER, f08c47fec0942fa0 -pubmatic.com, 159277, RESELLER, 5d62403b186f2ace -pubmatic.com, 161335, RESELLER, 5d62403b186f2ace -pubmatic.com, 160993, RESELLER, 5d62403b186f2ace -rubiconproject.com, 15268, RESELLER, 0bfd66d529a55807 -rubiconproject.com, 13918, RESELLER, 0bfd66d529a55807 -synacor.com, 82171, RESELLER, e108f11b2cdf7d5b -yahoo.com, 59244, RESELLER - - -#Misc -appnexus.com, 14163, RESELLER -pubcenter.microsoft.com, 253617120, DIRECT - - -#Newor Media -newormedia.com, 5417f1da-8f83-4dcc-b0f3-ec78f6086218, DIRECT diff --git a/packages/website-legacy/public/assets/audio/lotta-damage.mp3 b/packages/website-legacy/public/assets/audio/lotta-damage.mp3 deleted file mode 100644 index f70b11d91887158caacae183335b4a1d0a25f8c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33354 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
  • `+XF+xYfE}Is5-_hNd45TsN3;B3JRq3JGz=h$-)9vci_00b&COd0> zC^tLPQ_}OvBEenm-mB%D>bdZa^xK%d<U*&Y&G{OP)z{|WP}gwXW@8J6N*RrEYQK}j@dq`P}*yM60pf)!_vOO}4l z(ZHlFZ8e)+gv8}lS7p&Sxx8}!r=j}2V5Z{w=oWrX#Cx8`M8F&!))We9%sD7j_!v}E z^sR~SOa!WhoI12wn+n5y{YBryi)4_~|EvbV@#(7aiZ{8G-ec^s%&!4no~xYeI_F+A z>{~0HLFwptC6ol*q)4s$qB8Yz>=G&iQ~*oWWSF%2@O@lSl6Z+^FTgPK^Jkq2Xdyd8embbhO+u)URZ2Lcd-06!U$_O8Bv0j| z1FCsD39^GdMaC7AkNAWw)g!PoOMP2MKl0~a$jlf+$#vhCx~OKH0b_dC|ffl%itUbR%``5q?Soi1d$Y4;FuYz(1bwS~9wtmuo|O zz9wqxKwMR6oqMYum!&pQ4^8s+iXxxblM=RsGS;=<)(@Tdi!YSr@v-ZBZV`nRSbBH8 zRSp!0ny?kftBV!giz=pki}7_oq(CHAh1BUh@TOH0We>M`#Rw6dMlqY7}WrY1y$YpEm|BVMXur@&pBDZ*lKx zH40>wOE4dSUNq6rG-D=D;xtBdfviIqgfj*)_4B=z|FIN^V+9j6qU6MawcJfAlY%Id z+GG|)Cw^EID#n#r{xGReyQOtKey+@y$AFpe^Y4weRb1cBWXi#*j;W{bFH#$EiuOV} z3O(bLj+E}-z+P?IY`nZ99;8JQG<&y@AJef~d-v-Rt&Zg9^5l|43$JKd>xXCJmfWh! zO&5m((i%LL>aO%@>kg5RGpU6NU$shiDW$68PDu#lwA%t+?$|2WOa&`FOfM=uB<$2d z06>a3w{|`6rK*uke{fA%^e1*UINuol-Gj6+2v&G<++{t36g8-JPUgl=XKH_8_W*%k zjZmVp$RNy4dz4Av-9H%Hg~{jn&Y6)K~uvNj)QVW%ziXAnbn8 zH$~IMR&MR!$5`dXs_hk1d5sbZF1O0XI)Tb3oI1CWUoI2kHv|hU?BE|l5u78pjsfCl zPg~pHO7z>_YI)l|cjG+-eO{x}YkLB%%;z)TFO@Sa-r_l@$Rc0ro`zwgdP98sWh!nN zKCddY7`()9s8*%K%gF{tbb-ujI5j>hEDeMah5vCWxKRW_PL9|j;y03~elVzUN3&Oz zVX|-4j>ZZe>8iym(qLFio}bi_-7G=%AalaesU%&q(S`l5%C`3NfSYT0Ete%ys*aju z-U^ee{)w18Dr^lI6y7IlHZ`*bMjdMr?)QVMj?O}HL;JO)ncV?J-!0!>@CONA_L-Nl zcabT4vqi0Vl*v1)!Jled;UU|4yfEpkf12xQ`teKEaXY|LjWmnd5KZava^b}=+FlM{ zTbIQk^7G5fg_sIn)Y5_aOwx;MWs^bckTJ>DN#M%E7P~Sjh}(FMP}oDFB$8YMk?1vYQ1}mmCUVhBaIcW6sK|FA5j^u3?J-Ze~%X$ zY`XY|IFS}DE&aaS=t^*sJAFsYxZ|$d@?GUBj{b|F7iQ!AfsM8cBih$u;>qLu^uDL* zTwQy-nLF!>Fk-Q6*aLBvK~Qyiq7Q1BE+;Zg=y|Y4y~s$R{qk^Gn?UT z5*C%VoYRjOnVOuCp~zTCS}>+=Fz2+p7->J2Q^^s0N*FdFrvOtS%*5*3`g5}K%TKEU z8~wtTfFp*T@*5rVxza~f_%Fvj&YeLYtyYp1QQmxy+9pMhEGxAtvm}aEp23JgS7D{? zuMs)S7t?G~A+K{O>w0d{5)8D|Wd0CqwT%?y@z%2GBU|qM1qls3;qvBVKp**)#gFIN z^+bF0n!2NTw#b+&{YL(1#i_ve53K<;))G{2+etq>;x5R%Z<5jS@ANxM_-Uo1BP3Lr zV(|T2!*h5@Z?9N*ugLi=p?5(TDe1y+ggoiwlVprMO~zBxxV+FjG2@UVks zO0qD$RLsJSv7L^Q!IJhOQLR$yqBPtzf0vDs#|^)aRSe7uN*m7}rZ;j{PN95jb{2aj zR35zi-c)tM+iaJimk<-8Lj;sTvS{^wqm^LFK~U@$mz=QU&6+*TEzQ~V7lsguI=yln6L|B+*lpEkUfBMeIb+kaW2tX3TAh&xS^k#SdO!e|T$I)DtqZpZ6 zHk6aI81s|sX(7{<-G{n0kHGFwuGN{d?w8fYhS*ici4#xz2Z$gl?Etq$)n(WyI<2HbpwG-|mv1>3B?mrt= zzu?yLH#1y9(1{h+ilKu;2%CuD;KE=hY~+%V z0Cq5swJs`@0?C7}CV9em=B4%7VXkC>u4e5IR?A%4X=MPd*4Fs$xhwqmxyHDPBzmInT384>bWY|&HQb!444)9S5^jF+;a=)b^xS0T z9aQJLk;k6M`zB7WI^+d^ zho!X;ZI3TXFZ_>70gL%ggSmb=V(>p3)=ok-IF9HEVl`J!lQq>=HW@8O_~PB4l;ISm zG0G7u7(w5v_fI}I@WiRu)s}pkHdnU~cB5vGG1YKXft~G^f2j1^x~h?1d;Yl6!heEe z66LxeHMySq;?d$|6Zdk$RH5d|?QiLJ>Ad^%^p>RSlFrr0q%y0OT_w`VbHwu~;Y_z% zO_;njTQ}cfa^38nGyRT+&*a9v2pV$nFrxQ1k~$+=u8$tf8>f+0jw;g>W9V4a{!+*e z!%d&v7`3o@pQ9^HrD%@$KCUe`LSb$a?Vew?{gb&I6DdLU4+1WN<9EbP)q!H4txtUA z(cV=>GIzmh5@On}Xsz^?`Ib-bpjx)Fez$KELf3Zq=s2?WBXCaow6QSUMweZZ#g7|Cb12kT7I=00il+2QlbS zK#p>MwAIAd)qi+`?(Zco={QRmLt3XMkpAq8AR+H5(n@y9j>1tom{^zwiAHrGrg)md zjhpJdy~ouK#Xn=IcK*`8K0b=SZKPo!AMV+7B`9E+m)}Z#c=+MS+y~!BI_%1%jF#RZ z1p5-(*THcQUf5Eo(*X%D<1hD4;<>cM%S+&Q?sVV03uAE{%8sO@>u6M*3;Iin6_tVT zhukyLtJ{WMaPAIW2mlxiwH7W+rCPU?Fghoxv-gdtagX?INa8T$S;d=D&x{+(7g%aS ztVjSeL{WW>FgqD5Q}hFro~m@iKWw#gNh9F&(2h3J0vY=_{d6(6`d+OJ+!< z*NnReyO2S_`e~+yO5+ic1_?f3#eNY*V_86w)?~kv|D1B6AIckPATd|zrY8YUiKuu> zOmwI&2o-gOEJ@8JNIG4m^Jg?bCvd2OlwK!2C1BR9GauO|<{p#E3U-En*9cwMp=iuAf6TIGgDbFqx*1qh)E4%P7DrHBzo5F7#wCn~}ktsXoyP`WMt89A{CF~wtVoD0+fdcHy~{OQ>Zp;+pJPJ?gY!TwI+`9(cwI4-gI8^Q&} zI_WdXx%LpNk)j z!!v}!zUtZP7ZXnR?Ns|0-Jg`P-M$5~;mRfJB~3**9{Z|QSDmUFEiZaf;+&caYXK-w z=x>5&^>?sKp)bS41QeGE;9>bwwLg0o2X{Do|NJB5TiRA}SDrn+)(7uKOerD}g?=@h*l_UH!U#vq$yLeq?o9k4tRk`vG=a%>_z@1KnT%XT<`ctKZ!PC3EQMc(9c@{DiMT!zb>NwCJ`mUH^p5v)cezwLSA;^h=Z*jQDr+??fD z-<-5f6vqw`(-?pQUgyR%kppyTF&Rs7aw7>t-pFbv}pR%A3!28F$-D%EH+>}w}!uOiftxkQ@|w= z3!K&_9Z8G5pkX6%g;OkFa?)5k(57B5pOi1QGWa~eqDa+K^|~1}6^C)#ay0DMO3SYh z!)ANsONe|pU@}=cIMOk}Q)w#^)Djh9z8{^KfmQvpn)dCLP+IWqgT88&Jb5W?!9O8Z zEE5d1*msK&*$^ixq?DMy-FvEkym?vP3RPmA{OaYS=5Ij#_sz?Vi<=Bgo3Bl}RbA_? z!OE{Wz3(IH-OVu^zpU-l$1U8?>tv&Or@OLjNdgaQ{PC(Z`hW;n0E$tT8!1#1R~8z5 zg$NUS_D5?Kts1v;#Me^o39b9fIJTUpG^h}pP+1>F5zGX?64of5g<+6D7b+}zMuUQ$ zEw`4rm`tCPBo^h?!kwkF3Ef9dB-&rYE4E*b{JnmU%)HUt%gPV%cSoqWsQv4I`8(Q> zlld~diN)#cy7AP}zwHR*Eg#lP-^@w5Sbu{>I_%$eMFpkHd{oXePgg)9fI?5tt%;jA} zQX`Di*uwf8Y)R~T4T=&slD}xlrKyd&=qg{0 zJodg!g^YN;gT%tFLGHz+=0c)>NvG)>f9P^UP0fDcX9_oRs0AsxWyp$y%*gX&x1pDs zG>~eVEf}Y_ZFg_kwRRG*MNglm zSxfeo$OwYWDZQ$UcJ8kJ6RU}wtHd_PDqS9tmC`zz-)L*C&8(Igv&(!>o$eNG>Z*v@ zk~(vI8Ct&E&j>CESlygl#4qw=(i?97S|N%=uP758z;go?(gaG5QEeP|WxXx*iXEz| zqvA>Kiss};ALeEmb5g~D-pb;v=!(*VxD6pb{ zFyi3l;qycoTWK;yeWv@0BDJ75XmLRf+^W576DhMeiS5iO{e)P_vZR3M#1kjxzIv2Y ziiDx!TF1U#7#Us-2ffu~ApPe;AE*x5s)aoi^l+bl`uiZM+JZ zchlxGqb>iL<>+(bOwCB>h|{TZ-O-y2spY~y%FnH^^DIUSD38fBo@;fKI(%pfP<3HT zOTF~=w6C7NA_~K7Pe6LVH))>pUZ*j8^Dui(Eb+a=j33wH-6D~0m+orihjO)~FSQ4# zGNdr|xp7N#Zp`gk_eko|6#y83qN6+cG*}9UL)f8h=^PXU6c>KN8IEDb)gC1_<~nVt z#_VP84`#5hcZZLSPic8$ox4+eU4o*tSq+Ji^JeZ=CN}qts%)o^X`2>1I!(~>zmFKSfYlm!X0_A`j5eyHN z)FOb&EaX@ZDCRvID>MXDC|O+9Wy}G|QODk7s!k~_ItkFq17ce{RF%p){ z(Cxqhbx_cPRP<8_o#MC8mdpI?v;$nf|N8w@Fk`8%xv;W98NoMguqu$@@+fPi+tS;o z@6Sfv*z}4}JpP8&=teW+n|v`Qifw!GaW$JTR4!nsrq)bNH+53BeIxK*b$iB$N}FLj z_vPfKuI_l@*8f3qaYn*R4hS+C%d|uwg$0ZB4`Ai<(YP851NFU(&7Ae#AY(&gyhGOw zm*7UmVZtu4B;A@vQbHYVGK~<$Q+(ypitAoAh8Yl)yoe+{v`*b07-v&2()81~uZ~n% z8Pa5}hT|L3O;$a|?FH{P%eB~&(H3j;6-i}hBm-`uQz$sjC5gf~bQegG@81(&WG_!)|A`%j>V(A=G`7ahjyh?*Kpmuxn?h>Z zj~Rj5uQKV48;pNmG}J|h+%XC^aTb&=-z1bPLxU12F*cOJbueqK-zc6kRcF_y?x2Oo z>O~zMq1x{wtpjE8(FfdIyl-(~*9=ZX#C5*7ClZwRc^H3tohVP-zB+aq#{m0_L%Q|G zGB0`%rLR*6#u*m-6WXLVen_a~Nq8O3qKWT%1(%Bk?xz!Y2 z?VC{O(hN#i#^Te0h#U)*^c>GP~gEr6YH_l_0Q)k&QWB%(58}F40Ud(W>Z&o;n*nZcqbLqwf4B zJ}w_mNMeo8A8qA`+5B+e?%#d-eK6 z0HEy-wv(}k7k?)&2iy(*>Y1K_t*6Y7(}u~0eth^IN00hpfA!4Xo=pVS>}Xj3I(-XT zgL_fciXFP3|E{6YTp{#})$qaq)Ac$lX(4KuYlT)V14i3reHT8I7=&o%Rt-<~mW(DT za11$C5LLP*1x{>48jGOK?M>^|$F@g9m)WnUeZoA!!^j$hiaaY*W)&C_ zqwhRZ+S~j>S!dn6>P||?xYe{ih`qQjoH!u05R|yn%)jexOe{}=m=iE&s4YzyAZ>Y8 zC*6uTNsL)z#6dWiP$Y>EmdQSGn75xkyY8cl2U)O^Smb2HAVkwdq9R5#AW)*C@h=%4 zAASr)oukYBg%Vfe?$p^ueIVhW_DYB`?9NDDbs$r2pLO>iTMp-snS5-$_h>Nyf?QU> znG;R7;kWtad~LmCERj2DB&bqEBw_=qay2(aVdITe(a_d}0a+y5A9v4DvKk7E9Wsvs zF}ixst(Jj49|EpemHjAOT!lr;7{v(%=0)U&w|5dSt!EivO+lE}`R}S#ZzK&aFk~RL@eR1sTYqijbOn{08J8~`-P^PELA)I0jd?M6H zY=IAjs>!f%Hg0#rMC5$8=J=&rREJ8F!-QZShD9*rtS*Q$O(&^!7;{=Z6c?i^ZVv%= z5U831Hy2-@dN|`qO1Sp9pi%W>?H`X_(b$sMy^&03EH1g@8pFzIdo$;jK;0LRj@}&U z>0C6TN!2pizH*W@FyR`aU}CRTa*?N_v(b&F_IcgQVrH&m-|*;*Y#4N5vAAIquF<}s z$99!J^p3+_%%-%2QDyTjoPc1G**;?dWJm!TVR~8rNz_<0eRsGwIlNR*lwY}ep>Jzj z=nYxF*>XRuKN0W7eBBe~`N!HO0N<_{s%_ZgvorL*dcpvVE-RzzVi)O5Fr_eNth3Hu z1gDjX$qFnIt6PRR=Xlfr`Ix@QXk_1-i!6@DER<+Nd_r820QZ|Tg7urUvjWtxfIFJ#xM_cHht!l~*t_Yv{Hv!GQU<7m>y)XW!d zzaUC^?w4G`!qr0i+pY>#fEam49d~ywE?$9&wKF8Z>ft|G}z~ z^%;4&O6Nk!-}|dXhFKeT(Pb~^*id9ebhe{+5pC~2)p|7>TUXiDDaRh(^W0tNRqget z)d%~!PRIx}s*!WI{-|haYyT%wFstp8^&1t)-Tx9RoQhJs43LLI|H$NDdMoiiiUn_d=Ra7$JN@+UW!|@Khcy&%nL=2>C6rLP2|_>VNO!RqVO#QPj!)2#tNh*ieKfImT|Kt ztmVd=FtnTHBu1ucTKgdzDTcpM@`2~)rc1wlo+7)ltg&+sPF}Ia?N~g|yU;?Zx&Os> zkLn*MdJO{LsChi)X<@aAn{25Ot1YxVs0^DI#yCnGx6W6~M$Hbox_{y)?%b7HJ(U+d z87W>Yz8i8-s~i;ufR6^mT-@qZtU-``-j7CX0F}=!z&wVXQoV{sjmD=yf0BP~Y=av) z5vdWl@3y%3Sv2A7O+v=D3Bh`uO_w`AK9mmSGAeSX63?Uvjy@RTHHS9gNplt#&f$xUco9b+d z+E1e;G-|a+E>%x#72bQ+eJ;*?YoUabm*s58!x#Z>s(ybMy7Jt=KGS}H6S#;dR8g0v zDx-~ZRUI0}5BWv@Lvqd3{_)Cf+q)F+k-@}5qc#|5Y&p*u zd?JM6vQ3(DP_Z@#h(9Qsb7;Hr5Nhf?F_sB+fF1?lN%s#2LYE~h-XHdt)T5Tt5~`*? zzVS*H>JYnn9CJiP$bS35uU`G=>6*|*6_hl7!?lOGyW2e!iV#B|W8D}%1aEIwKYMIa zOg)H$qM80g;^F2d@u-yZGW}6Gd287_cRuRLXygIGaA!RQ7FX&=X^8_tgy#ZbsC`kO znNQMjcWVXe%ZnP;{fpG&%gebf9-zzI118j&5G5oWLc_q!!goK1v(bbv4XgZ`fpQ;A~B#AFxY_DTpJ{?_o_Vl*=^KArJD>2jD)K5Fvpo)Ja=NhArQID}E3#_8S` zJ(F7Yy_4Y(Ru|9|L?|uL@c8^ew|1Y>hUd;BEe_8Som24}22XVGc*-b!{&I%Q9)UTw zMK>?Rx(K`(HE>(Oeae@6EhUsu@NXfGh6VP-!rj^&W@weIffq-t6B8UWICw{i}Y%4 z!=M+-R0duwRbpll((e_6S&dJUg51=ZM3#(a9MP?v)OAZG6#OkOEqs-be0LweB>IX7 zMhUX~OmAzKVVt)N9_PhP^==a5;ReSjWVi<5s|7Q~?_S-w-A@Rj2(COl{|Rho zvX+^~#`Z~>xDpk9=1V30BU3=!Dpg-vV;&ryCZoG@;@M@>sb;1(UL#BSqB@;q9;K#g z?JxQqmyASFdoehIC;Y8o-)uN}l9qp7JbF`%?-$8mJ@74y#l0nx$((Yc!y$o5p8jX@2VrK;=%*1oh_$kY=S1vBi7X1 zT5>!UZ?d-RJd}K;<>OXGHERnHZC48mFhl<{^1AzDUvXK8CJLG7+|bZ%Iu>2&_pH;Gqj_5-Nr)20_r5KuF3BR% z>Jhg#m7Shyf7m74MrG z)MKdgo%qXQp$N5{sG1r*yv)kWlJ2{P#ssRRS%^Yn_HD-`vs=x&~61tGW!xngATKm1Rt~l|0V@=p0i#;Wpt{I(S zjL&XjJ$L(Sx*S>9?YN{GiaakB1H@8*rIN+$^Hq~C_Ux^AO=tuF2P<+7f5qRIItS)O zbJjWX42`<*Z&2WvG)=BQeUaN|?63Su;mNg(UZg7RoZ&j3jTsJ?Xd5z`LEqwA-DdbK z^Onh{>+Jt%?<=C>>Vj??4G@9_cXxLW?(Xic!3n{FyLNC0?u|Ra-QC?KNC+0B;WhdG z^`>v|PhZdO;I3Zl>|0gm?Ap7IU$bq1j|Ex@`JS0yVe)J0EfAso(y*cA1#II1OXnC- zc>r{7Ud)7xcrMU-3AL?xF5#TKZ+GJX*$G!TJZ;V2-IYNDl*TZa=q46K%|>?SnM|2J zc#3N>3d%QKtcd$z2g&DHAT^s7yY7gdN7Nuu58~TZd|H&sM5?J={Sn(O4y%u0Ij;$w ztf+I8C8S3~$~k}W=PX5>G%t6k)Zni2kglNDoe$ zmEWIfGl6UMWFDEE+3U&gxNt+?LWmq1)=YI)o?42XD)+x8c+7wlL`b4j3^1*M0A$RV zCKt8|G~N20NKYpPI^I0A@4Rpl#IoY}u9=rY>ocdVSmHOg-ZeBa7}xAs-M4-PgReYb zW*g}X%C+hvGvrDB!qf?dSp;Wm+0S_`*|iI;Vu6g&sHbk3Z2X~B7TG#)v8kRC_&SXE z_7lmm1lVb?|6*q{Sp|O!6(fx*jp3Ml5u{%}?_*gN=CB@lq<<${w(@=iA+pI6W@y%O zuu#3pW#y>IP&7H|_x{1wLJ5|ii@kuhXxorOc3_Y=EH7rp)RG1CG3t%myPdYQoJLJdPsZk*m}#*-l1{*JWwvBPm; zWjzXs4a@P~zZ(4YrRjmj;g$Nj6a-MQ0NCUMrl8bezUiByM@X|$xDLW0j|`aTPZq#1 z>s554l=8}|v=daoe0{&Ys81eJo@CHGA$m_Z8QynAsV9U$CFX}+`N_cN7AX9AWR_~n zl8Uk1e&B?ZE`MMEII?8)h7cR-jRK46dtTEUmTg>8NEt$>ViQ9y^q#KyPZPW~Kje68 z3}|77f}WqYNlrqsil#*v(Ok_p3kh_#p0689yNh6v%;#@2$`FafM|achC=~-o6|Bl` zP7|G&Ho7yvm`2w&%&R7y3Ugt$Hkw5j<>ZV_@M(mxS{}1KBljR+RL)@Presy&HcGI| zA70M4$x|O0s-mAhaalz4MweMQNIIysxRfRG( zQd*uXNJ8UgIC2>|IVbCF*g4qW@nIif8L8ZJggMU@V}0n#iah)3S&!qEjD~Pxs<_%% zXn!CQF2?*>IYE}iJ}aBNwrj=NoRT)$frLG`H+ne?{Si(xUCW`fEx{Hu(KH)e?SB>) zj`LgxNP;l)OpB$+=#jw;aPLtDgOH^fU)nIrY8fl!OrG2Hun9A;m8G47OnMSipV#|0qo#lMRaDM22X);1H(*1oTLPR_z$&&r+1 z%gMFsD&sB`{U*_tH-vZtZzPOn)fqXuDYpNKvGC5n@-ud%Mx+LsK|%=7pJ|6V^4t;d zw-&9i1-a(HgTKS zv?{^wMjU8_TqReQSHYEr?8n6lNu3}kq2}qWKFlF1x{_P35~C$3OBS92zv{Ytj~4F( zEE%@aN&y3L!3=VQ*|&~H8X{eG!cFKyF)@8T+@g+0-5jHrE;zgjJd{0j?nQC)@i+m! zfiV9HF2fV|He1(oX zc3c&-B@UM1ZnbX+Q3u{G8K}Z2OS+P5|JNSMdR6?ux`fd3=3)f^kOOVxk_r-$r^y%q@xk8H+6^Za)=YgK?UsWgXtf`mAKXi5QU*$5!fzFLqQ6%9H<%LvDY4MZ%r+y%#H zv9j|zWQ7P55&s;;LZq_r;^Y3L>ZZ0aTR=y}u>4yFatig$&8c7or0c>JZHOiu%dq6n zt!swwi4fa+n)W{+MSp$w3EXAoYR5146tEqj8DI1XQ@dPSZ8wF9-ru!L-YUqqV9L<& zWo%J1%EpZ!e$GM~t7)6aFon5nkq+4%8nV2G3>c0%`3h4Xkkw;g^BNZPXCjK+=i=xW z75$j9_5ZntFoJFz3^dK@hG!mh(r9uc!Q0v|MZ64mOahQjhp_cV|_ABg%YA*_Hc0`aYXik?ugkMr8 z-pm;!b@1Akp3ZWRB0a&e5W~tf=<$;iIGL$)SdGV#&qhSYTi-nKM7)Ji{=*roz}f8iqpXjDuoA zJwtlGcMlAixpo|7YdvCRLcQ{QBD;Pj+!r0WS(~a#Olla(Azv$jj|!0?{jwUz87K(N z5mBvtjq#~fe&(#IM0vbA!el?bN*|VymtYKk4D=;6J@^?Ak|}BGIO51Anf2JfJ*>?k z8XG_aE_T~G!t4A6e2E4789Uqq^BbLO?=O$}8v)_f`Ar=w-sLe}6RI6QeX_m|L^fKT z=fxFq?J*=5EpWQx0)dip^8f&2b()UJC9inpiBTDwM3mN-X+-{%3AWRcfS#dlR9FO) zUiW|Al#gLIkZ+ZPg^Qh*^xsYa;{jcrNpOC+G>{a6F(6PI{S?>5!;YnfHU}$hOQME4 z-o?z-DS|x~ON<@ApH@q~WpsM-PF^}TW`^>cOohdELvE#;O6fGUh1_A!L-bJD60_Ur zN1Rj{N9&T>c}AbGvNHtp%Rr`N``Fq^Wsp zR911nOI4(fAwc*AyPz|U_RDS`j#rX>g$V#LqYfRHs>N(bU^p<<3ZE?vZJSc=n3g;r z+4dqP9w}%xQUiHs0q%Wh#HYZ+n(@ddC`I~0SEY|)BJQOMnD5y&F)%Rguy18{#}IRb z(Tezczs)bi%eQ6Dv?RDvHsH!xql-S$q)#PsjmXlL)zJxZoFv1U5IS3>Uv3HM+pFjC zPsqb;ZYpf)M(Y5(;KDsW!bjZ$wQq^bw#!zi-UY~Zy~sg5X!%C{V*GmDYQ6S&_3_UZ zgYJ5wdcMlJwbm)tHbi}mqtiI18k=dZaE`S6`OricT?8c&0nqZjM@uc|{I+yNBcGD) zA1#L&c9S7GU!cH^!2od&0VsIUg+jGsDfJ?LzQs@sz?KKCRL)}#-69fB;&c$$d)ALO zYhWV>&UQ0KjPBEe>PIKrZBix`W~XWSb2B1+Y(W}>&`Md15DZPnS7kp>(d@r~rzxYj zK=Jhh{~+g}gL96ZGU(4Ys1V*8hOCR`39n6u$xV<4OV3EB?{)y~eyWBN?#^FCA?hK0jb7z=BPCNOqsGxU5OOJTGAQ6>`&Q zpo&!J$xe-DlMI!?r(_b~a$wfcGx+=pMIJ&}wC~ za&tJ>ZcF-rcshVmTRxjHi)pUX?mrnKO~+(8PN6K84^(SgUyC>y;3ufqz$@~JFLIDg z#VmtcxFHpReD-+Gy?H!R#nu{2;Xzg6qTFS^6Wa+z&YV)bVyD=n_ML;Z%IuFe<^}n0 zbqF#|q1X_T<%sj?0RP3%0GT>+&GK;Lf5)M9E#!dcotOoWMEZR$Y{jt~_t=?=3Ds#1 zq-Cv=SdmZ_A96}@h69CP>9CkCy8ldAS&f1mBGCoT92RnnuCkc%?#@h3U&Mm zZGY0nYi#WLx%GVO3cmFCYwyUnSzbm=0!g#A?D{on9BDBxH5QhiZi%VC-CfwswWX&g(Uq`mCB zwncs~&)Jq9=V?n#^v2`!MbRFuWuAqP?sUo)w6@LP+QX6kdj^*u>0MVU^qsa^qnTdj zq%>6kfl%Qp!~?iw2^RRLqz(P{PN75)+g@O9d6l8xkxcR{X7fQ<6UBv_M ziU>qv2gFB+g^%I{taDmK*%GE{7s=Y z1CJH!OZJA$n6Y`gsd4s*OF&mV-RZgz!vhlw;{w>0>iX@LJ_TBgOlH$)isS@@{j%*n z1-jY-f=tp9twkm{K~@u7o>lzt{kR?PvC)EQjZg5o-VHaTS_liB_9L@lRi(bgKFx*p zS?Jim)hL@Ya@dc^l`Uf93W3fRk+KG5?}a3&M%%^5?p(U`-upS=8nvyIy`*?uT>97h zDqvhardMM!)IMM}HQgS%4zg5 z5{t0{a9JS{h#_gH$wcWB(fziUivXzTUJv2As{42fAhYw+r7u&Loq(m$#%~k%L0D7o z5M4|~;Qcv?W_t7HL3+N*0Ybtg^#>ko0lZegR z29}tY^DE@;o>tvJ2T7Pl>XCINc^7d!(Ph-F@0{dxf4+VA8#L@ucHaU*6gMqi&JZ)S zaFAJ0l-+Vz&kWN^A`G%?tf9DxVh(}E^{~NMaIvE=uPUg;yZydcKORM5yJ__!#rmAf zo^JN974paX=zD#c=<1@LUnyy`*4&hii;X^&pvRBGk$aaHWz`Lzi-dO%ef*E|3rX@f z@6E;6CdeXz>ZdViB9JDM0sinwdO1$h#9+I%+9CNLl=%*|b}li-#kUwj4Vl~L(Aq=h zV*j6sBp+vN)g2)+g?NA&ECeutx_-lSYDYY`rAgDXZ)7XiXq~Ipaq1}FheGyNCy;$; zC0+cM883D2K|UqsYUK@jzI{`)!N{y9vel>Vg|#iSW;_?`MZOkp8?Uc8Or7%xr#zh< z=itMx6#Kn%5GRNc3^nwd+`_oJMB3RNC}tQd>r8Q_b&Tm)BP0*ini65KS54A7*#`XO zM#4Y=X zV)`wVK7T?}kldKqweS-Up%)Cj$}O-s4F`5<3wU<@p{@_1RHQ0(-HYO0#Jie!kQ^ z%m7hlD0OXa=oCTr&v_L>{7-8!*DK`T*;u~58voJj9273T&m(E&pB*Rv;0Fnv4Yqm+oL8~iENgkWzdJSgYP%(82FM7PP(!V+ce>0@3DKAT02dP7E zuVWPHYBI65K=yL~XgQQ`L3w}AvVYg}@ef{_>wX8qWJJu{H(9#d2`QFmg$T-|S=CBN zjK7V++26|NN>tmG+$Vph@lg%mb(VFocMtn+kIwMy*W*_0buSFAtaHFmhPE)l zyxF7mXvWH-*oJ(A_17Be6THq4(g31op&@7T<2&d^{(sv5k`| zrV~i%845!Oze9mRp?3&IkZA5Hy6jTlpIwD8Tiy>^@XnNcN#-dEA#B{^a#p_=SHgTLfS=1@oGO(bs zzZEe^l&|&YpzKN|#>uwQ;1B|%7Zx8OJH2@1?wVQ@O& zQ5q+kHf+fS7Bwcf>`ZWsp@JeSqXr=9iceeSSow%UEtTZ=$hp^?nVC& z?=uz_GBSF#Ez6PG5X-!TT%LGSybQjm2G{Nnk4dM7BA!s)=0-}Ly5pAKto8&PhkQ;) zP*#+$-F>4T^n|LXqaQ5v8SiP!tz~4hjm46P4PV5J3Y-E+o{Z#O=A_4u=Ce&hT0O19 zm)N!Jra0h?tS@eruBCYQC`C{&nwjEvGP^Z;8#>IXd`i;~qH0XncRg#iz~%m19zG%j zQ=~BSAkvGia{oln7mDwo3K@8s?q5F zpBRcZoeUBKeGuo^_im`rr;Hk|dt~pB4&^w|EU{uOt}pp0;&@E|aojf8b$83kEPD@_ zg|U7l%+H!sab5lLP~HAJ6}iCpx%oJ{6)0orl!~75MK4hs^!3np%gL^ueXk4v5nlRH z%cae3x7>B9g9~KW$IQai0thqHQeu`5oab)ee|jRU_jHoof47`K1{j3G)CA&LnBmnN zAX!WPwLS02!Gg_w#v1`3h60vE>s}fb%w@XKFqzR{VZtmUwpE11+4WkoDhX1%Yp{tI z6H8Iv$A8Z@q}oxsT`_rpSD`;4O$ub(F#tj#Y(Vkn86q==0V~I2zfh0YT^z?t-!#jw zFf>1`*epsF9!-Y0Bt&##Q9Oj)HVv+TZq=Hpa~uVF8*SH{)3Yc;=4j`y{N9s&;oi_X0$Nccc^$vB3>2zXJ(qY-&hDqI}>!_a50IX@QWIL6ts*wYzLZ zBIV7TQ1u23mCI*&cMkVNMYLl7_Hv|gH;z2B$!TK08AK31!%{e*gWO~kYjlPy|7#Cb z{_59{Rt&&nIzeGukApK=x7ia<#d)8>Cc}p&g3TWcMI4N@|q+zgbrS((LTl!26v9fc_f{ggeyDzdxensh-92{eq>?BB-KVMA?JO&F;aKs zIUAqpC_^c?6T$}umZ?=(L}veV=3Lc%l@+uv9Uni z@J4-~R^~w?% z00U6;Xw!g2A@p3K>E*%_#ramudSDWmhg3mj?qH{4^qbW?Bc$1Sz;s5DZN)5uTKrEf zHNt+)Mj|OSX2Y05+{T3M1e69sqcY=(4+d&r;Chd7!=Kw(0^RlWo$r1Z#tBptkzKE6 zw8p1~<6WsG2k<8yoakF4aVBX|y(k)PJQRkCVm>^Vez+ZsE*4En%I6-;yEg)_IC;$N zPZ&5bhj>L(ub11u`WD0}e*QbAzEzU!Z9T6QKHm4y2=bwopV z)WT*VWYp?MTB8ebx{-HpS&k#_rddxdT7j67VH?2&Qg|>HI24#5a=AK)7z^?!5{#nM z15=lnqasoK#VA;NEllnXXYRR8e->?oAdnxJu~-)jng<&isK}}8jM{rR8WG-kQ~&)H*`CqNF2Wk5#$S17>m&y zvTyj$IC3r&asdNU5IpZ!{s zuA918Ytp=T&tAZTKfreaA;ZZZt`ixhyh3^@C5K8+1Ee>^B=s7`{}etzfOUc1=4d{7H45I_myeh(z!c0Kwg~0$ z3B`arWV42I&B*VcQW{O_DaoPD@*j~oOLDcE7ET{G2>0?$pu!m5A@+Lyv95@BN5jPs zRJmMTAUweKIAk%XB^ukKpaNj6w2y4Hpkl&OS+#w!!dfhUY+fojd3E(3D!8lz+o?C& z_&fXkAbw-UpjU7yDbb3rf?LpbDxq`p%M)z4kMv`ksn@KUj;Z+hsY|i65X5Nt;mrzR z!{TK2JgHopzqF4Ur)EPkQPLgay8)5qN+-)-uHv(HS}u-BR(8IWzZicOCUHsQskS@i zuR4~^$ua9G<-dr$A;c4PBhNK2PsfcxMGBd_1Tjg@&?$@;whXre$RJOEMxD8eSE1?7 z!&lfyyx=Ocs*dv3j3a9KzOD|iq;t(;7BBySJS~i()Iaj}clBTWBrqrx{4q5#L&|!!z(GBOjwj6y_}J|!4|$`w$JW(@Z*8wpg>8Q{yiW_XN=6C> zLchqH0_xDm zOd_!2Thk?(P_U={OynK2Ih`U~X8cS_H-^S&M>&m*rVa>|#|uH2-5HBAIHtFC4eO=F z_j!%&%uO&5h6|}*ER_;qCrYibka2&oaK7NngY)5O78!iz-eEq8QkkP4+C!3s_S6vE= zo6k-{f4_mb$xukym^csGs3pJ1eMfI_weV+HC`=VW+*=76 zmcfA>D%6EJNK`6JDol&3%F-uU{)f`T!O}9`YUXam5qNDyb_F@EHTu3dR3#DwznA_M z%b4;P4j7qH*OTCM^_yHom1Il74NF}ICh36YWbIS=MLt05Sc|O_sseY1V2F^CD}+`7 zU381urj*i|{NdN;c47H35osC^)u`6&3>Oz_%x!GVF}}p)H#F8y!RqESzl&AfCmS5$ zgc1vV8f`KZ%{zHrYiM-z48anUC#!HsR}mT}DZgEiskkN9lU?h+-+@#;6K6wz<2Vw7L0tSi7f|f*R>u~;jA@Hz@0EYV8=CMmiV?-y1iaoNW zGi510eFL11E4kDaFjds$t4xIRPg#Lm*wb^XxiTyxxx6n$od!G%kE^BFz;ouDN#d_+ zt#l1Cp3jCXq73w%hQ#jfMrw2IIYG)+AQJwKocbV!36U8ML%9&6qG8^HLh zA#3iMeT(c3JW}V>IQv`1TY5h%nU0CeGgj>&oJuIgLxF|_G_6Z4f+@u`48WFRlxjH_ zwws(%a4NB9Ac&X>mZeBwafLEJglg?`Nf^FapSJqEXsyYy9|sMh*bwmJj+8bkHk(&0fLIGi^IKue?<949;N;<`;eqk>Xv~7%ff5xyM57V zA>dcECAF?AFVw}ma()IULmM@HM+{|kq|S0sllO4=YT+s2eO~7LlL60|rsp3FNPvnqG}RdQQVUi8M6{l*3>QN7|{r0o!<~ zNE3n=;Usgf#QN{h{5~$g;!{S@Ya__Ojc9bydsI(%(S^Xd>wy=OcDH^Jv1#fRX)oJP z%C+lr_=LxVpZOnUKi*tj)Tt)zbiz>iO>d0ZXRf|XY;j#(J>aw&r8ZZBxE71*lb)D( z!e;NPjq=HZ8>wOr(Gi;pWr+ZJ76m*)e8jv0VoG_D7~kFLxBdutv~mGp*~H`0Xrfsg zdvSxJIE!b3B`|wWd&UeKzMCc;L4BusLiS$~2Sf-lxjbtPiC$~n`X6-Wv69oPeHQ-x zKun97g^@>e3_NJEgkH_u~M)D&%-oc#M^9evk@9Oz#i z3gQwnQ%*+a>ZTOIr39D*FkQmMKoDN85VDtpOst2Ub&DTGP0aW$$K2Hs@oU*u~n9xOl@l9=o7&%7901{6WRLUSt7^kmS) z+zLav=*O(cct7Gt1d$S|>;(Sp?l*AFPKobr#`OiBA5WY!9bVoOs#hL4%Z8haNxKyn zcMuIM62_$W6C;TpDg`#GeH}TNv`BwGSKIO4z?4My^m}TN1i8XtC0QGzUe*enf|DlJ z26fE>qSzd&MhV!}vs4f2LLn3B0iS#4MHoQVeP!qrc511ip#CgA!79_)aNBc{(>W{! zzYc%!LrPfcvRu$IFO?W~(l9p8@Fv8)`zC=X7+j3KNdNv3&H6X$i`@g^ngfV+ z%R%K>!SR84KYy&Ex?*~2qgm?k<#EGMa24k(g@;bgJdFodm&!Du1#A(_Ha=Mpr@|i$ zkq@rVE))sDwZz8j=_CU7Nu?pXZGwop8F8WEE;IT%hAnx?Dc8#H9)x53=u3AG!B-}H zO4me)$|Tp~Vq{s9@7fF}R6dg-{W<#*Cs7`YzaF0Sou2gbpl?b{g+acN% za4C?E--l8XoU$Zu*k*Jbp+Yh>SQF%- z{toL%w`Dha0PM}tl)%#GKThYyqWye53w(*GGB@?^cO^rxgO!=0AtJ8&2%=GndJ{BK z!@y=r&(U2Hx-vn|L$Ksd7_wyl5Gs1p%S8b4wI*gQ{3xrD^T^OODle>|TnW!p)GArI zMG~8;a{DnGh{DiPR3Z&>3NWNSrQ6HeI3C15cuXA?e=rPJU5M&R0eNxjT<*TCYqTc0 zq70ujM$bqcv7Nm%r`daK-l1%=X2hO|aQ(t}cG zEBxPWZ`BfgcO{$ZC&6k|Q)k865_v38ur8dGsx+tg@ng`qRa*69O8xzx)w1CfA4}1R z6DxAb$VVnmpG@-xr|@ej#`8Ts`KGsWUnX3=8h8DuaJ0?O7Sv=-7K@-?+SJ65cdie> zAq<;tdObT64|u{V`Q>yTXAHR|q6mr#0C4JKH7d*bW-q%Rw&8vKcsfT%oFuGK_`0qocfYX#*KDyEw)dS zayPVKYeR2EVTM9JYxBqCvS;9KbZ@9EASriqBmXvuFK&5tEB<4A7h9X+lky8UiPJ_G z_)i7K-9hD$ZcJLm$_#lb`Z2DvvZTQBygvLCtxZeT?n0jXAc#SScVf#z6>R70TF%z( ztbNC4W-9|QPlL;249gsdxaCKjITn(ao9CP{;rub^q^)eA8^uZG+M02?AqQGLp4Cf4 z(PZuS>CH>O-K>gKg(GAPInn%CqLgkzHhJ8J4Q-0~Gu8xyg6ZTsEmBOwqv2D$QDu8j zfkRtX23`>54FU6WR|Ld`fhK zp~mtmkC){ykV;u})GMQvb+U4vPr?#^2s=gyYg>!goQ9aYVJ(khQXN>mAw(7nn{3|y z?TomF!33caBK1LSjEAMEaqd0>y!pGl>Ee>{aC$TFu(U|b_DfL7O1)h=nZ?}}4=R#v zG=5I8H-=7^`7~sliu6EnVyV_Y<05i*_fKOwGzqev)|X?!kx1lXdaR@hRjG^#<9Weq zHmFikQE8|nk@XoZ(u1W?dA{Or=%|g>#{6~m^2qcr(isa_9P~53xi~LErhwIxpwqJ1 zMnuC^K2SgJS@a-Za$Opp)atzq2q3}}ux@$CXz-X2vYX$(O;T+kR}^9);k*NR(a-%- z_V9Q}Rm#c8ljz=NAU93%qRL;ptQg7U(1R5v$2ub zPUgXhWNwu{#8xz!(A8ME+}ZT`!df|OUBYC{u2orNfv?!7>1F#)4Yp)Mqi1Spw6{}i zNAki~`JfLAN|q-D=)ZKQ>DGqJAu5q1d*p(T)`OMJ5TXiazqb^o zH6;qN9B-}xP@u_w&pFEtv0d@uFa)y4&#k;97k*GUz1yHw3-41^$M*jcIh&|hBYJy_ zJX)X%TiKvqO-pM>z&tSgN1s&$>%9jPtPZNkSYa=h40zLe(bmwp= z13uq1Y%Ke*=4<8j<$?TyrdZnG7x{5Ve!Tgjt`}=M{Zlny5jvD)j5*%8xh9jQMgb91{GNT^ zX($v%d1FR(dD$yoJmjrNI06J(TI&CMy;)pcsy?smV^H|xR3qCa%tz&YPJzweyiIS2ShasDdE!xwZ# z>rk@BjQK|&@bDmaYi*YySe%jQQ>qWLY;taTvs|_bSSPaM5JD$m!vTWy0TKoyYB%Sv z8yoW-8y#QU#Xhq03D^ali2@iE0Fg)0-rroSk!`)r_zhE-ncD{><6L#YC(huZ%^U zz7#`c`8EWDd$4ow0n9#rhV*9(5ANK?qx<(zuyT@`%^|EV#_KzXcs&?%p|Z?_;h_Pz zy<0Idp1@FS6ub2xI**^k)q%5enDlk-B!EIjY8p<(r#@wwr4T{z)tn1scW05K5~xkB zDDimFdbk6lH?LtOot9O_H}DF`GEFALiS;#dEu_gv6poTEl-5WS*cS?+wxJP|!*N)a zC2MV^wH%$HTkS_bl~CL=`5 diff --git a/packages/website-legacy/src/app/auth/[provider]/constants.ts b/packages/website-legacy/src/app/auth/[provider]/constants.ts deleted file mode 100644 index 4b7bc6cbd..000000000 --- a/packages/website-legacy/src/app/auth/[provider]/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const PROVIDERS = ['wargaming', 'patreon']; diff --git a/packages/website-legacy/src/app/auth/[provider]/layout.tsx b/packages/website-legacy/src/app/auth/[provider]/layout.tsx deleted file mode 100644 index 4f3113bc5..000000000 --- a/packages/website-legacy/src/app/auth/[provider]/layout.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { PROVIDERS } from './constants'; - -export async function generateStaticParams() { - return PROVIDERS.map((provider) => ({ provider })); -} - -export default function Layout({ children }: { children: React.ReactNode }) { - return children; -} diff --git a/packages/website-legacy/src/app/auth/[provider]/page.tsx b/packages/website-legacy/src/app/auth/[provider]/page.tsx deleted file mode 100644 index a3e9773e7..000000000 --- a/packages/website-legacy/src/app/auth/[provider]/page.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { Flex, Heading, Text } from '@radix-ui/themes'; -import { useRouter } from 'next/navigation'; -import { useEffect } from 'react'; -import { PageWrapper } from '../../../components/PageWrapper'; -import * as App from '../../../stores/app'; - -export interface PatreonAuthResponse { - access_token: string; - expires_in: number; - token_type: 'Bearer'; - scope: string; - refresh_token: string; - version: string; -} - -export default function Page({ - params, - searchParams, -}: { - params: { provider: string }; - searchParams: { [key: string]: string }; -}) { - const router = useRouter(); - const mutateApp = App.useMutation(); - - useEffect(() => { - switch (params.provider) { - case 'wargaming': { - if ( - !searchParams.expires_at || - !searchParams.access_token || - !searchParams.account_id - ) { - break; - } - - mutateApp((draft) => { - draft.logins.wargaming = { - id: Number(searchParams.account_id), - token: searchParams.access_token, - expires: Number(searchParams.expires_at) * 1000, - }; - }); - - break; - } - - case 'patreon': { - if (!searchParams.code) break; - - // cannot await here because async breaks router.push :( - fetch(`/api/patreon/auth/${searchParams.code}`) - .then((response) => response.json() as Promise) - .then((data) => { - mutateApp((draft) => { - draft.logins.patreon = { - token: data.access_token, - refreshToken: data.refresh_token, - expires: Date.now() + data.expires_in * 1000, - }; - }); - }); - - break; - } - - default: { - console.error(`Unknown provider: ${params.provider}`); - } - } - - router.push(searchParams.return ?? '/'); - }); - - return ( - - - Verifying you... - You'll be on your way shortly. - - - ); -} diff --git a/packages/website-legacy/src/app/components/Checks.tsx b/packages/website-legacy/src/app/components/Checks.tsx deleted file mode 100644 index 7f08b73b6..000000000 --- a/packages/website-legacy/src/app/components/Checks.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import { assertSecret, idToRegion } from '@blitzkit/core'; -import { Button, Flex, Heading, Link, Text } from '@radix-ui/themes'; -import { usePathname } from 'next/navigation'; -import { useEffect, useState } from 'react'; -import * as App from '../../stores/app'; -import { CURRENT_POLICIES_AGREEMENT_INDEX } from '../../stores/app/constants'; -import { PatreonAuthResponse } from '../auth/[provider]/page'; - -type Extension = - | { - status: 'ok'; - data: { - access_token: string; - account_id: number; - expires_at: number; - }; - } - | { - status: 'error'; - }; - -/** - * Wargaming: 14 (refresh: 7) - * Patreon: 31 (refresh: 15) - */ -export function Checks() { - const mutateApp = App.useMutation(); - const logins = App.use((state) => state.logins); - const appStore = App.useStore(); - const policiesAgreementIndex = App.use( - (state) => state.policiesAgreementIndex, - ); - const pathname = usePathname(); - const isLegal = pathname.startsWith('/legal'); - const [showPoliciesAgreement, setShowPoliciesAgreement] = useState(false); - - useEffect(() => { - function unsubscribe() { - window.removeEventListener('scroll', show); - window.removeEventListener('pointermove', show); - window.removeEventListener('pointerdown', show); - } - - function show() { - setShowPoliciesAgreement(true); - unsubscribe(); - } - - if ( - policiesAgreementIndex !== CURRENT_POLICIES_AGREEMENT_INDEX && - !isLegal - ) { - window.addEventListener('scroll', show); - window.addEventListener('pointermove', show); - window.addEventListener('pointerdown', show); - } - - return unsubscribe; - }, [policiesAgreementIndex, isLegal]); - - useEffect(() => { - if (logins.wargaming) { - const expiresIn = logins.wargaming.expires - Date.now(); - const expiresInDays = expiresIn / 1000 / 60 / 60 / 24; - - if (expiresInDays < 0) { - mutateApp((draft) => { - draft.logins.wargaming = undefined; - }); - } else if (expiresInDays < 7) { - const { wargaming } = appStore.getState().logins; - - if (!wargaming) return; - - fetch( - `https://api.worldoftanks.${idToRegion( - wargaming.id, - )}/wot/auth/prolongate/?application_id=${assertSecret( - process.env.PUBLIC_WARGAMING_APPLICATION_ID, - )}&access_token=${wargaming.token}`, - ) - .then((response) => response.json() as Promise) - .then((json) => { - mutateApp((draft) => { - if (json.status === 'error') { - draft.logins.wargaming = undefined; - } else { - draft.logins.wargaming = { - id: wargaming.id, - token: json.data.access_token, - expires: json.data.expires_at * 1000, - }; - } - }); - }); - } - } - - if (logins.patreon) { - const expiresIn = logins.patreon.expires - Date.now(); - const expiresInDays = expiresIn / 1000 / 60 / 60 / 24; - - if (expiresInDays < 0) { - mutateApp((draft) => { - draft.logins.patreon = undefined; - }); - } else if (expiresInDays < 15) { - const { patreon } = appStore.getState().logins; - - if (!patreon) return; - - fetch(`/api/patreon/refresh/${patreon.refreshToken}`) - .then((response) => response.json() as Promise) - .then((data) => { - mutateApp((draft) => { - draft.logins.patreon = { - token: data.access_token, - refreshToken: data.refresh_token, - expires: Date.now() + data.expires_in * 1000, - }; - }); - }); - } - } - }); - - if (!showPoliciesAgreement) return null; - - return ( - - - - - - {policiesAgreementIndex === -1 - ? "BlitzKit's policies" - : "BlitzKit's policies have changed"} - - - - This website utilizes cookies to perform analytics and personalize - your experience. You can learn more through{' '} - our privacy policy. - You may opt out of personalized advertizement by visiting{' '} - WebChoices. By - using BlitzKit, you also agree to our{' '} - terms of service. - - - - - - - - ); -} diff --git a/packages/website-legacy/src/app/components/PageLoader.tsx b/packages/website-legacy/src/app/components/PageLoader.tsx deleted file mode 100644 index 6c36d4b5d..000000000 --- a/packages/website-legacy/src/app/components/PageLoader.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Flex, Spinner } from '@radix-ui/themes'; - -export function PageLoader() { - return ( - - - - ); -} diff --git a/packages/website-legacy/src/app/layout.css b/packages/website-legacy/src/app/layout.css deleted file mode 100644 index 7a8709d1d..000000000 --- a/packages/website-legacy/src/app/layout.css +++ /dev/null @@ -1,8 +0,0 @@ -*, -html { - scroll-behavior: smooth; -} - -.radix-themes { - --default-font-family: var(--font-inter); -} diff --git a/packages/website-legacy/src/app/layout.tsx b/packages/website-legacy/src/app/layout.tsx deleted file mode 100644 index fa14e9662..000000000 --- a/packages/website-legacy/src/app/layout.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { Flex, Theme } from '@radix-ui/themes'; -import '@radix-ui/themes/styles.css'; -import { Roboto_Flex } from 'next/font/google'; -import { usePathname } from 'next/navigation'; -import { ReactNode, Suspense } from 'react'; -import { Footer } from '../components/Footer'; -import { Navbar } from '../components/Navbar'; -import { Party3 } from '../components/Party3'; -import * as App from '../stores/app'; -import { Checks } from './components/Checks'; -import { PageLoader } from './components/PageLoader'; -import './layout.css'; - -const robotoFlex = Roboto_Flex({ - subsets: ['latin'], - display: 'swap', - variable: '--font-roboto-flex', -}); - -export default function Layout({ children }: { children: ReactNode }) { - const pathname = usePathname(); - const hideNav = false; - const isRoot = pathname === '/'; - - return ( - - - - {isRoot && ( - <> - BlitzKit - - - )} - - - - - - - - - - {!hideNav && } - - - - }>{children} - - {!hideNav &&