PageSourceSearch

https://www.discoverphl.com/blog-post/philadelphia-2026/

html discoverphl.com collected 2026-09-24 09:33:28 UTC 313,077 bytes, 3,140 lines download raw bytes

1<!DOCTYPE html>
2<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
5<!--[if IE 9]>			<html class="no-js ie9"> <![endif]-->
6<!--[if gt IE 8]><!-->
7<html class="no-js" lang="en-US"> <!--<![endif]-->
8
9<head>
10   
11    <meta charset="UTF-8" />
12    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1386154133",accountID:"4372814",trustKey:"66686",xpid:"UAUAU15SDBABV1BaAgMDVVAB",licenseKey:"NRJS-ffbc3c15bbce2bcb1ca",applicationID:"1318524340",browserID:"1386154133"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
13(()=>{var e={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 a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});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 a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";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),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,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 a(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,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
13e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(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])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(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)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},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 o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},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])=>{a[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()[a[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,o,()=>new s.y(o)):new s.y(o)}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),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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}},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{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},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)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},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})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
13const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
13if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){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}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
13o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={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,a.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(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.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()}r.d(t,["NT",0,o])},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)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}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)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=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)o.call(e,n)&&(t[n]=e[n])}
13(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}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[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
13;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{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"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});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 a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},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)}},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("log",e,t)}start(){return this.#e("start")}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)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={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"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
13{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},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,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},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:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
13ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.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){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.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,l.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"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target: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++v},listeningForIframeMessages:!1};var w=r(9232);var R=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};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),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,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
13{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.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,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.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 n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||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,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!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 se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
13null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
13dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
13imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)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,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
13return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{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,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,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 g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}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,Ge.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 Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.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}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(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"};g.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};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,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){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(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){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
13!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(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=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.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&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.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,Ge.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)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(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,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(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?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
13if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,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.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)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],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
13);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(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 Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.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 _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[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,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
13class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.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,_.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,St.delete(this),r.emit("ws",[this.nrData,this.targets],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}=xt(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 g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
13h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.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})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
13
14
15    <meta name="viewport" content="width=device-width, initial-scale=1">
16
17    <title>Philadelphia 2026: Celebrate America&#039;s 250th Anniversary</title>
18
19    <link rel="profile" href="http://gmpg.org/xfn/11" />
20    <link rel="pingback" href="https://www.discoverphl.com/xmlrpc.php" />
21    
21<script>
22        // Vanilla JS Defer helper method for elimnating render blocking js including jQuery
23        function defer(method) {
24            if (window.jQuery) {
25                method();
26            } else {
27                setTimeout(function() {
28                    defer(method)
29                }, 50);
30            }
31        }
32    </script>
32
33                    <!-- Start cookieyes banner -->
34        <!-- 
34<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/37c27265c6259f66a0b40337/script.js"></script>
34 End cookieyes banner -->
35        <!-- recaptcha enterprise -->
36    
36<script src=https://www.google.com/recaptcha/enterprise.js?render=6LfAHssZAAAAAClKikT6P7e4Ip0vpLNbQsAbGrf4></script>
36
37    <!-- recaptcha enterprise -->
38    <!-- consent helper script, gtm/cookieyes -->
39    
39<script>
40        window.dataLayer = window.dataLayer || [];
41
42        function gtag() {
43            dataLayer.push(arguments);
44        }
45        gtag("consent", "default", {
46            ad_storage: "denied",
47            ad_user_data: "denied",
48            ad_personalization: "denied",
49            analytics_storage: "denied",
50            functionality_storage: "denied",
51            personalization_storage: "denied",
52            security_storage: "granted",
53            wait_for_update: 2000,
54        });
55        gtag("set", "ads_data_redaction", true);
56        gtag("set", "url_passthrough", true);
57    </script>
57
58    <!-- consent helper script, gtm/cookieyes -->
59
60 
61    <!-- Google Tag Manager -->
62    
62<script>
vendor: 554 bytes, lines 62-76
62
63        (function(w, d, s, l, i) {
64            w[l] = w[l] || [];
65            w[l].push({
66                'gtm.start': new Date().getTime(),
67                event: 'gtm.js'
68            });
69            var f = d.getElementsByTagName(s)[0],
70                j = d.createElement(s),
71                dl = l != 'dataLayer' ? '&l=' + l : '';
72            j.async = true;
73            j.src =
74                'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
75            f.parentNode.insertBefore(j, f);
76        })(window, document, 'script', 'dataLayer', '
76GTM-WV69RX
vendor: 8 bytes, lines 76-77
76');
77    
77</script>
77
78    <!-- End Google Tag Manager -->
79
80
81    <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
82<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/37c27265c6259f66a0b40337/script.js"></script>
82
83	<!-- This site is optimized with the Yoast SEO plugin v28.3 - https://yoast.com/product/yoast-seo-wordpress/ -->
84	<meta name="description" content="As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026." />
85	<link rel="canonical" href="https://www.discoverphl.com/blog-post/philadelphia-2026/" />
86	<meta property="og:locale" content="en_US" />
87	<meta property="og:type" content="article" />
88	<meta property="og:title" content="Philadelphia 2026: Celebrate America&#039;s 250th Anniversary" />
89	<meta property="og:description" content="As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026." />
90	<meta property="og:url" content="https://www.discoverphl.com/blog-post/philadelphia-2026/" />
91	<meta property="og:site_name" content="DiscoverPHL" />
92	<meta property="article:modified_time" content="2026-06-25T13:39:46+00:00" />
93	<meta property="og:image" content="https://www.discoverphl.com/wp-content/uploads/2024/06/July4th22-G.Widman_1sm-1920x1080-1.jpg" />
94	<meta property="og:image:width" content="1920" />
95	<meta property="og:image:height" content="1080" />
96	<meta property="og:image:type" content="image/jpeg" />
97	<meta name="twitter:card" content="summary_large_image" />
98	<meta name="twitter:label1" content="Est. reading time" />
99	<meta name="twitter:data1" content="14 minutes" />
100	
100<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/","url":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/","name":"Philadelphia 2026: Celebrate America's 250th Anniversary","isPartOf":{"@id":"https:\/\/www.discoverphl.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage"},"image":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","datePublished":"2026-06-18T12:12:53+00:00","dateModified":"2026-06-25T13:39:46+00:00","description":"As America’s birthplace, Philadelphia 2026 will be the centerpiece of the United States’ 250th birthday in Philadelphia 2026.","breadcrumb":{"@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#primaryimage","url":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","contentUrl":"https:\/\/www.discoverphl.com\/wp-content\/uploads\/2024\/06\/July4th22-G.Widman_1sm-1920x1080-1.jpg","width":1920,"height":1080,"caption":"Photo by G. Widman for Visit Philadelphia®"},{"@type":"BreadcrumbList","@id":"https:\/\/www.discoverphl.com\/blog-post\/philadelphia-2026\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.discoverphl.com\/"},{"@type":"ListItem","position":2,"name":"Blog Posts","item":"https:\/\/www.discoverphl.com\/blog-post\/"},{"@type":"ListItem","position":3,"name":"Philadelphia Celebrates America’s 250th Birthday With So Much to Do"}]},{"@type":"WebSite","@id":"https:\/\/www.discoverphl.com\/#website","url":"https:\/\/www.discoverphl.com\/","name":"DiscoverPHL","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.discoverphl.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}</script>
100
101	<!-- / Yoast SEO plugin. -->
102
103
104<link rel='dns-prefetch' href='//api.mapbox.com' />
105<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
106<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.discoverphl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.discoverphl.com%2Fblog-post%2Fphiladelphia-2026%2F" />
107<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.discoverphl.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.discoverphl.com%2Fblog-post%2Fphiladelphia-2026%2F&#038;format=xml" />
108<style id="wp-img-auto-sizes-contain-inline-css">
109img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
110/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
111</style>
112<link rel='stylesheet' id='map_style-css' href='https://api.mapbox.com/mapbox-gl-js/v2.9.1/mapbox-gl.css?ver=1' media='all' />
113<link rel='stylesheet' id='map_geo_style-css' href='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.0/mapbox-gl-geocoder.css?ver=1' media='all' />
114<link rel='stylesheet' id='main_style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/assets/dist/main.min.css?ver=1790150693' media='all' />
115<link rel='stylesheet' id='custom_style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/assets/stylesheets/custom_style.css?ver=1790150694' media='all' />
116<link rel='stylesheet' id='pcvb-newsletter-pop-out-style-css' href='https://www.discoverphl.com/wp-content/themes/pcvb/newsletter-pop-out/pcvb-newsletter-popout.css?ver=1790150694' media='all' />
117<style id="wp-emoji-styles-inline-css">
118
119	img.wp-smiley, img.emoji {
120		display: inline !important;
121		border: none !important;
122		box-shadow: none !important;
123		height: 1em !important;
124		width: 1em !important;
125		margin: 0 0.07em !important;
126		vertical-align: -0.1em !important;
127		background: none !important;
128		padding: 0 !important;
129	}
130/*# sourceURL=wp-emoji-styles-inline-css */
131</style>
132
133
134<link rel='stylesheet' id='simple-favorites-css' href='https://www.discoverphl.com/wp-content/plugins/favorites/assets/css/favorites.css?ver=2.3.4' media='all' />
135<link rel='stylesheet' id='tablepress-default-css' href='https://www.discoverphl.com/wp-content/plugins/tablepress/css/build/default.css?ver=3.3.4' media='all' />
136<link rel='stylesheet' id='p10eb-styles-css' href='https://www.discoverphl.com/wp-content/plugins/p10-essential-blocks//assets/assets/dist/main.min.css?ver=7.1' media='all' />
137<script id="jquery-core-js" src="https://www.discoverphl.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 137
137
138<script id="favorites-js-extra">
139var favorites_data = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php","nonce":"c503dfdf05","favorite":"\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"35\" viewBox=\"0 0 40 35\" fill=\"none\"\u003E\u003Cpath d=\"M38.0526 10.4856C38.0526 5.17704 33.8007 1 28.5611 1C24.3303 1 20.7512 3.86864 19.5253 7.74468C18.2983 3.86915 14.7193 1.09983 10.4884 1.09983C5.24786 1.09983 1 5.15779 1 10.4684C1 13.148 2.08488 15.0412 3.83087 17.0671L19.534 33L35.2192 17.0671C36.9667 15.0412 38.0526 13.1632 38.0526 10.4856Z\" stroke=\"#fff\" stroke-width=\"2\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Cspan\u003EAdd to Favorites\u003C/span\u003E","favorited":"\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"35\" viewBox=\"0 0 40 35\" fill=\"none\"\u003E\u003Cpath d=\"M38.0526 10.4856C38.0526 5.17704 33.8007 1 28.5611 1C24.3303 1 20.7512 3.86864 19.5253 7.74468C18.2983 3.86915 14.7193 1.09983 10.4884 1.09983C5.24786 1.09983 1 5.15779 1 10.4684C1 13.148 2.08488 15.0412 3.83087 17.0671L19.534 33L35.2192 17.0671C36.9667 15.0412 38.0526 13.1632 38.0526 10.4856Z\" stroke=\"#fff\" stroke-width=\"2\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Cspan\u003EAdded to Favorites\u003C/span\u003E","includecount":"","indicate_loading":"","loading_text":"Loading","loading_image":"","loading_image_active":"","loading_image_preload":"","cache_enabled":"1","button_options":{"button_type":"custom","custom_colors":false,"box_shadow":false,"include_count":false,"default":{"background_default":false,"border_default":false,"text_default":false,"icon_default":false,"count_default":false},"active":{"background_active":false,"border_active":false,"text_active":false,"icon_active":false,"count_active":false}},"authentication_modal_content":"\u003Cp\u003EPlease login to add favorites.\u003C/p\u003E\n\u003Cp\u003E\u003Ca href=\"#\" data-favorites-modal-close\u003EDismiss this notice\u003C/a\u003E\u003C/p\u003E\n","authentication_redirect":"","dev_mode":"","logged_in":"","user_id":"0","authentication_redirect_url":"https://www.discoverphl.com/wp-login.php"};
140//# sourceURL=favorites-js-extra
141</script>
vendor: 1 bytes, line 141
141
142<script id="favorites-js" src="https://www.discoverphl.com/wp-content/plugins/favorites/assets/js/favorites.min.js?ver=2.3.4"></script>
vendor: 1 bytes, line 142
142
143<script id="p10eb-essential-js" src="https://www.discoverphl.com/wp-content/plugins/p10-essential-blocks//assets/js/global.js?ver=7.1"></script>
143
144<link rel="https://api.w.org/" href="https://www.discoverphl.com/wp-json/" /><link rel='shortlink' href='https://www.discoverphl.com/?p=53978' />
145<link rel="shortcut icon" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/favicon.ico?09/24/26-09:00:35" type="image/x-icon" />
146<link rel="apple-touch-icon-precomposed" sizes="152x152" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-152x152.png?09/24/26-09:00:35" />
147<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-144x144.png?09/24/26-09:00:35" />
148<link rel="apple-touch-icon-precomposed" sizes="120x120" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-120x120.png?09/24/26-09:00:35" />
149<link rel="apple-touch-icon-precomposed" sizes="114x114" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-114x114.png?09/24/26-09:00:35" />
150<link rel="apple-touch-icon-precomposed" sizes="76x76" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-76x76.png?09/24/26-09:00:35" />
151<link rel="apple-touch-icon-precomposed" sizes="72x72" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-72x72.png?09/24/26-09:00:35" />
152<link rel="apple-touch-icon-precomposed" sizes="57x57" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon-57x57.png?09/24/26-09:00:35" />
153<link rel="apple-touch-icon-precomposed" href="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/favicon/apple-touch-icon.png?09/24/26-09:00:35" />
154<style id="wp-custom-css">
155/* Link styles in p text */
156
157p > a {
158	font-size: 20px !important;
159}
160
161
162
163/* Tablepress Font Styles */
164
165table.tablepress > tbody > tr td, table.tablepress > tbody > tr td a {
166	font-size: 18px !important;
167	line-height: 22px !important;
168}
169
170/* Other */
171@media (min-width:768px){
172	section.cb20-gravity-form{
173		min-height:880px;
174	}
175}
176#p10-tutorial-container {
177    display: grid;
178    grid-template-columns: repeat(2, 40%)!important;
179    grid-gap: 15px;
180    margin-top: 75px;
181}
182p.wysiwyg-summary > * {
183	color: var(--Blue,#3256a6) !important;
184}
185
186/* Newsletter in Footer */
187
188@media (min-width: 767px) {
189    footer .eb02-footer .footer-right-col a:first-of-type {
190        margin-left: 50px;
191    }
192}
193@media (max-width: 767px) {
194	body.page-id-12603 	.sub-footer ul {
195    display: block !important;
196    margin: 0;
197}
198	body.page-id-12603 .cb24-favorites-modal {
199		display:none;
200	}
201}
202@media (max-width: 768px){
203	
204
205#michelinBannerWrapper #michelinBannerContent .text-after-anim *{
206	opacity:1;
207}
208}
209
210/* michelin */
211
212@media only screen and (max-width: 768px) {
213	#michelinPopup {
214	bottom: 0% !important;
215	}
216#michelinPopup.active {
217	width: fit-content;
218  height: -webkit-fill-available !important;
219	}
220}
221#michelinPopup p.restaurant-michelin-stars {
222    display: flex;
223    flex-direction: row;
224    justify-content: left;
225    align-items: center;
226}
227#michelinPopup div..michelin-popup-content span#michelinPopupBanner {
228    font-size: 18px;
229}
230
231@media (max-width: 1024px) {
232	.restaurants-pagination {
233	align-items: baseline;
234}
235	.restaurants-pagination .pagination-dots-wrapper {
236		margin-top: 25px;
237	}
238}
239
240/*
241 *	2025-10-27 fix for simpleview forms showing labels next to submit and reset buttons 
242 */
243form[name^="frm_"] label.label_hidden {
244	position: absolute;
245	width: 1px;
246	height: 1px;
247	padding: 0;
248	overflow: hidden;
249	clip: rect(0, 0, 0, 0);
250	white-space: nowrap;
251	border: 0;
252}
253
254/* World Cup Blocks */
255@media screen and (max-width: 991.5px) {
256  .world-cup-background .slick-slide > div, .world-cup-background .slick-slide .game-slide {
257    max-width: 560px;
258  }
259	.game-schedule-slider .slick-slide {
260    max-width: 560px;
261  }
262}
263
264/* 12 June */
265body.page-id-58291 section.p10-block.p10-bg-block.cb13-repeater-block .cb13-banner-image {
266    width: 100%;
267}
268body.page-id-58291 .cb05-related-content-columns svg {
269    width: 100% !important;
270}
271body.page-id-58291 section.p10-block.p10-bg-block.cb13-repeater-block .parallax-bg {
272    width: 100%;
273}
274</style>
275
276    <!-- Hotjar Tracking Code for Discover PHL -->
277    
277<script>
vendor: 202 bytes, lines 277-283
277
278        (function(h, o, t, j, a, r) {
279            h.hj = h.hj || function() {
280                (h.hj.q = h.hj.q || []).push(arguments)
281            };
282            h._hjSettings = {
283                hjid: 
2835011875
vendor: 343 bytes, lines 283-292
283,
284                hjsv: 6
285            };
286            a = o.getElementsByTagName('head')[0];
287            r = o.createElement('script');
288            r.async = 1;
289            r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
290            a.appendChild(r);
291        })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');
292    
292</script>
292
293    <!-- Hotjar Tracking Code for Discover PHL -->
294    </head>
295<body class="wp-singular blog-post-template-default single single-blog-post postid-53978 wp-theme-pcvb interior-page" style="opacity:0.01; transition:all 0.5s">
296
297
298    
299
300    
301                
302    
303
304    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 304-305
304
305    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
305GTM-WV69RX
vendor: 87 bytes, lines 305-306
305" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
306    
306<!-- End Google Tag Manager (noscript) -->
307    <div id="site">
308        <div id="skip-container" role="region" aria-label="skip to content">
309            <a id="skip-to-content" href="#main" tabindex="0" aria-label="skip to content">
310                Skip to content
311            </a>
312        </div>
313
314        <div class="searchform-wrap" id="global-search" aria-modal="true" aria-label="sitewide search" role="dialog">
315            <div class="large-frame">
316
317                <form role="search" method="get" id="searchform" class="searchform" aria-label="sitewide search popup" action="https://www.discoverphl.com/">
318                    <div>
319                        <!-- <label class="screen-reader-text" for="s">Search for:</label> -->
320
321                        <input type="text" value="" name="s" placeholder="Search" id="s">
322                        <div class="search-submit-wrap">
323                            <svg width="56" height="55" viewBox="0 0 56 55" fill="none" xmlns="http://www.w3.org/2000/svg">
324<circle cx="21.1763" cy="20.8867" r="12.7694" transform="rotate(-45 21.1763 20.8867)" stroke="#3256A6" stroke-width="4.00012"/>
325<line x1="44.5623" y1="44.4943" x2="34.1187" y2="34.0507" stroke="#3256A6" stroke-width="4.00012"/>
326</svg>
327                            <input type="submit" id="searchsubmit" aria-label="search submit" value="">
328                        </div>
329                    </div>
330                    <div class="form-close">
331                        <a href="javascript:void(0)" class="form-close-btn nav-close-icon">Close <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
332                                <path d="M18.6807 1L0.999999 19M19 19L1.31932 0.999999" stroke="#3256A6" stroke-width="2" />
333                            </svg></a>
334                    </div>
335                </form>
336                <a href="javascript:void(0)" class="form-close-btn nav-close-icon mobile-close-form" aria-label="close search input">
337                    <svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
338                        <path d="M1.125 1.9455L18.2778 19.2048M18.2778 1.63379L1.125 18.8931" stroke="white" stroke-width="2" />
339                    </svg>
340                </a>
341            </div>
342        </div>
343        <header>
344            <div class="large-frame flex-wrapper space-between center">
345                <div class="nav-wrap">
346
347
348                    <div class="main-nav">
349                                                <ul class="convention_">
350                            <li id="menu-item-12065" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-12065"><a href="https://www.discoverphl.com/meet/">Meet</a>
351<ul class="sub-menu">
352	<li id="menu-item-6346" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6346"><a href="https://www.discoverphl.com/meet/">Start Planning</a></li>
353	<li id="menu-item-12933" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12933"><a href="https://www.discoverphl.com/meet/venues/">Search Venues &#038; Services</a></li>
354	<li id="menu-item-6522" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6522"><a href="https://www.discoverphl.com/meet/toolkit/">Planner Tools &#038; Resources</a></li>
355	<li id="menu-item-12873" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12873"><a href="https://www.discoverphl.com/meet/recent-developments/">What&#8217;s New</a></li>
356	<li id="menu-item-6523" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6523"><a href="https://www.discoverphl.com/meet/pa-convention-center/">PA Convention Center</a></li>
357	<li id="menu-item-6525" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6525"><a href="https://www.discoverphl.com/meet/expertise/">Business Divisions: <br />Diversity, Life Sciences, Sports</a></li>
358</ul>
359</li>
360<li id="menu-item-15485" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-15485"><a href="https://www.discoverphl.com/travel-trade/">Travel Trade</a>
361<ul class="sub-menu">
362	<li id="menu-item-15486" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15486"><a href="https://www.discoverphl.com/travel-trade/">International Travel</a></li>
363	<li id="menu-item-59322" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59322"><a href="https://www.discoverphl.com/travel-trade/visitor-guides/">International Visitors Guides</a></li>
364	<li id="menu-item-6527" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6527"><a href="https://www.discoverphl.com/travel-trade/group-tours/">Group Tours</a></li>
365	<li id="menu-item-55274" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55274"><a href="https://www.discoverphl.com/travel-trade/contact/">Global Tourism Team</a></li>
366</ul>
367</li>
368<li id="menu-item-11968" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-11968"><a href="https://www.discoverphl.com/partner-overview/">Partners</a>
369<ul class="sub-menu">
370	<li id="menu-item-6528" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6528"><a href="https://www.discoverphl.com/partner-overview/">Join</a></li>
371	<li id="menu-item-6530" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6530"><a target="_blank" href="https://philadelphiapa.extranet.simpleviewcrm.com/login/">Partner Login</a></li>
372	<li id="menu-item-58121" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58121"><a href="https://www.discoverphl.com/partner-overview/events/">Partner Events</a></li>
373	<li id="menu-item-6529" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6529"><a href="https://www.discoverphl.com/business-directory/">Partner Directory</a></li>
374</ul>
375</li>
376<li id="menu-item-6531" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-6531"><a href="https://www.discoverphl.com/discover/">Discover</a>
377<ul class="sub-menu">
378	<li id="menu-item-12357" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12357"><a href="https://www.discoverphl.com/discover/">Plan Your Visit</a></li>
379	<li id="menu-item-55005" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55005"><a href="https://www.discoverphl.com/discover/highlighted-experiences/">Curated Experiences</a></li>
380	<li id="menu-item-12361" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12361"><a href="https://www.discoverphl.com/discover/explore-philadelphia-neighborhoods/">Neighborhoods</a></li>
381	<li id="menu-item-12359" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12359"><a href="https://www.discoverphl.com/discover/where-to-eat/">Where to Eat</a></li>
382	<li id="menu-item-12358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12358"><a href="https://www.discoverphl.com/discover/where-to-stay/">Where to Stay</a></li>
383	<li id="menu-item-12360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12360"><a href="https://www.discoverphl.com/discover/things-to-do/">Things to Do</a></li>
384</ul>
385</li>
386<li id="menu-item-6532" class="underline menu-item menu-item-type-post_type menu-item-object-page menu-item-6532"><a href="https://www.discoverphl.com/contact-our-team/">Contact</a></li>
387                        </ul>
388
389
390                        <div id="p10-lang-selector-mobile" class="lang-selector p10-lang-selector menu-item mobile">
391                            <a href="javascript:void(0);" class="p10-lang-select-btn" aria-label="language selector">
392                                <svg class="world" width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
393<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1248 2.88513C13.2994 2.95076 12.0089 3.24713 10.9607 3.6117C10.285 3.84672 8.81795 4.5806 8.19568 4.99492C5.38699 6.86494 3.35595 9.74705 2.52697 13.039C2.2633 14.0863 2.2009 14.6605 2.20242 16.0273C2.20347 16.9904 2.23131 17.5173 2.30578 17.9827C2.75027 20.7621 3.9931 23.2129 6.00439 25.2763C8.69613 28.0378 12.3081 29.4404 16.117 29.2033C17.9564 29.0888 19.39 28.7261 20.972 27.975C24.5742 26.2648 27.2833 22.9451 28.2392 19.0703C28.4849 18.0742 28.5834 17.2765 28.5933 16.2031C28.6032 15.1342 28.5293 14.3751 28.3252 13.4492C27.6664 10.4603 26.0389 7.79207 23.6724 5.82109C22.7099 5.01941 21.109 4.10646 19.8377 3.6342C18.9522 3.30519 17.5604 2.97414 16.7725 2.905C16.1303 2.84869 14.7169 2.83808 14.1248 2.88513ZM11.9275 5.71779C10.9303 6.05318 10.2426 6.38283 9.43728 6.9114C8.86008 7.29027 7.97244 7.97974 7.97244 8.04924C7.97244 8.07109 8.03174 8.12617 8.10428 8.1717C8.3666 8.33629 9.84539 9.05465 9.92191 9.05465C9.96504 9.05465 10.1746 8.70525 10.3877 8.27828C10.9933 7.06433 11.6016 6.32043 12.4799 5.71955C12.7193 5.55584 12.8907 5.42195 12.8608 5.42201C12.8309 5.42213 12.4109 5.55525 11.9275 5.71779ZM17.8169 5.47363C17.8172 5.49349 17.9779 5.59779 18.1738 5.70543C18.9609 6.13785 19.8187 7.15732 20.431 8.38808C20.7495 9.02834 20.7739 9.06033 20.9173 9.02459C21.1325 8.97092 22.4462 8.3149 22.6209 8.17381L22.7674 8.0555L22.4451 7.76049C21.6816 7.06158 20.1507 6.17418 19.0281 5.77967C18.4591 5.57974 17.8158 5.4172 17.8169 5.47363ZM14.1995 6.68388C13.4623 6.88246 12.7494 7.3876
3935 12.2269 8.08181C11.9252 8.48277 11.4881 9.29799 11.4881 9.45982C11.4881 9.49357 11.5606 9.53705 11.6492 9.55644C11.7378 9.5759 11.8477 9.60361 11.8934 9.61808C12.057 9.67 13.5524 9.87531 14.0388 9.91269L14.5349 9.95084V8.2723C14.5349 7.34904 14.5283 6.59547 14.5203 6.59758C14.5123 6.59968 14.3679 6.63853 14.1995 6.68388ZM16.2342 8.28543V9.93355H16.5162C17.0593 9.93355 19.0469 9.63185 19.2237 9.52263C19.2917 9.48056 19.2563 9.37099 19.0308 8.92597C18.3807 7.64236 17.4577 6.83295 16.4627 6.67386L16.2342 6.6373V8.28543ZM23.582 9.58603C23.0941 9.9373 22.4673 10.2678 21.8112 10.5197C21.4191 10.6703 21.3311 10.7259 21.3613 10.8036C21.5464 11.28 21.8681 13.0312 22.0027 14.295C22.0539 14.7764 22.1107 15.1851 22.1288 15.2032C22.1469 15.2214 23.0941 15.2438 24.2337 15.253L26.3056 15.2699L26.275 15.048C26.0085 13.1161 25.4091 11.4467 24.4491 9.96285C24.3032 9.73726 24.1393 9.4948 24.0848 9.42402L23.9859 9.29529L23.582 9.58603ZM6.49066 9.71383C5.43574 11.2158 4.69394 13.1639 4.53797 14.8417L4.49859 15.2656H6.58441H8.67023L8.69994 15.0752C8.71623 14.9704 8.759 14.5683 8.79492 14.1816C8.87437 13.3259 9.10101 11.9717 9.28822 11.2337L9.42656 10.6883L9.30011 10.6415C9.23051 10.6158 9.01541 10.5365 8.82205 10.4652C8.31879 10.2796 7.59246 9.9025 7.16396 9.60437C6.96099 9.46316 6.78433 9.34761 6.77144 9.34761C6.75849 9.34761 6.63217 9.51244 6.49066 9.71383ZM10.8789 11.2666C10.6868 11.8986 10.3963 13.6803 10.3391 14.5771L10.2989 15.207H12.4462H14.5935V13.4528V11.6986L14.3445 11.6676C14.2075 11.6507 13.9109 11.6208 13.6853 11.6012C13.2042 11.5595 12.4646 11.4459 11.6054 11.2816C10.8643 11.1399 10.917 11.1411 10.8789 11.2666ZM19.2224 11.2567C18.6988 11.3711 17.3668 11.5608 16.7469 11.609L16.2342 11.6489V13.428V15.207H18.3505H20.4669L20.426 14.6357C20.4035 14.3215 20.3747 13.9853 20.3621 13.8886C20.3495 13.792 20.3105 13.4887 20.2754 13.2148C20.2112 12.7132 20.0386 11.818 19.9242 11.3933C19.8534 11.1304 19.825 11.1248 19.2224 11.2567ZM4.77551 16.9011L4.47896 16.9355L4.55502 17.4628C4.73256 18.6938 5.13228 19.9677 5.68799 21.0735C5.9775 21.6495 6.61863 22.6601 6.74355 22.7372C6.77812 22.7587 6.99627 22.6467 7.2283 22.4884C7.84834 22.0656 8.14207 21.9076 8.77793 21.6545C9.44455 21.3892 9.41349 21.4783 9.18709 20.4804C9.02912 19.7845 8.77336 18.099 8.70469 17.3017L8.66554 16.8476L6.86883 16.8572C5.88058 16.8624 4.93863 16.8822 4.77551 16.9011ZM10.3168 17.0966C10.3185 17.7798 10.5484 19.4102 10.792 20.4673C10.8939 20.9096 10.935 21.0055 11.0122 20.9819C11.4385 20.852 14.0333 20.4804 14.5138 20.4804C14.5254 20.4804 14.5349 19.663 14.5349 18.664V16.8476H12.4256H10.3162L10.3168 17.0966ZM16.2342 18.6847V20.5217L16.8549 20.5619C17.5268 20.6054 18.453 20.7248 19.1849 20.8625C19.8811 20.9935 19.8358 21.0163 19.9734 20.4658C20.2023 19.5504 20.4529 17.7162 20.4529 16.9563C20.4529 16.8525 20.3588 16.8476 18.3435 16.8476H16.2342V18.6847ZM22.0689 16.9795C22.054 17.052 22.0278 17.3618 22.0106 17.6679C21.9567 18.6246 21.5786 20.7423 21.3598 21.3125C21.3362 21.3739 21.4807 21.4558 21.901 21.6193C22.5274 21.8631 23.1253 22.1867 23.5998 22.5391C23.7676 22.6636 23.9317 22.7656 23.9645 22.7656C24.0536 22.7656 24.6916 21.7912 25.0494 21.1089C25.632 19.9977 26.1352 18.3801 26.2275 17.3215L26.2688 16.8476H24.1823H22.0958L22.0689 16.9795ZM13.6267 22.2191C12.4784 22.3619 11.4881 22.5689 11.4881 22.666C11.4881 22.6944 11.6105 22.9547 11.7601 23.2444C12.0991 23.9008 12.5506 24.4834 12.9725 24.8089C13.3127 25.0714 13.9438 25.3649 14.3152 25.4334L14.5349 25.474V23.8268V22.1796L14.1687 22.1884C13.9673 22.1932 13.7234 22.2071 13.6267 22.2191ZM16.2342 23.8249V25.4702L16.4246 25.4296C17.2333 25.2573 18.0102 24.7426 18.4888 24.0621C18.8172 23.5952 19.3159 22.6637 19.2648 22.6127C19.1681 22.516 16.9863 22.1796 16.4556 22.1796H16.2342V23.8249ZM20.5309 23.5175C19.9568 24.7696 19.0235 25.9158 18.1678 26.4197C17.7918 26.641 17.7899 26.6434 18.0213 26.6039C18.3792 26.5427 19.3065 26.2345 19.8774 25.9868C20.7046 25.6281 21.6572 25.0129 22.5002 24.2934L22.804 24.034L22.4634 23.8369C22.1046 23.6294 21.1628 23.1614 20.9118 23.0659C20.769 23.0116 20.7556 23.0275 20.5309 23.5175ZM9.54896 23.1962C9.23086 23.327 8.28053 23.8227 8.0768 23.9639C7.98592 24.027 8.00021 24.0566 8.22328 24.2673C8.84508 24.8546 9.74215 25.4505 10.6811 25.8999C11.5721 26.3263 13.4027 26.878 12.6892 26.5051C12.292 26.2974 11.7366 25.8207 11.3805 25.3818C10.8725 24.7555 10.6901 24.4671 10.3353 23.7293C10.1579 23.3604 9.9822 23.0592 9.94476 23.06C9.90732 23.0607 9.72926 23.122 9.54896 23.1962Z" fill="white"/>
394</svg>
395                                Language <svg class="arrow" width="8" height="5" viewB
395ox="0 0 8 5" fill="none" xmlns="http://www.w3.org/2000/svg">
396                                    <path d="M4 4.66699L0.535899 0.666991L7.4641 0.666992L4 4.66699Z" fill="#FAF6F2" />
397                                </svg>
398                            </a>
399                            <div class="gtranslate_wrapper" id="gt-wrapper-36616898"></div>                            <a href="javascript:void(0);" class="p10-lang-select-mob-close">
400                                <svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
401                                    <path d="M1.125 1.9455L18.2778 19.2048M18.2778 1.63379L1.125 18.8931" stroke="white" stroke-width="2" />
402                                </svg>
403                            </a>
404
405                        </div>
406                    </div>
407
408
409                    <div id="logo">
410                                                    <a aria-label="Home" href="https://www.discoverphl.com" id="logo-link"><img data-mobopen="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/Plan-your-next-event-in-Philadelphia.svg" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo.svg" data-src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo.svg" alt="Logo" id="logo-img" /></a>
411                        
412                        <div class="mobile-controls">
413                            <a href="javascript:void(0)" class="search-icon mob nav-search-icon" aria-label="Sitewide Search">
414                                <svg width="29" height="32" viewBox="0 0 29 32" fill="none" xmlns="http://www.w3.org/2000/svg">
415<circle cx="11.4433" cy="11.2363" r="6.38452" transform="rotate(-45 11.4433 11.2363)" stroke="white" stroke-width="2"/>
416<line x1="23.1376" y1="23.0391" x2="17.916" y2="17.8175" stroke="white" stroke-width="2"/>
417</svg>
418                            </a>
419                            <a href="javascript:void(0)" aria-label="activate mobile menu" class="mobile-toggle">
420                                <span class="bar-1"></span>
421                                <span class="bar-2"></span>
422                                <span class="bar-3"></span>
423                            </a>
424
425                        </div>
426                    </div>
427                    <div class="util-nav">
428
429                        <a href="javascript:void(0)" class="nav-search-icon search-icon" aria-label="Sitewide Search">
430                            <svg width="29" height="32" viewBox="0 0 29 32" fill="none" xmlns="http://www.w3.org/2000/svg">
431<circle cx="11.4433" cy="11.2363" r="6.38452" transform="rotate(-45 11.4433 11.2363)" stroke="white" stroke-width="2"/>
432<line x1="23.1376" y1="23.0391" x2="17.916" y2="17.8175" stroke="white" stroke-width="2"/>
433</svg>
434                        </a>
435                        <a href="https://www.discoverphl.com/submit-rfp/" target="_self" class="btn-base light-blue arrow"><span>Submit RFP</span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="9" viewBox="0 0 22 9" fill="none"><path d="M22 4.5L14.5 0.169873V8.83013L22 4.5ZM0 5.25H15.25V3.75H0V5.25Z" fill="#FF4D00"/></svg></a><a href="javascript:void(0)" target="_self" class="btn-base white favorite view-my-favorites"><span>View My Favorites</span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="13" viewBox="0 0 14 13" fill="none"><path d="M6.52326 3.18121L6.99984 4.67521L7.476 3.18108C7.87729 1.92189 9.04617 1 10.4137 1C12.1236 1 13.5 2.34885 13.5 4.05711C13.5 4.88567 13.1777 5.47478 12.5627 6.18491L7.00272 11.7902L1.43634 6.18488C0.822806 5.47576 0.5 4.88086 0.5 4.05065C0.5 2.34951 1.86674 1.03744 3.58511 1.03744C4.96079 1.03744 6.12416 1.93009 6.52326 3.18121Z" stroke="white"/></svg></a>                        <div id="p10-lang-selector" class="lang-selector p10-lang-selector menu-item desktop">
436                            <a href="javascript:void(0);" class="p10-lang-select-btn" aria-label="Language Selector">
437                                <svg class="world" width="31" height="31" viewBox="0 0 31 31" fill="none" xmlns="http://www.w3.org/2000/svg">
438<path fill-rule="evenodd" clip-rule="evenodd" d="M14.1248 2.88513C13.2994 2.95076 12.0089 3.24713 10.9607 3.6117C10.285 3.84672 8.81795 4.5806 8.19568 4.99492C5.38699 6.86494 3.35595 9.74705 2.52697 13.039C2.2633 14.0863 2.2009 14.6605 2.20242 16.0273C2.20347 16.9904 2.23131 17.5173 2.30578 17.9827C2.75027 20.7621 3.9931 23.2129 6.00439 25.2763C8.69613 28.0378 12.3081 29.4404 16.117 29.2033C17.9564 29.0888 19.39 28.7261 20.972 27.975C24.5742 26.2648 27.2833 22.9451 28.2392 19.0703C28.4849 18.0742 28.5834 17.2765 28.5933 16.2031C28.6032 15.1342 28.5293 14.3751 28.3252 13.4492C27.6664 10.4603 26.0389 7.79207 23.6724 5.82109C22.7099 5.01941 21.109 4.10646 19.8377 3.6342C18.9522 3.30519 17.5604 2.97414 16.7725 2.905C16.1303 2.84869 14.7169 2.83808 14.1248 2.88513ZM11.9275 5.71779C10.9303 6.05318 10.2426 6.38283 9.43728 6.9114C8.86008 7.29027 7.97244 7.97974 7.97244 8.04924C7.97244 8.07109 8.03174 8.12617 8.10428 8.1717C8.3666 8.33629 9.84539 9.05465 9.92191 9.05465C9.96504 9.05465 10.1746 8.70525 10.3877 8.27828C10.9933 7.06433 11.6016 6.32043 12.4799 5.71955C12.7193 5.55584 12.8907 5.42195 12.8608 5.42201C12.8309 5.42213 12.4109 5.55525 11.9275 5.71779ZM17.8169 5.47363C17.8172 5.49349 17.9779 5.59779 18.1738 5.70543C18.9609 6.13785 19.8187 7.15732 20.431 8.38808C20.7495 9.02834 20.7739 9.06033 20.9173 9.02459C21.1325 8.97092 22.4462 8.3149 22.6209 8.17381L22.7674 8.0555L22.4451 7.76049C21.6816 7.06158 20.1507 6.17418 19.0281 5.77967C18.4591 5.57974 17.8158 5.4172 17.8169 5.47363ZM14.1995 6.68388C13.4623 6.88246 12.7494 7.3876
4385 12.2269 8.08181C11.9252 8.48277 11.4881 9.29799 11.4881 9.45982C11.4881 9.49357 11.5606 9.53705 11.6492 9.55644C11.7378 9.5759 11.8477 9.60361 11.8934 9.61808C12.057 9.67 13.5524 9.87531 14.0388 9.91269L14.5349 9.95084V8.2723C14.5349 7.34904 14.5283 6.59547 14.5203 6.59758C14.5123 6.59968 14.3679 6.63853 14.1995 6.68388ZM16.2342 8.28543V9.93355H16.5162C17.0593 9.93355 19.0469 9.63185 19.2237 9.52263C19.2917 9.48056 19.2563 9.37099 19.0308 8.92597C18.3807 7.64236 17.4577 6.83295 16.4627 6.67386L16.2342 6.6373V8.28543ZM23.582 9.58603C23.0941 9.9373 22.4673 10.2678 21.8112 10.5197C21.4191 10.6703 21.3311 10.7259 21.3613 10.8036C21.5464 11.28 21.8681 13.0312 22.0027 14.295C22.0539 14.7764 22.1107 15.1851 22.1288 15.2032C22.1469 15.2214 23.0941 15.2438 24.2337 15.253L26.3056 15.2699L26.275 15.048C26.0085 13.1161 25.4091 11.4467 24.4491 9.96285C24.3032 9.73726 24.1393 9.4948 24.0848 9.42402L23.9859 9.29529L23.582 9.58603ZM6.49066 9.71383C5.43574 11.2158 4.69394 13.1639 4.53797 14.8417L4.49859 15.2656H6.58441H8.67023L8.69994 15.0752C8.71623 14.9704 8.759 14.5683 8.79492 14.1816C8.87437 13.3259 9.10101 11.9717 9.28822 11.2337L9.42656 10.6883L9.30011 10.6415C9.23051 10.6158 9.01541 10.5365 8.82205 10.4652C8.31879 10.2796 7.59246 9.9025 7.16396 9.60437C6.96099 9.46316 6.78433 9.34761 6.77144 9.34761C6.75849 9.34761 6.63217 9.51244 6.49066 9.71383ZM10.8789 11.2666C10.6868 11.8986 10.3963 13.6803 10.3391 14.5771L10.2989 15.207H12.4462H14.5935V13.4528V11.6986L14.3445 11.6676C14.2075 11.6507 13.9109 11.6208 13.6853 11.6012C13.2042 11.5595 12.4646 11.4459 11.6054 11.2816C10.8643 11.1399 10.917 11.1411 10.8789 11.2666ZM19.2224 11.2567C18.6988 11.3711 17.3668 11.5608 16.7469 11.609L16.2342 11.6489V13.428V15.207H18.3505H20.4669L20.426 14.6357C20.4035 14.3215 20.3747 13.9853 20.3621 13.8886C20.3495 13.792 20.3105 13.4887 20.2754 13.2148C20.2112 12.7132 20.0386 11.818 19.9242 11.3933C19.8534 11.1304 19.825 11.1248 19.2224 11.2567ZM4.77551 16.9011L4.47896 16.9355L4.55502 17.4628C4.73256 18.6938 5.13228 19.9677 5.68799 21.0735C5.9775 21.6495 6.61863 22.6601 6.74355 22.7372C6.77812 22.7587 6.99627 22.6467 7.2283 22.4884C7.84834 22.0656 8.14207 21.9076 8.77793 21.6545C9.44455 21.3892 9.41349 21.4783 9.18709 20.4804C9.02912 19.7845 8.77336 18.099 8.70469 17.3017L8.66554 16.8476L6.86883 16.8572C5.88058 16.8624 4.93863 16.8822 4.77551 16.9011ZM10.3168 17.0966C10.3185 17.7798 10.5484 19.4102 10.792 20.4673C10.8939 20.9096 10.935 21.0055 11.0122 20.9819C11.4385 20.852 14.0333 20.4804 14.5138 20.4804C14.5254 20.4804 14.5349 19.663 14.5349 18.664V16.8476H12.4256H10.3162L10.3168 17.0966ZM16.2342 18.6847V20.5217L16.8549 20.5619C17.5268 20.6054 18.453 20.7248 19.1849 20.8625C19.8811 20.9935 19.8358 21.0163 19.9734 20.4658C20.2023 19.5504 20.4529 17.7162 20.4529 16.9563C20.4529 16.8525 20.3588 16.8476 18.3435 16.8476H16.2342V18.6847ZM22.0689 16.9795C22.054 17.052 22.0278 17.3618 22.0106 17.6679C21.9567 18.6246 21.5786 20.7423 21.3598 21.3125C21.3362 21.3739 21.4807 21.4558 21.901 21.6193C22.5274 21.8631 23.1253 22.1867 23.5998 22.5391C23.7676 22.6636 23.9317 22.7656 23.9645 22.7656C24.0536 22.7656 24.6916 21.7912 25.0494 21.1089C25.632 19.9977 26.1352 18.3801 26.2275 17.3215L26.2688 16.8476H24.1823H22.0958L22.0689 16.9795ZM13.6267 22.2191C12.4784 22.3619 11.4881 22.5689 11.4881 22.666C11.4881 22.6944 11.6105 22.9547 11.7601 23.2444C12.0991 23.9008 12.5506 24.4834 12.9725 24.8089C13.3127 25.0714 13.9438 25.3649 14.3152 25.4334L14.5349 25.474V23.8268V22.1796L14.1687 22.1884C13.9673 22.1932 13.7234 22.2071 13.6267 22.2191ZM16.2342 23.8249V25.4702L16.4246 25.4296C17.2333 25.2573 18.0102 24.7426 18.4888 24.0621C18.8172 23.5952 19.3159 22.6637 19.2648 22.6127C19.1681 22.516 16.9863 22.1796 16.4556 22.1796H16.2342V23.8249ZM20.5309 23.5175C19.9568 24.7696 19.0235 25.9158 18.1678 26.4197C17.7918 26.641 17.7899 26.6434 18.0213 26.6039C18.3792 26.5427 19.3065 26.2345 19.8774 25.9868C20.7046 25.6281 21.6572 25.0129 22.5002 24.2934L22.804 24.034L22.4634 23.8369C22.1046 23.6294 21.1628 23.1614 20.9118 23.0659C20.769 23.0116 20.7556 23.0275 20.5309 23.5175ZM9.54896 23.1962C9.23086 23.327 8.28053 23.8227 8.0768 23.9639C7.98592 24.027 8.00021 24.0566 8.22328 24.2673C8.84508 24.8546 9.74215 25.4505 10.6811 25.8999C11.5721 26.3263 13.4027 26.878 12.6892 26.5051C12.292 26.2974 11.7366 25.8207 11.3805 25.3818C10.8725 24.7555 10.6901 24.4671 10.3353 23.7293C10.1579 23.3604 9.9822 23.0592 9.94476 23.06C9.90732 23.0607 9.72926 23.122 9.54896 23.1962Z" fill="white"/>
439</svg>
440
441                            </a>
442                            <div class="gtranslate_wrapper" id="gt-wrapper-35308157"></div>
443                        </div>
444                    </div>
445                </div>
446
447
448            </div>
449        </header>
450
451        <div id="cb24-favorites-modal" class="cb24-favorites-modal" aria-label="Favorites List" aria-modal="true" role="dialog">
452            <div class="blue-section">
453
454                <div class="frame">
455                    <a href="javascript:void(0);" id="close-favorites" aria-label="Close Favorites Popup">
456
457                        <svg width="69" height="54" viewBox="0 0 69 54" fill="none" xmlns="http://www.w3.org/2000/svg">
458<path d="M17.25 8.37272L53.6667 45.0156M53.6667 7.71094L17.25 44.3538" stroke="white" stroke-width="8"/>
459</svg>
460                    </a>
461                    <div class="cb24-header">
462                        <h2>favorites</h2>
463                        <a href="/meet/venues/" class="btn-base white"><span>Search More Venues</span></a>
464
465                        <a id="email-favorites" href="mailto:?subject=test&body=message%0Ahere" class="btn-base white"><span><svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg">
466                                    <path d="M1.10769 12.5C0.812308 12.5 0.553846 12.3875 0.332308 12.1625C0.110769 11.9375 0 11.675 0 11.375V1.625C0 1.325 0.110769 1.0625 0.332308 0.8375C0.553846 0.6125 0.812308 0.5 1.10769 0.5H13.661
4665C13.9569 0.5 14.2154 0.6125 14.4369 0.8375C14.6585 1.0625 14.7692 1.325 14.7692 1.625V11.375C14.7692 11.675 14.6585 11.9375 14.4369 12.1625C14.2154 12.3875 13.9569 12.5 13.6615 12.5H1.10769ZM7.38462 6.8375L13.6615 2.65625V1.625L7.38462 5.7125L1.10769 1.625V2.65625L7.38462 6.8375Z" fill="white" />
467                                </svg>
468                                Email List</span></a>
469                        <a id="clear-favorites-cookie" href="javascript:void(0)" class="reverse-underline white"><span>Clear Favorites</span></a>
470                    </div>
471                </div>
472                <svg class="cb24-wave-bottom" width="1601" height="128" viewBox="0 0 1601 128" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
473                    <path d="M0 0H1602V75.4694C1602 75.4694 1336.67 178.927 834.542 95.4613C332.415 11.9951 0 75.4694 0 75.4694V0Z" fill="#3256A6" />
474                </svg>
475
476            </div>
477            <div class="frame">
478                <ul class="favorites-list " data-userid="" data-siteid="1" data-includebuttons="false" data-includelinks="true" data-includethumbnails="false" data-includeexcerpts="false" data-thumbnailsize="thumbnail" data-nofavoritestext="<h2> You haven't favorited anything yet!</h2> <span>Favorited Listings will appear here once you do.</span>" data-posttypes="post,page,attachment,blog-post,coupons,neighborhoods,people,press-release,partners"><ul data-postid="0" data-nofavorites class="no-favorites"><h2> You haven't favorited anything yet!</h2> <span>Favorited Listings will appear here once you do.</span></ul></ul>
479            </div>
480        </div>
481
482        <main id="main">
483
484            
485<section  class="p10-block p10-banner-block cb02-hero-banner" role="group">
486    <div class="cb02-gradient-top">
487
488    </div>
489    <div class="cb02-gradient-bottom">
490
491    </div>
492    <div class="video-wrap">
493                    <video class="videojs" style="position:absolute;top:0;left:0;overflow:hidden;z-index:-998" playsinline="playsinline" muted loop autoplay>
494                <source src="https://www.discoverphl.com/wp-content/uploads/2025/09/website_2026_hero_video_v3-1080p.mp4" type="video/mp4">
495            </video>
496                
497    </div>
498
499    <div class="frame cb02-wrap">
500        <div class="cb02-content">
501
502            <h1>Philadelphia Celebrates America’s 250th Birthday With So Much to Do</h1>                        <div class="cta-links">
503
504                            </div>
505        </div>
506    </div>
507    <div class="frame wave-inner-content-wrap ">
508
509        <div class="wave-inner-content">
510            
511            <a class="cb02-play-video inactive" href="" data-fancybox><svg xmlns="http://www.w3.org/2000/svg" width="61" height="61" viewBox="0 0 61 61" fill="none">
512                    <circle cx="30.5" cy="30.5" r="30.5" fill="#3256A6" />
513                    <path d="M39.3112 30.5001L26.0945 38.1307L26.0945 22.8694L39.3112 30.5001Z" fill="white" />
514                </svg>Play Video</a>
515
516
517                    </div>
518    </div>
519    <div class=" wave-wrap">
520                    <a class="pause-banner" href="javascript:void(0)" aria-label="pause banner video" style="z-index:999999999999">
521
522                <svg id="pause-btn" xmlns="http://www.w3.org/2000/svg" width="19" height="23" viewBox="0 0 19 23" fill="none">
523                    <rect width="7" height="23" fill="#FAF6F2" />
524                    <rect x="12" width="7" height="23" fill="#FAF6F2" />
525                </svg>
526            </a>
527                <svg class="cb02-mob-wave" width="375" height="162" viewBox="0 0 375 162" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
528<rect y="43" width="375" height="119" fill="#fff"/>
529<path d="M0 39.4453V44H375V2.31108C375 2.31108 308.906 -9.47216 199.688 20.1746C90.4688 49.8214 0 39.4453 0 39.4453Z" fill="#fff"/>
530</svg>
531        <svg class="cb02-bottom-wave" width="1596" height="266" viewBox="0 0 1596 266" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
532<path d="M-4 181.986V203H1596V10.6625C1596 10.6625 1314 -43.7011 848 93.0783C382 229.858 -4 181.986 -4 181.986Z" fill="white"/>
533<rect x="-5" y="195" width="1601" height="71" fill="white"/>
534</svg>
535    </div>
536</section>
537<section  class="p10-block cb23-wysiwyg" role="group">
538    <div class="frame toc-wysiwyg-wrap has-toc">
539        <div class="toc-wrapper"><div class="toc js-sticky-widget"><span class="small-label toc-label">Table of Contents</span><a href="#what-is-the-semiquincentennial">What is the semiquincentennial?</a><a href="#celebrating-250-years-philly-style">Events</a><a href="#the-eyes-of-the-sports-world-on-philly-in-2026">Sports</a><a href="#new-philadelphia-museums-art-and-exhibitions">New Museums and Exhibitions</a></div></div>        <div class="wysiwyg has-toc">
540                            <div class="wysiwyg-info">
541                    
542                        <div class="date">
543                            <span class="small-label">Date</span>
544                            <span>June 18, 2026</span>
545                        </div>
546                                                                <div class="share">
547                            <span class="small-label">Share</span>
548                            <div class="icons">
549
550                                <a aria-label="facebook share link" href="https://www.facebook.com/sharer/sharer.php?u=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="7" height="16" viewBox="0 0 7 16" fill="none" xmlns="http://www.w3.org/2000/svg">
551<path d="M1.75 5.33333H0V8H1.75V16H4.66667V8H6.79117L7 5.33333H4.66667V4.222C4.66667 3.58533 4.77867 3.33333 5.31708 3.33333H7V0H4.77867C2.681 0 1.75 1.05533 1.75 3.07667V5.33333Z" fill="#3256A6"/>
552</svg>
553</a>
554                                <a aria-label="twitter share link" href="https://twitter.com/intent/tweet?text=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
555<rect width="18" height="18" fill="url(#pattern0)"/>
556<defs>
557<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
558<use xlink:href="#image0_8631_30434" transform="scale(0.00520833)"/>
559</pattern>
560<image id="image0_8631_30434" width="192" height="192" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAABGdBTUEAALGPC/xhBQAACktpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAAEiJnVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4BUaaISkgChhBgSQOyIqMCIoiKCFRkUccDREZCxIoqFQbH3AXkIKOPgKDZU3g/eGn2z5r03b/avvfY5Z53vnH0+AEZgsESahaoBZEoV8ogAHzw2Lh4ndwMKVCCBA4BAmC0LifSPAgDg+/Hw7IgAH/gCBODNbUAAAG7YBIbhOPx/UBfK5AoAJAwApovE2UIApBAAMnIVMgUAMgoA7KR0mQIAJQAAWx4bFw+AagEAO2WSTwMAdtIk9wIAtihTKgJAowBAJsoUiQDQDgBYl6MUiwCwYAAoypGIcwGwmwBgkqHMlABg7wCAnSkWZAMQGABgohALUwEI9gDAkEdF8AAIMwEojJSveNJXXCHOUwAA8LJki+WSlFQFbiG0xB1cXbl4oDg3Q6xQ2IQJhOkCuQjnZWXKBNLFAJMzAwCARnZEgA/O9+M5O7g6O9s42jp8taj/GvyLiI2L/5c/r8IBAQCE0/VF+7O8rBoA7hgAtvGLlrQdoGUNgNb9L5rJHgDVQoDmq1/Nw+H78fBUhULmZmeXm5trKxELbYWpX/X5nwl/AV/1s+X78fDf14P7ipMFygwFHhHggwuzMrKUcjxbJhCKcZs/HvHfLvzzd0yLECeL5WKpUIxHS8S5EmkKzsuSiiQKSZYUl0j/k4l/s+wPmLxrAGDVfgb2QltQu8oG7JcuILDogCXsAgDkd9+CqdEQBgAxBoOTdw8AMPmb/x1oGQCg2ZIUHACAFxGFC5XynMkYAQCACDRQBTZogz4YgwXYgCO4gDt4gR/MhlCIgjhYAEJIhUyQQy4shVVQBCWwEbZCFeyGWqiHRjgCLXACzsIFuALX4BY8gF4YgOcwCm9gHEEQMsJEWIg2YoCYItaII8JFZiF+SDASgcQhiUgKIkWUyFJkNVKClCNVyF6kHvkeOY6cRS4hPcg9pA8ZRn5DPqAYykDZqB5qhtqhXNQbDUKj0PloCroIzUcL0Q1oJVqDHkKb0bPoFfQW2os+R8cwwOgYBzPEbDAuxsNCsXgsGZNjy7FirAKrwRqxNqwTu4H1YiPYewKJwCLgBBuCOyGQMJcgJCwiLCeUEqoIBwjNhA7CDUIfYZTwmcgk6hKtiW5EPjGWmELMJRYRK4h1xGPE88RbxAHiGxKJxCGZk1xIgaQ4UhppCamUtJPURDpD6iH1k8bIZLI22ZrsQQ4lC8gKchF5O/kQ+TT5OnmA/I5CpxhQHCn+lHiKlFJAqaAcpJyiXKcMUsapalRTqhs1lCqiLqaWUWupbdSr1AHqOE2dZk7zoEXR0miraJW0Rtp52kPaKzqdbkR3pYfTJfSV9Er6YfpFeh/9PUODYcXgMRIYSsYGxn7GGcY9xismk2nG9GLGMxXMDcx65jnmY+Y7FZaKrQpfRaSyQqVapVnlusoLVaqqqaq36gLVfNUK1aOqV1VH1KhqZmo8NYHacrVqteNqd9TG1FnqDuqh6pnqpeoH1S+pD2mQNcw0/DREGoUa+zTOafSzMJYxi8cSslazalnnWQNsEtuczWensUvY37G72aOaGpozNKM18zSrNU9q9nIwjhmHz8nglHGOcG5zPkzRm+I9RTxl/ZTGKdenvNWaquWlJdYq1mrSuqX1QRvX9tNO196k3aL9SIegY6UTrpOrs0vnvM7IVPZU96nCqcVTj0y9r4vqWulG6C7R3afbpTump68XoCfT2653Tm9En6PvpZ+mv0X/lP6wActgloHEYIvBaYNnuCbujWfglXgHPmqoaxhoqDTca9htOG5kbjTXqMCoyeiRMc2Ya5xsvMW43XjUxMAkxGSpSYPJfVOqKdc01XSbaafpWzNzsxiztWYtZkPmWuZ883zzBvOHFkwLT4tFFjUWNy1JllzLdMudltesUCsnq1Sraqur1qi1s7XEeqd1zzTiNNdp0mk10+7YMGy8bXJsGmz6bDm2wbYFti22L+xM7OLtNtl12n22d7LPsK+1f+Cg4TDbocChzeE3RytHoWO1483pzOn+01dMb53+cob1DPGMXTPuOrGcQpzWOrU7fXJ2cZY7NzoPu5i4JLrscLnDZXPDuKXci65EVx/XFa4nXN+7Obsp3I64/epu457uftB9aKb5TPHM2pn9HkYeAo+9Hr2z8FmJs/bM6vU09BR41ng+8TL2EnnVeQ16W3qneR/yfuFj7yP3OebzlufGW8Y744v5BvgW+3b7afjN9avye+xv5J/i3+A/GuAUsCTgTCAxMChwU+Advh5fyK/nj852mb1sdkcQIygyqCroSbBVsDy4LQQNmR2yOeThHNM50jktoRDKD90c+ijMPGxR2I/hpPCw8OrwpxEOEUsjOiNZkQsjD0a+ifKJKot6MNdirnJue7RqdEJ0ffTbGN+Y8pjeWLvYZbFX4nTiJHGt8eT46Pi6+LF5fvO2zhtIcEooSrg933x+3vxLC3QWZCw4uVB1oWDh0URiYkziwcSPglBBjWAsiZ+0I2lUyBNuEz4XeYm2iIbFHuJy8WCyR3J58lCKR8rmlOFUz9SK1BEJT1IleZkWmLY77W16aPr+9ImMmIymTEpmYuZxqYY0XdqRpZ+Vl9Ujs5YVyXoXuS3aumhUHiSvy0ay52e3KtgKmaJLaaFco+zLmZVTnfMuNzr3aJ56njSva7HV4vWLB/P9879dQlgiXNK+1HDpqqV9y7yX7V2OLE9a3r7CeEXhioGVASsPrKKtSl/1U4F9QXnB69Uxq9sK9QpXFvavCVjTUKRSJC+6s9Z97e51hHWSdd3rp6/fvv5zsaj4col9SUXJx1Jh6eVvHL6p/GZiQ/KG7jLnsl0bSRulG29v8tx0oFy9PL+8f3PI5uYt+JbiLa+3Ltx6qWJGxe5ttG3Kbb2VwZWt2022b9z+sSq16la1T3XTDt0d63e83SnaeX2X167G3Xq7S3Z/2CPZc3dvwN7mGrOain2kfTn7ntZG13Z+y/22vk6nrqTu037p/t4DEQc66l3q6w/qHixrQBuUDcOHEg5d+873u9ZGm8a9TZymksNwWHn42feJ398+EnSk/Sj3aOMPpj/sOMY6VtyMNC9uHm1JbeltjWvtOT77eHube9uxH21/3H/C8ET1Sc2TZadopwpPTZzOPz12RnZm5GzK2f72he0PzsWeu9kR3tF9Puj8xQv+F851eneevuhx8cQlt0vHL3Mvt1xxvtLc5dR17Cenn451O3c3X3W52nrN9Vpbz8yeU9c9r5+94Xvjwk3+zSu35tzquT339t07CXd674ruDt3LuPfyfs798QcrHxIfFj9Se1TxWPdxzc+WPzf1Ovee7PPt63oS+eRBv7D/+T+y//FxoPAp82nFoMFg/ZDj0Ilh/+Frz+Y9G3guez4+UvSL+i87Xli8+OFXr1+7RmNHB17KX078VvpK+9X+1zNet4+FjT1+k/lm/G3xO+13B95z33d+iPkwOJ77kfyx8pPlp7bPQZ8fTmROTPwTA5jz/IzFdaUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAEhNJREFUeJzt3Xt0lOWdwPHvTBJyIfcLYZJMbgREAwSCgFC5iPWy7W71NMelxa6KdavbVt1uL9uzR9euPd1Tzx53ba3bY7VYhepRids91W6VSxAFpYKES8QDuZA7ksmVJOQ6z/4xM5KmAgnzvPPOO+/v80/rm+R5f2Tye37zPvP83tehlEIIu3KaHYAQZpIEELYmCSBsTRJA2JokgLA1SQBha5IAwtYkAYStSQIIW5MEELYmCSBsTRJA2JokgLA1SQBha5IAwtYkAYStSQIIW5MEELYmCSBsTRJA2JokgLA1SQBha5IAwtaidQ/ocDgAyFv8tY0AWSU3/hbA4dR+KkP1tB74AKB+738uNzuWcJSzcIMLlDM1b8VJgLgkV7yOcXtbDx5QKHWh37vu+1hJBRC25tCdUYEKEFC08v7tAGnulZ/XeiKj+X8vHbVvfQ+g+dDzj5saT5hwlVbMAJxJ2QtPASRmzsvWMe6A58QZQPV9cjQfoL2mcuSzvk8qgBAaGV4BXKUV0QApOeUdAAlpRalaT2iw0aGecYDO+qq5AG3HXm0wNyLzuEornAnpxdUAKa4lC3WMOdTXOohSdLfsLwJor6k8c7HvlwoghEaGL82011SOATijZtwCEJvk2g0QFR3nuMiPhY2YuNQogJkZc3f6DxWbGI5pCld863eAQ9fMPzrUOw6KnraD6+DSM79RpAIIWzP8GmCygmX3bgbIKFq7SeuJQ8RTv+tJgKYDzz5gdiyh4C7f9AjgyJxz/SMADkdwc6Z3bFiBwlO/awNAS/XWV6fz83INIIRGIa8AAXPXPdQMkDTrqjytARhsfHRQAXjqdq4CaD3y0vvmRmSM3LLbv+pwOByZxddvBXBGxwZ1zaaUF1B01lf9BKDp4OaHLm8cqQBCaGNaBchZuGEeQEbRuuMAMXEplkrGga66LoC+9uosgPaaSq+5EemRs+grSwBnRuGa/XB+FSw4iq7GvdsATu3/79uCGkkqgBD6mLZFs+3oyycAomLiHwLIKrnh331fscTHA8xMn
5605MOMHy2fZv/0JdNDCdoOQs3ZAPO1Nyr94KumR/62quPAyrYmd8oUgGErZl2DTDZnNXfPwqQ4lqyQGtABlPeUQDOnHyrAqD18G9fMzWgaTq/u3NBA0Bi5hWzdYw70FnrAaX6Th8J7O4c0jGuXAMIoVHYtGkNdtWvBohLcp0GiE2cHWtuRFPjcMYAkOJavBXAOzY0C6C9prLfxLCmxFVa4UxIK/4T6Jv5h/tPDwPq7Jlj5aBv5jeKVABha2FTAdprKnsAomLi7wbr9RLHJefGA8Sn5G/3H1ppYjiXVLjiHyrB4UjJWVKmY7zRoV4voHpaPlgH0Hb0lWYd4xpNKoCwtbBZBZqsaOX9OwDS3Cuv1zJgqJzvJf4OQPOh558wM5zJ3OWbHgacmXPW/wjA4Qhuud87PgIoPHW7vg7QUr1lc5AhXpSsAgmhUdhWgAm9xB6AhLSiFC0Dh8joua4xgM5TewoB2o6+0mpmPLllt98KODOL128DiIqJD+6FUgrl2935GEDTwV//MOggp3RaqQBCaBO2SywTeom/BBDn7yV2WqWXOD49GiAhrXi3/9BcM+LIWbhhMQ6HIz1/lZ6ZHwBFV/O+30PoZn6jSAUQtha21wCTFSy79zcAGUVr7zTkBAbz1O96AqDpwLPfCcX5XKUVmYAzNW95PUB8inumjnH7Th8+AajaPY/N1zHedMk1gBAaWaYCBFi1l3hspN8L4KnbuRSg7ejL1Uacx7965kyaVdoIkJg1X8sen8Huhh5A9bZ9GNjdacpeJ6kAQmgUtqtAFzLQefJ6gLjkXEv1EkfPSHQCJGUv2AHg8o4Fdo1q6yX27e4s/AD0zfzD/Z8MA/SdPrwYrLHLdTos8ccjhFEsVwEioJc4A2C4r+1F/6Gv6Bi3YPl9LwCOlJyli3WMF7hm6Wn50xcB2o6+0qhj3HAjFUDYmuVWgSabs/r7xwBSXEtKQ3riIHnHfb3EHbVv3grQevjF/72ccdzldz0EDkfmnPWPgo7dnaP47935DYCWQy88E9SAmskqkBAaWe4aYLLBrvp1AHHJua0AsTNnzTA1oClyRgV6iZe8COAdG86Gqa+y5JZtvAUcjvSC1VpmflCgoKvx3acg/GZ+o0gFELZm+QrQXlPpAYiKid8EkFVyk7+XWMuNzQwXl5ybABCfkvd//kOrL/b953d3fk7r7s7upve3AzQdeObbwY9nHVIBhK1ZfhVosqKVD+wESHNfs97UQKbL/zqcqX3zAYCWQy88OfHLrtKKdHy7O0+Bzt2dR2oBVbvnp/N0jGc0WQUSQiPLXwNMNtTXehPAYHeDtXqJ/ZUzNffqxwG8Y8PbAJR3rAPf7s5joG/mH+w+1QuKgc6TS3WMZ1VSAYStRVwF+LSXODr2FoC4JFeV77+t0Us8IyEzBiAhrbAKQHnHBgASs+a7dIw/MugZRSn6Th9eDtBeU9mnY1yrkgogbC3iVoEmK1h27/MAGUVr7zA7FjMFdnd21lfdCNB65KWd5kZ0eWQVSAiNIr4CBMy77uFmgMSsKy3VSxws5R3Dt7uz6p8Amj/8zX+ZHFJQpAIIoVHErQJdSL/nxJ/1EkfHJkd48n+6u/NpsP7Mb5QI/yMQ4uJscw0Q4C6/618Askpu+InvSHjHe7m6m/e/DdDw3s/WmRuJXnINIIRGtqsAAXNW/6AGIMW1+CqzY9Hp7JmPmgHV33G8CPTedygcSAUQQiPbrAJNNthVtxYgLjnHUr3EF3Kup7FPKUV/x/EFEHkzv1GkAghbs20FmNBLfB9A1tybNoOOuyuE1uhQ7zgoeturl4Hs7pwuqQDC1mxbAQJaqrc+BxATn/53AGnua64zN6LpiY5NjEKBM2rGtf5DJ0wNyGKkAghbs+3nAJO5SiviAFJzl50BiE/NTzI3oukJdHp1Ne1zA7QdffkTs2MygnwOIC7MopOPmWx/DRDQXlM5BOCMjv0bgNjEWZbsJY5PzQ90ei0wMRzLkAogbE2uAS7Aur3Evtezo27nowDNBzc/Ymo4msk1gBAaSQW4BKv2Eo8Nn/U9l7h+VxlA29GXj5kbkR5SAYTQSFaBLsGqvcTRsUlOgMTMK7b7D2m5s1ykscSLKYRR5BpgiqzeS9zZ8PZzAI0fPH232bEEQ64BhNBIKsA0lfh7iZMt1kvsHRsGoKP2rcC9Qbdf9AfClFQAITSSVaBpGhn0/I///1qqAjijYwFInr1oG4B3fCQLoL2mcsTEsEwnCTBNSqpmRJEEmKLcso1fBEjPX/VDs2MJRnxqQTLAUF/b6/5DN5oYjukkAaZOZv4IJKtAl5CzcMM8gPT8VccAZszMijE3Ij2UGgeg4+Sbd8P53uhwp/vvVSrApcnMH8GkAlyAq7QiFSA1d1kTWK9HeKqG+z8ZAehqfDcXzt8vKVxJBQgdmfltQBJgEldphW8XZdb8gxC5M39AbGL2DICEtOJAL3GZieGEnCTAX5KZ30YkASaJT8l/ByBpVmmhyaGEVErO4kUA7vJNjwA0f/jcv5kbUWjIbCdsTVaB/AqW3ftrgIyitZbeLx+swN2mO+urrgRoO/bqSbNjmkhWgYyjOXMDL5Q1JwS7sH0CuJfc+V2A9IJrN+kYTynfg1m6Tr3zHEBKTvmdcL5HN9zFxKVEASRmzd/ln23d5kZkLNsngP73bJNLtN6SLfSy7TVAbtnGLwBkFq9/HSAqJkFL4F2N77wGcGr/LysA3OV3PQSQVXLDj33fYY3fj4+is+HtXwE0fvCre82OBuQaQCcr/SUKg9iuAuQsuG0uQHrBtTWgb3dn3+nDHwPU7nnsys/6esnqH3wEkOxa/JlfD1fjY0MKpfDU7VgD0HrkpXfNjEcqQLAcTmMy9NKvjFwMhCHbJEBgd2eKa/EB0DfzD3TWegAGuurKL/p9XXXXAcQl5zb7z2+J5xJH+Z+PkDx70RtKKVylkdVLbJsEwLBPvadXk5UUgrAS8Qnw6e7OzCv8uzsLtOzuHO7/ZBjg7JmapXD+CTMX0l5TeQYgKib+6wBZJTdtAXA4rfFcYl8vsWL4bPvv/Ie+YGY8ukR8AmDczG/yzwsdIn4VqHjVP+4FSM1bvkrHeGPDfV6Azoa3PwfQeuSl9y9nnKKVD1YBpLlXrNMRV6go7zig6KjdfgdAS/WWLSE9v6wCmUv3CyDMFbEJULDsG8+CvpnfO+5b9Ohu2vf3cPkzf8BQX8tfAZzrcXUAxKfmJwYZYkgErllScsqfAcX46OAbAO01lV2mBnaZIjYB9D8017CZX0qKiSIuAfKW3HE/QHrBKj37+v1vebpOvfsfAC3VWzbrGNbqzyWOTcyOBUhIK9yBL4mXmhvR5Ym4BHBonvlDtW4vZcAcEbMKlFu28WaAzOL1fwB9uzu7m/a9AdDw/i/+Wsd4F1Kw/L4tABmFa75m5Hn0U6Cgo27HvwI0f/jcjw09mzwf4IKcRNa/x2os+bu3fAUwbnfnkRMAtXt+eoWO8aZq3vofnQZIzJyXHcrzBmt0qGccoLO+6gqAtmOv1hlxHvkcYDKjdnea9q7c8h80WKoSWDYBXKUViQDJsxftB30z/2B3Qw/AQGetKasa/R0f+3aNJrlqwDrPJY6JS/X3El+525/EeeZGNDWWTQAsNtNMl7U/cQ6z/TAXYblrgAm7O2sBkrIXFOkYN7C7s7tpX+B+OA06xr1cVu8l9tTvfgqg6cAz39Y6sqwCyWqPRVjiNbJcBShe9eAegNS8Fat1jDc20u/b3VlfFXh+7s6L/0RoWbaXePScAoWnbue1AK1HXtqnY1xZBbIfK18MQJhXAsskQP7V9/wcIDVvuZaZ3zs+CkBX47vfhPCb+QMs20scE+8ASMpe+DooXKUVsyD8eoktkwAYdu9Oa5BeYmOEfQLkLbnjWwAZhav9qwnB5oF/d2fj3l8CtBx64ekgBzSU1XuJE9IKU0AxdLZtm//Ql0wNaJKwTwB0v4eUiVRMELarQLmLvnodQEbxdTsAomckakmE7ub3dgA0vPfkDTrGC7WilQ/uBkhzr1hrcijToryjKAWeuu1/C9BSvfXVyxrHRp8DyHp/ZAqr1zTs3gIFdnemua/5A+ib+c+eqWkCGOpru0nHeGYZ6mu5GazYSxyDA0jJWfq8r5f43HaA9prKHjPjCrsEMG53Z8S9+7f6v8cJeM0OImwSYMLuzvdB33r3YPepXoD+jo8XAbTXVJr+Sw/Gp73EUTNuAYhNnLUTrNdLHJ9a8Ed8SbzCzHjCJgEI2zu4hTeL/+tMT1rTV4Em7O48CZCUvaBYRxwjg55RgK7GvYsA2o6+/LGOccNNwfL7tgJkFK653exYpkUpFApP7fbvATQfev7xqf2YfVaBhB2YfC9N0yuA7nXt8ZEBBeBpqLoZoPXwi2/pGDfcWbqXWCk6G3bPhUv3Ychu0Euw754ZS7eQgUmrQqYlQP7V9zwBkOZermXm9921GLqb9n0X7DPzB1i9l3hmxtzAHea0XANOlZkVQPMLZPUJUGDCqlDIrwHyltzxTYCsOdc/Bb5PCIPjiz/cnmdrFnf5pocBsko+/6jviOkrjdOg8NRXPQnQdODZBz7zOyJgFciBtV4VEVoh/dsIWQXILdu4FiCjaN0u0Lm7c/8egIb3fmap3ZFGK1nzz8cBkmeXzTc7lukYHx30reLV7VwFf/kcBuuuAillVLWRN/+fxdo3FoIQrQoZngA5C26bA5DqXvFH0Lm786MWgKG+lvU6xos0A11168CKvcS+u3onzrrq94Ca0EtsSDKEogLIzG8ii38uYvj1gGEJ4CqtSABInl22HyB25iwtM9C53uYBgP6O4+Vg/d2dRjnfS5xwD0BWyY0vgHV6iWemz0n3P5c40Ev8ZSPOY2QFsMQHMSLsOTCw2mtPgAm7O6sBEtKL03SMO3quawygt+3D5QDtNZUeHeNGusBzfGP
560i0+8BSHOvWGNuRNPhIM294lalIHeoN1ABXtN5BsMqgFKBdyZ6ktf6ixqmU3/2Pxbhe9mNi1n75wBCWIm8Txe2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErUkCCFuTBBC2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErUkCCFuTBBC2JgkgbE0SQNiaJICwNUkAYWuSAMLWJAGErf0/IVEfrF+BKdMAAAAASUVORK5CYII="/>
561</defs>
562</svg>
563</a>
564                                <a aria-label="linkedin share link" href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.discoverphl.com/blog-post/philadelphia-2026/"><svg width="17" height="16" viewBox="0 0 17 16" fill="none" xmlns="http://www.w3.org/2000/svg">
565<path d="M15.2441 0H1.60972C0.956592 0 0.428467 0.515625 0.428467 1.15313V14.8438C0.428467 15.4813 0.956592 16 1.60972 16H15.2441C15.8972 16 16.4285 15.4813 16.4285 14.8469V1.15313C16.4285 0.515625 15.8972 0 15.2441 0ZM5.17534 13.6344H2.80034V5.99687H5.17534V13.6344ZM3.98784 4.95625C3.22534 4.95625 2.60972 4.34062 2.60972 3.58125C2.60972 2.82188 3.22534 2.20625 3.98784 2.20625C4.74722 2.20625 5.36284 2.82188 5.36284 3.58125C5.36284 4.3375 4.74722 4.95625 3.98784 4.95625ZM14.0628 13.6344H11.691V9.92188C11.691 9.0375 11.6753 7.89687 10.4566 7.89687C9.22222 7.89687 9.03472 8.8625 9.03472 9.85938V13.6344H6.66597V5.99687H8.94097V7.04063H8.97222C9.28784 6.44063 10.0628 5.80625 11.216 5.80625C13.6191 5.80625 14.0628 7.3875 14.0628 9.44375V13.6344Z" fill="#3256A6"/>
566</svg>
567</a>
568                            </div>
569                        </div>
570                                    </div>
571                                        <div class="wysiwyg-header image">
572                    <div class="text">                    <h2>Philadelphia Celebrates America’s 250th Birthday With So Much to Do</h2>                                        </div>
573                     <div class="image"><img loading="lazy" src="https://www.discoverphl.com/wp-content/uploads/2024/06/July4th22-G.Widman_1sm-1920x1080-1.jpg" alt="A huge fireworks display over the Philadelphia Museum of art. The Parkway is full of people and lights." /> </div>
574                </div>
575                                    <p class="wysiwyg-summary">As America’s birthplace, <strong>Philadelphia</strong> is the centerpiece of the United States’ 250th birthday celebration.</p>
576<p>Few cities celebrate July 4th like Philadelphia, but in 2026, every day is Independence Day as the city celebrates <strong>America’s Semiquincentennial</strong> – the 250th Anniversary of the signing of the Declaration of Independence. As America’s birthplace, Philadelphia will be the centerpiece of this monumental birthday celebration. But the action doesn’t stop there. In 2026, Philadelphia takes center stage for some of the world’s greatest events.</p>
577<h2>The Ultimate Guide to America 250 in Philadelphia</h2>
578<h3><strong>1. Festivals &amp; Firsts</strong></h3>
579<ul>
580<li><strong>Wawa Welcome America (June 19 – July 4):</strong> The nation’s largest free festival features 16 days of concerts, fireworks, and community events. Don&#8217;t miss <strong>Wawa Hoagie Day</strong> and the massive <strong>July 4th Party on the Parkway</strong>.</li>
581<li><strong>52 Weeks of Firsts:</strong> Every Saturday in 2026, a different neighborhood hosts a <strong>&#8220;Firstival,&#8221;</strong> celebrating Philadelphia&#8217;s legacy of innovation.</li>
582</ul>
583<h3><strong>2. Historic District Highlights</strong></h3>
584<ul>
585<li><strong>The Red, White, &amp; Blue To-Do (July 2):</strong> A day of &#8220;pomp and parade&#8221; in the <strong>Old City</strong> historic district featuring an All-American Block Party, concerts, and extended hours at iconic sites.</li>
586<li><strong>The Liberty Medal Ceremony (July 3):</strong> Watch as <strong>Pope Leo XIV</strong> receives this prestigious honor at the <strong>National Constitution Center</strong>, overlooking <strong>Independence Hall</strong>.</li>
587<li><strong>Examining the Declaration, Revolution</strong>: New exhibitions at the <strong>Museum of the American Revolution</strong>, Constitution Center, and <strong>Weitzman National Museum of American Jewish History </strong>focus on America’s 250<sup>th</sup></li>
588</ul>
589<h3><strong>3. Signature 2026 Sports Events</strong></h3>
590<ul>
591<li><strong>MLB All-Star Game (July 14):</strong> The Midsummer Classic returns to <strong>Citizens Bank Park</strong>, accompanied by the <strong>Capital One All-Star Village</strong> at the Convention Center and a week of baseball events.</li>
592<li><strong>FIFA World Cup 26™:</strong> Philadelphia hosts six matches of the world’s biggest sporting event, with the <strong>FIFA Fan Festival™</strong> at <strong>Lemon Hill</strong> running for 39 consecutive days.</li>
593</ul>
594<h3><strong>Pro-Traveler Tips for 2026:</strong></h3>
595<ul>
596<li><strong>Transportation:</strong> Skip the traffic and use <strong>SEPTA </strong> The <strong>Blue Line (Market-Frankford)</strong> is your best bet for getting between the <strong>Historic District</strong> and <strong>Center City</strong>.</li>
597<li><strong>Booking:</strong> Because 2026 is a milestone year, timed tickets for <strong>Independence Hall</strong> and the <strong>Museum of the American Revolution</strong> should be booked weeks, if not months, in advance.</li>
598<li><strong>Official App:</strong> Download the <a href="https://apps.apple.com/in/app/2026-access-philly/id6757433765" target="_blank" rel="noopener"><strong>2026 Access Philly App</strong></a> for real-time updates.</li>
599<li><strong>Visitors Guide: </strong>Check out the <strong><a href="https://www.discoverphl.com/discover/official-visitors-guide/250-guide/" rel="noopener">Philadelphia 250 Commemorative Guide</a>!</strong></li>
600</ul>
601<h2><span id="what-is-the-semiquincentennial" class="wysiwyg-anchor" data-title="What is the semiquincentennial?">What is the  Semiquincentennial?<strong></span></strong></h2>
602<p>The Semiquincentennial is the 250th anniversary of America’s Founders declaring the country’s independence right here in Philadelphia. In 1776, Benjamin Franklin, Thomas Jefferson, and delegates from the 13 Colonies signed the Declaration of Independence at <
602a href="https://www.nps.gov/inde/planyourvisit/independencehall.htm" target="_blank" rel="noopener"><strong>Independence Hall</strong></a><strong>.</strong> The document proclaimed their separation from British colonial rule. The signing is referred to as the birth of the United States and is celebrated in America each year on the Fourth of July.</p>
603<p><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-59252" src="https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1024x682.jpg" alt="Independence Hall sits behind a garden of tulips." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/Independence-Hall-in-the-Spring.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
604<h2><span id="celebrating-250-years-philly-style" class="wysiwyg-anchor" data-title="Events">Celebrating 250 Years Philly Style!</span></h2>
605<p>These events highlight Philadelphia’s role in the founding of our nation, and our love for the arts and partying!</p>
606<h3>52 weeks of Philly firsts</h3>
607<p>Philadelphia is celebrating the entire year by spotlighting its many historic “firsts” in 2026 through <a href="https://www.visitphilly.com/things-to-do/events/52-weeks-of-firsts-in-philadelphia/" target="_blank" rel="noopener"><strong>52 Weeks of Firsts</strong></a> — a citywide series of weekly events, storytelling, and experiences. Every week features Saturday “<strong>Firstivals</strong>” featuring live entertainment, music, family fun, giveaways, art, and more in neighborhoods around the city. Some historic firsts include the Slinky, the inaugural Mother’s Day celebration, the nation’s first Thanksgiving Day Parade, America’s first zoo, lending library, and the American flag (thanks Betsy Ross).</p>
608<h3>16 Days of Free Fun with WaWa Welcome America</h3>
609<p>Philadelphia will amplify and expand its already electrifying series of summer celebrations for the Semiquincentennial. The annual <a href="https://july4thphilly.com/"><strong>Wawa Welcome America</strong></a> festival returns with 16 days of electrifying programming of concerts, block parties, and free hoagies (of course) from <a href="https://www.discoverphl.com/blog-post/juneteenth-celebrations-in-philadelphia/"><strong>Juneteenth</strong></a> through the <a href="https://www.discoverphl.com/blog-post/celebrate-july-fourth-in-philadelphia/"><strong>Fourth of July</strong></a>.  Some highlights this summer include:</p>
610<ul>
611<li><strong>The </strong><a href="https://july4thphilly.com/event/kidchella-music-festival/" target="_blank" rel="noopener"><strong>Kidchella Music Festival</strong></a></li>
612<li><strong>Concilio’s Annual Hispanic Fiesta</strong></li>
613<li><a href="https://july4thphilly.com/event/celebration-of-black-music-month-and-fireworks/" target="_blank" rel="noopener"><strong>Celebration of Black Music Month + Fireworks,</strong></a> featuring Philly’s own Eve</li>
614<li><a href="https://july4thphilly.com/event/wawa-hoagie-day/" target="_blank" rel="noopener"><strong>Wawa Hoagie Day,</strong></a></li>
615<li><strong>July 4<sup>th</sup> Party on the Parkway</strong>, concluding with a massive free concert and fireworks display along the Benjamin Franklin Parkway.</li>
616</ul>
617<div id="attachment_2953" style="width: 1010px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-2953" decoding="async" class="size-full wp-image-2953" src="https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1.jpg" alt="A person holds up an American flag in a crowd at the Wawa Welcome American Parkway concert." width="1000" height="600" srcset="https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1.jpg 1000w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-300x180.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-768x461.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2023/10/Parkway32-photo-courtesy-of-Wawa-Welcome-America-1-860x516.jpg 860w" sizes="(max-width: 1000px) 100v
617w, 1000px" /><p id="caption-attachment-2953" class="wp-caption-text">People enjoy the Party of the Parkway in Philadelphia during the Wawa Welcome America Festival. Photo courtesy of Wawa Welcome America Photo/ Joseph Kaczmarek</p></div>
618<h3>Philly Fair 250</h3>
619<p>Wawa Welcome America festivities this year include <a href="https://july4thphilly.com/event/philly-fair-250-day-1/" target="_blank" rel="noopener"><strong>Philly Fair 250</strong></a>. The multi-day festival in the Centennial District features jazz performances, a trapeze, hot air balloon rides, and “food trucks representing flavors from the original 13 colonies.” Local institutions are partnering really ramp up the free family fun with the <a href="https://www.libertymuseum.org/" target="_blank" rel="noopener">National Liberty Museum</a> displaying a life-sized replica of the Liberty Bell.</p>
620<div id="attachment_59253" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59253" decoding="async" class="size-large wp-image-59253" src="https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1024x682.jpg" alt="A replica of the Liberty Bell at the National Liberty Museum" width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/National-Liberty-Museum.jpg 2000w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59253" class="wp-caption-text">National Liberty Museum</p></div>
621<p>As part of Wawa Welcome America, the Philadelphia Historic District will host the <a href="https://www.phlvisitorcenter.com/red-white-blue-to-do-philadelphia-pa" target="_blank" rel="noopener"><strong>Red, White, &amp; Blue To-Do</strong></a> on July 2. Inspired by John Adams’s call for “pomp and parade,” the event invites visitors to America’s most historic square mile for a patriotic parade, the All-American Block Party, plenty of family fun at historic attractions. The Red, White, &amp; Blue To-Do wraps up with a Salute to Service concert as The United States Army Field Band and Soldiers’ Chorus, featuring Queen Latifah, perform on Independence Mall.</p>
622<h3>Liberty Medal Presentation to Pope Leo</h3>
623<p>Pope Leo XIV, the first leader of the Roman Catholic Church born in the United States, will return to Philadelphia – where he attended Villanova University – to accept <a href="https://constitutioncenter.org/about/liberty-medal" target="_blank" rel="noopener">the 2026 <strong>Liberty Medal</strong></a> on July 3. The medal is presented annually by the <strong>National Constitution Center</strong> to persons “of courage and conviction who strive to secure the blessings of liberty for people around the globe.” The ceremony will be held outside the Old City museum on Independence Hall.</p>
624<h3>Bells Across PA</h3>
625<p>America250PA’sart series “<a href="https://america250pa.org/PPE:_Bells_Across_PA" target="_blank" rel="noopener"><strong>Bells Across PA</strong></a>” commemorates the 250th anniversary of the United States throughout Pennsylvania. Selected artists transform fiberglass bell sculptures that are on display in each of <strong>Pennsylvania</strong>’s 67 counties, including Philadelphia and the Countryside.</p>
626<blockquote class="instagram-media" style="background: #FFF; border: 0; border-radius: 3px; box-shadow: 0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width: 540px; min-width: 326px; padding: 0; width: calc(100% - 2px);" data-instgrm-captioned="" data-instgrm-permalink="https://www.instagram.com/reel/DTlNbKLDVEV/?utm_source=ig_embed&amp;utm_campaign=loading" data-instgrm-version="14">
627<div style="padding: 16px;">
628<p>&nbsp;</p>
629<div style="display: flex; flex-direction: row; align-items: center;">
630<div style="background-color: #f4f4f4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div>
631<div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;">
632<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div>
633<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div>
634</div>
635</div>
636<div style="padding: 19% 0;"></div>
637<div style="display: block; height: 50px; margin: 0 auto 12px; width: 50px;"></div>
638<div style="padding-top: 8px;">
639<div style="color: #3897f0; font-family: Arial,sans-serif; font-size: 14px; font-style: normal; font-weight: 550; line-height: 18px;">View this post on Instagram</div>
640</div>
641<div style="padding: 12.5% 0;"></div>
642<div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;">
643<div>
644<div style="background-color: #f4f4f4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div>
645<div style="background-color: #f4f4f4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div>
646<div style="background-color: #f4f4f4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div>
647</div>
648<div style="margin-left: 8px;">
649<div style="background-color: #f4f4f4; border-radius: 50%; flex-grow: 0; height: 20px;
649 width: 20px;"></div>
650<div style="width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg);"></div>
651</div>
652<div style="margin-left: auto;">
653<div style="width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div>
654<div style="background-color: #f4f4f4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div>
655<div style="width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div>
656</div>
657</div>
658<div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;">
659<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div>
660<div style="background-color: #f4f4f4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div>
661</div>
662<p>&nbsp;</p>
663<p style="color: #c9c8cd; font-family: Arial,sans-serif; font-size: 14px; line-height: 17px; margin-bottom: 0; margin-top: 8px; overflow: hidden; padding: 8px 0 7px; text-align: center; text-overflow: ellipsis; white-space: nowrap;"><a style="color: #c9c8cd; font-family: Arial,sans-serif; font-size: 14px; font-style: normal; font-weight: normal; line-height: 17px; text-decoration: none;" href="https://www.instagram.com/reel/DTlNbKLDVEV/?utm_source=ig_embed&amp;utm_campaign=loading" target="_blank" rel="noopener">A post shared by PHLCVB (@discover_phl)</a></p>
664</div>
665</blockquote>
666<p>
666<script async src="//www.instagram.com/embed.js"></script>
666</p>
667<h3><strong>Art Philly&#8217;s What Now</strong></h3>
668<p>Launching in May 2026, <a href="https://www.artphilly.org/what-we-do" target="_blank" rel="noopener"><strong>ArtPhilly</strong></a> presents <strong>What Now</strong>, a citywide, multidisciplinary arts festival. This collaborative festival will showcase Philadelphia artists and neighborhoods, sparking civic dialogue on the nation’s evolution since 1776. Through What Now, commissioned artists will interpret Philadelphia’s legacy, reflecting on the city’s complex history and future.</p>
669<span class="cb23-responsive-iframe"><iframe loading="lazy" title="YouTube video player" src="https://www.youtube.com/embed/mCKIM6p9Ryc?si=a9o1lcQ0-cJuVrkB" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></span>
670<h2><span id="the-eyes-of-the-sports-world-on-philly-in-2026" class="wysiwyg-anchor" data-title="Sports">The Eyes of the Sports World on Philly in 2026</span></h2>
671<p>2026 is already a giant year for sports in Philadelphia.</p>
672<p>It all started with the return of <strong>March Madness</strong> to Xfinity Mobile Arena, as Philly hosted Round of 64 and 32 games in the National Collegiate Athletic Association’s (NCAA) men’s basketball tournament on March 20 and 22. The annual <strong>Penn Relays</strong> followed, bringing track athletes of all ages to the University of Pennsylvania’s Franklin Field in late April.</p>
673<h3>PGA Championship, US Amateur Championship land in countryside</h3>
674<p>Just beyond the city limits, the <a href="https://www.pgachampionship.com/" target="_blank" rel="noopener">2026 <strong>PGA Championship</strong></a> is celebrated  a homecoming at <strong>Aronimink Golf Club</strong> in Newtown Square from May 11–17. One of golf’s four major men’s championships featured 150 of golf’s best trying to claim the title as the historic club hosted the championship for the first time since 1962.  Englishman Aaron Rai won the title.</p>
675<div id="attachment_58392" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-58392" loading="lazy" decoding="async" class="size-large wp-image-58392" src="https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1024x682.jpg" alt="A golfer raises his arms in triumph on the field." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/02/PGA-Championship.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-58392" class="wp-caption-text">LOUISVILLE, KY &#8211; MAY 19: Xander Schauffele celebrates winning the 2024 PGA Championship on the 18th hole during the final round of the PGA Championship at Valhalla Golf Club on Sunday, May 19, 2024 in Louisville, Kentucky. (Photo by Maddie Meyer/PGA of America)</p></div>
676<p>Later this summer, <strong>Merion Golf Club</strong> in Ardmore on the Main Line will host golf’s future stars for the <a href="https://championships.usga.org/usamateur.html" target="_blank" rel="noopener"><strong>United States Amateur Championship</strong></a> from August 10–16. The event brings together the nation’s top men’s amateur golfers for one of the sport’s most prestigious competitions. And, just like at the PGA, you can <a href="https://championships.usga.org/usamateur/2026/articles/126th-us-amateur-tickets-available-merion.html" target="_blank" rel="noopener">buy tickets</a> to line the fairways and greens to get up close to the action.</p>
677<h3>Soccer&#8217;s Best Coming to Philly for FIFA World Cup 26™</h3>
678<p>The beautiful game is on display in Philly this summer. The city is one of the North American host cities for the <a href="https://www.discoverphl.com/discover/fifa-world-cup/"><strong>FIFA World Cup 26™</strong></a><strong>,</strong> and will hold six matches at Lincoln Financial Field  (renamed <strong>Philadelphia Stadium</strong> for the duration of the tournament). The schedule includes five group stage matches featuring traditional world football powerhouses,<strong> Brazil</strong> and <strong>France</strong>, alongside Cote D’Ivoire, Ecuador, Haiti, Iraq, Curaçao, Croatia, and Ghana. The action wraps up (appropriately) with a July 4<sup>th</sup> Round of 16 match..</p>
679<div id="attachment_59203" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59203" loading="lazy" decoding="async" class="size-large wp-image-59203" src="https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1024x682.jpg" alt="The stands at Philadelphia Stadium are full for the FIFA World Cup" width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2026/06/FIFA-World-Cup-Ecuador-vs-Ivory-Coast-16.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59203" class="wp-caption-text">Ecuador v.s. Ivory Coast at Philadelphia Stadium</p></div>
680<h3>Philadelphia&#8217;s FIFA Fan Festival<strong>™</strong></h3>
681<p>Promising to be “unlike any other visitor experience in the United States in 2026,” <a href="https://phillyfwc26.com/fifa-fan-fest"><strong>Philadelphia’s FIFA Fan Festival</strong></a><strong>™</strong>
681 kicks its way into <strong>Fairmount Park</strong> with nearly six weeks of food, football, festivities, and free fun.  It takes place for the duration of the tournament, from Thursday, June 11, to Sunday, July 19, 2026, at <strong>Lemon Hill</strong> park. Registration for FREE entry to the festival <a href="https://www.eventim.com/artist/philadelphia-fifa-fan-festival/?affiliate=7FI" target="_blank" rel="noopener">is available online</a>.</p>
682<div id="attachment_59254" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59254" loading="lazy" decoding="async" class="size-large wp-image-59254" src="https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1024x682.jpg" alt="A France Fan watches the big screen at FIFA Fan Festival with his teamflag draped over him." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/FIFA-Fan-Festival-Philadelphia-15.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59254" class="wp-caption-text">FIFA Fan Festival Philadelphia</p></div>
683<p>We have your full guide to getting tickets, getting around during the tournament, <a href="https://www.discoverphl.com/blog-post/philadelphia-between-world-cup-matches/?_gl=1*1rq8hj9*_up*MQ..*_ga*MTcwMzI2ODY5My4xNzc3MDQ4NDQ5*_ga_YG74SVF2M6*czE3NzcwNDg0NDkkbzEkZzAkdDE3NzcwNDg0NDkkajYwJGwwJGgw">places to check out around the city</a>, and just how awesome this football city can be. We also have so you can get a taste of home while in Philly.</p>
684<h3>Baseball&#8217;s best swing into town for Mis-Summer Classic</h3>
685<p>What’s more American than baseball? <strong>Major League Baseball</strong>’s superstars are heading to Philadelphia for the 2026 <a href="https://www.mlb.com/phillies/fans/all-star-game" target="_blank" rel="noopener"><strong>MLB All-Star Game</strong></a> at <strong>Citizens Bank Park</strong>. The 96th Midsummer Classic takes place Tuesday, July 14, at the <strong>Phillies</strong>’ home ballpark. In the days leading up to the game, fans can enjoy the <strong>Capital One All-Star Village</strong> at the <strong>Pennsylvania Convention Center</strong>, the <strong>HBCU Swingman Classic</strong>, <strong>T-Mobile Home Run Derby</strong>, and other baseball-themed events at the ballpark as part of <a href="https://allstargame.com/" target="_blank" rel="noopener"><strong>MLB All-Star Week</strong>, starting July 10</a>. Our <a href="https://www.discoverphl.com/blog-post/mlb-all-star-2026/">guide to the week of baseball</a> will ensure you don’t miss any action.</p>
686<p><strong>Don’t have tickets, but don’t want to miss the action?</strong> Check out <a href="https://www.discoverphl.com/blog-post/top-philadelphia-sports-bars/">our list of some of the <strong>best Philly sports bars</strong></a> for fans to flock to.</p>
687<h3>Cyclists return to take on &#8216;The Wall&#8217;</h3>
688<p>The <a href="https://www.philadelphiacyclingclassic.com/" target="_blank" rel="noopener"><strong>Philadelphia Cycling Classic</strong></a> returns in August for the first time in a decade. The race starts and ends on the Benjamin Franklin Parkway, and will include the infamous hill in Manayunk known as “The Wall” that has humbled many a professional cyclist over the previous iterations of this favorite event simply know as “The Bike Race.”</p>
689<h2><span id="new-philadelphia-museums-art-and-exhibitions" class="wysiwyg-anchor" data-title="New Museums and Exhibitions">New Philadelphia Museums, Art, and Exhibitions</span></h2>
690<p>This might as well be called the year of exhibitions in Philadelphia. In 2026, Philly will debut landmark art, science, and history experiences that celebrate American creativity and the city’s legacy of storytelling.</p>
691<h3>A Nation of Artists</h3>
692<p>Leading the way is <a href="https://www.philamuseum.org/exhibitions/nation-artists" target="_blank" rel="noopener"><strong><em>A Nation of Artists</em></strong></a>, a joint exhibition from the <a href="https://philamuseum.org/" target="_blank" rel="noopener"><strong>Philadelphia Museum of Art</strong></a> and <a href="https://www.pafa.org/" target="_blank" rel="noopener"><strong>PAFA</strong></a> featuring over 1,000 works of art. The exhibition that runs until July 2027ncludes rarely seen pieces from the Middleton Family Collection, highlighting diverse artists – from Mary Cassatt to Thomas Eakins to Horace Pippin to Charles Willson Peale to Mark Rothko – and overlooked voices in American art history.</p>
693<p><img loading="lazy" decoding="async" class="alignnone size-large wp-image-59255" src="https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1024x682.jpg" alt="Museum visitors look at the paintings hung on the walls." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/04/Pennsylvania-Academy-of-Fine-Arts-2.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
694<h3>Focusing on Rocky at the Rocky Steps</h3>
695<p><a href="https://www.philamuseum.org/exhibitions/rising-up-rocky" target="_blank" rel="noopener"><strong><em>Rising Up: Rocky and the Making of Monuments</em></strong></a> puts the focus on the Philadelphia Museum of Art’s connection to “Rocky.” “In a moment of reckoning and reimagining for monuments, why do millions of people from around the world visit the Rocky 
695statue by the steps at the Philadelphia Museum of Art?” the art museum asks. The exhibit looks at millennia of artist’s putting a focus on boxing and celebrity. The values on display include “perseverance, spirit, and grit.”</p>
696<h3>Ministry of Awe</h3>
697<p>Expanding the city’s immersive art offerings, muralist Meg Saligman debuted <a href="https://moaphilly.org/" target="_blank" rel="noopener"><strong><em>Ministry of Awe</em></strong></a> inside a restored Old City bank. The six-story installation will blend visual art, sound, and live performance, inviting visitors to explore “awe” through interactive and evolving environments.</p>
698<h3>Icons of Independence</h3>
699<p>Enjoy the city of murals like you’ve never seen before. From the Liberty Bell, famous figures, the American flag, iconic architecture, and much more, <a href="https://muralarts.org/stories/announcing-mural-arts-spring-2026-tour-season/" target="_blank" rel="noopener"><strong>Mural Arts Philadelphia</strong> is offering</a> a <a href="https://muralarts.org/tours/" target="_blank" rel="noopener">Semiquincentennial tour</a> specifically geared to a “trail of historic symbols.”</p>
700<h3>Celebrating 50 Years of Music</h3>
701<p><a href="https://highmarkmann.org/" target="_blank" rel="noopener"><strong>The Highmark Mann Center for the Performing Arts</strong></a> in Fairmount Park is celebrating 50 years of music and performances with a summer slate of shows. The open-air venue is <a href="https://highmarkmann.org/50th-anniversary/journey-through-time" target="_blank" rel="noopener">looking back on its first 50 years</a> and focused on the future. Among the performances: On June 18, the <strong>Philadelphia Orchestra</strong> will celebrate <a href="https://highmarkmann.org/events/2026-06-18/50-years-of-music-in-the-park" target="_blank" rel="noopener"><em>50 Years of Music in the Park</em></a>, and on July 5, music legend <strong>Paul Simon</strong> will take the stage.</p>
702<h3>Universal Theme Parks come to Philly</h3>
703<p><a href="https://fi.edu/en" target="_blank" rel="noopener"><strong>The Franklin Institute</strong></a> is featuring the world premiere of <a href="https://fi.edu/en/exhibits-and-experiences/universal-theme-parks-exhibition" target="_blank" rel="noopener"><strong><em>Universal Theme Parks: The Exhibition</em></strong></a>. Opened in February, the premier exhibition showcases how Universal parks are created, premiering at the museum before traveling. Entirely designed, built, and toured by The Franklin Institute, the exhibit highlights key milestones of Universal Destinations and Experiences, from the early Studio Tram tour to the new Epic Universe. <a href="https://tickets.fi.edu/webstore/shop/viewitems.aspx?cg=11&amp;c=utp&amp;_gl=1*6zzq65*_gcl_au*MTgxNTMzNjYxMC4xNzYxODQ3OTE5" target="_blank" rel="noopener">Tickets are on sale now</a>.</p>
704<div id="attachment_59153" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-59153" loading="lazy" decoding="async" class="wp-image-59153 size-large" src="https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1024x682.jpg" alt="Some kids laugh a scream looking at a replica of a dinosaur in the Franklin Institute." width="1024" height="682" srcset="https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1024x682.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-1536x1024.jpg 1536w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2026/06/Universal-Parks_-The-Exhibtion-1.jpg 2000w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-59153" class="wp-caption-text">Photo courtesy of ©The Franklin Institute</p></div>
705<h3>
705Kids get a civics lesson</h3>
706<p>The <a href="https://www.pleasetouchmuseum.org/"><strong>Please Touch Museum</strong></a>, which occupies Memorial Hall—an art gallery built for America’s 1876 Centennial Exposition—now features for the Semiquincentennial, <a href="https://www.pleasetouchmuseum.org/discovering-democracy-2/" target="_blank" rel="noopener"><strong>Discovering Democracy</strong></a>. The play-based civics field trip aims to introduce children to the concept of democracy and how it plays a role in their everyday lives. For everyday visits, check out special exhibits featuring the prementioned Slinky, Daniel Tiger, and Paw Patrol.</p>
707<h3>Enter Bear Country</h3>
708<p>The <a href="https://www.philadelphiazoo.org/" target="_blank" rel="noopener"><strong>Philadelphia Zoo</strong></a> — the nation’s first zoo — has announced its largest exhibition project in over a decade with a $20M transformation of <a href="https://www.philadelphiazoo.org/bearcountry/" target="_blank" rel="noopener"><strong><em>Bear Country</em></strong></a>, set for debut in 2026. The expanded exhibit will feature the Zoo360 trail for bears, an off-exhibit space for cub rearing, and enhanced water features and landscaping.</p>
709<h3>The Declaration&#8217;s Journey</h3>
710<p>The <a href="https://www.amrevmuseum.org/" target="_blank" rel="noopener"><strong>Museum of the American Revolution</strong></a>‘s exhibition <a href="https://www.amrevmuseum.org/exhibits/the-declaration-s-journey" target="_blank" rel="noopener"><strong><em>The Declaration’s Journey</em></strong></a> celebrates the Declaration of Independence’s 250-year legacy and global influence on independence movements through rare artifacts and stories. Beyond the exhibit, which runs into January 2027, the museum is running <a href="https://www.amrevmuseum.org/2026-and-beyond" target="_blank" rel="noopener">public programming</a> to examine the idea of independence, revolution, and freedom.</p>
711<div id="attachment_57423" style="width: 1034px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-57423" loading="lazy" decoding="async" class="size-large wp-image-57423" src="https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-1024x683.jpg" alt="A woman and a child look over a Museum exhibit case" width="1024" height="683" srcset="https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-1024x683.jpg 1024w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-300x200.jpg 300w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-768x512.jpg 768w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1-860x573.jpg 860w, https://www.discoverphl.com/wp-content/uploads/2025/10/The-Declarations-Journey-Exhibition-6-1.jpg 1080w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-57423" class="wp-caption-text">©JPG Photography</p></div>
712<h3>Examining America&#8217;s Founding</h3>
713<p>The 250th birthday is a monumental milestone for the <a href="https://constitutioncenter.org/museum" target="_blank" rel="noopener"><strong>National Constitution Center</strong></a>. The Old City institution’s newest exhibit, <a href="https://constitutioncenter.org/museum/exhibits-programs/americas-founding" target="_blank" rel="noopener"><strong><em>America’s Founding</em></strong></a>, (and its expanded <strong>America’s Founding</strong> gallery), offers a dynamic, interactive exploration of the American Revolution and the creation of the Constitution and Bill of Rights. In addition to awarding the 2026 <strong>Liberty Medal</strong> to <strong>Pope Leo XIV </strong>(see above), the NCC has launched a comprehensive <a href="https://constitutioncenter.org/america-at-250" target="_blank" rel="noopener">digital toolkit</a> that examines the revolutionary ideas of 1776.</p>
714<h3>Untold moments of American Jews during the American Revolution</h3>
715<p>The <a href="https://theweitzman.org/" target="_blank" rel="noopener"><strong>Weitzman National Museum of American Jewish History</strong></a> kicked off its celebrations with a mock cannon salute to mark the opening of its latest exhibition, <a href="https://theweitzman.org/exhibitions/first-salute/" target="_blank" rel="noopener"><em>First Salute,</em></a> in April. This immersive experience tells the story of the tiny Caribbean island of St. Eustatius and its pivotal role in the Revolution. As the museum describes it: “Think Hamilton meets Pirates of the Caribbean.” Visitors can learn how Jewish merchants and Caribbean trade routes helped sustain the Continental Army during the fight for independence.</p>
716<h3>America&#8217;s first bank gets a new look</h3>
717<p>Following a massive restoration project, the <strong>First Bank of the United States</strong> is expected to reopen its doors to the public just ahead of the July 4th festivities. This architectural landmark will serve as a new museum space, focusing on the early American economy and the vision of Alexander Hamilton.</p>
718<p>Start planning a trip for you and your group to Philadelphia in 2026 today! Use our <a href="https://www.discoverphl.com/discover/">plan your trip</a> page to start organizing your Philadelphia adventure now.</p>
719        </div>
720    </div>
721</section>
722<style>
723 .cb05-related-content-columns .cb05-intro {position: relative; z-index: 3;}
724  .cb05-related-content-columns .cb05-intro a {font-size:18px !important; }
725    @media (max-width:767px) {
726    .cb05-related-content-columns .cb05-intro a {
727        font-size: 16px !important;
728    }
729    }
730
731
732</style>
733
734<section  class="p10-block cb05-related-content-columns green-background  has-wave-top has-wave-bottom  " role="group">
735            <svg class="green-wave-top" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
736            <path d="M1600 128.052H0V52.5518C0 52.5518 265 -50.9482 766.5 32.5518C1268 116.052 1600 52.5518 1600 52.5518V128.052Z" fill="#054E41" />
737        </svg>
738        <svg class="green-wave-top mobile" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="xMinYMax" fill="none" xmlns="http://www.w3.org/2000/svg">
739            <path d="M1600 128.052H0V52.5518C0 52.5518 265 -50.9482 766.5 32.5518C1268 116.052 1600 52.5518 1600 52.5518V128.052Z" fill="#054E41" />
740        </svg>
741            <div class="cb05-background-wrap">
742        <div class="cb05-headline-wrap green-background">
743
744                        
745        </div>
746                                   <div class="cb05-headline headline-default  green-background">
747                    <div class="frame">
748                        <h2 class="cb05-title"><span class="underline">Discover More</span></h2>                                            </div>
749                                    </div>
750                    
751
752        <div class="frame">
753            <div class="cb05-content green-background">
754                            <a href="https://www.discoverphl.com/blog-post/fifa-world-cup-2026-in-philadelphia/"  class="cb05-post related-content-card green-background">
755
756                                                <div class="related-content-post-img">
757                        <img src="https://www.discoverphl.com/wp-content/uploads/2024/02/Mexico-vs.-Germany-Game-12-scaled.jpg" alt="" />
758                    </div>
759                                                <div class="related-content-card-info">
760
761                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">FIFA World Cup 2026™ in Philadelphia</h3>                    <div class="related-content-description"><p>Philadelphia was selected as one of 11 Host Cities in the United States for FIFA World Cup 2026™ matches....</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
762                </div>
763                            </a>
764                    <a href="https://www.discoverphl.com/blog-post/mlb-all-star-2026/"  class="cb05-post related-content-card green-background">
765
766                                                <div class="related-content-post-img">
767                        <img src="https://www.discoverphl.com/wp-content/uploads/2024/06/2026-MLB-All-Star-Game-Logo-Reveal-Celebration.jpg" alt="" />
768                    </div>
769                                                <div class="related-content-card-info">
770
771                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">Philadelphia Hosts 2026 MLB All-Star Game : What to Know</h3>                    <div class="related-content-description"><p>The MLB All-Star Game is coming to Philadelphia in 2026, another can’t miss event during the nation’s semiquincentennial celebra...</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
772                </div>
773                            </a>
774                    <a href="https://www.discoverphl.com/blog-post/celebrate-july-fourth-in-philadelphia/"  class="cb05-post related-content-card green-background">
775
776                                                <div class="related-content-post-img">
777                        <img src="https://www.discoverphl.com/wp-content/uploads/2023/10/Fireworks-photo-credit-Ed-Newton-for-Live-Nation-2-1440x500x72.jpg" alt="" />
778                    </div>
779                                                <div class="related-content-card-info">
780
781                    <span class="post-label-placeholder"></span>                    <h3 class="related-content-post-heading">Celebrate July Fourth in Philadelphia</h3>                    <div class="related-content-description"><p>There is no better place to celebrate America’s birthday than in the city where it all began....</p><svg xmlns="http://www.w3.org/2000/svg" width="25" height="12" viewBox="0 0 25 12" fill="none"><path d="M25 6L15 0.226497V11.7735L25 6ZM0 7H16V5H0V7Z" fill="white"/></svg></div>
782                </div>
783                            </a>
784        
785            </div>
786        </div>
787    </div>
788            <svg class="green-wave-bottom" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="none" fill="none" xmlns="http://www.w3.org/2000/svg">
789            <path d="M0 0.0517578H1600V75.5518C1600 75.5518 1335 179.052 833.5 95.5518C332 12.0518 0 75.5518 0 75.5518V0.0517578Z" fill="#054E41" />
790        </svg>
791        <svg class="green-wave-bottom mobile" width="1600" height="129" viewBox="0 0 1600 129" preserveAspectRatio="xMidYMin" fill="none" xmlns="http://www.w3.org/2000/svg">
792            <path d="M0 0.0517578H1600V75.5518C1600 75.5518 1335 179.052 833.5 95.5518C332 12.0518 0 75.5518 0 75.5518V0.0517578Z" fill="#054E41" />
793        </svg>
794    
795</section></main>
796
797<footer role="contentinfo">
798    
798<script async src="https://js.adsrvr.org/up_loader.3.0.0.js"></script>
798
799    
799<script>
800        window.ttdConversionEventsLayer = window.ttdConversionEventsLayer || [];
801
802        function ttdConversionEvents() {
803            window.ttdConversionEventsLayer.push(arguments);
804        }
805
806        ttdConversionEvents("init", {
807            advertiserId: "7lhyd1g",
808            pixelIds: ["z17df3x"]
809        });
810
811        ttdConversionEvents("event", {
812            advertiserId: "7lhyd1g",
813            pixelIds: ["z17df3x"]
814        });
815    </script>
815
816
817    <div class="large-frame">
818
819
820        <div class="eb02-footer">
821
822            <div class="footer-left-col">
823                <div class="footer-contact-info">
824                    <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/pcvb-logo-full.svg" alt="PCVB Logo" />
825                    <p>1601 Market St, Suite 200
Philadelphia, PA 19103
826</p>                    <a href="tel:215-636-3300">215-636-3300</a>
827                </div>
828            </div>
829            <div class="footer-mid-col">
830                <ul>
831                    <li id="menu-item-6536" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6536"><a href="https://www.discoverphl.com/about/">About</a></li>
832<li id="menu-item-12550" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12550"><a href="https://www.discoverphl.com/contact-our-team/">Contact Our Team</a></li>
833<li id="menu-item-12551" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12551"><a href="https://www.discoverphl.com/about/employment/">Employment</a></li>
834<li id="menu-item-12549" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12549"><a href="https://www.discoverphl.com/about/phlcvb-board/">PHLCVB Board</a></li>
835<li id="menu-item-12547" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12547"><a href="https://www.discoverphl.com/about/phlcvb-foundation/">PHLCVB Foundation</a></li>
836<li id="menu-item-6538" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6538"><a href="https://www.discoverphl.com/press-room/">Press Room</a></li>
837<li id="menu-item-12548" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12548"><a href="https://www.discoverphl.com/about/research/">Research and Resources</a></li>
838                </ul>
839            </div>
840            <div class="footer-right-col">
841                <h2>Sign up for <em>Key to Meetings</em></h2>                <div class="callout-info">
842                    <p>Get exclusive news and updates in our monthly meetings newsletter.</p>                    <a href="https://discoverphl.com/newsletter-sign-up/" target="" class="btn-base light-blue arrow"><span>Sign Up</span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="9" viewBox="0 0 22 9" fill="none"><path d="M22 4.5L14.5 0.169873V8.83013L22 4.5ZM0 5.25H15.25V3.75H0V5.25Z" fill="#FF4D00"/></svg></a>                </div>
843
844                            </div>
845                            <div class="footer-partner-logos">
846                    <p>Strategic Partners</p>
847                    <div class="logos-wrap">
848                                                                                    <a href="https://www.paconvention.com/" class="partner-url" target="_self">
849                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/10/PCC-Large-White.png" alt="PCC logo" />
850                                                                    </a>
851                            
852                                                                                    <a href="https://www.visitpa.com/" class="partner-url" target="_self">
853                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/05/Full-Logo-One-Color-White.png" alt="Pennsylvania The Great American Getaway" />
854                                                                    </a>
855                            
856                                                                                    <a href="https://www.phila.gov/" class="partner-url" target="_self">
857                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/Group.png" alt="" />
858                                                                    </a>
859                            
860                                                                                    <a href="https://www.phl.org/" class="partner-url" target="_self">
861                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/10/Combined-logo-primary-white-2.png" alt="" />
862                                                                    </a>
863                            
864                                                                                    <a href="https://www.ovpm.org/city/philadelphia-united-states/" class="partner-url" target="_self">
865                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/World_Heritage-1.png" alt="" />
866                                                                    </a>
867                            
868                                                                                    <a href="https://www.visittheusa.com/" class="partner-url" target="_self">
869                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2025/09/VisitTheUSA_Wordmark_RGB_White-1-1.png" alt="Brand USA logo" />
870                                                                    </a>
871                            
872                                                                                    <a href="https://www.ustravel.org/" class="partner-url" target="_self">
873                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/US-Travel.png" alt="" />
874                                                                    </a>
875                            
876                                                                                    <a href="https://www.visitphilly.com/" class="partner-url" target="_self">
877                                                                            <img src="https://www.discoverphl.com/wp-content/uploads/2024/04/Visit-1.png" alt="" />
878                                                                    </a>
879                            
880                                            </div>
881                </div>
882                    </div>
883        <div class="sub-footer">
884
885            <p class="copyright">&copy; 2026. Philadelphia Convention & Visitors Bureau</p>
886            <ul><li id="menu-item-6539" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-6539"><span class="seperator">|</span><a rel="privacy-policy" href="https://www.discoverphl.com/privacy-policy/">Privacy Policy</a></li>
887<li id="menu-item-54452" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54452"><span class="seperator">|</span><a href="https://www.discoverphl.com/terms/">Terms</a></li>
888                <li class="menu-item"><span class="seperator">|</span><a href="https://push10.com" rel="noopener" target="_blank"> Web Design by Push10 Branding Agency.</a></li>
889            </ul>
890            <div class="sm-icons-links">
891
892                                        <a href="https://www.facebook.com/discoverPHL" target="_blank" aria-label="fb">
893                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/facebook.png" alt="facebook account link" />
894                        </a>
895                                        <a href="https://www.instagram.com/discover_PHL/" target="_blank" aria-label="ig">
896                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/instagram_logo.png" alt="instagram account link" />
897                        </a>
898                                        <a href="https://www.linkedin.com/company/56174" target="_blank" aria-label="li">
899                            <img src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/imgs/linkedin.png" alt="linkedin account link" />
900                        </a>
901                
902            </div>
903        </div>
904    </div>
905</footer>
906
907	<div id="pcvbNewsletterPopout" data-targetdepth="30">
908		<button id="pcvbNewsletterPopoutClose" aria-label="close pop-up"></button>
909					<h2>Key to Meetings</h2>
910							<div class="description">Sign up exclusive news and updates in our monthly meetings newsletter.</div>
911				<div class="popout-form-container">
912					
913			
914			<form action="" method="post" name="frm_8" class="pcvbForm" onsubmit="return svcrm.formBuilderScripts.validateForm(this);">
915				<input id="formid" name="formid" type="hidden" value="8">
916				<input id="groupid" name="groupid" type="hidden" value="5">
917				<input id="isSubmitted" name="isSubmitted" value="1"  type="hidden">
918				
919				
920					<h3>Contact Information</h3>
921					
922								<div id="rowcontainer_contact_fname" class="pcvbFormRow">
923									
924											<div id="labelcontainer_contact_fname" class="pcvbFormLabelContainer">
925												<div id="td_contact_fname">
926													<label id="label_contact_fname" for="contact_fname" class="pcvbFormLabel pcvbFormLabelRequired">First Name*:</label>
927													
928												</div>
929											</div>	
930										
931									<div id="fieldcontainer_contact_fname" class="pcvbFormFieldContainer">
932										
933			
934			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_fname" name="contact_fname" type="text" maxlength="50" size="25" value="">
935			
936									</div>									
937								</div>
938							
939								<div id="rowcontainer_contact_lname" class="pcvbFormRow">
940									
941											<div id="labelcontainer_contact_lname" class="pcvbFormLabelContainer">
942												<div id="td_contact_lname">
943													<label id="label_contact_lname" for="contact_lname" class="pcvbFormLabel pcvbFormLabelRequired">Last Name*:</label>
944													
945												</div>
946											</div>	
947										
948									<div id="fieldcontainer_contact_lname" class="pcvbFormFieldContainer">
949										
950			
951			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_lname" name="contact_lname" type="text" maxlength="50" size="25" value="">
952			
953									</div>									
954								</div>
955							
956								<div id="rowcontainer_contact_email" class="pcvbFormRow">
957									
958											<div id="labelcontainer_contact_email" class="pcvbFormLabelContainer">
959												<div id="td_contact_email">
960													<label id="label_contact_email" for="contact_email" class="pcvbFormLabel pcvbFormLabelRequired">Email*:</label>
961													
962												</div>
963											</div>	
964										
965									<div id="fieldcontainer_contact_email" class="pcvbFormFieldContainer">
966										
967			
968			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_email" name="contact_email" type="text" maxlength="200" size="25" value="" onblur="svcrm.formBuilderScripts.checkEmail(this); ">
969			
970									</div>									
971								</div>
972							
973								<div id="rowcontainer_contact_title" class="pcvbFormRow">
974									
975											<div id="labelcontainer_contact_title" class="pcvbFormLabelContainer">
976												<div id="td_contact_title">
977													<label id="label_contact_title" for="contact_title" class="pcvbFormLabel pcvbFormLabelRequired">Title*:</label>
978													
979												</div>
980											</div>	
981										
982									<div id="fieldcontainer_contact_title" class="pcvbFormFieldContainer">
983										
984			
985			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_title" name="contact_title" type="text" maxlength="100" size="25" value="">
986			
987									</div>									
988								</div>
989							
990								<div id="rowcontainer_contact_company" class="pcvbFormRow">
991									
992											<div id="labelcontainer_contact_company" class="pcvbFormLabelContainer">
993												<div id="td_contact_company">
994													<label id="label_contact_company" for="contact_company" class="pcvbFormLabel pcvbFormLabelRequired">Company*:</label>
995													
996												</div>
997											</div>	
998										
999									<div id="fieldcontainer_contact_company" class="pcvbFormFieldContainer">
1000										
1001			
1002			<input class="pcvbFormField pcvbFormFieldRequired" id="contact_company" name="contact_company" type="text" maxlength="200" size="25" value="">
1003			
1004									</div>									
1005								</div>
1006							
1007								<div id="rowcontainer_udf_180" class="pcvbFormRow">
1008									
1009											<div id="labelcontainer_udf_180" class="pcvbFormLabelContainer">
1010												<div id="td_udf_180">
1011													<label id="label_udf_180" for="udf_180" class="pcvbFormLabel pcvbFormLabelRequired">Industry*:</label>
1012													
1013												</div>
1014											</div>	
1015										
1016									<div id="fieldcontainer_udf_180" class="pcvbFormFieldContainer">
1017															
1018					<select class="pcvbFormField pcvbFormFieldRequired"  id="udf_180" name="udf_180" >
1019					<option value="">--None--</option> 
1020					<option value="815">Other</option>
1021					
1022					<option value="814">Affinity/Hobby</option>
1023					
1024					<option value="813">Fraternal</option>
1025					
1026					<option value="812">Religious</option>
1027					
1028					<option value="811">Tech</option>
1029					
1030					<option value="810">Finance</option>
1031					
1032					<option value="809">Education</option>
1033					
1034					<option value="808">Healthcare</option>
1035					
1036					</select>
1037				
1038									</div>									
1039								</div>
1040							
1041					<h3>Privacy Policy</h3>
1042					
1043								<div id="rowcontainer_udf_114" class="pcvbFormRow">
1044									
1045													<div id="labelcontainer_udf_114" class="pcvbFormLabelContainer">
1046														<div id="td_udf_114">
1047															<label id="label_udf_114"  class="pcvbFormLabel pcvbFormLabelRequired">I agree to the <a href="https://www.discoverphl.com/about-phlcvb/privacy-policy/" target="_blank" rel="noopener">Privacy Policy</a>*:</label>
1048															
1049														</div>
1050													</div>	
1051												
1052									<div id="fieldcontainer_udf_114" class="pcvbFormFieldContainer">
1053										
1054						<fieldset style='border:0px;'>
1055							<legend style="display:none;">udf_114</legend>
1056					<input  class="pcvbFormField pcvbFormFieldRequired"  id="udf_114_1" name="udf_114" type="radio" value="1"><label  class="pcvbFormLabel pcvbFormLabelRequired"  for="udf_114_1"> Yes </label>
1057					<input  class="pcvbFormField pcvbFormFieldRequired"  id="udf_114_0" name="udf_114" type="radio" value="0"><label class="pcvbFormLabel pcvbFormLabelRequired"  for="udf_114_0"> No </label>
1058						</fieldset>
1059					
1060									</div>									
1061								</div>
1062							
1063
1064				<p class="pcvbFormHint formreq text-center">* Indicates a required field.</p>
1065				<hr size="1" color="cccccc" width="100%">
1066				<div class="pcvbFormCaptchaRow">
1067					<div class="pcvbFormCaptchaContainer">
1068						
1069					</div>
1070				</div>
1071
1072				<hr size="1" color="cccccc" width="100%">
1073				<div class="pcvbFormButtonRow">
1074					<div class="pcvbFormButtonContainer">
1075						<label for="savefrm_button" class="label_hidden">Submit</label>
1076						<input class="pcvbFormButton" id="savefrm_button" name="savefrm" type="Submit" value="Submit">
1077						<label for="resetfrm_button" class="label_hidden">Reset</label>
1078						<input class="pcvbFormButton" id="resetfrm_button" type="Reset" value="Reset">
1079					</div>
1080				</div>
1081			</form>
1082
1083			
1084			
1084<script type="text/javascript">
1085				/*	IP Address Tracking enabled.  IP addresses are being tracked in order to ensure compliance with local privacy laws	*/
1086				var __sv = __sv || {};
1087				
1088					
1089				(function(){
1090					function ___onload_function(){
1091						
1092					};
1093					
1094					
1095					
1096					if(window.addEventListener){
1097						window.addEventListener('load',___onload_function,false);
1098					}else if(window.attachEvent){
1099						window.attachEvent('onload',___onload_function);
1100					}
1101				})();
1102			</script>
1102
1103			
1104			 
1104<script type="text/javascript">
1105			function AoProcessForm(frm){
1106				var changeSaveFrmButtonTypeAndSubmit = function(frm){
1107					try{
1108						if(frm && 'savefrm' in frm && 'type' in frm.savefrm){
1109							frm.savefrm.style.opacity = '0';
1110							frm.savefrm.setAttribute("type","input");
1111						}
1112						frm.submit();
1113					}catch(e){
1114						if(console && 'log' in console){
1115							console.log("Error trying to pass the save button", e);
1116						}
1117					}
1118				};
1119				
1120					var serializeForm = function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name==="" || form.elements[i].name==="g-recaptcha-response"){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};
1121					var iframe = document.createElement('iframe');
1122
1123					iframe.id = "3A5B3792_A965_40C3_0FFA87A571AA4009";
1124					iframe.style.width = '0';
1125					iframe.style.height = '0';
1126					iframe.style.position='absolute';
1127					iframe.src= 'https://marketing.discoverphl.com/acton/eform/45609/d1c253ff-8d0f-4769-b0a1-c61bc9cc4b23/d-ext-0001';
1128					iframe.src += '?' + serializeForm(frm);
1129					document.body.appendChild(iframe);
1130
1131					
1132					try{
1133						var elm = document.getElementById("3A5B3792_A965_40C3_0FFA87A571AA4009");
1134						var hasLoaded = false;
1135						var timesChecked = 0;
1136
1137						var checkForLoadedInterval = window.setInterval(function(){
1138							timesChecked++;
1139							if(timesChecked > 3 || hasLoaded){
1140								window.clearInterval(checkForLoadedInterval);
1141								if(!hasLoaded){
1142									
1143									try{
1144										if(elm.removeEventListener){
1145											elm.removeEventListener("load", weHaveLoadedFunc);
1146										}else if(elm.detachEvent){
1147											elm.detachEvent("onload",weHaveLoadedFunc)
1148										}
1149									}catch(e){}
1150
1151									changeSaveFrmButtonTypeAndSubmit(frm);
1152								}
1153							}
1154						},1000);
1155
1156						var weHaveLoadedFunc = function(){
1157							hasLoaded = true;
1158							
1159							try{window.clearInterval(checkForLoadedInterval);}catch(e){console.log("Error clearing interval",e);}
1160							changeSaveFrmButtonTypeAndSubmit(frm);
1161						}
1162												
1163						if (elm.addEventListener) {
1164							elm.addEventListener("load",weHaveLoadedFunc, false);
1165						} else if (elm.attachEvent) {
1166							elm.attachEvent("onload", weHaveLoadedFunc);
1167						}
1168					}catch(e){
1169						
1170						changeSaveFrmButtonTypeAndSubmit(frm);
1171					}
1172				
1173			}
1174		</script>
1174
1175			
1175<script type="text/javascript">
1176				(function(){
1177	
1178					svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1179					svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1180	
1181						svcrm.formBuilderScripts.chkBoxes = function(fld){
1182						var i = 0;
1183						var cnt = 0;					
1184						if(fld.length==undefined && fld.checked == true) return true;
1185						for (i = 0; i < fld.length; i++) {
1186							if (fld[i].checked) {
1187								cnt++;
1188								break;
1189							}
1190						}
1191						if (cnt == 0)
1192							return false;
1193						else
1194							return true;
1195					};
1196	
1197					svcrm.formBuilderScripts.updReq = function(){
1198						var i = 0;
1199						var st = new Array();
1200						var zp = new Array();
1201	
1202						
1203	
1204						return true;
1205					};
1206	
1207					// removes the leading and trailing spaces from a string,
1208					// similar to the java.lang.String.trim() function
1209					// added by lturetsky, taken from http://www.voy.com/1888/58.html
1210					svcrm.formBuilderScripts.trim = function(st){
1211						var len = st.length
1212						var begin = 0, end = len - 1;
1213						while (st.charAt(begin) == " " && begin < len) {
1214							begin++;
1215						}
1216						while (st.charAt(end) == " " && begin < end) {
1217							end--;
1218						}
1219						return st.substring(begin, end+1);
1220					};
1221	
1222	
1223					svcrm.formBuilderScripts.validateForm = function(frm){
1224						var errMsg = '', reqMsg = '', fmtMsg = '';
1225	
1226						
1227							
1228										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_fname').value).length == 0)
1229									
1230										reqMsg += '    First Name\n';
1231								
1232										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_lname').value).length == 0)
1233									
1234										reqMsg += '    Last Name\n';
1235								
1236										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_email').value).length == 0)
1237									
1238										reqMsg += '    Email\n';
1239								
1240									if (!svcrm.formBuilderScripts.checkEmail(document.getElementById('contact_email')))
1241										fmtMsg += '    Please enter a valid email address for: Email\n';
1242								
1243										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_title').value).length == 0)
1244									
1245										reqMsg += '    Title\n';
1246								
1247										if (svcrm.formBuilderScripts.trim(document.getElementById('contact_company').value).length == 0)
1248									
1249										reqMsg += '    Company\n';
1250								
1251									if (document.getElementById('udf_180').selectedIndex == 0)
1252									
1253										reqMsg += '    Industry\n';
1254								
1255									if (!document.getElementById('udf_114_1').checked && !(document.getElementById('udf_114_0').checked))
1256									
1257										reqMsg += '    I agree to the <a href=\"https://www.discoverphl.com/about-phlcvb/privacy-policy/\" target=\"_blank\" rel=\"noopener\">Privacy Policy</a>\n';
1258								
1259	
1260						//only validate the captcha if it is there
1261						var cdElm = document.getElementById('code');
1262						if (cdElm !== null && cdElm.value.length == 0){
1263							reqMsg += '    Image Code\n';
1264						}
1265						
1266						//allow a hook in for custom validations
1267						var customValidations = svcrm.formBuilderScripts.processCustomValidations();
1268						if('reqMsg' in customValidations && customValidations.reqMsg.length){
1269							reqMsg += customValidations.reqMsg;
1270						}
1271						if('fmtMsg' in customValidations && customValidations.fmtMsg.length){
1272							fmtMsg += customValidations.fmtMsg;
1273						}
1274						
1275						return svcrm.formBuilderScripts.processValidationMessages(reqMsg,fmtMsg,frm);
1276					};
1277					
1278					//core will do nothing but gives devs a hook
1279					svcrm.formBuilderScripts.processCustomValidations = function(){
1280						var rtnvar = {reqMsg:'',fmtMsg:''};
1281						return rtnvar;
1282					};
1283					
1284					//might as well split this out so customizations can be made
1285					svcrm.formBuilderScripts.processValidationMessages = function(reqMsg,fmtMsg,frm){
1286						var errMsg = '';
1287						Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=true});
1288						if ((reqMsg.length + fmtMsg.length) != 0) {
1289							errMsg = 'This information cannot be sent at this time!\n\n';
1290						if (reqMsg.length > 0)
1291							errMsg += 'The following fields are required!\n' + reqMsg + '\n';
1292	
1293						if (fmtMsg.length > 0)
1294							errMsg += 'The following information is invalid!\n' + fmtMsg + '\n';							
1295	
1296							svcrm.formBuilderScripts.showValidationErrorMsg(errMsg);
1297							Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=false});
1298							return false;
1299						}else{
1300							AoProcessForm(frm);
1301							return false;
1302						}
1303					};
1304					
1305					//why not :)
1306					svcrm.formBuilderScripts.showValidationErrorMsg = function(msg){
1307						alert(msg);
1308					};
1309	
1310					svcrm.formBuilderScripts.updateDOB = function(monthFld,dayFld) {
1311						var days = 0;
1312						if (monthFld.selectedIndex == 0) return true;
1313									
1314						switch (monthFld.selectedIndex) {
1315							case 2:
1316								days = 30;
1317								break;
1318							case 4:
1319							case 6:
1320							case 9:
1321							case 11:
1322								days = 31;
1323								break;
1324							default:
1325								days = 32;
1326								break;
1327						}
1328						
1329						if (dayFld.options[dayFld.selectedIndex].value >= days)
1330							dayFld.selectedIndex = days - 1;
1331						
1332						dayFld.length = days;
1333						for (var i = 28; i < days; i++) {
1334							dayFld.options[i].value = String(i);
1335							dayFld.options[i].text = String(i);	
1336						}
1337						return true;
1338					}
1339	
1340				})();
1341			</script>
1341
1342		
1343			
1343<script type="text/javascript">
1344	
1345				
1346					(function(){
1347						svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1348						svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1349				
1350	
1351					window.svcrm.formBuilderScripts.states = [{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AFGHANISTAN","COUNTRYID":239},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ÅLAND ISLANDS","COUNTRYID":272},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ALBANIA","COUNTRYID":1},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ALGERIA","COUNTRYID":2},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AMERICAN SAMOA","COUNTRYID":3},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANDORRA","COUNTRYID":4},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANGOLA","COUNTRYID":250},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANGUILLA","COUNTRYID":5},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANTARCTICA","COUNTRYID":256},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ANTIGUA AND BARBUDA","COUNTRYID":6},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARGENTINA","COUNTRYID":7},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARMENIA","COUNTRYID":251},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ARUBA","COUNTRYID":8},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;NSW&#x1F;NSW - New South Wales &#x1F;Qld&#x1F;Qld - Queensland &#x1F;SA&#x1F;SA - South Australia &#x1F;Tas&#x1F;Tas - Tasmania &#x1F;Vic&#x1F;Vic - Victoria &#x1F;WA&#x1F;WA - Western Australia","COUNTRYNAME":"AUSTRALIA","COUNTRYID":9},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AUSTRIA","COUNTRYID":10},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"AZERBAIJAN","COUNTRYID":252},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BAHAMAS","COUNTRYID":12},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BAHRAIN","COUNTRYID":13},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BANGLADESH","COUNTRYID":14},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BARBADOS","COUNTRYID":15},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELARUS","COUNTRYID":18},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELGIUM","COUNTRYID":16},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BELIZE","COUNTRYID":17},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BENIN","COUNTRYID":19},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BERMUDA","COUNTRYID":20},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BHUTAN","COUNTRYID":240},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOLIVIA, PLURINATIONAL STATE OF","COUNTRYID":21},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOSNIA AND HERZEGOVINA","COUNTRYID":23},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOTSWANA","COUNTRYID":24},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BOUVET ISLAND","COUNTRYID":253},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRAZIL","COUNTRYID":25},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRITISH INDIAN OCEAN TERRITORY","COUNTRYID":278},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BRUNEI DARUSSALAM","COUNTRYID":27},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BULGARIA","COUNTRYID":28},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BURKINA FASO","COUNTRYID":29},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"BURUNDI","COUNTRYID":30},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAMBODIA","COUNTRYID":31},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAMEROON","COUNTRYID":32},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;AB&#x1F;AB - Alberta &#x1F;BC&#x1F;BC - British Columbia &#x1F;MB&#x1F;MB - Manitoba &#x1F;NB&#x1F;NB - New Brunswick &#x1F;NL&#x1F;NL - Newfoundland and Labrador &#x1F;NT&#x1F;NT - Northwest Territory &#x1F;NS&#x1F;NS - Nova Scotia &#x1F;NU&#x1F;NU - Nunavut &#x1F;ON&#x1F;ON - Ontario &#x1F;PE&#x1F;PE - Prince Edward Island &#x1F;QC&#x1F;QC - Quebec &#x1F;SK&#x1F;SK - Saskatchewan &#x1F;YT&#x1F;YT - Yukon","COUNTRYNAME":"CANADA","COUNTRYID":33},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CANARY ISLANDS","COUNTRYID":34},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAPE VERDE","COUNTRYID":35},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CAYMAN ISLANDS","COUNTRYID":36},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CENTRAL AFRICAN REPUBLIC","COUNTRYID":37},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHAD","COUNTRYID":38},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;SAN&#x1F;SAN - Santiago","COUNTRYNAME":"CHILE","COUNTRYID":40},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHINA","COUNTRYID":41},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CHRISTMAS ISLAND","COUNTRYID":254},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COCOS (KEELING) ISLANDS","COUNTRYID":241},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COLOMBIA","COUNTRYID":42},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COMOROS","COUNTRYID":255},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CONGO","COUNTRYID":43},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CONGO, THE DEMOCRATIC REPUBLIC OF THE","COUNTRYID":274},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COOK ISLANDS","COUNTRYID":44},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"COSTA RICA","COUNTRYID":45},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CÔTE D'IVOIRE","COUNTRYID":94},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CROATIA","COUNTRYID":46},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CUBA","COUNTRYID":242},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CURACAO","COUNTRYID":47},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CYPRUS","COUNTRYID":48},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"CZECH REPUBLIC","COUNTRYID":49},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DENMARK","COUNTRYID":50},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DJIBOUTI","COUNTRYID":51},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DOMINICA","COUNTRYID":52},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"DOMINICAN REPUBLIC","COUNTRYID":53},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ECUADOR","COUNTRYID":54},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EGYPT","COUNTRYID":55},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EL SALVADOR","COUNTRYID":56},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"EQUATORIAL GUINEA","COUNTRYID":58},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ERITREA","COUNTRYID":59},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ESTONIA","COUNTRYID":60},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ETHIOPIA","COUNTRYID":61},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FALKLAND ISLANDS (MALVINAS)","COUNTRYID":258},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FAROE ISLANDS","COUNTRYID":62},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FIJI","COUNTRYID":64},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FINLAND","COUNTRYID":65},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRANCE","COUNTRYID":66},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH GUIANA","COUNTRYID":67},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH POLYNESIA","COUNTRYID":197},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"FRENCH SOUTHERN TERRITORIES","COUNTRYID":283},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GABON","COUNTRYID":69},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GAMBIA","COUNTRYID":70},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GEORGIA","COUNTRYID":71},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GERMANY","COUNTRYID":72},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GHANA","COUNTRYID":73},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GIBRALTAR","COUNTRYID":74},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GREECE","COUNTRYID":75},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GREENLAND","COUNTRYID":76},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GRENADA","COUNTRYID":77},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUADELOUPE","COUNTRYID":78},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUAM","COUNTRYID":79},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUATEMALA","COUNTRYID":80},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUERNSEY","COUNTRYID":275},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUINEA","COUNTRYID":81},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUINEA-BISSAU","COUNTRYID":82},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"GUYANA","COUNTRYID":83},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HAITI","COUNTRYID":84},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HEARD ISLAND AND MCDONALD ISLANDS","COUNTRYID":276},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HOLY SEE (VATICAN CITY STATE)","COUNTRYID":236},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HONDURAS","COUNTRYID":86},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HONG KONG","COUNTRYID":87},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"HUNGARY","COUNTRYID":88},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ICELAND","COUNTRYID":89},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"INDIA","COUNTRYID":90},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"INDONESIA","COUNTRYID":91},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRAN, ISLAMIC REPUBLIC OF","COUNTRYID":235},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRAQ","COUNTRYID":238},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"IRELAND","COUNTRYID":234},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ISLE OF MAN","COUNTRYID":277},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ISRAEL","COUNTRYID":92},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ITALY","COUNTRYID":93},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JAMAICA","COUNTRYID":95},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JAPAN","COUNTRYID":96},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JERSEY","COUNTRYID":279},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"JORDAN","COUNTRYID":97},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KAZAKHSTAN","COUNTRYID":98},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KENYA","COUNTRYID":99},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KIRIBATI","COUNTRYID":100},{"STATES":"&#x1F;**&#x1F;
1351** - **","COUNTRYNAME":"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF","COUNTRYID":264},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KOREA, REPUBLIC OF","COUNTRYID":177},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KOSRAE","COUNTRYID":101},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KUWAIT","COUNTRYID":102},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"KYRGYZSTAN","COUNTRYID":103},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LAO PEOPLE'S DEMOCRATIC REPUBLIC","COUNTRYID":104},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LATVIA","COUNTRYID":105},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LEBANON","COUNTRYID":106},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LESOTHO","COUNTRYID":107},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIBERIA","COUNTRYID":108},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIBYAN ARAB JAMAHIRIYA","COUNTRYID":259},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LIECHTENSTEIN","COUNTRYID":109},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LITHUANIA","COUNTRYID":110},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"LUXEMBOURG","COUNTRYID":111},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MACAO","COUNTRYID":112},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF","COUNTRYID":113},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MADAGASCAR","COUNTRYID":114},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALAWI","COUNTRYID":116},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALAYSIA","COUNTRYID":117},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALDIVES","COUNTRYID":118},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALI","COUNTRYID":119},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MALTA","COUNTRYID":120},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;MH&#x1F;MH - Marshall Islands","COUNTRYNAME":"MARSHALL ISLANDS","COUNTRYID":121},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MARTINIQUE","COUNTRYID":122},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAURITANIA","COUNTRYID":123},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAURITIUS","COUNTRYID":124},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MAYOTTE","COUNTRYID":260},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MEXICO","COUNTRYID":125},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MICRONESIA, FEDERATED STATES OF","COUNTRYID":63},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOLDOVA, REPUBLIC OF","COUNTRYID":126},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONACO","COUNTRYID":127},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONGOLIA","COUNTRYID":261},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONTENEGRO","COUNTRYID":115},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MONTSERRAT","COUNTRYID":128},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOROCCO","COUNTRYID":129},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MOZAMBIQUE","COUNTRYID":130},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"MYANMAR","COUNTRYID":131},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NAMIBIA","COUNTRYID":132},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NAURU","COUNTRYID":262},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEPAL","COUNTRYID":133},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NETHERLANDS","COUNTRYID":134},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NETHERLANDS ANTILLES","COUNTRYID":135},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEW CALEDONIA","COUNTRYID":136},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NEW ZEALAND","COUNTRYID":137},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NICARAGUA","COUNTRYID":138},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIGER","COUNTRYID":139},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIGERIA","COUNTRYID":140},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NIUE","COUNTRYID":263},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORFOLK ISLAND","COUNTRYID":141},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORTHERN MARIANA ISLANDS","COUNTRYID":143},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"NORWAY","COUNTRYID":144},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"OMAN","COUNTRYID":145},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PAKISTAN","COUNTRYID":146},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PALAU","COUNTRYID":147},{"STATES":"&#x1F;**&#x1F;
1351** - **","COUNTRYNAME":"PALESTINIAN TERRITORY, OCCUPIED","COUNTRYID":281},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PANAMA","COUNTRYID":148},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PAPUA NEW GUINEA","COUNTRYID":149},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PARAGUAY","COUNTRYID":150},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PERU","COUNTRYID":151},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PHILIPPINES","COUNTRYID":152},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PITCAIRN","COUNTRYID":265},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"POLAND","COUNTRYID":153},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PONAPE","COUNTRYID":154},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PORTUGAL","COUNTRYID":155},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"PUERTO RICO","COUNTRYID":156},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"QATAR","COUNTRYID":157},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RÉUNION","COUNTRYID":160},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ROMANIA","COUNTRYID":161},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RUSSIAN FEDERATION","COUNTRYID":163},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"RWANDA","COUNTRYID":164},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SABA","COUNTRYID":165},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT BARTHÉLEMY","COUNTRYID":273},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT HELENA","COUNTRYID":245},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT KITTS AND NEVIS","COUNTRYID":185},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT LUCIA","COUNTRYID":186},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT MARTIN","COUNTRYID":280},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT PIERRE AND MIQUELON","COUNTRYID":269},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAINT VINCENT AND THE GRENADINES","COUNTRYID":190},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAIPAN","COUNTRYID":166},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAMOA","COUNTRYID":228},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAN MARINO","COUNTRYID":266},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAO TOME AND PRINCIPE","COUNTRYID":267},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SAUDI ARABIA","COUNTRYID":167},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SCOTLAND","COUNTRYID":168},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SENEGAL","COUNTRYID":169},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SERBIA","COUNTRYID":284},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SEYCHELLES","COUNTRYID":170},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SIERRA LEONE","COUNTRYID":171},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SINGAPORE","COUNTRYID":172},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SLOVAKIA","COUNTRYID":173},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SLOVENIA","COUNTRYID":174},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOLOMON ISLANDS","COUNTRYID":175},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOMALIA","COUNTRYID":244},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOUTH AFRICA","COUNTRYID":176},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS","COUNTRYID":268},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SPAIN","COUNTRYID":178},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SRI LANKA","COUNTRYID":179},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. BARTHELEMY","COUNTRYID":180},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. CHRISTOPHER","COUNTRYID":181},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. CROIX","COUNTRYID":182},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. EUSTATIUS","COUNTRYID":183},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. JOHN","COUNTRYID":184},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. MAARTEN","COUNTRYID":187},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. MARTIN","COUNTRYID":188},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ST. THOMAS","COUNTRYID":189},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SUDAN","COUNTRYID":191},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SURINAME","COUNTRYID":192},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SVALBARD AND JAN MAYEN","COUNTRYID":282},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWAZILAND","COUNTRYID":193},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWEDEN","COUNTRYID":194},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SWITZERLAND","COUNTRYID":195},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"SYRIAN ARAB REPUBLIC","COUNTRYID":196},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TAIWAN, PROVINCE OF CHINA","COUNTRYID":198},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TAJIKISTAN","COUNTRYID":199},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TANZANIA, UNITED REPUBLIC OF","COUNTRYID":200},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"THAILAND","COUNTRYID":201},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TIMOR-LESTE","COUNTRYID":257},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TINIAN","COUNTRYID":202},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TOGO","COUNTRYID":203},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TOKELAU","COUNTRYID":270},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TONGA","COUNTRYID":204},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TORTOLA","COUNTRYID":205},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TRINIDAD AND TOBAGO","COUNTRYID":206},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TRUK","COUNTRYID":207},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TUNISIA","COUNTRYID":208},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKEY","COUNTRYID":209},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKMENISTAN","COUNTRYID":271},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TURKS AND CAICOS ISLANDS","COUNTRYID":210},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"TUVALU","COUNTRYID":211},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UGANDA","COUNTRYID":212},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UKRAINE","COUNTRYID":213},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNION ISLAND","COUNTRYID":214},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED ARAB EMIRATES","COUNTRYID":215},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED KINGDOM","COUNTRYID":57},{"STATES":"&#x1F;**&#x1F;** - ** &#x1F;AL&#x1F;AL - Alabama &#x1F;AK&#x1F;AK - Alaska &#x1F;AZ&#x1F;AZ - Arizona &#x1F;AR&#x1F;AR - Arkansas &#x1F;CA&#x1F;CA - California &#x1F;CO&#x1F;CO - Colorado &#x1F;CT&#x1F;CT - Connecticut &#x1F;DE&#x1F;DE - Delaware &#x1F;DC&#x1F;DC - District of Columbia &#x1F;FL&#x1F;FL - Florida &#x1F;GA&#x1F;GA - Georgia &#x1F;HI&#x1F;HI - Hawaii &#x1F;ID&#x1F;ID - Idaho &#x1F;IL&#x1F;IL - Illinois &#x1F;IN&#x1F;IN - Indiana &#x1F;IA&#x1F;IA - Iowa &#x1F;KS&#x1F;KS - Kansas &#x1F;KY&#x1F;KY - Kentucky &#x1F;LA&#x1F;LA - Louisiana &#x1F;ME&#x1F;ME - Maine &#x1F;MD&#x1F;MD - Maryland &#x1F;MA&#x1F;MA - Massachusetts &#x1F;MI&#x1F;MI - Michigan &#x1F;MN&#x1F;MN - Minnesota &#x1F;MS&#x1F;MS - Mississippi &#x1F;MO&#x1F;MO - Missouri &#x1F;MT&#x1F;MT - Montana &#x1F;NE&#x1F;NE - Nebraska &#x1F;NV&#x1F;NV - Nevada &#x1F;NH&#x1F;NH - New Hampshire &#x1F;NJ&#x1F;NJ - New Jersey &#x1F;NM&#x1F;NM - New Mexico &#x1F;NY&#x1F;NY - New York &#x1F;NC&#x1F;NC - North Carolina &#x1F;ND&#x1F;ND - North Dakota &#x1F;OH&#x1F;OH - Ohio &#x1F;OK&#x1F;OK - Oklahoma &#x1F;OR&#x1F;OR - Oregon &#x1F;PA&#x1F;PA - Pennsylvania &#x1F;RI&#x1F;RI - Rhode Island &#x1F;SC&#x1F;SC - South Carolina &#x1F;SD&#x1F;SD - South Dakota &#x1F;TN&#x1F;TN - Tennessee &#x1F;TX&#x1F;TX - Texas &#x1F;UT&#x1F;UT - Utah &#x1F;VT&#x1F;VT - Vermont &#x1F;VA&#x1F;VA - Virginia &#x1F;WA&#x1F;WA - Washington &#x1F;WV&#x1F;WV - West Virginia &#x1F;WI&#x1F;WI - Wisconsin &#x1F;WY&#x1F;WY - Wyoming","COUNTRYNAME":"UNITED STATES","COUNTRYID":217},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UNITED STATES MINOR OUTLYING ISLANDS","COUNTRYID":225},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"URUGUAY","COUNTRYID":218},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"UZBEKISTAN","COUNTRYID":220},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VANUATU","COUNTRYID":221},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VENEZUELA, BOLIVARIAN REPUBLIC OF","COUNTRYID":222},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIET NAM","COUNTRYID":223},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIRGIN ISLANDS, BRITISH","COUNTRYID":26},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"VIRGIN ISLANDS, U.S.","COUNTRYID":219},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WALES","COUNTRYID":226},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WALLIS AND FUTUNA","COUNTRYID":227},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"WESTERN SAHARA","COUNTRYID":246},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"YAP","COUNTRYID":229},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"YEMEN","COUNTRYID":247},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZAIRE","COUNTRYID":231},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZAMBIA","COUNTRYID":232},{"STATES":"&#x1F;**&#x1F;** - **","COUNTRYNAME":"ZIMBABWE","COUNTRYID":233}];
1352	
1353					svcrm.formBuilderScripts.countryChanged = function(domElm){
1354						
1355	
1356						var oldSelIndexVal = state.value;  //$F('contact_state');
1357						var myStates = new Array();
1358	
1359						 // $('contact_state').options.length = 0;
1360						state.options.length = 0;
1361	
1362						for (var i = 0; i < window.svcrm.formBuilderScripts.states.length; i++) {
1363							if (window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == domElm.options[domElm.selectedIndex].value || window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == '') {
1364								var myObj = new Object();
1365	
1366								var tmp = window.svcrm.formBuilderScripts.states[i].STATES.split('&#x1F;');
1367								for (var x = 0; x < tmp.length; x = x + 2) {
1368									var myObj = new Object();
1369									myObj.statecode = tmp[x - 1];
1370									myObj.statename = tmp[x];
1371									if (tmp[x - 1] == oldSelIndexVal) {
1372										myObj.selected = true;
1373									} else {
1374										myObj.selected = false;
1375									}
1376	
1377									if(!myObj.statecode){
1378										myObj.statecode = '';
1379									}
1380									myStates.push(myObj);
1381								}
1382							}
1383						}
1384	
1385						if (myStates.length > 0) {
1386							for (var i = 0; i < myStates.length; i++) {
1387								 // $('contact_state').options[$('state').options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected);
1388								 state.options[state.options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected);
1389	
1390							}
1391						} else {
1392							// $('contact_state').options.length = 0;
1393							state.options.length = 0;
1394							//$('contact_state').options[$('contact_state').options.length] = new Option("** - **", "");
1395							state.options[state.options.length] = new Option("** - **", "");
1396						}
1397					}
1398	
1399				
1400					})();
1401				
1402			</script>
1402
1403		
1404			
1404<script type="text/javascript">
1405	
1406				
1407					(function(){					
1408						svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1409						svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1410				
1411				
1412						window.svcrm.formBuilderScripts._____fileInpElmsRemoved = {}; //being lazy, need a place to store the file inputs that get removed from the form
1413						window.svcrm.formBuilderScripts._____filesUploading = 0; //if this is greater than 0, a file is still uploading.
1414				
1415						//this function is called when a file upload input has a file selected
1416						window.svcrm.formBuilderScripts.submitFileUpload = function(frmname,fldname){
1417							//kill off the old temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload
1418							var oldinp = document.getElementById('thefileweneedtoupload');
1419							if(oldinp){ oldinp.parentNode.removeChild(oldinp); }
1420							
1421							//create the temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload
1422							var inp = document.createElement('input'); inp.type = 'hidden'; inp.name = 'thefileweneedtoupload'; inp.id = 'thefileweneedtoupload'; inp.value = fldname;
1423							document[frmname].appendChild(inp);
1424							
1425							//need to get some things from this input before it is killed so we will it so we can recreate it
1426							var fld = document.getElementById(fldname);
1427							window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldname] = { id:fld.id, name:fld.name, className:fld.className, tabIndex:fld.tabIndex, onchange:fld.onchange };
1428							
1429							//kill iframe element if one exists
1430							window.svcrm.formBuilderScripts.killFileInputIframeElm(fldname);
1431							
1432							//create iframe to submit to
1433							var iframe = document.createElement('iframe'); iframe.id = 'fileUploaderIframe_'+fldname; iframe.name = 'fileUploaderIframe_'+fldname; iframe.style.display = 'none';
1434							document.body.appendChild(iframe);
1435							
1436							//store the form action before it is changed
1437							var origFormAttributes = {action: document[frmname].action, enctype: document[frmname].enctype};
1438							
1439							//change the form so that it will submit to the webapi and iframe target
1440							document[frmname].action = 'https://PhiladelphiaPA.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileAdd.cfm';
1441							document[frmname].target = 'fileUploaderIframe_'+fldname;
1442							document[frmname].enctype = 'multipart/form-data';
1443							document[frmname].submit();
1444
1445							//add to filesUploading so we don't allow form submissions while files are uploading
1446							window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading + 1;
1447							
1448							//reset the form to submit to where it was originally intended to submit to and remove the target so it doesn't go to the iframe
1449							document[frmname].setAttribute('action',origFormAttributes.action);
1450							document[frmname].setAttribute('enctype',origFormAttributes.enctype);
1451							document[frmname].removeAttribute('target');
1452
1453							// Disable the submit button and add a tool tip to the disabled element so it is clear why you can't submit yet -- useful for large files or slow connections
1454							document.getElementById('savefrm_button').disabled = true;
1455							var tt = document.getElementById('submit_tooltiptext');
1456							if(tt){
1457								//Make the tool tip show up
1458								tt.style.visibility = 'visible';
1459							} else {
1460								// create a new element
1461								var toolTip = document.createElement("span");
1462								var newContent = document.createTextNode("Unable to submit, file upload in progress.");
1463								toolTip.appendChild(newContent);
1464								toolTip.style.backgroundColor = "black";
1465								toolTip.style.color = "white";
1466								toolTip.style.textAlign = "center";
1467								toolTip.style.borderRadius = "6px";
1468								toolTip.style.padding = "4px 2px";
1469								toolTip.setAttribute('id', 'submit_tooltiptext');
1470
1471								// add the newly created element and its content into the DOM
1472								currentDiv = document.getElementById('resetfrm_button');
1473								var br = document.createElement("br"); // but put it on a new line first
1474								currentDiv.parentElement.insertBefore(br, null);
1475								currentDiv.parentElement.insertBefore(toolTip, null);
1476							}
1477						};
1478						
1479						//this function is called by either the formbuilder_fileAdd.cfm window.parent.addFile() call or from the _handlePostMessage() function
1480						//it will take the filename that is returned and set it in the display element and hidden input
1481						//if success==true is not returned we will try to grab the message from errorMsg if passed otherwise will display a generic error message and will try to remove the file input and recreate it
1482						//it is possible that the IIS request filtering will kick 
1482in and prevent us from knowing if it failed but the overall submission will end up getting blocked because the file inputs will still exist
1483						window.svcrm.formBuilderScripts.addFile = function(addFileArgs){
1484							if(typeof addFileArgs.success && addFileArgs.success){
1485								//set the hidden input with the new filename so we can process upon save
1486								document.getElementById(addFileArgs.fldname+'_formbuilder_hidden').value = addFileArgs.newfilename;
1487
1488								//subtract from filesUploading, if we're at 0 all files are finished
1489								window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1;
1490								if (window.svcrm.formBuilderScripts._____filesUploading <= 0) {
1491									//Re-enable submit button
1492									document.getElementById('savefrm_button').disabled = false;
1493									//hide tooltip
1494									var ttip = document.getElementById('submit_tooltiptext');
1495									if (ttip) {
1496										ttip.style.visibility = "hidden";
1497									}
1498								}
1499
1500								//create the delete button for this file
1501								var newBtn = document.createElement('img');
1502								newBtn.src = 'https://PhiladelphiaPA.simpleviewcrm.com/core_crm/webapi/forms/images/delete.png';
1503								newBtn.onclick = function(){window.svcrm.formBuilderScripts.removeFile(addFileArgs.fldname);};
1504								newBtn.alt = 'Remove File?';
1505								newBtn.title = 'Remove File?';
1506								newBtn.style.paddingTop = '5px';
1507								newBtn.style.paddingRight = '5px';
1508								newBtn.style.float = 'left';
1509								
1510								//create the element that will show the file name
1511								var newDiv = document.createElement('div');
1512								newDiv.innerHTML = addFileArgs.newfilename;
1513								newDiv.style.paddingTop = '4px';
1514								newDiv.style.float = 'left';
1515								
1516								//get this file inputs display element and append the delete button and name display elements in it
1517								var dispElm = document.getElementById(addFileArgs.fldname+'_display');
1518								dispElm.appendChild(newBtn);
1519								dispElm.appendChild(newDiv);
1520								
1521								//create an empty div to fix the float for the delete and filename element
1522								var newDiv2 = document.createElement('div');
1523								newDiv2.style.clear = 'both';
1524								dispElm.appendChild(newDiv2);
1525								dispElm.style.display = 'block';	//turn on the display element
1526								
1527								//kill the file input we don't want it anymore unless they remove this file
1528								window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname);
1529								
1530							}else{
1531								//kill and recreate the element if we can
1532								if(typeof addFileArgs.fldname && addFileArgs.fldname.length){
1533									window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname);
1534									window.svcrm.formBuilderScripts.recreateFileInputElm(addFileArgs.fldname);
1535								}							
1536								
1537								//if we have a good message display it
1538								alert('There was a problem uploading your file:\n'+((typeof addFileArgs.errorMsg != 'undefined') ? addFileArgs.errorMsg : 'There was a problem uploading your file!' ) );
1539
1540								//subtract from filesUploading, if we're at 0 all files are finished
1541								window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1;
1542
1543                                //Need to make sure that we re-enable the submit button in case it didn't happen above in the IF block
1544                                // otherwise, they can't submit until they fix the issue; we should give them the option to abandon the file upload.
1545								if (window.svcrm.formBuilderScripts._____filesUploading <= 0) {
1546									//Re-enable submit button
1547									document.getElementById('savefrm_button').disabled = false;
1548									//hide tooltip
1549									var ttip = document.getElementById('submit_tooltiptext');
1550									if (ttip) {
1551										ttip.style.visibility = "hidden";
1552									}
1553								}
1554							}
1555							
1556							//kill iframe element if it is still around
1557							window.svcrm.formBuilderScripts.killFileInputIframeElm(addFileArgs.fldname);			
1558						};
1559						
1560						//this function will delete the file input element from the form, it is called when a file input is selected and the form submitted off to the iframe
1561						window.svcrm.formBuilderScripts.killFileInputElm = function(fldId){
1562							var fileInpElmToRemove = document.getElementById(fldId);
1563							fileInpElmToRemove.parentNode.removeChild(fileInpElmToRemove);
1564						};
1565						
1566						//this function will re-create the file input element that was removed when a file was uploaded, this is called when a user clicks the delete button on an image or if we had an erorr upon file upload we wipe the input and recreate so it is empty
1567						window.svcrm.formBuilderScripts.recreateFileInputElm = function(fldId){
1568							var elmstored = window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldId];
1569							var recreatedElm = document.createElement('input');
1570							recreatedElm.type = 'file';
1571							recreatedElm.id = elmstored.id;
1572							recreatedElm.name = elmstored.name;
1573							recreatedElm.className = elmstored.className;
1574							recreatedElm.tabIndex = elmstored.tabIndex;
1575							recreatedElm.onchange = function(){
1576								document.getElementById(fldId +  '_formbuilder_hidden').value = this.value; 
1577								window.svcrm.formBuilderScripts.submitFileUpload('frm_'+document.getElementById('formid').value, fldId);
1578							};
1579							document.getElementById(fldId+'_container').appendChild(recreatedElm);
1580						}
1581						
1582						//this function will kill off the iframe element if it exists
1583						window.svcrm.formBuilderScripts.killFileInputIframeElm = function(fldname){
1584							var iframeElm = document.getElementById('fileUploaderIframe_'+fldname);
1585							if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);}
1586						};
1587						
1588						//this function will remove the file it will wipe the display and hidden input and recreate the file upload input element
1589						window.svcrm.formBuilderScripts.removeFile = function(fldId){
1590							//try to remove delete this file from temp if exists
1591							try{
1592								//create an iframe and form with a hidden input field that has the name of the file we are trying to wipe
1593								var html = '<html><body onload="document.fileDeleterIframeForm.submit();">';
1594								html += '<form name="fileDeleterIframeForm" action="https://PhiladelphiaPA.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileDelete.cfm" method="post">';
1595								html += '<input type="hidden" name="filenamevalue" id="filenamevalue" value="'+document.getElementById(fldId+'_formbuilder_hidden').value+'" />';
1596								html += '</form>';
1597								html += '<' + '/' + 'body' + '>' + '<' + '/' + 'html' + '>';
1598								
1599								var iframeElm = document.getElementById('fileDeleterIframe_'+fldId);
1600								if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);}
1601								
1602								var iframe = document.createElement('iframe');
1603								iframe.id = 'fileDeleterIframe_'+fldId;
1604								iframe.style.display = 'none';
1605								document.body.appendChild(iframe);
1606								iframe.contentWindow.document.open();
1607								iframe.contentWindow.document.write(html);
1608								iframe.contentWindow.document.close();
1609								
1610							}catch(e){
1611								//nothing for now
1612							}
1613							
1614							document.getElementById(fldId+'_formbuilder_hidden').value = '';
1615							var dispElm = document.getElementById(fldId+'_display');
1616							dispElm.innerHTML = '';
1617							dispElm.style.display = 'none';
1618							
1619							//recreate the element
1620							window.svcrm.formBuilderScripts.recreateFileInputElm(fldId);
1621							
1622						};
1623						
1624						//this function will handle the postMessage's it will make sure that it is coming from the valid crm domain, it will then call the addFile() function passing along the returned json object
1625						var _handlePostMessage = function(evt){
1626							//check for correct postMessage source
1627							if(typeof evt.origin != 'undefined'){
1628								//only run this if we are from the correct domain
1629								var _fixedOrigin = evt.origin + ( (evt.origin.substring(evt.origin.length-1,evt.origin.length) != '/') ? '/' : '');
1630								var crmappurl = 'https://PhiladelphiaPA.simpleviewcrm.com/';
1631								if(_fixedOrigin.toLowerCase().indexOf(crmappurl.toLowerCase()) != -1){			
1632									var _postMsgRtn = {};
1633									try {
1634										_postMsgRtn = JSON.parse(evt.data); //json parse the returned data
1635									} catch (e) {
1636										return false;
1637									}
1638									window.svcrm.formBuilderScripts.addFile(_postMsgRtn);	//we will let the addFile handle any errors the same way as call from within crm form
1639								}
1640							}
1641						};														
1642						if (window.addEventListener) {
1643							window.addEventListener('message', _handlePostMessage, false);
1644						} else if (window.attachEvent) {
1645							window.attachEvent('onmessage', _handlePostMessage);
1646						}
1647	
1648				
1649					})();
1650				
1651			</script>
1651
1652		
1653		
1653<script type="text/javascript">
1654			/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/
1655				(function(){
1656					var crm_locale = {"SEPARATOR_GROUPING":3,"YAHOO_MDY_MONTH_POSITION":1,"CURRENCY_DECIMALPLACES":2,"DATEFMT_MDONLY":"mm\/dd","NUMBERFORMATTER":"standard","YAHOO_MDY_YEAR_POSITION":3,"ANGULAR_FORMAT_FILE":"en-us","YAHOO_DATE_FIELD_DELIMITER":"\/","YAHOO_START_WEEKDAY":0,"YAHOO_MDY_DAY_POSITION":2,"DOLLARFMT_MASK":"","THOUSANDS_SEPARATOR":",","LOCALE":"en_US","DOLLARFMT":0,"DOLLARFMT_PREFIX":"","NUMBERFMT_MASK":"0,000.00","DATEFMT":"mm\/dd\/yyyy","DECIMAL_SEPARATOR":".","DOLLARFMT_SUFFIX":""};
1657
1658					svcrm = ((typeof svcrm != 'undefined') ? svcrm : {});
1659					svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {});
1660
1661					svcrm.formBuilderScripts.captchaValid = false;
1662					svcrm.formBuilderScripts.validCodeElement = document.getElementById('code');
1663
1664					svcrm.formBuilderScripts.curPopupWindow = null;
1665					svcrm.formBuilderScripts.lastMouseX = null;
1666					svcrm.formBuilderScripts.lastMouseY = null;
1667
1668					svcrm.formBuilderScripts.__onload_function = function(){
1669						svcrm.formBuilderScripts.updReq();
1670
1671						if (svcrm.formBuilderScripts.validCodeElement.addEventListener) {
1672							svcrm.formBuilderScripts.validCodeElement.addEventListener('keyup', svcrm.formBuilderScripts.checkCapMatch, false);
1673						} else if (validCodeElement.attachEvent) {
1674							svcrm.formBuilderScripts.validCodeElement.attachEvent('onkeyup', svcrm.formBuilderScripts.checkCapMatch);
1675						}
1676
1677						var elm = svcrm.formBuilderScripts.validCodeElement;
1678						var found = false;
1679						while(elm.parentNode && !found){
1680							if(elm.parentNode.getElementsByTagName('form') && elm.parentNode.getElementsByTagName('form')[0] && elm.parentNode.getElementsByTagName('form')[0].name.indexOf('frm_') != -1){
1681								elm = elm.parentNode.getElementsByTagName('form')[0];
1682								found = true;
1683							}else{
1684								elm = elm.parentNode;	
1685							}
1686						}
1687
1688						var the_crmform = elm;
1689						the_crmform.id = 'the_crmform';
1690						the_crmform.onsubmit = function(e){
1691							svcrm.formBuilderScripts.checkCapMatch();
1692							if (svcrm.formBuilderScripts.captchaValid !== true){
1693									
1694									alert('This information cannot be sent at this time!\n\nThe 4 character string you entered does not match the image shown.');
1695								
1696								return false;
1697							}else
1698							{
1699								return svcrm.formBuilderScripts.validateForm(the_crmform);
1700							}
1701							return false;
1702						};
1703					};
1704
1705					svcrm.formBuilderScripts.checkCapMatch = function(){
1706						var scriptID = 'captchaCheckJSONP';
1707
1708						//kill the existing one if we have one
1709						if(document.getElementById(scriptID)){
1710							document.getElementById(scriptID).parentNode.removeChild(document.getElementById(scriptID));
1711						}
1712
1713						var validCode = svcrm.formBuilderScripts.validCodeElement.value;
1714						var checkCode = escape( document.getElementById('code_key').value );
1715						if(validCode.length != 4){
1716							svcrm.formBuilderScripts.setCaptchaImg(false); 
1717							return false;
1718						}else{
1719							//jsonP this thing over
1720							var s = document.createElement('script');
1721							s.id = scriptID;
1722							s.type = 'application/javascript';
1723							s.src = 'https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/checkcaptcha.cfm?validCode='+validCode+'&checkCode='+c
1723heckCode+'&jsonp=svcrm.formBuilderScripts.getCaptchaLookupResults'
1724							document.body.appendChild(s);
1725						}			
1726					};
1727
1728					svcrm.formBuilderScripts.getCaptchaLookupResults = function(rtn){
1729						if (rtn) {
1730							svcrm.formBuilderScripts.setCaptchaImg(true);
1731						}else {
1732							svcrm.formBuilderScripts.setCaptchaImg(false);
1733						}
1734					};
1735
1736					svcrm.formBuilderScripts.setCaptchaImg = function(ok) {
1737						var existingCIMG = document.getElementById('capimage'); 
1738						if (!existingCIMG || existingCIMG.length == 0){
1739							var cimgtag = document.createElement('IMG');
1740							cimgtag.id = 'capimage';
1741							cimgtag.alt= "Verification";
1742
1743							svcrm.formBuilderScripts.validCodeElement.parentNode.appendChild(cimgtag); 
1744							existingCIMG = document.getElementById('capimage'); 
1745						}
1746
1747						if (ok) {
1748							existingCIMG.src = 'https://philadelphiapa.simpleviewcrm.com/core_crm/resources/images/true_ico.gif';
1749							svcrm.formBuilderScripts.captchaValid = true;
1750						}else {
1751							existingCIMG.src = 'https://philadelphiapa.simpleviewcrm.com/core_crm/resources/images/false_ico.gif';
1752							svcrm.formBuilderScripts.captchaValid = false;
1753						}
1754					};
1755
1756
1757					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/
1758						/*Utility Functions, namespaced for nodejs cms sites*/
1759						//Function to format floats
1760						//returns false if invalid
1761						//dec = number of decimal places to show
1762						svcrm.formBuilderScripts.fmtFloat = function(obj, dec){
1763							var lt = "", rt = "", str = ""
1764							var inc = 0, num = 0, tmp = 0
1765							
1766							if (obj.value.length == 0)
1767								obj.value = "0";		
1768
1769							if (!svcrm.formBuilderScripts.checkChars(obj.value, ".,0123456789")) return false;		
1770							
1771							// Check for valid number
1772							svcrm.formBuilderScripts.stripChars(obj, ",");
1773							if (!svcrm.formBuilderScripts.checkNumber(obj.value)) return false;
1774							
1775							//Split number
1776							inc = Math.pow(10, dec);
1777							num = (obj.value * 1.0);
1778							num = Math.round(num * inc) / inc;
1779							str = "" + num;
1780							
1781							tmp = str.indexOf(".");
1782							if (tmp < 0) {
1783								str += ".";
1784								tmp = str.indexOf(".");						
1785							}
1786							
1787							if ((str.length - tmp) <= dec)
1788								for (var i = (str.length - tmp); i <= dec; i++)
1789									str += "0";
1790										
1791							obj.value = str;
1792							return true;	
1793						};
1794
1795						//Function to format integers
1796						//returns false if invalid
1797						svcrm.formBuilderScripts.fmtInt = function(obj){
1798							if (obj.value.length == 0) {
1799								return true;
1800							}
1801							
1802							return (svcrm.formBuilderScripts.checkInteger(obj.value));
1803						};
1804
1805						//Function to formats money fields
1806						//returns false if invalid
1807						svcrm.formBuilderScripts.fmtMoney = function(obj){
1808							var dec = 0, num = "", sign = 0
1809							var dollars = "", cents = ""
1810							var count = 0, tmp = ""
1811							
1812							if (obj.value.length == 0) {
1813								tmp = "0";
1814								cents = ".00";
1815							} else {
1816								if (!svcrm.formBuilderScripts.checkChars(obj.value, "$.,0123456789")) return false;
1817
1818								// Check for valid number		
1819								svcrm.formBuilderScripts.stripChars(obj, ",");				
1820								sign = obj.value.indexOf("$");		
1821								if (sign > 0)
1822									return false;
1823								else {
1824									if (sign == 0)
1825										num = obj.value.substring(1,obj.value.length);
1826									else
1827										num = obj.value;
1828
1829									if (!svcrm.formBuilderScripts.checkNumber(num))
1830										return false;
1831								}
1832
1833								// Check precision, round-up if necessary
1834								if (num.indexOf(".") != -1)
1835									num = "" + (Math.round(num * 100) / 100.0);
1836								
1837								dec = num.indexOf(".");
1838								cents = ((dec > 0) ? num.substring(dec,num.length) : ".00");
1839								if (cents.length == 2) cents += "0";
1840							
1841								// Add commas
1842								dollars = "" + parseInt(num);
1843								for (var i = dollars.length - 1; i >= 0; i--) {
1844									if (count == 3) {
1845									tmp = "," + tmp;
1846										count = 1;
1847									} else  
1848										count ++;
1849							
1850									tmp = dollars.charAt(i) + tmp;
1851								}	
1852							}
1853								
1854							// Format number
1855							num = "$" + tmp + cents;
1856							obj.value = num;	
1857							return true;								
1858						};
1859
1860						//Function to format phone numbers
1861						//returns false if invalid
1862						svcrm.formBuilderScripts.fmtPhone = function(obj){
1863							var phone = "";
1864							var oldphone = "";
1865							
1866							if (obj.value.length == 0) return true;
1867							
1868							//Remove formatting
1869							oldphone = obj.value;
1870							svcrm.formBuilderScripts.stripChars(obj, "- ()");
1871							phone = obj.value;
1872							if (!svcrm.formBuilderScripts.checkChars(phone, "0123456789")) return false;
1873								
1874							if (phone.length == 10)
1875								obj.value = "(" + phone.substring(0,3) + ") " + phone.substring(3,6) +"-" + phone.substring(6,10);
1876							else {
1877								obj.value = oldphone;
1878								return false;
1879							}
1880								
1881							return true;		
1882						};
1883
1884						//Function to format social security numbers
1885						//returns false if invalid
1886						svcrm.formBuilderScripts.fmtSSN = function(obj){
1887							var ssn = ""
1888							
1889							if (obj.value.length == 0) return true;
1890							
1891							//Remove all dashes
1892							svcrm.formBuilderScripts.stripChars(obj, "-");
1893							ssn = obj.value;
1894							if (!svcrm.formBuilderScripts.checkChars(ssn, "0123456789")) return false;
1895								
1896							if (ssn.length == 9)
1897								obj.value = ssn.substring(0,3) + "-" + ssn.substring(3,5) + "-" + ssn.substring(5,9);
1898							else
1899								return false;
1900								
1901							return true;
1902						};
1903
1904						//Function to verify valid URL
1905						svcrm.formBuilderScripts.fmtURL = function(obj){
1906							if (obj.value.length == 0) return true;
1907							
1908							if (obj.value.substring(0,7) != "http://")
1909								obj.value = "http://" + obj.value;
1910								
1911							if (obj.value.length < 10) return false;		
1912							
1913							return true;
1914						};
1915
1916						//Function to format zip codes
1917						//returns false if invalid
1918						svcrm.formBuilderScripts.fmtZip = function(obj){
1919							var numberlist = "0123456789", zip = ""
1920							
1921							if (obj.value.length == 0) return true;
1922							
1923							// Remove dashes
1924							svcrm.formBuilderScripts.stripChars(obj, "-");
1925							zip = obj.value;
1926							if (!svcrm.formBuilderScripts.checkChars(zip, numberlist)) return false;		
1927
1928							if (zip.length == 5)
1929								obj.value = zip;
1930							else if (zip.length == 9)
1931								obj.value = zip.substring(0,5) + "-" + zip.substring(5,9)
1932							else
1933								return false;
1934
1935							//Passed all tests
1936							return true;		
1937						};		
1938
1939						//Returns true if every character is in string list
1940						//otherwise false
1941						svcrm.formBuilderScripts.checkChars = function(val, charlist){
1942							for (var i = 0; i < val.length; i++)
1943								if (charlist.indexOf(val.charAt(i)) < 0)
1944									return false;
1945
1946							//String passed so it is valid							
1947							return true;
1948						};
1949
1950						//Returns true if valid email
1951						//otherwise returns false
1952						svcrm.formBuilderScripts.checkEmail = function(obj){
1953							if (obj.value.length != 0) {
1954								var pattern = /^['&a-zA-Z0-9._%+-]+@(?:[&a-zA-Z0-9-]+\.)+(([a-zA-Z]{2,4})|(aero|coop|info|museum|name|travel))$/;
1955								if (!pattern.test(obj.value)) {
1956									return false;
1957								} else {
1958									return true;
1959								}
1960							}
1961							
1962							// Valid, passed all tests
1963							return true;
1964						};
1965
1966						//Returns true if valid phone
1967						//otherwise returns false
1968						svcrm.formBuilderScripts.checkPhone = function(obj){
1969							if (obj.value.length != 0) {
1970							var pattern = /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/;
1971								if (!pattern.test(obj.value)) {
1972									return false;
1973								} else {
1974									return true;
1975								}
1976							}
1977							
1978							// Valid, passed all tests
1979							return true;
1980						};
1981
1982						//Returns true if value is a number or is NULL
1983						//otherwise returns false	
1984						svcrm.formBuilderScripts.checkInteger = function(object_value){
1985							if (object_value.length == 0)
1986								return true;
1987									
1988							if (object_value.indexOf(".") < 1)
1989								return svcrm.formBuilderScripts.checkNumber(object_value);
1990							else
1991								return false;
1992						};
1993
1994						//Returns true if value is a number or is NULL
1995						//otherwise returns false	
1996						svcrm.formBuilderScripts.checkNumber = function(object_value){
1997							if (object_value.length == 0)
1998								return true;
1999
2000							//Returns true if value is a number defined as
2001							//   having an optional leading + or -.
2002							//   having at most 1 decimal point.
2003							//   otherwise containing only the characters 0-9.
2004							var start_format = " .+-0123456789";
2005							var number_format = " .0123456789";
2006							var check_char;
2007							var decimal = false;
2008							var trailing_blank = false;
2009							var digits = false;
2010
2011							//The first character can be + - .  blank or a digit.
2012							check_char = start_format.indexOf(object_value.charAt(0))
2013							//Was it a decimal?
2014							if (check_char == 1)
2015								decimal = true;
2016							else if (check_char < 1)
2017								return false;
2018								
2019							//Remaining characters can be only . or a digit, but only one decimal.
2020							for (var i = 1; i < object_value.length; i++) {
2021								check_char = number_format.indexOf(object_value.charAt(i))
2022								if (check_char < 0)
2023									return false;
2024								else if (check_char == 1) {
2025									if (decimal)		// Second decimal.
2026										return false;
2027									else
2028										decimal = true;
2029								} else if (check_char == 0) {
2030									if (decimal || digits)	
2031										trailing_blank = true;
2032								// ignore leading blanks
2033								} else if (trailing_blank)
2034									return false;
2035								else
2036									digits = true;
2037							}	
2038							
2039							//All tests passed
2040							return true
2041						};
2042
2043						//Returns true if value is a posiitve integer or is NULL
2044						//otherwise returns false	
2045						svcrm.formBuilderScripts.checkPosInteger = function(object_value){
2046							if (object_value.indexOf("-") != -1)
2047								return false;
2048							else
2049								return (svcrm.formBuilderScripts.checkInteger(object_value));				
2050						};
2051
2052						//Function to find any char in charlist in the passed string
2053						//Returns true if a character is found
2054						//Otherwise false
2055						svcrm.formBuilderScripts.findChars = function(str, charlist){
2056							for (var i = 0; i < charlist.length; i++) {
2057								if (str.indexOf(charlist.charAt(i)) != -1)
2058									return true;			
2059							}
2060							
2061							return false;
2062						};
2063
2064						//Function to remove all occurances of chars in charlist
2065						svcrm.formBuilderScripts.stripChars = function(obj, charlist){
2066							var i = 0, pos = 0
2067							var val = obj.value
2068							
2069							while (i < val.length) {
2070								pos = charlist.indexOf(val.charAt(i));
2071								if (pos != -1)
2072									val = val.substring(0,i) + val.substring(i + 1, val.length);
2073								else
2074									i++;
2075							}						
2076							
2077							obj.value = val;
2078							return true;
2079						};
2080
2081						svcrm.formBuilderScripts.cntChars = function(val, charlist){
2082							var i = 0, pos = 0, cnt = 0
2083							
2084							for (i = 0; i < val.length; i++) {
2085								pos = charlist.indexOf(val.charAt(i));
2086								if (pos != -1) cnt++;
2087							}						
2088							
2089							return cnt;
2090						};
2091
2092						svcrm.formBuilderScripts.fmtTime = function(fld){
2093							var hr = 0, mn = 0;
2094							var val = fld.value;
2095							
2096							if (val.length == 0) return true;
2097									
2098							var tt = svcrm.formBuilderScripts.strChars(val, '0123456789: ');
2099							
2100							if (tt.length > 0) {
2101								tt = tt.toUpperCase();
2102								if (tt != 'AM' && tt != 'PM') return false;
2103								
2104								val = svcrm.formBuilderScripts.strChars(val, ' ampAMP');
2105							}
2106							
2107							var sepr = val.indexOf(':')
2108							if (sepr == -1) {
2109								hr = val;
2110								mn = 0;
2111							} else {
2112								hr = val.substring(0, sepr);
2113								mn = val.substring(sepr + 1, val.length);		
2114							}
2115							if (isNaN(mn)) mn = 0;	
2116							
2117							if (!svcrm.formBuilderScripts.chkChars(hr, '0123456789')) return false;
2118							if (!svcrm.formBuilderScripts.chkChars(mn, '0123456789')) return false;
2119							if (hr < 0 || hr > 23) return false;
2120							if (mn < 0 || mn > 59) return false;
2121							
2122							if (hr > 12) {
2123								tt = 'PM';
2124								hr = hr - 12;
2125							} else if (hr == 0) {
2126								tt = 'AM';
2127								hr = 12;
2128							}
2129							if (mn.toString().length == 0) mn = 0;
2130							if (tt.length == 0) {
2131								if (hr == 12) 
2132									tt = 'PM';
2133								else if (hr < 7) 
2134									tt = 'PM'; 
2135								else
2136									tt = 'AM';
2137							}
2138							
2139							str = hr;
2140							if (mn.toString().length == 1)
2141								str = str + ':0' + mn;
2142							else
2143								str = str + ':' + mn;
2144							str = str	+ ' ' + tt;
2145							
2146							fld.value = str;
2147							return true;
2148						};
2149
2150						//Function to remove all occurances of chars in charlist
2151						svcrm.formBuilderScripts.strChars = function(val, charlist){
2152							var i = 0, pos = 0
2153							
2154							while (i < val.length) {
2155								pos = charlist.indexOf(val.charAt(i));
2156								if (pos != -1)
2157									val = val.substring(0,i) + val.substring(i + 1, val.length);
2158								else
2159									i++;
2160							}						
2161							
2162							return val;
2163						};
2164
2165						svcrm.formBuilderScripts.chkChars = function (val, charlist){
2166							for (var i = 0; i < val.length; i++)
2167								if (charlist.indexOf(val.charAt(i)) < 0)
2168									return false;
2169
2170							return true;
2171						};
2172					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/
2173
2174					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/
2175						// Author: Bill Simpson
2176						// Company: 220solutions.com
2177						// Email: [email protected]
2178						// Date Created: 02-09-2001
2179						//
2180						// Verifies and converts date strings to a valid format
2181						//
2182						// Valid input dates =
2183						//		mdyy, mmdyy, mmddyy, mmmddyy, mmddyyyy, mmmddyyyy,
2184						//		m/d/yy, m/dd/yy, mm/d/yy, mm/dd/yy, mmm/d/yy, mmm/dd/yy,
2185						//		m/d/yyyy, m/dd/yyyy, mm/d/yyyy, mm/dd/yyyy, mmm/d/yyyy, mmm/dd/yyyy
2186						//	Valid date seperators = '-./:_, '
2187						//
2188						// Notes: Please feel free to use/edit this script.
2189						//		If you do please keep comments and header
2190						//
2191						// Code based on functions from
2192						//   Author: Simon Kneafsey
2193						//   Email: [email protected]
2194						//   WebSite: www.simonkneafsey.co.uk
2195
2196
2197						// Function to convert supplied date string 'fld'
2198						// fld: field containing date string
2199						// sep: seperator to use e.g. '-' or '/'
2200						// returns false if date string is invalid
2201						svcrm.formBuilderScripts.fmtDate = function(fld,sep){
2202							var len = fld.value.length;
2203							var seps = new Array('-','.','/',':','_',',',' ');  // Array of seperators.
2204							var d = '', m = '', y = ''; // date part holders
2205							//var div = ''; // divider holder
2206							//var outdate1 = null; // formatted date to send back to calling field holder
2207							var sepholder = new Array('0','0','0'); // array to hold positions of dividers in dates
2208							var s = String(fld.value);
2209							var outdate = '';
2210
2211							if (len == 0 ) return true;
2212
2213							// Accept 'today' or 'now'
2214							if (fld.value.toUpperCase() == 'NOW' || fld.value.toUpperCase() == 'TODAY' ) {
2215								var newDate = new Date();
2216								var myDay = newDate.getDate();
2217								var myMonth = newDate.getMonth() + 1;
2218									if (navigator.appName == 'Netscape')
2219									var myYear = newDate.getYear() + 2000;
2220									else
2221									var myYear = newDate.getYear();
2222
2223								fld.value = myMonth + "-" + myDay + "-" + myYear;
2224								// update string info
2225								len = fld.value.length;
2226								s = String(fld.value);
2227							}
2228
2229							// Check the date is a valid length
2230							if (len < 4 || len > 11) return false;
2231
2232							// Find positions of divider in the date
2233							var cnt = 0;
2234							for (var i = 0; i < 3; i++) {
2235								for (var j = 0; j < seps.length; j++) {
2236									if (s.indexOf(seps[j],cnt) != -1) {
2237										div = seps[j];
2238										sepholder[i] = s.indexOf(seps[j],cnt);
2239										cnt = sepholder[i] + 1;
2240										break;
2241									}
2242									}
2243								}
2244
2245							// If element 2 is not 0 then more than 2 dividers have been found so date is invali
2245d.
2246							if (sepholder[2] != 0) return false;
2247							
2248							// if no dividers are found strip out date parts
2249							if (sepholder[0] == 0 && sepholder[1] == 0) {
2250								switch (len) {
2251								case 4: // mdyy
2252									m = '0' + s.substring(0,1);
2253									d = '0' + s.substring(1,2);
2254									y = s.substring(2,4);
2255									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2256									break;
2257								case 5: // mmdyy
2258									m = s.substring(0,2);
2259									d = '0' + s.substring(2,3);
2260									y = s.substring(3,5);
2261									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2262									break;
2263								case 6: // mmddyy
2264									m = s.substring(0,2);
2265									d = s.substring(2,4);
2266									y = s.substring(4,6);
2267									if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2268									break;
2269								case 7: //mmmddyy
2270									m = s.substring(0,3);
2271									d = s.substring(3,5);
2272									y = s.substring(5,7);
2273									if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2274										if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false;
2275									break;
2276								case 8: //mmddyyyy
2277									m = s.substring(0,2);
2278									d = s.substring(2,4);
2279									y = s.substring(4,8);
2280									break;
2281								case 9: //mmmddyyyy
2282									m = s.substring(0,3);
2283									d = s.substring(3,5);
2284									y = s.substring(5,9);
2285									if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2286									break;
2287								default:
2288									return false;
2289								}
2290								
2291								if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false;
2292
2293								// valid date
2294								fld.value = outdate;
2295								return true;
2296							} else if (sepholder[0] != 0 && sepholder[1] != 0) {
2297								// process with dividers
2298								m = s.substring(0, sepholder[0]);
2299								d = s.substring(sepholder[0] + 1, sepholder[1]);
2300								y = s.substring(sepholder[1] + 1, s.length);
2301							} else
2302								// Only one divider
2303								return false;
2304
2305							// Check day and year are numeric
2306							if (isNaN(d) && isNaN(y)) return false;
2307
2308							// Make d day dd
2309							if (d.length == 1) d = '0' + d;
2310							// Make m month mm
2311							if (m.length == 1) m = '0' + m;
2312							// Make yy year yyyy
2313							if (y.length == 2)
2314								if ((y = svcrm.formBuilderScripts.chkYear(y)) == false ) return false;
2315
2316							// Make mmm month mm
2317							if (m.length == 3 || m.length == 4) {
2318								if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false;
2319							}
2320
2321							// Date components are OK
2322							if (d.length != 2 || m.length != 2 || y.length != 4) return false;
2323
2324							// Validate the date
2325							if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false;
2326
2327							// Valid date
2328							fld.value = outdate;
2329							return true;
2330						};
2331
2332						// checks for a valid date
2333						// m: month part (2 digit)
2334						// d: day part (2 digit)
2335						// y: year part (4 digit)
2336						// returns:  date string formatted if valid, false if invalid
2337						svcrm.formBuilderScripts.chkDate = function(m, d, y, sep){
2338							var dayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
2339							var dstr = m + d + y;
2340							var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/;
2341							
2342							// Check mmddyyyy date supplied
2343							if (!filter.test(dstr)) return false;
2344							
2345							// Check valid month
2346							filter=/01|02|03|04|05|06|07|08|09|10|11|12/;
2347							if (!filter.test(m)) return false;
2348							
2349							// Check year
2350							if (y < 1900 || y > 2078) return false;
2351							
2352							// Check for leap year
2353							var n = Number(y);
2354							if (n % 4 == 0 && (n % 100 != 0 || n % 400 == 0)) dayArray[1] = 29;
2355							
2356							// Check for valid days for month
2357							var mnum = Number(m);
2358							if (d > dayArray[mnum - 1] || d <= 0) return false;
2359							
2360							// Valid date
2361							return m + sep + d + sep + y;
2362						};
2363
2364						// Checks for valid month
2365						// m: month part (3 or 4 digit)
2366						// returns: 2 digit month if valid, false is invalid
2367						svcrm.formBuilderScripts.chkMonth = function(m){
2368							var months = new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
2369
2370							m = m.toUpperCase();
2371							if (m.length == 3) {
2372								for (var i = 0; i < 12; i++) {
2373									if (m == months[i]) {
2374										m = i + 1;
2375										if (i < 10)
2376											m = '0' + m;
2377										return m;
2378									}
2379								}
2380							} else if (m.length == 4 && m == 'SEPT') {
2381								m = '09';
2382								return m;
2383							} else
2384								return false;
2385						};
2386
2387						// Check for a valid year
2388						// y: year part (2 digit)
2389						// returns: 4 digit year if valid, false if invalid
2390						svcrm.formBuilderScripts.chkYear = function(y){
2391							if (y < 75) {
2392								y = "20" + y;
2393								return y;
2394							} else if (y >= 75) {
2395								y = "19" + y;
2396								return y;
2397							} else
2398								return false;
2399						};
2400
2401						svcrm.formBuilderScripts.showDate = function(baseURL, fld, frm) {
2402							var urlSeparator = '?';
2403
2404							if("https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/formbuilder.cfm".indexOf('?') != -1){
2405								urlSeparator = '&';
2406							}
2407
2408							var str = "https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/formbuilder.cfm" + urlSeparator + "action=popupCal&frm=" + frm + "&fld=" + fld + '&randid=' + new Date().getTime();
2409							if (eval("document." + frm + "." + fld).value.length > 0)
2410								str = str + "&cdate=" + eval("document." + frm + "." + fld).value;
2411							
2412								svcrm.formBuilderScripts.openPopup(str, "calwin", 210, 210, "width=210,height=210,toolbar=no,status=no,directories=no,menubar=no,resizable=no,scrollable=no", true);
2413						};
2414
2415						svcrm.formBuilderScripts.openPopup = function(url, name, pWidth, pHeight, features, snapToLastMousePosition) {
2416							svcrm.formBuilderScripts.openPopupFocus(url, name, pWidth, pHeight, features, snapToLastMousePosition, true);
2417						};
2418
2419						svcrm.formBuilderScripts.closePopup = function(){
2420							if (svcrm.formBuilderScripts.curPopupWindow != null) {
2421								
2422								if (!svcrm.formBuilderScripts.curPopupWindow.closed)
2423									svcrm.formBuilderScripts.curPopupWindow.close();
2424								
2425								svcrm.formBuilderScripts.curPopupWindow = null;
2426							}
2427						};
2428
2429						svcrm.formBuilderScripts.openPopupFocus = function(url, name, pWidth, pHeight, features, snapToLastMousePosition, closeOnLoseFocus) {
2430							svcrm.formBuilderScripts.closePopup();
2431
2432							if (snapToLastMousePosition) {
2433								if (svcrm.formBuilderScripts.lastMouseX - pWidth < 0) {
2434									svcrm.formBuilderScripts.lastMouseX = pWidth;
2435								}
2436								if (svcrm.formBuilderScripts.lastMouseY + pHeight > screen.height) {
2437									svcrm.formBuilderScripts.lastMouseY -= (svcrm.formBuilderScripts.lastMouseY + pHeight + 50) - screen.height;
2438								}
2439								svcrm.formBuilderScripts.lastMouseX -= pWidth;
2440								svcrm.formBuilderScripts.lastMouseY += 10;
2441								features += "screenX=" + svcrm.formBuilderScripts.lastMouseX + ",left=" + svcrm.formBuilderScripts.lastMouseX + "screenY=" + svcrm.formBuilderScripts.lastMouseY + ",top=" + svcrm.formBuilderScripts.lastMouseY;
2442							}
2443
2444							if (closeOnLoseFocus) {
2445								curPopupWindow = window.open(url, name, features, false);
2446								curPopupWindow.focus();
2447							} else {
2448								win = window.open(url, name, features, false);
2449								win.focus();
2450							}
2451						};
2452
2453						svcrm.formBuilderScripts.setLastMousePosition = function(e) {
2454							if (navigator.appName.indexOf("Microsoft") != -1) e = window.event;
2455							svcrm.formBuilderScripts.lastMouseX = e.screenX;
2456							svcrm.formBuilderScripts.lastMouseY = e.screenY;
2457						};
2458					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/
2459
2460					/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/
2461						svcrm.formBuilderScripts.zipLookup = function(fuseroot, zip, fldCity, fldState){	
2462							var scriptID = 'zipLookupJSONP';
2463
2464							//kill the existing one if we have one
2465							if(document.getElementById(scriptID)){
2466								document.getElementById(scriptID).parentNode.removeChild(document.getElementById(scriptID));
2467							}
2468
2469							if (svcrm.formBuilderScripts.trim(zip).length != 5 || !svcrm.formBuilderScripts.checkChars(zip, "0123456789")){
2470								return false;
2471							}else{
2472								//jsonP this thing over
2473								var s = document.createElement('script');
2474								s.id = scriptID;
2475								s.type = 'application/javascript';
2476								s.src = 'https://philadelphiapa.simpleviewcrm.com/webapi/formbuilder/ziplookup.cfm?zip='+zip+'&fldCityId='+fldCity.id+'&fldStateId='+fldState.id+'&jsonp=svcrm.formBuilderScripts.processZipChange'
2477								document.body.appendChild(s);
2478							}
2479						}; 
2480							
2481						svcrm.formBuilderScripts.processZipChange = function(rtn){
2482							var fldCity = document.getElementById(rtn.fldCityId);
2483							var fldState = document.getElementById(rtn.fldStateId);
2484
2485							if (rtn.city.length > 0 && fldCity != '')
2486								fldCity.value = rtn.city;
2487							else if (fldCity != '')
2488								fldCity.value = '';
2489								
2490							if (rtn.state.length > 0 && fldState != '') {
2491								for (var i = 0; i < fldState.options.length; i++) {
2492									if (fldState.options[i].value == rtn.state) {
2493										fldState.selectedIndex = i;
2494										break;
2495									}
2496								}
2497								if (i == fldState.options.length) fldState.selectedIndex = 0;
2498							} else if (fldState != '')
2499								fldState.selectedIndex = 0;
2500						};
2501					/* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/
2502
2503					/* +++++++++++++++++++++++++++ START Script Calendar +++++++++++++++++++++++++++++++++++++*/
2504						svcrm.formBuilderScripts.fbCalendar = {
2505							today: new Date(),
2506							monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
2507							dayList: ['S','M','T','W','T','F','S'],
2508
2509							dayListTds: function(){
2510								var rtn = '';
2511								for(var i = 0; i < this.dayList.length; i++){
2512									rtn += '<td align="center" class="Day" width="22">' + this.dayList[i] + '</td>';
2513								}
2514								return rtn;
2515							},
2516
2517							getPrevMonthDate: function (curDate) {
2518								var y = curDate.getFullYear();
2519								var m = curDate.getMonth();
2520								if (m === 0) { y -= 1; m = 12; }
2521								if (m.toString().length == 1) { m = '0' + m.toString(); }
2522								return m + '/01/' + y;
2523							},
2524
2525							getNextMonthDate: function (curDate) {
2526								var y = curDate.getFullYear();
2527								var m = curDate.getMonth() + 2;
2528								if (m == 13) { y += 1; m = 1; }
2529								if (m.toString().length == 1) { m = '0' + m.toString(); }
2530								return m + '/01/' + y;
2531							},
2532
2533							getPrevYearDate: function(curDate){
2534								var y = curDate.getFullYear()-1;
2535								var m = curDate.getMonth()+1;
2536								if (m.toString().length == 1) { m = '0' + m.toString(); }
2537								return m + '/01/' + y;
2538							},
2539
2540							getNextYearDate: function (curDate) {
2541								var y = curDate.getFullYear() + 1;
2542								var m = curDate.getMonth()+1;
2543								if (m.toString().length == 1) { m = '0' + m.toString(); }
2544								return m + '/01/' + y;
2545							},
2546
2547							getCurMonthName: function (curDate) {
2548								return this.monthNames[curDate.getMonth()];
2549							},
2550
2551							createCal: function (id, sDate, useToday) {
2552								try{
2553									if(sDate){
2554										sDate = new Date(sDate);
2555									}else{
2556										sDate = this.today;
2557									}
2558								} catch (e) {
2559									sDate = this.today;
2560								}
2561
2562								var d = {
2563									inDate: sDate,
2564									today: this.today,
2565									day: sDate.getDate(),
2566									month: sDate.getMonth() + 1,
2567									year: sDate.getFullYear(),
2568									prevMonth: this.getPrevMonthDate(sDate),
2569									nextMonth: this.getNextMonthDate(sDate),
2570
2571									calendar: '    '+
2572									'<div id="fbCalendar" align="center">    ' +
2573										'<div class="fbCalCloseBtn" onclick="svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(' + "'datepicker_" + id + "'" + '));">&nbsp;</div> '+
2574										'<table border="0" cellpadding="2" cellspacing="1" width="154">  '+
2575											'<tr>    '+
2576												'<td class="CH"> '+
2577													'<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevMonthDate(sDate) + '\');"><<</a>&nbsp;&nbsp;' + this.getCurMonthName(sDate) + '&nbsp;&nbsp;<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextMonthDate(sDate) + '\');">>></a> '+
2578												'</td>   '+
2579												'<td align="right" class="CH">   '+
2580													'<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevYearDate(sDate) + '\');"><<</a>&nbsp;&nbsp;' + sDate.getFullYear() + '&nbsp;&nbsp;<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextYearDate(sDate) + '\');">>></a>'+
2581												'</td>   '+
2582											'</tr>   '+
2583										'</table>    '+
2584										'<table border="0" cellpadding="2" cellspacing="1" width="154">  '+
2585											'<tr bgcolor="#ffffff">' + this.dayListTds() + '</tr>' + this.calDays(id, sDate, useToday) +
2586										'</table>    '+
2587									'</div>'
2588								};
2589
2590								return d.calendar;
2591							},
2592
2593							calDays: function(id, curDate, useToday){
2594								var rtnvar = '';
2595								var numDaysInMonth = new Date(curDate.getFullYear(), curDate.getMonth()+1, 0).getDate();
2596								var startofmonth = new Date();
2597								startofmonth = new Date(curDate.getFullYear(),curDate.getMonth(),1);
2598								var rows = Math.ceil((startofmonth.getDay()+numDaysInMonth)/7);
2599								var cday = 1;
2600								var firstday = startofmonth.getDay()+1;
2601								var lastday = numDaysInMonth;
2602
2603
2604								var loopstart = 0;
2605								var loopend = 0;
2606								var currentDate = new Date();
2607								currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
2608
2609								for(var i = 1; i <= rows; i++){
2610									rtnvar += '<tr bgcolor="#ffffff">';
2611									loopstart = ((i-1)*7)+1;
2612									loopend = loopstart+6;
2613									for(var d = loopstart; d <= loopend; d++){
2614										rtnvar += '<td align="center" bgcolor="#ffffff" class="Day">';
2615										if(d >= firstday && cday <= lastday){
2616											var dt = new Date(curDate.getFullYear(), curDate.getMonth(), cday);
2617											var tmpDt = new Date(curDate.getFullYear(), curDate.getMonth(), curDate.getDate());
2618											var className = (dt.getTime() == tmpDt.getTime() && useToday) ? 'today' : 'Day';
2619											className += dt.getTime() == currentDate.getTime() ? ' currentDay' : '';
2620
2621											var thisdate = this.convertToUserDate(parseInt(dt.getMonth()+1,10) +'/'+parseInt(dt.getDate(),10)+'/'+parseInt(dt.getFullYear(), 10));
2622
2623											rtnvar += '<a class="' + className + '" href="javascript:svcrm.formBuilderScripts.fbCalendar.updateDate(\'' + id + '\',\'' + thisdate + '\');">' + cday + '</a><br>';
2624											cday++;
2625										}else{
2626											rtnvar += '&nbsp;<br />';
2627										}
2628									}
2629									rtnvar += '</tr>';
2630								}
2631
2632								return rtnvar;
2633							},
2634
2635							replaceCal: function (id, sDate) {
2636								var cal = this.createCal(id, sDate, false);
2637								if (document.getElementById(id + '_calendar')) {
2638									document.getElementById(id + '_calendar').innerHTML = cal;
2639								} else {
2640									var newDomElm = document.createElement('div');
2641									newDomElm.style.position = 'absolute';
2642									newDomElm.innerHTML = cal;
2643									newDomElm.id = id + '_calendar';
2644									if (document.getElementById('fieldcontainer_' + id)) {
2645										document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);
2646									}
2647								}
2648
2649								return;
2650							},
2651
2652							updateDate: function(id, curDate){
2653								document.getElementById(id).value = curDate;
2654								//document.getElementById(id).onchange();
2655								if(document.getElementById(id + '_calendar')){
2656									document.getElementById('fieldcontainer_' + id).removeChild(document.getElementById(id + '_calendar'));
2657								}
2658
2659								if(document.getElementById('datepicker_' + id)){
2660									document.getElementById('datepicker_' + id).onclick = function(){
2661										svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(id), document.getElementById(id).value);
2662									};
2663								}
2664
2665							},
2666
2667							showDatePicker: function(domElm, curDate){
2668								var cleanID = domElm.id.replace('datepicker_', '');
2669								var sDate = new Date();
2670								if(!document.getElementById(cleanID + '_calendar')){
2671									if(document.getElementById(cleanID)){
2672										try{
2673											if(curDate){
2674												sDate = this.convertToUSDate(curDate);
2675												if(sDate == 'Invalid Date'){
2676													sDate = new Date();
2677												}
2678											}
2679										}catch(e){
2680											sDate = new Date();
2681										}
2682										this.getCalendar(cleanID, sDate);
2683									}
2684								}else{
2685									document.getElementById('fieldcontainer_' + cleanID).removeChild(document.getElementById(cleanID + '_calendar'));
2686								}
2687							},
2688
2689							getCalendar: function(id, curDate){
2690								var newDomElm = document.createElement('div');
2691								newDomElm.style.position = 'absolute';
2692								newDomElm.innerHTML = this.createCal(id, curDate, true);
2693								newDomElm.id = id + '_calendar';
2694								newDomElm.className = 'svcrm_datepicker';
2695								document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);
2696							},
2697
2698							convertToUSDate: function(dte){
2699								var rtnvar = false;
2700								var wrk = dte.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2701								var wrkdate = [];
2702								var mydate = '';
2703								if(wrk.length > 0){
2704									wrkdate[0] = parseInt(wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1],10); //always holds the day
2705									wrkdate[1] = parseInt(wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1],10); //always holds the month
2706									wrkdate[2] = parseInt(wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1],10); //always holds the year
2707
2708									if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months
2709										var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");
2710										var numdays = 31;
2711										if(wrkdate[1] == 2){//feb
2712											numdays = 28;
2713											//check if leap year
2714											if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){
2715												numdays = 29;
2716											}
2717										}else if(monthsWithDaysRegExp.test(wrkdate[1])){
2718											numdays = 30;
2719										}
2720
2721										if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month
2722											if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it
2723												wrkdate[2] = chkYear(wrkdate[2]);
2724											}
2725
2726											if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this
2727												/*
2728													we are here we have a valid month 
2729													and we have a valid day for that month 
2730													and we have a valid 4 digit year
2731												*/
2732												//fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2733												wrk[1] = wrkdate[0]; //put the day back where it should be
2734												wrk[0] = wrkdate[1]; //put the month back where it should be
2735												wrk[2] = wrkdate[2]; //put the year back where it should be
2736												wrkdate = wrk.join("/"); //join on the us delim and return valid
2737												rtnvar = true;
2738											}
2739										}   
2740									}
2741								}
2742
2743								if(!rtnvar){ //if we didn't get a good date from above we use today
2744									wrkdate = new Date();
2745								}
2746								return wrkdate;
2747							},
2748
2749							convertToUserDate: function(dte){
2750								var rtnvar = false;
2751								var wrk = dte.split("/");
2752								var wrkdate = [];
2753								var mydate = '';
2754								if(wrk.length > 0){
2755									wrkdate[0] = parseInt(wrk[1],10); //always holds the day
2756									wrkdate[1] = parseInt(wrk[0],10); //always holds the month
2757									wrkdate[2] = parseInt(wrk[2],10); //always holds the year
2758
2759									if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months
2760										var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");
2761										var numdays = 31;
2762										if(wrkdate[1] == 2){//feb
2763											numdays = 28;
2764											//check if leap year
2765											if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){
2766												numdays = 29;
2767											}
2768										}else if(monthsWithDaysRegExp.test(wrkdate[1])){
2769											numdays = 30;
2770										}
2771
2772										if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month
2773											if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it
2774												wrkdate[2] = chkYear(wrkdate[2]);
2775											}
2776
2777											if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this
2778												/*
2779													we are here we have a valid month 
2780													and we have a valid day for that month 
2781													and we have a valid 4 digit year
2782												*/
2783												//fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2784												wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1] = wrkdate[0]; //put the day back where it should be
2785												wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1] = wrkdate[1]; //put the month back where it should be
2786												wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1] = wrkdate[2]; //put the year back where it should be
2787												wrkdate = wrk.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); //join on the correct delim and return valid
2788												rtnvar = true;
2789											}
2790										}   
2791									}
2792								}
2793
2794								if(!rtnvar){ //I dont really know what to do here i guess just use today and convert to their date
2795									var t = new Date();
2796									t = t.getMonth()+1 + '/' + t.getDay() + '/' + t.getFullYear();
2797									wrkdate = this.convertToUserDate(t);
2798								}
2799								return wrkdate;
2800							},
2801
2802							convertToUserMDOnlyDate: function(dte){
2803								var dateFormat_MDOnly = crm_locale.DATEFMT_MDONLY.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2804								var _day = dte.getDate().toString();
2805								var _month = (dte.getMonth() + 1).toString();
2806								var _dayFormat = '';
2807								var _monthFormat = '';
2808								var _dayPostion = '';
2809								var _monthPostion = '';
2810
2811								if(dateFormat_MDOnly[0].indexOf('d') != -1){
2812									_dayFormat = dateFormat_MDOnly[0];
2813									_monthFormat = dateFormat_MDOnly[1];
2814									_dayPostion = 0;
2815									_monthPostion = 1;
2816								}else{
2817									_dayFormat = dateFormat_MDOnly[1];
2818									_monthFormat = dateFormat_MDOnly[0];
2819									_dayPostion = 1;
2820									_monthPostion = 0;
2821								}
2822
2823								if(_dayFormat == 'dd' && _day.length != 2){
2824									_day = '0' + _day;
2825								}
2826								if(_monthFormat == 'mm' && _month.length != 2){
2827									_month = '0' + _month;
2828								}
2829
2830								var dsp = [];
2831								dsp[_dayPostion] = _day;
2832								dsp[_monthPostion] = _month;
2833								dsp = dsp.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);
2834								return dsp;
2835							}
2836							
2837						};
2838					/* +++++++++++++++++++++++++++ END Script Calendar +++++++++++++++++++++++++++++++++++++*/
2839
2840					if (window.addEventListener) {
2841						window.addEventListener('load', svcrm.formBuilderScripts.__onload_function, false);
2842					} else if (window.attachEvent) {
2843						window.attachEvent('onload', svcrm.formBuilderScripts.__onload_function);
2844					}
2845				})();
2846			/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/			
2847		</script>
2847
2848	
2849		<style type="text/css">
2850			/*** Styling for Forms ***/
2851			form.simpleForm {}
2852			form.simpleForm fieldset {}
2853			form.simpleForm legend {}
2854			form.simpleForm label {}
2855			form.simpleForm label.label_hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;}
2856			form.simpleForm .formreq { color: #B30000;}
2857			form.simpleForm input[type="radio"], form.simpleForm input[type="checkbox"] {}
2858			form.simpleForm input[type="text"] {}
2859			form.simpleForm input.date { cursor: pointer;}
2860			form.simpleForm select {}
2861			form.simpleForm table { background: none; border: none; margin: 0;}
2862			form.simpleForm table tr td  { padding: 0;}
2863			form.simpleForm .captcha {}
2864			
2865			#capimage { height: 17px; width:17px;}
2866
2867			form.simpleForm .svcrm_datepicker {
2868				z-index: 3;
2869			}
2870			#fbCalendar{
2871				background-color: white;
2872				border:1px solid #336699; 
2873				border-radius:2px; 
2874				box-shadow: #336699 1px 1px;
2875			}
2876			#fbCalendar TD { font-size: 12px; font-family: Arial }	
2877			#fbCalendar .Day { font-size: 12px; color: #000000; border:1px solid transparent;}
2878			#fbCalendar .CH { font-size: 12px; color: #336699; font-weight: bold; bgcolor: #cccccc; }
2879			#fbCalendar A.today:link, #fbCalendar A.today:visited{text-decoration:none; color:#000000; font-weight: bold;}
2880			#fbCalendar A.today:hover{text-decoration:none; color:#CC3300; font-weight: bold;}	
2881			#fbCalendar A.Day:link, #fbCalendar A.Day:visited{text-decoration:none; color:#990000; font-weight: normal;}
2882			#fbCalendar A.Day:hover{text-decoration:none; color:#CC3300; font-weight: normal; border:1px solid #000000;}
2883			#fbCalendar A.CH:link, #fbCalendar A.CH:visited{text-decoration:none; color:#336699;}
2884			#fbCalendar A.CH:hover{text-decoration:none; color:#0033FF;}
2885			#fbCalendar A.close:link, #fbCalendar A.close:visited{font-size: 10px; text-decoration:none; color:#666666;}
2886			#fbCalendar A.close:hover{font-size: 10px; text-decoration:underline; color:#666666;}
2887			#fbCalendar A:link, #fbCalendar A:visited{text-decoration:none; color:#000099;}
2888			#fbCalendar A:hover{text-decoration:none; color:#0000FF;}
2889			#fbCalendar .currentDay{border:1px solid #336699; padding: 2px;}
2890			#fbCalendar div.fbCalCloseBtn{
2891				background:transparent url(http://PhiladelphiaPA.simpleviewcrm.com/core_crm/Resources/images/calx.gif) no-repeat;
2892				width:17px;
2893				height:13px;
2894				float:right;
2895				border:2px solid #ffffff;
2896			}
2897			#fbCalendar div.fbCalCloseBtn:hover{
2898				cursor: pointer;
2899				border:2px solid #336699;
2900			}
2901
2902			/*** Mobile ***/
2903			@media only screen and (max-width: 40em) {} 
2904			/*** Tablet ***/
2905			@media only screen and (min-width: 40.063em) and (max-width: 64em) {}
2906
2907			/*** Desktop  ***/
2908			@media only screen and (min-width: 64.063em) {
2909				form.simpleForm label { max-width: 430px; text-align: right;}
2910			} 
2911		</style>
2912			</div>
2913	</div>
2914
2915</div><!-- close #site -->
2916
2917
2918<script type="speculationrules">
2919{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pcvb/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2920</script>
vendor: 1 bytes, line 2920
2920
2921<script id="ajax-map-js-extra">
2922var myAjax = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php"};
2923//# sourceURL=ajax-map-js-extra
2924</script>
vendor: 1 bytes, line 2924
2924
2925<script id="ajax-map-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/js/map/ajax-map.js?ver=7.2"></script>
vendor: 1 bytes, line 2925
2925
2926<script id="push10-ajax-handler-js-extra">
2927var myAjax = {"ajaxurl":"https://www.discoverphl.com/wp-admin/admin-ajax.php"};
2928//# sourceURL=push10-ajax-handler-js-extra
2929</script>
vendor: 1 bytes, line 2929
2929
2930<script id="push10-ajax-handler-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/Push10AjaxHandler/js/ajax/push10-ajax.js?ver=1"></script>
vendor: 1 bytes, line 2930
2930
2931<script id="map-js" src="https://api.mapbox.com/mapbox-gl-js/v2.9.2/mapbox-gl.js?ver=1"></script>
vendor: 1 bytes, line 2931
2931
2932<script id="map_geo-js" src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v4.7.0/mapbox-gl-geocoder.min.js?ver=1"></script>
vendor: 1 bytes, line 2932
2932
2933<script id="simple_pagination-js" src="https://cdnjs.cloudflare.com/ajax/libs/simplePagination.js/1.6/jquery.simplePagination.js?ver=1"></script>
vendor: 1 bytes, line 2933
2933
2934<script id="custom-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/dist/javascript.min.js?ver=1790150693"></script>
vendor: 1 bytes, line 2934
2934
2935<script id="pcvb-newsletter-pop-out-script-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/newsletter-pop-out/pcvb-newsletter-popout.js?ver=1790150694"></script>
vendor: 1 bytes, line 2935
2935
2936<script id="gt_widget_script_36616898-js-before">
2937window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['36616898'] = {"default_language":"en","languages":["zh-CN","nl","en","fr","de","it","pt","ru","es"],"url_structure":"none","detect_browser_language":1,"wrapper_selector":"#gt-wrapper-36616898","horizontal_position":"inline","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"};
2938//# sourceURL=gt_widget_script_36616898-js-before
2939</script>
2939<script src="https://www.discoverphl.com/wp-content/plugins/gtranslate/js/ln.js?ver=3.1.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/blog-post/philadelphia-2026/" data-gt-orig-domain="www.discoverphl.com" data-gt-widget-id="36616898" defer></script>
2939<script id="gt_widget_script_35308157-js-before">
2940window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['35308157'] = {"default_language":"en","languages":["zh-CN","nl","en","fr","de","it","pt","ru","es"],"url_structure":"none","detect_browser_language":1,"wrapper_selector":"#gt-wrapper-35308157","horizontal_position":"inline","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"};
2941//# sourceURL=gt_widget_script_35308157-js-before
2942</script>
2942<script src="https://www.discoverphl.com/wp-content/plugins/gtranslate/js/ln.js?ver=3.1.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/blog-post/philadelphia-2026/" data-gt-orig-domain="www.discoverphl.com" data-gt-widget-id="35308157" defer></script>
2942<script id="cb05_related_content_columns-js" src="https://www.discoverphl.com/wp-content/themes/pcvb/assets/js/blocks/cb05_related_content_columns.js?ver=1790150694"></script>
vendor: 1 bytes, line 2942
2942
2943<script id="wp-emoji-settings" type="application/json">
2944{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.discoverphl.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
2945</script>
vendor: 1 bytes, line 2945
2945
2946<script type="module">
2947/*! This file is auto-generated */
2948var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
2949//# sourceURL=https://www.discoverphl.com/wp-includes/js/wp-emoji-loader.min.js
2950</script>
2950
2951
2952<script>
2953    /*<![CDATA[*/
2954    (function(w, a, b, d, s) {
2955        w[a] = w[a] || {};
2956        w[a][b] = w[a][b] || {
2957            q: [],
2958            track: function(r, e, t) {
2959                this.q.push({
2960                    r: r,
2961                    e: e,
2962                    t: t || +new Date
2963                });
2964            }
2965        };
2966        var e = d.createElement(s);
2967        var f = d.getElementsByTagName(s)[0];
2968        e.async = 1;
2969        e.src = '//marketing.discoverphl.com/cdnr/forpci85/acton/bn/tracker/45609';
2970        f.parentNode.insertBefore(e, f);
2971    })(window, 'ActOn', 'Beacon', document, 'script');
2972    ActOn.Beacon.track(); /*]]>*/
2973</script>
vendor: 1 bytes, line 2973
2973
2974<script type="text/javascript">
2975    ! function() {
2976        if (!document.querySelector("[src*='7512D3C0-5EF5-ABB9-7FDD-7C76C78FA269']")) {
2977            var e = document.createElement("script");
2978            e.type = "text/javascript", e.async = !0, e.src = "//www.rtb123.com/tags/7512D3C0-5EF5-ABB9-7FDD-7C76C78FA269/btp.js";
2979            var t = document.getElementsByTagName("head")[0];
2980            t ? t.appendChild(e, t) : (t = document.getElementsByTagName("script")[0]).parentNode.insertBefore(e, t)
2981        }
2982    }();
2983</script>
2983
2984
2985
2986<script>
2987    document.addEventListener('DOMContentLoaded', function() {
2988        var popup = document.getElementById('popup');
2989        var closePopupBtn = document.getElementById('closePopupBtn');
2990        var popupButton = document.getElementById('popupButton');
2991
2992        function showPopup() {
2993            if (popup) {
2994
2995                popup.style.display = 'flex';
2996            }
2997        }
2998
2999        function hidePopup() {
3000            if (popup) {
3001
3002                popup.style.display = 'none';
3003            }
3004            localStorage.setItem('popupDisplayed', new Date().toISOString());
3005        }
3006
3007        function shouldShowPopup() {
3008            var lastDisplayed = localStorage.getItem('popupDisplayed');
3009            if (!lastDisplayed) return true;
3010
3011            var lastDisplayedDate = new Date(lastDisplayed);
3012            var now = new Date();
3013
3014            return lastDisplayedDate.toDateString() !== now.toDateString();
3015        }
3016
3017        if (shouldShowPopup()) {
3018            showPopup();
3019        }
3020
3021        closePopupBtn.onclick = hidePopup;
3022        popupButton.onclick = hidePopup;
3023
3024        window.onclick = function(event) {
3025            if (event.target == popup) {
3026                hidePopup();
3027            }
3028        }
3029    });
3030
3031    function clickready() {
3032        jQuery("#cb27-keyword-clear").on('click', function() {
3033            jQuery('#cb27-keyword-submit')[0].click();
3034        })
3035    }
3036
3037    setTimeout(clickready, 3000);
3038</script>
3038
3039
3040<script>
3041    document.addEventListener("DOMContentLoaded", function() {
3042        if (document.body.classList.contains('page-id-12466')) {
3043            // Detect iOS Safari only
3044
3045
3046            // Only run on iOS devices
3047            const isIOS = /iphone|ipad|ipod/i.test(navigator.userAgent) && !!navigator.maxTouchPoints;
3048            if (!isIOS) return;
3049
3050            const tables = document.querySelectorAll(".page-id-12466.interior-page .wysiwyg .tablepress");
3051
3052            tables.forEach(function(table) {
3053
3054                // Create track + thumb
3055                const track = document.createElement("div");
3056                track.classList.add("ios-scroll-track");
3057
3058                const thumb = document.createElement("div");
3059                thumb.classList.add("ios-scroll-thumb");
3060
3061                track.appendChild(thumb);
3062                table.parentNode.insertBefore(track, table.nextSibling);
3063
3064                // Calculate and update thumb width + position
3065                function updateThumb() {
3066                    const ratio = table.clientWidth / table.scrollWidth;
3067                    if (ratio >= 1) {
3068                        track.style.display = "none"; // Hide if no scroll needed
3069                        return;
3070                    }
3071                    track.style.display = "block";
3072                    const thumbWidth = Math.max(ratio * track.offsetWidth, 30);
3073                    const maxScroll = table.scrollWidth - table.clientWidth;
3074                    const scrollRatio = maxScroll > 0 ? table.scrollLeft / maxScroll : 0;
3075                    const maxThumbLeft = track.offsetWidth - thumbWidth;
3076
3077                    thumb.style.width = thumbWidth + "px";
3078                    thumb.style.left = (scrollRatio * maxThumbLeft) + "px";
3079                }
3080
3081                // Small delay so layout is fully rendered before first calculation
3082                setTimeout(updateThumb, 100);
3083                window.addEventListener("resize", updateThumb);
3084
3085                // Sync table scroll → thumb
3086                table.addEventListener("scroll", updateThumb);
3087
3088                // Click on track → jump table scroll
3089                track.addEventListener("click", function(e) {
3090                    if (e.target === thumb) return; // ignore clicks on thumb itself
3091                    const rect = track.getBoundingClientRect();
3092                    const clickX = e.clientX - rect.left;
3093                    const ratio = clickX / track.offsetWidth;
3094                    table.scrollLeft = ratio * (table.scrollWidth - table.clientWidth);
3095                });
3096
3097                // Drag thumb to scroll table
3098                let isDragging = false;
3099                let startX = 0;
3100                let startScrollLeft = 0;
3101
3102                thumb.addEventListener("touchstart", function(e) {
3103                    isDragging = true;
3104                    startX = e.touches[0].clientX;
3105                    startScrollLeft = table.scrollLeft;
3106                    e.preventDefault(); // Prevent page scroll while dragging thumb
3107                }, {
3108                    passive: false
3109                });
3110
3111                document.addEventListener("touchmove", function(e) {
3112                    if (!isDragging) return;
3113                    const dx = e.touches[0].clientX - startX;
3114                    const trackScrollableWidth = track.offsetWidth - thumb.offsetWidth;
3115                    if (trackScrollableWidth <= 0) return;
3116                    const scrollRatio = (table.scrollWidth - table.clientWidth) / trackScrollableWidth;
3117                    table.scrollLeft = startScrollLeft + (dx * scrollRatio);
3118                    updateThumb();
3119                }, {
3120                    passive: true
3121                });
3122
3123                document.addEventListener("touchend", function() {
3124                    isDragging = false;
3125                });
3126
3127            });
3128
3129
3130        }
3131    });
3132</script>
3132
3133
3134<script id='satisfiScript' src='https://chat.satis.fi/popup/embedder?popupId=18789'></script>
3134
3135<img src="//advertiser-conversion.clicktripz.com/api/advertisers/v2/conversions?advertiserID=682&format=image" />
3136<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-ffbc3c15bbce2bcb1ca","applicationID":"1318524340","transactionName":"bgNbbUtRWUVVBRIMDldJeFpNWVhYGxUPCwZVAw==","queueTime":0,"applicationTime":2653,"atts":"QkRYGwNLSks=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3136</body>
3137
3138<script type="text/javascript" src="https://snapsea.fra1.cdn.digitaloceanspaces.com/assets/12162022-gallery.js" async></script>
3138
3139
3140</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.