CINXE.COM
Our Values | Code.org
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script charset="UTF-8" src="https://cdn.cookielaw.org/consent/27cca70a-7db3-4852-9ef0-a6660fd0977d/OtAutoBlock.js" type="text/javascript"></script> <script charset="UTF-8" data-domain-script="27cca70a-7db3-4852-9ef0-a6660fd0977d" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript"></script> <script> function OptanonWrapper() { } </script> <meta content="EWBLxcxuqqtcdWikkxAOnMoaawa6XDoEPlvwO6wOg-A" name="google-site-verification"> <meta content="Code.org" property="og:site_name"> <meta content="Our Values" property="og:title"> <meta content="500177453358606" property="fb:app_id"> <meta content="article" property="og:type"> <meta content="https://www.facebook.com/Code.org" property="article:publisher"> <meta content="https://code.org/about/values" property="og:url"> <meta content="https://code.org/images/default-og-image.png" property="og:image"> <meta content="1220" property="og:image:width"> <meta content="640" property="og:image:height"> <meta content="https://code.org/images/default-og-image.png" property="twitter:image:src"> <title>Our Values | Code.org</title> <link href="/images/favicon.ico" rel="shortcut icon"> <link href="/images/apple-touch-icon-precomposed.png" rel="apple-touch-icon"> <script src="https://www.googleoptimize.com/optimize.js?id=OPT-KBX3C3L"></script> <script data-statsig-api-client-key="client-vmRbxXpfzwSHFlsYHgqFMfMqa6zFnr7PHfZYnhNtItg"></script> <script data-managed-test-server="false"></script> <script data-ge-region=""></script> <link href="/css/generated/fonts.css" rel="stylesheet" type="text/css"> <link href="/style.css" rel="stylesheet" type="text/css"> <style> .user_menu,.create_menu,.help_button{user-select:none;height:38px;position:relative}.user_menu .create_button,.user_menu .display_name,.user_menu .pairing_name,.create_menu .create_button,.create_menu .display_name,.create_menu .pairing_name,.help_button .create_button,.help_button .display_name,.help_button .pairing_name{max-width:120px;display:inline-block;float:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rtl .user_menu .create_button,.rtl .user_menu .display_name,.rtl .user_menu .pairing_name,.rtl .create_menu .create_button,.rtl .create_menu .display_name,.rtl .create_menu .pairing_name,.rtl .help_button .create_button,.rtl .help_button .display_name,.rtl .help_button .pairing_name{float:right;padding-left:3px}.user_menu .user_menu_arrow_down,.user_menu .user_menu_arrow_up,.user_menu .create_menu_arrow_down,.user_menu .create_menu_arrow_up,.create_menu .user_menu_arrow_down,.create_menu .user_menu_arrow_up,.create_menu .create_menu_arrow_down,.create_menu .create_menu_arrow_up,.help_button .user_menu_arrow_down,.help_button .user_menu_arrow_up,.help_button .create_menu_arrow_down,.help_button .create_menu_arrow_up{font-size:1.5rem;margin-top:-4px}.rtl .user_menu .user_menu_arrow_down,.rtl .user_menu .user_menu_arrow_up,.rtl .user_menu .create_menu_arrow_down,.rtl .user_menu .create_menu_arrow_up,.rtl .create_menu .user_menu_arrow_down,.rtl .create_menu .user_menu_arrow_up,.rtl .create_menu .create_menu_arrow_down,.rtl .create_menu .create_menu_arrow_up,.rtl .help_button .user_menu_arrow_down,.rtl .help_button .user_menu_arrow_up,.rtl .help_button .create_menu_arrow_down,.rtl .help_button .create_menu_arrow_up{float:left}html[dir='rtl'] .user_menu .user_menu_arrow_down,html[dir='rtl'] .user_menu .user_menu_arrow_up,html[dir='rtl'] .user_menu .create_menu_arrow_down,html[dir='rtl'] .user_menu .create_menu_arrow_up,html[dir='rtl'] .create_menu .user_menu_arrow_down,html[dir='rtl'] .create_menu .user_menu_arrow_up,html[dir='rtl'] .create_menu .create_menu_arrow_down,html[dir='rtl'] .create_menu .create_menu_arrow_up,html[dir='rtl'] .help_button .user_menu_arrow_down,html[dir='rtl'] .help_button .user_menu_arrow_up,html[dir='rtl'] .help_button .create_menu_arrow_down,html[dir='rtl'] .help_button .create_menu_arrow_up{float:left}.user_menu .user_menu_arrow_up,.user_menu .create_menu_arrow_up,.create_menu .user_menu_arrow_up,.create_menu .create_menu_arrow_up,.help_button .user_menu_arrow_up,.help_button .create_menu_arrow_up{margin-top:-2px}.user_menu .user_options,.user_menu .create_options,.create_menu .user_options,.create_menu .create_options,.help_button .user_options,.help_button .create_options{top:50px}.user_menu .help_contents,.create_menu .help_contents,.help_button .help_contents{top:58px}.user_menu .user_options,.user_menu .create_options,.user_menu .help_contents,.create_menu .user_options,.create_menu .create_options,.create_menu .help_contents,.help_button .user_options,.help_button .create_options,.help_button .help_contents{position:absolute;right:0px;background-color:#fff;border:1px solid #5b6770}.user_menu .user_options a,.user_menu .create_options a,.user_menu .help_contents a,.create_menu .user_options a,.create_menu .create_options a,.create_menu .help_contents a,.help_button .user_options a,.help_button .create_options a,.help_button .help_contents a{color:#5b6770 !important;transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-moz-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-webkit-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;-o-transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out}.user_menu .user_options a:hover,.user_menu .create_options a:hover,.user_menu .help_contents a:hover,.create_menu .user_options a:hover,.create_menu .create_options a:hover,.create_menu .help_contents a:hover,.help_button .user_options a:hover,.help_button .create_options a:hover,.help_button .help_contents a:hover{background-color:#e7e8ea;text-decoration:none}.user_menu{padding:7px 14px}.user_menu .user_options{z-index:100001;text-align:left;white-space:nowrap;padding:0}.user_menu .user_options[dir='rtl'] a{text-align:right}.user_menu .user_options .display_name{font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal;background-color:#5b6770;color:#fff;padding:10px;text-align:center;cursor:default}.user_menu .user_options a{display:block;padding:10px;font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal}.user_menu .user_options a+a{border-top:1px solid #5b6770}.user_menu .user_options.hide-responsive-menu{display:none}.help_button{padding-left:16px;padding-top:4px;display:inline-block;float:left;z-index:99;position:relative}.help_button.hide-mobile{display:block}.help_button .hide-mobile{display:block}@media (max-width: 1268px){.help_button.show-small-desktop,.help_button .show-small-desktop{display:none}}.help_button .help_icon{padding:11px 0 16px 0;font-size:22px;color:#fff;cursor:pointer;height:20px;vertical-align:middle;text-decoration:none}.help_button .help_contents{z-index:100001;text-align:left;white-space:nowrap;padding:0;right:0px}.help_button .help_contents[dir='rtl'] a{text-align:right}.help_button .help_contents a{display:block;padding:10px;font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal}.help_button .help_contents a+a{border-top:1px solid #5b6770}@media (max-width: 1023px){.help_button.hide-mobile{display:none}.help_button .hide-mobile{display:none}}.create_menu .create_options{width:max-content;z-index:10000;border-bottom:0}.create_menu .create_options a{font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:600;font-style:normal;min-width:240px;font-size:14px;border-bottom:1px solid #5b6770;box-sizing:content-box;white-space:nowrap;cursor:pointer}.create_menu .create_options img{height:70px;width:70px}.create_menu .create_options .project_link_box{display:block}.create_menu .create_options .project_link_box .project_link{display:inline-block;padding:0 10px 0 4px;line-height:67px}.create_menu .create_options #view_all_projects{height:70px;padding-left:10px}@media screen and (max-width: 1023px){.create_menu.show-small-desktop{display:none !important}}@media screen and (max-width: 1120px){.create_menu.hide-mobile{display:none}} </style> <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <link href="/css/brstrap.css" rel="stylesheet" type="text/css"> <link href="/css/common.css" rel="stylesheet" type="text/css"> <link href="/css/video-responsive.css" rel="stylesheet" type="text/css"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"10f957f1ae","applicationID":"3346604","transactionName":"IV8LTUAOWVwER0ljWAxREUtTThpRA1oTRB4UUQlMVxI=","queueTime":0,"applicationTime":175,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["*"]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0}};(window.NREUM||(NREUM={})).loader_config={xpid:"UQYGVVBQGwADUFdUBwU=",licenseKey:"10f957f1ae",applicationID:"3346604"};;/*! For license information please see nr-loader-full-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>d});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function d(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const d="[data-nr-mask]",u=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,u());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},d={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},u={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!u[e])throw new Error("Runtime for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");u[e]={...(0,n.a)(t,d),...c},Object.hasOwnProperty.call(u[e],"harvestCount")||Object.defineProperty(u[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=u[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=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)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>d});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function d(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function u(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(u(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>d});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),d=function e(t,r){var n={},s={},u={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(d.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),u=c.length,l=0;l<u;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=d)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function d(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>d,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function d(e){let t=a();return t.initializedAgents?.[e]}function u(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(d+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(u+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],d=e[c];u(d)||(e[c]=r(d,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return u(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){d([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,u,l;try{a=this,o=[...arguments],u="function"==typeof n?n(o,a):n||{}}catch(t){d([t,"",[o,a,s],u],e)}i(r+"start",[o,a,s],u,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],u,c),e}finally{i(r+"end",[o,a,l],u,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){d([t,r,n,i],e)}s=a}}}function d(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function u(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},d={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},u=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>d,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function d(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,d="fn"+s,u="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),d=r(5289),u=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),_=r(5603),O=r(5284);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function P(e,t={},p,x){let{init:w,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(w=H.init,P=H.info,j=H.loader_config),(0,S.xN)(e.agentIdentifier,w||{}),(0,_.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},u.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,S.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];I||(D.proxy.assets&&(N(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");E[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),T(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(A,e,!0,"api")})),p.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},u.RI?(0,d.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-Sx2xJQrHp2m/Ngn/ZcfBCUwNr2Xy/C5urYtWpfm3bWpil4spXOQGTtNwIfF5HvPGioGASn9QTyE4Z+zC7r7wcg==",222:"sha512-hMte3OWgwwYeisSiD7WCIx/6tT16zLaPjag9uF4tIZp7ybOvrJKbeyzhe4fz1tDbkdcdOMm8dvgPPLBatSAGeA==",95:"sha512-MPaT9dkHv16XzwEUVZPyqpN1do/Er1XFAZoIAPYWylmv+iGIThqN+GwQq27pUyAX7sNXVJQVZezH96p53Ks3Pg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={959:0,85:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,d=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);d<a.length;d++)o=a[d],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function d(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(891).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class _ extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),g.RI&&((0,T.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let M=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,U,(function(){return M++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===d||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",Q=["arrayBuffer","blob","json","text","formData"],J=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(J&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,Q.forEach((e=>{r(J[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),d={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),de=["load","error","abort","timeout"],ue=de.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function d(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 u(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&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,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",d),t.on("xhr-load-added",u),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class _e extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#d=!1;async#c(e){if(!this.#d){this.#d=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];g.RI&&e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785);class ke extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=d(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,_e,Ne,he,N,L,Pe,ke],loaderType:"pro"})})()})();</script> <script data-ot-ignore="" src="/js/jquery.min.js"></script> <!-- GA4 measurement ID for code.org --> <script> window.userAnalyticsDimensions = { 'dimension1': 'en', 'dimension4': '', }; </script> <!-- Google tag (gtag.js) --> <script async="" src="https://www.googletagmanager.com/gtag/js?id=G-L9HT5MZ3HD"></script> <script data-googlemeasurement='{"id":"G-L9HT5MZ3HD"}' src="/assets/js/code.org/views/theme_google_analyticswp378ab7644ebc46817c7d.min.js"></script> <script data-ot-ignore="" src="/assets/js/en_us/common_localewpbd06ee05559ebc680331.js"></script> <script data-ot-ignore="" src="/assets/js/webpack-runtimewpa39b0df234fa5e9ca808.min.js"></script> <script data-ot-ignore="" src="/assets/js/vendorswp6da692c4044e8d40185c.min.js"></script> <script data-ot-ignore="" defer src="/assets/js/code.org/views/theme_common_head_afterwpe37dbb32a2eb9f423f95.min.js"></script> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript> <iframe height="0" src="https://www.googletagmanager.com/ns.html?id=GTM-TZZBRK5" style="display:none;visibility:hidden" width="0"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> <style> #warning-banner{position:absolute;z-index:1000;overflow:hidden;width:100%;box-sizing:border-box;padding:1rem;background-color:#6C468A;display:flex;align-items:center;gap:0.75rem}#warning-banner #dismiss-icon{margin-left:auto}#warning-banner #warning-icon{padding-right:10px}#warning-banner a,#warning-banner a:visited{font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:700;font-style:normal;color:white;text-decoration:underline}#warning-banner a:hover{background:transparent}#warning-banner p{color:#FFFFFF;margin-bottom:0;font-size:0.875rem}#warning-banner #message{float:left;width:90%}#warning-banner #hide-warning{position:relative}#warning-banner #hide-warning .close{float:right;font-size:20px}.warning-sign{font-size:16px;color:#efcd1c} </style> <div class="wrapper"> <div id="warning-banner" style="display: none;"> <i class="fa fa-warning warning-sign"></i> <p>Your browser is not supported. Please upgrade your browser to <a href="https://support.code.org/hc/en-us/articles/202591743">one of our supported browsers</a>. You can try viewing the page, but expect functionality to be broken.</p> </div> <style> #pageheader-wrapper{z-index:99}#hamburger{display:inline-block;position:relative}#hamburger.hide-always{display:none}#hamburger.show-mobile{display:none}#hamburger.hide-mobile{display:block}#hamburger.show-always{display:block}#hamburger .hide-always{display:none}#hamburger .show-mobile{display:none !important}#hamburger .hide-mobile{display:block}#hamburger .show-always{display:block}#hamburger.show-small-desktop,#hamburger .show-small-desktop{display:none}#hamburger #hamburger-icon{cursor:pointer;height:20px;vertical-align:middle;text-decoration:none}#hamburger #hamburger-contents{font-size:1rem;list-style:none;margin:0;width:290px;position:absolute;top:64px;inset-inline-end:0;background-color:#0093A4;max-height:100vh;overflow-y:auto;border-radius:4px;box-shadow:0px 2px 6px rgba(0,0,0,0.2);z-index:1022}#hamburger #hamburger-contents .item{color:#fff;line-height:1.5;text-indent:0;list-style-type:none;margin-block:1rem;margin-inline:1rem;display:flex;justify-content:space-between;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hamburger #hamburger-contents .item:last-of-type{border-bottom:none}#hamburger #hamburger-contents .item::before{content:none}#hamburger #hamburger-contents .item a{font-family:"Metropolis", "Noto Sans", "Noto Sans Math", "Noto Sans Arabic", "Noto Sans Armenian", "Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC", "Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer", "Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai", "Noto Sans Thaana", sans-serif;font-weight:400;font-style:normal;color:#fff;text-decoration:none}#hamburger #hamburger-contents .item a html[dir=rtl],.rtl #hamburger #hamburger-contents .item a{float:right}#hamburger #hamburger-contents.hide-responsive-menu{display:none}#hamburger #hamburger-contents .hide-about{display:none}#hamburger #hamburger-contents .hide-educate{display:none}#hamburger #hamburger-contents .hamburger-expandable-item{cursor:pointer}#hamburger #hamburger-contents .hamburger-expandable-item .text{float:left;max-width:210px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#hamburger #hamburger-contents .hamburger-expandable-item .text html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .text{float:right}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-down,#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{font-size:1.5rem;float:right;margin-block-start:-4px}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-down html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .arrow-down,#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up html[dir=rtl],.rtl #hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{float:left}#hamburger #hamburger-contents .hamburger-expandable-item .arrow-up{display:none}#hamburger #hamburger-contents .hamburger-expandable-item i{width:unset}#hamburger #hamburger-contents .hamburger-expandable-items{margin-left:20px;display:none}#hamburger #hamburger-contents .hamburger-expandable-items .item{max-width:220px;margin-top:0px}#hamburger #hamburger-contents .divider{height:1px;background:#007785;margin:0.75rem 0}@media (min-width: 1269px){#hamburger #hamburger-contents .divider.hide-large-desktop{display:none !important}}@media (max-width: 1268px){#hamburger.show-small-desktop,#hamburger .show-small-desktop{display:block !important}}@media (max-width: 1023px){#hamburger.show-mobile,#hamburger .show-mobile{display:block !important}#hamburger .show-mobile.item{display:flex !important}#hamburger.hide-mobile,#hamburger .hide-mobile{display:none}#hamburger #hamburger{padding-left:0}}#hamburger:not(.user-is-tabbing){outline:none}#hamburger #hamburger-icon{padding:10px 28px 16px 0;float:right;margin-top:7px;margin-inline-start:3px;display:inline-block}#hamburger #hamburger-icon span,#hamburger #hamburger-icon span::before,#hamburger #hamburger-icon span::after{cursor:pointer;height:3px;width:25px;border-radius:2px;background:#fff;position:absolute;display:block;content:'';margin-top:2px;margin-bottom:2px}#hamburger #hamburger-icon span{transition:all 500ms ease-in-out}html[dir=rtl] #hamburger #hamburger-icon span{margin-right:-25px}html[dir=rtl] #hamburger #hamburger-icon span::before{margin-right:0}html[dir=rtl] #hamburger #hamburger-icon span::after{margin-right:0}#hamburger #hamburger-icon span::before{transition:all 500ms ease-in-out;top:-10px}#hamburger #hamburger-icon span::after{transition:all 500ms ease-in-out;bottom:-10px}#hamburger #hamburger-icon.active span{background-color:transparent}#hamburger #hamburger-icon.active span::before{top:-2px;transform:rotate(45deg)}#hamburger #hamburger-icon.active span::after{top:-2px;transform:rotate(-45deg)}#hamburger-sign-up-buttons .button-wrapper{box-sizing:border-box;background-color:#0093A4;text-align:center;padding:1rem 1rem 0.5rem;display:flex;flex-direction:column;gap:0.5rem}#hamburger-sign-up-buttons .button-wrapper .header_button{margin:unset;width:100%;text-align:center}@media (min-width: 426px){#hamburger-sign-up-buttons{display:none}} </style> <nav class="main"> <div class="left"> <a href="//code.org"> <img alt="Code.org Home" class="logo" src="/images/logo.svg"> </a> <ul id="headerlinks"> <li class="hide-mobile"> <a class="headerlink" href="//code.org/students" id="header-learn">Learn</a> </li> <li class="hide-mobile"> <a class="headerlink" href="//code.org/teach" id="header-teach">Teach</a> </li> <li class="hide-mobile"> <a class="headerlink" href="//code.org/administrators" id="header-districts">Districts</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/promote" id="header-stats">Stats</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/help" id="header-help">Help Us</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//studio.code.org/incubator" id="header-incubator">Incubator</a> </li> <li class="hide-small-desktop"> <a class="headerlink" href="//code.org/about" id="header-about">About</a> </li> </ul> </div> <div class="right"> <script data-amplitude-api-key="f6db63e17bf19aabe85f563a7fdab4ad"></script> <script data-statsig-api-client-key="client-vmRbxXpfzwSHFlsYHgqFMfMqa6zFnr7PHfZYnhNtItg"></script> <script data-managed-test-server="false"></script> <script data-createmenuoptions='["spritelab","artist","applab","gamelab","dance","music","view_all"]' data-issignedout="true" data-pageactionname="null" data-pagecontrollername="null" data-usertype="null" src="/assets/js/userHeaderEventLoggerwp99f123b7e42f09336968.min.js"></script> <div class="header_button create_menu show-small-desktop" id="header_create_menu" role="button" tabindex="0"> <span class="create_button"> New project </span> <i class="create_menu_arrow_down fa fa-caret-down"></i> <i class="create_menu_arrow_up fa fa-caret-up" style="display: none"></i> <div class="create_options" dir="ltr" style="display: none"> <a class="project_link_box" href="//studio.code.org/projects/spritelab/new" id="create_menu_option_spritelab"> <img src="/shared/images/fill-70x70/courses/logo_spritelab.png"> <div class="project_link" id="create_dropdown_spritelab"> <div class="text">Sprite Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/artist/new" id="create_menu_option_artist"> <img src="/shared/images/fill-70x70/courses/logo_artist.png"> <div class="project_link" id="create_dropdown_artist"> <div class="text">Artist </div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/applab/new" id="create_menu_option_applab"> <img src="/shared/images/fill-70x70/courses/logo_applab_square.png"> <div class="project_link" id="create_dropdown_applab"> <div class="text">App Lab </div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/gamelab/new" id="create_menu_option_gamelab"> <img src="/shared/images/fill-70x70/courses/logo_gamelab_square.png"> <div class="project_link" id="create_dropdown_gamelab"> <div class="text">Game Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects/dance/new" id="create_menu_option_dance"> <img src="/shared/images/fill-70x70/courses/logo_dance.png"> <div class="project_link" id="create_dropdown_dance"> <div class="text">Dance Party</div> </div> </a> <a class="project_link_box" href="//code.org/music" id="create_menu_option_music"> <img src="/shared/images/fill-70x70/courses/logo_music.png"> <div class="project_link" id="create_dropdown_music"> <div class="text">Music Lab</div> </div> </a> <a class="project_link_box" href="//studio.code.org/projects" id="create_menu_option_view_all"> <div class="project_link" id="view_all_projects"> View all projects... </div> </a> </div> </div> <a class="linktag button-signin desktop" href="//studio.code.org/users/sign_in" id="signin_button"> <div class="header_button header_user" id="header_user_signin"> <span>Sign in</span> </div> </a> <a class="linktag button-create-account desktop" href="//studio.code.org/users/sign_up" id="create_account_button"> <div class="header_button header_user" id="header_user_create_account"> <span>Create account</span> <div class="signin_callout_wrapper"></div> </div> </a> <script> window.cookieEnvSuffix = ''; // Use function closure to avoid cluttering global namespace. (function() { // Ideally would use environment_specific_cookie_name, but that's not currently // available to us in pegasus var cookieKey = '_shortName' + window.cookieEnvSuffix; // Share cookie with top-level domain. var topLevelDomain = document.location.hostname.split('.').slice(-2).join('.'); // Provide current_user.short_name to cached pages via session cookie. // There is apps code that also depends on this query-selector, so if changes are made // here we should be sure to also update other locations. var displayNameSpan = document.querySelector('#header_display_name'); function retrieveUserShortName(element) { if (element) { var cookieMeta = "path=/;domain=" + topLevelDomain; var cookieMatch = document.cookie.match('(^|;) ?' + cookieKey + '=([^;]*)(;|$)'); var storedName = cookieMatch && cookieMatch[2]; var dataName = element.dataset.shortname; var id = element.dataset.id; if (storedName && !id) { // Use textContent to prevent HTML injection vulnerability element.textContent = element.textContent.replace(dataName, decodeURI(storedName)); } } } retrieveUserShortName(displayNameSpan); function hideUserOptions() { $('.user_options').slideUp(); $('.user_menu_arrow_down').show(); $('.user_menu_arrow_up').hide(); $(document).off('click', hideUserOptions); } $(document).ready(function() { $('.user_menu').on('keypress click', function (e) { if ((e.type === 'keypress' && e.which === 13) || e.type === 'click') { if ($('.user_options').is(':hidden')) { e.stopPropagation(); $('.user_options').slideDown(); $('.user_menu_arrow_down').hide(); $('.user_menu_arrow_up').show(); $(document).on('keypress click', hideUserOptions); hideCreateOptions() $("#hamburger-icon").removeClass('active'); $("#help-icon").removeClass('active'); $('#hamburger #hamburger-contents').slideUp(); $('#help-button #help-contents').slideUp(); } } }); $('.user_options').click(function (e) { e.stopPropagation(); // Clicks inside the popup shouldn't close it }); $('.user_options a:last').click(function (e) { // this partial can be on non-dashboard pages. if (typeof dashboard !== 'undefined') { dashboard.clientState.reset(); } else { // Keep in sync with clientState#reset. try { sessionStorage.clear(); } catch (e) {} } }); }); function hideCreateOptions() { $('.create_options').slideUp(); $('.create_menu_arrow_down').show(); $('.create_menu_arrow_up').hide(); $(document).off('click', hideCreateOptions); } $(document).ready(function() { $('.create_menu').on('keypress click', function (e) { if ((e.type === 'keypress' && e.which === 13) || e.type === 'click') { if ($('.create_options').is(':hidden')) { e.stopPropagation(); $('.create_options').slideDown(); $('.create_menu_arrow_down').hide(); $('.create_menu_arrow_up').show(); $(document).on('keypress click', hideCreateOptions); hideUserOptions() $("#hamburger-icon").removeClass('active'); $("#help-icon").removeClass('active'); $('#hamburger #hamburger-contents').slideUp(); $('#help-button #help-contents').slideUp(); } } }); $('.create_options').click(function (e) { e.stopPropagation(); // Clicks inside the popup shouldn't close it }); }); if (typeof dashboard !== 'undefined') { dashboard.pairing.init('//studio.code.org/pairing', hideUserOptions, false); } })(); </script> <div aria-label="Help Menu" class="help_button show-small-desktop" id="help-button" tabindex="0"> <div class="help_contents" dir="ltr" id="help-contents" style="display: none"> <a class="linktag" href="https://support.code.org" id="support" rel="noopener noreferrer nofollow" target="_blank">Help and support </a> <a class="linktag" href="https://support.code.org/hc/en-us/requests/new" id="report-bug" rel="noopener noreferrer nofollow" target="_blank">Report a problem</a> </div> <i class="help_icon clicktag fa fa-question-circle hide-mobile" id="help-icon"> <span style="pointer-events: none"></span> </i> </div> <div aria-label="Menu" class="show-small-desktop" id="hamburger" tabindex="0"> <div class="hide-responsive-menu" id="hamburger-contents"> <div id="hamburger-sign-up-buttons"> <div class="button-wrapper"> <a class="linktag button-signin" href="//studio.code.org/users/sign_in" id="signin_button"> <div class="header_button header_user" id="header_user_signin"> <span>Sign in</span> <div class="signin_callout_wrapper"></div> </div> </a> <a class="linktag button-create-account" href="//studio.code.org/users/sign_up" id="create_account_button"> <div class="header_button header_user" id="header_user_create_account"> <span>Create account</span> </div> </a> </div> <div class="divider"></div> </div> <div class="show-mobile"> <div class="item"> <a class="hamburgerlink" href="//code.org/students" id="learn" target="_self">Learn</a> </div> </div> <div class="hamburger-expandable-item item show-mobile" id="educate_entries" tabindex="0"> <div class="text">Teach</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="educate_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/teach" id="educate-overview">Educator Overview</a> </div> <div class="item"> <a class="hamburgerlink" href="//studio.code.org/catalog" id="educate_courses">Course Catalog</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/elementary-school">Elementary School</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/middle-school">Middle School</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/high-school">High School</a> </div> <div class="item"> <a class="hamburgerlink" href="https://hourofcode.com">Hour of Code</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/curriculum/3rd-party">Beyond Code.org</a> </div> <div class="item"> <a class="hamburgerlink" href="https://forum.code.org/">Online Community</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/it">Technical Requirements</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/educate/resources/videos">Tools and Videos</a> </div> </div> <div class="show-mobile"> <div class="item"> <a class="hamburgerlink" href="//code.org/administrators" id="districts" target="_self">Districts</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//code.org/promote" id="stats" target="_self">Stats</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//code.org/help" id="help-us" target="_self">Help Us</a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="//studio.code.org/incubator" id="incubator" target="_self">Incubator</a> </div> </div> <div class="hamburger-expandable-item item show-small-desktop" id="about_entries" tabindex="0"> <div class="text">About</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="about_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/about" id="about-us">About Us</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/leadership">Leadership</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/donors">Donors</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/partners">Partners</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/team">Full Team</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/news">Newsroom</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/about/jobs">Careers</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/contact">Contact Us</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/faq">FAQs</a> </div> </div> <div class="hamburger-expandable-item item" id="legal_entries" tabindex="0"> <div class="text">Privacy & Legal</div> <i class="arrow-down fa fa-caret-down"></i> <i class="arrow-up fa fa-caret-up"></i> </div> <div class="hamburger-expandable-items" id="legal_entries-items"> <div class="item"> <a class="hamburgerlink" href="//code.org/privacy">Privacy Policy</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/cookies">Cookie Notice</a> </div> <div class="item"> <a class="hamburgerlink" href="//code.org/tos">Terms of Service</a> </div> </div> <div class="divider show-small-desktop" id="before-help"></div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="https://support.code.org" id="support" rel="noopener noreferrer nofollow" target="_blank">Help and support </a> </div> </div> <div class="show-small-desktop"> <div class="item"> <a class="hamburgerlink" href="https://support.code.org/hc/en-us/requests/new" id="report-bug" rel="noopener noreferrer nofollow" target="_blank">Report a problem</a> </div> </div> </div> <div class="clicktag show-small-desktop" id="hamburger-icon"> <span style="pointer-events: none"></span> </div> </div> </div> </nav> <div class="container_responsive"> <div> <main class="col-80-right"> <h1>Our core values:</h1> <p><link href="/css/generated/values.css" rel="stylesheet"></p> <div class="values__section-container"> <ul> <li> <i class="fa-solid fa-lightbulb-on"></i> <p>We believe computer science is foundational for all students</p> </li> <li> <i class="fa-solid fa-handshake-angle"></i> <p>We are committed to equity, access, and opportunity</p> </li> <li> <i class="fa-solid fa-people-group"></i> <p>We believe in the power of a collaborative education community</p> </li> <li> <i class="fa-solid fa-compass"></i> <p>We are agile and responsive to feedback</p> </li> <li> <i class="fa-solid fa-hand-holding-seedling"></i> <p>We act with integrity and transparency</p> </li> <li> <i class="fa-solid fa-globe"></i> <p>We believe broad impact requires thinking big and acting holistically</p> </li> </ul> </div> <h2>We believe computer science is foundational for all students</h2> <p>We believe that learning computer science is fundamental to active and informed participation in an increasingly digital society and provides all students with a critical lens for interpreting the world around them. Computer science offers life-changing and economic opportunities, whether they pursue careers in technology or not. We create high-quality, approachable experiences to engage all students in computer science.</p> <h2>We are committed to equity, access, and opportunity</h2> <p>We believe every student in every school should have the opportunity to learn computer science regardless of gender, race, ethnicity, identity, family income, neighborhood, or where they are from. To achieve this goal, we work to identify and eliminate barriers that have prevented the inclusion and full participation of underrepresented groups in CS.</p> <p>As an organization, Code.org is committed to providing an inclusive environment, with equitable access and opportunity for growth and advancement for all Code.org staff regardless of gender, race, ethnicity, nationality, religion, age, marital status, sexual orientation, or identity.</p> <h2>We believe in the power of a collaborative education community</h2> <p>We collaborate with teachers, facilitators, and <a href="/about/partners">partners</a>. We value, respect, and learn from the shared expertise of the growing professional computer science education community. We are committed to strengthening this community and we recognize, promote, and amplify the work of all members of this teacher-led movement. We use a <a href="/about/unifying">unifying and inclusive approach</a> across diverse and often divided stakeholders.</p> <h2>We’re agile and responsive to feedback</h2> <p>We act quickly but thoughtfully. We make decisions with available information, and actively collect new data to confirm understanding or inform change. We listen broadly and deeply to a diverse audience and are responsive to feedback.</p> <h2>We act with integrity and transparency</h2> <p>We act in the best interest of our student-focused mission. In this work, we are accountable to and transparent with our team, Board, donors, facilitators, partners, teachers, and community. We believe in trying new ideas, openly sharing our mistakes, and growing and learning from them. We proactively share information, research, data, processes, decisions, and results. Our products and curriculum are purposefully open for anyone to use or contribute.</p> <h2>We believe broad impact requires thinking big and acting holistically</h2> <p>We are creating sustainable change in education systems through policies, products, services, and partnerships that impact all levels of education, from the individual student or classroom to entire schools, districts, states, or countries. We strategically use available resources to make long-term investments that will have a positive, lasting impact on students' lives.</p> </main> <div class="left-nav desktop-feature"> <div id="about_nav"> <span class="about_list"> <a class="about_list_item" href="/about">About Us</a> <hr class="narrow_hr"> <span class="about_list_item_selected">Values</span> <hr class="narrow_hr"> <a class="about_list_item" href="/about/leadership">Leadership</a> <hr class="narrow_hr"> <a class="about_list_item" href="/about/supporters">Supporters</a> <hr class="narrow_hr"> <a class="about_list_item" href="/about/partners">Partners</a> <hr class="narrow_hr"> <a class="about_list_item" href="/about/team">Full Team</a> <hr class="narrow_hr"> <a class="about_list_item" href="/about/news">Newsroom</a> <hr class="narrow_hr"> <a class="about_list_item" href="/about/careers">Careers</a> <hr class="narrow_hr"> <a class="about_list_item" href="/contact">Contact Us</a> <hr class="narrow_hr"> <a class="about_list_item" href="/faq">FAQs</a> <hr class="narrow_hr"> </span> </div> </div> </div> <div id="clearboth" style="clear:both"></div> <div class="desktop-feature"> <br> <br> <br> </div> </div> <div class="push"></div> </div> <div class="desktop-feature"> <footer id="pagefooter"> <div class="content"> <div class="left" style="float:left; max-width: 80%;"> <a class="whitefooterlink" href="/privacy" style="color: #ffa400;"> Privacy Policy </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/cookies"> Cookie Notice </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/about"> About </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/partners"> Partners </a> <div class="dim"> | </div> <a class="whitefooterlink" href="https://medium.com/@codeorg" target="_blank"> Blog </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/donate"> Donate </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/shop"> Store </a> <div class="dim"> | </div> <a class="whitefooterlink" href="http://support.code.org/" id="support" target="_blank"> Support </a> <div class="dim"> | </div> <a class="whitefooterlink" href="/tos"> Terms </a> <small class="dim"> "© Code.org, 2024. Code.org®, the CODE logo, Hour of Code® and CS Discoveries® are trademarks of Code.org." <br> Built on GitHub from Microsoft </small> <div class="powered-by-aws"> <a href="https://aws.amazon.com/what-is-cloud-computing"> <img alt="Powered by AWS Cloud Computing" src="/shared/images/Powered-By_logo-horiz_RGB_REV.png" style="width: 190px"> </a> </div> </div> <div class="right" style="float:right"> <div class="language-dropdown"> <form accept-charset="UTF-8" action="/about/values" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="social-media" style="margin-top: 10px; margin-left: 10px;"> <small> <a aria-label="Code.org on Facebook" class="whitefooterlink" href="https://www.facebook.com/Code.org/" style="text-decoration: none;" target="_blank"> <i class="fa fa-facebook fa-lg"></i> </a> <a aria-label="Code.org on Twitter" class="whitefooterlink" href="https://twitter.com/codeorg" style="text-decoration: none;" target="_blank"> <i class="fa fa-twitter fa-lg"></i> </a> <a aria-label="Code.org on Instagram" class="whitefooterlink" href="https://www.instagram.com/codeorg/" style="text-decoration: none;" target="_blank"> <i class="fa fa-instagram fa-lg"></i> </a> <a aria-label="Code.org on Medium.com" class="whitefooterlink" href="https://medium.com/@codeorg" style="text-decoration: none;" target="_blank"> <img alt="" src="/images/icons/medium-monogram-white.png" style="width: 20px"> </a> </small> </div> </div> </div> </footer> </div> <div class="mobile-headers mobile-feature"> <style> #footer-links{float:right;color:white;font-size:12px;z-index:2}#footer-links ul{list-style:none;margin:0;padding:0}#footer-links ul li{display:inline;text-indent:0;padding:0}#footer-links ul li:before{content:none}#footer-links ul li:after{content:"|";margin:0 12px;opacity:0.5}#footer-links ul li:last-child:after{content:none}#footer-links a{color:white;font-weight:normal;font-family:var(--main-font);text-decoration:none}#footer-links a:hover{opacity:1.0}#footer-toggle{display:none;text-align:center;border-bottom:1px solid #aaa2bd;padding:8px 16px;margin:0 24px;cursor:pointer;margin-bottom:10px}#copyright,#copyright-non-en{float:left;color:white;font-size:12px;opacity:0.8}.social-media a{text-decoration:none;color:white}#non-en{height:90px;background-color:var(--brand_secondary_default)}#non-en .language-dropdown select{margin-top:20px;margin-left:25px}#copyright-non-en{margin-left:25px;padding-top:5px}@media screen and (max-width: 970px){#pagefooter{overflow:visible;padding:0;height:240px}.language-dropdown{padding-bottom:10px;padding-right:10px}.social-language-box{text-align:center}.social-media,.social-language-box .language-dropdown{text-align:center;display:inline;width:40%;padding-bottom:3px;margin-top:10px}.powered-by-aws{float:none;width:100%;text-align:center}#footer-links{float:none;margin-bottom:20px;padding-top:20px;text-align:center}#copyright{float:none;text-align:center;padding-top:10px;padding-bottom:10px}}@media screen and (min-width: 0px) and (max-width: 600px){#pagefooter{overflow:visible;padding:0;height:280px}#footer-links{position:relative;margin:0;padding-top:0px}#footer-links ul{display:none;position:absolute;bottom:38px;width:100%;background-color:#5c3f7f}#footer-links ul li{display:block;text-align:center;margin:0 24px;padding:8px 16px;border-bottom:1px solid #aaa2bd}#footer-links ul li:after{content:none}#footer-links ul li a{display:block;width:100%}#footer-toggle{display:block}#copyright{padding-left:10px;padding-right:10px}#privacy a{color:#ffa400;opacity:1;font-family:var(--main-font);font-weight:var(--semi-bold-font-weight)}#privacy a:hover{opacity:0.5}#down{display:none}.social-media,.language-dropdown{width:100%;display:block;padding-right:0px}.powered-by-aws{width:100%;text-align:center}} </style> <script defer src="/js/mobile-footer.js"></script> <footer id="pagefooter"> <div id="footer-links"> <ul> <li id="privacy"> <a href="/privacy" style="color: #ffa400;"> Privacy Policy </a> </li> <li> <a href="/cookies"> Cookie Notice </a> </li> <li> <a href="/about"> About </a> </li> <li> <a href="/partners"> Partners </a> </li> <li> <a href="https://medium.com/@codeorg" target="_blank"> Blog </a> </li> <li> <a href="/donate"> Donate </a> </li> <li> <a href="/shop"> Store </a> </li> <li> <a href="https://support.code.org/" id="support" target="_blank"> Support </a> </li> <li> <a href="/tos"> Terms </a> </li> </ul> <div id="footer-toggle"> Code.org <i class="fa fa-chevron-up" id="up"></i> <i class="fa fa-chevron-down" id="down"></i> </div> </div> <div class="social-language-box"> <div class="language-dropdown"> <form accept-charset="UTF-8" action="/about/values" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="social-media"> <a aria-label="Code.org on Facebook" class="social-icon" href="https://www.facebook.com/Code.org" target="_blank"> <i class="fa fa-facebook fa-lg"></i> </a> <a aria-label="Code.org on Twitter" class="social-icon" href="https://twitter.com/codeorg" target="_blank"> <i class="fa fa-twitter fa-lg"></i> </a> <a aria-label="Code.org on Instagram" class="social-icon" href="https://www.instagram.com/codeorg" target="_blank"> <i class="fa fa-instagram fa-lg"></i> </a> <a aria-label="Code.org on Medium.com" class="social-icon" href="https://medium.com/@codeorg" target="_blank"> <img alt="" src="/images/icons/medium-monogram-white.png" style="width: 20px"> </a> </div> </div> <div id="copyright"> © Code.org, 2024. Code.org®, the CODE logo and Hour of Code® are trademarks of Code.org. <br> Built on GitHub from Microsoft </div> <div class="powered-by-aws"> <a href="https://aws.amazon.com/what-is-cloud-computing"> <img alt="Powered by AWS Cloud Computing" src="/shared/images/Powered-By_logo-horiz_RGB_REV.png" style="width: 190px"> </a> </div> </footer> </div> <script defer src="/js/bootstrap.min.js" type="text/javascript"></script> <div class="modal fade" id="selectLanguage"> <div class="modal-dialog" width="500px"> <div class="modal-content"> <div class="modal-header"> <button class="close" data-dismiss="modal" type="button"> <span aria-hidden="true">×</span> <span class="sr-only">Close</span> </button> <img class="lazyload" data-src="/images/fit-320/avatars/flag_sphere.png" style="width: 256px; height: 256px;"> </div> <div class="modal-body"> <h4 class="modal-title">Please select your language</h4> <form accept-charset="UTF-8" action="/about/values" method="post"> <select class="default" name="set_locale" onchange="this.form.submit();" style="color: black; width: 100%; max-width: 162.5px;"> <option value="ar-SA">العربية</option> <option value="az-AZ">Azərbaycan dili</option> <option value="bg-BG">български</option> <option value="bs-BA">Bosanski</option> <option value="ca-ES">Català</option> <option value="cs-CZ">Čeština</option> <option value="da-DK">Dansk</option> <option value="de-DE">Deutsch</option> <option value="dv-MV">ދިވެހި</option> <option value="el-GR">Ελληνικά</option> <option selected value="en-US">English</option> <option value="es-ES">Español (España)</option> <option value="es-MX">Español (LATAM)</option> <option value="et-EE">Eesti</option> <option value="eu-ES">Euskara</option> <option value="fa-IR">فارسی</option> <option value="fi-FI">Suomi</option> <option value="fil-PH">Filipino</option> <option value="fr-FR">Français</option> <option value="ga-IE">Gaeilge</option> <option value="gl-ES">Galego</option> <option value="he-IL">עברית</option> <option value="hi-IN">हिन्दी</option> <option value="hr-HR">Hrvatski</option> <option value="hu-HU">Magyar</option> <option value="hy-AM">Հայերեն</option> <option value="id-ID">Bahasa Indonesia</option> <option value="is-IS">Íslenska</option> <option value="it-IT">Italiano</option> <option value="ja-JP">日本語</option> <option value="ka-GE">ქართული</option> <option value="kk-KZ">Қазақша</option> <option value="km-KH">ភាសាខ្មែរ</option> <option value="kn-IN">ಕನ್ನಡ</option> <option value="ko-KR">한국어</option> <option value="ky-KG">Кыргызча</option> <option value="lt-LT">Lietuvių</option> <option value="lv-LV">Latviešu</option> <option value="mi-NZ">Māori (NZ)</option> <option value="mn-MN">Монгол хэл</option> <option value="mr-IN">मराठी</option> <option value="ms-MY">بهاس ملايو</option> <option value="my-MM">ဗမာစာ</option> <option value="nl-NL">Nederlands</option> <option value="nn-NO">Norsk (Nynorsk)</option> <option value="no-NO">Norsk (Bokmål)</option> <option value="pl-PL">Polski</option> <option value="pt-BR">Português (Brasil)</option> <option value="pt-PT">Português (Portugal)</option> <option value="ro-RO">Română</option> <option value="ru-RU">Pусский</option> <option value="se-FI">Davvisámegiella</option> <option value="si-LK">සිංහල</option> <option value="sk-SK">Slovenčina</option> <option value="sl-SI">Slovenščina</option> <option value="sm-WS">Sāmoa</option> <option value="sq-AL">Shqip</option> <option value="sr-SP">Cрпски</option> <option value="sv-SE">Svenska</option> <option value="ta-IN">தமிழ்</option> <option value="te-IN">తెలుగు</option> <option value="th-TH">ภาษาไทย</option> <option value="tr-TR">Türkçe</option> <option value="uk-UA">Українська</option> <option value="ur-PK">اردو</option> <option value="uz-UZ">Oʻzbekcha</option> <option value="vi-VN">Tiếng Việt</option> <option value="zh-CN">简体字</option> <option value="zh-TW">繁體字</option> </select> </form> </div> <div class="modal-footer"> <button class="btn btn-primary" data-dismiss="modal" type="button">Submit</button> </div> </div> </div> </div> <style> .modal{ text-align: center; } </style> <script> function setCookie(key, value, days) { var expires = new Date(); expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } $( document ).ready(function() { already_shown = !!getCookie('_loc_notice'); if(!already_shown) { $.getJSON( "/v2/client-location", function( data ) { country_code = data['country_code']; if(country_code != 'US') { $('#selectLanguage').modal('show') } }); setCookie('_loc_notice', '1', 365) } }); </script> <script src="/js/font_awesome_icon_class.js"></script> </body> </html>