{
  "schema_version": 1,
  "entity_slug": "tnaado-inc",
  "entity": "TNAADO Inc.",
  "jurisdiction": "Ontario, Canada",
  "product_slug": "the-dispatch",
  "product": "The Dispatch",
  "policy_slug": "privacy-policy",
  "policy": "Privacy Policy",
  "source_effective_date": "2026-01-30",
  "source_updated_date": "2026-09-26",
  "source_version": null,
  "canonical_url": "https://dispatch.tnaado.ca/privacy",
  "captured_at": "2026-10-25T20:53:14+00:00",
  "source_html": "<!DOCTYPE html>\n<html lang=\"en-CA\" dir=\"ltr\">\n<head>\n    <!-- Environment Variables -->\n<script>\n    // Environment variables injected at build time\n    window.VITE_SUPABASE_URL = '';\n    window.VITE_SUPABASE_ANON_KEY = '';\n    window.VITE_API_URL = '';\n    window.VITE_STRIPE_PUBLIC_KEY = '';\n\n    // Make config globally available\n    window.ENV = {\n        SUPABASE_URL: window.VITE_SUPABASE_URL,\n        SUPABASE_ANON_KEY: window.VITE_SUPABASE_ANON_KEY,\n        API_URL: window.VITE_API_URL,\n        STRIPE_PUBLIC_KEY: window.VITE_STRIPE_PUBLIC_KEY\n    };\n</script>\n\n    <meta charset=\"UTF-8\">\n  <meta name=\"google-adsense-account\" content=\"ca-pub-3228722733199849\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n    <meta name=\"robots\" content=\"index, follow\">\n\n    <title>Privacy Policy | TNAADO</title>\n    <meta name=\"description\" content=\"TNAADO's Privacy Policy. How we collect, handle and safeguard personal information under PIPEDA and applicable Canadian privacy law. Toronto, 2026.\">\n    <link rel=\"canonical\" href=\"https://dispatch.tnaado.ca/privacy\">\n\n    <meta property=\"og:type\" content=\"website\">\n    <meta property=\"og:url\" content=\"https://dispatch.tnaado.ca/privacy\">\n    <meta property=\"og:title\" content=\"Policies and disclosures\">\n    <meta property=\"og:description\" content=\"Who we are, how paid content is handled, and the terms for reading and subscribing.\">\n    <meta property=\"og:site_name\" content=\"TNAADO Media\">\n    <meta property=\"og:locale\" content=\"en_CA\">\n\n    <meta name=\"twitter:card\" content=\"summary_large_image\">\n    <meta name=\"twitter:title\" content=\"Policies and disclosures\">\n    <meta name=\"twitter:description\" content=\"Who we are, how paid content is handled, and the terms for reading and subscribing.\">\n\n    <link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\">\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\">\n    <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/apple-touch-icon.png\">\n    <link rel=\"manifest\" href=\"/site.webmanifest\">\n\n    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n    <link rel=\"preload\" href=\"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400;1,9..144,500&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap\" as=\"style\" onload=\"this.onload=null;this.rel='stylesheet'\">\n    <noscript><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;1,9..144,400;1,9..144,500&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap\"></noscript>\n\n    <link rel=\"stylesheet\" href=\"/css/main.css?v=11d6be3e\">\n    <link rel=\"stylesheet\" href=\"/css/components/motion.css?v=1cb84bf4\">\n    <link rel=\"stylesheet\" href=\"/css/pages/legal.css?v=e5bc0d3c\">\n\n    <script>window.TN_GA_ID = 'G-Y561C98Y8Q';</script>\n\n    <script type=\"application/ld+json\">\n    {\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Privacy Policy\",\"description\":\"How TNAADO collects, handles and safeguards personal information under PIPEDA and applicable Canadian privacy law.\",\"url\":\"https://dispatch.tnaado.ca/privacy\",\"inLanguage\":\"en-CA\",\"datePublished\":\"2026-01-30\",\"dateModified\":\"2026-09-26\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"TNAADO\",\"url\":\"https://dispatch.tnaado.ca\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"TNAADO\"}}\n    </script>\n    <script type=\"application/ld+json\">\n    {\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://dispatch.tnaado.ca\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Privacy Policy\",\"item\":\"https://dispatch.tnaado.ca/privacy\"}]}\n    </script>\n    <meta name=\"keywords\" content=\"tnaado, privacy, policy\">\n    <meta name=\"author\" content=\"Ethan Daley\">\n    <meta name=\"theme-color\" content=\"#0a0a0a\">\n    <meta property=\"og:image\" content=\"https://dispatch.tnaado.ca/assets/og/legal.png\">\n  <meta property=\"og:image:secure_url\" content=\"https://dispatch.tnaado.ca/assets/og/legal.png\">\n  <meta property=\"og:image:type\" content=\"image/png\">\n  <meta property=\"og:image:width\" content=\"1200\">\n  <meta property=\"og:image:height\" content=\"630\">\n  <meta property=\"og:image:alt\" content=\"TNAADO Media, Toronto. Policies and disclosures.\">\n    <meta name=\"twitter:image\" content=\"https://dispatch.tnaado.ca/assets/og/legal.png\">\n  <meta name=\"twitter:image:alt\" content=\"TNAADO Media, Toronto. Policies and disclosures.\">\n  <meta name=\"twitter:site\" content=\"@tnaado\">\n\n    <!-- Theme opt-in: manual light/dark toggle only (never OS prefers-color-scheme).\n         Dark is the default; reads localStorage 'tn-theme' before first paint so\n         there's no flash of the wrong theme. Shared key/attribute with index.html\n         and dispatch.html. -->\n    <script>\n      (function () {\n        try {\n          var t = localStorage.getItem('tn-theme');\n          if (t === 'light') {\n            document.documentElement.setAttribute('data-theme', 'light');\n            var m = document.querySelector('meta[name=\"theme-color\"]');\n            if (m) m.setAttribute('content', '#faf6ec');\n          }\n        } catch (e) {}\n      })();\n    </script>\n\n<style id=\"tn-theme-light-css\">\n/* ════════ Opt-in light theme overrides (privacy.html) ════════\n   Additive only — nothing above is edited, so the unmodified dark\n   default is guaranteed unchanged. Everything here is scoped under\n   html[data-theme=\"light\"], set by the anti-FOUC head script / the\n   #tnThemeBtn click handler in tn-chrome-js, using the same 'tn-theme'\n   localStorage key as index.html and dispatch.html.\n\n   --ink / --on-black / --on-black-mute are the site-wide tokens from\n   /css/base/variables.css that legal.css (and .legal-page) already\n   consume via var(); redefining them here at :root flips all of that\n   typography/background automatically. The rules below then mop up\n   every remaining HARDCODED literal (rgba(245,241,232,X), #0a0a0a,\n   #080808, #0e0e0e, #f5f1e8, #faf8f3, #8c8c8c, rgba(255,255,255,X))\n   in this page's own inline chrome CSS and in legal.css that a plain\n   var() swap can't reach.\n\n   Exception (matches index.html's hero call): the thin cinematic\n   video band at the top of the page (.legal-frame / its video wrap)\n   is pinned dark in both themes — it's a photographic band, not page\n   chrome, and flipping it light would fight the video/poster art. */\n\n[data-theme=\"light\"] {\n  --ink: #faf6ec;\n  --on-black: #1a1510;\n  --on-black-mute: rgba(26, 21, 16, 0.65);\n}\n\n/* ── hero video band: stays dark-only (see note above) ── */\nhtml[data-theme=\"light\"] .legal-frame,\nhtml[data-theme=\"light\"] .legal-frame__video-wrap,\nhtml[data-theme=\"light\"] .legal-frame__video { background: #0a0a0a; }\n\n/* ── legal.css ember glow (.legal-hero::before), tuned for the near-black\n   default background — left on, it smears as a visible pink blob over the\n   light theme's cream hero. Same fix pattern as the sitewide ember/glow\n   bugs found elsewhere this round: disable, don't re-tune. ── */\nhtml[data-theme=\"light\"] .legal-hero::before { display: none; }\n\n/* ── legal.css literal borders / faint text colors not reachable via var() ── */\nhtml[data-theme=\"light\"] .legal-hero { border-bottom-color: rgba(26, 21, 16, 0.10); }\nhtml[data-theme=\"light\"] .legal-hero__meta { border-top-color: rgba(26, 21, 16, 0.12); border-bottom-color: rgba(26, 21, 16, 0.12); }\nhtml[data-theme=\"light\"] .legal-body__toc { border-color: rgba(26, 21, 16, 0.14); }\nhtml[data-theme=\"light\"] .legal-body__toc-link { border-bottom-color: rgba(26, 21, 16, 0.10); }\nhtml[data-theme=\"light\"] .legal-body__toc-num { color: rgba(26, 21, 16, 0.40); }\nhtml[data-theme=\"light\"] .legal-section { border-top-color: rgba(26, 21, 16, 0.10); }\nhtml[data-theme=\"light\"] .legal-section__num { color: rgba(26, 21, 16, 0.30); }\nhtml[data-theme=\"light\"] .legal-section__body,\nhtml[data-theme=\"light\"] .legal-section__body p,\nhtml[data-theme=\"light\"] .legal-section__body li { color: rgba(26, 21, 16, 0.82); }\nhtml[data-theme=\"light\"] .legal-foot { background: #f1ebdd; border-top-color: rgba(26, 21, 16, 0.12); }\n/* inline style=\"color:#8c8c8c\" on the policy-scope note; !important needed to beat the inline attribute */\nhtml[data-theme=\"light\"] .legal-hero__note { color: #5a5346 !important; }\n\n/* ── shared eh-/ef- header + footer chrome (this page's own copy of tn-chrome-css) ── */\n\nhtml[data-theme=\"light\"] .ef-tagline { color: rgba(26, 21, 16, .5); }\nhtml[data-theme=\"light\"] .ef-social a { color: rgba(26, 21, 16, .7); }\nhtml[data-theme=\"light\"] .ef-social a:hover,\nhtml[data-theme=\"light\"] .ef-social a:focus-visible { color: #1a1510; }\nhtml[data-theme=\"light\"] .ef-col-heading { color: rgba(26, 21, 16, .5); }\nhtml[data-theme=\"light\"] .ef-col nav a { color: rgba(26, 21, 16, .65); }\nhtml[data-theme=\"light\"] .ef-col nav a:hover { color: #1a1510; }\nhtml[data-theme=\"light\"] .ef-bottom { border-top-color: rgba(26, 21, 16, .10); }\nhtml[data-theme=\"light\"] .ef-copy { color: rgba(26, 21, 16, .45); }\nhtml[data-theme=\"light\"] .ef-bottom-links a { color: rgba(26, 21, 16, .45); }\nhtml[data-theme=\"light\"] .ef-bottom-links a:hover { color: #1a1510; }\n</style>\n<link rel=\"stylesheet\" href=\"/css/page-flow.css?v=d4f8df8f\">\n  <!-- TN-AUTH/ADS (defer; auth before ads per JS contract) -->\n  <script src=\"/assets/js/auth.js?v=bb75fd69\" defer></script>\n  <script src=\"/assets/js/ads.js?v=9d247714\" defer></script>\n  <script src=\"/js/consent.js?v=01b852f0\" defer></script>\n  <script src=\"/js/consent-banner.js?v=831eabd3\" defer></script>\n  <link rel=\"stylesheet\" href=\"/css/chrome.css?v=b9ce3d49\">\n</head>\n\n<body class=\"legal-page\">\n<!-- ▰▰ TN-CHROME-HEADER ▰▰ -->\n<header class=\"eh-header\" role=\"banner\">\n  <!-- TN-TICKER: shared breaking-news bar. Styles live in css/chrome.css. -->\n  <div class=\"tn-ticker\" id=\"tnTicker\" hidden>\n    <span class=\"tn-ticker-label\" aria-hidden=\"true\">Latest</span>\n    <div class=\"tn-ticker-viewport\">\n      <div class=\"tn-ticker-track\" id=\"tnTickerTrack\"></div>\n    </div>\n  </div>\n  <script>\n  (function () {\n    var SB_URL = (window.VITE_SUPABASE_URL || 'https://jlnvklonulnlwpcezybj.supabase.co');\n    var SB_KEY = (window.VITE_SUPABASE_ANON_KEY || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpsbnZrbG9udWxubHdwY2V6eWJqIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzgxNzY1MDQsImV4cCI6MjA5Mzc1MjUwNH0.XlWaHf5UOWtNu-rGGzzQUXDSVn-bU5XLZfkPc8Y1A10');\n    function esc(s) {\n      return String(s == null ? '' : s).replace(/[&<>\"']/g, function (c) {\n        return { '&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;' }[c];\n      });\n    }\n    function render(rows) {\n      var ticker = document.getElementById('tnTicker');\n      var track = document.getElementById('tnTickerTrack');\n      if (!ticker || !track || !rows || !rows.length) return;\n      var html = rows.map(function (r) {\n        var href = r.slug ? '/dispatch/article/' + encodeURIComponent(r.slug) : '/dispatch';\n        return '<a class=\"tn-ticker-item\" href=\"' + href + '\">' +\n          '<span class=\"tn-ticker-cat\">' + esc(r.category || 'Note') + '</span>' +\n          esc(r.title || '') +\n        '</a><span class=\"tn-ticker-sep\" aria-hidden=\"true\">&middot;</span>';\n      }).join('');\n      track.innerHTML =\n        '<div class=\"tn-ticker-half\">' + html + '</div>' +\n        '<div class=\"tn-ticker-half\" aria-hidden=\"true\">' + html + '</div>';\n      ticker.hidden = false;\n    }\n    /* Static-first: the edge-cached snapshot of the newest 12 headlines. Avoids a\n       live Supabase REST call on every page view. Falls back to live on failure. */\n    function liveTicker() {\n      var endpoint = SB_URL + '/rest/v1/news_articles' +\n        '?select=title,slug,category&is_published=eq.true&order=published_at.desc&limit=12';\n      fetch(endpoint, { headers: { apikey: SB_KEY, Authorization: 'Bearer ' + SB_KEY } })\n        .then(function (res) { return res.ok ? res.json() : null; })\n        .then(function (rows) { if (rows && rows.length) render(rows); })\n        .catch(function () {});\n    }\n    fetch('/data/ticker.json', { cache: 'no-cache' })\n      .then(function (res) { if (!res.ok) throw 0; return res.json(); })\n      .then(function (rows) { if (rows && rows.length) render(rows); else liveTicker(); })\n      .catch(liveTicker);\n\n    /* Dispatch mark, host-gated (2026-09-18 correction). Ethan: \"the dispatch\n       should show in header on all pages on the dispatch site\" — the earlier\n       body:has(.dxsub) gate only fired on pages carrying the Dispatch sub-nav\n       partial, which is not every page this repo serves under the\n       dispatch.tnaado.ca hostname (search, author, 404, live-map, on-air, …\n       never carry that partial). This is a hostname check instead: every page\n       shows the mark when reached via dispatch.tnaado.ca, none do on\n       tnaado.ca, regardless of which specific page it is. Runs synchronously,\n       here, before .eh-logo-dispatch below has painted, so there is no flash\n       of the wrong state. */\n    document.documentElement.classList.toggle('is-dispatch-host', location.hostname === 'dispatch.tnaado.ca');\n\n    /* Header height sync: --tnc-header-h drives the search panel and mobile\n       nav overlay's top offset (css/chrome.css). The header is 64px tall\n       with the ticker hidden but grows to auto (~75px on mobile) once the\n       ticker un-hides via .eh-header:has(.tn-ticker:not([hidden])) — a\n       hardcoded 64px on those two overlays was drifting from the real\n       height every time the ticker loaded. ResizeObserver keeps the var\n       correct through that, orientation changes, and font-load reflow,\n       without hand-syncing every place the height can change. */\n    var hdr = document.querySelector('.eh-header');\n    if (hdr) {\n      var setHeaderH = function () {\n        document.documentElement.style.setProperty('--tnc-header-h', hdr.offsetHeight + 'px');\n      };\n      setHeaderH();\n      if (window.ResizeObserver) {\n        new ResizeObserver(setHeaderH).observe(hdr);\n      } else {\n        window.addEventListener('resize', setHeaderH);\n      }\n    }\n  })();\n  </script>\n\n  <div class=\"eh-inner\">\n    <div class=\"eh-brand\">\n      <!-- Dispatch mark: shown whenever this page is reached via\n           dispatch.tnaado.ca (see the is-dispatch-host toggle above), on every\n           page that hostname serves, not just the ones carrying the Dispatch\n           sub-nav. Ethan: \"dispatch needs to show in top header\" / \"dispatch\n           logo before tnaado logo\" / \"should show on all pages on the\n           dispatch site\" — on a Dispatch surface the reader is on The Dispatch\n           first and TNAADO second. It also replaces the old \"The Dispatch\"\n           link in .eh-nav below (removed, same request) and the mobile\n           overlay's copy of it — this mark IS that link now. Kept as text,\n           not an image, so it reads the same as the Dispatch sub-nav's own\n           wordmark, with no new asset to ship or keep in sync. -->\n      <a class=\"eh-logo eh-logo-dispatch\" href=\"/dispatch\" aria-label=\"The Dispatch home\">DISPATCH<i aria-hidden=\"true\">.</i></a>\n      <a class=\"eh-logo eh-logo-tnaado\" href=\"/\" aria-label=\"TNAADO home\">\n        <img src=\"/assets/brand/tnaado-logo.png?v=dddae7a3\" alt=\"TNAADO\" width=\"120\" height=\"28\">\n      </a>\n      <nav class=\"eh-brand-nav\" aria-label=\"Secondary navigation\">\n        <a href=\"https://links.tnaado.ca\" target=\"_blank\" rel=\"noopener\">Links</a>\n        <div class=\"eh-dropdown\" id=\"tnCompanyDD\">\n          <button class=\"eh-dropdown-toggle\" id=\"tnCompanyToggle\" aria-expanded=\"false\" aria-haspopup=\"true\" aria-controls=\"tnCompanyMenu\">\n            The Firm <span class=\"eh-dd-caret\" aria-hidden=\"true\">&#9662;</span>\n          </button>\n          <!-- REBOOT 2026-09-10, HEADERS.md change 2. Submit a story used to sit\n               here and is now the action button: it is a READER ACTION, not firm\n               identity, and it was filed where it looked tidy rather than by what\n               it is. Same defect Ethan named on tnaado.com as \"partners shows\n               under services thats wrong\".\n\n               Team stays RELATIVE on this site alone. There are two team pages in\n               the estate on purpose and they hold different people: this one is\n               the newsroom masthead, service.tnaado.ca/team is the firm a client\n               works with. Every other property points at the firm's. -->\n          <div class=\"eh-dropdown-panel\" id=\"tnCompanyMenu\" role=\"menu\" aria-label=\"The Firm\">\n            <a href=\"/about\" role=\"menuitem\">About Us</a>\n            <a href=\"/team\" role=\"menuitem\">Team</a>\n            <a href=\"https://service.tnaado.ca/contact\" role=\"menuitem\">Contact</a>\n          </div>\n        </div>\n      </nav>\n    </div>\n\n    <nav class=\"eh-nav\" aria-label=\"Main navigation\">\n      <a href=\"/live-map\">Live Map</a>\n      <a href=\"/show\">The Show</a>\n    </nav>\n\n    <div class=\"eh-actions\">\n      <!-- Manual light/dark toggle, opt-in only (no OS prefers-color-scheme). Persists to\n           localStorage 'tn-theme' and sets data-theme on <html>; shared with dispatch.html. -->\n      <button class=\"eh-theme-btn\" id=\"tnThemeBtn\" type=\"button\" aria-label=\"Switch to light theme\" aria-pressed=\"false\">\n        <svg class=\"eh-theme-ico eh-theme-ico-sun\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"4\"/><path d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41\"/></svg>\n        <svg class=\"eh-theme-ico eh-theme-ico-moon\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"/></svg>\n      </button>\n      <!-- anchor = no-JS fallback to the search page; JS upgrades it to the slide-down panel -->\n      <a class=\"eh-search-btn\" id=\"tnSearchBtn\" href=\"/search\" aria-label=\"Open search\" aria-expanded=\"false\" aria-controls=\"tnSearchPanel\">\n        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/></svg>\n      </a>\n      <!-- The one action this site wants from a reader. It sits last before the\n           hamburger, the same slot service.tnaado.ca uses for Work with us. -->\n      <a class=\"eh-cta\" href=\"/submit\">Submit a story</a>\n      <button class=\"eh-hamburger\" id=\"tnHamburger\" aria-label=\"Open navigation menu\" aria-expanded=\"false\" aria-controls=\"tnMobileNav\">\n        <span></span><span></span><span></span>\n      </button>\n    </div>\n  </div>\n</header>\n\n<!-- Slide-down search -->\n<div class=\"eh-search-panel\" id=\"tnSearchPanel\" role=\"search\" aria-hidden=\"true\">\n  <div class=\"eh-search-panel-inner\">\n    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/></svg>\n    <input class=\"eh-search-input\" id=\"tnSearchInput\" type=\"search\" placeholder=\"Search articles&hellip;\" autocomplete=\"off\" aria-label=\"Search the site\" aria-controls=\"tnSearchResults\">\n    <button class=\"eh-search-close\" id=\"tnSearchClose\" aria-label=\"Close search\">&times;</button>\n  </div>\n  <div class=\"eh-search-results\" id=\"tnSearchResults\" role=\"listbox\" aria-label=\"Search results\"></div>\n</div>\n\n<!-- Mobile nav overlay -->\n<nav class=\"eh-mobile-overlay\" id=\"tnMobileNav\" aria-label=\"Mobile navigation\" aria-hidden=\"true\">\n  <a href=\"/live-map\" class=\"eh-mob-link\">Live Map</a>\n  <a href=\"/show\" class=\"eh-mob-link\">The Show</a>\n  <a href=\"https://links.tnaado.ca\" class=\"eh-mob-link\" target=\"_blank\" rel=\"noopener\">Links</a>\n  <div class=\"eh-mob-group\">\n    <button class=\"eh-mob-group-toggle\" id=\"tnMobCompanyToggle\" aria-expanded=\"false\" aria-controls=\"tnMobCompanyLinks\">\n      The Firm <span class=\"eh-dd-caret\" aria-hidden=\"true\">&#9662;</span>\n    </button>\n    <div class=\"eh-mob-group-links\" id=\"tnMobCompanyLinks\" hidden>\n      <a href=\"/about\">About Us</a>\n      <a href=\"/team\">Team</a>\n      <a href=\"https://service.tnaado.ca/contact\">Contact</a>\n    </div>\n  </div>\n  <!-- The bar's button is hidden under 768px, so the sheet carries its own. -->\n  <a href=\"/submit\" class=\"eh-mob-link eh-mob-cta\">Submit a story</a>\n</nav>\n\n<!-- The chrome behaviour (hamburger, Firm dropdown, mobile group, slide-down\n     search, Escape handling) lives HERE so it ships with the chrome itself.\n     It used to be pasted into each page independently, and three pages never\n     got it: live-map, live-go and on-air had a dead hamburger, a dead search\n     and a dead dropdown. Same drift the markup had. -->\n<script id=\"tn-chrome-js\">\n(function () {\n  'use strict';\n  /* The preference is applied in each page head before paint. The shared\n     chrome owns the control itself, so every page that receives this partial\n     can also change that preference instead of shipping a visible dead button. */\n  var themeBtn = document.getElementById('tnThemeBtn');\n  function applyTheme(theme) {\n    var light = theme === 'light';\n    if (light) document.documentElement.setAttribute('data-theme', 'light');\n    else document.documentElement.removeAttribute('data-theme');\n    if (themeBtn) {\n      themeBtn.setAttribute('aria-pressed', String(light));\n      themeBtn.setAttribute('aria-label', light ? 'Switch to dark theme' : 'Switch to light theme');\n    }\n    var themeColor = document.querySelector('meta[name=\"theme-color\"]');\n    if (themeColor) themeColor.setAttribute('content', light ? '#faf6ec' : '#0a0a0a');\n  }\n  if (themeBtn) {\n    applyTheme(document.documentElement.getAttribute('data-theme') === 'light' ? 'light' : 'dark');\n    themeBtn.addEventListener('click', function () {\n      var next = document.documentElement.getAttribute('data-theme') === 'light' ? 'dark' : 'light';\n      try { localStorage.setItem('tn-theme', next); } catch (e) {}\n      applyTheme(next);\n    });\n  }\n  /* hamburger */\n  var hb = document.getElementById('tnHamburger');\n  var mob = document.getElementById('tnMobileNav');\n  function mobFocusables() {\n    if (!mob) return [];\n    return Array.prototype.slice.call(mob.querySelectorAll('a, button:not([disabled])'))\n      .filter(function (el) { return el.offsetParent !== null; });\n  }\n  function closeMob(opts) {\n    if (!hb || !mob) return;\n    var wasOpen = hb.classList.contains('is-open');\n    hb.classList.remove('is-open'); mob.classList.remove('is-open');\n    hb.setAttribute('aria-expanded', 'false'); mob.setAttribute('aria-hidden', 'true');\n    document.body.style.overflow = '';\n    if (wasOpen && (!opts || opts.returnFocus !== false)) hb.focus();\n  }\n  function trapMobTab(e) {\n    if (e.key !== 'Tab' || !hb.classList.contains('is-open')) return;\n    var items = [hb].concat(mobFocusables());\n    var first = items[0], last = items[items.length - 1];\n    if (e.shiftKey && document.activeElement === first) {\n      e.preventDefault(); last.focus();\n    } else if (!e.shiftKey && document.activeElement === last) {\n      e.preventDefault(); first.focus();\n    }\n  }\n  if (hb && mob) {\n    hb.addEventListener('click', function () {\n      var open = hb.classList.toggle('is-open');\n      mob.classList.toggle('is-open', open);\n      hb.setAttribute('aria-expanded', String(open));\n      mob.setAttribute('aria-hidden', String(!open));\n      document.body.style.overflow = open ? 'hidden' : '';\n      if (open) {\n        var f = mobFocusables();\n        setTimeout(function () { (f[0] || hb).focus(); }, 320);\n      }\n    });\n    mob.querySelectorAll('a').forEach(function (a) {\n      a.addEventListener('click', function () { closeMob({ returnFocus: false }); });\n    });\n    /* tap the sheet's own background (not a link/button inside it) closes it,\n       same convention as the desktop dropdown's outside-click-to-close */\n    mob.addEventListener('click', function (e) { if (e.target === mob) closeMob(); });\n    /* keep Tab cycling inside the hamburger + panel while open, so focus can\n       never silently leave into whatever the sheet is covering */\n    document.addEventListener('keydown', trapMobTab);\n  }\n  /* company dropdown */\n  var dd = document.getElementById('tnCompanyDD');\n  var ddT = document.getElementById('tnCompanyToggle');\n  if (dd && ddT) {\n    ddT.addEventListener('click', function (e) {\n      e.stopPropagation();\n      var open = dd.classList.toggle('is-open');\n      ddT.setAttribute('aria-expanded', String(open));\n    });\n    document.addEventListener('click', function (e) {\n      if (dd.classList.contains('is-open') && !dd.contains(e.target)) {\n        dd.classList.remove('is-open'); ddT.setAttribute('aria-expanded', 'false');\n      }\n    });\n  }\n  var mgT = document.getElementById('tnMobCompanyToggle');\n  var mgL = document.getElementById('tnMobCompanyLinks');\n  if (mgT && mgL) {\n    mgT.addEventListener('click', function () {\n      var open = mgL.hidden; mgL.hidden = !open;\n      mgT.setAttribute('aria-expanded', String(open));\n    });\n  }\n  /* slide-down search */\n  var sBtn = document.getElementById('tnSearchBtn');\n  var sPanel = document.getElementById('tnSearchPanel');\n  var sInput = document.getElementById('tnSearchInput');\n  var sClose = document.getElementById('tnSearchClose');\n  var sRes = document.getElementById('tnSearchResults');\n  var sb = null, sTimer = null;\n  var SB_URL = 'https://jlnvklonulnlwpcezybj.supabase.co';\n  var SB_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImpsbnZrbG9udWxubHdwY2V6eWJqIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzgxNzY1MDQsImV4cCI6MjA5Mzc1MjUwNH0.XlWaHf5UOWtNu-rGGzzQUXDSVn-bU5XLZfkPc8Y1A10';\n  function ensureSb(cb, n) {\n    if (sb) { cb(); return; }\n    if (window.supabase && window.supabase.createClient) {\n      try { sb = window.supabase.createClient(SB_URL, SB_KEY); } catch (e) {}\n      cb(); return;\n    }\n    if (!document.getElementById('tn-sb-cdn')) {\n      var s = document.createElement('script');\n      s.id = 'tn-sb-cdn'; s.async = true;\n      s.src = 'https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2';\n      document.head.appendChild(s);\n    }\n    n = n || 0;\n    if (n < 40) setTimeout(function () { ensureSb(cb, n + 1); }, 150);\n  }\n  /* Escapes the five characters that matter in HTML, including BOTH quote\n     characters. The previous implementation serialised a text node\n     (`d.textContent = x; return d.innerHTML`), which escapes & < > and nothing\n     else, because a text node has no attribute context to escape for. Same\n     hardening as dispatch.html and live-map.html; keep them in step. */\n  function esc(x) {\n    return String(x == null ? '' : x).replace(/[&<>\"']/g, function (c) {\n      return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c];\n    });\n  }\n  function openSearch() {\n    if (!sPanel) return;\n    sPanel.classList.add('is-open'); sPanel.setAttribute('aria-hidden', 'false');\n    if (sBtn) sBtn.setAttribute('aria-expanded', 'true');\n    setTimeout(function () { if (sInput) sInput.focus(); }, 120);\n  }\n  function closeSearch() {\n    if (!sPanel) return;\n    sPanel.classList.remove('is-open'); sPanel.setAttribute('aria-hidden', 'true');\n    if (sBtn) sBtn.setAttribute('aria-expanded', 'false');\n  }\n  function runSearch(q) {\n    ensureSb(function () {\n      if (!sb || !sRes) return;\n      sb.from('news_articles').select('title,slug,category')\n        .eq('is_published', true).ilike('title', '%' + q + '%').limit(8)\n        .then(function (res) {\n          var rows = (res && res.data) || [];\n          if (!rows.length) {\n            sRes.innerHTML = '<p class=\"search-hit-empty\">No results for \\u201C' + esc(q) + '\\u201D</p>';\n            return;\n          }\n          sRes.innerHTML = rows.map(function (r) {\n            var href = r.slug ? '/dispatch/article/' + encodeURIComponent(r.slug) : '/dispatch';\n            return '<a class=\"search-hit\" href=\"' + href + '\" role=\"option\">' +\n              '<p class=\"search-hit-cat\">' + esc(r.category || 'Article') + '</p>' +\n              '<p class=\"search-hit-title\">' + esc(r.title || '') + '</p></a>';\n          }).join('');\n        });\n    });\n  }\n  if (sBtn && sPanel) {\n    sBtn.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      if (sPanel.classList.contains('is-open')) closeSearch(); else openSearch();\n    });\n    /* outside click closes the panel */\n    document.addEventListener('click', function (e) {\n      if (sPanel.classList.contains('is-open') &&\n          !sPanel.contains(e.target) &&\n          !sBtn.contains(e.target)) {\n        closeSearch();\n      }\n    });\n  }\n  if (sClose) sClose.addEventListener('click', closeSearch);\n  if (sInput && sRes) {\n    sInput.addEventListener('input', function () {\n      var q = sInput.value.trim();\n      clearTimeout(sTimer);\n      if (q.length < 2) { sRes.innerHTML = ''; return; }\n      sTimer = setTimeout(function () { runSearch(q); }, 280);\n    });\n  }\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Escape') { closeSearch(); closeMob(); if (dd) { dd.classList.remove('is-open'); if (ddT) ddT.setAttribute('aria-expanded', 'false'); } }\n  });\n})();\n</script>\n<!-- ▰▰ /TN-CHROME-HEADER ▰▰ -->\n\n<a class=\"skip-link\" href=\"#main\">Skip to content</a>\n\n<main id=\"main\">\n\n    <section class=\"legal-frame\" aria-hidden=\"true\">\n        <div class=\"legal-frame__video-wrap\">\n            <video class=\"legal-frame__video\"\n                   autoplay muted loop playsinline preload=\"metadata\"\n                   aria-hidden=\"true\"\n                   poster=\"/assets/video/dark-poster.jpg?v=002020cc\">\n                <source src=\"/assets/video/page-legal.mp4?v=15f94ca5\" type=\"video/mp4\">\n            </video>\n        </div>\n        <div class=\"legal-frame__overlay\"></div>\n    </section>\n\n    <section class=\"legal-hero\" aria-label=\"Privacy Policy\">\n        <div class=\"legal-hero__inner\">\n            <p class=\"legal-hero__eyebrow\"><span class=\"legal-hero__rule\" aria-hidden=\"true\"></span>Legal</p>\n            <h1 class=\"legal-hero__title\">Privacy <em>Policy.</em></h1>\n            <div class=\"legal-hero__meta\">\n                <span><strong>Effective</strong> January 30, 2026</span>\n                <span><strong>Last updated</strong> September 26, 2026</span>\n            </div>\n            <p class=\"legal-hero__note\" style=\"margin-top:10px;max-width:60ch;color:#8c8c8c;font-size:.95rem;line-height:1.5\">This is the universal privacy policy for the TNAADO media site (tnaado.ca) and our consumer applications, including <strong>The Dispatch</strong>. Our services arm has a separate policy at <a href=\"https://service.tnaado.ca/privacy\" style=\"color:#c8102e\">service.tnaado.ca/privacy</a>; individual apps with distinct data practices link their own policy from the <a href=\"/legal\" style=\"color:#c8102e\">TNAADO legal directory</a>.</p>\n        </div>\n    </section>\n\n    <section class=\"legal-body\">\n        <div class=\"legal-body__inner\">\n\n            <aside class=\"legal-body__toc\" aria-label=\"Sections\">\n                <p class=\"legal-body__toc-eyebrow\">Sections</p>\n                <ul class=\"legal-body__toc-list\">\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-purpose\"><span class=\"legal-body__toc-num\">01</span><span>Purpose &amp; Scope</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-information\"><span class=\"legal-body__toc-num\">02</span><span>Information We Collect</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-use\"><span class=\"legal-body__toc-num\">03</span><span>Purpose of Use</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-apps\"><span class=\"legal-body__toc-num\">04</span><span>Our Apps &amp; The Dispatch</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-advertising\"><span class=\"legal-body__toc-num\">05</span><span>Advertising</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-consent\"><span class=\"legal-body__toc-num\">06</span><span>Consent &amp; Recording</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-security\"><span class=\"legal-body__toc-num\">07</span><span>Data Security</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-sharing\"><span class=\"legal-body__toc-num\">08</span><span>Sharing &amp; Disclosure</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-retention\"><span class=\"legal-body__toc-num\">09</span><span>Retention &amp; Account Deletion</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-rights\"><span class=\"legal-body__toc-num\">10</span><span>Your Rights</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-cookies\"><span class=\"legal-body__toc-num\">11</span><span>Cookies &amp; Web Analytics</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-third-party\"><span class=\"legal-body__toc-num\">12</span><span>Third-Party Links &amp; Players</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-international\"><span class=\"legal-body__toc-num\">13</span><span>International Transfers</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-children\"><span class=\"legal-body__toc-num\">14</span><span>Children</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-changes\"><span class=\"legal-body__toc-num\">15</span><span>Changes to Policy</span></a></li>\n                    <li><a class=\"legal-body__toc-link\" href=\"#pp-contact\"><span class=\"legal-body__toc-num\">16</span><span>Contact</span></a></li>\n                </ul>\n            </aside>\n\n            <article class=\"legal-body__main\">\n\n                <section class=\"legal-section\" id=\"pp-purpose\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">01</span><h2 class=\"legal-section__title\">Purpose &amp; Scope</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>This Privacy Policy governs the collection, use, storage and disclosure of personal information (&ldquo;Information&rdquo;) by TNAADO Inc. (&ldquo;TNAADO&rdquo;, &ldquo;we&rdquo;, &ldquo;our&rdquo; or &ldquo;us&rdquo;) when you read this website (tnaado.ca), use our consumer applications (including <strong>The Dispatch</strong>), write to us, or otherwise interact with our publications (&ldquo;you&rdquo;).</p>\n                        <p>It is the single, universal policy for the TNAADO media site and those apps. Our services arm operates a separate policy at <a href=\"https://service.tnaado.ca/privacy\">service.tnaado.ca/privacy</a>, and individual apps with distinct data practices publish their own policy linked from the <a href=\"/legal\">TNAADO legal directory</a>. TNAADO complies with Canada&rsquo;s Personal Information Protection and Electronic Documents Act (PIPEDA), applicable provincial privacy statutes and equivalent international data-protection regimes.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-information\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">02</span><h2 class=\"legal-section__title\">Information We Collect</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>We collect and process the following categories of Information. What we collect depends on whether you are reading the website, contacting us, or using one of our apps.</p>\n                        <h3>2.1 Personal Information</h3>\n                        <p>Your name, email, telephone number and any details you choose to include when you write to us, apply for a role, or submit a story. In our apps, if you choose to create an account (see Section&nbsp;04), we collect the email address associated with that account.</p>\n                        <h3>2.2 Sensitive Information</h3>\n                        <p>We do not ask for sensitive information through this website or our apps. If you send us sensitive material, as a source or otherwise, we handle it with care and disclose it only as described in this Policy.</p>\n                        <h3>2.3 Technical &amp; Usage Information</h3>\n                        <p>IP address, browser or device type, session logs and cookies collected when you use the website. In our apps we record anonymous, aggregate usage events (for example, that an article category was opened or a screen was viewed) that are not linked to your identity and contain no advertising identifier.</p>\n                        <h3>2.4 Communication Data</h3>\n                        <p>The content of email correspondence, recorded calls (with notice and consent) and information voluntarily submitted through contact forms.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-use\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">03</span><h2 class=\"legal-section__title\">Purpose of Use</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>We collect and process Information for the following purposes:</p>\n                        <ul>\n                            <li>To answer messages sent through this website;</li>\n                            <li>To consider story tips, pitches, applications and partnership requests;</li>\n                            <li>To operate, secure and improve the website;</li>\n                            <li>To measure readership at an aggregate level;</li>\n                            <li>To comply with legal, regulatory, tax or contractual obligations.</li>\n                        </ul>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-apps\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">04</span><h2 class=\"legal-section__title\">Our Apps &amp; The Dispatch</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>This section describes data practices specific to our consumer applications, including <strong>The Dispatch</strong>, our newsroom reader for iOS.</p>\n                        <h3>4.1 No account required</h3>\n                        <p>Reading is fully usable with no sign-in. We do not require you to create an account, and we do not ask for your contacts or location.</p>\n                        <h3>4.2 Optional account (Sign in with Apple)</h3>\n                        <p>If you choose to subscribe to a membership, you may create a TNAADO account using <strong>Sign in with Apple</strong>. This stores your <strong>email address</strong> and account identifier so your membership works across the app and tnaado.ca. Authentication tokens are stored in your device&rsquo;s Keychain. We never receive your Apple password.</p>\n                        <h3>4.3 Subscriptions &amp; payments</h3>\n                        <p>Memberships are auto-renewable subscriptions purchased and managed through your Apple Account using Apple&rsquo;s In-App Purchase. We do not see or store your payment details. Apple processes the transaction. We record only your subscription status (for example, active and ad-free) to deliver the benefit you paid for.</p>\n                        <h3>4.4 Deleting your account</h3>\n                        <p>You can permanently delete your account and its associated email at any time from the Account screen in the app. You may also email <a href=\"/cdn-cgi/l/email-protection#84e8e1e3e5e8c4f0eae5e5e0ebaae7e5\"><span class=\"__cf_email__\" data-cfemail=\"7b171e1c1a173b0f151a1a1f1455181a\">[email&#160;protected]</span></a>. See Section&nbsp;09.</p>\n                        <h3>4.5 In-app analytics</h3>\n                        <p>Our apps record anonymous, aggregate usage events to understand which content is read, including article, map, show and account views and the display of a labelled sponsor placement. These events contain no name, email, account identifier, advertising identifier or device identifier, are not linked to your identity, and are sent only to our own servers. Our apps contain <strong>no third-party analytics or advertising-tracking SDKs</strong> and do not track you across other apps or websites.</p>\n                        <h3>4.6 Location</h3>\n                        <p>The live incident map shows public-safety and civic notices aggregated from public sources (such as transit, traffic and weather open data). It does <strong>not</strong> request or track your location.</p>\n                        <h3>4.7 Optional bug reports</h3>\n                        <p>If you choose to send a bug report from The Dispatch, we collect the category, title and description you provide; your email address only if you choose to include it for a reply; and an image only if you choose to attach a screenshot. To diagnose the report, we also attach the app version and build, iOS version, device model and language/region setting. We use this information only to investigate, respond to and improve the app. Please do not include sensitive personal information in a report or screenshot. Bug reports are handled under the retention and deletion practices in Section&nbsp;09.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-advertising\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">05</span><h2 class=\"legal-section__title\">Advertising</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>Where ads appear, they are clearly labelled, and members on an ad-free plan see none. Ads shown in our apps are served from our own systems; we do not build advertising profiles of you and do not track you across other apps and websites. On the website we may use cookie-based advertising as described in Section&nbsp;11. If a third-party ad network is ever added to an app, this Policy and the relevant App Store privacy disclosures will be updated first, and any tracking will require your consent.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-consent\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">06</span><h2 class=\"legal-section__title\">Consent &amp; Recording</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>By submitting information through this website or corresponding with us, you consent to the collection, use and storage of your data in accordance with this Policy.</p>\n                        <p>Where an interview or call is to be recorded, you will be told in advance and may decline. If you decline, we do not record.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-security\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">07</span><h2 class=\"legal-section__title\">Data Security</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>TNAADO uses encrypted, secured infrastructure. Transmissions occur over HTTPS with current TLS protocols. Internally, we enforce strict access controls and review our systems for vulnerabilities. Personnel receive ongoing training in cybersecurity and data-protection practice.</p>\n                        <p>Despite these measures, no transmission method over the internet is entirely secure. We cannot guarantee absolute security and we recommend that you avoid submitting sensitive documents over unsecured or public networks.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-sharing\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">08</span><h2 class=\"legal-section__title\">Sharing &amp; Disclosure</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>We do not sell or rent your data. We share Information only in the following circumstances:</p>\n                        <ul>\n                            <li>With service providers bound by confidentiality obligations, for storage, communications, analytics and security;</li>\n                            <li>With Stripe, our payment processor, if you are a Dispatch Live contributor who completes Stripe Connect onboarding to receive payouts for footage we license or sell — Stripe collects the identity, banking and tax information its onboarding flow requires directly from you, under <a href=\"https://stripe.com/privacy\" rel=\"nofollow\">Stripe's own privacy policy</a>, and we retain the resulting payout and transfer records to pay and account for you;</li>\n                            <li>To comply with legal obligations such as subpoenas, regulatory requests or court orders;</li>\n                            <li>In connection with a merger, acquisition or transfer of all or part of our business, with notice where reasonably practicable.</li>\n                        </ul>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-retention\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">09</span><h2 class=\"legal-section__title\">Retention &amp; Account Deletion</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>We retain Information only for as long as necessary for the purposes for which it was collected and to satisfy our legal, tax, regulatory or accounting obligations. Upon expiry of the applicable retention period, confidential records are securely destroyed.</p>\n                        <p>If you created an app account, you can delete it and its associated email at any time from the Account screen in the app, or by emailing <a href=\"/cdn-cgi/l/email-protection#b6dad3d1d7daf6c2d8d7d7d2d998d5d7\"><span class=\"__cf_email__\" data-cfemail=\"432f2624222f03372d2222272c6d2022\">[email&#160;protected]</span></a>. We delete the account record promptly on request.</p>\n                        <p>If you are a Dispatch Live contributor who has been paid, or has an open payout balance, through Stripe Connect, deleting your account permanently revokes sign-in and removes your handle and email, but we retain the associated payout, sale and transfer records (including your Stripe account reference) as required for tax and financial-accounting purposes.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-rights\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">10</span><h2 class=\"legal-section__title\">Your Rights</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>Subject to applicable law, you may have the right to:</p>\n                        <ul>\n                            <li>Access, correct or request the deletion of your personal data;</li>\n                            <li>Withdraw consent to processing where consent is the legal basis;</li>\n                            <li>Receive a copy of the data we hold in a portable format;</li>\n                            <li>File a complaint with a relevant privacy authority, including the Office of the Privacy Commissioner of Canada.</li>\n                        </ul>\n                        <p>App account holders can delete their account directly from the Account screen in the app. To exercise any of these rights, contact <a href=\"/cdn-cgi/l/email-protection#aec2cbc9cfc2eedac0cfcfcac180cdcf\"><span class=\"__cf_email__\" data-cfemail=\"701c1517111c30041e1111141f5e1311\">[email&#160;protected]</span></a>.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-cookies\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">11</span><h2 class=\"legal-section__title\">Cookies &amp; Web Analytics</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>This <strong>website</strong> uses cookies to track aggregate use, improve performance and enable certain functions. We use Google Analytics and the Meta Pixel, and our own first-party analytics collector, to understand site behaviour at an aggregate level. When you first visit, a cookie banner lets you <strong>Accept all</strong>, <strong>Reject non-essential</strong>, or open <strong>Manage preferences</strong> to choose between two categories: <strong>Necessary</strong> (first-party session and security cookies the site needs to function, and which cannot be rejected) and <strong>Analytics &amp; Advertising</strong> (Google Analytics, the Meta Pixel and our own analytics collector, which only run if you accept them). None of these run before you choose. You can change your choice at any time via the &ldquo;Cookie preferences&rdquo; link in the site footer; your choice is remembered for about a year. You may also opt out of personalized advertising at <a href=\"https://ads.google.com/settings\" rel=\"nofollow\">ads.google.com/settings</a> or, in Canada, at <a href=\"https://youradchoices.ca\" rel=\"nofollow\">youradchoices.ca</a>, and disable cookies through your browser settings; some site functionality may be reduced.</p>\n                        <p>Our <strong>apps</strong> do not use these tools: they contain no third-party analytics or advertising-tracking SDKs, cookies or pixels. In-app measurement is anonymous and first-party only, as described in Section&nbsp;04.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-third-party\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">12</span><h2 class=\"legal-section__title\">Third-Party Links &amp; Players</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>Our website and apps may link to, or embed content from, external services operated by third parties, for example, embedded video players (such as YouTube, Twitch or Kick) when a broadcast is on air, or map tiles on the live incident map. When you open such content, your device requests it directly from that provider, which may set its own cookies and apply its own tracking under <strong>its</strong> privacy terms, outside our control. We are not responsible for the privacy practices of third-party services.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-international\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">13</span><h2 class=\"legal-section__title\">International Transfers</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>Where data is transferred outside Canada (for example, for cloud storage with reputable providers), we apply contractual and organizational safeguards intended to provide a comparable level of protection.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-children\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">14</span><h2 class=\"legal-section__title\">Children</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>Our apps and services are intended for users 18 years of age and older. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact <a href=\"/cdn-cgi/l/email-protection#5a363f3d3b361a2e343b3b3e3574393b\"><span class=\"__cf_email__\" data-cfemail=\"c1ada4a6a0ad81b5afa0a0a5aeefa2a0\">[email&#160;protected]</span></a> and we will delete it.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-changes\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">15</span><h2 class=\"legal-section__title\">Changes to this Policy</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p>We may update this Privacy Policy from time to time. The current version will always be posted on this page with the effective date noted at the top.</p>\n                    </div>\n                </section>\n\n                <section class=\"legal-section\" id=\"pp-contact\">\n                    <header class=\"legal-section__head\"><span class=\"legal-section__num\">16</span><h2 class=\"legal-section__title\">Contact</h2></header>\n                    <div class=\"legal-section__body\">\n                        <p><strong>TNAADO Inc., Privacy Officer</strong><br>1050 King Street West<br>Toronto, Ontario, Canada M6K 0C7<br>Email: <a href=\"/cdn-cgi/l/email-protection#35595052545975415b5454515a1b5654\"><span class=\"__cf_email__\" data-cfemail=\"90fcf5f7f1fcd0e4fef1f1f4ffbef3f1\">[email&#160;protected]</span></a></p>\n                    </div>\n                </section>\n\n            </article>\n\n        </div>\n    </section>\n\n    <section class=\"legal-foot\" aria-label=\"Other legal documents\">\n        <div class=\"legal-foot__inner\">\n            <div class=\"legal-foot__col\">\n                <p class=\"legal-foot__col-eyebrow\">Contact</p>\n                <h3>Privacy Office</h3>\n                <p><a href=\"/cdn-cgi/l/email-protection#6e020b090f022e1a000f0f0a01400d0f\"><span class=\"__cf_email__\" data-cfemail=\"c8a4adafa9a488bca6a9a9aca7e6aba9\">[email&#160;protected]</span></a></p>\n                <p>1050 King Street West</p>\n                <p>Toronto, ON M6K 0C7</p>\n            </div>\n            <div class=\"legal-foot__col\">\n                <p class=\"legal-foot__col-eyebrow\">The trio</p>\n                <ul class=\"legal-foot__sib\">\n                    <li><a href=\"/terms\">Terms of Service</a></li>\n                    <li><a href=\"/legal\">Legal &amp; Business Disclosures</a></li>\n                </ul>\n            </div>\n        </div>\n    </section>\n\n</main>\n\n<div id=\"tnaado-cta\"></div>\n\n<!-- ▰▰ TN-CHROME-FOOTER ▰▰ -->\n<footer class=\"ef-footer\" role=\"contentinfo\">\n  <div class=\"ef-footer-inner\">\n    <div class=\"ef-col ef-col-logo\">\n      <img src=\"/assets/brand/tnaado-logo.png?v=dddae7a3\" alt=\"TNAADO\" width=\"110\" height=\"26\" loading=\"lazy\">\n      <p class=\"ef-tagline\">Media &middot; Toronto</p>\n      <address class=\"ef-contact\">\n        <span class=\"ef-contact__line\">1050 King Street West</span>\n        <span class=\"ef-contact__line\">Toronto, ON M6K 0C7</span>\n        <a class=\"ef-contact__link\" href=\"/cdn-cgi/l/email-protection#a0c3cfced4c1c3d4e0d4cec1c1c4cf8ec3c1\"><span class=\"__cf_email__\" data-cfemail=\"f99a96978d989a8db98d9798989d96d79a98\">[email&#160;protected]</span></a>\n      </address>\n                <div class=\"ef-social\">\n                    <a href=\"https://www.linkedin.com/company/tnaado/\" target=\"_blank\" rel=\"noopener\" aria-label=\"TNAADO on LinkedIn\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.225 0z\"/></svg></a>\n                    <a href=\"https://www.instagram.com/tnaado/\" target=\"_blank\" rel=\"noopener\" aria-label=\"TNAADO on Instagram\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z\"/></svg></a>\n                </div>\n    </div>\n    <div class=\"ef-col\">\n      <p class=\"ef-col-heading\">The Newsroom</p>\n      <nav aria-label=\"Newsroom\">\n        <a href=\"/dispatch\">The Dispatch</a>\n        <a href=\"/show\">The Show</a>\n        <a href=\"/live-map\">Live Map</a>\n        <a href=\"/areas\">Neighbourhoods</a>\n        <a href=\"/on-air\">On Air</a>\n      </nav>\n    </div>\n    <div class=\"ef-col\">\n      <p class=\"ef-col-heading\">The Firm</p>\n      <nav aria-label=\"The Firm\">\n        <a href=\"/about\">About Us</a>\n        <a href=\"/team\">Team</a>\n        <a href=\"/careers\">Careers</a>\n        <a href=\"/submit\">Submit a Story</a>\n      </nav>\n    </div>\n    <div class=\"ef-col\">\n      <p class=\"ef-col-heading\">Across TNAADO</p>\n      <nav aria-label=\"Across TNAADO\">\n        <a href=\"https://apps.tnaado.ca\" target=\"_blank\" rel=\"noopener\">Apps</a>\n        <a href=\"https://service.tnaado.ca\" target=\"_blank\" rel=\"noopener\">Services</a>\n        <a href=\"https://tools.tnaado.ca\" target=\"_blank\" rel=\"noopener\">Tools</a>\n        <a href=\"https://links.tnaado.ca\" target=\"_blank\" rel=\"noopener\">Links</a>\n      </nav>\n    </div>\n  </div>\n  <div class=\"ef-bottom\">\n    <p class=\"ef-copy\">&copy; 2026 TNAADO Inc. &middot; Toronto</p><div class=\"ef-bottom-support\"><a class=\"ef-support\" href=\"/supporter\">Support</a><span id=\"tn-account-slot\"></span></div>\n    <div class=\"ef-bottom-links\">\n      <a href=\"/privacy\">Privacy</a>\n      <a href=\"/terms\">Terms</a>\n      <a href=\"#\" data-tn-consent-open>Cookie preferences</a>\n      <a href=\"/editorial-policy\">Editorial Policy</a>\n    </div>\n  </div>\n</footer>\n<script data-cfasync=\"false\" src=\"/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js\"></script><script type=\"module\" src=\"https://static.cloudflareinsights.com/beacon.min.js\" data-cf-beacon='{\"token\":\"0b7bdb5a0beb425991aedb69d5004f89\"}'></script>\n<!-- ▰▰ /TN-CHROME-FOOTER ▰▰ -->\n\n<script src=\"/js/site-beacon.js?v=eebcec51\" defer></script>\n<script type=\"module\" src=\"https://static.cloudflareinsights.com/beacon.min.js/vce701823e78c4301a35b7e07294d87301792088814092\" integrity=\"sha512-UKNk8GbxkABxKcXYuLkO16EleLGUkcvJWtpSNmExE0Too3ZaFAxTscNWEc1OdAv5/BikHawapSCaiD2XCmp+Bw==\" data-cf-beacon='{\"version\":\"2024.11.0\",\"token\":\"0b7bdb5a0beb425991aedb69d5004f89\",\"r\":1,\"spa\":2}' crossorigin=\"anonymous\"></script>\n</body>\n</html>\n",
  "source_sha256": "dea728f9f85002b4318545737fb79e0bd2de2788b3f1bfa789f8e7d8d283c20d",
  "text": "Legal\n\nPrivacy Policy.\n\nEffective January 30, 2026\n\nLast updated September 26, 2026\n\nThis is the universal privacy policy for the TNAADO media site (tnaado.ca) and our consumer applications, including The Dispatch. Our services arm has a separate policy at service.tnaado.ca/privacy; individual apps with distinct data practices link their own policy from the TNAADO legal directory.\n\nSections\n\n01Purpose & Scope\n\n02Information We Collect\n\n03Purpose of Use\n\n04Our Apps & The Dispatch\n\n05Advertising\n\n06Consent & Recording\n\n07Data Security\n\n08Sharing & Disclosure\n\n09Retention & Account Deletion\n\n10Your Rights\n\n11Cookies & Web Analytics\n\n12Third-Party Links & Players\n\n13International Transfers\n\n14Children\n\n15Changes to Policy\n\n16Contact\n\n01\n\nPurpose & Scope\n\nThis Privacy Policy governs the collection, use, storage and disclosure of personal information (“Information”) by TNAADO Inc. (“TNAADO”, “we”, “our” or “us”) when you read this website (tnaado.ca), use our consumer applications (including The Dispatch), write to us, or otherwise interact with our publications (“you”).\n\nIt is the single, universal policy for the TNAADO media site and those apps. Our services arm operates a separate policy at service.tnaado.ca/privacy, and individual apps with distinct data practices publish their own policy linked from the TNAADO legal directory. TNAADO complies with Canada’s Personal Information Protection and Electronic Documents Act (PIPEDA), applicable provincial privacy statutes and equivalent international data-protection regimes.\n\n02\n\nInformation We Collect\n\nWe collect and process the following categories of Information. What we collect depends on whether you are reading the website, contacting us, or using one of our apps.\n\n2.1 Personal Information\n\nYour name, email, telephone number and any details you choose to include when you write to us, apply for a role, or submit a story. In our apps, if you choose to create an account (see Section 04), we collect the email address associated with that account.\n\n2.2 Sensitive Information\n\nWe do not ask for sensitive information through this website or our apps. If you send us sensitive material, as a source or otherwise, we handle it with care and disclose it only as described in this Policy.\n\n2.3 Technical & Usage Information\n\nIP address, browser or device type, session logs and cookies collected when you use the website. In our apps we record anonymous, aggregate usage events (for example, that an article category was opened or a screen was viewed) that are not linked to your identity and contain no advertising identifier.\n\n2.4 Communication Data\n\nThe content of email correspondence, recorded calls (with notice and consent) and information voluntarily submitted through contact forms.\n\n03\n\nPurpose of Use\n\nWe collect and process Information for the following purposes:\n\nTo answer messages sent through this website;\n\nTo consider story tips, pitches, applications and partnership requests;\n\nTo operate, secure and improve the website;\n\nTo measure readership at an aggregate level;\n\nTo comply with legal, regulatory, tax or contractual obligations.\n\n04\n\nOur Apps & The Dispatch\n\nThis section describes data practices specific to our consumer applications, including The Dispatch, our newsroom reader for iOS.\n\n4.1 No account required\n\nReading is fully usable with no sign-in. We do not require you to create an account, and we do not ask for your contacts or location.\n\n4.2 Optional account (Sign in with Apple)\n\nIf you choose to subscribe to a membership, you may create a TNAADO account using Sign in with Apple. This stores your email address and account identifier so your membership works across the app and tnaado.ca. Authentication tokens are stored in your device’s Keychain. We never receive your Apple password.\n\n4.3 Subscriptions & payments\n\nMemberships are auto-renewable subscriptions purchased and managed through your Apple Account using Apple’s In-App Purchase. We do not see or store your payment details. Apple processes the transaction. We record only your subscription status (for example, active and ad-free) to deliver the benefit you paid for.\n\n4.4 Deleting your account\n\nYou can permanently delete your account and its associated email at any time from the Account screen in the app. You may also email [email protected]. See Section 09.\n\n4.5 In-app analytics\n\nOur apps record anonymous, aggregate usage events to understand which content is read, including article, map, show and account views and the display of a labelled sponsor placement. These events contain no name, email, account identifier, advertising identifier or device identifier, are not linked to your identity, and are sent only to our own servers. Our apps contain no third-party analytics or advertising-tracking SDKs and do not track you across other apps or websites.\n\n4.6 Location\n\nThe live incident map shows public-safety and civic notices aggregated from public sources (such as transit, traffic and weather open data). It does not request or track your location.\n\n4.7 Optional bug reports\n\nIf you choose to send a bug report from The Dispatch, we collect the category, title and description you provide; your email address only if you choose to include it for a reply; and an image only if you choose to attach a screenshot. To diagnose the report, we also attach the app version and build, iOS version, device model and language/region setting. We use this information only to investigate, respond to and improve the app. Please do not include sensitive personal information in a report or screenshot. Bug reports are handled under the retention and deletion practices in Section 09.\n\n05\n\nAdvertising\n\nWhere ads appear, they are clearly labelled, and members on an ad-free plan see none. Ads shown in our apps are served from our own systems; we do not build advertising profiles of you and do not track you across other apps and websites. On the website we may use cookie-based advertising as described in Section 11. If a third-party ad network is ever added to an app, this Policy and the relevant App Store privacy disclosures will be updated first, and any tracking will require your consent.\n\n06\n\nConsent & Recording\n\nBy submitting information through this website or corresponding with us, you consent to the collection, use and storage of your data in accordance with this Policy.\n\nWhere an interview or call is to be recorded, you will be told in advance and may decline. If you decline, we do not record.\n\n07\n\nData Security\n\nTNAADO uses encrypted, secured infrastructure. Transmissions occur over HTTPS with current TLS protocols. Internally, we enforce strict access controls and review our systems for vulnerabilities. Personnel receive ongoing training in cybersecurity and data-protection practice.\n\nDespite these measures, no transmission method over the internet is entirely secure. We cannot guarantee absolute security and we recommend that you avoid submitting sensitive documents over unsecured or public networks.\n\n08\n\nSharing & Disclosure\n\nWe do not sell or rent your data. We share Information only in the following circumstances:\n\nWith service providers bound by confidentiality obligations, for storage, communications, analytics and security;\n\nWith Stripe, our payment processor, if you are a Dispatch Live contributor who completes Stripe Connect onboarding to receive payouts for footage we license or sell — Stripe collects the identity, banking and tax information its onboarding flow requires directly from you, under Stripe's own privacy policy, and we retain the resulting payout and transfer records to pay and account for you;\n\nTo comply with legal obligations such as subpoenas, regulatory requests or court orders;\n\nIn connection with a merger, acquisition or transfer of all or part of our business, with notice where reasonably practicable.\n\n09\n\nRetention & Account Deletion\n\nWe retain Information only for as long as necessary for the purposes for which it was collected and to satisfy our legal, tax, regulatory or accounting obligations. Upon expiry of the applicable retention period, confidential records are securely destroyed.\n\nIf you created an app account, you can delete it and its associated email at any time from the Account screen in the app, or by emailing [email protected]. We delete the account record promptly on request.\n\nIf you are a Dispatch Live contributor who has been paid, or has an open payout balance, through Stripe Connect, deleting your account permanently revokes sign-in and removes your handle and email, but we retain the associated payout, sale and transfer records (including your Stripe account reference) as required for tax and financial-accounting purposes.\n\n10\n\nYour Rights\n\nSubject to applicable law, you may have the right to:\n\nAccess, correct or request the deletion of your personal data;\n\nWithdraw consent to processing where consent is the legal basis;\n\nReceive a copy of the data we hold in a portable format;\n\nFile a complaint with a relevant privacy authority, including the Office of the Privacy Commissioner of Canada.\n\nApp account holders can delete their account directly from the Account screen in the app. To exercise any of these rights, contact [email protected].\n\n11\n\nCookies & Web Analytics\n\nThis website uses cookies to track aggregate use, improve performance and enable certain functions. We use Google Analytics and the Meta Pixel, and our own first-party analytics collector, to understand site behaviour at an aggregate level. When you first visit, a cookie banner lets you Accept all, Reject non-essential, or open Manage preferences to choose between two categories: Necessary (first-party session and security cookies the site needs to function, and which cannot be rejected) and Analytics & Advertising (Google Analytics, the Meta Pixel and our own analytics collector, which only run if you accept them). None of these run before you choose. You can change your choice at any time via the “Cookie preferences” link in the site footer; your choice is remembered for about a year. You may also opt out of personalized advertising at ads.google.com/settings or, in Canada, at youradchoices.ca, and disable cookies through your browser settings; some site functionality may be reduced.\n\nOur apps do not use these tools: they contain no third-party analytics or advertising-tracking SDKs, cookies or pixels. In-app measurement is anonymous and first-party only, as described in Section 04.\n\n12\n\nThird-Party Links & Players\n\nOur website and apps may link to, or embed content from, external services operated by third parties, for example, embedded video players (such as YouTube, Twitch or Kick) when a broadcast is on air, or map tiles on the live incident map. When you open such content, your device requests it directly from that provider, which may set its own cookies and apply its own tracking under its privacy terms, outside our control. We are not responsible for the privacy practices of third-party services.\n\n13\n\nInternational Transfers\n\nWhere data is transferred outside Canada (for example, for cloud storage with reputable providers), we apply contractual and organizational safeguards intended to provide a comparable level of protection.\n\n14\n\nChildren\n\nOur apps and services are intended for users 18 years of age and older. We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact [email protected] and we will delete it.\n\n15\n\nChanges to this Policy\n\nWe may update this Privacy Policy from time to time. The current version will always be posted on this page with the effective date noted at the top.\n\n16\n\nContact\n\nTNAADO Inc., Privacy Officer\n\n1050 King Street West\n\nToronto, Ontario, Canada M6K 0C7\n\nEmail: [email protected]\n\nContact\n\nPrivacy Office\n\n[email protected]\n\n1050 King Street West\n\nToronto, ON M6K 0C7\n\nThe trio\n\nTerms of Service\n\nLegal & Business Disclosures",
  "text_sha256": "4e6ed596d9385deb35202774d68aa08abaf01dc879e23156b16ade770a31e5fe",
  "extraction": "main text, whitespace normalized"
}
