CINXE.COM
Script Analysis for Theater Course - Berklee Online
<!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="en" class="ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]--> <head> <link href='https://fonts.googleapis.com' rel='preconnect'> <link href='https://assets.online.berklee.edu' rel='preconnect'> <link href='https://www.googletagmanager.com' rel='preconnect'> <link href='https://kit.fontawesome.com' rel='preconnect'> <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-WD67JCX'); // swiftype search (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){ (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t); e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e); })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st'); _st('install','p1vCAcxCzxQgDzni-7Vh','2.0.0'); </script> <meta charset='utf-8'> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"70f3b191a7","applicationID":"17051529","transactionName":"dl5eQUtZWQoHEUoCXkBDQ1BKGUYODRQ=","queueTime":0,"applicationTime":92,"agent":""}</script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"96658315",accountID:"8536",trustKey:"8536",xpid:"XAMEV0VSDwMFVVRQDg==",licenseKey:"70f3b191a7",applicationID:"17051529"};;/*! For license information please see nr-loader-spa-1.285.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(3333);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={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},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,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},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,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,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},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,harvester: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.285.0",i="PROD",o="CDN",a="^2.0.0-alpha.18"},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}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},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})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>a,t:()=>s});var n=r(7836),i=r(3241);const o=new Set,a={};function s(e,t){const r=n.ee.get(t);a[t]??={},e&&"object"==typeof e&&(o.has(t)||(r.emit("rumresp",[e]),a[t]=e,o.add(t),(0,i.W)({agentIdentifier:t,loaded:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},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),c&&h(c.prototype,f),h(a.gm,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])}},9414:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get("logger")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],"wrap-logger-",(()=>s.get(f))),u}},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,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,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,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},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,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=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(8154),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()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);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,rF:()=>d});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)}}function d(e,t){try{if("string"==typeof t?.type){if("password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},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:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={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:()=>T,uP:()=>s,wW:()=>E,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",E="cb"+R,A="jsTime",T="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")},8969:(e,t,r)=>{"use strict";r.d(t,{j:()=>I});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(8154),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","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(9414),x=r(3241),E=r(5701);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 T={};var S=r(9417),N=r(5603);const _=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function I(e,t={},g,I){let{init:P,info:j,loader_config:C,runtime:k={},exposed:L=!0}=t;k.loaderType=g;const H=(0,h.pV)();j||(P=H.init,j=H.info,C=H.loader_config),(0,S.xN)(e.agentIdentifier,P||{}),(0,N.a)(e.agentIdentifier,C||{}),j.jsAttributes??={},d.bv&&(j.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,j);const M=(0,S.D0)(e.agentIdentifier),D=[j.beacon,j.errorBeacon];O||(M.proxy.assets&&(_(M.proxy.assets),D.push(M.proxy.assets)),M.proxy.beacon&&D.push(M.proxy.beacon),A(),(0,h.US)("activatedFeatures",E.B),e.runSoftNavOverSpa&&=!0===M.soft_navigations.enabled&&M.feature_flags.includes("soft_nav")),k.denyList=[...M.ajax.deny_list||[],...M.ajax.block_internal?D:[]],k.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,k),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 A=s.ee.get(e),S=A.get("tracer");T[e]=b.g.OFF,A.on(p.G4.REPLAY_RUNNING,(t=>{T[e]=t}));var N="api-",_=N+"ixn-";function O(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}}),j(N,n,!0,o||null===r?"session":void 0)(t,r)}function I(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,A),(0,w.R)(A,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,A),(0,R.J)(A,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=j(N,e,!0,"api")})),g.addPageAction=j(N,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=j(N,"recordCustomEvent",!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,j(N,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return O(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 O("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return O("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,A),A.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,A),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,A)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,A),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,A)},g.interaction=function(e){return(new I).get("object"==typeof e?e:{})};const P=I.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,A),h||(0,a.p)(_+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,A),function(){if(S.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 S.emit("fn-err",[arguments,this,t],r),t}finally{S.emit("fn-end",[(0,v.t)()],r)}}}};function j(t,r,i,o){return function(){return(0,a.p)(f.xV,["API/"+r+"/called"],void 0,n.K7.metrics,A),(0,x.W)({agentIdentifier:e,loaded:!!E.B?.[e],type:"data",name:"api",feature:t+r,data:{notSpa:i,bufferGroup:o}}),o&&(0,a.p)(t+r,[i?(0,v.t)():performance.now(),...arguments],i?null:this,o,A),i?void 0:this}}function C(){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),A.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{P[e]=j(_,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?j(_,"routeName",void 0,n.K7.softNav):j(N,"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,A),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!T[e]],void 0,n.K7.jserrors,A)},d.RI?(0,u.GG)((()=>C()),!0):C(),g}(e.agentIdentifier,I,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=L),O||(0,x.W)({agentIdentifier:e.agentIdentifier,loaded:!!E.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:{init:M,info:j,loader_config:C,runtime:k}}),O=!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:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={ajax:"ajax",genericEvents:"generic_events",jserrors:i,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"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.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.285.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.285.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-73OmviyU40lnC5NZHvj5egb1Dktz4of17DYc4nbj2RduD/YSRadVPKgqV4pTV++UKRfMh1kiyzvZ3EZ9+nCVRA==",249:"sha512-K0uLsDVOs99bSE/U1/+N3dF9ugBMgNxv9bGCDosl/OYQ9Vbh3OEiiDdoeJ2Jyez+MV++R54r9pGP4l89pkOgrw==",212:"sha512-xpg2N/nVV3R+2dh1bNPkgU4MdEfsSknhvWWYRI9zgj8nuzl1HP8n4T1tr6iNK7k+LC8m/kDrZH58sW6X5daNDQ=="};(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.285.0.PROD"]=self["webpackChunk:NRBA-1.285.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(){this.agentIdentifier=(0,r.LA)(16)}#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)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",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(8969);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(!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),t.runtime.harvester.initializedAggregates.push(this.featAggregate),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),E=i(2843),A=i(3878),T=i(782),S=i(1863);class N extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var _=i(8154);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),p.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,x.p)(_.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(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{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return C(e.reason)}const r=C(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(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 M 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,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],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 D=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,D.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,P.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(void 0===p.gm.XMLHttpRequest)return n;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-",J=Y+"body-",X=["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,X.forEach((e=>{r(Q[te],e,J),r(ee[te],e,J)})),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,P.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;const he="X-NewRelic-App-Data";class pe 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};ge(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){E(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]},ge(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),ge(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.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(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&&r.getAllResponseHeaders().indexOf(he)>=0){var i=r.getResponseHeader(he);i&&((0,x.p)(_.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 ge(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 me={},ve=["pushState","replaceState"];function be(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||me[t.debugId]++||(me[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,ve,"-")),t}var ye=i(3738);const{He:we,bD:Re,d3:xe,Kp:Ee,TZ:Ae,Lc:Te,uP:Se,Rz:Ne}=ye;class _e extends b{static featureName=Ae;constructor(e,t=!0){super(e,Ae,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;be(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Se,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Ne+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Ne+Ee,(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)(we,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ie 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,agentRef:this.#o}),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 Pe=i(3962);class je extends b{static featureName=Pe.TZ;constructor(e,t=!0){if(super(e,Pe.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=be(this.ee);Pe.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 Ce=i(7378);const ke={},Le=["appendChild","insertBefore","replaceChild"];function He(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||ke[t.debugId])return t;ke[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,Le,"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 Me={};function De(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(Me[t.debugId])return t;Me[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 Ke={},Ue="setTimeout",Ve="setInterval",Ge="clearTimeout",Fe="-start",Be=[Ue,"setImmediate",Ve,Ge,"clearImmediate"];function We(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(Ke[t.debugId]++)return t;Ke[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Be.slice(0,2),Ue+"-"),r.inPlace(p.gm,Be.slice(2,3),Ve+"-"),r.inPlace(p.gm,Be.slice(3),Ge+"-"),t.on(Ve+Fe,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ue+Fe,(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 ze={};function qe(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||ze[t.debugId])return t;ze[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:Ze,d3:Ye,Kp:Je,$p:Xe,wW:$e,e5:Qe,tH:et,uP:tt,rw:rt,Lc:nt}=Ce;class it extends b{static featureName=Ze;constructor(e,t=!0){if(super(e,Ze,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=He(this.ee),a=De(this.ee),s=We(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=be(this.ee),f=qe(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[tt]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Qe]=~~this[Qe]+e-this[tt],this[nt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(tt,g),a.on(rt,g),o.on(rt,g),this.ee.on(nt,m),a.on($e,m),o.on($e,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([tt,nt,"xhr-resolved"],this.featureName),u.buffer([tt],this.featureName),s.buffer(["setTimeout"+Je,"clearTimeout"+Ye,tt],this.featureName),c.buffer([tt,"new-xhr","send-xhr"+Ye],this.featureName),d.buffer([et+Ye,et+"-done",et+Xe+Ye,et+Xe+Je],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([tt],this.featureName),a.buffer(["propagate",rt,$e,"executor-err","resolve"+Ye],this.featureName),i.buffer([tt,"no-"+tt],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,et+Ye),v(d,et+"-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 ot=i(3333);class at extends b{static featureName=ot.TZ;constructor(e,t=!0){super(e,ot.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI&&(e.init.user_actions.enabled&&(ot.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),ot.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled&&p.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var st=i(993),ct=i(3785),ut=i(9414);class dt extends b{static featureName=st.TZ;constructor(e,t=!0){super(e,st.TZ,t);const r=this.ee;(0,ut.J)(r,p.gm.console,"log",{level:"info"}),(0,ut.J)(r,p.gm.console,"error",{level:"error"}),(0,ut.J)(r,p.gm.console,"warn",{level:"warn"}),(0,ut.J)(r,p.gm.console,"info",{level:"info"}),(0,ut.J)(r,p.gm.console,"debug",{level:"debug"}),(0,ut.J)(r,p.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,ct.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),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:[pe,w,N,_e,Ie,O,M,at,dt,je,it],loaderType:"spa"})})()})();</script> <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' name='viewport'> <meta content='03F74A8B60154C9A9FBD22440A0F6BB8' name='msvalidate.01'> <meta content='EGK3R_F_3Thqbni0TJnnea-0s0x2qs5e2pWYt4F397Y' name='google-site-verification'> <meta content='2ba55cf44829b06ae2bbfb8d40477867' name='p:domain_verify'> <title>Script Analysis for Theater Course - Berklee Online</title> <meta name="description" content="Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. " /> <meta name="keywords" content="Script Analysis for Theater Course, Berklee College of Music Online, Berklee Online, music production, guitar, bass, drums, performance, theory, keyboard, online music instruction, Berklee method, Private lessons, largest online music school, award-winning online music instruction" /> <meta property="og:image" content="https://assets.online.berklee.edu/catalog-site-heroes/BOL-og-image-min.jpg" /> <meta class="swiftype" name="result_facet" data-type="string" content="Courses" /> <meta class="swiftype" name="result_title" data-type="string" content="Script Analysis for Theater" /> <meta class="swiftype" name="result_type" data-type="string" content="12-Week Course" /> <meta class="swiftype" name="result_description" data-type="string" content="Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. " /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="TN60/7MUW+k3EvMwVcwE/JUrOU86idXt9HZAAj5IL+zSk2S2YKZn0awS4RnnQXXyflPLaAmT3UfWnlL7f6wwXg==" /> <link href='//assets.online.berklee.edu/favicon.ico' rel='shortcut icon' type='image/x-icon'> <link href='//assets.online.berklee.edu/apple-touch-icon-57x57.png' rel='apple-touch-icon' sizes='57x57'> <link href='//assets.online.berklee.edu/apple-touch-icon-60x60.png' rel='apple-touch-icon' sizes='60x60'> <link href='//assets.online.berklee.edu/apple-touch-icon-72x72.png' rel='apple-touch-icon' sizes='72x72'> <link href='//assets.online.berklee.edu/apple-touch-icon-76x76.png' rel='apple-touch-icon' sizes='76x76'> <link href='//assets.online.berklee.edu/apple-touch-icon-114x114.png' rel='apple-touch-icon' sizes='114x114'> <link href='//assets.online.berklee.edu/apple-touch-icon-120x120.png' rel='apple-touch-icon' sizes='120x120'> <link href='//assets.online.berklee.edu/apple-touch-icon-144x144.png' rel='apple-touch-icon' sizes='144x144'> <link href='//assets.online.berklee.edu/apple-touch-icon-152x152.png' rel='apple-touch-icon' sizes='152x152'> <link href='//assets.online.berklee.edu/apple-touch-icon-180x180.png' rel='apple-touch-icon' sizes='180x180'> <link href='//assets.online.berklee.edu/favicon-16x16.png' rel='icon' sizes='16x16' type='image/png'> <link href='//assets.online.berklee.edu/favicon-32x32.png' rel='icon' sizes='32x32' type='image/png'> <link href='//assets.online.berklee.edu/favicon-96x96.png' rel='icon' sizes='96x96' type='image/png'> <link href='//assets.online.berklee.edu/android-chrome-192x192.png' rel='icon' sizes='192x192' type='image/png'> <meta content='//assets.online.berklee.edu/smalltile.png' name='msapplication-square70x70logo'> <meta content='//assets.online.berklee.edu/mediumtile.png' name='msapplication-square150x150logo'> <meta content='//assets.online.berklee.edu/largetile.png' name='msapplication-square310x310logo'> <link href='https://online.berklee.edu/courses/script-analysis-for-theater' rel='canonical'> <link rel="stylesheet" media="all" href="https://assets.online.berklee.edu/catalog/assets/b92631b820d97670285140dbea27b69169dbae4b/packs/css/application-bb9cf92b.css" /> <link rel="stylesheet" media="all" href="//fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&family=Carrois+Gothic&display=swap" /> <meta content='summary' name='twitter:card'> <meta content='@BerkleeOnline' name='twitter:site'> <meta content='https://online.berklee.edu/courses/script-analysis-for-theater' property='og:url'> <meta content='product' property='og:type'> <meta content='Script Analysis for Theater' property='og:title'> <meta content='Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. ' property='og:description'> <meta content='20508699923' property='fb:profile_id'> <meta content='693976273963843' property='fb:app_id'> <meta content='https://assets.online.berklee.edu/open-graph/berklee-online-general-music-studies.jpg' property='og:image'> <style> .sub-nav.admissions .sub-nav-group:nth-child(5) li:nth-child(5) { display: none; } /* used for the coming soon courses' projected enrollment date */ .coming-soon-course-callout { background: #FFF; display: flex; flex-direction: row; align-items: center; margin: 0 0 15px 0; padding: 20px; } .coming-soon-course-callout h4{ padding: 0; margin: 3px 0 0 0; } .coming-soon-course-callout svg { color: #ee243c; font-size: 2.3rem; margin-right: 10px; } .nav-menu li:nth-child(2) .sub-nav-group:nth-child(2) li:nth-child(5) a:after { display: none; } /* tightens up the line-height on the leadership team titles */ .leaders .leadership-team-content h2 span { line-height: 1.5; } .degree-program .degree-curriculum ul li { text-align: left; } .is-known-lead .unknown.h2, .is-known-lead h2.unknown, .logged_in .unknown.h2, .logged_in h2.unknown, .logged_in h2.application-closed, .logged_out.is-known-lead h2.unknown, .logged_out.is-known-lead h2.application-closed, .logged_out .known.h2, .logged_out h2.known, .application_closed.logged_out:not(.is-known-lead) h2.unknown, .application_closed.logged_out:not(.is-known-lead) h2.known, .logged_out:not(.application_closed) h2.application-closed { display: none; } .nav-menu li:nth-child(2) .sub-nav-group:nth-child(1) li:nth-child(13) a:after { content: "New!"; color: #ee243c; font-weight: 800; padding-left: 7px; } .bo-banner-footer, .bo-banner-top { background: #ee243c !important; border: none; } .bo-banner-footer a, .bo-banner-top a { color: white; } .bo-banner-footer .fa-arrow-circle-right, .bo-banner-top .fa-arrow-circle-right { color: white; }.bo-banner-footer a:hover, .bo-banner-top a:hover { color: white; text-decoration: underline; } .key-course-level .key-course-text.graduate-level h4 {display: block;}.key-course-level .key-course-text.graduate-level h4 span {padding-left: 38px;} @media(max-width:550px) { #gdpr-notification {bottom: 73px;}}@media (max-width: 768px) { .degree-info #main-content {padding-top: 0;}}@media(max-width: 550px) {.deals .featured__hero-bg {width: auto;} .carousel-control-prev {left: auto;right: 50px;}}@media (max-width: 768px) {.deals .featured__control {top: 88%; background: #000; height: 40px;border-radius: 20px;width: 40px;border: 1px solid #FFF;}}@media(max-width: 768px) {.bio-block__image-wrap {min-height: auto;}} /* header .nav-menu .nav-item:nth-child(4) .sub-nav .drop-info, header .nav-menu .nav-item:nth-child(3) .sub-nav .drop-info { border: none; padding: 0; } */ .sub-nav .absolute-drop-footer { border-top: none; bottom: 0; left: 0; right: 0; margin-left: auto; margin-right: auto; padding-left: 0; position: absolute; text-align: center; width: 100%; background: #eff1f3; padding: 12px 0; } .product .content-head.overview-video { background-size: auto; background-position-x: right; }@media (min-width: 1900px) { .degrees .content-head .col-xl-5 { flex: 0 0 auto; width: 52%; }} </style> </head> <body class='undergraduate-course product courses catalog_site logged_out '> <noscript> <iframe height='0' src='https://www.googletagmanager.com/ns.html?id=GTM-WD67JCX' style='display:none;visibility:hidden' width='0'></iframe> </noscript> <div class='full-width-overlay'></div> <div class='animate__animated animate__slideInRight animate__faster' id='details_show'> <a class='close-detail-overlay' href='#' rel='nofollow'> Close <i class='far fa-times-circle'></i> </a> <div class='spinner-overlay text-center'> <i class='far fa-circle-notch fa-spin'></i> <p>Getting Details...</p> </div> <div class='details_show_content'></div> </div> <div id='content-container'> <script> //document.body.classList.add("special-notice"); </script> <div id="special-notice" style="display:none;"> <div class="container-fluid"> <div class="col-12 text-center"> <a href="/early-enrollment" id="cta-special-notice-live" target="_blank"> <h5> LAST DAY: Save up to $200 on eligible courses when you enroll by 5:00 PM ET! <span class="btn-live-qa-cta">View Eligible Courses & Certificates</span> </h5> </a> <!--<a href="/music-degrees" id="cta-special-notice-live" target="_blank"> <h5> Degree Applicants: Apply in as little as 15 minutes by March 10 for April 7 semester start. Get a decision within 1 week. <span class="btn-live-qa-cta">View All Degree Programs</span> </h5> </a> --> </div> </div> </div> <style> .home_page .hero-slant h4 a, .hero-slant h4 a:visited { color: #222; } body.scroll .mast-wrap { top: -1px; } .summer_areas .program-feature h1 { font-size: 3rem; line-height: 1.25; max-width: 100%; } .quote-slot .carousel-control-next, .quote-slot .carousel-control-prev { z-index: 100; } @media(max-width: 768px) { .summer_areas .program-feature h1 { font-size: 2.5rem; line-height: 1.15; } } #special-notice { padding-top: 8px; padding-bottom: 8px; } #special-notice a h5 { margin: 0; font-weight: 700; } #special-notice .container-fluid { padding-left: 0 !important; padding-right: 0 !important; max-width: 100%; transition: background ease 0.2s; } #special-notice:hover, #special-notice:focus { background: #E7E7E7; } #special-notice a:hover { text-decoration: none; box-shadow: none; } a#cta-special-notice-live:focus { text-decoration: none; } #special-notice .title-bar__live-indicator { border-right: 1px solid #222; font-weight: 700; margin-right: 20px; padding-left: 20px; padding-right: 20px; position: relative; } #special-notice .title-bar__live-indicator:after { -webkit-animation-delay: 1s; -webkit-animation: ripple 1.2s ease-out infinite; animation-delay: 1s; animation: ripple 1.2s ease-out infinite; background: rgba(255, 255, 255, 0.5); border-radius: 100%; content: ''; height: 16px; left: 43px; mix-blend-mode: screen; opacity: 0; position: absolute; top: 1px; transform-origin: 50% 50%; width: 16px; } #special-notice .btn-live-qa-cta { background: none; color: #222; border-radius: 2px; font-size: 1.2rem; font-weight: 400; display: inline-block; margin-top: -1.5px; margin-left: 10px; padding: 1px 10px; text-decoration: underline; font-weight: 900; } @media (max-width: 991px) { #special-notice a h5 span { display: none; } #special-notice .btn-live-qa-cta { border-radius: 2px; margin-top: 4px; padding: 0 10px; } } @media (max-width: 768px) { .details-container ul { display: none; } } .summer_areas #special-notice { display: none !important; } .curriculum-toggle li span strong { margin: 3px 0 0 5px; font-weight: 400; } .sr-only { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; } .side-nav-main { position: relative; } /* uncomment when a red bar is desired */ #special-notice { background: #ee243c; border-bottom: 1px solid #c00f24; padding-bottom: 6px; } #special-notice:hover { background: #c00f24; } #special-notice a h5 { color: #FFF; } #special-notice .title-bar__live-indicator { border-right: 1px solid #FFF; } @media(max-width: 768px) { #special-notice .title-bar__live-indicator { display: none; } } #special-notice .btn-live-qa-cta { color: #FFF } /* end red bar styles */ </style> <header aria-label='global-header' class='global-header d-none d-lg-block' data-swiftype-index='false'> <div class='row align-items-center'> <div class='col global-header__left'> <div class='dropdown'> <a class="dropdown-toggle global-header__parent-link first" id="campus-switcher" data-bs-toggle="dropdown" rel="nofollow" href="#">Campuses and Schools <i class='fas fa-angle-down arrow'></i> </a><div aria-labelledby='campus-switcher' class='campuses dropdown-menu'> <a class='dropdown-item' href='https://www.berklee.edu'>Berklee.edu Main Site</a> <a class='dropdown-item' href='https://college.berklee.edu'>Berklee College of Music</a> <a class='dropdown-item' href='https://bostonconservatory.berklee.edu'>Boston Conservatory at Berklee</a> <a class='dropdown-item' href='https://valencia.berklee.edu/'>Berklee Valencia</a> <a class='dropdown-item' href='https://nyc.berklee.edu'>Berklee NYC</a> <a class='dropdown-item' href='https://online.berklee.edu'>Berklee Online</a> <a class='dropdown-item' href='https://summer.berklee.edu'>Summer Programs</a> </div> </div> </div> <div class='col global-header__right'> <a class='global-header__parent-link' href='/sample-a-lesson'>Sample a Lesson</a> <div class='dropdown'> <a class="dropdown-toggle global-header__parent-link" id="contact-us" data-bs-toggle="dropdown" rel="nofollow" href="#"><i class='fas fa-phone'></i> Contact Us <i class='fas fa-angle-down arrow'></i> </a><div aria-labelledby='contact-us' class='dropdown-menu drop-contact'> <h3>1-866-BERKLEE</h3> <h5>Int'l +1-617-747-2146</h5> <h5> <a class='' href='mailto:advisors@online.berklee.edu'> advisors@online.berklee.edu </a> </h5> </div> </div> <a class='global-header__parent-link apply' href='/apply' target='_blank'> <i class='fas fa-pencil-alt'></i> Apply </a> <a class='fc-mini-cart global-header__parent-link' data-fc-id='minicart' href='https://checkout.online.berklee.edu/cart?cart=view' style='display: none;'> <i class='far fa-shopping-cart cart'></i> <span class='mini-cart-quantity' data-fc-id='minicart-quantity'>0</span> </a> </div> </div> </header> <div class='mast-wrap' data-swiftype-index='false'> <a class='sr-only sr-only-focusable' data-swiftype-index='false' href='#main-content'>Skip to main content</a> <script> window.foxy_store_hostname = "checkout.online.berklee.edu"; </script> <header id='masthead'> <nav class='navbar navbar-toggleable-lg navbar-light navbar-expand-xl' id='mast-simple'> <button aria-controls='bo-collapse-nav' aria-expanded='false' aria-label='Toggle navigation' class='navbar-toggler navbar-toggler-left' type='button'> <span class='navbar-toggler-icon'></span> </button> <a class='navbar-brand' href='/'> <img alt='Berklee Online logo' class='logo-color img-logo' height='47' loading='eager' src='//assets.online.berklee.edu/berklee-online-logo.svg?v=3' width='220'> </a> <!-- / standard sitewide nav --> <nav class='collapse navbar-collapse' id='navbarSupportedContent' role='navigation'> <ul class='nav-menu navbar-nav center'> <li class='nav-item'> <a href='#' onclick='return false;'> All Programs </a> <div class='sub-nav all-programs'> <ul class='sub-nav-group two-col no-margin'> <li class='header'> <h4> Degrees, Certificates, and Courses by Interest </h4> </li> <li> <a href='/music-production' itemprop='url'>Music Production</a> </li> <li> <a href='/music-business' itemprop='url'>Music Business</a> </li> <li> <a href='/music-theory-harmony-and-ear-training'>Music Theory, Harmony, and Ear Training</a> </li> <li> <a href='/guitar' itemprop='url'>Guitar</a> </li> <li> <a href='/songwriting' itemprop='url'>Songwriting</a> </li> <li> <a href='/music-for-film-tv-and-games' itemprop='url'>Music for Film, TV, and Games</a> </li> <li> <a href='/arranging'>Arranging</a> </li> <li> <a href='/music-history-and-liberal-arts'>Music History and Liberal Arts</a> </li> <li> <a href='/piano-and-keyboard'>Piano and Keyboard</a> </li> <li> <a href='/voice'>Voice</a> </li> <li> <a href='/improvisation'>Improvisation</a> </li> <li> <a href='/dance-music-and-theater'> Dance, Music, and Theater </a> </li> <li> <a href='/orchestration'>Orchestration</a> </li> <li> <a href='/drums'>Drums</a> </li> <li> <a href='/bass'>Bass</a> </li> <li> <a href='/music-therapy-health-and-neuroscience'>Music Therapy, Health, and Neuroscience</a> </li> <li class='footer'> <a href='/about/compare-online-music-education-offerings'> Compare Our Offerings </a> <a href='/sample-a-lesson'> Sample a Lesson / How It Works </a> </li> </ul> <ul class='sub-nav-group'> <li> <div class='drop-info promo'> <span class="new new-corner">New!</span> <a href="https://online.berklee.edu/masterclasses/playing-with-pink-making-it-as-a-touring-musician" style="padding: 0; margin: 0;"> <img src="//assets.online.berklee.edu/catalog-site-heroes/live-workshops/lw-card--playing-with-pink-making-it-as-a-touring-musician-final.jpg" width="353"> </a> <div class="drop-info-content" style="position: relative;"> <!--<h3 style="font-weight:800; color: #FFF; position: absolute; left: 0; right: 0; top: -68px; width: 100%; padding-left: 20px; background: linear-gradient(0deg, rgba(0,0,0,1) -11%, rgba(12,45,72,0) 100%);padding-top: 3rem; padding-bottom: .5rem; z-index: 100;">Manage Your Stress with Music</h3>--> <strong style="text-transform: uppercase; font-size: .95rem; letter-spacing: .5px; font-weight: 900;">MASTERCLASS</strong><br/> <p style="margin-top: -3px; line-height: 1.3;"><strong> Playing with P!NK: Making it as a Touring Musician</strong></p> <p> In this Masterclass, you’ll dive into the suitcase of one of P!NK’s seasoned touring musicians and learn the skills needed to find success. </p> <p><strong style="padding-top: 1rem;">Thurs., June 5, only $99</strong></p> <a class="drop-info-cta" href="https://online.berklee.edu/masterclasses/playing-with-pink-making-it-as-a-touring-musician">Learn More & Enroll</a> </div> </div> </li> </ul> </div> </li> <li class='nav-item'> <a href='#' onclick='return false;'> Degrees </a> <div class='sub-nav absolute-footer'> <ul class='sub-nav-group'> <li> <h4> Undergraduate Degrees </h4> </li> <li><a href="/music-degrees/undergraduate/overview">Overview</a></li><li><a href="/music-degrees/undergraduate/music-production">Music Production</a></li><li><a href="/music-degrees/undergraduate/guitar-performance">Guitar Performance</a></li><li><a href="/music-degrees/undergraduate/music-business">Music Business</a></li><li><a href="/music-degrees/undergraduate/songwriting">Songwriting</a></li><li><a href="/music-degrees/undergraduate/songwriting-and-producing-music">Songwriting and Producing Music</a></li><li><a href="/music-degrees/undergraduate/electronic-music-production-and-sound-design">Electronic Music Production and Sound Design</a></li><li><a href="/music-degrees/undergraduate/music-composition-for-film-tv-and-games">Music Composition for Film, TV, and Games</a></li><li><a href="/music-degrees/undergraduate/piano-performance">Piano Performance</a></li><li><a href="/music-degrees/undergraduate/interdisciplinary-music-studies-create-your-own-major">Interdisciplinary Music Studies (Create Your Own Major)</a></li><li><a href="/music-degrees/undergraduate/voice-performance">Voice Performance</a></li><li><a href="/music-degrees/undergraduate/music-composition">Music Composition</a></li><li><a href="/music-degrees/undergraduate/undeclared-option">Undeclared Option</a></li> </ul> <ul class='sub-nav-group'> <li> <h4> Graduate Degrees </h4> </li> <li><a href="/music-degrees/graduate/overview">Overview</a></li><li><a href="/music-degrees/graduate/music-production">Music Production</a></li><li><a href="/music-degrees/graduate/music-business">Music Business</a></li><li><a href="/music-degrees/graduate/songwriting">Songwriting</a></li><li><a href="/music-degrees/graduate/film-scoring">Film Scoring</a></li><li><a href="/music-degrees/graduate/interdisciplinary-music-studies">Interdisciplinary Music Studies</a></li> </ul> <ul class='sub-nav-group'> <li> <h4> <span class='new' style='font-weight:800; margin-top: -17px;'>New!</span> Undergraduate Minors </h4> </li> <li><a href="/minors/overview">Overview</a></li><li><a href="/minors/film-and-media-scoring">Film and Media Scoring</a></li><li><a href="/minors/music-industry-entrepreneurship">Music Industry Entrepreneurship</a></li><li><a href="/minors/music-production-and-recording">Music Production and Recording</a></li> </ul> <div class='absolute-drop-footer'> <span><a href="/apply" style="margin-left: 0;color: #ee243c; padding: 0; border: 0; text-decoration: underline; font-weight: 800;" target="_blank">Apply</a> by May 5 for June 30 semester start, and get a decision within 1 week</span><br><span style="font-weight:800;">$75 application fee waived • Apply in as little time as 15 minutes</span></span> </div> </div> </li> <li class='nav-item'> <a href='#' onclick='return false;'> Certificates </a> <div class='sub-nav'> <ul class='sub-nav-group'> <li> <div class='drop-info'> <h3>No application required</h3> <h5>to enroll in a certificate.</h5> <hr role="separator"> <div class="cert-course-dates" style="display: flex;"> <em> <svg style="padding-top: 6px; padding-right: 7px;" class="svg-inline--fa fa-clock" data-prefix="far" data-icon="clock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path></svg> </em> <a href="/certificates" target="blank"> Next semester starts April 7 </a> </div> <!-- <div class="drop-info-ee"> <h3>Non-Degree Students: LAST DAY to save up to $200!</h3> <h4 style="border: none;">Enroll in an eligible certificate by 5:00 PM ET, and save.</h4> <svg style="width: 20px;" class="svg-inline--fa fa-clock" data-prefix="fas" data-icon="clock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""> <path fill="currentColor" d="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path> </svg> Next semester starts April 7. <div>No application required.</div> <a href="/early-enrollment" target="blank"> View Eligible Courses & Certificates </a> </div> --> <style> .drop-info-ee { background: #ee243c; border: none; color: #FFF; padding: 1.5rem;text-align: center; } .drop-info-ee h5 { font-size: 1rem; letter-spacing: .5px; text-transform: uppercase; } .drop-info-ee a, .drop-info-ee a:visited { background: #FFF;border: 1px solid #FFF; color: #ee243c !important; font-weight: 800; display: block !important; margin: 15px auto !important; padding: 10px 10px !important; text-align: center; border-radius: 2px; width: 85%; } .drop-info-ee a:hover { background: #ee243c !important; border: 1px solid #FFF; color: #fff !important; } </style> </div> </li> </ul> <ul class='sub-nav-group certificates'> <li> <a href='/certificates' itemprop='url'>All Certificates</a> </li> <li> <a href='/about/payment-options'> Certificate Payment Options </a> </li> <li> <a href='/about/undergraduate-certificate-programs-tuition-and-fees'> Undergraduate Certificate Programs Tuition and Fees </a> </li> <li> <a href='/about/graduate-certificate-programs-tuition-and-fees'> Graduate Certificate Programs Tuition and Fees </a> </li> <li> <a href='/about/academic-calendar'> Academic Calendar </a> </li> <li> <a href='/scholarships'> Scholarships </a> </li> </ul> </div> </li> <li class='nav-item'> <a href='#' onclick='return false;'> Courses </a> <div class='sub-nav courses'> <ul class='sub-nav-group'> <li> <div class='drop-info'> <h3>No application required</h3> <h5>to enroll in a certificate.</h5> <hr role="separator"> <div class="cert-course-dates" style="display: flex;"> <em> <svg style="padding-top: 6px; padding-right: 7px;" class="svg-inline--fa fa-clock" data-prefix="far" data-icon="clock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path></svg> </em> <a href="/certificates" target="blank"> Next semester starts April 7 </a> </div> <!-- <div class="drop-info-ee"> <h3>Non-Degree Students: LAST DAY to save up to $200!</h3> <h4 style="border: none;">Enroll in an eligible certificate by 5:00 PM ET, and save.</h4> <svg style="width: 20px;" class="svg-inline--fa fa-clock" data-prefix="fas" data-icon="clock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""> <path fill="currentColor" d="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path> </svg> Next semester starts April 7. <div>No application required.</div> <a href="/early-enrollment" target="blank"> View Eligible Courses & Certificates </a> </div> --> <style> .drop-info-ee { background: #ee243c; border: none; color: #FFF; padding: 1.5rem;text-align: center; } .drop-info-ee h5 { font-size: 1rem; letter-spacing: .5px; text-transform: uppercase; } .drop-info-ee a, .drop-info-ee a:visited { background: #FFF;border: 1px solid #FFF; color: #ee243c !important; font-weight: 800; display: block !important; margin: 15px auto !important; padding: 10px 10px !important; text-align: center; border-radius: 2px; width: 85%; } .drop-info-ee a:hover { background: #ee243c !important; border: 1px solid #FFF; color: #fff !important; } </style> </div> </li> </ul> <ul class='sub-nav-group courses'> <li> <a href='/courses' itemprop='url'>All Courses</a> </li> <li> <a href='/about/payment-options'> Course Payment Options </a> </li> <li> <a href='/about/undergraduate-and-graduate-individual-credit-and-non-credit-course-tuition-and-fees'> Undergraduate and Graduate Course Tuition and Fees </a> </li> <li> <a href='/about/academic-calendar'> Academic Calendar </a> </li> <li> <a href='/scholarships'> Scholarships </a> </li> <a class='btn-primary-outline course-drop' href='/coming-soon'> New & Updated Courses </a> </ul> </div> </li> <li class='nav-item'> <a href='#' onclick='return false;'> Admissions </a> <div class='sub-nav admissions'> <ul class='sub-nav-group'> <li> <h4> Undergraduate Admissions </h4> <li><a class="undergraduate-degree-admissions-requirements" href="/degrees/about/undergraduate-degree-admissions-requirements"> Admissions Requirements</a></li><li><a class="undergraduate-degree-tuition-financial-aid" href="/degrees/about/undergraduate-degree-tuition-financial-aid"> Tuition & Financial Aid</a></li><li><a class="undergraduate-degree-scholarships" href="/degrees/about/undergraduate-degree-scholarships"> Scholarships</a></li><li><a class="undergraduate-degree-academic-calendar" href="/degrees/about/undergraduate-degree-academic-calendar"> Academic Calendar</a></li><li><a class="undergraduate-degree-program-internships" href="/degrees/about/undergraduate-degree-program-internships"> Program Internships</a></li><li><a class="undergraduate-degree-completion" href="/degrees/about/undergraduate-degree-completion">Degree Completion</a></li><li><a class="undergraduate-prior-learning-credit" href="/degrees/about/undergraduate-prior-learning-credit"> Prior Learning Credit</a></li><li><a class="undergraduate-degree-transfer-credits" href="/degrees/about/undergraduate-degree-transfer-credits"> Transfer Credits</a></li><li><a class="undergraduate-degree-program-policies-and-forms" href="/degrees/about/undergraduate-degree-program-policies-and-forms"> Program Policies and Forms</a></li><li><a class="undergraduate-degree-program-faqs" href="/degrees/about/undergraduate-degree-program-faqs"> Program FAQs</a></li><li><a class="undergraduate-international-students" href="/degrees/about/undergraduate-international-students"> International Students</a></li> </li> </ul> <ul class='sub-nav-group'> <li> <h4>Graduate Admissions</h4> <li><a class="graduate-degree-admissions-requirements" href="/degrees/about/graduate-degree-admissions-requirements"> Admissions Requirements</a></li><li><a class="graduate-degree-tuition-financial-aid" href="/degrees/about/graduate-degree-tuition-financial-aid"> Tuition & Financial Aid</a></li><li><a class="graduate-degree-program-internships" href="/degrees/about/graduate-degree-program-internships"> Program Internships</a></li><li><a class="graduate-degree-academic-calendar" href="/degrees/about/graduate-degree-academic-calendar"> Academic Calendar</a></li><li><a class="graduate-degree-transfer-credits" href="/degrees/about/graduate-degree-transfer-credits"> Transfer Credits</a></li><li><a class="graduate-international-students" href="/degrees/about/graduate-international-students"> International Students</a></li><li><a class="graduate-degree-program-policies-and-forms" href="/degrees/about/graduate-degree-program-policies-and-forms"> Program Policies and Forms</a></li> </li> </ul> <ul class='sub-nav-group'> <li> <h4>Transfer Students</h4> <a href='/degrees/about/undergraduate-degree-transfer-credits'>Undergraduate Transfer Credits</a> <a href='/degrees/about/graduate-degree-transfer-credits'>Graduate Transfer Credits</a> <a href='/degrees/about/undergraduate-prior-learning-credit'>Prior Learning Credit</a> <a href='/transfer-partner-schools'>Transfer Partner Schools</a> </li> </ul> <ul class='sub-nav-group'> <li> <h4>International Students</h4> <a href='/degrees/about/undergraduate-international-students'>Undergraduate Admission Requirements</a> <a href='/degrees/about/graduate-international-students'>Graduate Admission Requirements</a> </li> </ul> <ul class='sub-nav-group military'> <li> <h4>Military Benefits</h4> <div class="info-nav"><a href="/military/getting-started" class="nav-item">New Students – Getting Started</a><a href="/military/va-education-benefits" class="nav-item">VA Education Benefits</a><a href="/military/military-tuition-assistance" class="nav-item">Military Tuition Assistance</a><a href="/military/tuition-and-military-discount" class="nav-item">Tuition and Military Discount</a><a href="/military/forms" class="nav-item">Military Forms</a><a href="/military/military-affairs-faqs" class="nav-item">Military Affairs FAQs</a><a href="/military/outside-scholarships" class="nav-item">Outside Scholarships</a><a href="/military/additional-resources" class="nav-item">Additional Resources</a></div> </li> </ul> <div class='drop-footer-message'> <span><a href="/apply" style="margin-left: 0;color: #ee243c; padding: 0; border: 0; font-weight: 800;" target="_blank">Apply</a> by May 5 for June 30 semester start, and get a decision within 1 week</span><br><span style="font-weight:800;">$75 application fee waived • Apply in as little time as 15 minutes</span></span> </div> </div> </li> <li class='nav-item'> <a href='#' onclick='return false;'> About </a> <div class='sub-nav'> <ul class='sub-nav-group'> <li> <div class="drop-info"> Need Guidance? <br> <h3>1-866-BERKLEE</h3> <h5>Int'l +1-617-747-2146</h5> <h5> <a href="mailto:advisors@online.berklee.edu"> advisors@online.berklee.edu </a> </h5> <hr role="separator"> <div class="cert-course-dates" style="display: flex;"> <em> <svg style="padding-top: 6px; padding-right: 7px;" class="svg-inline--fa fa-clock" data-prefix="far" data-icon="clock" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"></path></svg> <!-- <div class="far fa-clock"></div>--> </em> <a href="/courses" target="blank"> Next semester starts April 7 <!--Last day to enroll in June semester. <br>Enroll by 5 PM ET. <br>Limited seats available.--> </a> </div> </div> </li> </ul> <ul class='sub-nav-group'> <li> <a href='/about/berklee-online' itemprop='url'>About</a> </li> <li class='mission-link'> <a href='/about/mission'>Our Mission</a> </li> <li> <a href='/about/leadership-team'>Leadership Team</a> </li> <li> <a href='/instructors'>Instructor Directory</a> </li> <li> <a href='/about' style='white-space: nowrap;'>School Info, Enrollment, and Policies</a> </li> <li> <a href='/work-with-us'>Work With Us</a> </li> <li class='drop-footer'> <a href='/about/contact-us' itemprop='url'> <i> <div class='far fa-phone'></div> </i> Contact / Help </a> </li> </ul> </div> </li> <li class='nav-item' id='nav-item-resources'> <a href='#' onclick='return false;'> Resources </a> <div class='sub-nav'> <ul class='sub-nav-group'> <li> <div class='drop-info'> <div class='drop-info-content'> <a href='/berklee-onsite' target='_blank'> <img alt='Berklee Onsite 2025' loading='lazy' src='https://assets.online.berklee.edu/Berklee+Onsite/resources-ad-dark.svg' style='width: 425px; margin-left: -50px;'> </a> </div> </div> </li> </ul> <ul class='sub-nav-group'> <li> <a href='/free-music-course-resources'>All Free Music Resources</a> </li> <li> <a href='/careers-in-music/'>Careers in Music</a> </li> <li> <a href='/sample-a-lesson'>Sample a Lesson / How It Works</a> </li> <li> <a href='/handbooks'>Handbooks</a> </li> <li> <a href='/deals'>Student Deals</a> </li> <li> <a href='/mentor-collective'>Mentorship Program</a> </li> <li> <a href='/giftcard'>eGift Cards</a> </li> <li> <a href='/berklee-onsite'> <strong> Annual Event: Berklee Onsite </strong> </a> </li> <li class='drop-footer'> <a href='//online.berklee.edu/takenote' itemprop='url'> <em>Take Note</em> Online Magazine </a> </li> </ul> </div> </li> <li class='nav-item'> <a class='nav-link search' data-backdrop='true' data-bs-target='#search-and-question-panel' data-bs-toggle='modal' href='#' style='padding-right: 0;' title='Click to open search panel'> <i> <div class='far fa-search'></div> </i> </a> </li> </ul> </nav> <div class='navbar-nav right'> <a class='nav-link search mobile-mast-search' data-backdrop='true' data-bs-target='#search-and-question-panel' data-bs-toggle='modal' href='#' style='padding-right: 0;' title='Click to open search panel'> <i> <div class='far fa-search'></div> </i> </a> <a id="login" class="btn-login" rel="nofollow" href="https://online.berklee.edu/register/login?return_url=https://online.berklee.edu/courses/script-analysis-for-theater">Log In</a> </div> </nav> </header> <div aria-hidden='true' aria-labelledby='searchAndQuestion' class='animate__animated animate__fadeIn animate__faster modal' id='search-and-question-panel' role='dialog' tabindex='-1'> <div class='modal-dialog' role='document'> <div class='modal-content'> <div class='modal-header'> <button aria-label='Close' class='close' data-bs-dismiss='modal' type='button'> <span aria-hidden='true'>× close</span> </button> </div> <div class='modal-body'> <div id='search-container'> <div id='search-form-container'> <form class='st-bo-form'> <i> <div class='far fa-search'></div> </i> <input class='st-default-search-input' id='query' type='search'> <button class='st-button' type='submit'> Go </button> </form> </div> </div> <div class='st-search-loader text-center'> <svg data-ember-extension='1' data-inboxsdk-master-claimed='true' data-inboxsdk-session-id='1531252035918-0.9216384892333274' height='45' stroke='#4C5960' viewbox='0 0 45 45' width='45' xmlns='http://www.w3.org/2000/svg'> <g fill-rule='evenodd' fill='none' stroke-width='2' transform='translate(1 1)'> <circle cx='22' cy='22' r='7.07674' stroke-opacity='0'> <animate attributename='r' begin='1.5s' calcmode='linear' dur='3s' repeatcount='indefinite' values='6;22'></animate> <animate attributename='stroke-opacity' begin='1.5s' calcmode='linear' dur='3s' repeatcount='indefinite' values='1;0'></animate> <animate attributename='stroke-width' begin='1.5s' calcmode='linear' dur='3s' repeatcount='indefinite' values='2;0'></animate> </circle> <circle cx='22' cy='22' r='15.0767' stroke-opacity='0'> <animate attributename='r' begin='3s' calcmode='linear' dur='3s' repeatcount='indefinite' values='6;22'></animate> <animate attributename='stroke-opacity' begin='3s' calcmode='linear' dur='3s' repeatcount='indefinite' values='1;0'></animate> <animate attributename='stroke-width' begin='3s' calcmode='linear' dur='3s' repeatcount='indefinite' values='2;0'></animate> </circle> <circle cx='22' cy='22' r='1.96222'> <animate attributename='r' begin='0s' calcmode='linear' dur='1.5s' repeatcount='indefinite' values='6;1;2;3;4;5;6'></animate> </circle> </g> </svg> <br> <h3>Searching...</h3> </div> <div class='back-to-faqs'> ← <a class='link-back-to-faqs' href='#' onclick='toggle_search_and_faqs(); return false;'> Show FAQs </a> </div> <div class='st-search-container'></div> <div id='question-container'> <div class='questions-inner'> <h3>Or check out these FAQs:</h3> <hr> <div class='question-block'> <div class='question'> What is Berklee Online? </div> <div class='answer'> Berklee Online is the online school of Berklee College of Music, delivering access to Berklee’s acclaimed curriculum from anywhere in the world. We are the world’s largest online music school—30,000+ musicians from more than 140 countries have taken our courses—but classes cap at just 20 students per section. </div> </div> <div class='question-block'> <div class='question'> What does Berklee Online offer? </div> <div class='answer'> We offer award-winning <a href="/courses" itemprop="url">online courses</a>, <a href="/certificates" itemprop="url">multi-course certificate programs</a>, a <a href="/music-degrees" itemprop="url">Bachelor of Arts degree, a Master of Music degree, and a Master of Arts degree</a>. </div> </div> <div class='question-block'> <div class='question'> Who is Berklee Online designed for? </div> <div class='answer'> Our programs provide lifelong learning opportunities to people interested in music and working in the music industry. The courses range from beginner to advanced graduate level. </div> </div> <div class='question-block'> <div class='question'> What kind of subjects are taught? </div> <div class='answer'> Berklee Online offers more than 200 courses in every musical interest area: Everything from instruction on specific instruments (guitar, piano, bass, drums, voice) to music production software (Ableton, Pro Tools, Logic, and more) to larger concepts in music business, songwriting, theory, and composing for film, TV, and games </div> </div> <div class='question-block'> <div class='question'> Do online students receive the benefits of an on-campus Berklee education? </div> <div class='answer'> Absolutely! Just like the students studying on Berklee’s Boston campus, Berklee Online students receive instruction from the same world-renowned faculty, with the added benefit of having music industry professionals from around the world teaching as well. You’ll also receive guidance from Berklee-trained Academic Advisors, and have the opportunity to walk at the Commencement ceremony in Boston with your cohort of graduates who studied online and in-person. </div> </div> <hr> <h4 id='admissions'> Admissions </h4> <div class='question-block'> <div class='question'> What is the process to apply for/enroll in a Berklee Online program or course? </div> <div class='answer'> Certificate programs and online courses are offered on an open enrollment basis. Simply complete the online enrollment form and provide payment prior to the course start date and you’re ready to go! Degree programs require an application and supporting documentation. See the <a href="/degrees/about/degree-admissions-requirements" itemprop="url">Admission Requirements</a> for more details. </div> </div> <div class='question-block'> <div class='question'> Will I receive a Berklee ID and/or email address? </div> <div class='answer'> Berklee Online degree students are eligible to request a Berklee ID. Upon acceptance into the program, degree students are also given a berklee.edu email address. </div> </div> <hr> <h4 id='courses'> Courses </h4> <div class='question-block'> <div class='question'> Can I take non-credit courses in a certificate? </div> <div class='answer'> All courses in a certificate program must be taken for credit. </div> </div> <div class='question-block'> <div class='question'> Can I waive some for-credit courses into a certificate? </div> <div class='answer'> Students must enroll in a certificate by paying the $175 certificate registration fee prior to completing the final course in the program. All for-credit courses that have been awarded a passing grade and that align with a certificate program may transfer into that program. </div> </div> <div class='question-block'> <div class='question'> Can I upgrade from a lower-level certificate to a higher-level certificate? </div> <div class='answer'> Yes! Berklee Online offers two certificate options: <ol> <li> CHANGE CERTIFICATE: When a student wants to change their lower-level certificate to a higher-level certificate (or vice versa) prior to the completion of the program. There are no additional fees for this option other than the cost of additional courses, and you will only earn one certificate upon completion. </li> <li> STARTING A NEW CERTIFICATE: When a student wants to earn more than one certificate by having the courses from their lower-level certificate waived into a higher-level certificate. In this case, an additional $175 registration fee is required. </li> </ol> </div> <hr> <h4 id='faculty'> Instructors </h4> <div class='question-block'> <div class='question'> Who teaches Berklee Online courses? </div> <div class='answer'> Berklee faculty and seasoned professionals teach our courses. Our instructors are recognized experts in their respective fields—they’ve produced and engineered hundreds of artists and numerous award-winning projects, and several of their students have gone on to earn GRAMMY Award nominations. </div> </div> <hr> <h4 id='financial-aid'> Financial Aid </h4> <div class='question-block'> <div class='question'> Am I eligible for financial aid? </div> <div class='answer'> Financial assistance is available for Berklee Online degree programs. This assistance may come from a variety of sources including federal awards, outside scholarships, and private loans. <br> <br> Federal financial aid is not available for non-degree programs. Non-degree students typically finance their costs out-of-pocket or with a private loan. Review our payment options. </div> </div> <hr> <h4 id='graduation'> Graduation </h4> <div class='question-block'> <div class='question'> What happens if I turn in my graduation application late? Do I still need to apply by December 1 even if I don’t want to walk in the Commencement ceremony? </div> <div class='answer'> Because we must coordinate with the Boston campus for Commencement, it is essential that students planning to walk in the ceremony submit their graduation application by 12:00 midnight ET on December 1. If you submit your application late, you will need to wait until the following year to walk. <br> <br> We ask all students planning to graduate within the current academic year to apply for graduation by December 1, regardless of their plans to participate in Commencement. Late application for students who do not wish to walk will result in processing delays for your academic record and diploma, and your name may not be listed in the ceremony program. </div> </div> <div class='question-block'> <div class='question'> What’s the difference between graduating and walking in Commencement? </div> <div class='answer'> Great question! Walking in Commencement and graduating are two separate things. <br> <br> You can walk in Commencement when you are nine (9) credits or less away from completing your degree requirements by the end of the spring term. Please note: Berklee Online degree students are not required to walk in Commencement in Boston. <br> <br> You graduate when you have met all of the following criteria: <ul> <li>Attained at least a 2.70 cumulative GPA in concentrate courses</li> <li>Have a minimum cumulative GPA of 2.00</li> <li>Fulfilled all program requirements AND completed a minimum of 120 credits for a single major or 165 for a dual major</li> <li>Completed a minimum of 60 institutional credits for a single major or 105 institutional credits for a dual major</li> <li>Fulfilled all financial obligations to the college</li> </ul> <strong>Note</strong> Walking across the stage in Commencement <u>does not</u> mean that you have graduated. You will not officially graduate and receive your diploma until you meet all of the eligibility requirements. </div> </div> <div class='question-block'> <div class='question'> I just finished my last term at Berklee Online! What happens next? Is there anything I need to do? </div> <div class='answer'> Congratulations on finishing! If you have already filled out a graduation application, you will want to double-check the "<a href="/degrees/about/graduation-planning">Graduation Checklist</a>" to ensure you have taken care of all of the various items associated with graduating. If you have not filled out a graduation application, you will need to do that as soon as possible. You will not be able to graduate until we have received and processed your graduation application. </div> </div> <div class='question-block'> <div class='question'> When will I get my diploma? </div> <div class='answer'> You will receive your diploma within 6-8 weeks of completing your degree requirements. Please keep in mind that instructors have up to two (2) weeks to submit final grades after the term concludes. <br> <br> Diplomas are mailed to the address you include on your graduation application. If your mailing address changes after you have submitted your graduation application, be sure to update us at <a href="mailto:graduation@online.berklee.edu">graduation@online.berklee.edu</a>. <br> <br> Keep in mind that if you are walking in Commencement, you will not receive your official diploma at the ceremony. </div> </div> <hr> <h4 id='transfer-credits'> Transfer Credits </h4> <div class='question-block'> <div class='question'> Can I find out how many transfer credits I am eligible for before I apply to the degree program? </div> <div class='answer'> If you are interested in applying to the Bachelor of Arts degree program and would like an estimate of the amount of transfer credit you would receive, you can request an unofficial transfer evaluation by emailing a copy of your transcript(s) to the Berklee Online Transfer Team at <a href="mailto:transfer@online.berklee.edu">transfer@online.berklee.edu</a>. Be sure to include your name, major of interest, and any additional questions you may have. You can expect to receive your assessment within 7-10 business days. </div> </div> <div class='question-block'> <div class='question'> I didn’t receive credit on my Official Evaluation for all of the courses that I thought I would. What should I do? </div> <div class='answer'> The earlier you contact us with questions or concerns regarding your evaluation, the easier it will be for us to address any issues. Therefore, it is very important when you first receive your official transfer evaluation that you review the information carefully. <br> <br> If you notice a remaining requirement that you believe you’ve already fulfilled, first consult our document on Common Reasons Credit Does Not Transfer. It’s possible that the course you are thinking of didn’t meet our eligibility requirements. <br> <br> If none of those exclusions apply, please fill out a Transfer Credit Equivalency Re-evaluation form for the courses you wish to have reconsidered. <br> <br> Sometimes, we are not able to locate specific information for a course online and we are not able to determine an equivalency, but we are always happy to review additional material which will help us make that determination. </div> </div> <div class='question-block'> <div class='question'> Do my Berklee Online, Berklee campus, or Prior Learning Credit coursework count towards the 60 transfer credit limit? </div> <div class='answer'> No, credits completed at Berklee or through the prior learning process do not count towards the 60 transfer credit limit. This maximum is for credit-bearing exams and undergraduate-level coursework completed externally. </div> </div> <div class='question-block'> <div class='question'> What is a credit deficiency and why do I need to make up credit? </div> <div class='answer'> Credit deficiencies are caused by transferring a course that is less than three (3) credits to fulfill a three (3) credit Berklee Online requirement. Students with a credit deficiency will be short of the minimum number of credits required to graduate once they have completed their program requirements. In order to be eligible to graduate, you will need to make up the credits you are deficient in. <br> <br> While the Transfer Team does their best to avoid giving students credit deficiencies, it is not always possible. You can make up the credits you are deficient in by completing additional Berklee Online coursework, by applying for prior learning credit, or by completing additional external coursework in the area in which you are deficient. <br> <br> <strong>Note</strong> all external courses will first need to be approved by the Transfer Team. </div> </div> <div class='question-block'> <div class='question'> Can transfer credit fulfill prerequisites? </div> <div class='answer'> It depends. Generally, transfer credit cannot be used to fulfill prerequisites unless we determine that the course you completed is a direct equivalent to one of the courses we offer at Berklee Online. Keep in mind that there are some courses which require you to pass a placement exam. For these you will need to achieve a passing grade on the test to fulfill the prerequisite, otherwise you will need to complete the appropriate Berklee Online course. </div> </div> <div class='question-block'> <div class='question'> Can I transfer credits to Berklee Online after I have started the degree program? </div> <div class='answer'> Yes, you can. To determine if the coursework you already completed or are considering taking is eligible to fulfill your remaining degree requirements, contact the Transfer Team at <a href="mailto:transfer@online.berklee.edu">transfer@online.berklee.edu</a>. </div> </div> <div class='question-block'> <div class='question'> I am a Berklee campus student. Can I transfer courses from Berklee Online to my campus-based program? </div> <div class='answer'> View a <a href="https://www.berklee.edu/registrar/online-course-equivalencies" target="_blank">list of transferable courses</a> to Berklee’s campus programs. <br> <br> For additional questions about transferring courses from Berklee Online to Berklee's campus programs please contact the campus transcript evaluator at <a href="mailto:transfercredits@berklee.edu">transfercredits@berklee.edu</a>. </div> </div> <div class='question-block'> <div class='question'> Are Berklee Online courses transferable to other institutions? </div> <div class='answer'> Berklee Online is regionally accredited by the New England Commission of Higher Education (NECHE), the same association that accredits our main campus and other leading academic institutions such as Harvard University and MIT. Our courses are transferable to other institutions, but it's up to the receiving institution to decide the number and types of courses that may transfer. We recommend getting a course pre-approved by an institution before enrolling. </div> </div> <hr> <h4 id='tuition'> Tuition </h4> <div class='question-block'> <div class='question'> How do Berklee Online’s costs compare to other education options? </div> <div class='answer'> Berklee Online’s programs have a tuition cost that is approximately 64 percent less than on-campus tuition at Berklee’s Boston campus. Moreover, a recent study revealed that the average annual tuition at for-profit colleges is more than twice as expensive as Berklee Online. Even average annual tuition at other accredited non-profit online universities is roughly $11,000 more expensive than tuition for a year with Berklee Online! </div> </div> <div class='question-block'> <div class='question'> How much does a <a href="/certificates" itemprop="url">certificate program</a> cost? </div> <div class='answer'> There is a one time $175 registration fee per certificate program. Students may either pay per course term (at the $1,545.00 per credit course cost) or pay in full to receive a 10 percent discount. The registration fee and all courses for the term you wish to begin in must be paid in full in order to begin. </div> </div> <div class='question-block'> <div class='question'> How much does an online <a href="/music-degrees" itemprop="url">Bachelor’s degree</a> cost? </div> <div class='answer'> Online undergraduate degree tuition is $59,160 for 120 credits for all majors except the guitar major. Tuition for the guitar major is $63,660. Students taking 10 courses per year can complete the degree in four years at a cost of $14,790 per year. (Note: Tuition and fees are subject to change.) </div> </div> <div class='question-block'> <div class='question'> How much does an online <a href="/music-degrees" itemprop="url">master's degree</a> cost? </div> <div class='answer'> Online graduate degree tuition is $33,120 for 36 credits. The Master of Music in Music Production and Master of Arts in Music Business programs are designed to be completed in one year of study. Both programs are comprised of 12 three-credit courses that can be taken during four 12-week semesters. </div> </div> <div class='question-block'> <div class='question'> What is included in the cost of a course? </div> <div class='answer'> The cost for an individual course includes the tuition fee. The cost of required books, hardware or software must be purchased separately, unless it is stated that these costs are included with your enrollment. Some courses may include additional fees for files or content. </div> </div> </div> </div> </div> </div> </div> </div> </div> <nav class='animate__animated animate__slideInLeft animate__faster' id='bo-collapse-nav'> <div id='bo-collapse-nav-header'> <div class='bo-collapse-logo'> <a href='/'> <img src='/assets/berklee-online-logo.svg?v=3'> </a> </div> <div id='bo-collapse-search-trigger'></div> <div id='bo-nav-close'> × </div> </div> <div id='bo-nav'> <ul> <li> <a class='parent' href='#'> All Programs <span class='chevron bottom'></span> </a> <ul class='bo-collapse bo-collapse-interests'> <li> <a href='/music-production' itemprop='url'>Music Production</a> </li> <li> <a href='/music-business' itemprop='url'>Music Business</a> </li> <li> <a href='/music-theory-harmony-and-ear-training'>Music Theory, Harmony, and Ear Training</a> </li> <li> <a href='/guitar' itemprop='url'>Guitar</a> </li> <li> <a href='/songwriting' itemprop='url'>Songwriting</a> </li> <li> <a href='/music-for-film-tv-and-games' itemprop='url'>Music for Film, TV, and Games</a> </li> <li> <a href='/arranging'>Arranging</a> </li> <li> <a href='/music-history-and-liberal-arts'>Music History and Liberal Arts</a> </li> <li> <a href='/piano-and-keyboard'>Piano and Keyboard</a> </li> <li> <a href='/voice'>Voice</a> </li> <li> <a href='/improvisation'>Improvisation</a> </li> <li> <a href='/dance-music-and-theater'> Dance, Music, and Theater </a> </li> <li> <a href='/orchestration'>Orchestration</a> </li> <li> <a href='/drums'>Drums</a> </li> <li> <a href='/bass'>Bass</a> </li> <li> <a href='/music-therapy-health-and-neuroscience'>Music Therapy, Health, and Neuroscience</a> </li> </ul> </li> <li> <a class='parent' href='#'> Degrees <span class='chevron bottom'></span> </a> <ul class='bo-collapse bo-collapse-degrees'> <li class='header'>Undergraduate Degrees</li> <li><a href="/music-degrees/undergraduate/overview">Overview</a></li><li><a href="/music-degrees/undergraduate/music-production">Music Production</a></li><li><a href="/music-degrees/undergraduate/guitar-performance">Guitar Performance</a></li><li><a href="/music-degrees/undergraduate/music-business">Music Business</a></li><li><a href="/music-degrees/undergraduate/songwriting">Songwriting</a></li><li><a href="/music-degrees/undergraduate/songwriting-and-producing-music">Songwriting and Producing Music</a></li><li><a href="/music-degrees/undergraduate/electronic-music-production-and-sound-design">Electronic Music Production and Sound Design</a></li><li><a href="/music-degrees/undergraduate/music-composition-for-film-tv-and-games">Music Composition for Film, TV, and Games</a></li><li><a href="/music-degrees/undergraduate/piano-performance">Piano Performance</a></li><li><a href="/music-degrees/undergraduate/interdisciplinary-music-studies-create-your-own-major">Interdisciplinary Music Studies (Create Your Own Major)</a></li><li><a href="/music-degrees/undergraduate/voice-performance">Voice Performance</a></li><li><a href="/music-degrees/undergraduate/music-composition">Music Composition</a></li><li><a href="/music-degrees/undergraduate/undeclared-option">Undeclared Option</a></li> <li class='header'>Graduate Degrees</li> <li><a href="/music-degrees/graduate/overview">Overview</a></li><li><a href="/music-degrees/graduate/music-production">Music Production</a></li><li><a href="/music-degrees/graduate/music-business">Music Business</a></li><li><a href="/music-degrees/graduate/songwriting">Songwriting</a></li><li><a href="/music-degrees/graduate/film-scoring">Film Scoring</a></li><li><a href="/music-degrees/graduate/interdisciplinary-music-studies">Interdisciplinary Music Studies</a></li> <li class='header'>Undergraduate Minors</li> <li><a href="/minors/overview">Overview</a></li><li><a href="/minors/film-and-media-scoring">Film and Media Scoring</a></li><li><a href="/minors/music-industry-entrepreneurship">Music Industry Entrepreneurship</a></li><li><a href="/minors/music-production-and-recording">Music Production and Recording</a></li> </ul> </li> <li> <a href='/certificates' itemprop='url'>Certificates</a> </li> <li> <a href='/courses' itemprop='url'>Courses</a> </li> <li> <a class='parent' href='#'> Admissions & Tuition <span class='chevron bottom'></span> </a> <ul class='bo-collapse bo-collapse-admissions'> <li class='header'>Undergraduate Admissions</li> <li> <a href='/degrees/about/undergraduate-degree-admissions-requirements' itemprop='url'>How to Apply</a> </li> <li> <a href='/degrees/about/undergraduate-degree-tuition-financial-aid' itemprop='url'>Tuition and Financial Aid</a> </li> <li> <a href='/degrees/about/undergraduate-degree-transfer-credits' itemprop='url'>Transfer Credits</a> </li> <li> <a href='/degrees/about/undergraduate-international-students' itemprop='url'>International Students</a> </li> <li> <a href='/military/getting-started' itemprop='url'>Military Benefits</a> </li> <li class='header'>Graduate Admissions</li> <li> <a href='/degrees/about/graduate-degree-admissions-requirements' itemprop='url'>How to Apply</a> </li> <li> <a href='/degrees/about/graduate-degree-tuition-financial-aid' itemprop='url'>Tuition and Financial Aid</a> </li> <li> <a href='/degrees/about/graduate-degree-transfer-credits' itemprop='url'>Transfer Credits</a> </li> <li> <a href='/degrees/about/graduate-international-students' itemprop='url'>International Students</a> </li> <li> <a href='/military/getting-started' itemprop='url'>Military Benefits</a> </li> </ul> </li> <li> <a class='parent' href='#'> About <span class='chevron bottom'></span> </a> <ul class='bo-collapse bo-collapse-about'> <li> <a href='/about/berklee-online' itemprop='url'>About</a> </li> <li class='mission-link'> <a href='/about/mission' itemprop='url'>Our Mission</a> </li> <li> <a href='/about/leadership-team' itemprop='url'>Leadership Team</a> </li> <li> <a href='/instructors' itemprop='url'>Instructor Directory</a> </li> <li> <a href='/about' itemprop='url' style='white-space: nowrap;'>School Info, Enrollment, and Policies</a> </li> <li> <a href='/work-with-us' itemprop='url'>Work With Us</a> </li> </ul> </li> <li> <a class='parent' href='#'> Resources <span class='chevron bottom'></span> </a> <ul class='bo-collapse bo-collapse-about'> <li> <a href='/careers-in-music/' itemprop='url'>Careers in Music</a> </li> <li> <a href='/free-music-course-resources' itemprop='url'>Free Music Resources</a> </li> <li> <a href='/sample-a-lesson' itemprop='url'>Sample a Lesson / How It Works</a> </li> <li> <a href='/handbooks' itemprop='url'>Handbooks</a> </li> <li> <a href='/deals' itemprop='url'>Student Deals</a> </li> <li> <a href='/mentor-collective' itemprop='url'>Mentorship Program</a> </li> <li> <a href='//online.berklee.edu/takenote' itemprop='url'> <em>Take Note</em> Online Magazine </a> </li> <li> <a href='/berklee-onsite'> <strong> Annual Event: Berklee Onsite </strong> </a> </li> </ul> </li> </ul> </div> <div id='bo-collapse-nav-bottom'> <a class='bo-collapse-search-trigger' data-backdrop='true' data-bs-target='#search-and-question-panel' data-bs-toggle='modal' href='#'> <i class='far fa-search'></i> Search </a> <a href='sms:18662375533'> <i class='far fa-comments'></i> Text Us </a> <a href='tel:18662375533'> <i class='far fa-phone'></i> Call Us </a> </div> </nav> </div> <section class='main-content' id='main-content'> <div class='body-overlay'></div> <div class='content-wrap' data-swiftype-index='true'> <div class='sticky-parent' property='data-sticky_parent' style='padding-bottom: 40px; position: relative;'> <section class='content-head no-gutter' data-scroll-index='0' id='overview'> <div class='container-fluid'> <div class='row justify-content-between'> <div class='col-12 col-lg-9' property='data-sticky_column'> <div class='enrollment-status-warning' id='same_course_warning'></div> <div class='course-head'> <h2> <a class='txt-lg a-black' href='/courses?level=undergraduate' itemprop='url'> Online Undergraduate-Level Course </a> </h2> <h1>Script Analysis for Theater</h1> <div class='bcb-course'> <div style="cursor:pointer;" class="bcb-popover" data-bs-toggle="popover" data-bs-trigger="focus" data-bs-html="true" tabindex="0" data-bs-content="Berklee Online now offers exciting courses in Dance, Music, and Theater from the renowned Boston Conservatory.<br/><br/> <a style='color: #222; box-shadow:inset 0 -1px 0 #ee243c; font-weight: 800; margin-bottom: 10px; display: inline-block;' href='/dance-music-and-theater'>Learn More</a>" data-bs-placement="bottom" data-bs-title="<span class='new'>New!</span> Boston Conservatory Courses" rel="nofollow"> <h4 class="bcb-course-notifier"> <i class="far fa-info-circle"></i> This is a Boston Conservatory course offered through Berklee Online. </h4></div> </div> <div class='course-subhead'> <img alt='author.full_name' class='img-circle' src='//online.berklee.edu/user/avatar?user_id=68418260'> <div class='course-subhead-text'> <p class='txt-sm'> Authored <span> by <a class="a-body-link" href="#instructors">David Valdes</a> </span> </p> <div class='separator'>|</div> <p class='txt-sm'> Course Code: <span> OCTHR-103 </span> </p> </div> </div> </div> <div class='row'> <div class='col-12 col-lg-4 key-points-wrap order-1 order-lg-2'> <div class='key-points'> <div class='term-message'> <i> <div class='fal fa-calendar-alt'></div> </i> <div class='term-message-text'> <h4><!--Next semester <br>starts April 7--> Next semester<br/>starts April 7</h4> </div> </div> <div class='key-course-duration'> <i class='fa-light fa-hourglass'></i> <h4>12 Weeks</h4> </div> <div class='key-course-level'> <div style='cursor:pointer;' data-courseid-order-label-level='265 1 Level 1 Level 1' class='course-level-icon offering-supporting-detail skill-level-1' data-bs-toggle='popover' data-bs-trigger='focus' tabindex='0' data-bs-content='100 level course. Foundational course material, no prerequisites required.' data-bs-placement='left' data-bs-title='Level 1 Course' rel='nofollow'><img src='/assets/skill-level-1.svg' alt='Level 1' /></div><div class='key-course-text'><h4>Level 1</h4></div> </div> <div class='credit-tuition'> <h4>3-Credit Tuition</h4> <span class='full-price'> $1,545 </span> <div class='user-price' style='display: none'> <span class='name'></span> <span class='price'></span> </div> </div> <div class='non-credit-tuition'> <h4>Non-Credit Tuition</h4> <span class='full-price'> $1,290 </span> <div class='user-price' style='display: none'> <span class='name'></span> <span class='price'></span> </div> </div> </div> </div> <div class='col-12 col-lg-8 order-2 order-lg-1'> <div class='overview'> <p dir="ltr">Welcome to <em>Script Analysis for Theater.</em> In this course we’re going to work backwards from your love of theater to closely examine how the plays you fell in love with were made. We’ll look at the movements in theater that spawned important genres and aesthetic devices that writers have used to engage audiences across time. Each week, we’ll discuss specific terminology and tools from within specific traditions, while considering how these movements speak to each other, and we’ll apply those ideas to selected readings. Our lens will be global, from ancient Japan and India to twenty-first century Broadway and Boston Conservatory. After deepening our understanding of the roots of theater-making, we’ll end the semester with our eyes focused on the present and the future, by together considering contemporary issues (including racism in American theater), and as students work in groups to present their prognosis for the longevity of specific plays. </p> <div class='read-more-container'><a class='read-more' href='#'>Read More</a><div class='readmore-hidden'> <p dir="ltr">This course will not only make you more fluent in some of the most important theater traditions in the world, but enhance your understanding of the texts with which you will engage as theater artists.<p dir="ltr">By the end of the course, you will be able to:<ul><li dir="ltr" role="presentation">recognize the genre of a work and the way that genre varies by time and culture</li><li dir="ltr" role="presentation">identify modes of presentation and how they signal meaning beyond the text of a work</li><li dir="ltr" role="presentation">analyze the intended effect on the audience of a playwright’s choice to defy genre or established modes</li><li dir="ltr" role="presentation">articulate the role of race and culture in how theater is received, promoted, and sustained</li><li dir="ltr" role="presentation">make a critical case for the longevity of a text, based on its artistic merits, cultural context, and your understanding of theater history</li></ul> <a class='read-less' href='#'> Read Less</a> </div> </div> </div> <div class='overview-video'> </div> </div> </div> </div> <div class='col-4 col-lg-3 d-none d-lg-block side-nav-container'> <div class='side-nav sticky-item' property='data-sticky_column'> <div class='side-nav-main'> <a class='nav-scroll active' data-scroll-nav='0' href='#overview'>Overview</a> <a class='nav-scroll' data-scroll-nav='1' href='#syllabus'>Syllabus</a> <a class='nav-scroll last' data-scroll-nav='2' href='#requirements'>Requirements</a> <a class='nav-scroll' data-scroll-nav='3' href='#instructors'>Instructors</a> <div class='foxy_enroll_warning' style='display: none;'></div> <div class='foxy_enroll'> <button class='add_to_cart btn-action bo-button bo-button-disabled' id='add_to_cart_btn'> <i class='fa fa-check-square d-lg-none disabled'></i> <div class='enroll_now'> Enroll Now </div> <span> No application required </span> </button> </div> <a class='bo-button-alt' href='#footer-form'>Request Info</a> <div class='side-nav-advisor-block'> <div class='advisor-contact-block'> <p class='guidance'>Need guidance?</p> <a class='tel-main' href='tel:18662375533'>1-866-BERKLEE</a> <a class='tel-intl' href='tel:16177472146'>Int'l: +1-617-747-2146</a> <p class='call-text'><span class="d-sm-none d-contact-sm"><a href="tel:18662375533">Call</a>, <a href="sms:18662375533">Text</a>, </span>or <a href="mailto: advisors@online.berklee.edu">Email us</a></p> </div> </div> </div> </div> </div> </div> </div> </section> <section class='page-section content-syllabus'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-lg-7'> <div class='syllabus content-section' data-scroll-index='1' id='syllabus'> <h2>Syllabus</h2> <p dir="ltr"><em>Lesson 1: What Makes Theater Distinct</em></p> <ul> <li dir="ltr" role="presentation">The Difference of a Live Genre</li> <li dir="ltr" role="presentation">Character, Conflict, and Motion</li> <li dir="ltr" role="presentation">How to Read a Play Manuscript</li> <li dir="ltr" role="presentation">Beats, Scenes, and Acts</li> <li dir="ltr" role="presentation">Assignment 1: The Narrative Trio in Action</li> </ul> <p dir="ltr"><em>Lesson 2: Tragedy</em></p> <ul> <li dir="ltr" role="presentation">Ancient Tragedy in Greece </li> <li dir="ltr" role="presentation">Tragedy in Japan’s Noh Theater </li> <li dir="ltr" role="presentation">Shakespearean Tragedy and 'Revenge Plays' </li> <li dir="ltr" role="presentation">Tragedy in African Theater</li> <li dir="ltr" role="presentation">The Role of Tragedy in Native American Theater Tradition</li> <li dir="ltr" role="presentation">The Debate over Modern Tragedy </li> <li dir="ltr" role="presentation">Assignment 2: Tragedy in Comparison</li> </ul> <p dir="ltr"><em>Lesson 3: Comedy</em></p> <ul> <li dir="ltr" role="presentation">Sanskrit Comedy</li> <li dir="ltr" role="presentation">Ancient Comedy: Greek and Roman</li> <li dir="ltr" role="presentation">From Clowns to Comedy of Manners</li> <li dir="ltr" role="presentation">Farce, Satire, Parody, and Black Comedy</li> <li dir="ltr" role="presentation">Assignment 3: Comedy Comparison and Analysis</li> </ul> <p dir="ltr"><em>Lesson 4: ‘Well-Made’ Plays and Beyond</em></p> <ul> <li dir="ltr" role="presentation">Story Structure</li> <li dir="ltr" role="presentation">The ‘Well-Made’ Play </li> <li dir="ltr" role="presentation">The Influence of the Well-Made Play on TV and Film Structure</li> <li dir="ltr" role="presentation">Well-Made Play Redux</li> <li dir="ltr" role="presentation">Assignment 4: <em>BFE</em> Analysis</li> </ul> <p dir="ltr"><em>Lesson 5: Beyond Genre</em></p> <ul> <li dir="ltr" role="presentation">Tragicomedy and Dramedy</li> <li dir="ltr" role="presentation">Playing with Tropes and Conventions</li> <li dir="ltr" role="presentation">Trope Bingo</li> <li dir="ltr" role="presentation">The Perils of Using Tropes</li> <li dir="ltr" role="presentation">Devised Work</li> <li dir="ltr" role="presentation">Directing <em>Father Comes Home from the Wars</em></li> <li dir="ltr" role="presentation">Assignment 5: <em>Bootycandy</em> Analysis</li> </ul> <p dir="ltr"><em>Lesson 6: Naturalism and Realism</em></p> <ul> <li dir="ltr" role="presentation">Why Realism and Naturalism Aren’t Always Interchangeable</li> <li dir="ltr" role="presentation">Naturalism in France </li> <li dir="ltr" role="presentation">Realism from Ibsen to Chekhov </li> <li dir="ltr" role="presentation">‘Angry Young Men’ and ‘Kitchen Sink’ Plays </li> <li dir="ltr" role="presentation">Assignment 6: <em>A Taste of Honey</em> Analysis </li> </ul> <p dir="ltr"><em>Lesson 7: Beyond Naturalism</em></p> <ul> <li dir="ltr" role="presentation">Non-Naturalism</li> <li dir="ltr" role="presentation">Heightened Naturalism</li> <li dir="ltr" role="presentation">Absurdism</li> <li dir="ltr" role="presentation">Playing with Time</li> <li dir="ltr" role="presentation">Assignment 7: <em>Elliot, A Soldier’s Fugue</em> Analysis</li> </ul> <p dir="ltr"><em>Lesson 8: Musicals and Their Conventions</em></p> <ul> <li dir="ltr" role="presentation">Music and Spectacle from the Beginning</li> <li dir="ltr" role="presentation">Popular Genres of Musicals</li> <li dir="ltr" role="presentation">Archetypal Numbers and Characters</li> <li dir="ltr" role="presentation">Musicals That Defy Expectations</li> <li dir="ltr" role="presentation">Assignment 8: <em>The Band’s Visit</em> Analysis</li> </ul> <p dir="ltr"><em>Lesson 9: Contemporary Theater Part One: Theater as Protest and Movement</em></p> <ul> <li dir="ltr" role="presentation">Twentieth Century Movements for Theater as Change</li> <li dir="ltr" role="presentation">Perils and Promises of ‘Message Plays’</li> <li dir="ltr" role="presentation">Documentary Theatre</li> <li dir="ltr" role="presentation">Assignment 9: <em>Pipeline</em> Analysis</li> </ul> <p dir="ltr"><em>Lesson 10: Contemporary Theater Part Two: Racism and Bias in American Theater</em></p> <ul> <li dir="ltr" role="presentation">Language Matters </li> <li dir="ltr" role="presentation">Own Voices</li> <li dir="ltr" role="presentation">Reenacting Trauma</li> <li dir="ltr" role="presentation">Colorblind vs. Conscious Casting</li> <li dir="ltr" role="presentation">Intersectionality </li> <li dir="ltr" role="presentation">Assignment 10: Identity and Intersectionality in American Theater</li> </ul> <p dir="ltr"><em>Lesson 11: Central Inquiry, Part One: The Lifespan of a Play</em></p> <ul> <li dir="ltr" role="presentation">‘Canon’ and Gatekeepers</li> <li dir="ltr" role="presentation">The Influence of Criticism</li> <li dir="ltr" role="presentation">Critical Reception, Then and Now</li> <li dir="ltr" role="presentation">Context Matters</li> <li dir="ltr" role="presentation">Assignment 11: Central Inquiry Research and Preparation </li> </ul> <p dir="ltr"><em>Lesson 12: Central Inquiry, Part Two: Presentation and Portfolio</em></p> <ul> <li dir="ltr" role="presentation">Encapsulating a Play</li> <li dir="ltr" role="presentation">What Makes the Work (and Its Author) Unique or Distinct?</li> <li dir="ltr" role="presentation">What Makes a Play Last?</li> <li dir="ltr" role="presentation">You Take the Stage</li> <li dir="ltr" role="presentation">Assignment 12: Final Project (Central Inquiry)</li> </ul> </div> </div> </div> </div> </section> <section class='page-section content-requirements'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-lg-7'> <div class='requirements content-section' data-scroll-index='2' id='requirements'> <h2>Requirements</h2> <h4>Prerequisites and Course-Specific Requirements </h4><div class="truncate-paragraph imported-rtf"><p><strong>Prerequisite Courses, Knowledge, and/or Skills</strong></p> <ul> <li>This course does not have any prerequisites.</li> </ul> <p><strong>Textbook(s)</strong></p> <ul> <li>All of the following plays are required:<ul> <li><em><a rel="noopener noreferrer" target="_blank" href="https://www.amazon.com/Kamloopa-Indigenous-Kim-Senklip-Harvey/dp/1772012424/">Kamloopa</a></em> by Kim Senklip Harvey</li> <li><em><a rel="noopener noreferrer" target="_blank" href="https://www.amazon.com/Bootycandy-Robert-OHara/dp/0573703981">Bootycandy</a></em> by Robert O'Hara</li> <li><em><a rel="noopener noreferrer" target="_blank" href="https://www.amazon.com/Bands-Visit-Itamar-Moses/dp/1559365862/">The Band's Visit</a></em> by Itamar Moses</li> <li><em><a rel="noopener noreferrer" target="_blank" href="https://www.amazon.com/Pipeline-TCG-Dominique-Morisseau/dp/1559365870/">Pipeline</a></em> by Dominique Morisseau</li></ul></li> <li>A reading anthology compiled by course author, David Valdes, will be included as a free download in the course.</li> </ul> <p><strong>Software</strong></p> <ul> <li>Presentation software, such as Microsoft Powerpoint, <a rel="noopener noreferrer" target="_blank" href="https://www.google.com/slides/about/">Google Slides</a> (free), Apple Keynote, <a rel="noopener noreferrer" target="_blank" href="https://www.openoffice.org/">Apache OpenOffice</a> (free), etc.</li> </ul> <p><strong>Student Deals</strong><br /> After enrolling, be sure to check out our <a rel="noopener noreferrer" target="_blank" href="https://online.berklee.edu/deals">Student Deals</a> page for various offers on software, hardware, and more. Please contact <a rel="noopener noreferrer" target="_blank" href="mailto:support@online.berklee.edu">support@online.berklee.edu</a> with any questions.</p></div> <hr> <h4>General Course Requirements</h4> <div class='readmore-hidden'> <p> <strong> Below are the minimum requirements to access the course environment and participate in Live Classes. </strong> Please make sure to also check the Prerequisites and Course-Specific Requirements section above, and ensure your computer meets or exceeds the minimum system requirements for all software needed for your course. </p> <p> <strong>Mac Users</strong> </p> <ul> <li> <a href="https://support.apple.com/en-us/111980" rel="noopener noreferrer" target="_blank">macOS Big Sur 11.0 or later</a> </li> </ul> <p> <strong>PC Users</strong> </p> <ul> <li> <a href="https://support.microsoft.com/en-us/windows/windows-10-system-requirements-6d4e9a79-66bf-7950-467c-795cf0386715" rel="noopener noreferrer" target="_blank">Windows 10 or later</a> </li> </ul> <p> <strong>All Users</strong> </p> <ul> <li> Latest version of <a href="https://www.google.com/chrome/" target="_blank">Google Chrome</a> </li> <li>Zoom meeting software</li> <li>Webcam</li> <li>Speakers or headphones</li> <li>External or internal microphone</li> <li>Broadband Internet connection</li> </ul> </div> </div> </div> </div> </div> </section> <section class='page-section content-faculty'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-lg-7'> <div class='faculty content-section' data-scroll-index='3' id='instructors'> <h2>Instructors</h2> <div class='row'> <div class='col-12 col-sm-2 instructor-img'> <img alt='David Valdes' class='rounded-circle' src='//online.berklee.edu/user/avatar?user_id=68418260'> </div> <div class='col-12 col-sm-10'> <div class='txt-lg fac-name'><a class="a-body-link" href="/faculty/david-valdes">David Valdes</a></div> <p class='txt-sm'>Author</p> <p>David Valdes is an award-winning playwright whose work has been performed across the US and abroad. He has worked with Actor’s Theater of Charlotte, Milagro, Borderline, Mixed Blood, Boulder Ensemble Studio Theater, The Humana Festival, New York International Fringe Festival, Portland Stage, Stage Left, Fresh Ink, the Boston Center for the Arts, Company One, and others. His plays have twice been featured in the National Showcase of New Plays, and he has received fellowships from Company One, IATI, and the Boston Foundation. As a columnist, he has written for the <em>New York Times</em>, <em>Boston Globe</em>, <em>Huffington Post</em>, and <em>Medium</em>.</p> </div> </div> <hr> <div class='row'> <div class='col-12 col-sm-2 instructor-img'> <img alt='Sarah Anne Stinnett' class='rounded-circle' src='//online.berklee.edu/user/avatar?user_id=69058718'> </div> <div class='col-12 col-sm-10'> <div class='txt-lg fac-name'><a class="a-body-link" href="/faculty/sarah-anne-stinnett">Sarah Anne Stinnett</a></div> <p class='txt-sm'>Instructor</p> <p>Sarah Anne Stinnett is a Boston-based writer and educator. She holds an MFA in Creative Writing from Lesley University and an ALM in Dramatic Arts and ALB in Humanities from Harvard University. Previously, she attended Berklee College of Music for bass performance, often extending her studies through the ProArts Consortium at Emerson College, Boston Conservatory, and the School of the Museum of Fine Arts. </p> <div class='read-more-container'><a class='read-more' href='#'>Read More</a><div class='readmore-hidden'> <p>Sarah Anne’s poetry appears or is forthcoming in <em>Plume, Booth, Palette Poetry, Mom Egg Review, On the Seawall, Chicago Quarterly Review, Tar River Poetry</em>, and elsewhere. Her work received Honorable Mention in <em>Common Ground Review’s</em> 2024 Annual Poetry Contest and won the 2020 Cambridge Sidewalk Poetry Contest, now incised in cement. <p>With Boston Dance Theater (BDT), Sarah Anne teaches voicework and embodied practices. Coaching and writing credits with BDT include <em>Bodyspeaking </em>supported by New England Foundation for the Arts,<em> SURGE </em> presented by Woods Hole Oceanographic Institution & Boston Center for the Arts, and <em>Man of the Hour </em>presented by Global Arts Live at the Institute of Contemporary Arts.<em> </em><p>Sarah Anne has supported and taught speech, communication, and social media courses at Harvard Extension and Harvard Summer Schools since 2017; she offers a graduate course on oral interpretation of literary works at Lesley University; and she has instructed liberal arts courses at Berklee Online since 2022. Her core tenets in teaching are as in life: employ unparalleled curiosity, doing is discovering, and a life of learning is impelled by the study of the masters before. <a class='read-less' href='#'> Read Less</a> </div> </div> </div> </div> </div> </div> </div> </div> </section> <section class='page-section content-relations'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-lg-7'> <div class='content-section'> <h2>What's Next?</h2> <p class='overview'>When taken for credit, Script Analysis for Theater can be applied towards the completion of these related programs:</p> <div class='associated-script-analysis-for-theater'> <h4>Related Certificate Programs</h4> <ul class='related-certificates bo-list-lined'> <li> <a href='/certificates/general-music-studies-professional'> General Music Studies Professional Certificate </a> </li> <li> <a href='/certificates/general-music-studies-advanced-professional'> General Music Studies Advanced Professional Certificate </a> </li> </ul> </div> <h4>Related Degree Majors</h4> <ul class='related-degrees bo-list-lined'> <li> <a href='/music-degrees/undergraduate/interdisciplinary-music-studies-create-your-own-major'> Bachelor's Degree in Interdisciplinary Music Studies (Create Your Own Major) </a> </li> <li> <a href='/music-degrees/undergraduate/music-production'> Bachelor's Degree in Music Production </a> </li> <li> <a href='/music-degrees/undergraduate/guitar-performance'> Bachelor's Degree in Guitar Performance </a> </li> <li> <a href='/music-degrees/undergraduate/music-business'> Bachelor's Degree in Music Business </a> </li> <li> <a href='/music-degrees/undergraduate/songwriting'> Bachelor's Degree in Songwriting </a> </li> <li> <a href='/music-degrees/undergraduate/songwriting-and-producing-music'> Bachelor's Degree in Songwriting and Producing Music </a> </li> <li> <a href='/music-degrees/undergraduate/electronic-music-production-and-sound-design'> Bachelor's Degree in Electronic Music Production and Sound Design </a> </li> <li> <a href='/music-degrees/undergraduate/music-composition-for-film-tv-and-games'> Bachelor's Degree in Music Composition for Film, TV, and Games </a> </li> <li> <a href='/music-degrees/undergraduate/undeclared-option'> (Pre-Degree) Undeclared Option </a> </li> </ul> </div> </div> </div> </div> </section> <section class='page-section content-advisors'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-lg-7'> <div class='advisors content-section'> <h2>Questions?</h2> <p class='txt-lg'>Contact our Academic Advisors by phone at 1-866-BERKLEE (U.S.), 1-617-747-2146 (INT'L), or by email at <a href="mailto:advisors@online.berklee.edu">advisors@online.berklee.edu</a>.</p> </div> </div> </div> </div> </section> </div> <section class='course-nav-phone d-lg-none'> <div class='container-cta'> <a class='req-info' href='#footer-form'> <i> <div class='far fa-info-circle'></div> </i> Get Info </a> <a class='call-text' href='tel:18662375533'> <i> <div class='far fa-phone'></div> </i> Call </a> <a class='call-text' href='sms:18662375533'> <i> <div class='far fa-comments'></div> </i> Text </a> <div class='foxy_enroll'> <button class='add_to_cart btn-action bo-button'> <i class='far fa-check-square d-lg-none disabled'></i> Enroll Now <span> No application required </span> </button> </div> </div> </section> <script type="application/ld+json">{ "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "item": { "@id": "https://online.berklee.edu/courses", "name": "Courses" } },{ "@type": "ListItem", "position": 2, "item": { "@id": "https://online.berklee.edu/courses/script-analysis-for-theater", "name": "Script Analysis for Theater", "image": "https://assets.online.berklee.edu/berklee-online-logo-red-gray.png" } }] } </script><script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Product", "name": "Script Analysis for Theater", "sku": "3-Credit Course (OCTHR-103)", "image": [ "https://assets.online.berklee.edu/berklee-online-logo-red-gray.png" ], "description": "Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. ", "brand": { "@type": "Thing", "name": "Course" }, "offers": { "@type": "Offer", "priceCurrency": "USD", "price": "1545", "itemCondition": "http://schema.org/NewCondition", "availability": "http://schema.org/InStock", "seller": { "@type": "Organization", "name": "Berklee Online", "address": { "@type": "PostalAddress", "addressLocality": "Boston, MA", "postalCode": "02115", "streetAddress": "160 Massachusetts Avenue" } } } } </script><script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Product", "name": "Script Analysis for Theater", "sku": "Non-Credit Course (OCTHR-103)", "image": [ "https://assets.online.berklee.edu/berklee-online-logo-red-gray.png" ], "description": "Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. ", "brand": { "@type": "Thing", "name": "Course" }, "offers": { "@type": "Offer", "priceCurrency": "USD", "price": "1290", "itemCondition": "http://schema.org/NewCondition", "availability": "http://schema.org/InStock", "seller": { "@type": "Organization", "name": "Berklee Online", "address": { "@type": "PostalAddress", "addressLocality": "Boston, MA", "postalCode": "02115", "streetAddress": "160 Massachusetts Avenue" } } } } </script><script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Course", "name": "Script Analysis for Theater", "courseCode": "OCTHR-103", "description": "Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. ", "provider": { "@type": "Organization", "name": "Berklee Online", "address": { "@type": "PostalAddress", "addressLocality": "Boston, MA", "postalCode": "02115", "streetAddress": "160 Massachusetts Avenue" }, "sameAs": "https://online.berklee.edu/courses/script-analysis-for-theater" }, "educationalAlignment": [ { "@type": "AlignmentObject", "alignmentType": "educationalSubject", "educationalFramework": "3-Credit Course", "targetName": "Script Analysis for Theater", "targetUrl": "https://online.berklee.edu/courses/script-analysis-for-theater" } ] } </script><script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Course", "name": "Script Analysis for Theater", "courseCode": "OCTHR-103", "description": "Script Analysis for Theater offers insight into the role of form and structure in theater. Examining genres, aesthetics, and movements across time and around the globe, students will finish the course better prepared to deliver their own work to the stage. ", "provider": { "@type": "Organization", "name": "Berklee Online", "address": { "@type": "PostalAddress", "addressLocality": "Boston, MA", "postalCode": "02115", "streetAddress": "160 Massachusetts Avenue" }, "sameAs": "https://online.berklee.edu/courses/script-analysis-for-theater" }, "educationalAlignment": [ { "@type": "AlignmentObject", "alignmentType": "educationalSubject", "educationalFramework": "Non-Credit Course", "targetName": "Script Analysis for Theater", "targetUrl": "https://online.berklee.edu/courses/script-analysis-for-theater" } ] } </script><script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-2828821-86', 'auto'); ga('set','dimension1','OCTHR-103'); ga('set','dimension2','course'); ga('set','dimension3','1545'); ga('set','dimension4', 'BOL'); ga('require', 'ec'); ga('ec:addProduct', { 'id': "OCTHR-103", 'name': "Script Analysis for Theater", 'category': "Course" }); ga('ec:setAction', 'detail'); ga('send', 'pageview'); function ga_add_to_cart() { ga('ec:addProduct', { 'id': "OCTHR-103", 'name': "Script Analysis for Theater", 'category': "Course", 'price': 1545, 'variant': "Currently Enrolling In" }); ga('ec:setAction', 'add'); ga('send', 'event', 'UX', 'click', 'add to cart'); } window.course_item_id = 67634368; window.course_code = "OCTHR-103" </script> </div> </section> <section data-swiftype-index='false' id='footer'> <section class='footer-form nopass' id='footer-form'> <div class='container-fluid'> <div class='row'> <div class='col-12 col-sm-12 col-md-12 col-lg-6 footer-form-copy'> <div class='details-container global'> <h2 class="unknown">Get Instant Access to Free Music Resources</h2> <h2 class="known">Access Free Music Resources</h2> <ul> <li> <img src="https://assets.online.berklee.edu/Footer+Form/sample-simple.svg" loading="lazy" width="70" height="70"/> <div class="resource-item-content"> <h4>Free Sample Lessons</h4> <p>Take our online school for a test drive with our free sample course, featuring 12 lessons from our most popular courses.</p> </div> </li> <li> <img src="https://assets.online.berklee.edu/Footer+Form/handbook-simple.svg" loading="lazy" width="70" height="70"/> <div class="resource-item-content"> <h4>Degree Handbooks</h4> <p>Download free course materials designed to provide you with marketable skills in music.</p> </div> </li> <li> <img src="https://assets.online.berklee.edu/Footer+Form/catalog-simple.svg" loading="lazy" width="70" height="70"/> <div class="resource-item-content"> <h4>Online Course Catalog</h4> <p>Browse more than 200 unique 12-week courses in a wide variety of musical interest areas.</p> </div> </li> <li> <img src="https://assets.online.berklee.edu/Footer+Form/news-simple.svg" loading="lazy" width="70" height="70"/> <div class="resource-item-content"> <h4>News and Exclusive Content</h4> <p>Receive the latest in music trends, video tutorials, podcasts, and more.</p> </div> </li> </ul> </div> </div> <div class='col-12 col-md-12 col-lg-5 offset-lg-1' id='lead-form-passless'> <div class='form-login-prompt text-center'> <h4> Already have an account? <br> <a href='https://online.berklee.edu/register/login?return_url=https://online.berklee.edu/courses/script-analysis-for-theater'>Log in</a> to get access. <br> <br> </h4> <div class='text-start'> <!-- FORM: HEAD SECTION --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="referrer" content="no-referrer-when-downgrade"> <!-- THIS SCRIPT NEEDS TO BE LOADED FIRST BEFORE wforms.js --> <script type="text/javascript" data-for="FA__DOMContentLoadedEventDispatch" src="https://berklee.tfaforms.net/js/FA__DOMContentLoadedEventDispatcher.js" defer></script> <script type="text/javascript"> document.addEventListener("FA__DOMContentLoaded", function(){ const FORM_TIME_START = Math.floor((new Date).getTime()/1000); let formElement = document.getElementById("tfa_0"); if (null === formElement) { formElement = document.getElementById("0"); } let appendJsTimerElement = function(){ let formTimeDiff = Math.floor((new Date).getTime()/1000) - FORM_TIME_START; let cumulatedTimeElement = document.getElementById("tfa_dbCumulatedTime"); if (null !== cumulatedTimeElement) { let cumulatedTime = parseInt(cumulatedTimeElement.value); if (null !== cumulatedTime && cumulatedTime > 0) { formTimeDiff += cumulatedTime; } } let jsTimeInput = document.createElement("input"); jsTimeInput.setAttribute("type", "hidden"); jsTimeInput.setAttribute("value", formTimeDiff.toString()); jsTimeInput.setAttribute("name", "tfa_dbElapsedJsTime"); jsTimeInput.setAttribute("id", "tfa_dbElapsedJsTime"); jsTimeInput.setAttribute("autocomplete", "off"); if (null !== formElement) { formElement.appendChild(jsTimeInput); } }; if (null !== formElement) { if(formElement.addEventListener){ formElement.addEventListener('submit', appendJsTimerElement, false); } else if(formElement.attachEvent){ formElement.attachEvent('onsubmit', appendJsTimerElement); } } }); </script> <link href="https://berklee.tfaforms.net/dist/form-builder/5.0.0/wforms-layout.css?v=20af30f1c23509914ea42dbd6ad52d9bffc97033" rel="stylesheet" type="text/css" /> <link href="https://berklee.tfaforms.net/uploads/themes/theme-91.css" rel="stylesheet" type="text/css" /> <link href="https://berklee.tfaforms.net/dist/form-builder/5.0.0/wforms-jsonly.css?v=20af30f1c23509914ea42dbd6ad52d9bffc97033" rel="alternate stylesheet" title="This stylesheet activated by javascript" type="text/css" /> <script type="text/javascript" src="https://berklee.tfaforms.net/wForms/3.11/js/wforms.js?v=20af30f1c23509914ea42dbd6ad52d9bffc97033"></script> <script type="text/javascript"> if(wFORMS.behaviors.prefill) wFORMS.behaviors.prefill.skip = true; </script> <script type="text/javascript" src="https://berklee.tfaforms.net/wForms/3.11/js/localization-en_US.js?v=20af30f1c23509914ea42dbd6ad52d9bffc97033"></script> <script> var FAoldJQ; if (typeof $ != 'undefined' && $.noConflict) FAoldJQ = $.noConflict(true); </script> <script src="https://berklee.tfaforms.net/dist/jquery/jquery.0416573c648d279fd758.js"></script> <script src="https://berklee.tfaforms.net/js/typeahead/v1.2.0/typeahead.bundle.js"></script> <script> var FA$ = $.noConflict(true); if (FAoldJQ) $ = FAoldJQ; </script> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> <!-- FORM: BODY SECTION --> <div class="wFormContainer" > <div class="wFormHeader"></div> <style type="text/css"> #tfa_1, *[id^="tfa_1["] { width: 300px !important; } #tfa_1-D, *[id^="tfa_1["][class~="field-container-D"] { width: auto !important; } #tfa_2, *[id^="tfa_2["] { width: 300px !important; } #tfa_2-D, *[id^="tfa_2["][class~="field-container-D"] { width: auto !important; } #tfa_3, *[id^="tfa_3["] { width: 300px !important; } #tfa_3-D, *[id^="tfa_3["][class~="field-container-D"] { width: auto !important; } #tfa_4, *[id^="tfa_4["] { width: 300px !important; } #tfa_4-D, *[id^="tfa_4["][class~="field-container-D"] { width: auto !important; } #tfa_50-L, label[id^="tfa_50["] { width: 20px !important; min-width: 0px; } </style><div class=""><div class="wForm" id="4928346-WRPR" data-language="en_US" dir="ltr"> <div class="codesection" id="code-4928346"><script type="text/javascript"> // If you've named a field with a variable name, this function will return its current value. function getFieldValue(fieldVariableName) { let className = 'calc-' + fieldVariableName; let fieldEl = document.getElementsByClassName(className)[0]; return fieldEl.value; } // Loads GTM with the given container ID. function loadGTM(gtmContainerID) { // This is the exact code snippet from Google, except the container ID is a variable. (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',gtmContainerID); } // This function gets used by hidden fields to grab utm campaign data from the URL function getQueryStringParams(sParam) { const params = new URLSearchParams(window.location.search) if (params.has(sParam)) { return params.get(sParam); } else { return 'parameter not in URL'; } } // When the page loads, try to find the gtmContainerID field and use it to load GTM. window.addEventListener('load', (event) => { let containerID = getFieldValue('gtmContainerID'); if (containerID) { loadGTM(containerID); dataLayer.push({event: 'virtualPageview'}); } else { } }); </script></div> <form method="post" action="https://berklee.tfaforms.net/api_v2/rest/workflow/processor" class="hintsBelow labelsAbove" id="4928346"> <fieldset id="tfa_5" class="section inline wf-acl-hidden"> <legend id="tfa_5-L">Hidden fields (do not delete)</legend> <div class="htmlSection" id="tfa_6"><div class="htmlContent" id="tfa_6-HTML">This group will not appear when actually filling out the form. See <a target="_blank" href="https://docs.google.com/document/d/1k9WyMtOto3L96_Xx6wMsQ_n_15OCHiHmpBRy0B7HCOA/edit#">this document</a> for more info about how to use these. </div></div> <input type="hidden" id="tfa_1" name="tfa_1" value="" class=""><input type="hidden" id="tfa_2" name="tfa_2" value="" class="formula=window.location.href;"><input type="hidden" id="tfa_3" name="tfa_3" value="" class=""><input type="hidden" id="tfa_4" name="tfa_4" value="GTM-PHJTR6V" class="calc-gtmContainerID"><input type="hidden" id="tfa_7" name="tfa_7" value="" class="formula=getQueryStringParams('utm_campaign')"><input type="hidden" id="tfa_11" name="tfa_11" value="" class="formula=getQueryStringParams('utm_medium');"><input type="hidden" id="tfa_9" name="tfa_9" value="" class="formula=getQueryStringParams('utm_source');"><input type="hidden" id="tfa_10" name="tfa_10" value="" class="formula=getQueryStringParams('utm_term');"><input type="hidden" id="tfa_13" name="tfa_13" value="" class="formula=getQueryStringParams('utm_content');"><input type="hidden" id="tfa_15" name="tfa_15" value="" class="formula=getQueryStringParams('campaign_id');"><input type="hidden" id="tfa_158" name="tfa_158" value="" class=""><div class="oneField field-container-D " id="tfa_153-D"> <label id="tfa_153-L" class="label preField " for="tfa_153">Subject Area Helper PL</label><br><div class="inputWrapper"><input type="text" id="tfa_153" name="tfa_153" value="" readonly title="Subject Area Helper PL" class="formula=subject readonly"></div> </div> <div class="oneField field-container-D " id="tfa_156-D"> <label id="tfa_156-L" class="label preField " for="tfa_156">Hidden Level Helper PL</label><br><div class="inputWrapper"><input type="text" id="tfa_156" name="tfa_156" value="" readonly title="Hidden Level Helper PL" class="formula=lvl readonly"></div> </div> </fieldset> <div class="oneField field-container-D " id="tfa_16-D"> <label id="tfa_16-L" class="label preField reqMark" for="tfa_16">First Name</label><br><div class="inputWrapper"><input aria-required="true" type="text" id="tfa_16" name="tfa_16" value="" autocomplete="off" title="First Name" class="required"></div> </div> <div class="oneField field-container-D " id="tfa_17-D"> <label id="tfa_17-L" class="label preField reqMark" for="tfa_17">Last Name</label><br><div class="inputWrapper"><input aria-required="true" type="text" id="tfa_17" name="tfa_17" value="" autocomplete="off" title="Last Name" class="required"></div> </div> <div class="oneField field-container-D " id="tfa_18-D"> <label id="tfa_18-L" class="label preField reqMark" for="tfa_18">Email Address</label><br><div class="inputWrapper"><input aria-required="true" type="text" id="tfa_18" name="tfa_18" value="" autocomplete="off" title="Email Address" class="validate-email required"></div> </div> <div class="oneField field-container-D " id="tfa_111-D"> <label id="tfa_111-L" class="label preField reqMark" for="tfa_111">What would you like to study?</label><br><div class="inputWrapper"><select aria-required="true" id="tfa_111" name="tfa_111" data-filter-dependent="#tfa_121" title="What would you like to study?" class="calc-subject required"><option value="">Please select...</option> <option value="tfa_112" id="tfa_112" class="calcval-Interdisciplinary\u0020Music\u0020Studies">Interdisciplinary Music Studies</option> <option value="tfa_113" id="tfa_113" class="calcval-Music\u0020Business">Music Business</option> <option value="tfa_114" id="tfa_114" class="calcval-Music\u0020Performance">Music Performance</option> <option value="tfa_115" id="tfa_115" class="calcval-Music\u0020Production">Music Production</option> <option value="tfa_116" id="tfa_116" class="calcval-Music\u0020Theory\u0020and\u0020Composition">Music Theory and Composition</option> <option value="tfa_117" id="tfa_117" class="calcval-Scoring\u0020for\u0020Film,\u0020TV,\u0020and\u0020Games">Scoring for Film, TV, and Games</option> <option value="tfa_118" id="tfa_118" class="calcval-Songwriting">Songwriting</option> <option value="tfa_119" id="tfa_119" class="calcval-Undecided">Undecided</option></select></div> </div> <div class="oneField field-container-D " id="tfa_121-D"> <label id="tfa_121-L" class="label preField reqMark" for="tfa_121">What level are you interested in?</label><br><div class="inputWrapper"><select aria-required="true" id="tfa_121" name="tfa_121" data-filter-control="#tfa_111" title="What level are you interested in?" class="calc-lvl required"><option value="">Please select...</option> <optgroup id="tfa_122" label="Interdisciplinary Music Studies" class="choiceGroup"> <option value="tfa_130" id="tfa_130" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_131" id="tfa_131" class="calcval-Graduate">Graduate</option> <option value="tfa_132" id="tfa_132" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_123" label="Music Business" class="choiceGroup"> <option value="tfa_133" id="tfa_133" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_134" id="tfa_134" class="calcval-Graduate">Graduate</option> <option value="tfa_135" id="tfa_135" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_124" label="Music Performance" class="choiceGroup"> <option value="tfa_136" id="tfa_136" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_137" id="tfa_137" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_125" label="Music Production" class="choiceGroup"> <option value="tfa_138" id="tfa_138" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_139" id="tfa_139" class="calcval-Graduate">Graduate</option> <option value="tfa_159" id="tfa_159" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_126" label="Music Theory and Composition" class="choiceGroup"> <option value="tfa_168" id="tfa_168" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_140" id="tfa_140" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_127" label="Scoring for Film, TV, and Games" class="choiceGroup"> <option value="tfa_141" id="tfa_141" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_142" id="tfa_142" class="calcval-Graduate">Graduate</option> <option value="tfa_143" id="tfa_143" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_128" label="Songwriting" class="choiceGroup"> <option value="tfa_144" id="tfa_144" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_145" id="tfa_145" class="calcval-Graduate">Graduate</option> <option value="tfa_146" id="tfa_146" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> </optgroup> <optgroup id="tfa_129" label="Undecided" class="choiceGroup"> <option value="tfa_147" id="tfa_147" class="calcval-Undergraduate">Undergraduate</option> <option value="tfa_148" id="tfa_148" class="calcval-Graduate">Graduate</option> <option value="tfa_149" id="tfa_149" class="calcval-Certificates\u0020and\u0020Courses">Certificates and Courses</option> <option value="tfa_154" id="tfa_154" class="calcval-Undecided">Undecided</option> </optgroup></select></div> </div> <div class="oneField field-container-D hintsBelow " id="tfa_151-D"> <label id="tfa_151-L" class="label preField reqMark" for="tfa_151">What program are you interested in?</label><br><div class="inputWrapper"> <input aria-required="true" type="text" id="tfa_151" name="tfa_151" value="" aria-describedby="tfa_151-HH" title="What program are you interested in?" data-dataset-allow-free-responses="0" data-dataset-clear-cache="1" autocomplete="off" data-dataset-parameters="tfa_153 tfa_156" data-dataset-timestamp="1669073906" data-dataset-id="c30187ce-eb48-4559-b147-dc7e57a5726b" data-dataset-map="b=tfa_158," data-dataset-type="salesforce-picklist" data-dataset-url="https://berklee.tfaforms.net/api_v2/datasets" class="required wfAutosuggest"><i class="fa fa-spinner fa-pulse fa-fw tt-spinner"></i><i class="fa fa-search tt-search" aria-hidden="true"></i><i class="fa fa-times-circle tt-clear no-input" tabindex="0" aria-label="Clear field" role="button"></i><span class="field-hint-inactive" id="tfa_151-H"><span id="tfa_151-HH" class="hint">Please select from drop down.</span></span> </div> </div> <div class="oneField field-container-D " id="tfa_160-D"> <label id="tfa_160-L" class="label preField " for="tfa_160">Would you like an advisor to contact you?</label><br><div class="inputWrapper"><select id="tfa_160" name="tfa_160" title="Would you like an advisor to contact you?" class=""><option value="">Please select...</option> <option value="tfa_165" id="tfa_165" class="">No, thank you</option> <option value="tfa_166" id="tfa_166" data-conditionals="#tfa_164" class="">Yes, by phone</option> <option value="tfa_167" id="tfa_167" class="">Yes, by email</option></select></div> </div> <div class="oneField field-container-D " id="tfa_164-D"> <label id="tfa_164-L" class="label preField reqMark" for="tfa_164">Phone Number</label><br><div class="inputWrapper"> <input aria-required="true" type="text" id="tfa_164" name="tfa_164" value="" autocomplete="off" aria-describedby="tfa_164-HH" data-condition="`#tfa_166`" title="Phone Number" class="required"><span class="field-hint-inactive" id="tfa_164-H"><span id="tfa_164-HH" class="hint">Please include country code.</span></span> </div> </div> <div class="oneField field-container-D " id="tfa_50-D" role="group" aria-labelledby="tfa_50-L" data-tfa-labelledby="-L tfa_50-L"><div class="inputWrapper"><span id="tfa_50" class="choices vertical "><span class="oneChoice"><input type="checkbox" value="tfa_51" class="" id="tfa_51" name="tfa_51" aria-labelledby="tfa_51-L" data-tfa-labelledby="tfa_50-L tfa_51-L" data-tfa-parent-id="tfa_50"><label class="label postField" id="tfa_51-L" for="tfa_51"><span class="input-checkbox-faux"></span><span id="docs-internal-guid-d26dc06c-7fff-581b-e661-5a726f53b366"><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">By submitting this form you are agreeing to receive communications from Berklee and to have your information processed in accordance with the terms of our </span><a href="https://www.berklee.edu/policies/terms"><span style="font-size: 11pt; font-family: Arial; color: rgb(17, 85, 204); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">Privacy Policy</span></a><span style="font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">. Berklee will not sell or rent your information to third parties and you may unsubscribe at any time.</span></span></label></span></span></div></div> <div class="actions" id="4928346-A" data-contentid="submit_button"><input type="submit" data-label="Submit" class="primaryAction" id="submit_button" value="Submit"></div> <div style="clear:both"></div> <input type="hidden" value="431-b36ebe2681afa3eecf67804f6e703528" name="tfa_dbCounters" id="tfa_dbCounters" autocomplete="off"><input type="hidden" value="4928346" name="tfa_dbFormId" id="tfa_dbFormId"><input type="hidden" value="" name="tfa_dbResponseId" id="tfa_dbResponseId"><input type="hidden" value="c75c43dc6a7118ea1d12272f3e07a372" name="tfa_dbControl" id="tfa_dbControl"><input type="hidden" value="" name="tfa_dbWorkflowSessionUuid" id="tfa_dbWorkflowSessionUuid"><input type="hidden" value="1743276905" name="tfa_dbTimeStarted" id="tfa_dbTimeStarted" autocomplete="off"><input type="hidden" value="15" name="tfa_dbVersionId" id="tfa_dbVersionId"><input type="hidden" value="" name="tfa_switchedoff" id="tfa_switchedoff"> </form> </div></div><div class="wFormFooter"><p class="supportInfo"><br></p></div> <p class="supportInfo" > </p> </div> <script id="analytics-collector-script" type="text/javascript" src="https://berklee.tfaforms.net/dist/analytics/data-collector.b669b669e4e65b402126.js" data-customer-id="374" data-endpoint="https://analytics.formassembly.com/v1/traces" ></script> </div> </div> </div> </div> </div> </section> <footer class='main-footer' id='info-footer'> <div class='footer-row f-social'> <span class='f-social__header'>Stay Connected</span> <div class='f-social__icons'> <a href='//www.facebook.com/berkleeonline' rel='noopener' target='_blank' title='Visit our Facebook.'> <span class='fab fa-facebook-f'></span> </a> <a href='//www.instagram.com/berkleeonline/' rel='noopener' target='_blank' title='Visit our Instagram.'> <span class='fab fa-instagram'></span> </a> <a href='//www.youtube.com/user/BerkleeMusic' rel='noopener' target='_blank' title='Visit our YouTube.'> <span class='fab fa-youtube'></span> </a> <a href='//linkedin.com/company/berkleeonline' rel='noopener' target='_blank' title='Visit our LinkedIn.'> <span class='fab fa-linkedin'></span> </a> <a href='//www.tiktok.com/@berkleeonline' rel='noopener' target='_blank' title='Visit our TikTok.'> <span class='fab fa-tiktok'></span> </a> </div> </div> <div class='footer-row'> <div class='footer-block footer-block--1 f-school'> <img class="f-school__logo" src="https://berkleeonline-assets-east.s3.amazonaws.com/bo_logo-horizontal-reverse.svg" alt="Berklee Online logo"> <p class="f-school__body">Founded in 2002, Berklee Online is the premier innovator and largest provider of worldwide music education, offering more than 75,000 students from 164 countries the renowned curriculum of Berklee College of Music, at a fraction of the cost. With more than 18,000 annual enrollments in credit-based courses, certificates, bachelor’s, and master’s degree programs, and 3.1 million enrollments in massive open online courses, students receive expert music instruction and emerge with the skills to exceed the demands of the music industry. </p> <div class="f-school__info"> <span>855 Boylston St, Boston, MA 02116</span> <span>1-866-BERKLEE</span> <span>Int’l: +1-617-747-2146</span> </div> </div> <div class='footer-block footer-block--2 f-lists'> <ul class='f-list f-list--programs'> <li class='f-list__header'>Programs</li> <li> <a href='/music-degrees'>Degree Programs</a> </li> <li> <a href='/certificates'>Certificates</a> </li> <li> <a href='/courses'>Courses</a> </li> <li> <a href='/about/compare-online-music-education-offerings'>Compare Our Offerings</a> </li> </ul> <ul class='f-list f-list--resources'> <li class='f-list__header'>Resources</li> <li> <a href='/deals'>Student Deals</a> </li> <li> <a href='/military/getting-started'>Military Benefits</a> </li> <li> <a href='/mentor-collective'>Mentorship Program</a> </li> <li> <a href='/handbooks'>Handbooks</a> </li> <li> <a href='https://online.berklee.edu/takenote'>Take Note Online Magazine</a> </li> <li> <a href='/giftcard'>eGift Cards</a> </li> </ul> <ul class='f-list f-list--about'> <li class='f-list__header'>About</li> <li> <a href='/about/berklee-online'>About</a> </li> <li class='mission-link'> <a href='/about/mission'>Our Mission</a> </li> <li> <a href='/about/leadership-team'>Leadership Team</a> </li> <li> <a href='/instructors'>Instructor Directory</a> </li> <li> <a href='/scholarships'>Scholarships</a> </li> <li> <a href='/work-with-us'>Careers</a> </li> <li> <a href='/about/contact-us'>Contact/Help</a> </li> </ul> </div> <div class="footer-block footer-block--3 f-messaging"> <span class="f-messaging__header" style="font-weight:800;">Berklee Online eGift Cards</span> <a href="/giftcard"> <img src="https://air-prod.imgix.net/f56d7c88-df15-4686-b46f-8f4f001fd7a1.jpg?w=1080&h=1080&fm=jpg&fit=crop" alt="Berklee Online digital gift card image"> <p class="f-messaging__body">Music is a gift. Pass it on … or have someone pass it to you!</p> <span class="f-messaging__btn">Learn More</span> </a> </div> </div> </footer> <div class='footer-bottom'> <style> @media (max-width: 576px) { .f-awards .logos { flex-direction: column; } } </style> <div class="footer-row f-awards"> <p> Berklee is <a href="https://www.berklee.edu/institutional-assessment/accreditation" style="color: #FFF;" target="_blank">accredited</a> by the New England Commission of Higher Education (NECHE).</p> <div class="logos"> <img class="logo" src="//assets.online.berklee.edu/footer_logo.svg" alt="Berklee College of Music Logo" width="49" height="65"> <img class="logo" src="//assets.online.berklee.edu/footer/footer_award_upcea_2023_white.svg" alt="UPCEA Award 2005-2021" width="114" height="65"> <img class="logo" src="//assets.online.berklee.edu/footer_award_QS_Stars.svg" alt="QS Stars Award 2017" width="113" height="65"> <a class="logo student-satisfaction-rate" href="https://online.berklee.edu/takenote/berklee-online-achieves-97-percent-student-satisfaction/"> <img src="//assets.online.berklee.edu/footer/97_percent_satisfaction_rate_icon.svg" alt="97 percent Student Satisfaction Rate" width="186" height="50"> </a> <a class="logo student-satisfaction-rate" href="//online.berklee.edu/takenote/newsweek-ranks-berklee-online-no-5-on-list-of-americas-top-online-schools-2025/"> <img src="//assets.online.berklee.edu/footer/Newsweek_US-TOC2025_Logo_Hor.svg" alt="Image representing Berklee Online honored with Number 5 spot on Newsweek's list of America's top online schools" height="58"> </a> </div> <br> <p>Berklee Online is a University Professional and Continuing Education Association (UPCEA) award-winner eighteen years in a row (2005-2023).</p> </div> <div class='footer-row f-small'> <div class='left'> © Copyright 2001 - 2025 <a href='https://www.berklee.edu' rel='noopener' target='_blank'>Berklee College of Music</a> </div> <div class='right'> <a href="/about/terms">Terms</a> <span> • </span> <a href="/about/privacy">Privacy Policy</a> </div> </div> </div> <div class='bottom-bar-container'> <div class='appt-scheduler d-none d-lg-block' id='appt_scheduler'> <a href='#' id='time_trade_current' onclick='schedule_appt_toggle();' rel='nofollow' style='cursor:pointer;'> <i class='far fa-calendar-alt'></i> <span id='standard-message'> Schedule a Consultation with an Advisor </span> </a> </div> <!-- appt scheduler by Acuity --> <section class='appt-scheduler-section' id='utility-action'> <div class='container'> <div class='row'> <div class='col text-center' style='position:relative;'> <div class='utility-action-close'> <a id='scheduler_iframe_close' onclick='schedule_appt_toggle();'> Close × </a> </div> <div class='appt-scheduler-wrapper' id='appt_scheduler_wrapper'> <iframe frameBorder='0' height='800' src='https://app.acuityscheduling.com/schedule.php?owner=11423824&appointmentType=331977' width='100%'></iframe> </div> </div> </div> </div> </section> </div> </section> </div> <div class='st-search-container'></div> <div id='gdpr-notification'> <div class='inner'> <p> <span> We use cookies to improve your experience on our sites. </span> By use of our site, you agree to our <a href="/about/privacy#cookies" class="gdpr-dismiss" target="_blank">cookie policy</a>. </p> <div class='bo-button-alt gdpr-dismiss'> Got it </div> </div> </div> <div aria-hidden='true' aria-labelledby='gradProofModal' class='modal fade' id='gradProofModal' role='dialog' tabindex='-1'> <div class='modal-dialog' role='document'> <div class='modal-content'> <div class='modal-header'> <h3 class='modal-title' id='gradProofModalTitle' style='float: left;'>Proof of Bachelor's Degree to Enroll</h3> <button aria-label='Close' class='close' data-bs-dismiss='modal' type='button'> <span aria-hidden='true'>×</span> </button> </div> <div class='modal-body'> <p> Proof of a bachelor's degree is required to enroll in any <strong>non-degree, graduate-level certificate or course</strong>. </p> <hr> <p> <strong>Ready to submit an unofficial copy of your transcript?</strong> </p> <a class='bo-button bo-button-secondary wall-link-log-in' href='https://berkleeonline.tfaforms.net/4870584' target='_blank'> Submit Transcript </a> <hr> <h5>International Students</h5> <p> See the <a href="https://online.berklee.edu/about/enrolling-in-a-graduate-certificate-or-individual-course" target="_blank" rel="noindex, nofollow">Enrolling in a Graduate Certificate or Individual Course</a> page for more information. </p> </div> <div class='modal-footer'> <button class='bo-button-alt' data-bs-dismiss='modal' type='button'>Close</button> </div> </div> </div> </div> <script src="https://assets.online.berklee.edu/catalog/assets/b92631b820d97670285140dbea27b69169dbae4b/packs/js/application-78e2a45ceca992ebeab7.js"></script> <script crossorigin='anonymous' src='https://kit.fontawesome.com/08ce533d2a.js'></script> <script src="https://online.berklee.edu/foxy/checkout.js"></script> <script src="https://cdn.foxycart.com/checkout.online.berklee.edu/loader.js" async="async" defer="defer"></script> </body> <script> </script> <script type="application/ld+json">{ "@context": "http://schema.org", "@type": "Organization", "address": { "@type": "PostalAddress", "addressLocality": "Boston, MA", "postalCode": "02115", "streetAddress": "160 Massachusetts Avenue" }, "legalName": "Berklee Online", "url": "https://online.berklee.edu", "contactPoint": [{ "@type": "ContactPoint", "telephone": "+1-866-BERKLEE", "contactType": "Student Advisors / Customer Service", "contactOption": "TollFree" }, { "@type": "ContactPoint", "telephone": "+1-646-350-2789", "contactType": "Student Advisors / Customer Service" }], "logo": "https://assets.online.berklee.edu/berklee-online-logo-red-gray.png", "sameAs": [ "https://www.facebook.com/berkleeonline", "https://twitter.com/BerkleeOnline", "https://www.instagram.com/berkleeonline/", "https://www.youtube.com/user/BerkleeMusic", "http://www.flickr.com/photos/berkleecollege", "http://berkleecollege.tumblr.com/", "http://www.pinterest.com/berkleecollege", "https://www.snapchat.com/add/berklee", "https://soundcloud.com/soundsofberklee"] } </script><script type="application/ld+json">{ "@context": "http://schema.org", "@type": "WebSite", "name": "Berklee Online", "url": "https://online.berklee.edu/", "potentialAction": { "@type": "SearchAction", "target": "https://online.berklee.edu/search_results?utf8=%E2%9C%93&query={search_term}&commit=GO", "query-input": "required name=search_term" } } </script>