CINXE.COM
Sean McNeely | University of Toronto
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="og: https://ogp.me/ns#"> <head> <meta charset="utf-8" /> <link rel="canonical" href="https://www.utoronto.ca/news/authors-reporters/sean-mcneely" /> <meta name="Generator" content="Drupal 10 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <link rel="icon" href="/themes/custom/bootstrap_uoft/images/favicons/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="alternate" type="application/rss+xml" title="Sean McNeely" href="https://www.utoronto.ca/taxonomy/term/6083/feed" /> <script src="/sites/default/files/google_tag/utoronto.ca/google_tag.script.js?snvqhi" defer></script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1134326665",accountID:"3922848",trustKey:"66686",xpid:"Vw8FU15XABABVFVTAgUBV1MC",licenseKey:"NRJS-27992c020635ff9e4a2",applicationID:"1041546173"};;/*! For license information please see nr-loader-spa-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>g,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function g(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>s,Qu:()=>c,TZ:()=>a,ih:()=>u,tC:()=>i});var n=r(860);const i=["click","keydown","submit"],o="api",a=n.K7.softNav,s={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},c={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},u={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",T="cb"+R,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),N=r(5603),O=r(5284);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function j(e,t={},g,R){let{init:x,info:j,loader_config:P,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();j||(x=L.init,j=L.info,P=L.loader_config),(0,S.xN)(e.agentIdentifier,x||{}),(0,N.a)(e.agentIdentifier,P||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const H=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];I||(H.proxy.assets&&(_(H.proxy.assets),D.push(H.proxy.assets)),H.proxy.beacon&&D.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?D:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");E[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(A,e,!0,"api")})),g.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const _=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,R),r?void 0:this}}function j(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{_[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>j()),!0):j(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-1vUqEfJPB8Pihje9mv5CfYgkitO1FWcS+UQb84DbXqP8oYctRv4/lzl/MzNLPlRhcY1WVDBGL20I8vm6s2VV7g==",249:"sha512-Y/BeZAh6VSTmUtUNmS5XdyKxL92s30Fyyj8xVW76HSPxcKItL4+x2+kGMZc8pMJnUpZDz1L4eftZQAJh3D8NnA==",212:"sha512-Gn2tQ3qog5Yhrx/gRutkSTYPp+7nkKFt4/mIXg99LxcNpMDAYJZDBYmAACdoHNM86+iq1F3cBcQotFNzjIX8bw=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(478).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class N extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),p.RI&&((0,T.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class _ extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),j=i(3304);class P{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,j.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new P(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new P(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class D extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,j.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,j.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class Ne extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class _e extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class je extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,A.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,A.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var Pe=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,A.jT)(!1)),e.removeEventListener("error",f,(0,A.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,A.jT)(!1)),e.addEventListener("error",f,(0,A.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Me={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Me[t.debugId]++)return t;Me[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:Je,e5:Qe,tH:$e,uP:et,rw:tt,Lc:rt}=Pe;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=De(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on(Je,m),o.on(Je,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([$e+Ze,$e+"-done",$e+Xe+Ze,$e+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,Je,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,$e+Ze),v(d,$e+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,A.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,A.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];p.RI&&e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,_e,_,D,ot,ct,je,nt],loaderType:"spa"})})()})();</script> <title>Sean McNeely | University of Toronto</title> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_IPOzt9b8HQxGUbLE2j3ptJZeZo0fSQ2yAP8CPZn9_6I.css?delta=0&language=en&theme=bootstrap_uoft&include=eJyNjkEOwyAMBD8E4UnIJIZasnGETav8vlV7aCUuvexhZ1Zau8xRUgHDUFTdfMCZp1ZPjbUAR_OLqbew68C0q5zasbttX7vAGKQxCvb5p5YFqIc74cPSOzfRY_Lvh4-eqg5ZWxJomCtPOlboUCzXybwiQbPX0jJTu_kTpzFkdA" /> <link rel="stylesheet" media="all" href="/sites/default/files/css/css_qWl9UTZNRTVA8AFSQfoWf_nCc6N1hxQJX6xvjnQr5wc.css?delta=1&language=en&theme=bootstrap_uoft&include=eJyNjkEOwyAMBD8E4UnIJIZasnGETav8vlV7aCUuvexhZ1Zau8xRUgHDUFTdfMCZp1ZPjbUAR_OLqbew68C0q5zasbttX7vAGKQxCvb5p5YFqIc74cPSOzfRY_Lvh4-eqg5ZWxJomCtPOlboUCzXybwiQbPX0jJTu_kTpzFkdA" /> <link rel="preload" href="/themes/custom/bootstrap_uoft/gstatic/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-mu0SC55I.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/themes/custom/bootstrap_uoft/gstatic/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu0SC55K5gw.woff2" as="font" type="font/woff2" crossorigin> </head> <body class="layout-one-sidebar layout-sidebar-first page-taxonomy-term-6083 page-vocabulary-authors-reporters page-view-taxonomy-term path-taxonomy"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MFDGDNZ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div id="page-wrapper"> <div id="page"> <header data-sticky-header data-sticky-offset="6" data-sticky-media="(min-width: 40rem)" data-sticky-selector="main *:focus" id="header" class="header" role="banner" aria-label="Site header"> <nav class="navbar bg-transparent navbar-expand-lg" id="navbar-main"> <div class="uoft-logo"> <a href="/" title="Home" rel="home" class="navbar-brand"> <img src="/themes/custom/bootstrap_uoft/logo.svg" alt="Home" class="img-fluid d-inline-block align-top" /> <span class="ml-2 d-none d-md-inline"></span> </a> </div> <div class="navbar-form desktop"> <div class="header-tools"> <section class="row region region-header-tools"> <nav role="navigation" aria-labelledby="block-mainmenutools-menu" id="block-mainmenutools" class="settings-tray-editable block block-menu navigation menu--main-menu-tools" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainmenutools-menu">Main menu tools</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="https://mail.utoronto.ca/" class="webmail nav-link nav-link-https--mailutorontoca-">Email</a> </li> <li class="nav-item"> <a href="https://q.utoronto.ca/" class="portal nav-link nav-link-https--qutorontoca-">Quercus</a> </li> <li class="nav-item"> <a href="http://www.acorn.utoronto.ca/" class="acorn nav-link nav-link-http--wwwacornutorontoca-">Acorn</a> </li> </ul> </nav> <div id="block-maincampusstatus" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status"> </div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> </section> </div> <div class="header-form"> <section class="row region region-header-form"> <div class="views-exposed-form settings-tray-editable block block-views block-views-exposed-filter-blocksearch-page-1" data-drupal-selector="views-exposed-form-search-page-1" id="block-exposedformsearchpage-1-2" data-drupal-settingstray="editable"> <div class="content"> <form action="/search" method="get" id="views-exposed-form-search-page-1" accept-charset="UTF-8"> <div class="d-flex flex-wrap"> <fieldset class="js-form-item js-form-type-textfield form-type-textfield js-form-item-query form-item-query bs-mb-2"> <label for="edit-query" class="bs-mb-1">Search the U of T website</label> <input data-drupal-selector="edit-query" type="text" id="edit-query" name="query" value="" size="30" maxlength="128" class="form-control" /> </fieldset> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper bs-mb-2" id="edit-actions"> <button data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value=" Search" class="button js-form-submit form-submit btn btn-primary"> Search</button> </div> </div> </form> </div> </div> <nav role="navigation" aria-labelledby="block-jumptomenu-menu" id="block-jumptomenu" class="block-jumptomenu settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-jumptomenu-menu">Jump to menu</h2> <button class="jumpto-menu btn collapsed" data-toggle="collapse" data-target="#jumpto-menu" aria-controls="jumpto-menu" aria-expanded="false" aria-label="Jump to different areas on the site" role="button"> <span class="label">Jump to...</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </button> <div class="jumpto-menu-wrapper"> <div class="collapse" id="jumpto-menu" aria-expanded="false"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News & Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research & innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </div> <div id="jumpto-menu-mobile"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News & Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research & innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </nav> </section> </div> </div> <div class="navbar-form mobile"> <a class="search-mobile collapsed" href="#search-drawer" role="button" data-toggle="collapse" aria-label="search in mobile screen" aria-expanded="false" aria-controls="search-drawer"><i class="fa-regular fa-magnifying-glass"></i></a> <button class="navbar-toggler-mobile btn" type="button" data-toggle="collapse" data-target="#navbarMobile" aria-controls="navbarMobile" aria-expanded="false" aria-label="Mobile navigation"> <div class="animated-icon" id="animated-icon"><span></span><span></span><span></span><span></span></div> </button> </div> </nav> <div id="search-drawer" class="collapse"> <div class="views-exposed-form settings-tray-editable block block-views block-views-exposed-filter-blocksearch-page-1" data-drupal-selector="views-exposed-form-search-page-1" id="block-exposedformsearchpage-1-2" data-drupal-settingstray="editable"> <div class="content"> <form action="/search" method="get" id="views-exposed-form-search-page-1" accept-charset="UTF-8"> <div class="d-flex flex-wrap"> <fieldset class="js-form-item js-form-type-textfield form-type-textfield js-form-item-query form-item-query bs-mb-2"> <label for="edit-query" class="bs-mb-1">Search the U of T website</label> <input data-drupal-selector="edit-query" type="text" id="edit-query" name="query" value="" size="30" maxlength="128" class="form-control" /> </fieldset> <div data-drupal-selector="edit-actions" class="form-actions js-form-wrapper bs-mb-2" id="edit-actions"> <button data-drupal-selector="edit-submit-search" type="submit" id="edit-submit-search" value=" Search" class="button js-form-submit form-submit btn btn-primary"> Search</button> </div> </div> </form> </div> </div> </div> <div class="primary-menu desktop justify-content-end"> <nav role="navigation" aria-labelledby="block-bootstrap-uoft-main-menu-menu" id="block-bootstrap-uoft-main-menu" class="block-bootstrap-uoft-main-menu settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-bootstrap-uoft-main-menu-menu">Main navigation</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> </div> <div class="collapse navbar-collapse" id="navbarMobile"> <section class="row region region-header-tools"> <nav role="navigation" aria-labelledby="block-mainmenutools-menu" id="block-mainmenutools" class="settings-tray-editable block block-menu navigation menu--main-menu-tools" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainmenutools-menu">Main menu tools</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="https://mail.utoronto.ca/" class="webmail nav-link nav-link-https--mailutorontoca-">Email</a> </li> <li class="nav-item"> <a href="https://q.utoronto.ca/" class="portal nav-link nav-link-https--qutorontoca-">Quercus</a> </li> <li class="nav-item"> <a href="http://www.acorn.utoronto.ca/" class="acorn nav-link nav-link-http--wwwacornutorontoca-">Acorn</a> </li> </ul> </nav> <div id="block-maincampusstatus" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status"> </div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> </section> <div class="mobile-navigation-wrapper"> <nav role="navigation" aria-labelledby="block-bootstrap-uoft-main-menu-menu" id="block-bootstrap-uoft-main-menu" class="block-bootstrap-uoft-main-menu settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-bootstrap-uoft-main-menu-menu">Main navigation</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> <hr> <div class="row"> <nav role="navigation" aria-labelledby="block-jumptomenu-menu" id="block-jumptomenu" class="block-jumptomenu settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-jumptomenu-menu">Jump to menu</h2> <button class="jumpto-menu btn collapsed" data-toggle="collapse" data-target="#jumpto-menu" aria-controls="jumpto-menu" aria-expanded="false" aria-label="Jump to different areas on the site" role="button"> <span class="label">Jump to...</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </button> <div class="jumpto-menu-wrapper"> <div class="collapse" id="jumpto-menu" aria-expanded="false"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News & Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research & innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </div> <div id="jumpto-menu-mobile"> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News & Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research & innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </div> </nav> </div> </div> </div> <nav class="navbar navbar-light bg-transparent" id="navbar-top"> <div class="sub-nav"> <section class="row region region-secondary-menu"> <nav role="navigation" aria-labelledby="block-uoftnewsmenu-menu" id="block-uoftnewsmenu" class="settings-tray-editable block block-menu navigation menu--u-of-t-news-menu" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-uoftnewsmenu-menu">U of T News menu</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">Latest news</a> </li> <li class="nav-item"> <a href="/news/searchnews" class="nav-link nav-link--news-searchnews" data-drupal-link-system-path="news/searchnews">Find a story</a> </li> <li class="nav-item"> <a href="/news/contact-us" class="nav-link nav-link--news-contact-us" data-drupal-link-system-path="node/171271">About U of T News</a> </li> <li class="nav-item"> <a href="/bulletin" class="nav-link nav-link--bulletin" data-drupal-link-system-path="node/171264">The Bulletin Brief</a> </li> <li class="nav-item"> <a href="http://magazine.utoronto.ca/" class="nav-link nav-link-http--magazineutorontoca-">U of T Magazine</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/bluebook/" class="nav-link nav-link-http--mediautorontoca-bluebook-">Blue Book</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/" class="nav-link nav-link-http--mediautorontoca-">Media Room</a> </li> </ul> </nav> </section> </div> <a class="sub-nav-mobile collapsed" href="#subNavMobile" role="button" data-toggle="collapse" aria-label="sub menu in mobile screen" aria-expanded="false" aria-controls="subNavMobile"> <span class="label">Navigation</span> <span class="icon"><i class="fa-solid fa-caret-down"></i></span> </a> <div class="collapse" id="subNavMobile"> <section class="row region region-secondary-menu"> <nav role="navigation" aria-labelledby="block-uoftnewsmenu-menu" id="block-uoftnewsmenu" class="settings-tray-editable block block-menu navigation menu--u-of-t-news-menu" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-uoftnewsmenu-menu">U of T News menu</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">Latest news</a> </li> <li class="nav-item"> <a href="/news/searchnews" class="nav-link nav-link--news-searchnews" data-drupal-link-system-path="news/searchnews">Find a story</a> </li> <li class="nav-item"> <a href="/news/contact-us" class="nav-link nav-link--news-contact-us" data-drupal-link-system-path="node/171271">About U of T News</a> </li> <li class="nav-item"> <a href="/bulletin" class="nav-link nav-link--bulletin" data-drupal-link-system-path="node/171264">The Bulletin Brief</a> </li> <li class="nav-item"> <a href="http://magazine.utoronto.ca/" class="nav-link nav-link-http--magazineutorontoca-">U of T Magazine</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/bluebook/" class="nav-link nav-link-http--mediautorontoca-bluebook-">Blue Book</a> </li> <li class="nav-item"> <a href="http://media.utoronto.ca/" class="nav-link nav-link-http--mediautorontoca-">Media Room</a> </li> </ul> </nav> </section> </div> </nav> </header> <canvas id="confetti-canvas"></canvas> <div id="confetti-button" class="ready position-fixed"></div> <div id="main-wrapper" class="layout-main-wrapper clearfix"> <div id="main" class="container news"> <div class="clearfix"> <main class="main-content col" id="content" role="main"> <section class="section"> <a id="main-content" tabindex="-1"></a> <div id="block-bootstrap-uoft-content" class="block block-system block-system-main-block"> <div class="content"> <div class="views-element-container"><div class="paginated view view-taxonomy-term view-id-taxonomy_term view-display-id-page_1 js-view-dom-id-6484e2c1025954f1599b889114099b30472b6002e9e3ea6581d0360fd9c22af6"> <div class="view-header"> <div id="taxonomy-term-6083" class="taxonomy-term vocabulary-authors-reporters"> <div class="content bs-pt-l bs-mb-4"> <div class="row"> <div class="col-md-12 no-mb"> <h1 class="title no-mt bs-mb-1"> <div class="field field--name-name field--type-string field--label-hidden field__item">Sean McNeely</div> </h1> </div> </div> </div> <h2 class="bs-mb-2">News stories by Sean McNeely</h2> </div> </div> <div class="view-content row"> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/tree-stories-course-connects-u-t-students-nature-history-and-themselves" aria-label="‘Tree Stories' course connects U of T students to nature, history – and themselves"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-11/DSC_6467-crop.jpg?h=81d682ee&itok=CRQoBMwx" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> November 27, 2024 </span> <span class="headline">‘Tree Stories' course connects U of T students to nature, history – and themselves</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-commerce-grad-discovers-passion-teaching-science-and-helping-others" aria-label="U of T commerce grad discovers passion for teaching, science - and helping others"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-10/Roshawn-Headshot_-crop.jpg?h=81d682ee&itok=0-Wmc2yL" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> October 29, 2024 </span> <span class="headline">U of T commerce grad discovers passion for teaching, science - and helping others</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-english-prof-s-dystopian-tale-explores-privilege-and-peril-global-south" aria-label="U of T English prof's dystopian tale explores privilege and peril in the Global South"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-08/boyagoda-book.jpg?h=c87f6bf5&itok=Xo1VjdGw" width="750" height="500" alt="Randy Boyagoda and the cover of Little Sanctuary" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> August 2, 2024 </span> <span class="headline">U of T English prof's dystopian tale explores privilege and peril in the Global South</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/fierce-fabulous-and-fluid-u-t-researcher-explores-work-done-trans-youth-create-inclusive" aria-label="‘Fierce, Fabulous, and Fluid’: U of T researcher explores the work done by trans youth to create inclusive spaces"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-07/slovin-book.jpg?h=a5cf1c67&itok=mjT4WDDP" width="750" height="500" alt="LJ Slvin and cover of Fierce, Fabulous and Fluid" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> July 19, 2024 </span> <span class="headline">‘Fierce, Fabulous, and Fluid’: U of T researcher explores the work done by trans youth to create inclusive spaces</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/incredible-gratitude-u-t-grad-his-journey-spinal-cord-injury-convocation" aria-label="'Incredible gratitude': U of T grad on his journey from spinal cord injury to convocation"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-06/Beau_GP-Ad_Feb-2024_Volpe_Edits-06-crop.jpg?h=81d682ee&itok=4nZxTuo4" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> June 4, 2024 </span> <span class="headline">'Incredible gratitude': U of T grad on his journey from spinal cord injury to convocation</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/photo-exhibit-display-u-t-celebrates-important-role-black-classicists" aria-label="Photo exhibit on display at U of T celebrates the important role of Black classicists"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-05/BlackClassicists-images-weblead.jpg?h=673beb05&itok=uLewQbUr" width="750" height="500" alt="Wall in Lillian Massey Building with photos and portraits" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> May 3, 2024 </span> <span class="headline">Photo exhibit on display at U of T celebrates the important role of Black classicists</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/uncovering-untold-stories-u-t-course-explores-black-canadian-history" aria-label="Uncovering untold stories: U of T course explores Black Canadian history"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-02/Emanuel-African-Methodist-Church-crop.jpg?h=81d682ee&itok=LJLq70GY" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> February 28, 2024 </span> <span class="headline">Uncovering untold stories: U of T course explores Black Canadian history</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-prof-takes-home-award-sundance-film-festival" aria-label="U of T prof takes home award at Sundance Film Festival"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-02/GettyImages-1950332486-crop.jpg?h=62794f57&itok=hzYV1l3c" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> February 13, 2024 </span> <span class="headline">U of T prof takes home award at Sundance Film Festival</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/classics-students-whip-taste-ancient-history" aria-label="Classics students whip up a taste of ancient history"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2024-01/AFD-Winter-2024-crop.jpg?h=81d682ee&itok=NIOmI9es" width="750" height="500" alt="plate filled with various foods at the event" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> January 30, 2024 </span> <span class="headline">Classics students whip up a taste of ancient history</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-horror-film-course-keeps-students-edge-their-seats" aria-label="U of T 'Horror Film' course keeps students on the edge of their seats"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-10/les-yeu-sans-visage-and-frankenstein.jpg?h=afdc3185&itok=qP3lfyLB" width="750" height="500" alt="Movie posters for Les Yeux Sans Visage and Frankenstein" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> October 31, 2023 </span> <span class="headline">U of T 'Horror Film' course keeps students on the edge of their seats</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-researchers-help-study-catalogue-rom-s-ancient-greek-coins" aria-label="U of T researchers help study, catalogue ROM's ancient Greek coins"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-10/lede-crop.jpg?h=afdc3185&itok=TiYa2qCk" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> October 19, 2023 </span> <span class="headline">U of T researchers help study, catalogue ROM's ancient Greek coins</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/medieval-blockbuster-u-t-acquires-rare-14th-century-manuscript" aria-label="'A medieval blockbuster': U of T acquires a rare 14th-century manuscript"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-09/DSC_4784-crop.jpg?h=fa3f0194&itok=4bJZ7-xc" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> September 18, 2023 </span> <span class="headline">'A medieval blockbuster': U of T acquires a rare 14th-century manuscript</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/lot-hardship-researcher-examines-experience-women-who-are-seasonal-workers" aria-label="'A lot of hardship': Researcher explores the experiences of women who are seasonal workers "> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-08/GettyImages-1227794463-crop.jpg?h=9d621a32&itok=7o1ex6ix" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> September 6, 2023 </span> <span class="headline">'A lot of hardship': Researcher explores the experiences of women who are seasonal workers </span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-classics-prof-uses-graphic-design-humour-keep-students-engaged" aria-label="U of T classics prof uses graphic design, humour to keep students engaged "> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-08/SardMurray-crop.jpg?h=2e39fa2f&itok=nS4lq7xE" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> August 23, 2023 </span> <span class="headline">U of T classics prof uses graphic design, humour to keep students engaged </span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-phd-candidate-explores-italy-s-ancient-cultural-and-linguistic-history" aria-label="U of T PhD candidate explores Italy's ancient cultural and linguistic history"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-08/Picture12-crop.jpg?h=afdc3185&itok=ehXT__ON" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> August 11, 2023 </span> <span class="headline">U of T PhD candidate explores Italy's ancient cultural and linguistic history</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/author-and-phd-student-zak-jones-explores-veterans-narratives-in-literature" aria-label="From soldier to scribe: PhD student Zak Jones explores veterans' narratives in literature"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-08/Zak-Jones---B-W-crop.jpg?h=afdc3185&itok=PlyPzVxm" width="750" height="500" alt="Zak Jones" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> August 8, 2023 </span> <span class="headline">From soldier to scribe: PhD student Zak Jones explores veterans' narratives in literature</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/phd-student-illustrates-u-t-course-descriptions-eye-catching-posters" aria-label="PhD student illustrates U of T course descriptions with eye-catching posters"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-07/covers.jpg?h=6ac18073&itok=lwTtpurG" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> August 1, 2023 </span> <span class="headline">PhD student illustrates U of T course descriptions with eye-catching posters</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/phd-candidate-rachel-katz-examines-pros-and-cons-ai-therapy" aria-label="Can AI deliver therapy? U of T PhD candidate examines the pros and cons"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-07/GettyImages-1291606290-crop.jpg?h=afdc3185&itok=mTGPm83m" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> July 28, 2023 </span> <span class="headline">Can AI deliver therapy? U of T PhD candidate examines the pros and cons</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/medieval-studies-students-bring-diverse-gender-experiences-past-present" aria-label="Medieval studies students bring the diverse gender experiences of the past into the present"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-05/the-trial_0652-crop.jpg?h=afdc3185&itok=1vlUYe01" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> June 1, 2023 </span> <span class="headline">Medieval studies students bring the diverse gender experiences of the past into the present</span> </a> </div> <div class="col-md-3 views-row bs-mb-3"> <a class="news-grid-item" href="/news/u-t-grad-alyssa-nurse-built-community-through-her-caribbean-connections" aria-label="U of T grad Alyssa Nurse built community through her Caribbean connections"> <span class="thumbnail-wrapper bs-mb-2"> <img loading="lazy" src="/sites/default/files/styles/focal_750x500/public/2023-05/alyssa-nurse-social-crop.jpg?h=d72c0dc7&itok=rERb42zq" width="750" height="500" alt="""" class="image-style-focal-750x500" /> </span> <span class="date bs-mb-1"> May 31, 2023 </span> <span class="headline">U of T grad Alyssa Nurse built community through her Caribbean connections</span> </a> </div> </div> <nav aria-label="pagination-heading"> <h4 id="pagination-heading" class="visually-hidden">Pagination</h4> <ul class="pagination bs-mt-4 bs-mb-4 js-pager__items"> <li class="page-items"> <span class="page-item active"> <span class="page-link">1</span> </span> <span class="page-item "> <a href="?page=1" title="" class="btn white page-link">2</a> </span> <span class="page-item "> <a href="?page=2" title="" class="btn white page-link">3</a> </span> <span class="page-item "> <a href="?page=3" title="" class="btn white page-link">4</a> </span> <span class="page-item "> <a href="?page=4" title="" class="btn white page-link">5</a> </span> </li> <li class="pager__item--next page-item next"> <a href="?page=1" title="Go to next page" rel="next" class="btn page-link"> <span aria-hidden="true"><span class="text bs-mr-1">Next</span><i class="fa fa-chevron-right"></i></span> <span class="visually-hidden">Next page</span> </a> </li> <li class="page-item last"> <a href="?page=4" title="Go to last page" class="btn page-link"> <span aria-hidden="true"><span class="text bs-mr-1">Last</span><i class="fa fa-angles-right"></i></span> <span class="visually-hidden">Last page</span> </a> </li> </ul> </nav> </div> </div> </div> </div> </section> </main> </div> </div> </div> <footer id="footer"> <div class="site-footer"> <div class="container"> <div class="row"> <div class="col-md-12"> <section class="row region region-footer-logo"> <div id="block-footerlogo" class="settings-tray-editable block-content-basic block block-block-content block-block-content2fe9eedb-2036-47ab-b428-a7c80f3e78ef" data-drupal-settingstray="editable"> <div class="content"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="footer-logo-wrapper"> <p class="footer-campaign-logo"><a href="https://defygravitycampaign.utoronto.ca/" title="Defy gravity"><img alt="defy gravity logo" height="80" loading="lazy" src="/sites/default/files/2023-06/Defy_Gravity_KO-150.png" width="150"> </a></p> </div> </div> </div> </div> </section> </div> </div> <div class="row footer-cols"> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-first"> <nav role="navigation" aria-labelledby="block-mainnavigation-menu" id="block-mainnavigation" class="settings-tray-editable block block-menu navigation menu--main" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-mainnavigation-menu">Main navigation repeated</h2> <ul class="clearfix nav navbar-nav" data-component-id="bootstrap_barrio:menu_main"> <li class="nav-item"> <a href="/future-students" class="nav-link nav-link--future-students" data-drupal-link-system-path="node/169243">Future students</a> </li> <li class="nav-item"> <a href="/current-students" class="nav-link nav-link--current-students" data-drupal-link-system-path="node/169246">Current students</a> </li> <li class="nav-item"> <a href="/alumni" class="nav-link nav-link--alumni" data-drupal-link-system-path="node/169247">Alumni</a> </li> <li class="nav-item"> <a href="/faculty-staff" class="nav-link nav-link--faculty-staff" data-drupal-link-system-path="node/169250">Faculty and Staff</a> </li> <li class="nav-item"> <a href="https://defygravitycampaign.utoronto.ca/" class="nav-link nav-link-https--defygravitycampaignutorontoca-">Donors</a> </li> <li class="nav-item"> <a href="/visitors" class="nav-link nav-link--visitors" data-drupal-link-system-path="node/169248">Visitors</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-second"> <nav role="navigation" aria-labelledby="block-subnavigation-2-menu" id="block-subnavigation-2" class="settings-tray-editable block block-menu navigation menu--sub" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-subnavigation-2-menu">Jump to menu repeated</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/news" class="nav-link nav-link--news" data-drupal-link-system-path="node/171269">News & Media</a> </li> <li class="nav-item"> <a href="/about-u-of-t" class="nav-link nav-link--about-u-of-t" data-drupal-link-system-path="node/169259">About U of T</a> </li> <li class="nav-item"> <a href="https://boundless.utoronto.ca/" class="nav-link nav-link-https--boundlessutorontoca-">Give to U of T</a> </li> <li class="nav-item"> <a href="/academics" class="nav-link nav-link--academics" data-drupal-link-system-path="node/169257">Academics</a> </li> <li class="nav-item"> <a href="/academics/programs-directory" class="nav-link nav-link--academics-programs-directory" data-drupal-link-system-path="node/300738">Programs of study</a> </li> <li class="nav-item"> <a href="/research-innovation" class="nav-link nav-link--research-innovation" data-drupal-link-system-path="node/169249">Research & innovation</a> </li> <li class="nav-item"> <a href="/university-life" class="nav-link nav-link--university-life" data-drupal-link-system-path="node/169254">University life</a> </li> <li class="nav-item"> <a href="/libraries" class="nav-link nav-link--libraries" data-drupal-link-system-path="node/169263">Libraries</a> </li> <li class="nav-item"> <a href="/utogether" class="nav-link nav-link--utogether">UTogether</a> </li> <li class="nav-item"> <a href="/a-to-z-directory" class="nav-link nav-link--a-to-z-directory" data-drupal-link-system-path="a-to-z-directory">A to Z Directory</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-third"> <nav role="navigation" aria-labelledby="block-footermenupart3-menu" id="block-footermenupart3" class="settings-tray-editable block block-menu navigation menu--footer-menu-part-3" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-footermenupart3-menu">Quick links</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/contacts" class="nav-link nav-link--contacts" data-drupal-link-system-path="node/169266">Contact</a> </li> <li class="nav-item"> <a href="https://jobs.utoronto.ca/" class="nav-link nav-link-https--jobsutorontoca-">Careers</a> </li> <li class="nav-item"> <a href="/accessibility" class="nav-link nav-link--accessibility" data-drupal-link-system-path="node/169262">Accessibility</a> </li> <li class="nav-item"> <a href="/privacy" class="nav-link nav-link--privacy" data-drupal-link-system-path="node/169264">Privacy</a> </li> <li class="nav-item"> <a href="/site-feedback" class="nav-link nav-link--site-feedback" data-drupal-link-system-path="node/169265">Site feedback</a> </li> <li class="nav-item"> <a href="/sitemap" class="nav-link nav-link--sitemap" data-drupal-link-system-path="node/169894">Site map</a> </li> </ul> </nav> </section> </div> <div class="col col-xs-6 col-md-3"> <section class="row region region-footer-fourth"> <div id="block-maincampusstatus-3" class="settings-tray-editable block-content-main_campus_status block block-block-content block-block-contentc1abfe24-37a7-4697-b0a9-915322534083" data-drupal-settingstray="editable"> <div class="campus-status-wrapper"> <div class="status-ok"> <div class="status"> </div> <div class="status-output"><a href="/campus-status">Campus status</a></div> </div> </div> </div> <nav role="navigation" aria-labelledby="block-footermenupart4-menu" id="block-footermenupart4" class="settings-tray-editable block block-menu navigation menu--footer-menu-part-4" data-drupal-settingstray="editable"> <h2 class="visually-hidden" id="block-footermenupart4-menu">Quick links</h2> <ul class="clearfix nav" data-component-id="bootstrap_barrio:menu"> <li class="nav-item"> <a href="/university-life/campuses/st-george" class="nav-link nav-link--university-life-campuses-st-george" data-drupal-link-system-path="node/169255">St. George campus</a> </li> <li class="nav-item"> <a href="/university-life/campuses/mississauga" class="nav-link nav-link--university-life-campuses-mississauga" data-drupal-link-system-path="node/169256">Mississauga campus</a> </li> <li class="nav-item"> <a href="/university-life/campuses/scarborough" class="nav-link nav-link--university-life-campuses-scarborough" data-drupal-link-system-path="node/169253">Scarborough campus</a> </li> <li class="nav-item"> <a href="http://map.utoronto.ca/" class="nav-link nav-link-http--maputorontoca-">Campus maps</a> </li> <li class="nav-item"> <a href="http://safety.utoronto.ca/" class="nav-link nav-link-http--safetyutorontoca-">Campus safety</a> </li> </ul> </nav> </section> </div> </div> <div class="site-footer__bottom"> <div class="row"> <div class="col-md-12"> <section class="row region region-footer-fifth"> <div id="block-footerstatementofacknowledgement-2" class="settings-tray-editable block-content-basic block block-block-content block-block-contentba347b0a-1f37-41cb-8d09-9d580073a024" data-drupal-settingstray="editable"> <div class="content"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="statement-wrapper"> <p class="title">Statement of Land Acknowledgement</p> <p>We wish to acknowledge this land on which the University of Toronto operates. For thousands of years it has been the traditional land of the Huron-Wendat, the Seneca, and the Mississaugas of the Credit. Today, this meeting place is still the home to many Indigenous people from across Turtle Island and we are grateful to have the opportunity to work on this land. <a href="https://indigenous.utoronto.ca/about/land-acknowledgement/" target="_blank" title="https://indigenous.utoronto.ca/about/land-acknowledgement/">Read about U of T’s Statement of Land Acknowledgement.</a></p> </div> </div> </div> </div> </section> </div> </div> </div> </div> </div> <div class="site-footer-bottom"> <section class="row region region-footer-bottom"> <div id="block-footersocialicons-2" class="settings-tray-editable block-content-footer_social_icons block block-block-content block-block-content3225f7ff-2693-4e9f-8469-ca9c240414f3 footer-social-icons" data-drupal-settingstray="editable"> <div class="footer-social-icons-wrapper"> <a aria-label="Twitter link" href="https://twitter.com/uoft" target="_blank"><i aria-hidden="true" class="fa-brands fa-x-twitter"></i></a> <a aria-label="Facebook link" href="https://www.facebook.com/universitytoronto" target="_blank"><i aria-hidden="true" class="fa-brands fa-facebook-f"></i></a> <a aria-label="instagram link" href="https://www.instagram.com/uoft/" target="_blank"><i aria-hidden="true" class="fa-brands fa-instagram"></i></a> <a aria-label="YouTube link" href="https://www.youtube.com/user/universitytoronto" target="_blank"><i aria-hidden="true" class="fa-brands fa-youtube"></i></a> <a aria-label="LinkedIn link" class="linkedin-icon" href="https://www.linkedin.com/school/university-of-toronto/" target="_blank"><i aria-hidden="true" class="fa-brands fa-linkedin-in"></i></a> <a aria-label="Tik tok link" class="tik-tok-icon" href="https://www.tiktok.com/@uoft" target="_blank"><i aria-hidden="true" class="fa-brands fa-tiktok"></i></a> <a aria-label="Social media directory link" href="/social-media-directory" target="_blank">Social media directory</a> </div> <div class="footer-message"> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>UNIVERSITY OF TORONTO - SINCE 1827</p> </div> </div> </div> </section> </div> </footer> </div> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","pathPrefix":"","currentPath":"taxonomy\/term\/6083","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"ajaxTrustedUrl":{"\/search":true},"user":{"uid":0,"permissionsHash":"bf8f8b022f0bf2ebd333087f6db9f8327e1a1c8d4ebdc8fe013356f6ea6ec180"}}</script> <script src="/sites/default/files/js/js_rR_k2wT1SXxt301Zq6Ck7UyEpoT-d5UoeJRZwXkDKDI.js?scope=footer&delta=0&language=en&theme=bootstrap_uoft&include=eJxLys8vKS4pSiyIL81PK9FPz8lPSszRLS6pzMnMSwcAs1UL0w"></script> <link rel="stylesheet" media="all" href="/themes/custom/bootstrap_uoft/fa/css/all.min.css?v=1.4" /> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-27992c020635ff9e4a2","applicationID":"1041546173","transactionName":"NgBTZ0oHWEECV0xfDQ9KcFBMD1lcTHBKQxIACW1FUQNBQT9mV0MWCAtWb24PU0UzVV9TIQ4LRUFXClpXERkGXgMPAV1W","queueTime":0,"applicationTime":473,"atts":"GkdQEQIdS08=","errorBeacon":"bam.nr-data.net","agent":""}</script> </body> </html>