<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="csrf-param" content="_csrf">
<meta name="csrf-token" content="C36zxmaQLvZQ1ppA9IFPkinHzwe3GAZhaCbLrhgqirJGC8DyIqcZlSOT2HKAuDfwXKz_M-dMQwJZdKyebEvw8A==">
<title>Braze Forge 2024 l Customer Engagement Event</title>
<meta name="description" content="Let the neon lights guide the way and join us September 23-25 for Forge 2024 in a brand new place: The Virgin Hotels in Las Vegas! Forge is the ultimate event for anyone who works in customer engagement.">
<meta name="robots" content="noindex">
<meta name="referrer" content="origin">
<meta property="og:type" content="website">
<meta property="og:url" content="https://forge.braze.com/2024">
<meta property="twitter:card" content="summary">
<meta property="twitter:title" content="Home">
<meta http-equiv="X-UA-Compatible" content="IE=Edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.eu01.nr-data.net"]},session_trace:{sampling_rate:10.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:100.0},feature_flags:["soft_nav"],performance:{capture_marks:false,capture_detail:false,capture_measures:true},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"184600148",accountID:"3136808",trustKey:"3136808",xpid:"VwcEV15TABABXFVXDggOXlE=",licenseKey:"NRJS-e5440ff4a5c913130a9",applicationID:"184599985",browserID:"184600148"};;/*! For license information please see nr-loader-spa-1.310.1.min.js.LICENSE.txt */
(()=>{var e,t,r={384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>a,US:()=>l,Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>f});var n=r(6154),i=r(1863),s=r(944),o=r(1910);const a={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,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},(0,o.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(e,t){c()[e]=t}function f(){return function(){let e=c();const t=e.info||{};e.info={beacon:a.beacon,errorBeacon:a.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>c,P3:()=>d,XX:()=>i,Yy:()=>a,df:()=>s,qY:()=>n,v4:()=>o});const n="events",i="jserrors",s="browser/blobs",o="rum",a="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"},d={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.softNav]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.sessionReplay]:8,[c.logging]:9,[c.genericEvents]:10},u={[c.pageViewEvent]:o,[c.pageViewTiming]:n,[c.ajax]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:s,[c.sessionReplay]:s,[c.logging]:a,[c.genericEvents]:"ins"}},944:(e,t,r)=>{"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(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),(0,n.W)({agentIdentifier:null,drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>s,ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},s={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},o="log",a=n.K7.logging},1541:(e,t,r)=>{"use strict";r.d(t,{U:()=>i,f:()=>n});const n={MFE:"MFE",BA:"BA"};function i(e,t){if(2!==t?.harvestEndpointVersion)return{};const r=t.agentRef.runtime.appMetadata.agents[0].entityGuid;return e?{"source.id":e.id,"source.name":e.name,"source.type":e.type,"parent.id":e.parent?.id||r,"parent.type":e.parent?.type||n.BA}:{"entity.guid":r,appId:t.agentRef.info.applicationID}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>d,Ze:()=>f,x3:()=>u});var n=r(3241),i=r(7836),s=r(3606),o=r(860),a=r(2646);const c={};function d(e,t){const r={staged:!1,priority:o.P3[t]||0};l(e),c[e].get(t)||c[e].set(t,r)}function u(e,t){e&&c[e]&&(c[e].get(t)&&c[e].delete(t),p(e,t,!1),c[e].size&&h(e))}function l(e){if(!e)throw new Error("agentIdentifier required");c[e]||(c[e]=new Map)}function f(e="",t="feature",r=!1){if(l(e),!e||!c[e].get(t)||r)return p(e,t);c[e].get(t).staged=!0,h(e)}function h(e){const t=Array.from(c[e]);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{c[e].delete(t),p(e,t)}))}function p(e,t,r=!0){const o=e?i.ee.get(e):i.ee,c=s.i.handlers;if(!o.aborted&&o.backlog&&c){if((0,n.W)({agentIdentifier:e,type:"lifecycle",name:"drain",feature:t}),r){const e=o.backlog[t],r=c[t];if(r){for(let t=0;e&&t<e.length;++t)g(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].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}o.isolatedBacklog||delete c[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(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],s=e[2];n.apply(i,s)}})}},1738:(e,t,r)=>{"use strict";r.d(t,{U:()=>h,Y:()=>f});var n=r(3241),i=r(9908),s=r(1863),o=r(944),a=r(5701),c=r(3969),d=r(8362),u=r(860),l=r(4261);function f(e,t,r,s){const f=s||r;!f||f[e]&&f[e]!==d.d.prototype[e]||(f[e]=function(){(0,i.p)(c.xV,["API/"+e+"/called"],void 0,u.K7.metrics,r.ee),(0,n.W)({agentIdentifier:r.agentIdentifier,drained:!!a.B?.[r.agentIdentifier],type:"data",name:"api",feature:l.Pl+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,o.R)(23,e)}})}function h(e,t,r,n,o){const a=e.info;null===r?delete a.jsAttributes[t]:a.jsAttributes[t]=r,(o||null===r)&&(0,i.p)(l.Pl+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},1741:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(i.$9,e,t)}start(){return this.#e(i.d3)}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},1910:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},2555:(e,t,r)=>{"use strict";r.d(t,{D:()=>a,f:()=>o});var n=r(384),i=r(8122);const s={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};function o(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}const a=e=>(0,i.a)(e,s)},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>o,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>a,uh:()=>i,wk:()=>s});const n="NRBA",i="SESSION",s=144e5,o=18e5,a={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},2843:(e,t,r)=>{"use strict";r.d(t,{G:()=>s,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)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(6154);const i="newrelic";function s(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});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 s(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Xh:()=>c,Zp:()=>i,kd:()=>d,mq:()=>a,nf:()=>o,qN:()=>s});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],s=["focus","blur"],o=4,a=1e3,c=2e3,d=["PageAction","UserAction","BrowserPerformance"],u={RESOURCES:"experimental.resources",REGISTER:"register"}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>s,YM:()=>d});var n=r(7836),i=r(5607);const s="nr@original:".concat(i.W),o=50;var a=Object.prototype.hasOwnProperty,c=!1;function d(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,s){n||(n="");const o="-"===n.charAt(0);for(let a=0;a<t.length;a++){const c=t[a],d=e[c];l(d)||(e[c]=r(d,o?c+n:n,i,c,s))}},r.flag=s,r;function r(t,r,n,c,d){return l(t)?t:(r||(r=""),nrWrapper[s]=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 s,a,l,f;let h;try{a=this,s=[...arguments],l="function"==typeof n?n(s,a):n||{}}catch(t){u([t,"",[s,a,c],l],e)}i(r+"start",[s,a,c],l,d);const p=performance.now();let g;try{return f=t.apply(a,s),g=performance.now(),f}catch(e){throw g=performance.now(),i(r+"err",[s,a,e],l,d),h=e,h}finally{const e=g-p,t={start:p,end:g,duration:e,isLongTask:e>=o,methodName:c,thrownError:h};t.isLongTask&&i("long-task",[t,a],l,d),i(r+"end",[s,a,f],l,d)}}}function i(r,n,i,s){if(!c||t){var o=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=o}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[s])}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=o;var i=s.handlers={};function s(e,t,r,s){o(s||n.d,i,e,t,r)}function o(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var o=t[s]=t[s]||{};(o[r]=o[r]||[]).push([e,i])}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>a,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>s,d3:()=>o,jx:()=>l,sl:()=>f,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",s="resource",o="-start",a="-end",c="fn"+o,d="fn"+a,u="pushState",l=1e3,f=3e4},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),o=r(3969),a=r(993);function c(e,t,r={},c=a.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(o.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)(a.ET,[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(a.p_).some(t=>t===e.toUpperCase().trim())}},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 s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>l,OV:()=>s,Qu:()=>f,TZ:()=>c,ih:()=>h,pP:()=>a,t1:()=>u,tC:()=>i,wD:()=>d});var n=r(860);const i=["click","keydown","submit"],s="popstate",o="api",a="initialPageLoad",c=n.K7.softNav,d=5e3,u=500,l={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},f={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},h={IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>a,rs:()=>i,xV:()=>o,z_:()=>s});const n=r(860).K7.metrics,i="sm",s="cm",o="storeSupportabilityMetrics",a="storeEventMetrics"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(7836),i=r(1687);class s{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)}}},4261:(e,t,r)=>{"use strict";r.d(t,{$9:()=>u,BL:()=>c,CH:()=>p,Dl:()=>R,Fw:()=>w,PA:()=>v,Pl:()=>n,Pv:()=>x,Tb:()=>f,U2:()=>o,V1:()=>A,Wb:()=>T,bt:()=>b,cD:()=>y,d3:()=>E,dT:()=>d,eY:()=>g,fF:()=>h,hG:()=>s,hw:()=>i,k6:()=>a,nb:()=>m,o5:()=>l});const n="api-",i=n+"ixn-",s="addPageAction",o="addToTrace",a="addRelease",c="finished",d="interaction",u="log",l="noticeError",f="pauseReplay",h="recordCustomEvent",p="recordReplay",g="register",m="setApplicationVersion",v="setCurrentRouteName",y="setCustomAttribute",b="setErrorHandler",w="setPageViewName",R="setUserId",E="start",T="wrapLogger",A="measure",x="consent"},5205:(e,t,r)=>{"use strict";r.d(t,{j:()=>_});var n=r(384),i=r(1741);var s=r(2555),o=r(3333);const a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(2614),d=r(944),u=r(8122);const l="[data-nr-mask]",f=e=>(0,u.a)(e,(()=>{const e={feature_flags:[],experimental:{allow_registered_children:!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},api:{get allow_registered_children(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.allow_registered_children},set allow_registered_children(t){e.experimental.allow_registered_children=t},duplicate_registered_data:!1},browser_consent_mode:{enabled:!1},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:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$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:c.wk,inactiveMs:c.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){a(t)?e.mask_selector="".concat(t,",").concat(l):""===t||null===t?e.mask_selector=l:(0,d.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){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,d.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,d.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}})());var h=r(6154),p=r(9324);let g=0;const m={buildEnv:p.F3,distMethod:p.Xs,version:p.xv,originTime:h.WN},v={consented:!1},y={appMetadata:{},get consented(){return this.session?.state?.consent||v.consented},set consented(e){v.consented=e},customTransaction:void 0,denyList:void 0,disabled:!1,harvester:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++g}},b=e=>{const t=(0,u.a)(e,y),r=Object.keys(m).reduce((e,t)=>(e[t]={value:m[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)};var w=r(5701);const R=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var E=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},x=e=>(0,u.a)(e,A),S=new Set;function _(e,t={},r,o){let{init:a,info:c,loader_config:d,runtime:u={},exposed:l=!0}=t;if(!c){const e=(0,n.pV)();a=e.init,c=e.info,d=e.loader_config}e.init=f(a||{}),e.loader_config=x(d||{}),c.jsAttributes??={},h.bv&&(c.jsAttributes.isWorker=!0),e.info=(0,s.D)(c);const p=e.init,g=[c.beacon,c.errorBeacon];S.has(e.agentIdentifier)||(p.proxy.assets&&(R(p.proxy.assets),g.push(p.proxy.assets)),p.proxy.beacon&&g.push(p.proxy.beacon),e.beacons=[...g],function(e){const t=(0,n.pV)();Object.getOwnPropertyNames(i.W.prototype).forEach(r=>{const n=i.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let s=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return s?s(...t):n})})}(e),(0,n.US)("activatedFeatures",w.B)),u.denyList=[...p.ajax.deny_list||[],...p.ajax.block_internal?g:[]],u.ptid=e.agentIdentifier,u.loaderType=r,e.runtime=b(u),S.has(e.agentIdentifier)||(e.ee=E.ee.get(e.agentIdentifier),e.exposed=l,(0,T.W)({agentIdentifier:e.agentIdentifier,drained:!!w.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),S.add(e.agentIdentifier)}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>o,SR:()=>s,rF:()=>a});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function o(e){return!0===e?.session_replay.preload&&s(e)}function a(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)}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,Qr:()=>c,sB:()=>a});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(s())return e();const r=(0,i.J)(e),o=setInterval(()=>{s()&&(clearInterval(o),r())},500);(0,n.sp)("load",r,t)}function a(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>s,t:()=>o});var n=r(3241);const i=new Set,s={};function o(e,t){const r=t.agentIdentifier;s[r]??={},e&&"object"==typeof e&&(i.has(r)||(t.ee.emit("rumresp",[e]),s[r]=e,i.add(r),(0,n.W)({agentIdentifier:r,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>s,eN:()=>h,gm:()=>o,lR:()=>l,m:()=>c,mw:()=>a,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=Boolean("hidden"===o?.document?.visibilityState),c=""+o?.location,d=/iPad|iPhone|iPod/.test(o.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=o.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)(),h=()=>"undefined"!=typeof PerformanceNavigationTiming&&o?.performance?.getEntriesByType("navigation")?.[0]?.responseStart},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,Qb:()=>l,TZ:()=>i,Ug:()=>o,Vh:()=>s,_s:()=>a,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,s="errorDuringReplay",o=.12,a={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},d={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"}},u=5e3,l={API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"}},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})},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>o,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function o(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,o;i>0?(s=r.substring(0,i),o=r.substring(i)):(s=r,o="*");let[c]=s.split(":");n.push({hostname:a(c),pathname:a(o,!0)})}}function a(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},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{}}}},7699:(e,t,r)=>{"use strict";r.d(t,{It:()=>s,KC:()=>a,No:()=>i,qh:()=>o});var n=r(860);const i=16e3,s=1e6,o="SESSION_ERROR",a={[n.K7.logging]:!0,[n.K7.genericEvents]:!1,[n.K7.jserrors]:!1,[n.K7.ajax]:!1}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>i});var n=r(6154);const i=e=>n.RI&&!0===e?.privacy.cookies_enabled},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>a,ee:()=>c});var n=r(384),i=r(8990),s=r(2646),o=r(5607);const a="nr@context:".concat(o.W),c=function e(t,r){var n={},o={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.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,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var a=h(n);g(e).forEach(e=>{e.apply(a,r)});var d=v()[o[e]];d&&d.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])=>{o[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()[o[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 s.y?e:e?(0,i.I)(e,a,()=>new s.y(a)):new s.y(a)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c)},7866:(e,t,r)=>{"use strict";r.d(t,{Nc:()=>s,cn:()=>a,fL:()=>i,h3:()=>n,hB:()=>o});const n=/function (.+?)\s*\(/,i=/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,s=/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,o=/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i,a=/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i},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)),s=0===Object.keys(r).length?e:r;for(let o in s)if(void 0!==e[o])try{if(null===e[o]){r[o]=null;continue}Array.isArray(e[o])&&Array.isArray(t[o])?r[o]=Array.from(new Set([...e[o],...t[o]])):"object"==typeof e[o]&&"object"==typeof t[o]?r[o]=i(e[o],t[o]):r[o]=e[o]}catch(e){r[o]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),o=r(6154);const a={},c=o.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(a[t.debugId]++)return t;a[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(o.RI&&h(document,f),c&&h(c.prototype,f),h(o.gm,f)),t.on(d+"-start",function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)&&"newrelic"!==e[0]){var i=(0,s.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(u+"-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,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},8362:(e,t,r)=>{"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},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}},9119:(e,t,r)=>{"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},9324:(e,t,r)=>{"use strict";r.d(t,{AJ:()=>o,F3:()=>i,Xs:()=>s,Yq:()=>a,xv:()=>n});const n="1.310.1",i="PROD",s="CDN",o="@newrelic/rrweb",a="1.0.1"},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>a,ZF:()=>c,bz:()=>o,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function s(e,t){return e?15&e[t]:16*Math.random()|0}function o(){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?s(t,r++).toString(16):"y"===e?(3&s()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const o=[];for(var a=0;a<e;a++)o.push(s(r,i++).toString(16));return o.join("")}function c(){return a(16)}function d(){return a(32)}},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,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return r[e](s,s.exports,i),s.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.310.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.310.1.PROD:",i.l=(r,n,s,o)=>{if(e[r])e[r].push(n);else{var a,c;if(void 0!==s)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+s){a=l;break}}if(!a){c=!0;var f={478:"sha512-DeqFdXQE4jC8a4pm4mRmKcvJcc0AwELF034DvhaEDGgJkABtwtC38fNnc5r/h2Ao/FbfITw8xLU63nj0RuK7eQ==",249:"sha512-omU0YV+hQgZOl40hWu2N/rhIaUJZ39c9UlgZbATxeG40NXrj8Ql6+lKlr7TG1xepBqnrxKzZpw7zzYci3rWWjQ==",212:"sha512-c9QUv59w2LTBgdjv9nbbpoyRqBOF2XbGfNVUaeBznaQEi49XTybGIsD9vogQKm7J8zdheuqHIho6/kaczmIUDw=="};(a=document.createElement("script")).charset="utf-8",i.nc&&a.setAttribute("nonce",i.nc),a.setAttribute("data-webpack",t+s),a.src=r,0!==a.src.indexOf(window.location.origin+"/")&&(a.crossOrigin="anonymous"),f[o]&&(a.integrity=f[o])}e[r]=[n];var h=(t,n)=>{a.onerror=a.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach(e=>e(n)),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=h.bind(null,a.onerror),a.onload=h.bind(null,a.onload),c&&document.head.appendChild(a)}},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 s=new Promise((r,i)=>n=e[t]=[r,i]);r.push(n[2]=s);var o=i.p+i.u(t),a=new Error;i.l(o,r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var s=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;a.message="Loading chunk "+t+" failed: ("+s+": "+o+")",a.name="ChunkLoadError",a.type=s,a.request=o,n[1](a)}},"chunk-"+t,t)}};var t=(t,r)=>{var n,s,[o,a,c]=r,d=0;if(o.some(t=>0!==e[t])){for(n in a)i.o(a,n)&&(i.m[n]=a[n]);if(c)c(i)}for(t&&t(r);d<o.length;d++)s=o[d],i.o(e,s)&&e[s]&&e[s][0](),e[s]=0},r=self["webpackChunk:NRBA-1.310.1.PROD"]=self["webpackChunk:NRBA-1.310.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(8362),t=i(860);const r=Object.values(t.K7);var n=i(5205);var s=i(9908),o=i(1863),a=i(4261),c=i(1738);var d=i(1687),u=i(4234),l=i(5289),f=i(6154),h=i(944),p=i(5270),g=i(7767),m=i(6389),v=i(7699);class y extends u.W{constructor(e,t){super(e.agentIdentifier,t),this.agentRef=e,this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,m.J)(()=>{(0,d.Ak)(e.agentIdentifier,this.featureName),t()}))}):(0,d.Ak)(e.agentIdentifier,t)}importAggregator(e,t,r={}){if(this.featAggregate)return;const n=async()=>{let n;await this.deferred;try{if((0,g.V)(e.init)){const{setupAgentSession:t}=await i.e(478).then(i.bind(i,8766));n=t(e)}}catch(e){(0,h.R)(20,e),this.ee.emit("internal-error",[e]),(0,s.p)(v.qh,[e],void 0,this.featureName,this.ee)}try{if(!this.#t(this.featureName,n,e.init))return(0,d.Ze)(this.agentIdentifier,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:i}=await t();this.featAggregate=new i(e,r),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,h.R)(34,e),this.abortHandler?.(),(0,d.Ze)(this.agentIdentifier,this.featureName,!0),this.loadedSuccessfully(!1),this.ee&&this.ee.abort()}};f.RI?(0,l.GG)(()=>n(),!0):n()}#t(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,p.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}}var b=i(6630),w=i(2614),R=i(3241);class E extends y{static featureName=b.T;constructor(e){var t;super(e,b.T),this.setupInspectionEvents(e.agentIdentifier),t=e,(0,c.Y)(a.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,s.p)(a.Pl+a.Fw,[(0,o.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>i.e(478).then(i.bind(i,2467)))}setupInspectionEvents(e){const t=(t,r)=>{t&&(0,R.W)({agentIdentifier:e,timeStamp:t.timeStamp,loaded:"complete"===t.target.readyState,type:"window",name:r,data:t.target.location+""})};(0,l.sB)(e=>{t(e,"DOMContentLoaded")}),(0,l.GG)(e=>{t(e,"load")}),(0,l.Qr)(e=>{t(e,"navigate")}),this.ee.on(w.tS.UPDATE,(t,r)=>{(0,R.W)({agentIdentifier:e,type:"lifecycle",name:"session",data:r})})}}var T=i(384);class A extends e.d{constructor(e){var t;(super(),f.gm)?(this.features={},(0,T.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(E),(0,n.j)(this,e,e.loaderType||"agent"),t=this,(0,c.Y)(a.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,c.U)(t,e,r,a.cD,n);(0,h.R)(40,typeof r)}else(0,h.R)(39,typeof e)},t),function(e){(0,c.Y)(a.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,h.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,s.p)(a.Pl+"setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,c.U)(e,"enduser.id",t,a.Dl,!0)},e)}(this),function(e){(0,c.Y)(a.nb,function(t){if("string"==typeof t||null===t)return(0,c.U)(e,"application.version",t,a.nb,!1);(0,h.R)(42,typeof t)},e)}(this),function(e){(0,c.Y)(a.d3,function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,c.Y)(a.Pv,function(t=!0){if("boolean"==typeof t){if((0,s.p)(a.Pl+a.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum()})}}else(0,h.R)(65,typeof t)},e)}(this),this.run()):(0,h.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return r.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),n=[...this.desiredFeatures];n.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),n.forEach(r=>{if(!e[r.featureName]&&r.featureName!==t.K7.pageViewEvent)return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,h.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,h.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,T.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var x=i(2843),S=i(782);class _ extends y{static featureName=S.T;constructor(e){super(e,S.T),f.RI&&((0,x.u)(()=>(0,s.p)("docHidden",[(0,o.t)()],void 0,S.T,this.ee),!0),(0,x.G)(()=>(0,s.p)("winPagehide",[(0,o.t)()],void 0,S.T,this.ee)),this.importAggregator(e,()=>i.e(478).then(i.bind(i,9917))))}}var O=i(3969);class I extends y{static featureName=O.TZ;constructor(e){super(e,O.TZ),f.RI&&document.addEventListener("securitypolicyviolation",e=>{(0,s.p)(O.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)}),this.importAggregator(e,()=>i.e(478).then(i.bind(i,6555)))}}var N=i(6774),P=i(3878),k=i(3304);class D{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,k.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return M(e)?e:new D(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function j(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(M(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 D(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return M(e.error)?e.error:C(e)}function M(e){return e instanceof Error&&!!e.stack}function B(e,r,n,i,a=(0,o.t)()){"string"==typeof e&&(e=new Error(e)),(0,s.p)("err",[e,a,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,s.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var H=i(1541),K=i(993),W=i(3785);function U(e,{customAttributes:t={},level:r=K.p_.INFO}={},n,i,s=(0,o.t)()){(0,W.R)(n.ee,e,t,r,!1,i,s)}function F(e,r,n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.hG,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}function V(e,r,n,i,c=(0,o.t)()){const{start:d,end:u,customAttributes:l}=r||{},f={customAttributes:l||{}};if("object"!=typeof f.customAttributes||"string"!=typeof e||0===e.length)return void(0,h.R)(57);const p=(e,t)=>null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(f.start=p(d,0),f.end=p(u,c),Number.isNaN(f.start)||Number.isNaN(f.end))(0,h.R)(57);else{if(f.duration=f.end-f.start,!(f.duration<0))return(0,s.p)(a.Pl+a.V1,[f,e,i],void 0,t.K7.genericEvents,n.ee),f;(0,h.R)(58)}}function G(e,r={},n,i,c=(0,o.t)()){(0,s.p)(a.Pl+a.fF,[c,e,r,i],void 0,t.K7.genericEvents,n.ee)}var z=i(9119),Y=i(7866);const q=new Set;let Z=[];if(f.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||"link"===e.initiatorType&&e.name.endsWith(".js"))(e)){q.size>250&&q.delete(q.values().next().value),q.add(e);const t=[];Z.forEach(({test:r,addedAt:n},i)=>{(r(e)||(0,o.t)()-n>1e4)&&t.push(i)}),Z=Z.filter((e,r)=>!t.includes(r))}})}).observe({type:"resource",buffered:!0})}function X(){const e={registeredAt:(0,o.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,asset:void 0,type:"unknown"},t=function(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}();if(!t)return e;const r=f.gm.performance?.getEntriesByType("navigation")?.find(e=>"navigation"===e.initiatorType)?.name||"";try{const n=function(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(Y.cn)||e.match(Y.hB);r&&r[2]&&t.add((0,z.L)(r[2]))}return[...t]}(t).at(-1);if(!n)return e;if(r.includes(n))return e.asset=(0,z.L)(r),e.type="inline",e;const i=performance.getEntriesByType("resource").find(s)||[...q].find(s);function s(e){const t=(0,z.L)(e.name);return t.endsWith(n)||n.endsWith(t)}function a(t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType}i?a(i):function(e){if(!e||!f.gm.document)return!1;try{const t=f.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,z.L)(r.href)===e)return!0}catch(e){}return!1}(n)&&(e.asset=n,e.type="preload",Z.push({addedAt:(0,o.t)(),test:e=>!!s(e)&&(a(e),!0)}))}catch(c){}return e}const J=["name","id","type"];function Q(e){(0,c.Y)(a.eY,function(t){return ee(e,t)},e)}function ee(e,r,n){(0,h.R)(54,"newrelic.register"),r||={},r.type=H.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,r.parent=n||{},("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={});const i=X(),a={};Object.entries(r.tags).forEach(([e,t])=>{J.includes(e)||(a["source.".concat(e)]=t)}),r.isolated??=!0;let c=()=>{};const d=e.runtime.registeredEntities;if(!r.isolated){const e=d.find(({metadata:{target:{id:e}}})=>e===r.id&&!r.isolated);if(e)return e}const u=e=>{r.blocked=!0,c=e};function l(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501||"number"==typeof e}e.init.api.allow_registered_children||u((0,m.J)(()=>(0,h.R)(55))),l(r.id)&&l(r.name)||u((0,m.J)(()=>(0,h.R)(48,r)));const f={addPageAction:(t,n={})=>y(F,[t,{...a,...n},e],r),deregister:()=>{g(),u((0,m.J)(()=>(0,h.R)(68)))},log:(t,n={})=>y(U,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>y(V,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>y(B,[t,{...a,...n},e],r),register:(t={})=>y(ee,[e,t],f.metadata.target),recordCustomEvent:(t,n={})=>y(G,[t,{...a,...n},e],r),setApplicationVersion:e=>v("application.version",e),setCustomAttribute:(e,t)=>v(e,t),setUserId:e=>v("enduser.id",e),metadata:{customAttributes:a,target:r,timings:i}},p=()=>(r.blocked&&c(),r.blocked);function g(){i.reportedAt||(i.reportedAt=(0,o.t)(),f.recordCustomEvent("MicroFrontEndTiming",{assetUrl:i.asset,assetType:i.type,timeToLoad:i.registeredAt-i.fetchStart,timeToBeRequested:i.fetchStart,timeToFetch:i.fetchEnd-i.fetchStart,timeToRegister:i.registeredAt-i.fetchEnd,timeAlive:i.reportedAt-i.registeredAt}))}p()||(d.push(f),(0,x.G)(g));const v=(e,t)=>{p()||(a[e]=t)},y=(r,n,i)=>{if(p()&&r!==ee)return;const a=(0,o.t)();(0,s.p)(O.xV,["API/register/".concat(r.name,"/called")],void 0,t.K7.metrics,e.ee);try{if(e.init.api.duplicate_registered_data&&r!==ee){let e=n;if(n[1]instanceof Object){const t={"child.id":i.id,"child.type":i.type};e="customAttributes"in n[1]?[n[0],{...n[1],customAttributes:{...n[1].customAttributes,...t}},...n.slice(2)]:[n[0],{...n[1],...t},...n.slice(2)]}r(...e,void 0,a)}return r(...n,i,a)}catch(e){(0,h.R)(50,e)}};return f}class te extends y{static featureName=N.T;constructor(e){var t;super(e,N.T),t=e,(0,c.Y)(a.o5,(e,r)=>B(e,r,t),t),function(e){(0,c.Y)(a.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,c.Y)(a.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Q(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,s.p)("ierr",[C(t),(0,o.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),f.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,s.p)("err",[j(t),(0,o.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,P.jT)(!1,this.removeOnAbort?.signal)),f.gm.addEventListener("error",t=>{this.abortHandler&&(0,s.p)("err",[L(t),(0,o.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,P.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#r,this.importAggregator(e,()=>i.e(478).then(i.bind(i,2176)))}#r(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var re=i(8990);let ne=1;function ie(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===f.gm?0:(0,re.I)(e,"nr@id",function(){return ne++})}function se(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,k.A)(e).length}catch(e){return}}}var oe=i(8139),ae=i(7836),ce=i(3434);const de={},ue=["open","send"];function le(e){var t=e||ae.ee;const r=function(e){return(e||ae.ee).get("xhr")}(t);if(void 0===f.gm.XMLHttpRequest)return r;if(de[r.debugId]++)return r;de[r.debugId]=1,(0,oe.u)(t);var n=(0,ce.YM)(r),i=f.gm.XMLHttpRequest,s=f.gm.MutationObserver,o=f.gm.Promise,a=f.gm.setInterval,c="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],u=[],l=f.gm.XMLHttpRequest=function(e){const t=new i(e),s=r.context(t);try{r.emit("new-xhr",[t],s),t.addEventListener(c,(o=s,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,r.emit("xhr-resolved",[],e)),n.inPlace(e,d,"fn-",b)}),(0,P.jT)(!1))}catch(e){(0,h.R)(15,e);try{r.emit("internal-error",[e])}catch(e){}}var o;return t};function p(e,t){n.inPlace(t,["onreadystatechange"],"fn-",b)}if(function(e,t){for(var r in e)t[r]=e[r]}(i,l),l.prototype=i.prototype,n.inPlace(l.prototype,ue,"-xhr-",b),r.on("send-xhr-start",function(e,t){p(e,t),function(e){u.push(e),s&&(g?g.then(y):a?a(y):(m=-m,v.data=m))}(t)}),r.on("open-xhr-start",p),s){var g=o&&o.resolve();if(!a&&!o){var m=1,v=document.createTextNode(m);new s(y).observe(v,{characterData:!0})}}else t.on("fn-end",function(e){e[0]&&e[0].type===c||y()});function y(){for(var e=0;e<u.length;e++)p(0,u[e]);u.length&&(u=[])}function b(e,t){return t}return r}var fe="fetch-",he=fe+"body-",pe=["arrayBuffer","blob","json","text","formData"],ge=f.gm.Request,me=f.gm.Response,ve="prototype";const ye={};function be(e){const t=function(e){return(e||ae.ee).get("fetch")}(e);if(!(ge&&me&&f.gm.fetch))return t;if(ye[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],s={};t.emit(n+"before-start",[r],s),s[ae.P]&&s[ae.P].dt&&(e=s[ae.P].dt);var o=i.apply(this,r);return t.emit(n+"start",[r,e],o),o.then(function(e){return t.emit(n+"end",[null,e],o),e},function(e){throw t.emit(n+"end",[e],o),e})})}return ye[t.debugId]=1,pe.forEach(e=>{r(ge[ve],e,he),r(me[ve],e,he)}),r(f.gm,"fetch",fe),t.on(fe+"end",function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(fe+"done",[null,r],n)}else t.emit(fe+"done",[e],n)}),t}var we=i(7485),Re=i(9566);class Ee{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,Re.ZF)(),o=(0,Re.el)(),a=Date.now(),c={spanId:s,traceId:o,timestamp:a};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,o),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,a,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,o,a,r,n,i)),c}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,s){if(!("function"==typeof f.gm?.btoa))return null;var o={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(o.d.tk=s),btoa((0,k.A)(o))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,we.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Te=i(9300),Ae=i(7295);function xe(e){return"string"==typeof e?e:e instanceof(0,T.dV)().o.REQ?e.url:f.gm?.URL&&e instanceof URL?e.href:void 0}var Se=["load","error","abort","timeout"],_e=Se.length,Oe=(0,T.dV)().o.REQ,Ie=(0,T.dV)().o.XHR;const Ne="X-NewRelic-App-Data";class Pe extends y{static featureName=Te.T;constructor(e){super(e,Te.T),this.dt=new Ee(e),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};f.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};ke(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}be(this.ee),le(this.ee),function(e,r,n,i){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=T,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){A(t,e)},(0,P.jT)(!1)),f.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,P.jT)(!1))}function c(e){this.params={method:e[0]},ke(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=se(i);a&&(n.txSize=a)}this.startTime=(0,o.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit("internal-error",[e])}catch(e){}}};for(var c=0;c<_e;c++)t.addEventListener(Se[c],this.listener,(0,P.jT)(!1))}function l(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 h(e,t){var r=""+ie(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+ie(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function g(){this.endTime=(0,o.t)()}function m(e,t){t instanceof Ie&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function v(e,t){t instanceof Ie&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function y(e,t,r){t instanceof Ie&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,o.t)()))}function b(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,o.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&f.RI&&(t=""+f.gm.location.href):e[0]&&e[0].url?t=e[0].url:f.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,we.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)a(e[0].headers,n)&&(this.dt=n);else{var s={};for(var o in r)s[o]=r[o];s.headers=new Headers(r.headers||{}),a(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function a(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 R(e,t){this.params={},this.metrics={},this.startTime=(0,o.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r=this.opts||{},n=this.target;ke(this,xe(n));var i=(""+(n&&n instanceof Oe&&n.method||r.method||"GET")).toUpperCase();this.params.method=i,this.body=r.body,this.txSize=se(r.body)||0}function E(e,r){if(this.endTime=(0,o.t)(),this.params||(this.params={}),(0,Ae.iW)(this.params))return;let i;this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(i=+this.rxSize);const s={txSize:this.txSize,rxSize:i,duration:(0,o.t)()-this.startTime};n("xhr",[this.params,s,this.startTime,this.endTime,"fetch"],this,t.K7.ajax)}function T(e){const r=this.params,i=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<_e;t++)e.removeEventListener(Se[t],this.listener,!1);r.aborted||(0,Ae.iW)(r)||(i.duration=(0,o.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==r.status&&(r.status=0):A(this,e),i.cbTime=this.cbTime,n("xhr",[r,i,this.startTime,this.endTime,"xhr"],this,t.K7.ajax))}}function A(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?se(e.response):"text"===r||""===r||void 0===r?se(e.responseText):void 0}(n,e.lastSize);if(i&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(Ne)>=0){var o=n.getResponseHeader(Ne);o&&((0,s.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=o.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",c),r.on("open-xhr-end",d),r.on("send-xhr-start",u),r.on("xhr-cb-time",l),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",g),r.on("addEventListener-end",m),r.on("removeEventListener-end",v),r.on("fn-end",b),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",y),r.on("fetch-done",E)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>i.e(478).then(i.bind(i,3845)))}}function ke(e,t){var r=(0,we.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 De={},Ce=["pushState","replaceState"];function je(e){const t=function(e){return(e||ae.ee).get("history")}(e);return!f.RI||De[t.debugId]++||(De[t.debugId]=1,(0,ce.YM)(t).inPlace(window.history,Ce,"-")),t}var Le=i(3738);function Me(e){(0,c.Y)(a.BL,function(r=Date.now()){const n=r-f.WN;n<0&&(0,h.R)(62,r),(0,s.p)(O.XG,[a.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:a.BL,start:r,origin:"nr"}),(0,s.p)(a.Pl+a.hG,[n,a.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:Be,bD:He,d3:Ke,Kp:We,TZ:Ue,Lc:Fe,uP:Ve,Rz:Ge}=Le;class ze extends y{static featureName=Ue;constructor(e){var r;super(e,Ue),r=e,(0,c.Y)(a.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const n={n:e.name,s:e.start-f.WN,e:(e.end||e.start)-f.WN,o:e.origin||"",t:"api"};n.s<0||n.e<0||n.e<n.s?(0,h.R)(61,{start:n.s,end:n.e}):(0,s.p)("bstApi",[n],void 0,t.K7.sessionTrace,r.ee)},r),Me(e);if(!(0,g.V)(e.init))return void this.deregisterDrain();const n=this.ee;let d;je(n),this.eventsEE=(0,oe.u)(n),this.eventsEE.on(Ve,function(e,t){this.bstStart=(0,o.t)()}),this.eventsEE.on(Fe,function(e,r){(0,s.p)("bst",[e[0],r,this.bstStart,(0,o.t)()],void 0,t.K7.sessionTrace,n)}),n.on(Ge+Ke,function(e){this.time=(0,o.t)(),this.startPath=location.pathname+location.hash}),n.on(Ge+We,function(e){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,n)});try{d=new PerformanceObserver(e=>{const r=e.getEntries();(0,s.p)(Be,[r],void 0,t.K7.sessionTrace,n)}),d.observe({type:He,buffered:!0})}catch(e){}this.importAggregator(e,()=>i.e(478).then(i.bind(i,6974)),{resourceObserver:d})}}var Ye=i(6344);class qe extends y{static featureName=Ye.TZ;#n;recorder;constructor(e){var r;let n;super(e,Ye.TZ),r=e,(0,c.Y)(a.CH,function(){(0,s.p)(a.CH,[],void 0,t.K7.sessionReplay,r.ee)},r),function(e){(0,c.Y)(a.Tb,function(){(0,s.p)(a.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);try{n=JSON.parse(localStorage.getItem("".concat(w.H3,"_").concat(w.uh)))}catch(e){}(0,p.SR)(e.init)&&this.ee.on(a.CH,()=>this.#i()),this.#s(n)&&this.importRecorder().then(e=>{e.startRecording(Ye.Qb.PRELOAD,n?.sessionReplayMode)}),this.importAggregator(this.agentRef,()=>i.e(478).then(i.bind(i,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,s.p)(Ye.Vh,[e],void 0,this.featureName,this.ee))})}#s(e){return e&&(e.sessionReplayMode===w.g.FULL||e.sessionReplayMode===w.g.ERROR)||(0,p.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#n??=Promise.all([i.e(478),i.e(249)]).then(i.bind(i,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#n)}#i(){this.blocked||(this.featAggregate?this.featAggregate.mode!==w.g.FULL&&this.featAggregate.initializeRecording(w.g.FULL,!0,Ye.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(Ye.Qb.API,w.g.FULL)}))}}var Ze=i(3962);class Xe extends y{static featureName=Ze.TZ;constructor(e){if(super(e,Ze.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,c.Y)(a.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var a={},c=this,d="function"==typeof i;return(0,s.p)(O.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((d?"":"no-")+"fn-start",[(0,o.t)(),c,d],a),d)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],a),t}finally{r.emit("fn-end",[(0,o.t)()],a)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{c.Y.apply(this,[r,function(){return(0,s.p)(a.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,c.Y)(a.PA,function(){(0,s.p)(a.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!f.RI||!(0,T.dV)().o.MO)return;const r=je(this.ee);try{this.removeOnAbort=new AbortController}catch(e){}Ze.tC.forEach(e=>{(0,P.sp)(e,e=>{l(e)},!0,this.removeOnAbort?.signal)});const n=()=>(0,s.p)("newURL",[(0,o.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n),(0,P.sp)(Ze.OV,e=>{l(e),(0,s.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let d=!1;const u=new((0,T.dV)().o.MO)((e,t)=>{d||(d=!0,requestAnimationFrame(()=>{(0,s.p)("newDom",[(0,o.t)()],void 0,this.featureName,this.ee),d=!1}))}),l=(0,m.s)(e=>{"loading"!==document.readyState&&((0,s.p)("newUIEvent",[e],void 0,this.featureName,this.ee),u.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),u.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>i.e(478).then(i.bind(i,4393)),{domObserver:u})}}var $e=i(3333);const Je={},Qe=new Set;function et(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class tt{constructor(e,t){this.timestamp=(0,o.t)(),this.currentUrl=(0,z.L)(window.location.href),this.socketId=(0,Re.LA)(8),this.requestedUrl=(0,z.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class rt extends y{static featureName=$e.TZ;constructor(e){super(e,$e.TZ);const r=e.init.feature_flags.includes("websockets"),n=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,r];var d;let u,l;if(d=e,(0,c.Y)(a.hG,(e,t)=>F(e,t,d),d),function(e){(0,c.Y)(a.fF,(t,r)=>G(t,r,e),e)}(e),Me(e),Q(e),function(e){(0,c.Y)(a.V1,(t,r)=>V(t,r,e),e)}(e),r&&(l=function(e){if(!(0,T.dV)().o.WS)return e;const t=e.get("websockets");if(Je[t.debugId]++)return t;Je[t.debugId]=1,(0,x.G)(()=>{const e=(0,o.t)();Qe.forEach(r=>{r.nrData.closedAt=e,r.nrData.closeCode=1001,r.nrData.closeReason="Page navigating away",r.nrData.closeWasClean=!1,r.nrData.openedAt&&(r.nrData.connectedDuration=e-r.nrData.openedAt),t.emit("ws",[r.nrData],r)})});class r extends WebSocket{static name="WebSocket";static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return r.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new tt(e[0],e[1]),this.addEventListener("open",()=>{this.nrData.openedAt=(0,o.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Qe.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=et(e.data);this.nrData.messageOrigin??=(0,z.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,o.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Qe.delete(this),t.emit("ws",[this.nrData],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=et(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return f.gm.WebSocket=r,t}(this.ee)),f.RI){if(be(this.ee),le(this.ee),u=je(this.ee),e.init.user_actions.enabled){function h(t){const r=(0,we.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function p(){u.emit("navChange")}$e.Zp.forEach(e=>(0,P.sp)(e,e=>(0,s.p)("ua",[e],void 0,this.featureName,this.ee),!0)),$e.qN.forEach(e=>{const t=(0,m.s)(e=>{(0,s.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,P.sp)(e,t)}),f.gm.addEventListener("error",()=>{(0,s.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,P.jT)(!1,this.removeOnAbort?.signal)),this.ee.on("open-xhr-start",(e,r)=>{h(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,s.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)})}),this.ee.on("fetch-start",e=>{e.length>=1&&!h(xe(e[0]))&&(0,s.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),u.on("pushState-end",p),u.on("replaceState-end",p),window.addEventListener("hashchange",p,(0,P.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",p,(0,P.jT)(!0,this.removeOnAbort?.signal))}if(e.init.performance.resources.enabled&&f.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,s.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}r&&l.on("ws",e=>{(0,s.p)("ws-complete",[e],void 0,this.featureName,this.ee)});try{this.removeOnAbort=new AbortController}catch(g){}this.abortHandler=()=>{this.removeOnAbort?.abort(),this.abortHandler=void 0},n.some(e=>e)?this.importAggregator(e,()=>i.e(478).then(i.bind(i,8019))):this.deregisterDrain()}}var nt=i(2646);const it=new Map;function st(e,t,r,n,i=!0){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,h.R)(29);const s=function(e){return(e||ae.ee).get("logger")}(e),o=(0,ce.YM)(s),a=new nt.y(ae.P);a.level=n.level,a.customAttributes=n.customAttributes,a.autoCaptured=i;const c=t[r]?.[ce.Jt]||t[r];return it.set(c,a),o.inPlace(t,[r],"wrap-logger-",()=>it.get(c)),s}var ot=i(1910);class at extends y{static featureName=K.TZ;constructor(e){var t;super(e,K.TZ),t=e,(0,c.Y)(a.$9,(e,r)=>U(e,r,t),t),function(e){(0,c.Y)(a.Wb,(t,r,{customAttributes:n={},level:i=K.p_.INFO}={})=>{st(e.ee,t,r,{customAttributes:n,level:i},!1)},e)}(e),Q(e);const r=this.ee;["log","error","warn","info","debug","trace"].forEach(e=>{(0,ot.i)(f.gm.console[e]),st(r,f.gm.console,e,{level:"log"===e?"info":e})}),this.ee.on("wrap-logger-end",function([e]){const{level:t,customAttributes:n,autoCaptured:i}=this;(0,W.R)(r,e,n,t,i)}),this.importAggregator(e,()=>i.e(478).then(i.bind(i,5288)))}}new A({features:[Pe,E,_,ze,qe,I,te,rt,at,Xe],loaderType:"spa"})})()})();</script>
<link type="image/svg+xml" href="//assets.swoogo.com/uploads/3735233-660aef1d6dd69.svg" rel="shortcut icon">
<link href="//assets.swoogo.com/custom-font/3703/Aribau+Grotesk+Black.css?v=2024-03-18 18:05:19" rel="stylesheet">
<link href="//assets.swoogo.com/custom-font/3703/Aribau+Grotesk+Regular.css?v=2024-03-18 18:04:29" rel="stylesheet">
<link href="//assets.swoogo.com/custom-font/3703/Aribau+Grotesk+Bold.css?v=2024-03-18 18:05:09" rel="stylesheet">
<link href="https://assets.swoogo.com/plugins/bootstrap/bootstrap.min.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/fontawesome.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/brands.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/solid.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/regular.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/v4-shims.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/v4-font-face.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/505609f8/css/v5-font-face.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/33603eb7/event-defaults.css" rel="stylesheet">
<link href="//assets.swoogo.com/themes/5d5ae729c1ec2/styles.css?t=1753717267" rel="stylesheet">
<link href="//assets.swoogo.com/themes/colors/161668_colors.css?t=1724078347" rel="stylesheet">
<link href="//assets.swoogo.com/assets/c1da6e37/aos.css" rel="stylesheet">
<link href="//assets.swoogo.com/assets/8e56764d/jquery.pagewidget.agenda.css" rel="stylesheet">
<link href="https://assets.swoogo.com/twigs/1823/style.css" rel="stylesheet">
<link href="https://assets.swoogo.com/twigs/1908/style.css" rel="stylesheet">
<style>.site-background {background-image: url('//assets.swoogo.com/uploads/full/3734557-660ac736f0004.png') !important;}</style>
<style id="general-css">.btn-alternate {font-family: 'Aribau Grotesk Black' ;font-size: 18px ;color: #300266 ;background-color: #ffffff ;border-color: #300266 ;border-radius: 10px ;text-transform: none ;}.content a:not([class]), .content a[class=""], .content a:not(.btn).swoogo-link, a:not(.btn).show-details {color: #801ed7 ;}.content a:not([class]):hover, .content a[class=""]:hover, .content a:not(.btn).swoogo-link:hover, #a_hover, a:not(.btn).show-details:hover {color: #801ed7 !important;}.content .paragraph, .control-label, .swoogo-list, .checkbox label, .radio > label ,.radio > div, .btn-default, .table td, .table th,.swoogo-reg-progress, .form-control, .hint-block, .input-group .input-group-addon, [class*="-details"] .summary {font-family: 'Aribau Grotesk Regular' !important;font-size: 16px !important;color: #300266 !important;text-transform: none !important;}.content .title, .modal-body .title {font-family: 'Aribau Grotesk Black' !important;font-size: 32px !important;font-weight: bold !important;color: #300266 !important;text-transform: none !important;}.header .paragraph, .header .paragraph p {font-family: 'Aribau Grotesk Regular' !important;font-size: 24px !important;font-weight: normal !important;color: #ffffff !important;text-transform: none !important;}.header .title, .header .title p {font-family: 'Aribau Grotesk Black' !important;font-size: 65px !important;font-weight: normal !important;color: #ffffff !important;text-transform: none !important;}.swoogo-accordion .panel-heading, .swoogo-accordion .panel-title a, .swoogo-accordion .accordion-header, .swoogo-accordion .accordion-header .accordion-button {font-family: 'Aribau Grotesk Bold' !important;font-size: 14px !important;color: #300266 !important;}.swoogo-accordion .panel, .swoogo-accordion .panel-body {border-color: #F8D3E8 !important;}.swoogo-line {color: #FFA4FB !important;}.swoogo-nav > li > a {font-family: 'Aribau Grotesk Bold' !important;font-size: 12px !important;font-weight: bold !important;color: #300266 !important;text-transform: none !important;}.swoogo-tabs .nav-tabs>li>a {font-family: 'Aribau Grotesk Bold' !important;font-size: 14px !important;color: #300266 !important;} </style>
<style class="tab_57541665_style">
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs {
border-color: rgba(128,30,215,.25);
}
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li>a:focus,
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li>a:hover {
border-color: rgba(128,30,215,.5);
}
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li.active>a,
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li.active>a:focus,
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li.active>a:hover,
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li.active>a:active {
border-color: #801ED7;
}
#w_57541665.swoogo-tabs .nav-tabs>li {margin-bottom: -5px;}
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs,
#w_57541665.swoogo-tabs.tab-style-underline .nav-tabs>li>a {border-bottom-width: 5px;}
</style>
<style>#w_56726209 img.logo-img { max-height: 400px; }</style>
<script src="//code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script src="//assets.swoogo.com/assets/be4698d7/__require.js"></script>
<script src="//code.jquery.com/jquery-migrate-3.5.2.min.js" crossorigin="anonymous"></script>
<script src="/plugins/jquery-html-prefilter/prefilter-migrate.js" crossorigin="anonymous"></script>
<script>
if (typeof registrantUpdateUrl === 'undefined') {
registrantUpdateUrl = '/frontend/registrant/-action-?eventId=161668&pageId=5323971';
} else {
oldRegistrantUpdateUrl = registrantUpdateUrl;
registrantUpdateUrl = '/frontend/registrant/-action-?eventId=161668&pageId=5323971';
}
eventSlug = '2024';
(function() {
var didInit = false;
function initMunchkin() {
if(didInit === false) {
didInit = true;
Munchkin.init('367-GUY-242');
}
}
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//munchkin.marketo.net/munchkin.js';
s.onreadystatechange = function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
initMunchkin();
}
};
s.onload = initMunchkin;
document.getElementsByTagName('head')[0].appendChild(s);
})();
window.jQuery || document.write('<script src="//code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"><\/script>');</script>
<script type="text/javascript">window.dataLayer = [{"Event Name":"Braze Forge 2024","Event Status":"live","Paid Event":"true","Event Start Date":"2024-09-23","Event End Date":"2024-09-25","Event Close Date":null,"Event Close Time":null}]</script><!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M2CMD8ZJ');</script><!-- End Google Tag Manager --></head>
<body class="landing-page">
<!-- Google Tag Manager (noscript) --><noscript><iframe src='https://www.googletagmanager.com/ns.html?id=GTM-M2CMD8ZJ' height='0' width='0' style='display:none;visibility:hidden'></iframe></noscript><!-- End Google Tag Manager (noscript) --> <input type="hidden" id="registrant-device" name="Registrant[device]" value="pc"> <noscript>
<input type="hidden" name="Registrant[js_disabled]" value="1"> </noscript>
<div id="nav-wrap">
<nav class="navbar navbar-static-top"><div class="container">
<div class="navbar-header">
<button aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation" data-target="#navbar" data-toggle="collapse" class="navbar-toggle collapsed" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="hidden">Menu</span>
</button>
<div id="w_47084074" class="widget v_59169964 swoogo-logo logo desktop-logo" data-single-click-settings="on" data-resize-widget="on"><div><a class="mobile-logo-img" href="/2024/5323971"><img class="img-responsive resize-target " src="//assets.swoogo.com/uploads/3734948-660adcebafb56.svg" alt="Braze Forge 2024" style=" max-height:37px;"></a></div></div><div id="w_47084075" class="widget v_59169965 swoogo-mobile-logo logo mobile-logo" data-single-click-settings="on" data-resize-widget="on"><div><a class="mobile-logo-img" href="/2024/5323971"><img class="img-responsive resize-target " src="//assets.swoogo.com/uploads/3734948-660adcebafb56.svg" alt="Braze Forge 2024" style=" max-height:300px;"></a></div></div>
</div>
<div class="collapse navbar-collapse" id="navbar">
<ul id="w0" class="navbar-nav swoogo-nav nav"><li class="v_59169968 homepage active" data-id="5323971"><a href="/2024/5323971">Home</a></li>
<li class="v_60609158" data-id="5457628"><a href="https://forge.braze.com/2024#w_48217102">About</a></li>
<li class="v_60609448" data-id="5457657"><a href="/2024/agenda">Agenda</a></li>
<li class="v_60609494" data-id="5457660"><a href="https://forge.braze.com/2024#w_48218922">Speakers</a></li>
<li class="v_60609497" data-id="5457661"><a href="#sponsors">Sponsors</a></li>
<li class="v_76484511" data-id="6977568"><a href="https://www.braze.com/resources/webinars-and-events/forge-2024-on-demand" target="_blank">Watch On Demand</a></li></ul>
</div>
</div>
</nav></div>
<div id="header-wrap" class="jumbotron site-background">
<div class="container">
<div class="banner-wrap header table-wrapper">
<div id="banner" class="tr-wrapper">
<div id="banner-content" class="td-wrapper header">
<div class="clearfix" >
<div id="w_48214177" class="widget v_60588751 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-6"><div id="w_48214170" class="widget v_60588742 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3734570-660ac85dabbbc.png" alt="" style=""></div></div><div class="col-sm-6"><div id="w_48214180" class="widget v_60588756 swoogo-text clearfix"><div class="mt-none mb-medium paragraph" style="">
<p style="text-align:left;"><span style="font-size:20px;">Thank you to everyone who joined us for Forge 2024! Relive the Forge magic with handpicked sessions featuring brands like Wendy’s, CVS Health, BET+, SoFi, Wynn Resorts, and many more.</span></p> </div>
</div><div id="w_48214181" class="widget v_60588757 swoogo-button text-left hidden-print"><a class="btn btn-alternate btn-group mt-medium mb-medium" href="https://www.braze.com/resources/webinars-and-events/forge-2024-on-demand" role="button" target="_blank"><span>Watch On Demand</span></a></div></div></div></div></div> </div>
</div>
</div>
</div>
</div>
</div>
<div class="content-section">
<div class="container">
<div class="content clearfix" role="main">
<div id="w_53600473" class="widget v_67291484 swoogo-cols"><style id="w_53600473_styles">#w_53600473 .swoogo-widget-background {background-image: none !important;background-repeat: no-repeat !important;background-color: #300266 !important;}</style><div class=" swoogo-col-wrap" style=""><div class="row swoogo-widget-background"></div><div class="row"><div class="col-sm-12"><div id="w_53600474" class="widget v_67291485 swoogo-spacer"> <div class="resize-target" style="height:21px;"></div>
</div><div id="w_53600513" class="widget v_67291535 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#ffa4fb;"><span style="font-size:20px;">Save the Date!</span></span><br /><span style="color:#ffffff;"><span style="font-size:20px;">Forge is heading back to Vegas! Join us at the Virgin Hotels from September 29 - October 1 for an unforgettable experience. More details and registration coming soon!</span></span></p> </div>
</div><div id="w_57973130" class="widget v_72756280 swoogo-spacer"> <div class="resize-target" style="height:21px;"></div>
</div></div></div></div></div><div id="w_48217102" class="widget v_60592360 swoogo-title clearfix"><h2 class="mt-large mb-large title" style="">
<p style="text-align:center;"><strong><span style="font-size:28px;">Forge is the ultimate event for anyone who works in customer engagement—
and this year, Braze is stepping it up with a refreshed brand in a new, dazzling city.</span></strong></p> </h2>
</div><div id="w_48219393" class="widget v_60595096 swoogo-spacer"> <div class="resize-target" style="height:48px;"></div>
</div><div id="w_47084078" class="widget v_59169969 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-6"><div id="w_48217107" class="widget v_60592366 swoogo-image" data-aos="fade-right" data-aos-offset="0" data-aos-delay="50" data-aos-duration="1000"><img class="img-responsive img-rounded mt-medium mb-medium" src="//assets.swoogo.com/uploads/full/3734704-660ad135b977e.jpg" alt="" style=""></div></div><div class="col-sm-6"><div id="w_53601089" class="widget v_67292222 swoogo-spacer"> <div class="resize-target" style="height:33px;"></div>
</div><div id="w_47084082" class="widget v_59169973 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:22px;"><strong>Get ready to be inspired</strong></span><br /><br />
You’ll hear success stories from innovative brands, learn the tricks of the trade from industry experts, and network with new partners who can help your brand shine. <br /><br />
Forge is also the place to get certified, trained, and expand how you can use Braze in your day-to-day work.</p> </div>
</div></div></div></div></div><div id="w_48219397" class="widget v_60595104 swoogo-spacer"> <div class="resize-target" style="height:26px;"></div>
</div><div id="w_48217442" class="widget v_60592809 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-6"><div id="w_48217443" class="widget v_60592810 swoogo-image" data-aos="fade-right" data-aos-offset="0" data-aos-delay="50" data-aos-duration="1000"><img class="img-responsive img-rounded mt-medium mb-medium" src="//assets.swoogo.com/uploads/full/3734760-660ad3c35d935.jpg" alt="" style="margin-left:auto;margin-right: 0;display:block;"></div></div><div class="col-sm-6"><div id="w_53601085" class="widget v_67292218 swoogo-spacer"> <div class="resize-target" style="height:33px;"></div>
</div><div id="w_48217444" class="widget v_60592811 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:22px;"><strong>Come for the business, but stay for the fun</strong></span></p>
<p><br />
It’s not called the city that never sleeps for nothin’. We’ll keep the party going with activations, celebrations, and a few well-deserved awards.<br /><br />
If you’ve never been to Forge, check out highlights from last year <a href="https://www.braze.com/forge2023-on-demand" target="_blank" rel="noreferrer noopener">here</a>. If you did attend, we heard your feedback, and we’re bringing you a bigger venue with more space for product deep dive sessions, partner solutions, and lots of networking–the loud and the quiet kinds.</p> </div>
</div></div></div></div></div><div id="w_57945158" class="widget v_72722282 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-12"><div id="w_57972892" class="widget v_72755974 swoogo-spacer"> <div class="resize-target" style="height:96px;"></div>
</div><div id="w_57945160" class="widget v_72722284 swoogo-image" data-aos="fade-up" data-aos-offset="0" data-aos-delay="0" data-aos-duration="1000"><img class="img-responsive img-rounded mt-medium mb-medium" src="//assets.swoogo.com/uploads/full/4449936-66f23a7b2a7b0.png" alt="Headline speaker Alex Morgan, Striker and Captain for the National Women's Soccer League Club San Diego Wave" style="margin: 0 auto;display:block; max-height:800px;"></div></div></div></div></div><div id="w_58586628" class="widget v_73527870 swoogo-spacer"> <div class="resize-target" style="height:128px;"></div>
</div><div id="w_48218888" class="widget v_60594496 swoogo-cols"><style id="w_48218888_styles">#w_48218888 .swoogo-widget-background {background-image: url('//assets.swoogo.com/uploads/medium/3735011-660adfb9e1b5e.png') !important;background-repeat: no-repeat;background-size: cover;background-position: center center;}</style><div class=" swoogo-col-wrap" style=""><div class="row swoogo-widget-background"></div><div class="row"><div class="col-sm-12"><div id="w_48223015" class="widget v_60603627 swoogo-spacer"> <div class="resize-target" style="height:33px;"></div>
</div><div id="w_48218896" class="widget v_60594508 swoogo-title clearfix"><h2 class="mt-large mb-medium title" style="">
<p style="text-align:center;"><span style="color:#ffffff;">There’s never been a better time to be a better marketer,
and there’s never been a better time to be at Forge.
Mark your calendars for September 23, and we’ll see you on the strip!</span></p> </h2>
</div><div id="w_48223019" class="widget v_60603631 swoogo-spacer"> <div class="resize-target" style="height:33px;"></div>
</div></div></div></div></div><div id="w_48328366" class="widget v_60739072 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-12"><div id="w_48328332" class="widget v_60739033 swoogo-spacer"> <div class="resize-target" style="height:46px;"></div>
</div><div id="w_48218922" class="widget v_60594536 swoogo-title clearfix"><h2 class="mt-large mb-medium title" style="">
<p style="text-align:center;">Speakers</p> </h2>
</div><div id="w_48345370" class="widget v_60760429 swoogo-spacer"> <div class="resize-target" style="height:36px;"></div>
</div></div></div></div></div><div id="w_48218924" class="widget v_60594538 swoogo-cols"><style id="w_48218924_styles">#w_48218924 .swoogo-widget-background {background-image: url('//assets.swoogo.com/uploads/medium/3739930-660c4b19d2a3d.png') !important;background-size: cover !important;background-repeat: repeat !important;background-position: center bottom !important;}#w_48218924 .override_default_text_color {color: #333333 !important;}</style><div class=" swoogo-col-wrap" style=""><div class="row swoogo-widget-background override_default_text_color"></div><div class="row"><div class="col-sm-2"><div id="w_48218933" class="widget v_60594558 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4055452-666720d5e3526.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48218941" class="widget v_60594567 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Daniel Lamarre</strong><br /><span style="font-size:12px;">Executive Vice Chairman<br />
of the Board<br /><strong>Cirque du Soleil Entertainment Group</strong></span></p> </div>
</div></div><div class="col-sm-2"><div id="w_48218938" class="widget v_60594563 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4395490-66e30ee50eede.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48219366" class="widget v_60595065 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Alexis Gay</strong><br /><span style="font-size:12px;">Comedian and Podcast Host of "The Shake Up" & "Non-Technical"</span></p> </div>
</div></div><div class="col-sm-2"><div id="w_48218934" class="widget v_60594559 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4055453-666720d5e5ee5.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48219336" class="widget v_60595031 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Vince Kadlubek</strong><br /><span style="font-size:12px;">Founder and Director<br /><strong>Meow Wolf</strong></span></p> </div>
</div></div><div class="col-sm-2"><div id="w_48218935" class="widget v_60594560 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4055454-666720d5e6c85.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48219100" class="widget v_60594784 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Victoria Loomes</strong><br /><span style="font-size:12px;">Head of Trends<br /><strong>TrendWatching</strong></span></p> </div>
</div></div><div class="col-sm-2"><div id="w_48218937" class="widget v_60594562 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4055455-666720d5e9a79.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48219343" class="widget v_60595040 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Bill Magnuson</strong><br /><span style="font-size:12px;">Cofounder & CEO<br /><strong>Braze</strong></span></p> </div>
</div></div><div class="col-sm-2"><div id="w_48218939" class="widget v_60594564 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/4395489-66e30ee4edeb2.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48219370" class="widget v_60595071 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong>Seth Matlins</strong><br /><span style="font-size:12px;">Managing Director, Forbes CMO Network</span></p> </div>
</div></div></div></div></div><div id="w_54568089" class="widget v_68430573 swoogo-button text-center hidden-print"><a class="btn btn-standard btn-group mt-medium mb-medium" href="/2024/speakers" role="button" target="_blank"><span>See All Speakers</span></a></div><div id="w_48219484" class="widget v_60595854 swoogo-spacer"> <div class="resize-target" style="height:96px;"></div>
</div><div id="w_48345333" class="widget v_60760355 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><strong><span style="font-size:22px;">Past Attendees From</span></strong></p> </div>
</div><div id="w_48329785" class="widget v_60740825 swoogo-spacer"> <div class="resize-target" style="height:18px;"></div>
</div><div id="w_48219426" class="widget v_60595156 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-2"><div id="w_48219469" class="widget v_60595208 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3740995-660c783f4cb7b.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div></div><div class="col-sm-2"><div id="w_48219470" class="widget v_60595210 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3740999-660c785ee6348.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div></div><div class="col-sm-2"><div id="w_48219472" class="widget v_60595215 swoogo-image"><img class="img-responsive mt-large mb-none" src="//assets.swoogo.com/uploads/medium/3741003-660c785f329d5.png" alt="" style="margin: 0 auto;display:block;"></div></div><div class="col-sm-2"><div id="w_48219476" class="widget v_60595219 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3757517-66103aa1620dc.png" alt="" style="margin: 0 auto;display:block; max-height:65px;"></div></div><div class="col-sm-2"><div id="w_48219478" class="widget v_60595221 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3741000-660c785eeff93.png" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div></div><div class="col-sm-2"><div id="w_48219481" class="widget v_60595224 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/medium/3741421-660c95087802b.jpeg" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div></div></div></div></div><div id="w_48227836" class="widget v_60609787 swoogo-spacer"> <div class="resize-target" style="height:96px;"></div>
</div><div id="w_48228670" class="widget v_60610861 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-12"><div id="w_48344905" class="widget v_60759805 swoogo-spacer"> <div class="resize-target" style="height:36px;"></div>
</div><div id="w_48220857" class="widget v_60600566 swoogo-title clearfix"><h2 class="mt-large mb-none title" style="">
<p style="text-align:center;"><a id="ticketinfo" name="ticketinfo"></a>Register Now</p> </h2>
</div><div id="w_48796683" class="widget v_61328644 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#91186e;">All Early Bird registrations include free training on Day 1!</span></p> </div>
</div><div id="w_53601270" class="widget v_67292446 swoogo-spacer"> <div class="resize-target" style="height:48px;"></div>
</div></div></div></div></div><div id="w_48220858" class="widget v_60600567 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-6"><div id="w_48220860" class="widget v_60600569 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="font-size:24px;">Full Access Pass</span></p> </div>
</div><div id="w_52528417" class="widget v_65965271 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48220862" class="widget v_60600571 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Super Early Bird<br />
(April 11 - June 11)</span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><span style="font-size:10px;"><em>LOWEST PRICE ALL YEAR! <br />
INCLUDES FREE TRAINING!</em></span></span></p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$499</span></strong></span><br />
</p> </div>
</div><div id="w_58056743" class="widget v_72863402 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48221481" class="widget v_60601365 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Early Bird<br />
(June 12 - Aug 26)<br /><span style="font-size:12px;">INCLUDES FREE TRAINING!</span></span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$799</span></strong></span><br />
</p> </div>
</div><div id="w_48221483" class="widget v_60601370 swoogo-line-container"><div class="swoogo-line mt-large mb-large" style="width: 100%; border-top-width: 1px; border-top-style: solid; margin: auto;"></div></div><div id="w_48221720" class="widget v_60601648 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Regular<br />
(Aug 27 - Sept 23)</span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$999</span></strong></span></p>
<p style="text-align:center;"> </p> </div>
</div></div><div class="col-sm-6"><div id="w_48221716" class="widget v_60601643 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="font-size:24px;">Full Access Group Pass (3 or more tickets)</span></p> </div>
</div><div id="w_52528421" class="widget v_65965275 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48221717" class="widget v_60601644 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Super Early Bird<br />
(April 11 - June 11)</span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><span style="font-size:10px;"><em>LOWEST PRICE ALL YEAR!<br />
INCLUDES FREE TRAINING!</em></span></span></p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$299</span><br /><span style="font-size:10px;">each for 3 or more tickets ($200 off)</span></strong></span></p> </div>
</div><div id="w_58056731" class="widget v_72863388 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48221718" class="widget v_60601645 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Early Bird<br />
(June 12 - Aug 26)<br /><span style="font-size:12px;">INCLUDES FREE TRAINING!</span></span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$599</span><br /><span style="font-size:10px;">each for 3 or more tickets ($200 off)</span></strong></span></p> </div>
</div><div id="w_48221719" class="widget v_60601646 swoogo-line-container"><div class="swoogo-line mt-large mb-large" style="width: 100%; border-top-width: 1px; border-top-style: solid; margin: auto;"></div></div><div id="w_48221485" class="widget v_60601372 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p style="text-align:center;"><span style="color:#999999;">Regular<br />
(Aug 27 - Sept 23)</span><br />
</p>
<p style="text-align:center;"><span style="color:#999999;"><strong><span style="font-size:28px;">$799</span><br /><span style="font-size:10px;">each for 3 or more tickets ($200 off)</span></strong></span></p> </div>
</div></div></div></div></div><div id="w_48227838" class="widget v_60609789 swoogo-spacer"> <div class="resize-target" style="height:48px;"></div>
</div><div id="w_48228662" class="widget v_60610850 swoogo-cols"><div class="swoogo-border swoogo-border__p-medium swoogo-border__r-large swoogo-col-wrap" style="border: 1px solid #FFA4FB;"><div class="row"><div class="col-sm-12"><div id="w_56726134" class="widget v_71193259 swoogo-title clearfix"><h2 class="mt-large mb-medium title" style="">
<p style="text-align:center;"><a id="agenda" name="agenda">Agenda</a></p> </h2>
</div><div id="w_48227837" class="widget v_60609788 swoogo-spacer"> <div class="resize-target" style="height:48px;"></div>
</div><div id="w_57541665" class="widget v_72217250 swoogo-tabs clearfix bs3 tab-align-justified tab-style-underline"> <div class="mt-medium mb-medium tab-loc-top">
<!-- Nav tabs -->
<ul class="swoogo-tab-nav nav nav-tabs" role="tablist" id="w_57541665_tablist">
<li class="active" role="presentation"> <a id="w_57541665_tab_1-tab" class="swoogo-tab-header" href="#w_57541665_tab_1" draggable="false" role="tab" data-toggle="tab" aria-controls="w_57541665_tab_1"><p>Sunday, Sept 22</p>
</a>
</li>
<li class="" role="presentation"> <a id="w_57541665_tab_2-tab" class="swoogo-tab-header" href="#w_57541665_tab_2" draggable="false" role="tab" data-toggle="tab" aria-controls="w_57541665_tab_2"><p>Monday, Sept 23</p>
</a>
</li>
<li class="" role="presentation"> <a id="w_57541665_tab_3-tab" class="swoogo-tab-header" href="#w_57541665_tab_3" draggable="false" role="tab" data-toggle="tab" aria-controls="w_57541665_tab_3"><p>Tuesday, Sept 24</p>
</a>
</li>
<li class="" role="presentation"> <a id="w_57541665_tab_4-tab" class="swoogo-tab-header" href="#w_57541665_tab_4" draggable="false" role="tab" data-toggle="tab" aria-controls="w_57541665_tab_4"><p>Wednesday, Sept 25</p>
</a>
</li>
<li class="" role="presentation"> <a id="w_57541665_tab_5-tab" class="swoogo-tab-header" href="#w_57541665_tab_5" draggable="false" role="tab" data-toggle="tab" aria-controls="w_57541665_tab_5"><p>Thursday, Sept 26</p>
</a>
</li> </ul>
<!-- Tab panes -->
<div class="tab-content">
<div id="w_57541665_tab_1" class="tab-pane active" role="tabpanel" aria-labelledby="w_57541665_tab_1-tab"> <div class="tab-widget-content col-xs-12"><div id="w_57541684" class="widget v_72217273 layout-twig swoogo-agenda widget-api registrant-timezone-update"><style id="w_57541684_styles"></style><div class="mt-medium mb-medium " style=""><style>
.timeline-build .main-event-wrapper .event:hover .title,
.timeline-build .main-event-wrapper .event:hover .location,
.timeline-build .main-event-wrapper .event:hover .time {
color: #404040 !important;
}
</style>
<div id="532">
<div class="session-agenda-timetable hidden">
<div class="session-timetable">
<span class="timetable-date">Sunday, September 22, 2024</span>
<span class="timetable-starttime">Sunday, September 22, 2024 5:00 PM</span>
<span class="timetable-endtime">Sunday, September 22, 2024 7:00 PM</span>
<span class="timetable-starttime-only">5:00 PM</span>
<span class="timetable-endtime-only">7:00 PM</span>
<span class="timetable-session-name">Attendee Arrivals</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description">Yes</span>
<span class="timetable-session-description"><p>Registration open between 5 pm - 7 pm<br />
Still need a room at the Virgin Hotels? Our room block has closed, but you can book directly through the <a href="https://virginhotelslv.com/" target="_blank" rel="noreferrer noopener">hotel’s website</a>, or email <a href="mailto:vhlv-groupreservations@vh-lv.com?Subject=">vhlv-groupreservations@vh-lv.com</a> to check for availability at our discounted rate. </p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2163124/attendee-arrivals</span>
<span class="timetable-secondary-title"></span>
</div>
</div>
<div class="timetable-week show-time hidden">
<div class="timetable-axis">
<div class="axis-item">8<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">9<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">10<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">11<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">12<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">1<span>:00</span> <span>PM</span><span class="d-md">PM</span> </div>
<div class="axis-item">2<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">3<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">4<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">5<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">6<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">7<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">8<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">9<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">10<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">11<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
</div>
<div class="timetable-columns">
<div class="timetable-column column-1">
<!-- <div class="timetable-column-header">Luxe Express</div> -->
<div class="timetable-column-content">
</div>
<div class="timetable-column-grid">
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
</div>
</div>
</div>
</div>
<div class="timetable-mobile hidden">
<div class="session-collection">
<div class="time-item">8:00 AM</div>
<div class="session-items" data-time="08:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 AM</div>
<div class="session-items" data-time="09:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 AM</div>
<div class="session-items" data-time="10:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">11:00 AM</div>
<div class="session-items" data-time="11:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">12:00 PM</div>
<div class="session-items" data-time="12:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">1:00 PM</div>
<div class="session-items" data-time="01:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">2:00 PM</div>
<div class="session-items" data-time="02:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">3:00 PM</div>
<div class="session-items" data-time="03:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">4:00 PM</div>
<div class="session-items" data-time="04:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">5:00 PM</div>
<div class="session-items" data-time="05:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">6:00 PM</div>
<div class="session-items" data-time="06:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">7:00 PM</div>
<div class="session-items" data-time="07:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">8:00 PM</div>
<div class="session-items" data-time="08:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 PM</div>
<div class="session-items" data-time="09:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 PM</div>
<div class="session-items" data-time="10:00 PM">
</div>
</div>
</div>
<div class="timeline-build">
</div>
</div>
<script>
var startTimeGlobal = "08:00 AM";
var hourGap = 110;
var hourGapMobile = 128;
var endTimeGlobal = "11:00 PM";
$(document).ready(function () {
function FindRequiredDiv(start_time) {
const targetTime = new Date(start_time);
// Extract the hours and period (AM/PM) from the date
const hours = targetTime.getHours();
const period = hours >= 12 ? "PM" : "AM";
const formattedHours = (hours % 12 || 12).toString().padStart(2, '0'); // Convert to 12-hour format and pad with zero if needed
// Format the time to match the data-time attribute
const formattedTime = `${formattedHours}:00 ${period}`;
// Find the element with the matching data-time attribute
const $sessionElement = $(`#532 .session-items[data-time="${formattedTime}"]`);
return $sessionElement;
}
function checkEmptyTime() {
$(`#532 .timetable-mobile .session-items`).each(function () {
// Check if the element is empty
console.log($(this).find('.timetable-item').length == 0);
if ($(this).find('.timetable-item').length == 0) {
// Add the 'hidden' class to the parent .session-collection element
$(this).closest('.session-collection').addClass('hidden');
} else {
$(this).closest('.session-collection').removeClass('hidden');
}
});
}
function parseTime(timeStr) {
return new Date(timeStr);
}
let categorizedSessions = {
"Open Keynote": [],
"Closing Keynote": [],
"Normal": [],
"Break": [],
"Cocktails": [],
};
// Iterate over each session and categorize based on the type
// Get the session type
let groupedSessions = {};
// Loop through each session
$(`#532 .session-timetable`).each(function (index, session) {
let startTimeStr = $(session).find(".timetable-starttime").text().trim();
let sessionType = $(session).find(".timetable-session-type").text().trim();
// Construct the session object
let sessionObject = {
startTimeOnly: $(session).find(".timetable-starttime-only").text().trim(),
endTimeOnly: $(session).find(".timetable-endtime-only").text().trim(),
startTimeStr: startTimeStr,
endTimeStr: $(session).find(".timetable-endtime").text().trim(),
sessionDate: $(session).find(".timetable-date").text().trim(),
sessionType: sessionType,
sessionTrack: $(session).find(".timetable-session-track").text().trim(),
sessionBGcolor: $(session).find(".timetable-session-bg-color").text().trim(),
moreInfoUrl: $(session).find(".timetable-moreInfo").html(),
sessionName: $(session).find(".timetable-session-name").html(),
level: $(session).find(".timetable-level").html(),
role: $(session).find(".timetable-role").html(),
bgImage: $(session).find(".timetable-background-image").html(),
showDescription: $(session).find(".timetable-session-show-description").html(),
description: $(session).find(".timetable-session-description").html(),
};
// Group by start time
if (!groupedSessions[startTimeStr]) {
groupedSessions[startTimeStr] = {};
}
// Group by type within the start time group
if (sessionType) {
if (!groupedSessions[startTimeStr][sessionType]) {
groupedSessions[startTimeStr][sessionType] = [];
}
}
if (sessionType) {
// Push the session object into the appropriate group
groupedSessions[startTimeStr][sessionType].push(sessionObject);
}
});
// Now `categorizedSessions` contains sessions grouped by type and then by start time
console.log(groupedSessions);
addSessionOnRespectedType(groupedSessions);
function addSessionOnRespectedType(groupedSessions) {
for (let startTime in groupedSessions) {
if (groupedSessions.hasOwnProperty(startTime)) {
let types = groupedSessions[startTime];
let timeHeaderAppended = false;
for (let type in types) {
if (types.hasOwnProperty(type)) {
let categorizedSessions = types[type];
let earliestStartTime = null;
let latestEndTime = null;
let sessionDate = null;
if (categorizedSessions.length > 0) {
// Create a new group session wrapper
let groupSessionHtml = `<div class="group-session">`;
// Append time header only once per startTime group
let firstSession = categorizedSessions[0];
let sessionTimeHeader = `<div class="time-header">${firstSession.startTimeOnly} PDT</div>`;
groupSessionHtml += sessionTimeHeader;
// Prepare the content for different session types
let newHtml = "";
if (type === "Open Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Closing Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Normal") {
let groupedNormalSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedNormalSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedNormalSessions.push(group);
}
group.sessions.push(session);
});
groupedNormalSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
sessionHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
// Wrap the sessions in a slider container if more than 5
if (group.sessions.length > 5) {
newHtml += `<div class="timetable-item normal-sessions">
<div class="session-slider slick-slider ">${sessionHtml}</div>
</div>`;
} else {
newHtml += `<div class="timetable-item normal-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
}
});
}
if (type === "Cocktails") {
let groupedCocktailSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedCocktailSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedCocktailSessions.push(group);
}
group.sessions.push(session);
});
groupedCocktailSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event cocktails open-as-modal" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<h4 class="title">${sessionName}</h4>
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item cocktails-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
if (type === "Break") {
let groupedBreakSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedBreakSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedBreakSessions.push(group);
}
group.sessions.push(session);
});
groupedBreakSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event break open-as-modal ${sessionBGcolor.toLowerCase()}" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item break-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
// Close the group session wrapper
groupSessionHtml += newHtml + `</div>`;
// Append the entire group session to the timeline
$(`#532 .timeline-build`).append(groupSessionHtml);
}
}
}
}
}
}
var bg = "";
$(document).on("click", ".event.open-as-modal", function () {
$("#swoogo-modal").addClass("session-modal");
bg = $(this).attr("data-bg");
$(".modal-backdrop").addClass(bg);
$("#swoogo-modal").addClass(bg);
if ($(this).hasClass("key-note")) {
$(".modal-backdrop").addClass("keynote-bg");
$("#swoogo-modal").addClass("keynote-bg");
}
});
$(document).on('hidden.bs.modal', '#swoogo-modal', (evt) => {
$("#swoogo-modal").removeClass("session-modal");
$("#swoogo-modal").removeClass(bg);
$(".modal-backdrop").removeClass(bg);
});
function HourGapSession(sessionStartTime, SessionEndTime, isDesktop = true) {
const startTime = new Date(sessionStartTime);
const endTime = new Date(SessionEndTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap - 20;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
function HeightGapSession(sessionDate, sessionStartTime, isDesktop = true) {
const startTime = new Date(sessionDate + " " + startTimeGlobal);
const endTime = new Date(sessionStartTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
});
</script>
<script>
$(document).on("click", ".session-moreInfo-link", function () {
localStorage.setItem("backLink", $(this).attr("href"));
$("#swoogo-modal").addClass("session-on-modal");
$("#swoogo-modal").addClass("session-on-modal-v2");
$("#swoogo-modal .modal-header .btn-back-div").remove();
$(window).on('shown.bs.modal', function (e) {
var moveHeader = setInterval(function () {
if ($(".modal-body .session-header-hidden").length > 0) {
$("#w_28619284").remove();
clearInterval(moveHeader);
var moveHeaderTwo = $(".modal-body .session-header-hidden").clone().addClass("session-header").removeClass("session-header-hidden").removeClass("hidden");
if ($(".modal-header .session-header").length == 0) {
$(".modal-header").prepend(moveHeaderTwo);
}
// $(document).on("click", ".session-location", function () {
// $("#swoogo-modal").modal("hide");
// $("#w_30333533_tab_3-tab").click();
// setTimeout(function () {
// $('html, body').animate({
// scrollTop: $('.sitemap-bottom').offset().top
// }, 1000);
// }, 200);
// });
}
}, 100);
$(".modal-body").scroll(function () {
if ($(this).scrollTop() > 30) {
$(".modal-header").addClass("fixed-header");
$(".modal-body").addClass("fixed-body");
} else {
$(".modal-header").removeClass("fixed-header");
$(".modal-body").removeClass("fixed-body");
}
});
});
});
$(window).on('hidden.bs.modal', function (e) {
$(".modal-header .session-header").remove();
$("#swoogo-modal").removeClass("session-on-modal").removeClass("speaker-session").removeClass("session-on-modal-v2");
});
</script></div></div></div> </div> <div id="w_57541665_tab_2" class="tab-pane" role="tabpanel" aria-labelledby="w_57541665_tab_2-tab"> <div class="tab-widget-content col-xs-12"><div id="w_57541668" class="widget v_72217254 layout-twig swoogo-agenda widget-api registrant-timezone-update"><style id="w_57541668_styles"></style><div class="mt-medium mb-medium " style=""><style>
.timeline-build .main-event-wrapper .event:hover .title,
.timeline-build .main-event-wrapper .event:hover .location,
.timeline-build .main-event-wrapper .event:hover .time {
color: #404040 !important;
}
</style>
<div id="805">
<div class="session-agenda-timetable hidden">
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 8:30 AM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 8:30 AM</span>
<span class="timetable-endtime">Monday, September 23, 2024 5:00 PM</span>
<span class="timetable-starttime-only">8:30 AM</span>
<span class="timetable-endtime-only">5:00 PM</span>
<span class="timetable-session-name">Registration</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color">light-orange</span>
<span class="timetable-session-show-description">Yes</span>
<span class="timetable-session-description"><p>Open between 8:30 am - 5 pm</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156237/registration</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 8:30 AM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 8:30 AM</span>
<span class="timetable-endtime">Monday, September 23, 2024 10:00 AM</span>
<span class="timetable-starttime-only">8:30 AM</span>
<span class="timetable-endtime-only">10:00 AM</span>
<span class="timetable-session-name">Breakfast</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2506138/breakfast</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 10:00 AM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 10:00 AM</span>
<span class="timetable-endtime">Monday, September 23, 2024 12:00 PM</span>
<span class="timetable-starttime-only">10:00 AM</span>
<span class="timetable-endtime-only">12:00 PM</span>
<span class="timetable-session-name">Women in Leadership Brunch</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>There’s never been a better time to be a better marketer, and the role of the Chief Marketing Officer (CMO) is more critical than ever– shaping not only brand identity but also customer experience and business strategy. This panel brings together influential women who have risen to the top of their field to share their journeys, from breaking into the industry to achieving leadership in the C-suite.</p>
<p>We’ll have an open discussion about the unique perspectives they bring to the leadership table as women in a C-suite role. They’ll share moments of personal and professional success and discuss how to navigate a career path often shaped by constant evolution.</p>
<p>The conversation will also highlight why a marketing leader is essential—not just for driving company growth but for understanding and connecting with customers on a deeper level. Everyone should leave with insights into the intersection of marketing leadership, business success, and customer relationships. And, of course, with inspiration to pursue their own leadership potential in this ever-evolving field.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156239/women-in-leadership-brunch</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 10:00 AM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 10:00 AM</span>
<span class="timetable-endtime">Monday, September 23, 2024 4:00 PM</span>
<span class="timetable-starttime-only">10:00 AM</span>
<span class="timetable-endtime-only">4:00 PM</span>
<span class="timetable-session-name">Training and Certifications</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>See detailed agenda for available sessions</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2178698/training-and-certifications</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 12:00 PM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 12:00 PM</span>
<span class="timetable-endtime">Monday, September 23, 2024 1:30 PM</span>
<span class="timetable-starttime-only">12:00 PM</span>
<span class="timetable-endtime-only">1:30 PM</span>
<span class="timetable-session-name">Lunch</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2335359/lunch</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 1:30 PM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 1:30 PM</span>
<span class="timetable-endtime">Monday, September 23, 2024 2:30 PM</span>
<span class="timetable-starttime-only">1:30 PM</span>
<span class="timetable-endtime-only">2:30 PM</span>
<span class="timetable-session-name">Marketing Is Everything. (And Everything Is Marketing.)</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>With decades of experience advising and leading the c-suite of the world’s largest brands—and some of the smallest—award-winning marketer Seth Matlins really understands marketing. As Managing Director of the Forbes CMO Network, he’s shaping global conversations that directly impact how businesses engage with customers, build brands, and drive growth. His unique vantage point offers an insider’s look at marketing 2024 but, more importantly, the marketing of tomorrow. For anyone navigating the challenges of marketing today, you'll appreciate Seth’s forward-thinking perspective on the evolving role of the CMO. Whether you're a marketer, brand leader, or entrepreneur, his insights will equip you with the knowledge you need to stay relevant, agile, and competitive in a time where marketing is everything, and everything is marketing.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2501964/marketing-is-everything.-and-everything-is-marketing.</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 2:00 PM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 2:00 PM</span>
<span class="timetable-endtime">Monday, September 23, 2024 5:00 PM</span>
<span class="timetable-starttime-only">2:00 PM</span>
<span class="timetable-endtime-only">5:00 PM</span>
<span class="timetable-session-name">Engagement Chapel Open</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156238/engagement-chapel-open</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Monday, September 23, 2024</span>
<span class="timetable-starttime">Monday, September 23, 2024 5:00 PM</span>
<span class="timetable-group-starttime">Monday, September 23, 2024 5:00 PM</span>
<span class="timetable-endtime">Monday, September 23, 2024 7:00 PM</span>
<span class="timetable-starttime-only">5:00 PM</span>
<span class="timetable-endtime-only">7:00 PM</span>
<span class="timetable-session-name">Forge 2024 Opening Night: Let the Inspo Begin!</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Kick off your Forge experience with a lively evening in The Theater! Join Braze and fellow attendees for an unforgettable Opening Night, starting with drinks and mingling before you find your seat. The night begins with comedian Alexis Gay, guaranteed to get you laughing, followed by the inspiring Torchie Awards, where we'll celebrate the best in customer engagement. Don’t miss out—come early and get ready for an incredible start to Forge!</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image">https://assets.swoogo.com/uploads/medium/4262379-66bbcb78174da.png</span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156243/forge-2024-opening-night-let-the-inspo-begin</span>
<span class="timetable-secondary-title"></span>
</div>
</div>
<div class="timetable-week show-time hidden">
<div class="timetable-axis">
<div class="axis-item">8<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">9<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">10<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">11<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">12<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">1<span>:00</span> <span>PM</span><span class="d-md">PM</span> </div>
<div class="axis-item">2<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">3<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">4<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">5<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">6<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">7<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">8<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">9<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">10<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">11<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
</div>
<div class="timetable-columns">
<div class="timetable-column column-1">
<!-- <div class="timetable-column-header">Luxe Express</div> -->
<div class="timetable-column-content">
</div>
<div class="timetable-column-grid">
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
</div>
</div>
</div>
</div>
<div class="timetable-mobile hidden">
<div class="session-collection">
<div class="time-item">8:00 AM</div>
<div class="session-items" data-time="08:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 AM</div>
<div class="session-items" data-time="09:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 AM</div>
<div class="session-items" data-time="10:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">11:00 AM</div>
<div class="session-items" data-time="11:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">12:00 PM</div>
<div class="session-items" data-time="12:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">1:00 PM</div>
<div class="session-items" data-time="01:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">2:00 PM</div>
<div class="session-items" data-time="02:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">3:00 PM</div>
<div class="session-items" data-time="03:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">4:00 PM</div>
<div class="session-items" data-time="04:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">5:00 PM</div>
<div class="session-items" data-time="05:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">6:00 PM</div>
<div class="session-items" data-time="06:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">7:00 PM</div>
<div class="session-items" data-time="07:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">8:00 PM</div>
<div class="session-items" data-time="08:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 PM</div>
<div class="session-items" data-time="09:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 PM</div>
<div class="session-items" data-time="10:00 PM">
</div>
</div>
</div>
<div class="timeline-build">
</div>
</div>
<script>
var startTimeGlobal = "08:00 AM";
var hourGap = 110;
var hourGapMobile = 128;
var endTimeGlobal = "11:00 PM";
$(document).ready(function () {
function FindRequiredDiv(start_time) {
const targetTime = new Date(start_time);
// Extract the hours and period (AM/PM) from the date
const hours = targetTime.getHours();
const period = hours >= 12 ? "PM" : "AM";
const formattedHours = (hours % 12 || 12).toString().padStart(2, '0'); // Convert to 12-hour format and pad with zero if needed
// Format the time to match the data-time attribute
const formattedTime = `${formattedHours}:00 ${period}`;
// Find the element with the matching data-time attribute
const $sessionElement = $(`#805 .session-items[data-time="${formattedTime}"]`);
return $sessionElement;
}
function checkEmptyTime() {
$(`#805 .timetable-mobile .session-items`).each(function () {
// Check if the element is empty
console.log($(this).find('.timetable-item').length == 0);
if ($(this).find('.timetable-item').length == 0) {
// Add the 'hidden' class to the parent .session-collection element
$(this).closest('.session-collection').addClass('hidden');
} else {
$(this).closest('.session-collection').removeClass('hidden');
}
});
}
function parseTime(timeStr) {
return new Date(timeStr);
}
let categorizedSessions = {
"Open Keynote": [],
"Closing Keynote": [],
"Normal": [],
"Break": [],
"Cocktails": [],
};
// Iterate over each session and categorize based on the type
// Get the session type
let groupedSessions = {};
// Loop through each session
$(`#805 .session-timetable`).each(function (index, session) {
let startTimeStr = $(session).find(".timetable-starttime").text().trim();
let groupStartTimeStr = $(session).find(".timetable-group-starttime").text().trim();
let sessionType = $(session).find(".timetable-session-type").text().trim();
// Construct the session object
let sessionObject = {
startTimeOnly: $(session).find(".timetable-starttime-only").text().trim(),
endTimeOnly: $(session).find(".timetable-endtime-only").text().trim(),
startTimeStr: startTimeStr,
groupStartTimeStr: groupStartTimeStr,
endTimeStr: $(session).find(".timetable-endtime").text().trim(),
sessionDate: $(session).find(".timetable-date").text().trim(),
sessionType: sessionType,
sessionTrack: $(session).find(".timetable-session-track").text().trim(),
sessionBGcolor: $(session).find(".timetable-session-bg-color").text().trim(),
moreInfoUrl: $(session).find(".timetable-moreInfo").html(),
sessionName: $(session).find(".timetable-session-name").html(),
level: $(session).find(".timetable-level").html(),
role: $(session).find(".timetable-role").html(),
bgImage: $(session).find(".timetable-background-image").html(),
showDescription: $(session).find(".timetable-session-show-description").html(),
description: $(session).find(".timetable-session-description").html(),
};
// Group by start time
if (!groupedSessions[groupStartTimeStr]) {
groupedSessions[groupStartTimeStr] = {};
}
// Group by type within the start time group
if (sessionType) {
if (!groupedSessions[groupStartTimeStr][sessionType]) {
groupedSessions[groupStartTimeStr][sessionType] = [];
}
}
if (sessionType) {
// Push the session object into the appropriate group
groupedSessions[groupStartTimeStr][sessionType].push(sessionObject);
}
});
// Now `categorizedSessions` contains sessions grouped by type and then by start time
console.log(groupedSessions);
addSessionOnRespectedType(groupedSessions);
function addSessionOnRespectedType(groupedSessions) {
for (let startTime in groupedSessions) {
if (groupedSessions.hasOwnProperty(startTime)) {
let types = groupedSessions[startTime];
let timeHeaderAppended = false;
for (let type in types) {
if (types.hasOwnProperty(type)) {
let categorizedSessions = types[type];
let earliestStartTime = null;
let latestEndTime = null;
let sessionDate = null;
if (categorizedSessions.length > 0) {
// Create a new group session wrapper
let groupSessionHtml = `<div class="group-session">`;
// Append time header only once per startTime group
let firstSession = categorizedSessions[0];
let sessionTimeHeader = `<div class="time-header">${firstSession.startTimeOnly}</div>`;
groupSessionHtml += sessionTimeHeader;
// Prepare the content for different session types
let newHtml = "";
if (type === "Open Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Closing Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Normal") {
let groupedNormalSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedNormalSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedNormalSessions.push(group);
}
group.sessions.push(session);
});
groupedNormalSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
sessionHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
// Wrap the sessions in a slider container if more than 5
if (group.sessions.length > 5) {
newHtml += `<div class="timetable-item normal-sessions">
<div class="session-slider slick-slider ">${sessionHtml}</div>
</div>`;
} else {
newHtml += `<div class="timetable-item normal-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
}
});
}
if (type === "Cocktails") {
let groupedCocktailSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedCocktailSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedCocktailSessions.push(group);
}
group.sessions.push(session);
});
groupedCocktailSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event cocktails open-as-modal" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<h4 class="title">${sessionName}</h4>
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item cocktails-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
if (type === "Break") {
let groupedBreakSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedBreakSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedBreakSessions.push(group);
}
group.sessions.push(session);
});
groupedBreakSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event break open-as-modal ${sessionBGcolor.toLowerCase()}" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item break-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
// Close the group session wrapper
groupSessionHtml += newHtml + `</div>`;
// Append the entire group session to the timeline
$(`#805 .timeline-build`).append(groupSessionHtml);
}
}
}
}
}
}
var bg = "";
$(document).on("click", ".event.open-as-modal", function () {
$("#swoogo-modal").addClass("session-modal");
bg = $(this).attr("data-bg");
$(".modal-backdrop").addClass(bg);
$("#swoogo-modal").addClass(bg);
if ($(this).hasClass("key-note")) {
$(".modal-backdrop").addClass("keynote-bg");
$("#swoogo-modal").addClass("keynote-bg");
}
});
$(document).on('hidden.bs.modal', '#swoogo-modal', (evt) => {
$("#swoogo-modal").removeClass("session-modal");
$("#swoogo-modal").removeClass(bg);
$(".modal-backdrop").removeClass(bg);
});
function HourGapSession(sessionStartTime, SessionEndTime, isDesktop = true) {
const startTime = new Date(sessionStartTime);
const endTime = new Date(SessionEndTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap - 20;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
function HeightGapSession(sessionDate, sessionStartTime, isDesktop = true) {
const startTime = new Date(sessionDate + " " + startTimeGlobal);
const endTime = new Date(sessionStartTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
});
</script>
<script>
$(document).on("click", ".session-moreInfo-link", function () {
localStorage.setItem("backLink", $(this).attr("href"));
$("#swoogo-modal").addClass("session-on-modal");
$("#swoogo-modal").addClass("session-on-modal-v2");
$("#swoogo-modal .modal-header .btn-back-div").remove();
$(window).on('shown.bs.modal', function (e) {
var moveHeader = setInterval(function () {
if ($(".modal-body .session-header-hidden").length > 0) {
$("#w_28619284").remove();
clearInterval(moveHeader);
var moveHeaderTwo = $(".modal-body .session-header-hidden").clone().addClass("session-header").removeClass("session-header-hidden").removeClass("hidden");
if ($(".modal-header .session-header").length == 0) {
$(".modal-header").prepend(moveHeaderTwo);
}
// $(document).on("click", ".session-location", function () {
// $("#swoogo-modal").modal("hide");
// $("#w_30333533_tab_3-tab").click();
// setTimeout(function () {
// $('html, body').animate({
// scrollTop: $('.sitemap-bottom').offset().top
// }, 1000);
// }, 200);
// });
}
}, 100);
$(".modal-body").scroll(function () {
if ($(this).scrollTop() > 30) {
$(".modal-header").addClass("fixed-header");
$(".modal-body").addClass("fixed-body");
} else {
$(".modal-header").removeClass("fixed-header");
$(".modal-body").removeClass("fixed-body");
}
});
});
});
$(window).on('hidden.bs.modal', function (e) {
$(".modal-header .session-header").remove();
$("#swoogo-modal").removeClass("session-on-modal").removeClass("speaker-session").removeClass("session-on-modal-v2");
});
</script></div></div></div> </div> <div id="w_57541665_tab_3" class="tab-pane" role="tabpanel" aria-labelledby="w_57541665_tab_3-tab"> <div class="tab-widget-content col-xs-12"><div id="w_57541685" class="widget v_72217274 layout-twig swoogo-agenda widget-api registrant-timezone-update"><style id="w_57541685_styles"></style><div class="mt-medium mb-medium " style=""><style>
.timeline-build .main-event-wrapper .event:hover .title,
.timeline-build .main-event-wrapper .event:hover .location,
.timeline-build .main-event-wrapper .event:hover .time {
color: #404040 !important;
}
</style>
<div id="199">
<div class="session-agenda-timetable hidden">
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 5:30 PM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">5:30 PM</span>
<span class="timetable-session-name">Networking, Exploration, and The Engagement Chapel Experience</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156250/networking-exploration-and-the-engagement-chapel-experience</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 5:00 PM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">5:00 PM</span>
<span class="timetable-session-name">Registration</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color">light-orange</span>
<span class="timetable-session-show-description">Yes</span>
<span class="timetable-session-description"><p>Open between 8 am - 5 pm</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2510256/registration</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 8:00 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 9:30 AM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">9:30 AM</span>
<span class="timetable-session-name">Breakfast</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2509982/breakfast</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 9:30 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 9:30 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 10:35 AM</span>
<span class="timetable-starttime-only">9:30 AM</span>
<span class="timetable-endtime-only">10:35 AM</span>
<span class="timetable-session-name">There’s Never Been a Better Time to be a Better Marketer</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Don’t be late for Tuesday morning! Braze CEO Bill Magnuson shares his vision for customer engagement and explains why there has never been a better time to be a better marketer. Then Braze CTO Jon Hyman and Braze Chief Business & Marketing Officer, Astha Malik talk about the exciting Braze product and ecosystem innovation announcements. Along the way, they’ll be joined by special guests from WPP and Snowflake.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image">https://assets.swoogo.com/uploads/medium/4262379-66bbcb78174da.png</span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156251/there’s-never-been-a-better-time-to-be-a-better-marketer</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 10:35 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 9:30 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 10:50 AM</span>
<span class="timetable-starttime-only">10:35 AM</span>
<span class="timetable-endtime-only">10:50 AM</span>
<span class="timetable-session-name">What’s Ahead at Forge 2024</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Forge 2024 is packed with opportunities, and here’s how you can make the most of your experience! Join Sarah Reed as she walks you through everything you can expect—from headline speakers to insights from Braze experts to exciting activities in the Engagement Chapel. Whether you're looking for sessions that inspire or experiences that connect, Forge has something for everyone. Get ready to dive in!</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2500880/what’s-ahead-at-forge-2024</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 10:50 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 9:30 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 11:30 AM</span>
<span class="timetable-starttime-only">10:50 AM</span>
<span class="timetable-endtime-only">11:30 AM</span>
<span class="timetable-session-name">Unlocking Creativity: The World of Meow Wolf and What It Means for Marketers</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Have you ever stepped through a refrigerator and into a completely different world? Or wandered through an immersive art experience disguised as a supermarket? That's Omega Mart, the extraordinary Meow Wolf installation, just minutes away from Forge. Meow Wolf's mission is to spark creativity, blending the everyday with the extraordinary. Vince Kadlubek, cofounder and Chief Vision Officer of Meow Wolf, explains how all of us, as marketers and technologists, can push the limits of experience, why we must balance business and creativity, and how tech and AI fuel artistic innovation. </p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2500882/unlocking-creativity-the-world-of-meow-wolf-and-what-it-means-for-marketers</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 11:30 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 11:30 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 1:00 PM</span>
<span class="timetable-starttime-only">11:30 AM</span>
<span class="timetable-endtime-only">1:00 PM</span>
<span class="timetable-session-name">Lunch</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2516740/lunch</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 11:30 AM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 11:30 AM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 3:45 PM</span>
<span class="timetable-starttime-only">11:30 AM</span>
<span class="timetable-endtime-only">3:45 PM</span>
<span class="timetable-session-name">Networking, Exploration, and The Engagement Chapel Experience</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156252/networking-exploration-and-the-engagement-chapel-experience</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 1:00 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 1:00 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 3:00 PM</span>
<span class="timetable-starttime-only">1:00 PM</span>
<span class="timetable-endtime-only">3:00 PM</span>
<span class="timetable-session-name">Breakout Sessions</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156253/breakout-sessions</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 2:00 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 2:00 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 3:00 PM</span>
<span class="timetable-starttime-only">2:00 PM</span>
<span class="timetable-endtime-only">3:00 PM</span>
<span class="timetable-session-name">Industry Roundtable | QSR: The Secret to a Drive-Thru Line for Days – Fandoms</span>
<span class="timetable-session-type"></span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>In this engaging workshop hosted by TrendWatching and Braze, you’ll dive into the emerging trend of Fandom 3.0. Through interactive exercises, you’ll map out strategies to create the most rewarding ecosystem for your fans and explore how partnering with MarTech can turn customers into lifelong advocates.</p>
<p>Location: Studio 1B, 1st Floor, Opal Tower</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2486433/industry-roundtable-qsr-the-secret-to-a-drive-thru-line-for-days-–-fandoms</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 2:00 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 2:00 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 2:45 PM</span>
<span class="timetable-starttime-only">2:00 PM</span>
<span class="timetable-endtime-only">2:45 PM</span>
<span class="timetable-session-name">Stay Ahead of the Game as Customer Engagement and AI Evolve</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track">Brands on a Roll</span>
<span class="timetable-session-bg-color">light-orange</span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>As technology has advanced, marketing leaders have found themselves to oversee a new type of digital transformation, one focused on automation and machine learning. But staying ahead of the competition in this fast-evolving landscape is easier said than done. In this session, we’ll hear from customer engagement thought leaders as they discuss innovative customer engagement approaches, AI, and what they’re doing to set up their companies for future success.</p></span>
<span class="timetable-level">All</span>
<span class="timetable-role">Executive</span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2368147/stay-ahead-of-the-game-as-customer-engagement-and-ai-evolve</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 3:00 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 3:00 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 4:00 PM</span>
<span class="timetable-starttime-only">3:00 PM</span>
<span class="timetable-endtime-only">4:00 PM</span>
<span class="timetable-session-name">Industry Roundtable | Inclusive Marketing: From Bolt-on to Built-in: How Technology will Power Inclusive Marketing</span>
<span class="timetable-session-type"></span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>The rise of the Synthetic Inclusion Trend offers the potential for deeper, more meaningful impact. In this workshop hosted by Braze and TrendWatching, you’ll engage in hands-on activities to explore how machine learning and other technologies can drive this trend. Together, we’ll brainstorm and prototype solutions that embed inclusivity into the core of your marketing efforts.</p>
<p>Location: Studio 1B, 1st Floor, Opal Tower</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2486434/industry-roundtable-inclusive-marketing-from-bolt-on-to-built-in-how-technology-will-power-inclusive-marketing</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 4:00 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 4:00 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 5:30 PM</span>
<span class="timetable-starttime-only">4:00 PM</span>
<span class="timetable-endtime-only">5:30 PM</span>
<span class="timetable-session-name">The Engagement Chapel Reception</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Join us for networking and drinks!</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156256/the-engagement-chapel-reception</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Tuesday, September 24, 2024</span>
<span class="timetable-starttime">Tuesday, September 24, 2024 5:30 PM</span>
<span class="timetable-group-starttime">Tuesday, September 24, 2024 5:30 PM</span>
<span class="timetable-endtime">Tuesday, September 24, 2024 11:30 PM</span>
<span class="timetable-starttime-only">5:30 PM</span>
<span class="timetable-endtime-only">11:30 PM</span>
<span class="timetable-session-name">Experience Las Vegas</span>
<span class="timetable-session-type">Cocktails</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image">https://assets.swoogo.com/uploads/medium/4262379-66bbcb78174da.png</span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156257/experience-las-vegas</span>
<span class="timetable-secondary-title"></span>
</div>
</div>
<div class="timetable-week show-time hidden">
<div class="timetable-axis">
<div class="axis-item">8<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">9<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">10<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">11<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">12<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">1<span>:00</span> <span>PM</span><span class="d-md">PM</span> </div>
<div class="axis-item">2<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">3<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">4<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">5<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">6<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">7<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">8<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">9<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">10<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">11<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
</div>
<div class="timetable-columns">
<div class="timetable-column column-1">
<!-- <div class="timetable-column-header">Luxe Express</div> -->
<div class="timetable-column-content">
</div>
<div class="timetable-column-grid">
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
</div>
</div>
</div>
</div>
<div class="timetable-mobile hidden">
<div class="session-collection">
<div class="time-item">8:00 AM</div>
<div class="session-items" data-time="08:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 AM</div>
<div class="session-items" data-time="09:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 AM</div>
<div class="session-items" data-time="10:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">11:00 AM</div>
<div class="session-items" data-time="11:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">12:00 PM</div>
<div class="session-items" data-time="12:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">1:00 PM</div>
<div class="session-items" data-time="01:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">2:00 PM</div>
<div class="session-items" data-time="02:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">3:00 PM</div>
<div class="session-items" data-time="03:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">4:00 PM</div>
<div class="session-items" data-time="04:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">5:00 PM</div>
<div class="session-items" data-time="05:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">6:00 PM</div>
<div class="session-items" data-time="06:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">7:00 PM</div>
<div class="session-items" data-time="07:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">8:00 PM</div>
<div class="session-items" data-time="08:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 PM</div>
<div class="session-items" data-time="09:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 PM</div>
<div class="session-items" data-time="10:00 PM">
</div>
</div>
</div>
<div class="timeline-build">
</div>
</div>
<script>
var startTimeGlobal = "08:00 AM";
var hourGap = 110;
var hourGapMobile = 128;
var endTimeGlobal = "11:00 PM";
$(document).ready(function () {
function FindRequiredDiv(start_time) {
const targetTime = new Date(start_time);
// Extract the hours and period (AM/PM) from the date
const hours = targetTime.getHours();
const period = hours >= 12 ? "PM" : "AM";
const formattedHours = (hours % 12 || 12).toString().padStart(2, '0'); // Convert to 12-hour format and pad with zero if needed
// Format the time to match the data-time attribute
const formattedTime = `${formattedHours}:00 ${period}`;
// Find the element with the matching data-time attribute
const $sessionElement = $(`#199 .session-items[data-time="${formattedTime}"]`);
return $sessionElement;
}
function checkEmptyTime() {
$(`#199 .timetable-mobile .session-items`).each(function () {
// Check if the element is empty
console.log($(this).find('.timetable-item').length == 0);
if ($(this).find('.timetable-item').length == 0) {
// Add the 'hidden' class to the parent .session-collection element
$(this).closest('.session-collection').addClass('hidden');
} else {
$(this).closest('.session-collection').removeClass('hidden');
}
});
}
function parseTime(timeStr) {
return new Date(timeStr);
}
let categorizedSessions = {
"Open Keynote": [],
"Closing Keynote": [],
"Normal": [],
"Break": [],
"Cocktails": [],
};
// Iterate over each session and categorize based on the type
// Get the session type
let groupedSessions = {};
// Loop through each session
$(`#199 .session-timetable`).each(function (index, session) {
let startTimeStr = $(session).find(".timetable-starttime").text().trim();
let groupStartTimeStr = $(session).find(".timetable-group-starttime").text().trim();
let sessionType = $(session).find(".timetable-session-type").text().trim();
// Construct the session object
let sessionObject = {
startTimeOnly: $(session).find(".timetable-starttime-only").text().trim(),
endTimeOnly: $(session).find(".timetable-endtime-only").text().trim(),
startTimeStr: startTimeStr,
groupStartTimeStr: groupStartTimeStr,
endTimeStr: $(session).find(".timetable-endtime").text().trim(),
sessionDate: $(session).find(".timetable-date").text().trim(),
sessionType: sessionType,
sessionTrack: $(session).find(".timetable-session-track").text().trim(),
sessionBGcolor: $(session).find(".timetable-session-bg-color").text().trim(),
moreInfoUrl: $(session).find(".timetable-moreInfo").html(),
sessionName: $(session).find(".timetable-session-name").html(),
level: $(session).find(".timetable-level").html(),
role: $(session).find(".timetable-role").html(),
bgImage: $(session).find(".timetable-background-image").html(),
showDescription: $(session).find(".timetable-session-show-description").html(),
description: $(session).find(".timetable-session-description").html(),
};
// Group by start time
if (!groupedSessions[groupStartTimeStr]) {
groupedSessions[groupStartTimeStr] = {};
}
// Group by type within the start time group
if (sessionType) {
if (!groupedSessions[groupStartTimeStr][sessionType]) {
groupedSessions[groupStartTimeStr][sessionType] = [];
}
}
if (sessionType) {
// Push the session object into the appropriate group
groupedSessions[groupStartTimeStr][sessionType].push(sessionObject);
}
});
// Now `categorizedSessions` contains sessions grouped by type and then by start time
console.log(groupedSessions);
addSessionOnRespectedType(groupedSessions);
function addSessionOnRespectedType(groupedSessions) {
for (let startTime in groupedSessions) {
if (groupedSessions.hasOwnProperty(startTime)) {
let types = groupedSessions[startTime];
let timeHeaderAppended = false;
for (let type in types) {
if (types.hasOwnProperty(type)) {
let categorizedSessions = types[type];
let earliestStartTime = null;
let latestEndTime = null;
let sessionDate = null;
if (categorizedSessions.length > 0) {
// Create a new group session wrapper
let groupSessionHtml = `<div class="group-session">`;
// Append time header only once per startTime group
let firstSession = categorizedSessions[0];
let sessionTimeHeader = `<div class="time-header">${firstSession.startTimeOnly}</div>`;
groupSessionHtml += sessionTimeHeader;
// Prepare the content for different session types
let newHtml = "";
if (type === "Open Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Closing Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Normal") {
let groupedNormalSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedNormalSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedNormalSessions.push(group);
}
group.sessions.push(session);
});
groupedNormalSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
sessionHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
// Wrap the sessions in a slider container if more than 5
if (group.sessions.length > 5) {
newHtml += `<div class="timetable-item normal-sessions">
<div class="session-slider slick-slider ">${sessionHtml}</div>
</div>`;
} else {
newHtml += `<div class="timetable-item normal-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
}
});
}
if (type === "Cocktails") {
let groupedCocktailSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedCocktailSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedCocktailSessions.push(group);
}
group.sessions.push(session);
});
groupedCocktailSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event cocktails open-as-modal" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<h4 class="title">${sessionName}</h4>
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item cocktails-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
if (type === "Break") {
let groupedBreakSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedBreakSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedBreakSessions.push(group);
}
group.sessions.push(session);
});
groupedBreakSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event break open-as-modal ${sessionBGcolor.toLowerCase()}" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item break-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
// Close the group session wrapper
groupSessionHtml += newHtml + `</div>`;
// Append the entire group session to the timeline
$(`#199 .timeline-build`).append(groupSessionHtml);
}
}
}
}
}
}
var bg = "";
$(document).on("click", ".event.open-as-modal", function () {
$("#swoogo-modal").addClass("session-modal");
bg = $(this).attr("data-bg");
$(".modal-backdrop").addClass(bg);
$("#swoogo-modal").addClass(bg);
if ($(this).hasClass("key-note")) {
$(".modal-backdrop").addClass("keynote-bg");
$("#swoogo-modal").addClass("keynote-bg");
}
});
$(document).on('hidden.bs.modal', '#swoogo-modal', (evt) => {
$("#swoogo-modal").removeClass("session-modal");
$("#swoogo-modal").removeClass(bg);
$(".modal-backdrop").removeClass(bg);
});
function HourGapSession(sessionStartTime, SessionEndTime, isDesktop = true) {
const startTime = new Date(sessionStartTime);
const endTime = new Date(SessionEndTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap - 20;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
function HeightGapSession(sessionDate, sessionStartTime, isDesktop = true) {
const startTime = new Date(sessionDate + " " + startTimeGlobal);
const endTime = new Date(sessionStartTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
});
</script>
<script>
$(document).on("click", ".session-moreInfo-link", function () {
localStorage.setItem("backLink", $(this).attr("href"));
$("#swoogo-modal").addClass("session-on-modal");
$("#swoogo-modal").addClass("session-on-modal-v2");
$("#swoogo-modal .modal-header .btn-back-div").remove();
$(window).on('shown.bs.modal', function (e) {
var moveHeader = setInterval(function () {
if ($(".modal-body .session-header-hidden").length > 0) {
$("#w_28619284").remove();
clearInterval(moveHeader);
var moveHeaderTwo = $(".modal-body .session-header-hidden").clone().addClass("session-header").removeClass("session-header-hidden").removeClass("hidden");
if ($(".modal-header .session-header").length == 0) {
$(".modal-header").prepend(moveHeaderTwo);
}
// $(document).on("click", ".session-location", function () {
// $("#swoogo-modal").modal("hide");
// $("#w_30333533_tab_3-tab").click();
// setTimeout(function () {
// $('html, body').animate({
// scrollTop: $('.sitemap-bottom').offset().top
// }, 1000);
// }, 200);
// });
}
}, 100);
$(".modal-body").scroll(function () {
if ($(this).scrollTop() > 30) {
$(".modal-header").addClass("fixed-header");
$(".modal-body").addClass("fixed-body");
} else {
$(".modal-header").removeClass("fixed-header");
$(".modal-body").removeClass("fixed-body");
}
});
});
});
$(window).on('hidden.bs.modal', function (e) {
$(".modal-header .session-header").remove();
$("#swoogo-modal").removeClass("session-on-modal").removeClass("speaker-session").removeClass("session-on-modal-v2");
});
</script></div></div></div> </div> <div id="w_57541665_tab_4" class="tab-pane" role="tabpanel" aria-labelledby="w_57541665_tab_4-tab"> <div class="tab-widget-content col-xs-12"><div id="w_57541687" class="widget v_72217276 layout-twig swoogo-agenda widget-api registrant-timezone-update"><style id="w_57541687_styles"></style><div class="mt-medium mb-medium " style=""><style>
.timeline-build .main-event-wrapper .event:hover .title,
.timeline-build .main-event-wrapper .event:hover .location,
.timeline-build .main-event-wrapper .event:hover .time {
color: #404040 !important;
}
</style>
<div id="956">
<div class="session-agenda-timetable hidden">
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 12:00 PM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">12:00 PM</span>
<span class="timetable-session-name">Registration</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color">light-orange</span>
<span class="timetable-session-show-description">Yes</span>
<span class="timetable-session-description"><p>Open between 8 am - 12 pm</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2516650/registration</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">9:30 AM</span>
<span class="timetable-session-name">Breakfast</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2516649/breakfast</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 8:00 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 4:00 PM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">4:00 PM</span>
<span class="timetable-session-name">Networking, Exploration, and The Engagement Chapel Experience</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156258/networking-exploration-and-the-engagement-chapel-experience</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 9:35 AM</span>
<span class="timetable-starttime-only">9:30 AM</span>
<span class="timetable-endtime-only">9:35 AM</span>
<span class="timetable-session-name">Go All In On Day 3!</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>As we enter the final day of Forge, the momentum is building! Join us for an inspiring kickoff that will set the stage for groundbreaking discussions on the future of customer engagement. Expect fresh insights, cutting-edge innovations, and the latest trends for 2025. Whether you're looking to deepen connections with your customers or discover new strategies to elevate your brand, Day 3 promises to deliver the tools and ideas you need.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156261/go-all-in-on-day-3</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 9:35 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 10:05 AM</span>
<span class="timetable-starttime-only">9:35 AM</span>
<span class="timetable-endtime-only">10:05 AM</span>
<span class="timetable-session-name">Cirque du Soleil: The Art of Engagement Through Creativity and Data</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>In the blinding lights of Las Vegas, Cirque du Soleil remains a beacon of relevance and innovation. Daniel Lamarre, Executive Vice Chairman and former President and CEO of Cirque, credits their success to a relentless push of creative boundaries paired with the strategic use of audience feedback and data. Join us as Daniel shares how Cirque continues to mesmerize audiences, providing valuable insights for marketers and technologists seeking to elevate their own customer engagement strategies.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2515343/cirque-du-soleil-the-art-of-engagement-through-creativity-and-data</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 10:05 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 10:50 AM</span>
<span class="timetable-starttime-only">10:05 AM</span>
<span class="timetable-endtime-only">10:50 AM</span>
<span class="timetable-session-name">A Look Ahead: What's Next for the Braze Platform</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Join Braze Chief Product Officer Kevin Wang for an exclusive preview of the future of the Braze customer engagement platform. We’ll begin with a showcase of "the art of the possible" alongside VP of Product Marketing Kelsey Nelson and a Braze customer, diving into a real-world example of how leading brands are driving meaningful customer connections. Kevin will then share his vision for the platform’s upcoming innovations and how they can enhance your future customer engagement strategies. The session will conclude with a conversation between Myles Kleeger, President and Chief Commercial Officer at Braze, and Terry Mefsut, Director of Marketing Technology, Deloitte Digital, exploring how Braze can seamlessly integrate into your martech stack—today and into the future—helping you unlock new opportunities for customer engagement and business growth.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2515344/a-look-ahead-what's-next-for-the-braze-platform</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 10:50 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 9:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 11:30 AM</span>
<span class="timetable-starttime-only">10:50 AM</span>
<span class="timetable-endtime-only">11:30 AM</span>
<span class="timetable-session-name">Trend-Driven Innovation: Turning Trends into Impact</span>
<span class="timetable-session-type">Open Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>As 2025 approaches, staying ahead of emerging trends is more important than ever. Join Vicki Loomes, Head of Trends at Trendwatching, for a lively and engaging session that will highlight the global trends shaping consumer behavior and marketing innovations. In this entertaining session, Vicki will provide you with actionable insights to anticipate shifts, refine your strategies, and maintain a competitive edge.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2515345/trend-driven-innovation-turning-trends-into-impact</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 11:30 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 11:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 4:15 PM</span>
<span class="timetable-starttime-only">11:30 AM</span>
<span class="timetable-endtime-only">4:15 PM</span>
<span class="timetable-session-name">Networking, Exploration, and The Engagement Chapel Experience</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156262/networking-exploration-and-the-engagement-chapel-experience</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 11:30 AM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 11:30 AM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 1:00 PM</span>
<span class="timetable-starttime-only">11:30 AM</span>
<span class="timetable-endtime-only">1:00 PM</span>
<span class="timetable-session-name">Lunch</span>
<span class="timetable-session-type">Normal</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2516113/lunch</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 1:00 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 1:00 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 4:00 PM</span>
<span class="timetable-starttime-only">1:00 PM</span>
<span class="timetable-endtime-only">4:00 PM</span>
<span class="timetable-session-name">Breakout Sessions</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156263/breakout-sessions</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 1:00 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 1:00 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 2:00 PM</span>
<span class="timetable-starttime-only">1:00 PM</span>
<span class="timetable-endtime-only">2:00 PM</span>
<span class="timetable-session-name">Industry Roundtable | Financial Services: The Budget Bot - How Financial Institutions Use AI to Empower Financial Success</span>
<span class="timetable-session-type"></span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>The next wave of technology is set to make the financial system—and your products and services—more accessible to a broader audience. In this hands-on workshop hosted by Braze and TrendWatching, you’ll dive deep into the AI Genies Trend, and prototype ways to leverage AI for greater customer impact and business success. </p>
<p>Location: Studio 1B, 1st Floor, Opal Tower</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2486436/industry-roundtable-financial-services-the-budget-bot-how-financial-institutions-use-ai-to-empower-financial-success</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 2:00 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 2:00 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 3:00 PM</span>
<span class="timetable-starttime-only">2:00 PM</span>
<span class="timetable-endtime-only">3:00 PM</span>
<span class="timetable-session-name">Industry Roundtable | Media & Entertainment: Beyond the Screen - How IRL will Define the Next Decade of Entertainment</span>
<span class="timetable-session-type"></span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>The next growth opportunity in Media & Entertainment won’t be on screens—it will be bringing on-screen brands and franchises to life in the real world. In this hands-on workshop hosted by TrendWatching and Braze, you’ll work together to brainstorm ways to inspire your teams to forge new experiential connections with your audience.</p>
<p>Location: Studio 1B, 1st Floor, Opal Tower</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2486435/industry-roundtable-media-entertainment-beyond-the-screen-how-irl-will-define-the-next-decade-of-entertainment</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 3:00 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 3:00 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 4:00 PM</span>
<span class="timetable-starttime-only">3:00 PM</span>
<span class="timetable-endtime-only">4:00 PM</span>
<span class="timetable-session-name">Industry Roundtable | Travel & Hospitality: How Machines will Enable the Golden Age of Human Hospitality</span>
<span class="timetable-session-type"></span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>In this dynamic workshop hosted by Braze and Trendwatching, you’ll work together using the AI Genies Trend to brainstorm and prototype how AI can transform travel experiences into personalized journeys. Get ready to dive into practical exercises that will empower you to harness this trend and create unforgettable customer experiences.</p>
<p>Location: Studio 1B, 1st Floor, Opal Tower</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2492585/industry-roundtable-travel-hospitality-how-machines-will-enable-the-golden-age-of-human-hospitality</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 4:30 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 4:30 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 4:40 PM</span>
<span class="timetable-starttime-only">4:30 PM</span>
<span class="timetable-endtime-only">4:40 PM</span>
<span class="timetable-session-name">Looking Back and Moving Forward</span>
<span class="timetable-session-type">Closing Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>As Forge 2024 comes to a close, we reflect on the inspiring ideas and innovative strategies we've explored together. Before we wrap up, we'll share a glimpse of what’s ahead for 2025, ensuring we continue to build on the momentum we've created at Forge. </p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2515346/looking-back-and-moving-forward</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 4:40 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 4:30 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 5:15 PM</span>
<span class="timetable-starttime-only">4:40 PM</span>
<span class="timetable-endtime-only">5:15 PM</span>
<span class="timetable-session-name">Breaking Boundaries; Breaking Records</span>
<span class="timetable-session-type">Closing Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Join us for an extraordinary panel featuring two of the most accomplished female athletes of our time: soccer star Alex Morgan and Olympic swimmer Katie Ledecky. In this dynamic discussion, Alex and Katie sit down with Braze Chief Business & Marketing Officer Astha Malik to share their personal journeys of breaking boundaries and setting records in their respective sports. They will delve into the challenges they’ve faced, the strategies that have fueled their success, and how they continue to push the limits of performance and innovation. Don’t miss this opportunity to gain inspiration and insights from these trailblazers who redefine excellence.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2335368/breaking-boundaries;-breaking-records</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 5:15 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 4:30 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 5:30 PM</span>
<span class="timetable-starttime-only">5:15 PM</span>
<span class="timetable-endtime-only">5:30 PM</span>
<span class="timetable-session-name">Better Never Stops</span>
<span class="timetable-session-type">Closing Keynote</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>In a compelling closing reflection, Braze Chief Business & Marketing Officer, Astha Malik, reflects on her own marketing journey and imparts a powerful message. She emphasizes the importance of empathy, balance, and continual growth, encouraging everyone to embrace these principles as they navigate their own paths. Astha’s insights remind us that there has never been a better time to be a better marketer.</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2515347/better-never-stops</span>
<span class="timetable-secondary-title"></span>
</div>
<div class="session-timetable">
<span class="timetable-date">Wednesday, September 25, 2024</span>
<span class="timetable-starttime">Wednesday, September 25, 2024 5:30 PM</span>
<span class="timetable-group-starttime">Wednesday, September 25, 2024 5:30 PM</span>
<span class="timetable-endtime">Wednesday, September 25, 2024 7:30 PM</span>
<span class="timetable-starttime-only">5:30 PM</span>
<span class="timetable-endtime-only">7:30 PM</span>
<span class="timetable-session-name">Forge Closing Party in the Skybox!</span>
<span class="timetable-session-type">Cocktails</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description"></span>
<span class="timetable-session-description"><p>Join us for the Forge Closing Party with music, light bites, and drinks!</p></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image">https://assets.swoogo.com/uploads/medium/4262379-66bbcb78174da.png</span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2156269/forge-closing-party-in-the-skybox</span>
<span class="timetable-secondary-title"></span>
</div>
</div>
<div class="timetable-week show-time hidden">
<div class="timetable-axis">
<div class="axis-item">8<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">9<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">10<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">11<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">12<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">1<span>:00</span> <span>PM</span><span class="d-md">PM</span> </div>
<div class="axis-item">2<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">3<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">4<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">5<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">6<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">7<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">8<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">9<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">10<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">11<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
</div>
<div class="timetable-columns">
<div class="timetable-column column-1">
<!-- <div class="timetable-column-header">Luxe Express</div> -->
<div class="timetable-column-content">
</div>
<div class="timetable-column-grid">
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
</div>
</div>
</div>
</div>
<div class="timetable-mobile hidden">
<div class="session-collection">
<div class="time-item">8:00 AM</div>
<div class="session-items" data-time="08:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 AM</div>
<div class="session-items" data-time="09:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 AM</div>
<div class="session-items" data-time="10:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">11:00 AM</div>
<div class="session-items" data-time="11:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">12:00 PM</div>
<div class="session-items" data-time="12:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">1:00 PM</div>
<div class="session-items" data-time="01:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">2:00 PM</div>
<div class="session-items" data-time="02:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">3:00 PM</div>
<div class="session-items" data-time="03:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">4:00 PM</div>
<div class="session-items" data-time="04:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">5:00 PM</div>
<div class="session-items" data-time="05:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">6:00 PM</div>
<div class="session-items" data-time="06:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">7:00 PM</div>
<div class="session-items" data-time="07:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">8:00 PM</div>
<div class="session-items" data-time="08:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 PM</div>
<div class="session-items" data-time="09:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 PM</div>
<div class="session-items" data-time="10:00 PM">
</div>
</div>
</div>
<div class="timeline-build">
</div>
</div>
<script>
var startTimeGlobal = "08:00 AM";
var hourGap = 110;
var hourGapMobile = 128;
var endTimeGlobal = "11:00 PM";
$(document).ready(function () {
function FindRequiredDiv(start_time) {
const targetTime = new Date(start_time);
// Extract the hours and period (AM/PM) from the date
const hours = targetTime.getHours();
const period = hours >= 12 ? "PM" : "AM";
const formattedHours = (hours % 12 || 12).toString().padStart(2, '0'); // Convert to 12-hour format and pad with zero if needed
// Format the time to match the data-time attribute
const formattedTime = `${formattedHours}:00 ${period}`;
// Find the element with the matching data-time attribute
const $sessionElement = $(`#956 .session-items[data-time="${formattedTime}"]`);
return $sessionElement;
}
function checkEmptyTime() {
$(`#956 .timetable-mobile .session-items`).each(function () {
// Check if the element is empty
console.log($(this).find('.timetable-item').length == 0);
if ($(this).find('.timetable-item').length == 0) {
// Add the 'hidden' class to the parent .session-collection element
$(this).closest('.session-collection').addClass('hidden');
} else {
$(this).closest('.session-collection').removeClass('hidden');
}
});
}
function parseTime(timeStr) {
return new Date(timeStr);
}
let categorizedSessions = {
"Open Keynote": [],
"Closing Keynote": [],
"Normal": [],
"Break": [],
"Cocktails": [],
};
// Iterate over each session and categorize based on the type
// Get the session type
let groupedSessions = {};
// Loop through each session
$(`#956 .session-timetable`).each(function (index, session) {
let startTimeStr = $(session).find(".timetable-starttime").text().trim();
let groupStartTimeStr = $(session).find(".timetable-group-starttime").text().trim();
let sessionType = $(session).find(".timetable-session-type").text().trim();
// Construct the session object
let sessionObject = {
startTimeOnly: $(session).find(".timetable-starttime-only").text().trim(),
endTimeOnly: $(session).find(".timetable-endtime-only").text().trim(),
startTimeStr: startTimeStr,
groupStartTimeStr: groupStartTimeStr,
endTimeStr: $(session).find(".timetable-endtime").text().trim(),
sessionDate: $(session).find(".timetable-date").text().trim(),
sessionType: sessionType,
sessionTrack: $(session).find(".timetable-session-track").text().trim(),
sessionBGcolor: $(session).find(".timetable-session-bg-color").text().trim(),
moreInfoUrl: $(session).find(".timetable-moreInfo").html(),
sessionName: $(session).find(".timetable-session-name").html(),
level: $(session).find(".timetable-level").html(),
role: $(session).find(".timetable-role").html(),
bgImage: $(session).find(".timetable-background-image").html(),
showDescription: $(session).find(".timetable-session-show-description").html(),
description: $(session).find(".timetable-session-description").html(),
};
// Group by start time
if (!groupedSessions[groupStartTimeStr]) {
groupedSessions[groupStartTimeStr] = {};
}
// Group by type within the start time group
if (sessionType) {
if (!groupedSessions[groupStartTimeStr][sessionType]) {
groupedSessions[groupStartTimeStr][sessionType] = [];
}
}
if (sessionType) {
// Push the session object into the appropriate group
groupedSessions[groupStartTimeStr][sessionType].push(sessionObject);
}
});
// Now `categorizedSessions` contains sessions grouped by type and then by start time
console.log(groupedSessions);
addSessionOnRespectedType(groupedSessions);
function addSessionOnRespectedType(groupedSessions) {
for (let startTime in groupedSessions) {
if (groupedSessions.hasOwnProperty(startTime)) {
let types = groupedSessions[startTime];
let timeHeaderAppended = false;
for (let type in types) {
if (types.hasOwnProperty(type)) {
let categorizedSessions = types[type];
let earliestStartTime = null;
let latestEndTime = null;
let sessionDate = null;
if (categorizedSessions.length > 0) {
// Create a new group session wrapper
let groupSessionHtml = `<div class="group-session">`;
// Append time header only once per startTime group
let firstSession = categorizedSessions[0];
let sessionTimeHeader = `<div class="time-header">${firstSession.startTimeOnly}</div>`;
groupSessionHtml += sessionTimeHeader;
// Prepare the content for different session types
let newHtml = "";
if (type === "Open Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Closing Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Normal") {
let groupedNormalSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedNormalSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedNormalSessions.push(group);
}
group.sessions.push(session);
});
groupedNormalSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
sessionHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
// Wrap the sessions in a slider container if more than 5
if (group.sessions.length > 5) {
newHtml += `<div class="timetable-item normal-sessions">
<div class="session-slider slick-slider ">${sessionHtml}</div>
</div>`;
} else {
newHtml += `<div class="timetable-item normal-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
}
});
}
if (type === "Cocktails") {
let groupedCocktailSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedCocktailSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedCocktailSessions.push(group);
}
group.sessions.push(session);
});
groupedCocktailSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event cocktails open-as-modal" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<h4 class="title">${sessionName}</h4>
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item cocktails-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
if (type === "Break") {
let groupedBreakSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedBreakSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedBreakSessions.push(group);
}
group.sessions.push(session);
});
groupedBreakSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event break open-as-modal ${sessionBGcolor.toLowerCase()}" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item break-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
// Close the group session wrapper
groupSessionHtml += newHtml + `</div>`;
// Append the entire group session to the timeline
$(`#956 .timeline-build`).append(groupSessionHtml);
}
}
}
}
}
}
var bg = "";
$(document).on("click", ".event.open-as-modal", function () {
$("#swoogo-modal").addClass("session-modal");
bg = $(this).attr("data-bg");
$(".modal-backdrop").addClass(bg);
$("#swoogo-modal").addClass(bg);
if ($(this).hasClass("key-note")) {
$(".modal-backdrop").addClass("keynote-bg");
$("#swoogo-modal").addClass("keynote-bg");
}
});
$(document).on('hidden.bs.modal', '#swoogo-modal', (evt) => {
$("#swoogo-modal").removeClass("session-modal");
$("#swoogo-modal").removeClass(bg);
$(".modal-backdrop").removeClass(bg);
});
function HourGapSession(sessionStartTime, SessionEndTime, isDesktop = true) {
const startTime = new Date(sessionStartTime);
const endTime = new Date(SessionEndTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap - 20;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
function HeightGapSession(sessionDate, sessionStartTime, isDesktop = true) {
const startTime = new Date(sessionDate + " " + startTimeGlobal);
const endTime = new Date(sessionStartTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
});
</script>
<script>
$(document).on("click", ".session-moreInfo-link", function () {
localStorage.setItem("backLink", $(this).attr("href"));
$("#swoogo-modal").addClass("session-on-modal");
$("#swoogo-modal").addClass("session-on-modal-v2");
$("#swoogo-modal .modal-header .btn-back-div").remove();
$(window).on('shown.bs.modal', function (e) {
var moveHeader = setInterval(function () {
if ($(".modal-body .session-header-hidden").length > 0) {
$("#w_28619284").remove();
clearInterval(moveHeader);
var moveHeaderTwo = $(".modal-body .session-header-hidden").clone().addClass("session-header").removeClass("session-header-hidden").removeClass("hidden");
if ($(".modal-header .session-header").length == 0) {
$(".modal-header").prepend(moveHeaderTwo);
}
// $(document).on("click", ".session-location", function () {
// $("#swoogo-modal").modal("hide");
// $("#w_30333533_tab_3-tab").click();
// setTimeout(function () {
// $('html, body').animate({
// scrollTop: $('.sitemap-bottom').offset().top
// }, 1000);
// }, 200);
// });
}
}, 100);
$(".modal-body").scroll(function () {
if ($(this).scrollTop() > 30) {
$(".modal-header").addClass("fixed-header");
$(".modal-body").addClass("fixed-body");
} else {
$(".modal-header").removeClass("fixed-header");
$(".modal-body").removeClass("fixed-body");
}
});
});
});
$(window).on('hidden.bs.modal', function (e) {
$(".modal-header .session-header").remove();
$("#swoogo-modal").removeClass("session-on-modal").removeClass("speaker-session").removeClass("session-on-modal-v2");
});
</script></div></div></div> </div> <div id="w_57541665_tab_5" class="tab-pane" role="tabpanel" aria-labelledby="w_57541665_tab_5-tab"> <div class="tab-widget-content col-xs-12"><div id="w_57541686" class="widget v_72217275 layout-twig swoogo-agenda widget-api registrant-timezone-update"><style id="w_57541686_styles"></style><div class="mt-medium mb-medium " style=""><style>
.timeline-build .main-event-wrapper .event:hover .title,
.timeline-build .main-event-wrapper .event:hover .location,
.timeline-build .main-event-wrapper .event:hover .time {
color: #404040 !important;
}
</style>
<div id="494">
<div class="session-agenda-timetable hidden">
<div class="session-timetable">
<span class="timetable-date">Thursday, September 26, 2024</span>
<span class="timetable-starttime">Thursday, September 26, 2024 8:00 AM</span>
<span class="timetable-endtime">Thursday, September 26, 2024 5:00 PM</span>
<span class="timetable-starttime-only">8:00 AM</span>
<span class="timetable-endtime-only">5:00 PM</span>
<span class="timetable-session-name">Attendee Departures</span>
<span class="timetable-session-type">Break</span>
<span class="timetable-session-track"></span>
<span class="timetable-session-bg-color"></span>
<span class="timetable-session-show-description">Yes</span>
<span class="timetable-session-description"></span>
<span class="timetable-level"></span>
<span class="timetable-role"></span>
<span class="timetable-background-image"></span>
<span class="timetable-moreInfo">https://forge.braze.com/2024/session/2163127/attendee-departures</span>
<span class="timetable-secondary-title"></span>
</div>
</div>
<div class="timetable-week show-time hidden">
<div class="timetable-axis">
<div class="axis-item">8<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">9<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">10<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">11<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">12<span>:00</span> <span>AM</span><span class="d-md">AM</span> </div>
<div class="axis-item">1<span>:00</span> <span>PM</span><span class="d-md">PM</span> </div>
<div class="axis-item">2<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">3<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">4<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">5<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">6<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">7<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">8<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">9<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">10<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
<div class="axis-item">11<span>:00</span> <span>PM</span><span class="d-md">PM</span></div>
</div>
<div class="timetable-columns">
<div class="timetable-column column-1">
<!-- <div class="timetable-column-header">Luxe Express</div> -->
<div class="timetable-column-content">
</div>
<div class="timetable-column-grid">
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
<div class="grid-item first-column"></div>
</div>
</div>
</div>
</div>
<div class="timetable-mobile hidden">
<div class="session-collection">
<div class="time-item">8:00 AM</div>
<div class="session-items" data-time="08:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 AM</div>
<div class="session-items" data-time="09:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 AM</div>
<div class="session-items" data-time="10:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">11:00 AM</div>
<div class="session-items" data-time="11:00 AM">
</div>
</div>
<div class="session-collection">
<div class="time-item">12:00 PM</div>
<div class="session-items" data-time="12:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">1:00 PM</div>
<div class="session-items" data-time="01:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">2:00 PM</div>
<div class="session-items" data-time="02:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">3:00 PM</div>
<div class="session-items" data-time="03:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">4:00 PM</div>
<div class="session-items" data-time="04:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">5:00 PM</div>
<div class="session-items" data-time="05:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">6:00 PM</div>
<div class="session-items" data-time="06:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">7:00 PM</div>
<div class="session-items" data-time="07:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">8:00 PM</div>
<div class="session-items" data-time="08:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">9:00 PM</div>
<div class="session-items" data-time="09:00 PM">
</div>
</div>
<div class="session-collection">
<div class="time-item">10:00 PM</div>
<div class="session-items" data-time="10:00 PM">
</div>
</div>
</div>
<div class="timeline-build">
</div>
</div>
<script>
var startTimeGlobal = "08:00 AM";
var hourGap = 110;
var hourGapMobile = 128;
var endTimeGlobal = "11:00 PM";
$(document).ready(function () {
function FindRequiredDiv(start_time) {
const targetTime = new Date(start_time);
// Extract the hours and period (AM/PM) from the date
const hours = targetTime.getHours();
const period = hours >= 12 ? "PM" : "AM";
const formattedHours = (hours % 12 || 12).toString().padStart(2, '0'); // Convert to 12-hour format and pad with zero if needed
// Format the time to match the data-time attribute
const formattedTime = `${formattedHours}:00 ${period}`;
// Find the element with the matching data-time attribute
const $sessionElement = $(`#494 .session-items[data-time="${formattedTime}"]`);
return $sessionElement;
}
function checkEmptyTime() {
$(`#494 .timetable-mobile .session-items`).each(function () {
// Check if the element is empty
console.log($(this).find('.timetable-item').length == 0);
if ($(this).find('.timetable-item').length == 0) {
// Add the 'hidden' class to the parent .session-collection element
$(this).closest('.session-collection').addClass('hidden');
} else {
$(this).closest('.session-collection').removeClass('hidden');
}
});
}
function parseTime(timeStr) {
return new Date(timeStr);
}
let categorizedSessions = {
"Open Keynote": [],
"Closing Keynote": [],
"Normal": [],
"Break": [],
"Cocktails": [],
};
// Iterate over each session and categorize based on the type
// Get the session type
let groupedSessions = {};
// Loop through each session
$(`#494 .session-timetable`).each(function (index, session) {
let startTimeStr = $(session).find(".timetable-starttime").text().trim();
let sessionType = $(session).find(".timetable-session-type").text().trim();
// Construct the session object
let sessionObject = {
startTimeOnly: $(session).find(".timetable-starttime-only").text().trim(),
endTimeOnly: $(session).find(".timetable-endtime-only").text().trim(),
startTimeStr: startTimeStr,
endTimeStr: $(session).find(".timetable-endtime").text().trim(),
sessionDate: $(session).find(".timetable-date").text().trim(),
sessionType: sessionType,
sessionTrack: $(session).find(".timetable-session-track").text().trim(),
sessionBGcolor: $(session).find(".timetable-session-bg-color").text().trim(),
moreInfoUrl: $(session).find(".timetable-moreInfo").html(),
sessionName: $(session).find(".timetable-session-name").html(),
level: $(session).find(".timetable-level").html(),
role: $(session).find(".timetable-role").html(),
bgImage: $(session).find(".timetable-background-image").html(),
showDescription: $(session).find(".timetable-session-show-description").html(),
description: $(session).find(".timetable-session-description").html(),
};
// Group by start time
if (!groupedSessions[startTimeStr]) {
groupedSessions[startTimeStr] = {};
}
// Group by type within the start time group
if (sessionType) {
if (!groupedSessions[startTimeStr][sessionType]) {
groupedSessions[startTimeStr][sessionType] = [];
}
}
if (sessionType) {
// Push the session object into the appropriate group
groupedSessions[startTimeStr][sessionType].push(sessionObject);
}
});
// Now `categorizedSessions` contains sessions grouped by type and then by start time
console.log(groupedSessions);
addSessionOnRespectedType(groupedSessions);
function addSessionOnRespectedType(groupedSessions) {
for (let startTime in groupedSessions) {
if (groupedSessions.hasOwnProperty(startTime)) {
let types = groupedSessions[startTime];
let timeHeaderAppended = false;
for (let type in types) {
if (types.hasOwnProperty(type)) {
let categorizedSessions = types[type];
let earliestStartTime = null;
let latestEndTime = null;
let sessionDate = null;
if (categorizedSessions.length > 0) {
// Create a new group session wrapper
let groupSessionHtml = `<div class="group-session">`;
// Append time header only once per startTime group
let firstSession = categorizedSessions[0];
let sessionTimeHeader = `<div class="time-header">${firstSession.startTimeOnly} PDT</div>`;
groupSessionHtml += sessionTimeHeader;
// Prepare the content for different session types
let newHtml = "";
if (type === "Open Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Closing Keynote") {
newHtml += `<div class="main-event-wrapper">
<div class="main-event-title">Keynotes in the Theater</div>
<div class="session-lists">`;
categorizedSessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
newHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal key-note" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
newHtml += `</div></div>`;
}
if (type === "Normal") {
let groupedNormalSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedNormalSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedNormalSessions.push(group);
}
group.sessions.push(session);
});
groupedNormalSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
showDescription,
description,
} = session;
sessionHtml += `<a class="event ${sessionBGcolor.toLowerCase()} open-as-modal" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
${session.sessionTrack ? `<div class="label">${session.sessionTrack}</div>` : ""}
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</a>`;
});
// Wrap the sessions in a slider container if more than 5
if (group.sessions.length > 5) {
newHtml += `<div class="timetable-item normal-sessions">
<div class="session-slider slick-slider ">${sessionHtml}</div>
</div>`;
} else {
newHtml += `<div class="timetable-item normal-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
}
});
}
if (type === "Cocktails") {
let groupedCocktailSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedCocktailSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedCocktailSessions.push(group);
}
group.sessions.push(session);
});
groupedCocktailSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event cocktails open-as-modal" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<h4 class="title">${sessionName}</h4>
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item cocktails-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
if (type === "Break") {
let groupedBreakSessions = [];
categorizedSessions.forEach(function (session) {
let group = groupedBreakSessions.find(g => g.date === session.sessionDate && g.start_time === session.startTimeStr);
if (!group) {
group = {
date: session.sessionDate,
start_time: session.startTimeStr,
end_time: session.endTimeStr,
sessions: []
};
groupedBreakSessions.push(group);
}
group.sessions.push(session);
});
groupedBreakSessions.forEach(group => {
let sessionHtml = "";
group.sessions.forEach(function (session) {
let {
startTimeStr,
endTimeStr,
startTimeOnly,
endTimeOnly,
sessionBGcolor,
moreInfoUrl,
sessionName,
level,
role,
bgImage,
showDescription,
description,
} = session;
sessionHtml += `<div class="event break open-as-modal ${sessionBGcolor.toLowerCase()}" style="background-image: url('${bgImage}')" href="${moreInfoUrl}" data-bg="${sessionBGcolor.toLowerCase()}">
<div class="time">
<span>${startTimeOnly}</span> <span>-</span> <span>${endTimeOnly}</span>
</div>
<h4 class="title">${sessionName}</h4>
${level ? `<div class="location">Experience Level: ${level}</div>` : ""}
${role ? `<div class="location">Role: ${role}</div>` : ""}
${showDescription ? `<div class="description">${description}</div>` : ``}
</div>`;
});
newHtml += `<div class="timetable-item break-sessions">
<div class="timetable-title-new">${sessionHtml}</div>
</div>`;
});
}
// Close the group session wrapper
groupSessionHtml += newHtml + `</div>`;
// Append the entire group session to the timeline
$(`#494 .timeline-build`).append(groupSessionHtml);
}
}
}
}
}
}
var bg = "";
$(document).on("click", ".event.open-as-modal", function () {
$("#swoogo-modal").addClass("session-modal");
bg = $(this).attr("data-bg");
$(".modal-backdrop").addClass(bg);
$("#swoogo-modal").addClass(bg);
if ($(this).hasClass("key-note")) {
$(".modal-backdrop").addClass("keynote-bg");
$("#swoogo-modal").addClass("keynote-bg");
}
});
$(document).on('hidden.bs.modal', '#swoogo-modal', (evt) => {
$("#swoogo-modal").removeClass("session-modal");
$("#swoogo-modal").removeClass(bg);
$(".modal-backdrop").removeClass(bg);
});
function HourGapSession(sessionStartTime, SessionEndTime, isDesktop = true) {
const startTime = new Date(sessionStartTime);
const endTime = new Date(SessionEndTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap - 20;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
function HeightGapSession(sessionDate, sessionStartTime, isDesktop = true) {
const startTime = new Date(sessionDate + " " + startTimeGlobal);
const endTime = new Date(sessionStartTime);
const timeDiffInMs = endTime.getTime() - startTime.getTime();
const timeDiffInHrs = timeDiffInMs / 3600000;
// console.log(timeDiffInHrs);
if (isDesktop) {
return timeDiffInHrs * hourGap;
} else {
return timeDiffInHrs * hourGapMobile;
}
}
});
</script>
<script>
$(document).on("click", ".session-moreInfo-link", function () {
localStorage.setItem("backLink", $(this).attr("href"));
$("#swoogo-modal").addClass("session-on-modal");
$("#swoogo-modal").addClass("session-on-modal-v2");
$("#swoogo-modal .modal-header .btn-back-div").remove();
$(window).on('shown.bs.modal', function (e) {
var moveHeader = setInterval(function () {
if ($(".modal-body .session-header-hidden").length > 0) {
$("#w_28619284").remove();
clearInterval(moveHeader);
var moveHeaderTwo = $(".modal-body .session-header-hidden").clone().addClass("session-header").removeClass("session-header-hidden").removeClass("hidden");
if ($(".modal-header .session-header").length == 0) {
$(".modal-header").prepend(moveHeaderTwo);
}
// $(document).on("click", ".session-location", function () {
// $("#swoogo-modal").modal("hide");
// $("#w_30333533_tab_3-tab").click();
// setTimeout(function () {
// $('html, body').animate({
// scrollTop: $('.sitemap-bottom').offset().top
// }, 1000);
// }, 200);
// });
}
}, 100);
$(".modal-body").scroll(function () {
if ($(this).scrollTop() > 30) {
$(".modal-header").addClass("fixed-header");
$(".modal-body").addClass("fixed-body");
} else {
$(".modal-header").removeClass("fixed-header");
$(".modal-body").removeClass("fixed-body");
}
});
});
});
$(window).on('hidden.bs.modal', function (e) {
$(".modal-header .session-header").remove();
$("#swoogo-modal").removeClass("session-on-modal").removeClass("speaker-session").removeClass("session-on-modal-v2");
});
</script></div></div></div> </div> </div> <div class="clearfix"></div>
</div>
</div><div id="w_54065261" class="widget v_67840108 swoogo-button text-center hidden-print"><a class="btn btn-standard btn-group mt-medium mb-medium" href="/2024/agenda" role="button" target="_blank"><span>See Full Agenda</span></a></div><div id="w_48344863" class="widget v_60759744 swoogo-spacer"> <div class="resize-target" style="height:48px;"></div>
</div></div></div></div></div><div id="w_56726140" class="widget v_71193266 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-12"><div id="w_56726141" class="widget v_71193267 swoogo-spacer"> <div class="resize-target" style="height:104px;"></div>
</div><div id="w_56726142" class="widget v_71193268 swoogo-title clearfix"><h2 class="mt-large mb-medium title" style="">
<p style="text-align:center;"><a id="sponsors" name="sponsors">Sponsors</a></p> </h2>
</div><div id="w_56726143" class="widget v_71193269 swoogo-spacer"> <div class="resize-target" style="height:36px;"></div>
</div><div id="w_56726209" class="widget v_71193346 layout-columns swoogo-sponsors"><div class="clearfix mt-small mb-small " style=""><div id="sponsor_list_56726209" data-pjax-container="" data-pjax-push-state data-pjax-timeout="2000"><div id="w1" class="list-view"><div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652326/accenture" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4238592-66b28393241d9.png" alt="Accenture"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660691/amplitude" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308598-66c4aaec1fe49.png" alt="Amplitude"></a> <b>Platinum</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/666408/aws" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4361614-66d85ccad08a3.png" alt="AWS"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/666404/deloitte-digital" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4361572-66d85906acb0b.png" alt="Deloitte Digital"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660742/meta" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4310098-66c4bd878b481.png" alt="Meta"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/663258/snowflake" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4336680-66cd72ed20381.png" alt="Snowflake"></a> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/666407/wpp" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4361612-66d85ca4966c3.png" alt="WPP"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660665/appsflyer" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308610-66c4aafaa5227.png" alt="Appsflyer"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652305/branch.io" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234303-66b1372e8d0a8.png" alt="Branch.io"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652304/contentsquare" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234304-66b1372ea2fc1.png" alt="Contentsquare"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660666/covalent-marketing" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308613-66c4aafadc79b.png" alt="Covalent Marketing"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660692/gynger" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308600-66c4aaec23e05.png" alt="Gynger"></a> <b>Gold</b> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652309/inbox-monster" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234308-66b1372eeca1e.png" alt="Inbox Monster"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652302/lob" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308592-66c4aade99eb5.png" alt="Lob"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660687/material+" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308837-66c4ad79ca3cf.png" alt="Material+"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652303/movable-ink" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234310-66b1372f6532b.png" alt="Movable Ink"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652308/mparticle" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234311-66b1372f76834.png" alt="mParticle"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652307/niftyimages" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234312-66b1372f8a587.png" alt="Niftyimages"></a> <b>Gold</b> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660664/offerfit.ai" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308611-66c4aafab9030.png" alt="Offerfit.ai"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652306/personalize.ai" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234314-66b1372feae59.png" alt="Personalize.ai"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652301/relationship-one" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4233824-66b11cb912bf1.png" alt="Relationship One"></a> <b>Gold</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652600/shift-paradigm" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4267545-66bd0441c9a43.png" alt="Shift Paradigm"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652322/stitch" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234321-66b13730a9c8c.png" alt="Stitch"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652325/talon.one" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234323-66b13730bac8f.png" alt="Talon.One"></a> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/663259/tealium" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4336679-66cd72ed1638f.png" alt="Tealium"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660669/twilio-segment" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308603-66c4aaf1c3091.png" alt="Twilio Segment"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652323/willowtree" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234326-66b137313fead.png" alt="Willowtree"></a> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652321/celebrus" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234305-66b1372ea6e35.png" alt="Celebrus"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652313/cleargoals" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234306-66b1372ea5539.png" alt="Cleargoals"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652318/jacuqard" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234313-66b1372fd9c7e.png" alt="Jacuqard"></a> <b>Silver</b> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660667/massive-rocket" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4431291-66ec2f46f4176.png" alt="Massive Rocket"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660668/mixpanel" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308602-66c4aaf1a52e2.png" alt="Mixpanel"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652311/publicis-canada" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4336685-66cd745788e28.png" alt="Publicis Canada"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652315/punchh" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234315-66b13730041ec.png" alt="Punchh"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652319/ragnarok" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234317-66b1373036a95.png" alt="Ragnarok"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652316/rudderstack" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234318-66b1373046f67.png" alt="Rudderstack"></a> <b>Silver</b> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/647457/sageflo" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234319-66b1373082ad6.png" alt="Sageflo"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652317/saleswings" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234320-66b137308a8c6.png" alt="SalesWings"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652314/simon-data" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234322-66b13730b48a8.png" alt="Simon Data"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652601/treasure-data" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4235970-66b21d0ad2a75.png" alt="Treasure Data"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652312/voucherify.io" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234325-66b137311b0bf.png" alt="Voucherify.io"></a> <b>Silver</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/660693/census" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4308599-66c4aaec20d6f.png" alt="Census"></a> <b>Bronze</b> </div>
</div>
</div>
</div>
<div class="row row-eq-height"> <div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652329/merkle" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4234309-66b1372f4ca0c.png" alt="Merkle"></a> <b>Bronze</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/663260/mrm" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4336678-66cd72ecf2b9a.png" alt="MRM"></a> <b>Bronze</b> </div>
</div>
</div>
<div class="reg-list-card paragraph col-sm-2">
<div class="panel panel-default">
<div class="panel-body">
<a class="show-details" href="https://forge.braze.com/2024/sponsor/652598/notable-growth" title="Sponsor Details" data-pjax="0"><img class="logo-img img-responsive center-block " src="https://assets.swoogo.com/uploads/medium/4235950-66b21b53b729c.png" alt="Notable Growth"></a> <b>Bronze</b> </div>
</div>
</div>
</div><div class="text-center"></div></div></div></div></div></div></div></div></div><div id="w_56726167" class="widget v_71193301 swoogo-spacer"> <div class="resize-target" style="height:109px;"></div>
</div><div id="w_48221726" class="widget v_60601655 swoogo-cols"><div class=" swoogo-col-wrap" style=""><div class="row"><div class="col-sm-6"><div id="w_48221760" class="widget v_60601703 swoogo-image"><img class="img-responsive img-rounded mt-none mb-none" src="//assets.swoogo.com/uploads/full/3757105-661028455cd03.png" alt="" style="margin: 0 auto;display:block;"></div><div id="w_48560816" class="widget v_61029323 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48221761" class="widget v_60601819 swoogo-text clearfix"><div class="mt-none mb-large paragraph" style="">
<p><strong>We’ve secured the coolest resort for Forge.</strong><br />
</p>
<p><span style="font-size:14px;">Our discounted rate for hotel rooms ended on September 6th. If you still need to book a room at the Virgin Hotel, you can book directly through the </span><a href="https://virginhotelslv.com/" target="_blank" rel="noreferrer noopener">hotel’s website</a><span style="font-size:14px;">, or email </span><a href="mailto:vhlv-groupreservations@vh-lv.com?Subject=Discount%20Rate%20Availability%20for%20Braze%20Forge%202024">vhlv-groupreservations@vh-lv.com</a><span style="font-size:14px;"> with your inquiry to check for remaining availability at the discounted rate. Please include your requested arrival and departure dates in your message.</span></p> </div>
</div></div><div class="col-sm-6"><div id="w_48221727" class="widget v_60601659 swoogo-image"><img class="img-responsive img-rounded mt-none mb-none" src="//assets.swoogo.com/uploads/full/4236734-66b23e3c0db71.png" alt="" style="margin: 0 auto;display:block;"></div><div id="w_48560817" class="widget v_61029324 swoogo-spacer"> <div class="resize-target" style="height:20px;"></div>
</div><div id="w_48221751" class="widget v_60601689 swoogo-text clearfix"><div class="mt-none mb-large paragraph" style="">
<p><strong>Elevate your Braze skills at Forge!</strong><br /><br />
Join us for Training Day on Monday, September 23rd, and take advantage of walk-in Braze Certification exams throughout the event. Pre-register now to secure your spot in one of our 13 training sessions, including highly-requested certification bootcamps and review sessions. Don't forget - as a Forge attendee, you'll get a code for 100% off the Braze Certification exam of your choice. Advance your professional journey with us and become a certified Braze expert!</p> </div>
</div></div></div></div></div><div id="w_48221768" class="widget v_60601839 swoogo-spacer"> <div class="resize-target" style="height:96px;"></div>
</div><div id="w_48224382" class="widget v_60605376 swoogo-cols"><style id="w_48224382_styles">#w_48224382 .swoogo-widget-background {background-image: none !important;background-repeat: no-repeat !important;background: linear-gradient(180deg, rgba(255,255,255,1), rgba(248,211,232,1)) fixed !important;}</style><div class=" swoogo-col-wrap" style=""><div class="row swoogo-widget-background"></div><div class="row"><div class="col-sm-12"><div id="w_48223911" class="widget v_60604757 swoogo-title clearfix"><h2 class="mt-large mb-medium title" style="">
<p style="text-align:center;"><a id="faqs" name="faqs"></a>FAQ</p> </h2>
</div><div id="w_48223451" class="widget v_60604161 swoogo-accordion clearfix panel-group" role="tablist" aria-multiselectable>
<div class="panel panel-default ">
<div class="panel-heading" role="tab" id="w_48223451_heading_1">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_1" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_1"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>What is Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_1" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_1">
<div class="panel-body">
<div id="w_48225058" class="widget v_60606245 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Braze Forge is our annual customer conference where marketers and their tech partners come together to learn and network. Forge is the place for anyone touching customer engagement. With a focus on Braze solutions, marketing tools and best practices, and forward-thinking ideas, Forge sets attendees up for long-term success. Forge will educate, inform, and inspire.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_2">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_2" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_2"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Who should attend Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_2" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_2">
<div class="panel-body">
<div id="w_48225060" class="widget v_60606248 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Anyone who touches the customer experience—marketing, growth, and engagement team members, as well as developers interested in learning about best practices and tools to deliver brilliant customer experiences in today’s fast-evolving technology landscape.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_3">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_3" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_3"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>When and where is Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_3" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_3">
<div class="panel-body">
<div id="w_48225443" class="widget v_60606928 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;"><strong>September 23-25</strong><br />
Virgin Hotels Las Vegas<br />
4455 Paradise Rd, Las Vegas, NV 89169</span></p> </div>
</div><div id="w_48225781" class="widget v_60607282 swoogo-map widget-api"><div id="map-canvas-48225781" class="mt-medium mb-large"><iframe class="map-top" src="https://www.google.com/maps/embed/v1/place?key=AIzaSyCh_z6r_v7KXbXYVAf9k4vDYyP-5Y43YxI&q=Virgin+Hotels+Las+Vegas%2C+Curio+Collection+by+Hilton%2C4455+Paradise+Rd%2CLas+Vegas%2C89169%2CNV%2CUnited+States&center=36.1087736,-115.1537273&zoom=15" allowfullscreen="" frameborder="0" style="border:0px;" width="100%" height="300" title="Google Map"></iframe></div></div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_4">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_4" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_4"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>How can I register for Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_4" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_4">
<div class="panel-body">
<div id="w_48225788" class="widget v_60607289 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Click the register button above or link </span><a href="/2024/register">HERE</a><span style="font-size:14px;">. </span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_5">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_5" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_5"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>When should I arrive and depart Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_5" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_5">
<div class="panel-body">
<div id="w_48370818" class="widget v_60792642 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">To make the most of your Forge experience, we encourage you to arrive on Sunday, September 22, or early Monday, September 23. The best time to depart is on Thursday, September 26. To further enjoy Las Vegas and the surrounding area, you are welcome to use the </span><a href="https://book.passkey.com/go/SBRZ24G">Forge discounted hotel room block</a><span style="font-size:14px;"> from September 19-September 28.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_6">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_6" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_6"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Will there be a virtual Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_6" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_6">
<div class="panel-body">
<div id="w_48225795" class="widget v_60607297 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">We will have a virtual accompaniment with select content to the in-person Forge. Registration for the digital event is available </span><a href="https://eventhub.goldcast.io/?eventHubId=98bf865f-a53f-4dcd-9269-b9c72a7d9b4e" target="_blank" rel="noreferrer noopener">here</a><span style="font-size:14px;">.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_7">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_7" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_7"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>When will the Forge agenda be available?</p></a> </h4>
</div>
<div id="w_48223451_collapse_7" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_7">
<div class="panel-body">
<div id="w_48225809" class="widget v_60607319 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">The Forge website will be updated on an ongoing basis as speakers and sessions are confirmed. </span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_8">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_8" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_8"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Will there be training and certifications at Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_8" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_8">
<div class="panel-body">
<div id="w_48225969" class="widget v_60607526 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Yes! Braze Learning will be delivering learning sessions and offering certifications onsite.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_9">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_9" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_9"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Can my company sponsor Forge?</p></a> </h4>
</div>
<div id="w_48223451_collapse_9" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_9">
<div class="panel-body">
<div id="w_48225973" class="widget v_60607530 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">To inquire about sponsoring this year’s Forge, please reach out to </span><a href="mailto:global-sponsorships@braze.com?Subject=Forge%20Sponsorship">global-sponsorships@braze.com</a><span style="font-size:14px;">.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_10">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_10" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_10"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>I need to make an accessibility request. How do I submit this? </p></a> </h4>
</div>
<div id="w_48223451_collapse_10" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_10">
<div class="panel-body">
<div id="w_56841523" class="widget v_71341043 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">We are committed to providing a quality experience for everyone. To learn more about our offerings, please check out the <a href="/2024/accessibility-policy" target="_blank" rel="noreferrer noopener">Forge 2024 Accessibility Policy</a> to learn how to request accommodations. </span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_11">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_11" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_11"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>What is your cancellation and transfer policy?</p></a> </h4>
</div>
<div id="w_48223451_collapse_11" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_11">
<div class="panel-body">
<div id="w_48226228" class="widget v_60607841 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">View the refund and cancellation policy </span><a href="/2024/refund-policy" target="_blank" rel="noreferrer noopener">HERE</a><span style="font-size:14px;">. </span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_12">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_12" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_12"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Is there a hotel room block?</p></a> </h4>
</div>
<div id="w_48223451_collapse_12" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_12">
<div class="panel-body">
<div id="w_48226227" class="widget v_60607840 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Our discounted rate for hotel rooms ended on September 6th. If you still need to book a room at the Virgin Hotel, you can book directly through the </span><a href="https://virginhotelslv.com/" target="_blank" rel="noreferrer noopener">hotel’s website</a><span style="font-size:14px;">, or email </span><a href="mailto:vhlv-groupreservations@vh-lv.com?Subject=Discount%20Rate%20Availability%20for%20Braze%20Forge%202024">vhlv-groupreservations@vh-lv.com</a><span style="font-size:14px;"> with your inquiry to check for remaining availability at the discounted rate. Please include your requested arrival and departure dates in your message.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_13">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_13" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_13"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>What is the weather like in Las Vegas in September?</p></a> </h4>
</div>
<div id="w_48223451_collapse_13" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_13">
<div class="panel-body">
<div id="w_48226226" class="widget v_60607839 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">September is a great time to visit Las Vegas. Temperatures during the day average between 70s and 80s.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_14">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_14" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_14"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>Is there a dress code?</p></a> </h4>
</div>
<div id="w_48223451_collapse_14" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_14">
<div class="panel-body">
<div id="w_48226903" class="widget v_60608622 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">Nope. Feel free to wear what you’re most comfortable in.</span></p> </div>
</div> </div>
</div>
<div class="panel-heading" role="tab" id="w_48223451_heading_15">
<h4 class="panel-title">
<a class="row-reverse" href="#w_48223451_collapse_15" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="w_48223451_collapse_15"><i class="fas fa-arrow-down swoogo-open-icon pull-right"></i><i class="fas fa-arrow-up swoogo-close-icon pull-right"></i><p>I have dietary restrictions. How can I alert the conference organizers?</p></a> </h4>
</div>
<div id="w_48223451_collapse_15" class="panel-collapse collapse" role="tabpanel"
aria-labelledby="w_48223451_heading_15">
<div class="panel-body">
<div id="w_48226911" class="widget v_60608631 swoogo-text clearfix"><div class="mt-none mb-none paragraph" style="">
<p><span style="font-size:14px;">When registering for a conference ticket, make sure to select your dietary preferences during the process. </span></p> </div>
</div> </div>
</div>
</div>
</div><div id="w_48223909" class="widget v_60604753 swoogo-spacer"> <div class="resize-target" style="height:96px;"></div>
</div></div></div></div></div> </div>
</div>
</div>
<footer class="footer-wrap"><div class="container">
<div class="footer">
<div id="w_48221985" class="widget v_60602161 swoogo-image"><img class="img-responsive mt-medium mb-medium" src="//assets.swoogo.com/uploads/3734959-660add3121229.svg" alt="" style="margin: 0 auto;display:block; max-height:300px;"></div><div id="w_48221990" class="widget v_60602166 swoogo-button-group text-center hidden-print"><div class="swoogo-btn-group mt-medium mb-medium"><div id="w_48221993" class="widget v_60602170 swoogo-button text-center" style="display:inline-block;"><a class="btn btn-standard" href="https://www.braze.com/company/legal/privacy" role="button" target="_blank"><span>Privacy Policy</span></a></div> <div id="w_48328337" class="widget v_60739038 swoogo-button text-center" style="display:inline-block;"><a class="btn btn-standard" href="https://www.braze.com/company/legal/privacy#part_six" role="button" target="_blank"><span>CA Notice at Collection</span></a></div> <div id="w_48328361" class="widget v_60739065 swoogo-button text-center" style="display:inline-block;"><a class="btn btn-standard" href="/2024/refund-policy" role="button" target="_blank"><span>Refund Policy</span></a></div> <div id="w_48328347" class="widget v_60739049 swoogo-button text-center" style="display:inline-block;"><a class="btn btn-standard" href="/2024/code-of-conduct" role="button"><span>Code of Conduct</span></a></div> </div></div><div id="w_48330126" class="widget v_60741254 swoogo-text clearfix"><div class="mt-medium mb-medium paragraph" style="">
<p style="text-align:center;"><strong><span style="color:#ffffff;">©2024 Braze | All Rights Reserved </span></strong></p> </div>
</div></div>
</div>
</footer> <div id="meetingSDKElement">
<!-- Zoom Meeting SDK Rendered Here -->
</div>
<script src="//assets.swoogo.com/assets/cae185b1/yii.js"></script>
<script src="https://assets.swoogo.com/plugins/bootstrap/bootstrap.min.js"></script>
<script src="//assets.swoogo.com/assets/289684bb/jquery-with-js.js"></script>
<script src="//assets.swoogo.com/assets/42482bb0/event-scripts.js?v=12" data-bsv="3.4.1"></script>
<script src="//assets.swoogo.com/assets/d311ee3e/registrant-inline-updates.js?v=11"></script>
<script src="//assets.swoogo.com/assets/cae185b1/yii.activeForm.js"></script>
<script src="//assets.swoogo.com/assets/b4c1401f/isInViewport.js"></script>
<script src="//assets.swoogo.com/assets/f35b74a1/pagewidget.base.js"></script>
<script src="//assets.swoogo.com/assets/c1da6e37/aos.js"></script>
<script src="//assets.swoogo.com/assets/8e56764d/jquery.pagewidget.agenda.js"></script>
<script src="//assets.swoogo.com/assets/5b6cfa87/jquery.pagewidget.session-toggle.js"></script>
<script src="//assets.swoogo.com/assets/347aacd9/jquery.pjax.js"></script>
<script>jQuery(function ($) {
AOS.init();
$('#w_57541665 a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$('#' + $(e.target).attr('aria-controls')).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_57541684').pageWidgetAgenda();
$('#w_57541684').pageWidgetSessionToggle();
$('#w_57541668').pageWidgetAgenda();
$('#w_57541668').pageWidgetSessionToggle();
$('#w_57541685').pageWidgetAgenda();
$('#w_57541685').pageWidgetSessionToggle();
$('#w_57541687').pageWidgetAgenda();
$('#w_57541687').pageWidgetSessionToggle();
$('#w_57541686').pageWidgetAgenda();
$('#w_57541686').pageWidgetSessionToggle();
jQuery(document).pjax("#sponsor_list_56726209 a", {"push":true,"replace":false,"timeout":2000,"scrollTo":false,"container":"#sponsor_list_56726209"});
jQuery(document).off("submit", "#sponsor_list_56726209 form[data-pjax]").on("submit", "#sponsor_list_56726209 form[data-pjax]", function (event) {jQuery.pjax.submit(event, {"push":true,"replace":false,"timeout":2000,"scrollTo":false,"container":"#sponsor_list_56726209"});});
$('#w_48223451_collapse_1').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_2').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_3').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_4').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_5').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_6').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_7').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_8').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_9').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_10').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_11').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_12').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_13').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_14').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
$('#w_48223451_collapse_15').on('shown.bs.collapse', function() {
$(this).find('.widget-api').trigger('shown.pageWidget');
});
});</script><style>
strong {
font-family: 'Aribau Grotesk Black' !important;
}
.site-background {
background-attachment: scroll !important;
}
.navbar {
position: fixed;
background: none;
left: 0;
right: 0;
top: 0;
border: none;
}
.navbar .container {
padding:8px;
background-color: #FFFFFF;
}
.navbar-header {
padding-left: 8px;
padding-top: 0;
padding-bottom: 0;
}
.mobile-logo-img {
padding-top: 0;
}
.mobile-logo {
height: auto !important;
}
.main-event-wrapper a.event.training-sessions.open-as-modal.key-note {
height: 120px !important;
min-height: 100px !important;
}
@media screen and (min-width: 768px) {
.navbar .container {
border-radius: 999px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
}
.navbar-nav {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.swoogo-nav > li a {
letter-spacing: 0 !important;
font-size: 14px !important;
border: none !important;
}
.v_59169974 {
background-color: #FFA4FB;
border-radius: 100px;
padding: 4px 12px;
transition: all .15s ease-in-out;
}
.v_59169974:hover {
background-color: #300266;
}
.v_59169974:hover > a {
color: #FFA4FB !important;
}
.v_59169974 > a {
margin: 0 !important;
}
#header-wrap {
padding-top: 128px;
}
.widget {
border: none !important;
}
.content-section, .content-section .container {
padding: 0;
margin: 0;
max-width: 100% !important;
width: 100% !important;
}
.jumbotron {
margin-bottom: 0 !important;
}
.container .content > div {
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
#w_48218888, #w_48218924, #w_48328366, #w_48224382, #w_48217102, #w_48220858, #w_48228670, #w_48228662, #w_53600473, #w_53962455, #w_54568085, #w_57945158, #w_57973131 {
max-width: 100% !important;
width: 100%;
padding: 0 15px
}
#w_48218888 .col-sm-12 > *, #w_48328366 .col-sm-12 > *, #w_48224382 .col-sm-12 > *, #w_48217102 > h2, #w_48220858 .row, #w_57945158 .col-sm-12 > *, #w_57973131 .col-sm-12 > *{
max-width: 1200px;
margin: 0 auto;
padding: 0 15px;
}
#w_57973131 {
background-color: #FFA4FB;
}
#w_53600473 .col-sm-12 > *{
max-width: 928px;
margin: 0 auto;
padding: 0 15px;
}
#w_48228662 .row {
max-width: 1600px;
margin: 0 auto;
padding: 0 15px;
}
#w_48218924 .row {
padding: 0 7vw 16rem 7vw;
}
#w_48218924 .paragraph {
color: #91186E !important;
line-height: 1;
}
#w_48328366 h2, #w_48228670 h2 {
color: #91186E !important;
}
#w_48217102 > h2 {
padding-top: 48px;
}
#w_48328366, #w_48218924, #w_48220858, #w_48228670 {
background-color: #FFA524;
}
.btn-alternate {
border: none !important;
border-radius: 9999px !important;
}
#w_48224382 .panel-heading {
background: none !important;
border-bottom: 1px solid #FFA4FB;
}
#w_48224382 .panel {
border: none !important;
}
#w_48224382 i {
color: #801ED7 !important;
}
#w_48214180 .paragraph {
line-height: 1 !important;
}
#w_48217102 {
background: linear-gradient(to bottom, rgba(248,211,232,1), rgba(255,255,255,1));
}
#w_53600473 {
background: #300266;
}
#w_48220858 {
padding-bottom: 6rem !important;
}
#w_48220858 .row {
display: flex;
gap: 16px;
}
@media screen and (max-width: 768px) {
#w_48220858 .row {
flex-direction: column !important;
}
}
#w_48220858 .col-sm-6 {
background-color: #FFF;
border-radius: 16px;
padding: 32px;
}
#w_48220858 .col-sm-6 p {
margin-bottom: 0 !important;
}
#w_48220858 .col-sm-6 .btn {
margin-top: 3rem !important;
display: inline-block;
width: 100%;
}
.btn-standard {
border-radius: 999px !important;
padding: 12px 20px !important;
}
#w_48221720, #w_48221485 {
background-color: #801ED7;
border-radius: 12px;
padding: 2rem;
margin: 2rem auto;
}
#w_53601106 {
max-width: 928px;
margin: 0 auto;
padding: 0 15px;
padding: 2rem;
background: #300266;
border-radius: 24px;
}
#w_48221720 p, #w_48221485 p {
margin: 0 !important;
color: #FFF !important;
}
#w_54568089 {
position: relative;
margin-top: -10rem;
z-index: 10;
}
a.btn.btn-standard.btn-group.mt-medium.mb-medium:focus {
color: #fff;
text-decoration: none;
}
// Sponsor List
.reg-list-card .panel {
// margin-bottom: 0 !important;
border-radius 24px !important;
}
.reg-list-card .panel-body {
text-align: center;
}
.reg-list-card .panel-body a {
display: inline-block;
margin-bottom: 1rem;
}
// @media (min-width: 768px) {
// .inspire {
// width: 50% !important;
// }
// }
.inspire .panel {
border-color: #801ED7;
color: #801ED7 !important;
}
.energize .panel {
border-color: #FFA4FB;
color: #FFA4FB !important;
}
.palladium .panel {
border-color: #91186E;
color: #91186E !important;
}
.spark .panel {
border-color: #BAC0F7;
color: #BAC0F7 !important;
}
.ignite .panel {
border-color: #FE612C;
color: #FE612C !important;
}
.engage .panel {
border-color: #FFCC00;
color: #FFCC00 !important;
}
</style>
<script>
// Define a mapping of strings to classes
const stringToClassMap = {
'Training Sessions': 'training',
'Workshops': 'workshop',
'Brands on a Roll': 'brands-on-a-roll',
'Industries Take Center Stage': 'industries-take-center-stage',
'Partner Magic': 'partner-magic',
'Up Your Marketing Game': 'up-your-marketing-game',
'Very Important Product Sessions': 'very-important-product-sessions',
'Inspire': 'inspire',
'Energize': 'energize',
'Palladium': 'palladium',
'Ignite':'ignite',
'Engage':'engage',
'Spark':'spark'
};
// Function to add classes based on text content
function addClassesBasedOnTextContent(elements, selector = '', addToParentSelector = '') {
elements.forEach(element => {
// If a selector is provided, find the nested elements
const targetElements = selector ? element.querySelectorAll(selector) : [element];
targetElements.forEach(targetElement => {
// Loop through each string in the mapping
for (const [searchString, className] of Object.entries(stringToClassMap)) {
// Check if the element's text content includes the search string
if (targetElement.textContent.trim().includes(searchString)) {
// Add the corresponding class to the specified parent element
if (addToParentSelector) {
const parentElement = targetElement.closest(addToParentSelector);
if (parentElement) {
parentElement.classList.add(className);
}
} else {
targetElement.classList.add(className);
}
}
}
});
});
}
// Select all elements with the class "track"
const trackElements = document.querySelectorAll('.track');
addClassesBasedOnTextContent(trackElements, '', '.session');
// Select all elements with the class "panel-body"
const panelBodyElements = document.querySelectorAll('.panel-body');
addClassesBasedOnTextContent(panelBodyElements, 'b', '.reg-list-card');
</script>
<script>
var swoogoUrl;
var _paq = window._paq = window._paq || [];
_paq.push([ function() { swoogoUrl = this.getCurrentUrl(); }]);
function matomoPt() {
_paq.push(['disableCookies']);
_paq.push(['setCustomDimension', '1', '5323971']);
_paq.push(['setCustomDimension', '2', '']);
_paq.push(['setCustomDimension', '3', '']);
_paq.push(['setCustomDimension', '4', '5323971']);
_paq.push(['setCustomDimension', '5', '']);
_paq.push(['setCustomDimension', '6', '']);
_paq.push(['setCustomDimension', '7', '163282']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
_paq.push(['enableHeartBeatTimer']);
}
matomoPt();
(function() {
var u='//analytics.swoogo.com/';
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '116319']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><img referrerpolicy='no-referrer-when-downgrade' src='https://analytics.swoogo.com/matomo.php?idsite=116319&uid=&rec=1' style='border:0' alt='' /></noscript>
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.eu01.nr-data.net","licenseKey":"NRJS-e5440ff4a5c913130a9","applicationID":"184599985","transactionName":"MhBSZQoZD0YDW0BfWgtac0QLDA5YTV5GWVsREF5VVwsIQQcXUUBQCwE=","queueTime":0,"applicationTime":1383,"atts":"HldFE0IDHBlAWRYMThgI","errorBeacon":"bam.eu01.nr-data.net","agent":""}</script></body>
</html>