CINXE.COM

Chemical and Biological Engineering- Princeton Engineering

<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8" /><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:"1588608049",accountID:"3348991",trustKey:"66686",xpid:"VwUDWV9aCRABUVNbDgUPUlMF",licenseKey:"NRJS-b00d4b4e7850ab82d90",applicationID:"1529948474"};;/*! 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> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v23.6) - https://yoast.com/wordpress/plugins/seo/ --> <meta name="description" content="Advancing human health, energy, materials science, and industrial processes" /> <link rel="canonical" href="https://engineering.princeton.edu/departments/chemical-and-biological-engineering" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Princeton Engineering - Chemical and Biological Engineering" /> <meta property="og:description" content="Advancing human health, energy, materials science, and industrial processes" /> <meta property="og:url" content="https://engineering.princeton.edu/departments/chemical-and-biological-engineering" /> <meta property="og:site_name" content="Princeton Engineering" /> <meta property="article:publisher" content="https://www.facebook.com/princetonengineering/" /> <meta property="article:modified_time" content="2024-10-19T11:45:20+00:00" /> <meta property="og:image" content="https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="675" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@EPrinceton" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering","url":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering","name":"Chemical and Biological Engineering- Princeton Engineering","isPartOf":{"@id":"https://engineering.princeton.edu/#website"},"primaryImageOfPage":{"@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering#primaryimage"},"image":{"@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering#primaryimage"},"thumbnailUrl":"https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg","datePublished":"2021-08-20T13:24:30+00:00","dateModified":"2024-10-19T11:45:20+00:00","description":"Advancing human health, energy, materials science, and industrial processes","breadcrumb":{"@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://engineering.princeton.edu/departments/chemical-and-biological-engineering"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering#primaryimage","url":"https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg","contentUrl":"https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg","width":1200,"height":675,"caption":"Professor and student work together in lab setting."},{"@type":"BreadcrumbList","@id":"https://engineering.princeton.edu/departments/chemical-and-biological-engineering#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://engineering.princeton.edu/"},{"@type":"ListItem","position":2,"name":"Chemical and Biological Engineering"}]},{"@type":"WebSite","@id":"https://engineering.princeton.edu/#website","url":"https://engineering.princeton.edu/","name":"Princeton Engineering","description":"","publisher":{"@id":"https://engineering.princeton.edu/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://engineering.princeton.edu/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://engineering.princeton.edu/#organization","name":"Princeton Engineering | Princeton University","url":"https://engineering.princeton.edu/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://engineering.princeton.edu/#/schema/logo/image/","url":"https://engineering.princeton.edu/wp-content/uploads/2024/10/Princeton-Engineering-Social-Media-5-X-Profile-Icon.png","contentUrl":"https://engineering.princeton.edu/wp-content/uploads/2024/10/Princeton-Engineering-Social-Media-5-X-Profile-Icon.png","width":500,"height":500,"caption":"Princeton Engineering | Princeton University"},"image":{"@id":"https://engineering.princeton.edu/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/princetonengineering/","https://x.com/EPrinceton","https://www.instagram.com/eprinceton/","https://www.linkedin.com/school/princetonengineering/","https://www.youtube.com/user/princetonengineering","https://en.m.wikipedia.org/wiki/Princeton_University_School_of_Engineering_and_Applied_Science"]}]}</script> <!-- / Yoast SEO Premium plugin. --> <title>Chemical and Biological Engineering- Princeton Engineering</title> <link rel='dns-prefetch' href='//engineering.princeton.edu' /> <link rel='dns-prefetch' href='//kit.fontawesome.com' /> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="Princeton Engineering &raquo; Feed" href="https://engineering.princeton.edu/feed" /> <link rel="alternate" type="application/rss+xml" title="Princeton Engineering &raquo; Comments Feed" href="https://engineering.princeton.edu/comments/feed" /> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/engineering.princeton.edu\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); </script> <style id='wp-block-group-inline-css'> .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} </style> <style id='wp-block-post-featured-image-inline-css'> .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:initial}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} </style> <style id='wp-block-post-title-inline-css'> .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title a{display:inline-block} </style> <style id='wp-block-paragraph-inline-css'> .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} </style> <style id='wp-block-button-inline-css'> .wp-block-button__link{box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:initial;background-image:none} </style> <style id='twentytwentyfour-button-style-outline-inline-css'> .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color, .has-background):hover { background-color: var(--wp--preset--color--contrast-2, var(--wp--preset--color--contrast, transparent)); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--contrast-2, var(--wp--preset--color--contrast, currentColor)); } </style> <style id='wp-block-buttons-inline-css'> .wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter{text-align:center} </style> <style id='engineering-program-information-style-inline-css'> .block__notes{background-color:rgba(255,0,0,.1);padding:20px}.block__notes__title{font-family:inherit;font-size:16px!important;font-weight:700;margin:0!important}.block__notes__description{font-size:12px;font-weight:300} </style> <style id='engineering-news-style-inline-css'> </style> <style id='engineering-events-style-inline-css'> </style> <style id='engineering-person-style-inline-css'> </style> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <style id='wp-block-library-inline-css'> :root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color)}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#ddd;clip:auto!important;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} </style> <link rel='stylesheet' id='engineering-block-global-style-css' href='https://engineering.princeton.edu/wp-content/plugins/engineering/engineering-block-global-style.css?ver=1732641265' media='all' /> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--base: #f9f9f9;--wp--preset--color--base-2: #ffffff;--wp--preset--color--base-3: #00000025;--wp--preset--color--contrast-yellow: #FEF9C3;--wp--preset--color--contrast-green: #EEFDF2;--wp--preset--color--contrast-blue: #EDF5FF;--wp--preset--color--contrast-red: #FEF0F0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--gradient-1: linear-gradient(to bottom, #cfcabe 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-2: linear-gradient(to bottom, #C2A990 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-3: linear-gradient(to bottom, #D8613C 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-4: linear-gradient(to bottom, #B1C5A4 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-5: linear-gradient(to bottom, #B5BDBC 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-6: linear-gradient(to bottom, #A4A4A4 0%, #F9F9F9 100%);--wp--preset--gradient--gradient-7: linear-gradient(to bottom, #cfcabe 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-8: linear-gradient(to bottom, #C2A990 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-9: linear-gradient(to bottom, #D8613C 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-10: linear-gradient(to bottom, #B1C5A4 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-11: linear-gradient(to bottom, #B5BDBC 50%, #F9F9F9 50%);--wp--preset--gradient--gradient-12: linear-gradient(to bottom, #A4A4A4 50%, #F9F9F9 50%);--wp--preset--font-size--small: 0.9rem;--wp--preset--font-size--medium: 1.05rem;--wp--preset--font-size--large: clamp(1.39rem, 1.39rem + ((1vw - 0.2rem) * 0.767), 1.85rem);--wp--preset--font-size--x-large: clamp(1.85rem, 1.85rem + ((1vw - 0.2rem) * 1.083), 2.5rem);--wp--preset--font-size--xx-large: clamp(2.5rem, 2.5rem + ((1vw - 0.2rem) * 1.283), 3.27rem);--wp--preset--font-family--body: "Inter", sans-serif;--wp--preset--font-family--heading: Cardo;--wp--preset--font-family--system-sans-serif: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;--wp--preset--font-family--system-serif: Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--wp--preset--spacing--20: min(1.5rem, 2vw);--wp--preset--spacing--30: min(2.5rem, 3vw);--wp--preset--spacing--40: min(4rem, 5vw);--wp--preset--spacing--50: min(6.5rem, 8vw);--wp--preset--spacing--60: min(10.5rem, 13vw);--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--spacing--10: 1rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: 620px;--wp--style--global--wide-size: 1280px; }:where(body) { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 1.2rem; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 1.2rem; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 1.2rem;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 1.2rem;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 1.2rem;}:root :where(.is-layout-grid){gap: 1.2rem;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{background-color: var(--wp--preset--color--base);color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--body);font-size: var(--wp--preset--font-size--medium);font-style: normal;font-weight: 400;line-height: 1.55;--wp--style--root--padding-top: 0px;--wp--style--root--padding-right: var(--wp--preset--spacing--50);--wp--style--root--padding-bottom: 0px;--wp--style--root--padding-left: var(--wp--preset--spacing--50);}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--contrast);text-decoration: underline;}:root :where(a:where(:not(.wp-element-button)):hover){text-decoration: none;}h1, h2, h3, h4, h5, h6{color: var(--wp--preset--color--contrast);font-family: var(--wp--preset--font-family--heading);font-weight: 400;line-height: 1.2;}h1{font-size: var(--wp--preset--font-size--xx-large);line-height: 1.15;}h2{font-size: var(--wp--preset--font-size--x-large);}h3{font-size: var(--wp--preset--font-size--large);}h4{font-size: clamp(1.1rem, 1.1rem + ((1vw - 0.2rem) * 0.767), 1.5rem);}h5{font-size: var(--wp--preset--font-size--medium);}h6{font-size: var(--wp--preset--font-size--small);}:root :where(.wp-element-button, .wp-block-button__link){background-color: var(--wp--preset--color--contrast);border-radius: .33rem;border-color: var(--wp--preset--color--contrast);border-width: 0;color: var(--wp--preset--color--base);font-family: inherit;font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 500;line-height: inherit;padding-top: 0.6rem;padding-right: 1rem;padding-bottom: 0.6rem;padding-left: 1rem;text-decoration: none;}:root :where(.wp-element-button:hover, .wp-block-button__link:hover){background-color: var(--wp--preset--color--contrast-2);border-color: var(--wp--preset--color--contrast-2);color: var(--wp--preset--color--base);}:root :where(.wp-element-button:focus, .wp-block-button__link:focus){background-color: var(--wp--preset--color--contrast-2);border-color: var(--wp--preset--color--contrast-2);color: var(--wp--preset--color--base);outline-color: var(--wp--preset--color--contrast);outline-offset: 2px;outline-style: dotted;outline-width: 1px;}:root :where(.wp-element-button:active, .wp-block-button__link:active){background-color: var(--wp--preset--color--contrast);color: var(--wp--preset--color--base);}:root :where(.wp-element-caption, .wp-block-audio figcaption, .wp-block-embed figcaption, .wp-block-gallery figcaption, .wp-block-image figcaption, .wp-block-table figcaption, .wp-block-video figcaption){color: var(--wp--preset--color--contrast-2);font-family: var(--wp--preset--font-family--body);font-size: 0.8rem;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-base-color{color: var(--wp--preset--color--base) !important;}.has-base-2-color{color: var(--wp--preset--color--base-2) !important;}.has-base-3-color{color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-color{color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-color{color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-color{color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-color{color: var(--wp--preset--color--contrast-red) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-base-background-color{background-color: var(--wp--preset--color--base) !important;}.has-base-2-background-color{background-color: var(--wp--preset--color--base-2) !important;}.has-base-3-background-color{background-color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-background-color{background-color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-background-color{background-color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-background-color{background-color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-background-color{background-color: var(--wp--preset--color--contrast-red) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-base-border-color{border-color: var(--wp--preset--color--base) !important;}.has-base-2-border-color{border-color: var(--wp--preset--color--base-2) !important;}.has-base-3-border-color{border-color: var(--wp--preset--color--base-3) !important;}.has-contrast-yellow-border-color{border-color: var(--wp--preset--color--contrast-yellow) !important;}.has-contrast-green-border-color{border-color: var(--wp--preset--color--contrast-green) !important;}.has-contrast-blue-border-color{border-color: var(--wp--preset--color--contrast-blue) !important;}.has-contrast-red-border-color{border-color: var(--wp--preset--color--contrast-red) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-gradient-1-gradient-background{background: var(--wp--preset--gradient--gradient-1) !important;}.has-gradient-2-gradient-background{background: var(--wp--preset--gradient--gradient-2) !important;}.has-gradient-3-gradient-background{background: var(--wp--preset--gradient--gradient-3) !important;}.has-gradient-4-gradient-background{background: var(--wp--preset--gradient--gradient-4) !important;}.has-gradient-5-gradient-background{background: var(--wp--preset--gradient--gradient-5) !important;}.has-gradient-6-gradient-background{background: var(--wp--preset--gradient--gradient-6) !important;}.has-gradient-7-gradient-background{background: var(--wp--preset--gradient--gradient-7) !important;}.has-gradient-8-gradient-background{background: var(--wp--preset--gradient--gradient-8) !important;}.has-gradient-9-gradient-background{background: var(--wp--preset--gradient--gradient-9) !important;}.has-gradient-10-gradient-background{background: var(--wp--preset--gradient--gradient-10) !important;}.has-gradient-11-gradient-background{background: var(--wp--preset--gradient--gradient-11) !important;}.has-gradient-12-gradient-background{background: var(--wp--preset--gradient--gradient-12) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-xx-large-font-size{font-size: var(--wp--preset--font-size--xx-large) !important;}.has-body-font-family{font-family: var(--wp--preset--font-family--body) !important;}.has-heading-font-family{font-family: var(--wp--preset--font-family--heading) !important;}.has-system-sans-serif-font-family{font-family: var(--wp--preset--font-family--system-sans-serif) !important;}.has-system-serif-font-family{font-family: var(--wp--preset--font-family--system-serif) !important;} :root :where(.wp-block-buttons-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flow) > *{margin-block-start: 0.7rem;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-constrained) > *{margin-block-start: 0.7rem;margin-block-end: 0;}:root :where(.wp-block-buttons-is-layout-flex){gap: 0.7rem;}:root :where(.wp-block-buttons-is-layout-grid){gap: 0.7rem;} :root :where(.wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay){border-radius: var(--wp--preset--spacing--20);} :root :where(.wp-block-post-title a:where(:not(.wp-element-button))){text-decoration: none;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){text-decoration: underline;} :where(.wp-site-blocks *:focus){outline-width:2px;outline-style:solid}:root :where(.wp-block-calendar.wp-block-calendar table:where(:not(.has-text-color)) th){background-color:var(--wp--preset--color--contrast-2);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--contrast-2)}:root :where(.wp-block-calendar table:where(:not(.has-text-color)) td){border-color:var(--wp--preset--color--contrast-2)}:root :where(.wp-block-categories){list-style-type:none;}:root :where(.wp-block-categories li){margin-bottom: 0.5rem;}:root :where(.wp-block-post-comments-form textarea, .wp-block-post-comments-form input){border-radius:.33rem}:root :where(.wp-block-loginout input){border-radius:.33rem;padding:calc(0.667em + 2px);border:1px solid #949494;}:root :where(.wp-block-post-terms .wp-block-post-terms__prefix){color: var(--wp--preset--color--contrast-2);}:root :where(.wp-block-query-title span){font-style: italic;}:root :where(.wp-block-quote :where(p)){margin-block-start:0;margin-block-end:calc(var(--wp--preset--spacing--10) + 0.5rem);}:root :where(.wp-block-quote :where(:last-child)){margin-block-end:0;}:root :where(.wp-block-quote.has-text-align-right.is-style-plain, .rtl .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-left)){border-width: 0 2px 0 0;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem);}:root :where(.wp-block-quote.has-text-align-left.is-style-plain, body:not(.rtl) .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-right)){border-width: 0 0 0 2px;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem)}:root :where(.wp-block-search .wp-block-search__input){border-radius:.33rem}:root :where(.wp-block-separator){}:root :where(.wp-block-separator:not(.is-style-wide):not(.is-style-dots):not(.alignwide):not(.alignfull)){width: var(--wp--preset--spacing--60)} </style> <style id='core-block-supports-inline-css'> .wp-container-core-buttons-is-layout-1{flex-wrap:nowrap;justify-content:center;} </style> <style id='wp-block-template-skip-link-inline-css'> .skip-link.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; } .skip-link.screen-reader-text:focus { background-color: #eee; clip: auto !important; clip-path: none; color: #444; display: block; font-size: 1em; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } </style> <link rel='stylesheet' id='dashicons-css' href='https://engineering.princeton.edu/wp-includes/css/dashicons.min.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='megamenu-google-fonts-css' href='//fonts.googleapis.com/css?family=Libre+Franklin%3A400%2C700&#038;ver=6.6.2' media='all' /> <link rel='stylesheet' id='megamenu-genericons-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/genericons/genericons/genericons.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome/css/font-awesome.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome5-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome5/css/all.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='megamenu-fontawesome6-css' href='https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/icons/fontawesome6/css/all.min.css?ver=2.4' media='all' /> <link rel='stylesheet' id='search-filter-plugin-styles-css' href='https://engineering.princeton.edu/wp-content/plugins/search-filter-pro/public/assets/css/search-filter.min.css?ver=2.5.17' media='all' /> <link rel='stylesheet' id='twentytwentyfour-style-css' href='https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/style.css?ver=6.6.2' media='all' /> <link rel='stylesheet' id='engineering-style-v2-css' href='https://engineering.princeton.edu/wp-content/themes/engineering/style.css?ver=1732641271' media='all' /> <script src="https://engineering.princeton.edu/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script src="https://engineering.princeton.edu/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script defer crossorigin="anonymous" src="https://kit.fontawesome.com/8299227453.js" id="font-awesome-official-js"></script> <!-- Google tag (gtag.js) snippet added by Site Kit --> <!-- Google Analytics snippet added by Site Kit --> <script src="https://www.googletagmanager.com/gtag/js?id=G-LKJSE43ML1" id="google_gtagjs-js" async></script> <script id="google_gtagjs-js-after"> window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} gtag("set","linker",{"domains":["engineering.princeton.edu"]}); gtag("js", new Date()); gtag("set", "developer_id.dZTNiMT", true); gtag("config", "G-LKJSE43ML1"); </script> <!-- End Google tag (gtag.js) snippet added by Site Kit --> <link rel="https://api.w.org/" href="https://engineering.princeton.edu/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://engineering.princeton.edu/wp-json/wp/v2/department/205" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://engineering.princeton.edu/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.6.2" /> <link rel='shortlink' href='https://engineering.princeton.edu/?p=205' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://engineering.princeton.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.princeton.edu%2Fdepartments%2Fchemical-and-biological-engineering" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://engineering.princeton.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fengineering.princeton.edu%2Fdepartments%2Fchemical-and-biological-engineering&#038;format=xml" /> <meta name="generator" content="Site Kit by Google 1.137.0" /> <script type='text/javascript'> document.addEventListener('DOMContentLoaded', function() { var globalStyles = document.getElementById('global-styles-inline-css'); if (globalStyles) { globalStyles.parentNode.removeChild(globalStyles); } }); </script> <!-- Google Tag Manager --> <script> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-MMWLX8H3'); </script> <!-- End Google Tag Manager --> <link rel="icon" href="/wp-content/themes/engineering/assets/images/favicon.ico" type="image/x-icon"><link rel="shortcut icon" href="/wp-content/themes/engineering/assets/images/favicon.ico" type="image/x-icon"><style id='wp-fonts-local'> @font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_400.woff2') format('woff2');} @font-face{font-family:Cardo;font-style:italic;font-weight:400;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_italic_400.woff2') format('woff2');} @font-face{font-family:Cardo;font-style:normal;font-weight:700;font-display:fallback;src:url('https://engineering.princeton.edu/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_700.woff2') format('woff2');} </style> <link rel="icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://engineering.princeton.edu/wp-content/uploads/2024/10/cropped-eng-favicon-270x270.png" /> <style type="text/css">/** Mega Menu CSS: fs **/</style> </head> <body class="department-template department-template-core-areas single single-department postid-205 wp-embed-responsive"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MMWLX8H3" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="wp-site-blocks"><header class="wp-block-template-part"> <div class="wp-block-group engineering-site-header is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group engineering-site-header__content"> <div class="engineering-modal" x-data="{ open: false, searchOpen: false }"> <div class="engineering-navbar"> <div class="nav-item menu-item"> <a tabindex="0" role="button" @click="open = !open" @keydown.enter="open = !open" :aria-expanded="open ? 'true' : 'false'" :class="{ 'is-active': open }" > <i class="fa-solid fa-bars"></i> <div class="name-and-description"> <p class="name"><span>Menu</span></p> </div> </a> </div> <h1 class="engineering-logo"> <a href="/">School of Engineering &amp; Applied Science</a> </h1> <div class="engineering-search"> <div class="nav-item search-item"> <a tabindex="0" role="button" @click="searchOpen = !searchOpen" @keydown.enter="searchOpen = !searchOpen" > <div class="name-and-description"> <p class="name"><span>Search</span></p> </div> <i class="fa-solid fa-magnifying-glass"></i> </a> </div> </div> </div> <nav id="engineering_menu" x-data="{ aboutOpen: false, deiOpen: false, undergradOpen: false, gradOpen: false, deptOpen: false, centersOpen: false, moreOpen: false }" x-show="open" @click.outside="open = false" @keydown.enter.outside="open = false" @keydown.esc.window="open = false" x-cloak x-transition > <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="aboutOpen = !aboutOpen" @keydown.enter="aboutOpen = !aboutOpen" :aria-expanded="aboutOpen ? 'true' : 'false'" :class="{ 'is-active': aboutOpen }" > <div class="name-and-description"> <p class="name"><span>About</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="aboutOpen" @click.outside="aboutOpen = false" @keydown.enter.outside="aboutOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">School Information</p> <div class="nav-item second-tier"> <a href="/about"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Your first points of contact with Princeton Engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/leadership-and-staff"> <div class="name-and-description"> <p class="name"><span>Leadership and Staff</span></p> <p class="description">Meet our administrative team</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/leadership-council"> <div class="name-and-description"> <p class="name"><span>Leadership Council</span></p> <p class="description"> Accomplished leaders who serve as advisors to the dean </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/strategic-planning"> <div class="name-and-description"> <p class="name"><span>Strategic Planning</span></p> <p class="description">A bold vision for the next decade</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/princeton-engineers"> <div class="name-and-description"> <p class="name"><span>Princeton Engineers</span></p> <p class="description">Celebrating our community</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/by-the-numbers"> <div class="name-and-description"> <p class="name"><span>By the Numbers</span></p> <p class="description">Brief facts about the school</p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">Information for</p> <div class="nav-item second-tier"> <a href="/about/prospective-students"> <div class="name-and-description"> <p class="name"><span>Prospective Students</span></p> <p class="description">Why become a Princeton Engineer</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/corporate-partners"> <div class="name-and-description"> <p class="name"><span>Corporate Partners</span></p> <p class="description"> Research partnerships, licensing, and recruiting </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/entrepreneurs"> <div class="name-and-description"> <p class="name"><span>Entrepreneurs</span></p> <p class="description"> Helping students turn inspiration into action </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/alumni"> <div class="name-and-description"> <p class="name"><span>Alumni</span></p> <p class="description"> Stay connected to Princeton Engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/visitors"> <div class="name-and-description"> <p class="name"><span>Visitors</span></p> <p class="description">Directions, and tour information</p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="deiOpen = !deiOpen" @keydown.enter="deiOpen = !deiOpen" :aria-expanded="deiOpen ? 'true' : 'false'" :class="{ 'is-active': deiOpen }" > <div class="name-and-description"> <p class="name"><span>Diversity &amp; Inclusion</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="deiOpen" @click.outside="deiOpen = false" @keydown.enter.outside="deiOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General Information</p> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion"> <div class="name-and-description"> <p class="name"><span>Diversity and Inclusion</span></p> <p class="description"> Our commitment to diversity and inclusion </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/dashboard"> <div class="name-and-description"> <p class="name"><span>Diversity Dashboard</span></p> <p class="description">Demographic information and trends</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-champions-program"> <div class="name-and-description"> <p class="name"><span>Diversity Champions Program</span></p> <p class="description"> Learn, share, and practice strategies related to diversity, equity, and inclusion </p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">Resources</p> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/programs"> <div class="name-and-description"> <p class="name"> <span> Diversity and Inclusion Programs and Resources</span> </p> <p class="description"> Fostering greater diversity in science and engineering </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/events"> <div class="name-and-description"> <p class="name"> <span>Diversity and Inclusion Events</span> </p> <p class="description"> Professional, social opportunities for the Princeton community </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/diversity-and-inclusion/newsletter-archive"> <div class="name-and-description"> <p class="name"><span>Newsletter Archive</span></p> <p class="description"> Quarterly publication of the Office of Diversity and Inclusion at Princeton Engineering </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="undergradOpen = !undergradOpen" @keydown.enter="undergradOpen = !undergradOpen" :aria-expanded="undergradOpen ? 'true' : 'false'" :class="{ 'is-active': undergradOpen }" > <div class="name-and-description"> <p class="name"><span>Undergraduate Studies</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="undergradOpen" @click.outside="undergradOpen = false" @keydown.enter.outside="undergradOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General information</p> <div class="nav-item second-tier"> <a href="/undergraduate-studies"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Rigorous foundation, hands-on experience, liberal arts context </p> </div> </a> </div> <div x-data="{ toursOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="toursOpen = !toursOpen" @keydown.enter="toursOpen = !toursOpen" :aria-expanded="toursOpen ? 'true' : 'false'" :class="{ 'is-active': toursOpen }" > <div class="name-and-description"> <p class="name"><span>Admission and Tours</span></p> <p class="description">Sign up for a tour</p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="toursOpen" @click.outside="toursOpen = false" @keydown.enter.outside="toursOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours"> <div class="name-and-description"> <p class="name"> <span>Admissions &amp; Tours Overview</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours/prospective-students-faq" > <div class="name-and-description"> <p class="name"><span>Prospective Students FAQ</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/admission-and-tours/high-school-guidance" > <div class="name-and-description"> <p class="name"> <span>Guidance for high school students</span> </p> </div> </a> </div> </section> </div> <div x-data="{ academicsOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="academicsOpen = !academicsOpen" @keydown.enter="academicsOpen = !academicsOpen" :aria-expanded="academicsOpen ? 'true' : 'false'" :class="{ 'is-active': academicsOpen }" > <div class="name-and-description"> <p class="name"><span>Academics</span></p> <p class="description"> Six departments offer BSE degrees; one also offers A.B </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="academicsOpen" @click.outside="academicsOpen = false" @keydown.enter.outside="academicsOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/concentrations"> <div class="name-and-description"> <p class="name"><span>Academics Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/abet-accreditation"> <div class="name-and-description"> <p class="name"><span>ABET Accreditation</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/certificate-programs"> <div class="name-and-description"> <p class="name"><span>Certificate programs</span></p> </div> </a> </div> </section> </div> </div> <div class="column"> <p class="nav-items-group-title">For current students</p> <div x-data="{ advisingOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="advisingOpen = !advisingOpen" @keydown.enter="advisingOpen = !advisingOpen" :aria-expanded="advisingOpen ? 'true' : 'false'" :class="{ 'is-active': advisingOpen }" > <div class="name-and-description"> <p class="name"><span>Advising</span></p> <p class="description">We are here to help</p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="advisingOpen" @click.outside="advisingOpen = false" @keydown.enter.outside="advisingOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/undergraduate-affairs-office" ><div class="name-and-description"> <p class="name"><span>Advising Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/first-year-advising" ><div class="name-and-description"> <p class="name"><span>First-Year Advising</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/first-year-advising/degree-requirements" ><div class="name-and-description"> <p class="name"><span>Degree Requirements</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/first-year-advising/first-year-faq" ><div class="name-and-description"> <p class="name"> <span> Q and A About the First Year in Engineering</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/sophomore-senior-advising" ><div class="name-and-description"> <p class="name"><span>Sophomore-Senior Advising</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/rising-sophomore-faq" ><div class="name-and-description"> <p class="name"><span>Rising Sophomore FAQ</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/senior-thesis-independent-work-funding" ><div class="name-and-description"> <p class="name"> <span>Senior Thesis/Independent Work Funding</span> </p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/summer-course-information" ><div class="name-and-description"> <p class="name"><span>Summer Course Information</span></p> </div> </a> </div> <div class="nav-item fourth-tier"> <a href="/undergraduate-studies/sophomore-senior-advising/study-abroad" ><div class="name-and-description"> <p class="name"><span>Study Abroad</span></p> </div> </a> </div> </section> </div> <div x-data="{ careersOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="careersOpen = !careersOpen" @keydown.enter="careersOpen = !careersOpen" :aria-expanded="careersOpen ? 'true' : 'false'" :class="{ 'is-active': careersOpen }" > <div class="name-and-description"> <p class="name"><span>Careers</span></p> <p class="description"> What do engineering students go on to do? </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="careersOpen" @click.outside="careersOpen = false" @keydown.enter.outside="careersOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/undergraduate-studies/careers/" ><div class="name-and-description"> <p class="name"><span>Careers Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/undergraduate-studies/careers/science-and-technology-fair" ><div class="name-and-description"> <p class="name"> <span>Science and Technology Job Fair</span> </p> </div> </a> </div> </section> </div> <div class="nav-item second-tier"> <a href="/undergraduate-studies/student-organizations"> <div class="name-and-description"> <p class="name"><span>Student Organizations</span></p> <p class="description"> Sixteen groups create community around special interests </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/undergraduate-studies/social-life"> <div class="name-and-description"> <p class="name"><span>Social Life</span></p> <p class="description"> Life outside the EQuad is key to your growth </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="gradOpen = !gradOpen" @keydown.enter="gradOpen = !gradOpen" :aria-expanded="gradOpen ? 'true' : 'false'" :class="{ 'is-active': gradOpen }" > <div class="name-and-description"> <p class="name"><span>Graduate</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="gradOpen" @click.outside="gradOpen = false" @keydown.enter.outside="gradOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">General information</p> <div class="nav-item second-tier"> <a href="/graduate-studies/prospective-students"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> <p class="description"> Learn to push the boundaries of your field and lead projects </p> </div> </a> </div> <div x-data="{ pathwaysOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="pathwaysOpen = !pathwaysOpen" @keydown.enter="pathwaysOpen = !pathwaysOpen" :aria-expanded="pathwaysOpen ? 'true' : 'false'" :class="{ 'is-active': pathwaysOpen }" > <div class="name-and-description"> <p class="name"><span>Academic Pathways</span></p> <p class="description"> Meet faculty and grad students, learn about applying </p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="pathwaysOpen" @click.outside="pathwaysOpen = false" @keydown.enter.outside="pathwaysOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/graduate-studies/academic-pathways/prospective-graduate-students" > <div class="name-and-description"> <p class="name"> <span> Pathways to Graduate School for Rising College Seniors</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/graduate-studies/academic-pathways/prospective-faculty" > <div class="name-and-description"> <p class="name"> <span> Princeton Pathway into the Academy Program</span> </p> </div> </a> </div> </section> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/degrees-and-research"> <div class="name-and-description"> <p class="name"><span>Degrees and Research</span></p> <p class="description"> Doctoral programs in six departments cover 40 specialties </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/princeton-engineers"> <div class="name-and-description"> <p class="name"><span>Princeton Engineers</span></p> <p class="description"> Profiles of current graduate students </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/funding"> <div class="name-and-description"> <p class="name"><span>Funding</span></p> <p class="description"> Every Ph.D. student receives full funding </p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">For prospective students</p> <div class="nav-item second-tier"> <a href="/graduate-studies/student-organizations"> <div class="name-and-description"> <p class="name"><span>Student Organizations</span></p> <p class="description"> Several groups cater specifically to engineering grad students </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/social-life"> <div class="name-and-description"> <p class="name"><span>Social Life</span></p> <p class="description"> An array of opportunities, plus proximity to NYC, Philly </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/careers"> <div class="name-and-description"> <p class="name"><span>Careers</span></p> <p class="description">Many paths beyond grad school</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/faq"> <div class="name-and-description"> <p class="name"><span>FAQ</span></p> <p class="description">Your questions answered</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/graduate-studies/resources-for-current-students"> <div class="name-and-description"> <p class="name"> <span>Resources for Current Students</span> </p> <p class="description"> Programs to support your academic goals </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="deptOpen = !deptOpen" @keydown.enter="deptOpen = !deptOpen" :aria-expanded="deptOpen ? 'true' : 'false'" :class="{ 'is-active': deptOpen }" > <div class="name-and-description"> <p class="name"><span>Departments</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="deptOpen" @click.outside="deptOpen = false" @keydown.enter.outside="deptOpen = false" x-transition > <div class="column"> <div class="nav-item second-tier"> <a href="/departments/chemical-and-biological-engineering"> <div class="name-and-description"> <p class="name"> <span>Chemical and Biological Engineering</span> </p> <p class="description"> Advancing human health, energy, materials science, and industrial processes </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/civil-and-environmental-engineering"> <div class="name-and-description"> <p class="name"> <span>Civil and Environmental Engineering</span> </p> <p class="description"> Fundamental insights into the built and natural environments, and interactions between the two </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/computer-science"> <div class="name-and-description"> <p class="name"><span>Computer Science</span></p> <p class="description"> Leading the field through foundational theory, applications, and societal impact </p> </div> </a> </div> </div> <div class="column"> <div class="nav-item second-tier"> <a href="/departments/electrical-computer-engineering"> <div class="name-and-description"> <p class="name"> <span>Electrical and Computer Engineering</span> </p> <p class="description"> Improving human health, energy systems, computing and communications, and security </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/mechanical-and-aerospace-engineering"> <div class="name-and-description"> <p class="name"> <span>Mechanical and Aerospace Engineering</span> </p> <p class="description"> Solving problems in energy, combustion, fluids, lasers, materials science, robotics and control systems, and nuclear security </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/departments/operations-research-and-financial-engineering" > <div class="name-and-description"> <p class="name"> <span> Operations Research and Financial Engineering</span> </p> <p class="description"> Developing mathematical and computational tools for making decisions under uncertainty </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="centersOpen = !centersOpen" @keydown.enter="centersOpen = !centersOpen" :aria-expanded="centersOpen ? 'true' : 'false'" :class="{ 'is-active': centersOpen }" > <div class="name-and-description"> <p class="name"><span>Centers &amp; Initiatives</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="centersOpen" @click.outside="centersOpen = false" @keydown.enter.outside="centersOpen = false" x-transition > <div class="column"> <div class="nav-item second-tier"> <a href="/centers/aiprinceton"> <div class="name-and-description"> <p class="name"><span>AI at Princeton</span></p> <p class="description"> Nimble, high-intensity research teams across engineering, science, social science, and humanities </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/acee"> <div class="name-and-description"> <p class="name"> <span> Andlinger Center for Energy and the Environment</span > </p> <p class="description"> Decarbonizing the world while increasing energy access worldwide </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/citp"> <div class="name-and-description"> <p class="name"> <span>Center for Information Technology Policy</span> </p> <p class="description"> Promoting informed discussion of digital technologies and their role in society </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/center-decentralization-power-through-blockchain-technology-decenter" > <div class="name-and-description"> <p class="name"><span>DeCenter</span></p> <p class="description"> Exploring a wide range of decentralized technologies and their implications for society </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/keller-center"> <div class="name-and-description"> <p class="name"> <span> Keller Center for Innovation in Engineering Education</span > </p> <p class="description"> Enabling students and faculty across Princeton to realize their aspirations for addressing societal challenges </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/omenn-darling-bioengineering-institute"> <div class="name-and-description"> <p class="name"> <span>Omenn-Darling Bioengineering Institute</span> </p> <p class="description"> Interdisciplinary research on cellular, device and computational bioengineering </p> </div> </a> </div> </div> <div class="column"> <div class="nav-item second-tier"> <a href="/centers/metropolis-initiative"> <div class="name-and-description"> <p class="name"><span>Metropolis Initiative</span></p> <p class="description"> Innovations to make cities more sustainable, resilient, and equitable </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/nextg"> <div class="name-and-description"> <p class="name"><span>NextG</span></p> <p class="description"> Creating the intelligent networks of the future </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/pmi"> <div class="name-and-description"> <p class="name"><span>Princeton Materials Institute</span></p> <p class="description"> Multidisciplinary research driving advances in materials science and photonics </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/princeton-quantum-initiative"> <div class="name-and-description"> <p class="name"><span>Princeton Quantum Initiative</span></p> <p class="description"> Taking a ‘full-stack’ approach to advancing quantum information science </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/centers/robotics-center"> <div class="name-and-description"> <p class="name"><span>Princeton Robotics</span></p> <p class="description"> Advancing innovative, safe, and ethical use of robotic systems </p> </div> </a> </div> </div> </section> <div class="nav-item first-tier"> <a tabindex="0" role="button" @click="moreOpen = !moreOpen" @keydown.enter="moreOpen = !moreOpen" :aria-expanded="moreOpen ? 'true' : 'false'" :class="{ 'is-active': moreOpen }" > <div class="name-and-description"> <p class="name"><span>More</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="moreOpen" @click.outside="moreOpen = false" @keydown.enter.outside="moreOpen = false" x-transition > <div class="column"> <p class="nav-items-group-title">Resources</p> <div class="nav-item second-tier"> <a href="/resources"> <div class="name-and-description"> <p class="name"><span>Resources</span></p> <p class="description"> Tools and policies for faculty and staff </p> </div> </a> </div> <div x-data="{ policyOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="policyOpen = !policyOpen" @keydown.enter="policyOpen = !policyOpen" :aria-expanded="policyOpen ? 'true' : 'false'" :class="{ 'is-active': policyOpen }" > <div class="name-and-description"> <p class="name"><span>Policies and Procedures</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="policyOpen" @click.outside="policyOpen = false" @keydown.enter.outside="policyOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures"> <div class="name-and-description"> <p class="name"><span>Policy Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/poster-policy"> <div class="name-and-description"> <p class="name"><span>Poster Policy</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/resource-recovery" ><div class="name-and-description"> <p class="name"><span>Resource Recovery Program</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/gas-cylinders"> <div class="name-and-description"> <p class="name"><span>Gas Cylinders</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/lab-coats"> <div class="name-and-description"> <p class="name"><span>Lab Coats</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/machine-shop"> <div class="name-and-description"> <p class="name"><span>Machine Shop Request Form</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/mailroom-shipping-receiving" > <div class="name-and-description"> <p class="name"> <span>Mailroom, Shipping and Receiving</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/nitrogen-policy"> <div class="name-and-description"> <p class="name"><span>Nitrogen Policy</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/pet-policy"> <div class="name-and-description"> <p class="name"><span>Pet Policy and Guidelines</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/stockroom"> <div class="name-and-description"> <p class="name"><span>Stockroom</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/policies-and-procedures/seas-vehicles"> <div class="name-and-description"> <p class="name"><span>Vehicle Reservations</span></p> </div> </a> </div> </section> </div> <div x-data="{ safetyOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="safetyOpen = !safetyOpen" @keydown.enter="safetyOpen = !safetyOpen" :aria-expanded="safetyOpen ? 'true' : 'false'" :class="{ 'is-active': safetyOpen }" > <div class="name-and-description"> <p class="name"><span>Safety</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="safetyOpen" @click.outside="safetyOpen = false" @keydown.enter.outside="safetyOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/resources/safety/general-safety"> <div class="name-and-description"> <p class="name"><span>Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/roles-and-responsibilities"> <div class="name-and-description"> <p class="name"> <span>Roles and Responsibilities</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/emergency-response"> <div class="name-and-description"> <p class="name"><span>Emergency Response</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/illness-injury-reporting"> <div class="name-and-description"> <p class="name"> <span>Illness and Injury Reporting</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/general-safety"> <div class="name-and-description"> <p class="name"><span>General Safety</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/dale-grieb-safety-award" ><div class="name-and-description"> <p class="name"><span>Dale Grieb Safety Award</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/safety/safety-handbook"> <div class="name-and-description"> <p class="name"><span>Safety Handbook</span></p> </div> </a> </div> </section> </div> <div x-data="{ fundingOpen: false}" x-cloak> <div class="nav-item second-tier"> <a tabindex="0" role="button" @click="fundingOpen = !fundingOpen" @keydown.enter="fundingOpen = !fundingOpen" :aria-expanded="fundingOpen ? 'true' : 'false'" :class="{ 'is-active': fundingOpen }" > <div class="name-and-description"> <p class="name"><span>Funding</span></p> </div> <i class="fa-solid fa-chevron-right"></i> </a> </div> <section x-show="fundingOpen" @click.outside="fundingOpen = false" @keydown.enter.outside="fundingOpen = false" x-transition > <div class="nav-item third-tier"> <a href="/funding/"> <div class="name-and-description"> <p class="name"><span>Funding Overview</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/funding/funding-guide-engineering-faculty" > <div class="name-and-description"> <p class="name"> <span>Funding Guide for Engineering Faculty</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/innovation-grants"> <div class="name-and-description"> <p class="name"><span>Innovation Grants</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/seed-grants"> <div class="name-and-description"> <p class="name"><span>Seed Grants</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/resources/funding/william-pierson-field-fund-visiting-lecturers" > <div class="name-and-description"> <p class="name"> <span> William Pierson Field Fund for Visiting Lecturers</span > </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/travel-funds"> <div class="name-and-description"> <p class="name"><span>Travel funds</span></p> </div> </a> </div> <div class="nav-item third-tier"> <a href="https://docs.google.com/forms/d/e/1FAIpQLSefr0g-gDTaZMq3yJHEOmCg9WiOKZxioUE9EeYlfSKQhRfnmQ/viewform" > <div class="name-and-description"> <p class="name"> <span>Diversity and Inclusion Initiatives</span> </p> </div> </a> </div> <div class="nav-item third-tier"> <a href="/funding/william-r-kenan-jr-visiting-professorship-for-distinguished-teaching" > <div class="name-and-description"> <p class="name"> <span> William R. Kenan, Jr. Visiting Professorship for Distinguished Teaching</span > </p> </div> </a> </div> </section> </div> <p class="nav-items-group-title">Quick links</p> <div class="nav-item second-tier"> <a href="/resources/faculty-directory"> <div class="name-and-description"> <p class="name"><span>Faculty Directory</span></p> <p class="description">Browse and filter our faculty list</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/jobs"> <div class="name-and-description"> <p class="name"><span>Jobs</span></p> <p class="description"> See open faculty positions across engineering and applied science </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about"> <div class="name-and-description"> <p class="name"><span>Contact</span></p> <p class="description"> A dean’s welcome and key points of contact </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/about/visitors"> <div class="name-and-description"> <p class="name"><span>Visit</span></p> <p class="description">Directions and a map</p> </div> </a> </div> </div> <div class="column"> <p class="nav-items-group-title">News</p> <div class="nav-item second-tier"> <a href="/events"> <div class="name-and-description"> <p class="name"><span>Events</span></p> <p class="description">Upcoming events across the school</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news"> <div class="name-and-description"> <p class="name"><span>News</span></p> <p class="description"> A filterable listing of news and features </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/podcasts"> <div class="name-and-description"> <p class="name"><span>Podcasts</span></p> <p class="description"> A deeper look at the research from our faculty, students and alumni </p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news/equad-magazine"> <div class="name-and-description"> <p class="name"><span>EQuad Magazine</span></p> <p class="description">Our semiannual news magazine</p> </div> </a> </div> <div class="nav-item second-tier"> <a href="/news/media-inquiries"> <div class="name-and-description"> <p class="name"><span>Media Inquiries</span></p> <p class="description">Information for journalists</p> </div> </a> </div> </div> </section> <section class="social-media"> <ul> <li> <a href="https://www.linkedin.com/school/princetonengineering" ><i class="fa-brands fa-linkedin"></i ></a> </li> <li> <a href="https://www.instagram.com/eprinceton" ><i class="fa-brands fa-instagram"></i ></a> </li> <li> <a href="https://www.x.com/eprinceton" ><i class="fa-brands fa-x-twitter"></i ></a> </li> <li> <a href="https://www.facebook.com/princetonengineering" ><i class="fa-brands fa-facebook"></i ></a> </li> <li> <a href="https://www.youtube.com/princetonengineering" ><i class="fa-brands fa-youtube"></i ></a> </li> </ul> </section> </nav> <section class="engineering-search-modal is-layout-flow wp-block-group-is-layout-flow" x-show="searchOpen" @click.outside="searchOpen = false" @keydown.enter.outside="searchOpen = false" @keydown.esc.window="searchOpen = false" x-transition x-cloak > <form role="search" method="get" class="search-form" action="https://engineering.princeton.edu/"> <label><br /> <span class="screen-reader-text">Search for:</span><br /> <input type="search" class="search-field" placeholder="Search &hellip;" value="" name="s" /><br /> </label><br /> <input type="submit" class="search-submit" value="Search" /><br /> </form> </section> <div class="engineering-modal-bg" x-show="open | searchOpen" x-transition x-cloak ></div> </div> </div> </div> </header> <main class="wp-block-group department-center-page is-layout-flow wp-block-group-is-layout-flow"> <article class="wp-block-group department-center is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group department-center__inner is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group department-center__header is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group department-center__header__content is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group department-center__header__info is-layout-flow wp-block-group-is-layout-flow"></div> </div> <figure class="department-center__featured-image wp-block-post-featured-image"><img width="1200" height="675" src="https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Professor and student work together in lab setting." style="object-fit:cover;" decoding="async" fetchpriority="high" srcset="https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2.jpg 1200w, https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2-300x169.jpg 300w, https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2-1024x576.jpg 1024w, https://engineering.princeton.edu/wp-content/uploads/2021/08/chemical-and-biological-engineering-2-768x432.jpg 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure> </div> <nav class="wp-block-group breadcrumbs is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group breadcrumbs__inner is-layout-flow wp-block-group-is-layout-flow"> <p> <span><span><a href="https://engineering.princeton.edu/">Home</a></span> » <span class="breadcrumb_last" aria-current="page">Chemical and Biological Engineering</span></span></p> </div> </nav> <div class="wp-block-group department-center__content is-layout-flow wp-block-group-is-layout-flow"> <h1 class="department-center__title not-prose wp-block-post-title">Chemical and Biological Engineering</h1> <div class="entry-content wp-block-post-content is-layout-flow wp-block-post-content-is-layout-flow"> <p>Chemical and biological engineering addresses a range of problems in human health, energy, materials science, and industrial processes. Areas of excellence at Princeton include: applied and computational mathematics, bioengineering, environmental and energy science and technology, materials synthesis and processing, process engineering and science, thermodynamics and statistical mechanics, and transport phenomena.</p> <div class="wp-block-buttons is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-1 wp-block-buttons-is-layout-flex"> <div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://cbe.princeton.edu" target="_blank" rel="noreferrer noopener nofollow">Visit the department website</a></div> </div> <section class="seas-section department-section related-programs not-prose"> <div class="seas-section__content"> <header class="seas-section__header"> <h2 class="seas-section__title">Program Information</h2> </header><!-- .seas-section__header --> <div class="cards program-cards"> <article class="card program-card"> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Undergraduate</h3> <ul class="card__links"> <li> <a href="https://cbe.princeton.edu/undergraduate/courses"> Courses <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="https://cbe.princeton.edu/undergraduate/path-graduation"> Path to Graduation <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> </ul> </div><!-- .card__info --> </div> </article><!-- .card --> <article class="card program-card"> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Graduate</h3> <ul class="card__links"> <li> <a href="https://gradschool.princeton.edu/admission/applying-princeton"> Admission <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="https://gradschool.princeton.edu/academics/fields-study/chemical-and-biological-engineering"> Program <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="https://gradschool.princeton.edu/life-princeton"> Life at Princeton <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> </ul> </div><!-- .card__info --> </div> </article><!-- .card --> <article class="card program-card"> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Research</h3> <ul class="card__links"> <li> <a href="https://cbe.princeton.edu/research"> Areas <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="https://cbe.princeton.edu/people/faculty"> Faculty <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="https://cbe.princeton.edu/news"> Highlights <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> </ul> </div><!-- .card__info --> </div> </article><!-- .card --> <article class="card program-card"> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Diversity, Equity, and Inclusion</h3> <ul class="card__links"> <li> <a href="/diversity-and-inclusion/programs"> Program and Resources <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="/diversity-and-inclusion/events"> Events <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> <li> <a href="/diversity-and-inclusion/newsletter-archive"> Newsletter <i class="fa-regular fa-arrow-up-right-from-square"></i> </a> </li> </ul> </div><!-- .card__info --> </div> </article><!-- .card --> </div><!-- .cards --> </div><!-- .seas-section__content --> </section><!-- .seas-section --> <section class="has_card_image seas-section news-section not-prose"> <div class="seas-section__content"> <header class="seas-section__header"> <h2 class="seas-section__title">News</h2> <p class="seas-section__description"></p> </header><!-- .seas-section__header --> <div class="cards news-cards"> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/10/31/these-little-robots-two-heads-are-better-one" aria-label="For these little robots, two heads are better than one"></a> <figure class="card__figure"> <img decoding="async" width="1600" height="1000" src="https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Two small rectangular robots connected by a flexible tether; three researchers watch in background." srcset="https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1.jpg 1600w, https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1-300x188.jpg 300w, https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1-1024x640.jpg 1024w, https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1-768x480.jpg 768w, https://engineering.princeton.edu/wp-content/uploads/2024/10/PTBrunLab_101724_0030-1920x1200-1-1536x960.jpg 1536w" sizes="(max-width: 1600px) 100vw, 1600px" style="object-position:50% 65%" /><figcaption class="featured-image-caption"> <i class="fa fa-camera" aria-hidden="true"></i> The robots have no internal controls. Guidance depends on a flexible tether. Photos by Sameer A. Khan/Fotobuddy</figcaption> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">For these little robots, two heads are better than one</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/09/27/award-excellence-honors-graduate-student-achievement-5" aria-label="Award for Excellence honors graduate student achievement"></a> <figure class="card__figure"> <img decoding="async" width="1568" height="882" src="https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-1568x882.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Card with words: Graduate Student Award for Excellence." srcset="https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-1568x882.jpeg 1568w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-300x169.jpeg 300w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-1024x576.jpeg 1024w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-768x432.jpeg 768w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-1536x864.jpeg 1536w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence-800x450.jpeg 800w, https://engineering.princeton.edu/wp-content/uploads/2021/12/Graduate-Student-Award-for-Excellence.jpeg 1600w" sizes="(max-width: 1568px) 100vw, 1568px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Award for Excellence honors graduate student achievement</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/09/18/initiative-aims-make-princeton-leader-ai-accelerated-engineering" aria-label="Initiative aims to make Princeton a leader in AI accelerated engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="1568" height="882" src="https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-1568x882.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Man speaks near podium while pointing at a scientific graphics on a screen." srcset="https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-1568x882.jpg 1568w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-300x169.jpg 300w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-1024x576.jpg 1024w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-768x432.jpg 768w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-1536x864.jpg 1536w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1-800x450.jpg 800w, https://engineering.princeton.edu/wp-content/uploads/2024/09/AI-AcceleratingInvention_082924_0122-1600x900-1.jpg 1600w" sizes="(max-width: 1568px) 100vw, 1568px" /><figcaption class="featured-image-caption"> <i class="fa fa-camera" aria-hidden="true"></i> Egemen Kolemen describes how he has used artificial intelligence to increase stability in the reactions that power nuclear fusion as a source of clean electricity. (Photos by David Dooley/Fotobuddy</figcaption> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Initiative aims to make Princeton a leader in AI accelerated engineering</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/09/09/researchers-bend-dna-strands-light-revealing-new-way-study-genome" aria-label="Researchers bend DNA strands with light, revealing a new way to study the genome"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="1568" height="882" src="https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-1568x882.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="false color microscope image of a cell nucleus with chromosomes highlighted." srcset="https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-1568x882.jpg 1568w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-300x169.jpg 300w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-1024x576.jpg 1024w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-768x432.jpg 768w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-1536x864.jpg 1536w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing-800x450.jpg 800w, https://engineering.princeton.edu/wp-content/uploads/2024/09/human-cell-dividing.jpg 1600w" sizes="(max-width: 1568px) 100vw, 1568px" /><figcaption class="featured-image-caption"> <i class="fa fa-camera" aria-hidden="true"></i> Researchers have developed a tool that can bend DNA strands using light. The work represents a new way to probe the genome. Shown here, from an unrelated study, are chromosomes (blue) inside a human cell nucleus. Image by Steve Mabon and Tom Misteli, NCI Center for Cancer Research, National Cancer Institute, National Institutes of Health</figcaption> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Researchers bend DNA strands with light, revealing a new way to study the genome</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/07/17/transforming-troublesome-seaweed-feedstock-future" aria-label="Transforming troublesome seaweed into a feedstock of the future"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="1568" height="882" src="https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-1568x882.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Floating seaweed in the ocean." srcset="https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-1568x882.jpg 1568w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-300x169.jpg 300w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-1024x576.jpg 1024w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-768x432.jpg 768w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-1536x864.jpg 1536w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-2048x1152.jpg 2048w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-800x450.jpg 800w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Floating-Sargassum-in-Puerto-Rico-by-Loretta-Roberson_16x9-scaled.jpg 1600w" sizes="(max-width: 1568px) 100vw, 1568px" /><figcaption class="featured-image-caption"> <i class="fa fa-camera" aria-hidden="true"></i> Floating Sargassum in Puerto Rico (photo courtesy of Loretta Roberson of Marine Biological Laboratory).</figcaption> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Transforming troublesome seaweed into a feedstock of the future</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card news-card"> <a class="card__link" href="https://engineering.princeton.edu/news/2024/07/10/better-mixing-leads-faster-reactions-key-chemicals" aria-label="Better mixing leads to faster reactions for key chemicals"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="1440" height="809" src="https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="False color rendering of turbulent flow." srcset="https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1.png 1440w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1-300x169.png 300w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1-1024x575.png 1024w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1-768x431.png 768w, https://engineering.princeton.edu/wp-content/uploads/2024/07/Datta-mixing-16x9-1-800x450.png 800w" sizes="(max-width: 1440px) 100vw, 1440px" /><figcaption class="featured-image-caption"> <i class="fa fa-camera" aria-hidden="true"></i> Princeton Engineering researchers found a way to rapidly mix liquids in 3D porous environments where there is typically not enough space for turbulence to develop. Image courtesy of the researchers.</figcaption> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Better mixing leads to faster reactions for key chemicals</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> </div><!-- .seas-section__content --> </section><!-- .seas-section --> <section class="seas-section events-section not-prose"> <div class="seas-section__content"> <header class="seas-section__header"> <h2 class="seas-section__title">Events</h2> <p class="seas-section__description"></p> </header><!-- .seas-section__header --> <div class="cards events-cards"> <article class="card event-card"> <a class="card__link" href="https://engineering.princeton.edu/events/understanding-and-engineering-catalytic-materials-using-nanocrystal-precursors" aria-label="Understanding and Engineering Catalytic Materials Using Nanocrystal Precursors"></a> <div class="card__content"> <div class="card__meta"> <div class="card__date-and-time"> <p class="card__date"><i class="far fa-calendar"></i> December 11</p> <p class="card__time"><i class="far fa-clock"></i> 4:00 pm</p> </div><!-- .card__date-and-time --> </div><!-- .card__meta --> <div class="card__info"> <h3 class="card__title">Understanding and Engineering Catalytic Materials Using Nanocrystal Precursors</h3> </div> </div><!-- .card__content --> </article><!-- .card --> <article class="card event-card"> <a class="card__link" href="https://engineering.princeton.edu/events/single-atom-alloy-catalysts-born-vacuum-tested-reactors-and-understood-silico" aria-label="Single-atom Alloy Catalysts: Born in a Vacuum, Tested in Reactors, and Understood in Silico"></a> <div class="card__content"> <div class="card__meta"> <div class="card__date-and-time"> <p class="card__date"><i class="far fa-calendar"></i> January 23</p> <p class="card__time"><i class="far fa-clock"></i> 4:00 pm</p> </div><!-- .card__date-and-time --> </div><!-- .card__meta --> <div class="card__info"> <h3 class="card__title">Single-atom Alloy Catalysts: Born in a Vacuum, Tested in Reactors, and Understood in Silico</h3> </div> </div><!-- .card__content --> </article><!-- .card --> </div><!-- .cards --> </div><!-- .seas-section__content --> </section><!-- .seas-section --> <section class="seas-section faculty-section uses-card-images not-prose"> <div class="seas-section__content"> <header class="seas-section__header"> <h2 class="seas-section__title">Faculty</h2> <p class="seas-section__description"></p> </header> <div class="cards faculty-cards"> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/jose-avalos" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/07/jose_avalos.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/07/jose_avalos.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/07/jose_avalos-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/07/jose_avalos-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">José Avalos</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/clifford-brangwynne" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/clifford_brangwynne.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/clifford_brangwynne.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/clifford_brangwynne-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/clifford_brangwynne-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Clifford Brangwynne</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/pierre-thomas-brun" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/pierre-thomas_brun.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/pierre-thomas_brun.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/pierre-thomas_brun-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/pierre-thomas_brun-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Pierre-Thomas Brun</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/mark-brynildsen" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/mark_brynildsen.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/mark_brynildsen.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/mark_brynildsen-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/mark_brynildsen-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Mark Brynildsen</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/jonathan-conway" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2021/08/jonathan_conway.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2021/08/jonathan_conway.png 500w, https://engineering.princeton.edu/wp-content/uploads/2021/08/jonathan_conway-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2021/08/jonathan_conway-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Jonathan Conway</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/emily-davidson" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2021/02/emily_davidson.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2021/02/emily_davidson.png 500w, https://engineering.princeton.edu/wp-content/uploads/2021/02/emily_davidson-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2021/02/emily_davidson-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Emily Davidson</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/pablo-debenedetti" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/pablo_debenedetti.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/pablo_debenedetti.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/pablo_debenedetti-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/pablo_debenedetti-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Pablo Debenedetti</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/dimitrios-fraggedakis" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2024/08/dimitrios-fraggedakis.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Portrait of Dimitrios Fraggedakis" srcset="https://engineering.princeton.edu/wp-content/uploads/2024/08/dimitrios-fraggedakis.png 500w, https://engineering.princeton.edu/wp-content/uploads/2024/08/dimitrios-fraggedakis-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2024/08/dimitrios-fraggedakis-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Dimitrios Fraggedakis</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/david-graves" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2021/02/david_graves.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2021/02/david_graves.png 500w, https://engineering.princeton.edu/wp-content/uploads/2021/02/david_graves-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2021/02/david_graves-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">David Graves</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/jerelle-joseph" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2023/02/jerelle_joseph.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2023/02/jerelle_joseph.png 500w, https://engineering.princeton.edu/wp-content/uploads/2023/02/jerelle_joseph-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2023/02/jerelle_joseph-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Jerelle Joseph</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/a-james-link" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/a_james_link.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/a_james_link.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/a_james_link-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/a_james_link-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">A. James Link</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/lynn-loo" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/lynn_loo.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/lynn_loo.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/lynn_loo-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/lynn_loo-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Lynn Loo</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/marcella-lusardi" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2022/08/marcella_lusardi.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2022/08/marcella_lusardi.png 500w, https://engineering.princeton.edu/wp-content/uploads/2022/08/marcella_lusardi-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2022/08/marcella_lusardi-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Marcella Lusardi</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/christos-maravelias" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/10/christos_maravelias.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/10/christos_maravelias.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/10/christos_maravelias-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/10/christos_maravelias-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Christos Maravelias</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/celeste-nelson" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/celeste_nelson.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/celeste_nelson.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/celeste_nelson-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/celeste_nelson-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Celeste Nelson</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/athanassios-panagiotopoulos" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/athanassios_panagiotopoulos.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/athanassios_panagiotopoulos.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/athanassios_panagiotopoulos-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/athanassios_panagiotopoulos-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Athanassios Panagiotopoulos</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/rodney-priestley" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/rodney_priestley.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/rodney_priestley.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/rodney_priestley-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/rodney_priestley-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Rodney Priestley</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/richard-a-register" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/richard_a_register.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/richard_a_register.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/richard_a_register-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/richard_a_register-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Richard A. Register</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/andrew-rosen" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2024/08/Rosen-portrait.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Portrait of Andrew Rosen" srcset="https://engineering.princeton.edu/wp-content/uploads/2024/08/Rosen-portrait.png 500w, https://engineering.princeton.edu/wp-content/uploads/2024/08/Rosen-portrait-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2024/08/Rosen-portrait-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Andrew S. Rosen</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/michele-l-sarazen" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/michele_l_sarazen.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/michele_l_sarazen.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/michele_l_sarazen-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/michele_l_sarazen-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Michele L. Sarazen</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/sankaran-sundaresan" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/sankaran_sundaresan.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/sankaran_sundaresan.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/sankaran_sundaresan-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/sankaran_sundaresan-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Sankaran Sundaresan</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> <article class="card faculty-card"> <a class="card__link" href="https://engineering.princeton.edu/faculty/michael-a-webb" aria-label="Chemical and Biological Engineering"></a> <figure class="card__figure"> <img loading="lazy" decoding="async" width="500" height="500" src="https://engineering.princeton.edu/wp-content/uploads/2020/06/Michael-A-Webb.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" srcset="https://engineering.princeton.edu/wp-content/uploads/2020/06/Michael-A-Webb.png 500w, https://engineering.princeton.edu/wp-content/uploads/2020/06/Michael-A-Webb-300x300.png 300w, https://engineering.princeton.edu/wp-content/uploads/2020/06/Michael-A-Webb-150x150.png 150w" sizes="(max-width: 500px) 100vw, 500px" /> <div class="card-border"></div> </figure> <div class="card__content"> <div class="card__info"> <h3 class="card__title">Michael A. Webb</h3> </div><!-- .card__info --> </div><!-- .card__content --> </article><!-- .card --> </div> </section> </div> </div> </div> </article> </main> <footer class="wp-block-template-part"> <div class="wp-block-group engineering-site-footer is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group engineering-site-footer__content is-layout-flow wp-block-group-is-layout-flow"> <div class="wp-block-group logos-and-address"> <h3 class="engineering-logo is-layout-flow wp-block-group-is-layout-flow"> <a href="/">School of Engineering &amp; Applied Science</a> </h3> <div class="wp-block-group engineering-address is-layout-flow wp-block-group-is-layout-flow"> <address> <p>School of Engineering and Applied Science</p> <p>Princeton, New Jersey 08544</p> </address> </div> <div class="wp-block-group engineering-newsletter is-layout-flow wp-block-group-is-layout-flow"> <div id="mc_embed_shell" style="width: 100%"> <link href="//cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css" /> <div id="mc_embed_signup"> <form action="https://princeton.us15.list-manage.com/subscribe/post?u=815013b76bec0c1d6fae893ba&amp;id=329ebd13b8&amp;f_id=00479be0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" > <div id="mc_embed_signup_scroll"> <h2>Engineering Newsletter Signup</h2> <div class="mc-field-group"> <input type="email" name="EMAIL" placeholder="email address (required)" class="required email" id="mce-EMAIL" required="" value="" /> </div> <div id="mce-responses" class="clear"> <div class="response" id="mce-error-response" style="display: none" ></div> <div class="response" id="mce-success-response" style="display: none" ></div> </div> <div aria-hidden="true" style="position: absolute; left: -5000px" > <input type="text" name="b_815013b76bec0c1d6fae893ba_329ebd13b8" tabindex="-1" value="" /> </div> <div class="clear"> <input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe" /> </div> </div> </form> </div> <script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js" ></script> <script type="text/javascript"> (function ($) { window.fnames = new Array(); window.ftypes = new Array(); fnames[0] = "EMAIL"; ftypes[0] = "email"; fnames[1] = "FNAME"; ftypes[1] = "text"; fnames[2] = "LNAME"; ftypes[2] = "text"; fnames[3] = "ADDRESS"; ftypes[3] = "address"; fnames[4] = "PHONE"; ftypes[4] = "phone"; fnames[5] = "MMERGE5"; ftypes[5] = "text"; fnames[6] = "MMERGE6"; ftypes[6] = "text"; fnames[7] = "MMERGE7"; ftypes[7] = "text"; })(jQuery); var $mcj = jQuery.noConflict(true); </script> </div> </div> </div> <div class="equal-opportunity is-layout-flow wp-block-group-is-layout-flow"> <p> Equal Opportunity and Nondiscrimination at Princeton University: Princeton University believes that commitment to principles of fairness and respect for all is favorable to the free and open exchange of ideas, and the University seeks to reach out as widely as possible in order to attract the ablest individuals as students, faculty, and staff. In applying this policy, the University is committed to nondiscrimination on the basis of personal beliefs or characteristics such as political views, religion, national origin, ancestry, race, color, sex, sexual orientation, gender identity or expression, pregnancy/childbirth, age, marital or domestic partnership status, veteran status, disability, genetic information and/or other characteristics protected by applicable law in any phase of its education or employment programs or activities. In addition, pursuant to Title IX of the Education Amendments of 1972 and supporting regulations, Princeton does not discriminate on the basis of sex in the education programs or activities that it operates; this extends to admission and employment. Inquiries about the application of Title IX and its supporting regulations may be directed to the Assistant Secretary for Civil Rights, Office for Civil Rights, U.S. Department of Education or to the University&#8217;s Sexual Misconduct/Title IX Coordinator. See Princeton&#8217;s full Equal Opportunity Policy and Nondiscrimination Statement. </p> </div> <div class="university-info is-layout-flow wp-block-group-is-layout-flow"> <p>&copy; 2024 The Trustees of Princeton University</p> <div class="wp-block-group university-address is-layout-flow wp-block-group-is-layout-flow"> <address> <p>Princeton, New Jersey 08544 United States</p> <p> <strong>Operator:</strong> <a href="tel+6092583000">(609) 258-3000</a> </p> </address> <p> <a href="https://www.princeton.edu/content/copyright-infringement" >Copyright Infringement</a > </p> </div> <div class="wp-block-group university-footer-logo is-layout-flow wp-block-group-is-layout-flow"> <h3 class="university-logo"> <a href="https://www.princeton.edu">Princeton University</a> </h3> <p> <a href="https://www.princeton.edu/privacy-notice">Privacy Notice</a> </p> </div> </div> </div> </div> </footer> </div> <script id="wp-block-template-skip-link-js-after"> ( function() { var skipLinkTarget = document.querySelector( 'main' ), sibling, skipLinkTargetID, skipLink; // Early exit if a skip-link target can't be located. if ( ! skipLinkTarget ) { return; } /* * Get the site wrapper. * The skip-link will be injected in the beginning of it. */ sibling = document.querySelector( '.wp-site-blocks' ); // Early exit if the root element was not found. if ( ! sibling ) { return; } // Get the skip-link target's ID, and generate one if it doesn't exist. skipLinkTargetID = skipLinkTarget.id; if ( ! skipLinkTargetID ) { skipLinkTargetID = 'wp--skip-link--target'; skipLinkTarget.id = skipLinkTargetID; } // Create the skip link. skipLink = document.createElement( 'a' ); skipLink.classList.add( 'skip-link', 'screen-reader-text' ); skipLink.href = '#' + skipLinkTargetID; skipLink.innerHTML = 'Skip to content'; // Inject the skip link. sibling.parentElement.insertBefore( skipLink, sibling ); }() ); </script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/app/dist/assets/index-vV-Zt8Fy.js?ver=1.0.3" id="vite-script-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.js?ver=1732641271" id="main-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.min.js?ver=1732641271" id="main-min-js"></script> <script src="https://kit.fontawesome.com/8299227453.js" id="fontawesome-js"></script> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js" id="alpinejs-js"></script> <script src="https://engineering.princeton.edu/wp-content/themes/engineering/assets/js/main.min.js" id="custom-js-js"></script> <script src="https://engineering.princeton.edu/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script id="megamenu-js-extra"> var megamenu = {"timeout":"300","interval":"100"}; </script> <script src="https://engineering.princeton.edu/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.3.1.2" id="megamenu-js"></script> <script src="https://engineering.princeton.edu/wp-content/plugins/megamenu-pro/assets/public.js?ver=2.4" id="megamenu-pro-js"></script> <script type="text/javascript"> /* <![CDATA[ */ document.querySelectorAll("ul.nav-menu").forEach( ulist => { if (ulist.querySelectorAll("li").length == 0) { ulist.style.display = "none"; } } ); /* ]]> */ </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-b00d4b4e7850ab82d90","applicationID":"1529948474","transactionName":"NFUAYEdRDBUFW0ReVw0fI1dBWQ0IS0xVWkgPURZRGFMDCBJZQw==","queueTime":0,"applicationTime":696,"atts":"GBIDFg9LHxs=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10