PageSourceSearch

https://www.powershellacademy.com/

html powershellacademy.com collected 2026-10-04 05:15:59 UTC 343,226 bytes, 5,304 lines download raw bytes

1
2
3
4
5
6
7
8<!DOCTYPE html>
9<html lang="en">
10<head>
11<title>PowershellAcademy</title>
12
13	
14		<meta name="keywords" content=""/>
15		<meta name="description" content=""/>
16		<meta name="google-site-verification" content="" />
17		
18		<meta property="og:url" content="https://www.powershellacademy.com" />
19		<meta property="og:type" content="website" />
20		<meta property="og:title" content="PowershellAcademy" />
21		<meta property="og:description" content="" />
22		<meta property="og:image" content="https://www.powershellacademy.com/logo.png?v=13" />
23	
24
25	
26	
27	
28		
29		
30		
31<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"errorBeacon":"bam.nr-data.net","licenseKey":"NRJS-3c5e94b79297c3f66ad","agent":"","beacon":"bam.nr-data.net","applicationTime":669,"applicationID":"1108160141","transactionName":"Y1RVZkAHVhIHBUZfWVoeZEJAD1YGJQlcQkRbXVtXQEkYSSEjZh8=","queueTime":0};
32(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1134555315",accountID:"3033394",trustKey:"3033394",xpid:"VwYEUlVaDBABVVFaBgcHV1AA",licenseKey:"NRJS-3c5e94b79297c3f66ad",applicationID:"1108160141",browserID:"1134555315"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */
33(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
33e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
33const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
33if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
33o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
33(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
33;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
33{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
33ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
33{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
33null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
33dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
33imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
33return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),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,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
33!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
33if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
33);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
33class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
33h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
33<link href="https://d502jbuhuh9wk.cloudfront.net/resources/pagebuilder2/box/box.css" rel="stylesheet" type="text/css" />
34   		<link href="https://d502jbuhuh9wk.cloudfront.net/resources/pagebuilder2/assets/minimalist-blocks/content.css" rel="stylesheet" type="text/css" />
35   		<link href="https://d502jbuhuh9wk.cloudfront.net/resources/pagebuilder2/assets/scripts/animate/animate.css" rel="stylesheet" type="text/css" />
36   		
37   		
38
39
40
41
42 
43
44 
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62		
63		
64			
65		
66
67
68
69
70
71
72	
73	
74
75
76	
77		
78	
79	
80
81
82	
83	
84		
85	
86
87
88
89 
90 
91 	
92 	
93		<meta name="viewport" content="width=device-width, initial-scale=1.0">
94 	
95 	
96  
97    
98   		
99   		
100   		
101   		
102   		
103   		
104   		
105    
106    <meta name="google" content="notranslate">
107    
108    	
109        	<link rel="canonical" href="https://www.powershellacademy.com/" />
110  
111
112
113<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
114<link rel="icon" href="/favicon.ico" type="image/x-icon">
115
116
117
118
119
120
121
122
123	
124		
124<script>var orgCountry = "IN";</script>
124
125	
126	
127
128
129<link id="theme" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre.min.css" rel="stylesheet">
130
131<link rel="preconnect" href="https://fonts.googleapis.com"> 
132<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 
133
134<link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" as="style" onload="this.onload=null;this.rel='stylesheet'">
135<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" ></noscript>
136
137<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" as="style" onload="this.onload=null;this.rel='stylesheet'">
138<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" ></noscript>
139
140<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
141<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" ></noscript>
142
143<link id="theme-exp" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre-exp.min.css" rel="stylesheet">
144
145
146
147	
148	<link href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstyles_0f8f8346b730ed7f9d44d25335e652c6.css" rel="stylesheet">
149	<link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstore_052a28d8fc16dab749345a09dfcd63bf.css"/>
150	
151	<link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/stylesheets/gtheme2.css?v=7"/>
152	
153	<style type="text/css">
154		#loginLoader{
155			position: absolute;
156	    	left: 0;
157	    	right: 0;
158	    	margin-left: auto;
159	    	margin-right: auto;
160	    	width: 100px;
161	    	top: 50%;
162		}
163	    .customSocialBtn {
164	      	display: flex; 
165	    	white-space: nowrap;
166	    	justify-content: center;
167	    	align-items: center;
168	    	padding: 11px 67px;
169	    	position: static;
170	    	left: 0px;
171	    	top: 40px;
172	    	cursor: pointer;
173	    	margin: auto;
174	    	border: none;
175	    	gap: 10px;
176	    	/*width: 364px;
177	    	height: 48px;
178	      	 background: #000000; */
179	    	/*For New Button Remove Bellow Codes and Uncomment upper Code  */
180	    	background: white;
181	      	border-radius: 4px;
182	      	box-shadow: 0 2px 4px 0 rgb(0 0 0 / 25%);
183	      	width: 245px;
184	      	height: 40px;
185	    }
186	  
187	    .customSocialBtn img.icon {     
188	    	height: 20px;
189	    	width: 20px;
190	    }
191	    .customSocialBtn span.buttonText {
192	    	font-style: normal;
193	    	font-weight: 900;
194	    	font-size: 16px;
195	    	line-height: 120%;
196			opacity: 0.9;
197	    	font-family: 'Roboto', sans-serif;
198	    	/* color: #F7F7F7; */
199	    	/*For New Button Remove Bellow Codes and Uncomment upper Code  */
200	    	color: #808080;
201	    }
202	</style>
203	
204	
205		
206		
207		 
208			<style type="text/css">
209				
210			</style>
211		
212	
213	
214		
215		
216			<style type="text/css">
217				footer a, footer+div a {
218					color: var(--footerTextColor) !important;
219				}
220				footer .socialIcons {text-align: right;}
221				@media (max-width: 600px) {
222					footer .linksCont a { display: block !important; }
223					footer .socialIcons {text-align: center;margin-top: 20px;}
224				}
225			</style>
226		
227	
228
229
230
231
232
233<style type="text/css">
234	:root {
235	 	--themeColor: #5755d9;
236	 	--themeBGColor: #fff;
237		--headerHeight: 70px;
238		--headerTextColor: #f9f9fb;
239		--headerBGColor: #050810;
240		
241	}
242
243
244</style>
245
246<style type="text/css">
247	footer, .gc-footer, [class*="footer"], [data-section="footer"] {
248    position: fixed !important;
249    bottom: 0 !important;
250    left: 0 !important;
251    width: 100% !important;
252    z-index: -1 !important;
253}
254
255    
256
257</style>
258
259
260
261
262<script type="text/javascript">
263	window.onload = function(event) {
264	   document.querySelectorAll('header .avatar img').forEach(function(img){
265		   	if(img.naturalWidth == 0) {
266		   		img.style.display='none';
267		   	}
268	   })
269	};
270	var RESCDN = "https://d502jbuhuh9wk.cloudfront.net";
271	
272	function showCourseDefaultCover(img, cid) {
273		var rndm = ((parseInt(cid.replace(/[a-z]/g, '')) % 10) % 6) + 1;
274		rndm = isNaN(rndm) ? 1 : rndm;
275		if(img === null) {
276			return RESCDN + "/resources/images/cc"+rndm+".jpg";
277		}
278		
279		img.src = RESCDN + "/resources/images/cc"+rndm+".jpg";
280	}
281</script>
281
282
283
284
285	
286	
287
288
289
290
291
292
293
294<script type="text/javascript">var learnerConsentMsg = `We've updated our <a href='/termsofuse' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='/privacy-policy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
294
295
296<script type="text/javascript">var creatorConsentMsg = `We've updated our <a href='https://graphy.com/legal/terms' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='https://graphy.com/legal/privacy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
296
297
298<script type="text/javascript">var cookieMsg = `We use cookies to personalise your experience and to analyse our website traffic. By continuing to use our website, you consent to our cookies.`;</script>
298
299
300
301
302
303	
303<script>var orgTermsOfUseVersion = parseInt("1");</script>
303
304
305
306
307<script type="text/template" id="consentPromptTemplate">
308<div class="spectre">
309	<div class="modal active" id="consentPrompt">
310		    <a href="javascript:void(0);" class="modal-overlay" aria-label="Close"></a>
311		    <div class="modal-container" style="max-width:325px">
312		      <div class="modal-header" style="padding:0.8rem 0.8rem 0px 0.8rem;">
313		        <div class="modal-title h5 text-center">Updated Terms</div>
314		      </div>
315		      <div class="modal-body">
316		        
317				<form id="consentForm" style="text-align:center; font-size:13px">
318					<div class="content"></div><br>
319					<div class="text-center">
320						<button id="consentBtn" type="button" class="btn close btn-primary">I Agree</button>
321					</div>
322				</form>
323
324		    </div>
325		  </div>
326</div>
327</script>
327
328
329
330<script>
331	var hideCookiePopup = false;
332	var cookieConsentEnabled = false;
333	if(!cookieConsentEnabled){
334		hideCookiePopup = true;
335	}
336	var SPORG = {subscriptionPlan: "launch", checkout_version: "1", customer_type: "r"};
337</script>
vendor: 1 bytes, line 337
337
338<script type="text/template" id="cookiePopupTemplate">
339<div class="spectre" style="position: fixed; bottom: 0; width: 100%; opacity:1; z-index: 9999;">
340		<div class="modal-container p-0" id="cookiePopup">        
341			<form id="cookiePopupForm">
342				<div class="columns" style="align-items: center;">
343					<div class="column col-sm-12 content text-center"></div>
344					<div class="column col-sm-12 text-center">
345						<a href="/privacy-policy" class="btn" target="_blank" id="viewPrivacyPolicyBtn" style="margin-right:15px;">View privacy policy</a>
346						<button id="acceptCookiesBtn" type="button" class="btn close btn-primary">Accept cookies</button>
347					</div>
348				</div>
349			</form>
350		</div>
351</div>
352</script>
352
353
354
355
356	
357		
358		
359			
360		
361	
362
363
364
365
366
367
368
369
370	
371		
372			
373			
374			
375				
376					
377					
378					
379								
380			
381		
382	
383
384
385<!-- Google Tag Manager -->
386<script>
vendor: 327 bytes, lines 386-390
386(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
387new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
388j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
389'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
390})(window,document,'script','dataLayer','
390GTM-KW7N9P2
vendor: 4 bytes, line 390
390');
391</script>
391
392<!-- End Google Tag Manager -->
393 
394 	
394<script defer type="text/javascript" src="https://api.pirsch.io/pirsch-extended.js" 
395    id="pirschextendedjs" 
396    data-code="vui12Oz1rnXSwibpt5okwkq4k2jSfoby"></script>
396
397 
398	
399	
400	
401
402	
403	
404	
405</head>
406
407<body class="">
408
409
410	
411		
412		
413			
414
415
416
417<div class="header spectre "
418	style="background-color: #050810;">
419	
420	<header class="navbar container" style="min-height: 70px;">
421		  
422		  <div id="navbar-section-btn">
423		  	
424				<a href="javascript:void(0);" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "www.powershellacademy.com","button":"cart"}' class="nav-link badge cartBtn mr-2" data-badge="0"><i class="material-icons">shopping_cart</i></a>
425			
426		  	<a class="btn btn-link btn-action ml-2" id="header-collapse-btn"  href="javascript:void(0);">
427				<i class="icon-menu material-icons">menu</i>
428		  	</a>
429		  </div>
430		  <section class="navbar-section" style="min-height: 70px;">
431		    <a href="/" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "www.powershellacademy.com","button":"profile_logo"}'><img alt="logo" onerror="this.src='https://d502jbuhuh9wk.cloudfront.net/resources/images/yourlogohere.jpg'" src='https://d502jbuhuh9wk.cloudfront.net/logos/625ab6700cf2a918a3b11b6b.png?v=13'/></a>
432		  </section>
433		  
434			  <section class="navbar-section hide-md">
435			  	<form class="input-group p-0 relative" action="/s/store/courses" method="GET" style="width:100%;background:transparent">
436			  		<div class="input-group" style="width: 100%;">
437						<input type="text" name="query" value="" class="form-input input-lg searchTxtBox" placeholder="Search">
438						<button type="submit" class="btn btn-link"><i class="fa-regular fa-magnifying-glass"></i></button>
439					</div>
440				</form>
441			  </section>
442		  
443		  <section class="navbar-section menu-links">
444			
445			
446			
447			
448				
449					<a class="nav-link" href="https://home.powershellacademy.com/videos.html" data-id="wcil54596" target='_blank'>Free Videos</a>
450				
451					<a class="nav-link" href="https://home.powershellacademy.com/store" data-id="lx51z05yq" target='_blank'>Courses</a>
452				
453			
454			
455			
456				<a href="/sessions#nav_bar" class="nav-link" amplitude-event="livesessions_tapped" amplitude-payload='{"source":"nav_bar"}' href="javascript:void(0);">Webinars</a>
457			
458			
459			
460			
461				
462				
463					
464						
465						
466							<a href="javascript:void(0);" class="nav-link badge cartBtn hide-md" data-badge="0"><i class="fa-regular fa-cart-shopping"></i></a>
467						
468					
469		    			<a href="javascript:void(0);" class="btn btn-primary loginBtn">Login</a>
470				
471			
472		  </section>
473	</header>
474	
475	
476		<form class="show-md container" action="/s/store/courses" method="GET" style="background:transparent;">
477			<div class="input-group relative" style="width: 100%;">
478				<input type="text" name="query" value="" class="form-input input-lg searchTxtBox" placeholder="Search">
479				<button type="submit" class="btn btn-link"><i class="fa-regular fa-magnifying-glass"></i></button>
480			</div>
481		</form>
482	
483</div>
484		
485	
486
487
488
489
490
491
492
493<script>const customDomain = "www.powershellacademy.com";</script>
493
494
495   
496  
497
498<script>
499var disabledLocleVar='Disabled';
500var enabledLocaleVar='Enabled';
501var smsLocaleVar='SMS';
502var webpushLocaleVar='Web Push';
503var mobilepushLocaleVar='Mobile Push';
504var invoicenumberLocaleVar='Invoice Number';
505var productLocaleVar='Product';
506var dateLocaleVar='Date';
507var amountLocaleVar='Amount';
508var detailsLocaleVar='Details';
509var subscriptionPlanLocaleVar='Subscription Plan';
510var addonsLocaleVar='Add Ons';
511var showLocalVar='Show';
512var hideLocaleVar='Hide';
513</script>
513 
514<div class="spectre">
515
516	
517	
518		
519		
520		
521			
522				
522<script>
523					var isPopupLogin = true;
524					var login = '';
525					var message = '';
526					function closeLoginPopup() {
527						$("#loginFormHtml").removeClass("active");
528						$("body").removeClass("overflowYDisable");
529					}
530				</script>
530
531				
532				
533				
534					
535				
536
537				<div class="modal" id="loginFormHtml">
538					<iframe id="microfe-popup-login" src="/t/public/login" loading="lazy"
539						style="width: calc(100% + 10px); height: 100vh; border: none;"
540						onload="$(this).parent().removeClass('loading');"></iframe>
541				</div>
542			
543		
544	 
545	
546
547	<div class="modal" id="cartHtml">
548		<a href="javascript:void(0);" class="modal-overlay close"
549			aria-label="Close"></a>
550		<div class="modal-container" style="max-width: 800px;">
551			<div class="modal-header">
552				<a href="javascript:void(0);"
553					class="close btn btn-clear float-right" aria-label="Close"></a>
554				<div class="modal-title h5">
555					<i class="fa-regular fa-shopping-cart"></i>
556					Cart
557					(<span class="cartCount">0</span>
558					Items
559					)
560				</div>
561			</div>
562			<div class="modal-body" style="max-height: 70vh;">
563				<div class="content">
564
565					<div class="text-center msg loading"></div>
566					<div class="text-center msg noItems" style="display: none;">
567						There are no items in your cart<br/>
568						<a class="btn btn-primary" href="/s/store"
569							style="margin: 20px auto;">
570							Add More
571						</a>
572					</div>
573					<div class="items msg" style="display: none;">
574						<div class="m-0 cartDiv">
575							<table class="table cartTable">
576								<thead>
577									<tr>
578										<th colspan="2">Item Details</th>
579										<th class="text-right">Price</th>
580										<th style="width: 50px;"></th>
581									</tr>
582								</thead>
583								<tbody></tbody>
584							</table>
585						</div>
586						<div class="suggestCart mt-2 bg-gray p-2" style="display: none;">
587							<h6>You may also be interested in</h6>
588							<div class="columns loading" id="cartRelatedCont"></div>
589						</div>
590					</div>
591				</div>
592			</div>
593			<div class="modal-footer">
594				<div class="msg items clearfix">
595					
596						
597						
598							<div class="float-left text-gray">
599								Note: Promo Codes can be applied after checkout
600							</div>
601						
602						
603					
604					<div class="float-right">
605						Total Amount
606						<span class="text-primary curr">$<span
607							class="totalAmount">0</span></span>
608					</div>
609				</div>
610				<div class="msg items clearfix mt-2">
611					<a class="btn float-left" href="/s/store" amplitude-event="add_more_course_checkout">
612						Add More
613					</a>
614					
615					
616						
617							
618						
619						
620					
621					<a class="btn btn-primary float-right" href="/s/checkout" amplitude-event="checkout_tapped_course_checkout" amplitude-payload='{"currency": "USD" }'>Checkout</a>
622				</div>
623			</div>
624		</div>
625	</div>
626	<div class="modal" id="newCheckoutHtml" style="padding: 0; z-index: 10000;">
627	<div id="newCheckoutLoader" class="loading loading-lg" style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5); z-index: 1000;display:none;"></div>
628		<!-- <a href="javascript:void(0);" class="modal-overlay close"
629			aria-label="Close"></a>
630		<div class="modal-container" style=""> -->
631		
632
633			<iframe onload="hideCheckoutLoader()" id="newCheckoutIframe" sandbox="allow-top-navigation allow-modals allow-popups allow-presentation allow-orientation-lock allow-pointer-lock allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation allow-scripts allow-same-origin allow-forms" style = "width: calc(100% + 10px); height: 100%; border: none;"  src=""></iframe>
634				
635		<!-- </div> -->
636	</div>
637</div>
638
639<script type="text/template" id="cartItemTemplate">
640		<tr data-id="<@- item.id @>" data-type="<@- item.type @>" data-title="<@- item.title @>" data-price="<@- item.price @>" data-coursecategory="<@- item.courseCategory @>">
641			<@ var itemType = item.type; @>
642			<td style="width:150px;">	
643				<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item.id +"/"+ item.id +"_scaled_cover.jpg?v=" + coverVersion; if(isNaN(coverVersion)) { curl = showCourseDefaultCover(null, item.id)   } @>
644				<img alt="<@- item.title @> cover" style="width:100%;max-height:100px;" class="img-fit-contain lazy"  onerror="showCourseDefaultCover(this, '<@- item.id @>')" 
645						data-src='<@- curl @>' />
646			</td>
647			<td class="itemTitle"><@- item.title @><@ if(item.description !== undefined) { @><div class='text-gray variantDescription'><@ print(item.description) @></div><@ } @></td>
648			<td class="text-right curr"><@ if(item.priceWithoutTax !== undefined && '' != '') { @><@ print(getDisplayAmount(item.priceWithoutTax)) @><br><small><@ print(getDisplayAmount(item.price)) @> incl. <@- item.gstRate @>% </small><@ } else { @><@ print(getDisplayAmount(item.price)) @> <@ if(item.gstRate > 0 && '' != '') { print("<br><small>incl. " +item.gstRate+"% </small>") } @><@ } @> 				
649			<@ if(item.pgChargesLearnerPercent !==undefined && getDisplayAmount(item.pgChargesLearnerPercent).includes('₹')) {@> <br><small>Internet handling fees: <@print(getDisplayAmount(item.pgChargesLearnerPercent/100*item.price))@></small> <@} @>
650			</td>
651			<td>
651<button class="btn btn-sm btn-error btn-action circle removeItemBtn" data-url="/s/cart/remove/<@- item.id @>"><i class="material-icons">clear</i></button></td>
652		</tr>
653	</script>
vendor: 1 bytes, line 653
653
654<script type="text/template" id="cartcoursecard-template">
655		<div class="column col-2 col-md-4 scourse <@- item['spayee:resource']['spayee:courseType'] @>" title="<@- item["spayee:resource"]["spayee:title"] @>">
656			  <a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
657				<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id)   } @>
658		              <img style="width: 100%;" alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl  @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
659					  <div class="card-footer" style="padding: 0.2rem;"><span class="ctitle text-ellipsis d-block" style="color:#2f4f4f;font-size:small;"><@- item["spayee:resource"]["spayee:title"] @></span></div>
660		      </a>
661		</div>
662	</script>
vendor: 1 bytes, line 662
662
663<script type="text/template" id="coursecard-template">
664		<div class="column scourse <@- item['spayee:resource']['spayee:courseType'] @> hidePackageRibbon<@- item['spayee:resource']['spayee:hidePackageRibbon'] @>">
665					
666					
667					
668						
669							<a class="card courseDiscId" style="height:100%" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" data-id="<@- item._id@>" data-dcid="<@-item._id@>">
670						
671					
672		              <div class="card-image relative <@ print(item["spayee:resource"]["spayee:availableForMembership"] ? 'includedInMembership' : '') @>">
673						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id + "/" + item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id);   } @>
674						<div class="blurbg lazy" data-bg="<@- curl @>"></div>
675		                <img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
676		              </div>
677		              <div class="card-body text-ellipsis">
678							<span class="ctitle" style="color:#2f4f4f;text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;"><@- item["spayee:resource"]["spayee:title"] @></span><br>
679
680							<@ if(item.rating !== undefined) { @>
681								<span class="text-gray ratingIcons icon-text">
682								<@ for(var i=1;i<6;i++) { @>
683									<@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @>
684									<i class="material-icons">star_border</i>								
685								<@ } } @></span><small class="d-inline-block pl-1 text-dark"><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</small>
686							<@ }else { @> <span class="text-gray ratingIcons icon-text">&nbsp;</span> <@ } @>
687							<br>
688							<span class="text-gray">
689								<@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @>
690									<@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses
691								<@ }else { @>
692									<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:publisher"]):"&nbsp;") @>
693								<@ } @>
694							</span>
695					  </div>
696		              <div class="card-footer">
697						<@ print(getCourseDisplayPrice('$', '', item, '0.0', '', true)) @>
698						<span class="text-gray" style="font-size:small">
699							<@ if(item['spayee:resource']['spayee:instalmentPlanId']!=null && item['spayee:resource']['spayee:instalmentPlanId'] !== "") { @>
700								<@ print(getCourseInstalmentDisplayPrice('', item))@>
701								<@ }else { @>
702								<@ "&nbsp;" @>
703							<@ } @>
704						</span>
705		              </div>
706					<div style="padding: 0 0.8rem 0.8rem 0.8rem;">
707						<span class="text-gray" style="font-size:small">
708							<@ if(getMultiplePlanLabel('', item)>1) {@>
709							<i class="material-icons text-primary" style="font-size:small">discount</i>
710							<@ print(' Flexible pricing plans') } @>
711						</span>
712					</div>
713		            </a>
714		</div>
715	</script>
715
716
717<script type="text/template" id="blogcard-template">
718		<div class="column col-3 col-md-6 col-sm-6 col-xs-12 scourse" style="margin-bottom: 20px;">
719					<a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="/blog/<@- item['spayee:resource']['spayee:url'] @>">
720		              <div class="card-image relative">
721						<@ if(item['spayee:resource']['spayee:cover'] !== undefined && item['spayee:resource']['spayee:cover']) { @>
722							<div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg<@ print(item["spayee:resource"]["spayee:coverVersion"] !== undefined?"?v="+item["spayee:resource"]["spayee:coverVersion"]:"") @>"></div>
723							<img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg?v=<@- item['spayee:resource']['spayee:coverVersion'] @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
724						<@ }else { @>
725							<div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png"></div>
726							<img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src='https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png'>
727						<@ } @>
728		              </div>
729		              <div class="card-body text-ellipsis"><span style="color:#2f4f4f;"><@- item["spayee:resource"]["spayee:title"] @></span></div>
730		              <div class="card-footer" style="padding: 0.4rem;">
731						<span class="text-gray float-left text-ellipsis" style="max-width: calc(100% - 110px);"><@ print(item["spayee:resource"]["spayee:author"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:author"]):"") @></span>
732						<@ var pdate = item.createdDate.$date; if(item['spayee:resource']['spayee:publishDate'] !== undefined && item['spayee:resource']['spayee:publishDate'] !== '') { pdate = item['spayee:resource']['spayee:publishDate']; } @>
733						<time class="float-right text-warning"><@ print(formatDate(new Date(pdate))) @></time>
734		              </div>
735		            </a>
736		</div>
737	</script>
737
738	
739	
739<script type="text/javascript">
740	  var uuid = function (a) {
741		  // https://github.com/amplitude/Amplitude-Javascript/blob/master/src/uuid.js
742		  return a // if the placeholder was passed, return
743		    ? // a random number from 0 to 15
744		      (
745		        a ^ // unless b is 8,
746		        ((Math.random() * // in which case
747		          16) >> // a random number from
748		          (a / 4))
749		      ) // 8 to 11
750		        .toString(16) // in hexadecimal
751		    : // or otherwise a concatenated string:
752		      (
753		        [1e7] + // 10000000 +
754		        -1e3 + // -1000 +
755		        -4e3 + // -4000 +
756		        -8e3 + // -80000000 +
757		        -1e11
758		      ) // -100000000000,
759		        .replace(
760		          // replacing
761		          /[018]/g, // zeroes, ones, and eights with
762		          uuid, // random hex digits
763		        );
764	  };
765		
766	  (function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script")
767	  ;r.type="text/javascript"
768	  ;r.integrity="sha384-tzcaaCH5+KXD4sGaDozev6oElQhsVfbJvdi3//c2YvbY02LrNlbpGdt3Wq4rWonS"
769	  ;r.crossOrigin="anonymous";r.async=true
770	  ;r.src="https://cdn.amplitude.com/libs/amplitude-8.5.0-min.gz.js"
771	  ;r.onload=function(){if(!e.amplitude.runQueuedFunctions){
772	  console.log("[Amplitude] Error: could not load SDK")}}
773	  ;var i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)
774	  ;function s(e,t){e.prototype[t]=function(){
775	  this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));return this}}
776	  var o=function(){this._q=[];return this}
777	  ;var a=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"]
778	  ;for(var c=0;c<a.length;c++){s(o,a[c])}n.Identify=o;var u=function(){this._q=[]
779	  ;return this}
780	  ;var l=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"]
781	  ;for(var p=0;p<l.length;p++){s(u,l[p])}n.Revenue=u
782	  ;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"]
783	  ;function v(e){function t(t){e[t]=function(){
784	  e._q.push([t].concat(Array.prototype.slice.call(arguments,0)))}}
785	  for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){
786	  e=(!e||e.length===0?"$default_instance":e).toLowerCase()
787	  ;if(!Object.prototype.hasOwnProperty.call(n._iq,e)){n._iq[e]={_q:[]};v(n._iq[e])
788	  }return n._iq[e]};e.amplitude=n})(window,document);
789	
790	  amplitude.getInstance().init('e56929a4c3888c23e97a7e70e34ccf6c');
791	  amplitude.getInstance().setUserId(null);
792	  //amplitude.getInstance().regenerateDeviceId();
793
794    var userProperties = {
795			custom_domain: "www.powershellacademy.com",
796			org_id: "625ab6700cf2a918a3b11b6b",
797			default_google_login_enabled: '' == 'true',
798			personalized_google_login_enabled: '' != '' && '' == 'false' ? true : false,
799			facebook_login_enabled: '' == 'true' ? true : false
800	  };
801	  amplitude.getInstance().setUserProperties(userProperties);
802    
803/*     var deviceId = uuid();
804	  amplitude.getInstance().setDeviceId(deviceId);
805	  sessionStorage.setItem('amplitudeDeviceId', deviceId); */
806	</script>
806
807	
808	
808<script type="text/javascript">
809		window.signupParams = {source: "store", platform: "web", sourceId: null};
810		var showGraphyFomoFlag = '';
811		
812			showGraphyFomoFlag = '625ab6700cf2a918a3b11b6b';
813		
814	</script>
814
815
816	
816<script type="text/javascript">
817		function hideCheckoutLoader() {
818			if(typeof window.hideLoader =="function") {
819				window.hideLoader();
820			}
821		}
822		var checkoutRedirectGuestUsers = 'signup';
823	</script>
823
824
825
826
827
828
829
830<script type="text/template" id="spcoursecard-2-template">
831		<div class="column third">
832			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
833			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
834			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
835			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
836			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
837			<p class="size-16"><@ if(item.rating !== undefined) { @>
838								<span class="text-gray ratingIcons icon-text">
839								<@ for(var i=1;i<6;i++) { @>
840									<@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @>
841									<i class="material-icons">star_border</i>								
842								<@ } } @></span><span><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</span>
843			<@ }else { @> <span class="text-gray ratingIcons icon-text">&nbsp;</span> <@ } @></p>
844			<p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
845				<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
846			
847			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p>
848			<div style="margin:1em 0"></div>
849			</a>
850		</div>
851	</script>
vendor: 1 bytes, line 851
851
852<script type="text/template" id="spcoursecard-1-template">
853		<div class="column third">
854			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
855			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
856			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
857			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
858			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
859			<div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
860
861			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p>
862			<div style="margin:1em 0"></div>
863			</a>
864		</div>
865	</script>
vendor: 1 bytes, line 865
865
866<script type="text/template" id="spcoursecard-3-template">
867		<div class="column third">
868			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
869			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
870			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
871			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
872			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
873			<div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
874			<p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
875				<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
876			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></span><br></p>
877			<div style="margin:1em 0"></div>
878			</a>
879		</div>
880	</script>
880
881	
882<script type="text/template" id="spcoursecard-4-template">
883		<div class="column third text-center" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;">
884			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
885			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
886			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
887			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
888			</a>
889			<h3 class="size-18 text-center" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><b class="text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h3>
890			<div class="discription"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
891			<p class="size-18 price text-primary"><@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></p>
892			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now<br></a>
893		</div>
894	</script>
894	
895<script type="text/template" id="spcoursecard-5-template">
896		<div class="column third" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;">
897			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
898			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>			
899			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
900			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
901			</a>
902			<h3 class="sub-heading"><b class="size-18 text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h4>
903			<p class="size-16 description text-primary"> <@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
904				Instructor : <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
905			<@if(item.rating){@>
906				<p class="size-16 description text-primary">Rating: &nbsp;
907 					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
908						<@if(item.rating){@> 
909							<@if(item.rating.avgRating){@> 
910								<@ if(item.rating.avgRating >= ratingsSize) {@> 
911									<i class="icon ion-android-star text-primary"></i>&nbsp; 
912								<@ } else if(item.rating.avgRating > ratingsSize-1 && item.rating.avgRating < ratingsSize) { @> 
913									<i class="icon ion-android-star-half text-primary"></i>&nbsp; 
914								<@ } @>
915							<@}@>		
916		  				<@}@>
917					<@}@>
918				</p>
919			<@}@>
920		
921			<p class="size-18 price text-primary">Price : <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', true)) @></p>
922			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now</a>
923		</div>
924	</script>
924
925	
926<script type="text/template" id="spcoursecard-6-template">
927		<div class="column third">
928			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
929			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
930				
931				
932			
933				<@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) { @>
934				   <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
935				<@ } else { @>
936				   <a title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
937				<@ } @>
938			
939			
940			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')" style="border-radius: 20px; margin-bottom: 0px; width: 100%; height: 190px;object-fit:cover;">
941			</a>
942			<div style="font-weight: 800; line-height: 1.1; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;" class="text-ellipsis"><@- item['spayee:resource']['spayee:title'] @></div>
943			<p class="size-16 description text-primary"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @> Courses<@ } @></p>
944			<p class="size-18 price text-primary"><@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) @> <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @></p>
945			<@ if (item.isMembershipPage != undefined && !item.isMembershipPage) { @>
946            
947				
948				
949					<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="border: none;padding: 16px 61px; font-size: 16px; letter-spacing: 0.08px; line-height: 16px; font-weight: 600; text-decoration: none; display: block; text-align: center;">
950						Buy now
951					</a>
952				
953			
954			<@ } @>
955		</div>
956	</script>
956			
957	
958	
959<script type="text/template" id="spcoursecard-7-template">
960		<div class="column third course-mob-block">
961			<div class="inner-course-block">
962			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
963			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>			
964			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
965			<img class="lazy" data-style="width: 100%; height: auto;" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')" >
966			</a>
967			<div class="course-price-block">
968			<p class="text-ellipsis" title="<@- item['spayee:resource']['spayee:title'] @>" style="font-size: 18px; font-weight: 700; line-height: 1.3rem; width: 100%; margin-top: 0px; margin-bottom: 0px; min-height: 47px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;">
969				<@- item['spayee:resource']['spayee:title'] @>
970			</p>
971			<p class="text-primary" style="word-break: break-all; font-size: 14px; font-weight: 500; line-height: 1.5; margin-top: 16px; margin-bottom: 0px;">
972					<@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
973			</p>
974			</div>
975			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; border: none; cursor: pointer; border-radius: 4px; padding: 13px 28px; line-height: 1.5; font-weight: 600; font-size: 14px; letter-spacing: 0.15px; margin-top: 28px;">
976				Enroll now
977			</a>
978			</div>
979		</div>
980</script>
980		
981	
982<script type="text/template" id="spcoursecard-8-template">
983	 <div class="row clearfix" style="margin-bottom: 24px; margin-top: 14px;">
984			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
985			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
986                    <div class="column third center" style="padding-left: 0px; padding-right: 0px;">
987                        <img
988                            class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')"
989                            style="margin-top: 0px; margin-bottom: 0px;"
990                        />
991                    </div>
992                    <div class="column two-third course-block-mob" style="display: flex; flex-direction: column; justify-content: center;">
993                        <div class="course-price-block">	
994							<h3 style="color: rgb(255, 255, 255); font-size: 18px; font-weight: 700; line-height: 1.1; margin-bottom: 0px; margin-top: 0px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;">
995								<@- item['spayee:resource']['spayee:title'] @>
996							</h3>
997                        	<div class="sortDescription8">
998                            	<@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @>
999                        	</div>
1000						</div>
1001
1002                        <a class="buy-btn btn btn-primary" title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" style="width: fit-content; text-align: left; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; background-color: rgb(231, 215, 73); color: rgb(0, 0, 0);border-radius: 0px;padding: 16px 48px;line-height: 16px;font-weight: 700;font-size: 16px;letter-spacing: 0.08px;border-image: initial;">
1003                            Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1004                        </a>
1005					</div>
1006        </div>
1007	</script>
1007	
1008
1009
1010	<!-- vegas TEMPLATE 9 NEW-->
1011	
1011<script type="text/template" id="spcoursecard-9-template" >
1012    <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1013        <div style="border:1px solid #D7D7D7; border-radius:24px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1014            <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1015            <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1016            
1017            <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1018                <img style="height:200px; width:100%; object-fit:fill; margin:0px 0px; border-top-left-radius:24px; border-top-right-radius:24px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1019            </a>
1020            
1021			<div style="padding:10px 20px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1022				<h3 
1023					class="size-18 text-left" 
1024					title="<@- item['spayee:resource']['spayee:title'] @>" 
1025					style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1026				>
1027					<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1028				</h3>
1029			
1030				<div 
1031					class="size-16 text-ellipsis course-card-text" 
1032					title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1033					style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1034				>
1035				<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1036				</div>
1037			</div>
1038			
1039                <div style="margin-top: auto; margin-left:10px;">
1040                    <a style="background-color:#FB5607 !important; border:0px !important; border-radius:62px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1041                       class="buy-btn btn btn-primary" 
1042                       title="<@- item['spayee:resource']['spayee:title'] @>" 
1043                       amplitude-event="buy_now_tapped_course_checkout" 
1044                       amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1045                       href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1046                        Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1047                    </a>
1048                </div>
1049            </div>
1050        </div>
1051    </div>
1052</script>
1052
1053
1054			<!--Blaze Course nEW tEMPLATE 10-->
1055			
1055<script type="text/template" id="spcoursecard-10-template">
1056							<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 10px;margin-top:10px; text-align:left;">
1057								<div style="height: 100%; display: flex; flex-direction: column;">
1058									<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1059									<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1060									
1061									<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none; color:black; font-size:24px;">
1062										<img style="height:320px;  object-fit:cover; margin:0px 0px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1063									</a>
1064									
1065									<div style=" flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1066										<h3 
1067			    class="size-18 text-left" 
1068			    style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: white;"
1069			>
1070			    <b title="<@= item['spayee:resource']['spayee:title'] @>" style="color:white;">
1071			        <@- item['spayee:resource']['spayee:title'] @>
1072			    </b>
1073			</h3>
1074										
1075										<div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;color:white;">
1076											<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1077										</div>
1078										
1079										<div style="margin-top: auto;">
1080											<a style="width:100% !important;font-weight:600 !important; letter-spacing:0px; color:black !important; background-color:#D8FD46 !important; border:0px !important; border-radius:0px !important; padding:20px 36px !important; width: fit-content; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; padding: 16px 28px; line-height: 16px; font-weight: 700; font-size: 16px; letter-spacing: 0px; border-image: initial;" 
1081											class="buy-btn btn btn-primary" 
1082											title="<@- item['spayee:resource']['spayee:title'] @>" 
1083											amplitude-event="buy_now_tapped_course_checkout" 
1084											amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1085											href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1086											 Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1087										 </a>
1088			
1089										</div>
1090									</div>
1091								</div>
1092							</div>
1093						</script>
1093
1094			
1095			<!--Olive Course 11-->
1096			
1096<script type="text/template" id="spcoursecard-11-template" >
1097				<@ 
1098				// Calculate colors based on index
1099				var colorIndex = (typeof window.courseCardColorIndex === 'undefined') ? 0 : window.courseCardColorIndex;
1100				var colors = [
1101					{ bg: '#FFA46B', btnBg: '#361500' },  // Orange card → Dark brown button
1102					{ bg: '#87A1F6', btnBg: '#001A71' },  // Blue card → Dark blue button
1103					{ bg: '#B073DC', btnBg: '#34005A' }  // Purple card → Dark brown button (default)
1104				];
1105				var currentColor = colors[colorIndex % 3];
1106				window.courseCardColorIndex = colorIndex + 1;
1107				@>
1108				
1109				<div class="column third text-center course-card course-card-fixed-height" style="padding: 0 15px; margin-bottom: 30px;">
1110					<div class="course-card-wrapper" style="background-color: <@- currentColor.bg @>; height: 100%; border-radius: 32px; overflow: hidden;">
1111						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; 
1112						if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1113						
1114						<a class="course-image-link" style="display: block; padding: 16px;padding-bottom:0px" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1115							<img style="height:320px; width:100%; object-fit:cover; border-radius: 32px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1116						</a>
1117						
1118						<div style="padding: 20px;" class="course-card-content">
1119							<h3 style="font-size:24px; text-transform:uppercase; color: black; margin: 0 0 15px 0; text-align: left;white-space:nowrap; overflow: hidden; text-overflow: ellipsis;width: 100%;display:block;">
1120								<b title="<@= item['spayee:resource']['spayee:title'] @>"><@- item['spayee:resource']['spayee:title'] @></b>
1121							</h3>
1122							<div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; color:black; margin-bottom: 12px;text-align: left;">
1123								<@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"&nbsp;") @>
1124							</div>
1125							<a class="enroll-button" 
1126							   style="display: block; 
1127									  background-color: <@- currentColor.btnBg @>; 
1128									  color: white !important; 
1129									  padding: 12px; 
1130									  text-align: center; 
1131									  font-weight: 600; 
1132									  text-decoration: none;
1133									  border-radius: 32px;"
1134							   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1135								Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1136							</a>
1137						</div>
1138					</div>
1139				</div>
1140				
1141			</script>
1141
1142			
1143
1144			<!-- Nebula Course 12-->
1145			
1145<script type="text/template" id="spcoursecard-12-template" >
1146				<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1147					<div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1148						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1149						<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1150						
1151						<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1152							<img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1153						</a>
1154						
1155						<div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1156							<h3 
1157								class="size-18 text-left" 
1158								title="<@- item['spayee:resource']['spayee:title'] @>" 
1159								style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1160							>
1161								<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1162							</h3>
1163						
1164							<div 
1165								class="size-16 text-ellipsis course-card-text" 
1166								title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1167								style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1168							>
1169							<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1170							</div>
1171						</div>
1172							
1173							<div style="margin-top: auto; margin-left:0px;">
1174								<a style="background-color:#6715FF !important;  border-radius:12px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1175								   class="buy-btn btn btn-primary" 
1176								   title="<@- item['spayee:resource']['spayee:title'] @>" 
1177								   amplitude-event="buy_now_tapped_course_checkout" 
1178								   amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1179								   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1180									Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1181								</a>
1182							</div>
1183						</div>
1184					</div>
1185				</div>
1186			</script>
1186
1187
1188
1189
1190		<!--Dusk Course-13-->
1191		
1191<script type="text/template" id="spcoursecard-13-template" >
1192			<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1193				<div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1194					<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1195					<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1196					
1197					<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1198						<img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1199					</a>
1200					
1201					<div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1202						<h3 
1203							class="size-18 text-left" 
1204							title="<@- item['spayee:resource']['spayee:title'] @>" 
1205							style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1206						>
1207							<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1208						</h3>
1209					
1210						<div 
1211							class="size-16 text-ellipsis course-card-text" 
1212							title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1213							style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1214						>
1215						<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1216						</div>
1217					</div>
1218					
1219				   
1220						
1221						<div style="margin-top: auto; margin-left:0px;">
1222							<a style="background-color:#282400 !important;border:0px ;  border-radius:41px !important; padding:10px 24px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1223							   class="buy-btn btn btn-primary" 
1224							   title="<@- item['spayee:resource']['spayee:title'] @>" 
1225							   amplitude-event="buy_now_tapped_course_checkout" 
1226							   amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "USD", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1227							   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1228								Enroll for <@ print(getCourseDisplayPrice('$', sessionCountry, item, '0.0', '', false)) @>
1229							</a>
1230						</div>
1231					</div>
1232				</div>
1233			</div>
1234		</script>
1234
1235			
1236			
1237
1238
1239
1240
1241
1242
1243
1244<!-- Curriculum 1st Template -->
1245<script type="text/template" id="coursecurr-1-template">
1246       <table class="table courseContents">
1247        <thead>
1248            <tr>
1249                <td style="width: 50px;"></td>
1250                <td style="width: 50px;"></td>
1251                <td></td>
1252            </tr>
1253        </thead>
1254        <tbody>
1255            <@ $.each(item, function(index, value) { @>
1256            <tr>
1257                <td><i class="material-icons courseItemIcon" data-type="<@- value.type @>"></i></td>
1258                <td colspan="2">
1259                    <@- value.title @> 
1260					<@ if(value.type == 'aiheading') { @>
1261						<small>(coming soon)</small><@ } @>
1262					<@ if(assetInfo && value.type == 'video' && value.duration !== undefined && value.duration > 0) { @>
1263						<small>(<@ print(Math.floor(value.duration)) @>:00)</small><@ } @>
1264					<@ if(assetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @>
1265						<small>(<@- value.pages @> pages)</small>
1266					<@ } @>
1267                </td>
1268            </tr>
1269            <@ if(value.items != undefined) { @> <@ $.each(value['items'], function(index1, value1) { @>
1270            <tr>
1271                <td></td>
1272                <td><i class="material-icons courseItemIcon" data-type="<@- value1.type @>"></i></td>
1273                <td>
1274                    <@- value1.title @>
1275					<@ if(assetInfo && value.type == 'video' && value1.duration !== undefined && value1.duration > 0) { @><small>(<@ print(Math.floor(value1.duration)) @>:00)</small><@ } @>
1276					<@ if(assetInfo && value1.type =='pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
1277					<@ if(value1.type =='aiheading') { @><small>(coming soon)</small><@ } @>
1278                </td>
1279            </tr>
1280            <@ }); @> <@ } @> <@ }); @>
1281        </tbody>
1282    </table>
1283</script>
1283
1284
1285
1286<!-- Curriculum 2nd Template -->
1287<script type="text/template" id="coursecurr-2-template">
1288    <div class="column full curriculum2"  spellcheck="false">
1289      <div class="course-content1" >
1290    	<p style="font-size: 15px; font-weight: 400; margin-top: 0px;">
1291    		<@if(summary.modules && summary.modules>0){@>
1292    			<@print(summary.modules)@> Modules &nbsp;<i class="icon ion-android-folder-open"></i>&nbsp; &nbsp; <@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@>|<@}@>&nbsp; &nbsp;
1293    		<@}@>
1294    		<@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@>
1295    			<@print(summary.sessions)@> Sessions <i class="icon ion-android-laptop"></i>&nbsp; &nbsp; <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>|<@}@>&nbsp; &nbsp;
1296    		<@}@>
1297    		<@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
1298    			<@print(millisecondsToHHMMSSStr(summary.durations))@> Total Time&nbsp;&nbsp;<i class="icon ion-ios-clock-outline"></i>
1299    		<@}@>
1300    	</p>
1301      </div>
1302
1303
1304    	<@ $.each(item, function(index, value) { @>
1305    	<div class="course-course-content-box" >
1306    		<div class="course-content-blue-title <@if(value && value.contents){@> bg-primary <@}else if($('#'+id).closest('div.is-section').hasClass("is-bg-grey")){@>bg-white<@}else{@>is-bg-grey<@}@>" >
1307              <span class="title-icon">
1308    			<span class="material-icons <@if(value && !value.contents){@> text-primary <@}@>"><@ print(getCourseAssetIcon(value.type))@></span>
1309    		  </span>
1310    			<div class="titl5b" >
1311    				<h3 class="<@if(value && !value.contents){@> text-primary <@}@>">
1312    					<@print(value.title)@> <@ if(curriculumAssetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @><small>(<@- value.pages @> pages)</small><@ } @>
1313    					<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
1314    							<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value.id)@>" class="previewBtn"><span class="<@if(value && !value.contents){@> text-primary <@}@>">Preview</span></a>
1315    					<@}@>
1316    				</h3>
1317    		  		<p class="<@if(value && !value.contents){@> text-primary <@}@>"><@if(value && value.contents && curriculumAssetInfo){@>
1318    						Sessions: <@print(value.contents)@>
1319    					<@}@>
1320    					<@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@>|<@}@>
1321    						Time: <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1322    					<@}@>
1323    				<@if(value && value.contents>0){@><span class="material-icons">expand_more</span><@}@>  </p>
1324    			</div>
1325    		</div>
1326    <@if(value && value.items){@>
1327    	<@ $.each(value['items'], function(index1, value1) { @>
1328    		<div class="course-content-body <@if(index==0){@>showing<@ }@>" >
1329    				<div class="desc1 " >
1330    				<div class="is-box-9" >
1331    					<div class="boxa1" >
1332    						<span class="material-icons text-primary"><@ print(getCourseAssetIcon(value1.type))@></span>
1333    						<p> <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
1334							<@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
1335							</p>
1336		
1337    					</div>
1338    				</div>
1339    				<div class="is-box-1" >
1340    					<div class="boxa2" >
1341    						<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
1342    								<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>#<@print(value1.id)@>">
1343										<@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
1344									</a>
1345    						<@}@>
1346    					</div>
1347    				</div>
1348    				<div class="is-box-2" >
1349    					<div class="boxa2" >
1350    						<p class="duration"><@if(value1.duration && curriculumAssetInfo){@><@print(millisecondsToHHMMSSStr(value1.duration))@><@}@></p>
1351    					</div>
1352    				</div>
1353    				</div>
1354    		</div>
1355    	<@ }); @>
1356    <@}@>
1357    	</div>
1358      <@ }); @>
1359
1360    </div>
1361</script>
1361
1362
1363
1364
1365
1366
1367<!-- Curriculum 3rd Template -->
1368<script type="text/template" id="coursecurr-3-template">
1369     <div class="column full" spellcheck="false" data-gramm="false">
1370        <div class="accordion-syllabus" >
1371			<@ $.each(item, function(index, value) { @>
1372            <div class="accordion-syllabus-item">
1373                <header class="accordion-syllabus-header">
1374                    <h4 class="accordion-syllabus-header__title">
1375                        <span class="text-primary">
1376							<@if(index<9){@>
1377									0<@print(index+1)@>
1378								<@ } else {@> 
1379									<@print(index+1)@> 
1380							<@ } @>
1381						</span>
1382                        <p><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
1383							<@if(value && value.items){@>
1384								<@ print(value.items.length) @> attachment(s) 
1385							<@}@>
1386						<@if(value.moduleDurations && curriculumAssetInfo){@>
1387							<@if(value && value.contents){@> • <@}@>
1388    						<@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1389    					<@}@>
1390						</span></p>
1391						
1392                    </h4>
1393                    <div class="accordion-syllabus-header__info">
1394                        <p class="text-primary hide-sm">
1395							<@if(value && value.items){@>
1396								<@ print(value.items.length) @> attachment(s) 
1397							<@}@>
1398						<@if(value.moduleDurations && curriculumAssetInfo){@>
1399							<@if(value && value.contents){@> • <@}@>
1400    						<@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1401    					<@}@>
1402						</p>
1403						<@if(value && value.items){@>
1404                        <div class="accordion-syllabus-header__icon text-primary">
1405                            <i class="fa fa-angle-left" aria-hidden="true"></i>
1406                        </div>
1407						<@}@>
1408                    </div>
1409                </header>
1410				<@if(value && value.items){@>
1411                <div class="accordion-content" style="">
1412                    <div class="accordian-content-block">
1413                        <ul class="accordian-list">
1414							<@ $.each(value['items'], function(index1, value1) { @>
1415                            <li class="accordian-list__item">
1416                                <div class="accordian-content-card">
1417                                    <div class="accordian-content-card__info">
1418                                        <div class="accordian-content-card__ico">
1419											<@ if(value1.type == 'code'){ @>
1420												<img src="/resources/images/CodeIcon.svg">
1421											<@ } else { @>
1422												<span class="material-icons text-primary">
1423													<@ print(getCourseAssetIcon(value1.type))@>
1424												</span>
1425											<@ } @>
1426										</div>
1427                                        <div class="accordian-content-card__title">
1428											<@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
1429											<@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
1430										</div>
1431                                    </div>
1432                                    <div class="accordian-content-card__link">
1433										<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
1434    										<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn">
1435												<span class="text-primary">
1436													<@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @><span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span>
1437												</span>
1438											</a>
1439    									<@}@>
1440                                    </div>
1441                                </div>
1442                            </li>
1443                    		<@ }); @>
1444                        </ul>
1445                    </div>
1446                </div>
1447			<@ } @>
1448            </div>
1449           <@ }); @>   
1450        </div>
1451    </div>
1452</script>
1452
1453
1454
1455
1456<!-- Curriculum 4th Template -->
1457<script type="text/template" id="coursecurr-4-template">
1458   <div class="column full coursecurr4">
1459	 <@ $.each(item, function(index, value) { @>
1460	 <div class="accordion-syllabus-item">
1461	 <header class="accordion-syllabus-header" >
1462		 <h4 class="accordion-syllabus-header__title">
1463			 <span>
1464				 <@if(index<9){@>0<@print(index+1)@><@ } else {@> <@print(index+1)@> <@ } @>
1465			 </span>
1466			 <div class="accordion-syllabus-header__title-block" > 
1467				 <p style="font-size: 20px; font-weight: 700;">
1468					 <@print(value.title)@>
1469				 </p>
1470				 <p class="text-primary" style="font-weight: 500; font-size: 14px; line-height: 150%; margin-top: 10px; ">
1471					 <@if(value && value.type == 'aiheading'){@>
1472						 (coming soon)
1473					 <@}@>
1474					 <@if(value && value.items){@>
1475						 <@ print(value.items.length) @> attachment(s) 
1476					 <@}@>
1477					 <@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@> • <@}@>
1478						 <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1479					 <@}@>
1480				 </p>
1481			 </div>
1482		 </h4>
1483		 <@if(value && value.items){@>
1484		 <div class="accordion-syllabus-header__info" >
1485			 <div class="accordion-syllabus-header__icon" >
1486				 <i class="fa fa-angle-left" aria-hidden="true"></i>
1487			 </div>
1488		 </div>
1489		 <@ } @>
1490	 </header>
1491	 <@if(value && value.items){@>
1492	 <div class="accordion-content"  style="">
1493		 <div class="accordian-content-block" >
1494			 <ul class="accordian-list">
1495				 <@ $.each(value['items'], function(index1, value1) { @>
1496				 <li class="accordian-list__item">
1497					 <div class="accordian-content-card" >
1498						 <div class="accordian-content-card__info" >
1499							 <div class="accordian-content-card__ico" >
1500								 <@ if(value1.type == 'code'){ @>
1501									 <img src="/resources/images/CodeIcon.svg">
1502								 <@ } else { @>
1503									 <span class="material-icons text-primary">
1504										 <@ print(getCourseAssetIcon(value1.type))@>262
1505									 </span>
1506								 <@ } @>
1507							 </div>
1508							 <div class="accordian-content-card__title" >
1509								 <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
1510								 <@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
1511							 </div>
1512						 </div>
1513						 <div class="accordian-content-card__link" >
1514							 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
1515							 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn">
1516								 <span class="text-primary">
1517									 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span>
1518								 </span>
1519							 </a>
1520							 <@ } @>
1521						 </div>
1522					 </div>
1523				 </li>
1524				 <@ }); @>
1525			 </ul>
1526		 </div>
1527	 </div>
1528	 <@ } @>
1529   </div>
1530  <@ }); @>  
1531 </div>
1532 </script>
1532
1533
1534 <!-- vegas curriculum-5-->
1535 
1535<script>
1536	// Simple responsive positioning
1537	function updatePosition() {
1538		const element = document.getElementById('totalTimeElement');
1539		if(element){
1540		if (window.innerWidth > 768) {
1541			element.style.position = 'absolute';
1542			element.style.top = "5px";
1543			element.style.right = '122px';
1544		} else {
1545			element.style.position = 'static';
1546			element.style.margin = '0 0';
1547		}
1548		}
1549	}
1550	
1551	// Run on load and resize
1552	window.addEventListener('load', updatePosition);
1553	window.addEventListener('resize', updatePosition);
1554	</script>
1554
1555 
1555<script type="text/template" id="coursecurr-5-template">
1556	<div class="total-time" id="totalTimeElement" style="
1557    font-size: 18px;
1558    font-weight: 600;
1559    color: #FB5607;
1560    padding: 8px 12px;
1561    border-radius: 4px;
1562    white-space: nowrap;">
1563     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
1564        <@print(millisecondsToHHMMSSStr(summary.durations))@>
1565    <@}@>
1566</div>
1567
1568<div class="accordion-syllabus" style="max-width:1000px !important">
1569    <@ $.each(item, function(index, value) { @>
1570    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
1571        <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:0px;box-shadow:none;padding:0.5rem !important">
1572            <h4 class="accordion-syllabus-header__title">
1573                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
1574                    <@if(index < 9) {@>  
1575                        Week <@print(index + 1)@>:  
1576                    <@ } else {@>  
1577                        Week <@print(index + 1)@>:
1578                    <@ } @>  
1579                </span>
1580                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
1581                    <@if(value && value.items){@>
1582                        <@ print(value.items.length) @> attachment(s) 
1583                    <@} else {@>
1584                        1 attachment(s)
1585                    <@}@>
1586                    <@if(value.moduleDurations && curriculumAssetInfo){@>
1587						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1588					<@}@>
1589                </span></p>
1590            </h4>
1591			
1592            <div class="accordion-syllabus-header__info">
1593                <p class="text-primary hide-sm" style="color:#FB5607 !important;">
1594                    <@if(value && value.items){@>
1595                        <@ print(value.items.length) @> attachment(s) 
1596                    <@} else {@>
1597                        1 attachment(s)
1598                    <@}@>
1599                    <@if(value.moduleDurations && curriculumAssetInfo){@>
1600						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1601					<@}@>
1602                </p>
1603                <div class="accordion-syllabus-header__icon text-primary">
1604                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#FB5607;"></i>
1605                </div>
1606            </div>
1607        </header>
1608        <div class="accordion-content" style="filter:none;">
1609            <div class="accordian-content-block" style="background:#F5F5F5 !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
1610                <ul class="accordian-list">
1611                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
1612                    <@ if(value['items'] && value['items'].length > 0) { @>
1613                        <@ $.each(value['items'], function(index1, value1) { @>
1614                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
1615							<style>
1616								@media (max-width: 768px) {
1617								  .accordian-content-card {
1618									flex-direction: column !important;
1619									align-items: stretch !important;
1620								  }
1621							  
1622								  .accordian-content-card__top {
1623									flex-direction: row !important;
1624									justify-content: space-between !important;
1625									align-items: center !important;
1626									width: 100% !important;
1627								  }
1628							  
1629								  .accordian-content-card__title {
1630									flex: 1 !important;
1631									margin: 0 10px !important;
1632									white-space: nowrap;
1633									overflow: hidden;
1634									text-overflow: ellipsis;
1635								  }
1636							  
1637								  .accordian-content-card__bottom {
1638									flex-direction: row !important;
1639									justify-content: space-between !important;
1640									align-items: center !important;
1641									width: 100% !important;
1642									margin-top: 6px !important;
1643								  }
1644							  
1645								  .accordian-content-card__link {
1646									flex: 1 !important;
1647									min-width: 0 !important;
1648									text-align: left !important;
1649								  }
1650							  
1651								  .accordian-content-card__time {
1652									flex-shrink: 0 !important;
1653									text-align: right !important;
1654								  }
1655								}
1656							  </style>
1657							  
1658							  <div class="accordian-content-card"
1659     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
1660
1661							  
1662								<!-- Row 1: Icon + Title + Collapse Icon -->
1663								<div class="accordian-content-card__top"
1664									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
1665							  
1666								  <!-- Icon -->
1667								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
1668									<@ if(value1.type == 'code'){ @>
1669									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
1670									<@ } else { @>
1671									  <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;">
1672										<@ print(getCourseAssetIcon(value1.type))@>
1673									  </span>
1674									<@ } @>
1675								  </div>
1676							  
1677								  <!-- Title -->
1678								  <div class="accordian-content-card__title"
1679									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
1680									<@print(value1.title)@>
1681								  </div>
1682							  
1683								  <!-- Collapse Icon (optional) -->
1684								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
1685									<!-- Example placeholder, add real icon if needed -->
1686									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
1687								  </div>
1688								</div>
1689							  
1690								<!-- Row 2: Preview Button and Time -->
1691								<div class="accordian-content-card__bottom"
1692									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
1693							  
1694								  <!-- Preview Button -->
1695								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
1696									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
1697									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
1698										 class="previewBtn"
1699										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
1700										<span class="text-primary" style="color:#FB5607;">
1701										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
1702										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span>
1703										</span>
1704									  </a>
1705									<@}@>
1706								  </div>
1707							  
1708								  <!-- Time -->
1709								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
1710									<p class="text-primary course-asset-time"
1711									   style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;">
1712									  <@ if(value1.duration && value1.duration > 0) { @>
1713										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
1714									  <@ } else { @>
1715										--
1716									  <@ } @>
1717									</p>
1718								  </div>
1719							  
1720								</div>
1721							  </div>
1722							  
1723							
1724                        </li>
1725                        <@ }); @>
1726                    <@ } else { @>
1727                        <li class="accordian-list__item" style="padding:0px 0px !important;">
1728							<div class="accordian-content-card"
1729							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
1730					   
1731						   <!-- Row 1: Icon + Title + Collapse Icon -->
1732						   <div class="accordian-content-card__top"
1733								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
1734						 
1735							   <!-- Icon -->
1736							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
1737								   <@ if(value.type == 'code'){ @>
1738									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
1739								   <@ } else { @>
1740									   <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;">
1741										   <@ print(getCourseAssetIcon(value.type))@>
1742									   </span>
1743								   <@ } @>
1744							   </div>
1745						 
1746							   <!-- Title -->
1747							   <div class="accordian-content-card__title"
1748									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
1749								   <@print(value.title)@>
1750							   </div>
1751						 
1752							   <!-- Collapse Icon (optional) -->
1753							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
1754								   <!-- Example placeholder, add real icon if needed -->
1755								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
1756							   </div>
1757						   </div>
1758						 
1759						   <!-- Row 2: Preview Button and Time -->
1760						   <div class="accordian-content-card__bottom"
1761								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
1762						 
1763							   <!-- Preview Button -->
1764							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
1765								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
1766									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
1767										  class="previewBtn"
1768										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
1769										   <span class="text-primary" style="color:#FB5607;">
1770											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
1771											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span>
1772										   </span>
1773									   </a>
1774								   <@}@>
1775							   </div>
1776						 
1777							   <!-- Time -->
1778							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
1779								   <p class="text-primary course-asset-time"
1780									  style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;">
1781									   <@ if(value.duration && value.duration > 0) { @>
1782										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
1783									   <@ } else { @>
1784										   --
1785									   <@ } @>
1786								   </p>
1787							   </div>
1788						   </div>
1789					   </div>
1790                        </li>
1791                    <@ } @>
1792                </ul>
1793            
1794                <@ if(itemsCount > 5) { @>
1795                    <div style="text-align: center; margin-top: 10px;">
1796						<button style="background-color: #FB5607; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
1797						onclick="
1798							var parentAccordion = this.closest('.accordion-content');
1799							parentAccordion.style.maxHeight = 'none';
1800							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
1801							this.style.display = 'none';
1802						">
1803                            View All
1804                        </button>
1805                    </div>
1806                <@ } @>
1807            </div>
1808        </div>
1809    </div>
1810    <@ }); @>
1811    <@ if(item.length > 5) { @>
1812        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
1813            <button style="background-color: #FB5607; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
1814                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
1815                View All Sessions
1816            </button>
1817        </div>
1818    <@ } @>
1819</div>
1820	</div>
1821</script>
1821
1822
1823
1824<!--Blaze-Curriculum-6-->
1825<script type="text/template" id="coursecurr-6-template">
1826    <div class="column full" spellcheck="false" data-gramm="false">
1827        <div class="total-time" id="totalTimeElement" style="
1828            font-size: 18px;
1829            font-weight: 600;
1830            color: #D8FD46;
1831            padding: 8px 12px;
1832            border-radius: 4px;
1833            white-space: nowrap;
1834            background: #232323;
1835            margin-bottom: 20px;">
1836            <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
1837                <@print(millisecondsToHHMMSSStr(summary.durations))@>
1838            <@}@>
1839        </div>
1840
1841        <div class="accordion-syllabus">
1842            <@ $.each(item, function(index, value) { @>
1843            <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
1844                <header class="accordion-syllabus-header" style="background:#232323 !important; border-radius:0px;box-shadow:none;padding:20px 20px !important">
1845                    <h4 class="accordion-syllabus-header__title">
1846                        <span class="text-primary" style="font-size:18px ; font-weight:600; color:white;"> 
1847                            <@if(index < 9) {@>  
1848								Week <@print(index + 1)@>:  
1849							<@ } else {@>  
1850								Week <@print(index + 1)@>:
1851							<@ } @>  
1852                        </span>
1853                        <p style="font-size:18px ; font-weight:600;color:white;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;color:#D8FD46 !important;">
1854							<@if(value && value.items){@>
1855								<@ print(value.items.length) @> attachment(s) 
1856							<@} else {@>
1857								1 attachment(s)
1858							<@}@>
1859							<@if(value.moduleDurations && curriculumAssetInfo){@>
1860								• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1861							<@}@>
1862						</span></p>
1863                    </h4>
1864                    <div class="accordion-syllabus-header__info">
1865                        <p class="text-primary hide-sm" style="color:#D8FD46 !important;">
1866                            <@if(value && value.items){@>
1867                                <@ print(value.items.length) @> attachment(s) 
1868                            <@} else {@>
1869                                1 attachment(s)
1870                            <@}@>
1871							<@if(value.moduleDurations && curriculumAssetInfo){@>
1872								• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
1873							<@}@>
1874                        </p>
1875                        <div class="accordion-syllabus-header__icon text-primary">
1876                            <i class="fa fa-angle-left" aria-hidden="true" style="color:#D8FD46;"></i>
1877                        </div>
1878                    </div>
1879                </header>
1880                <div class="accordion-content" style="filter:none;background:#181818;">
1881                    <div class="accordian-content-block" style="box-shadow:none;padding:16px 20px !important;background:transparent !important;">
1882                        <ul class="accordian-list">
1883                            <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
1884                            <@ if(value['items'] && value['items'].length > 0) { @>
1885                                <@ $.each(value['items'], function(index1, value1) { @>
1886                                <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
1887                                    <style>
1888                                        @media (max-width: 768px) {
1889                                            .accordian-content-card {
1890                                                flex-direction: column !important;
1891                                                align-items: stretch !important;
1892                                            }
1893                                        
1894                                            .accordian-content-card__top {
1895                                                flex-direction: row !important;
1896                                                justify-content: space-between !important;
1897                                                align-items: center !important;
1898                                                width: 100% !important;
1899                                            }
1900                                        
1901                                            .accordian-content-card__title {
1902                                                flex: 1 !important;
1903                                                margin: 0 10px !important;
1904                                                white-space: nowrap;
1905                                                overflow: hidden;
1906                                                text-overflow: ellipsis;
1907                                            }
1908                                        
1909                                            .accordian-content-card__bottom {
1910                                                flex-direction: row !important;
1911                                                justify-content: space-between !important;
1912                                                align-items: center !important;
1913                                                width: 100% !important;
1914                                                margin-top: 6px !important;
1915                                            }
1916                                        
1917                                            .accordian-content-card__link {
1918                                                flex: 1 !important;
1919                                                min-width: 0 !important;
1920                                                text-align: left !important;
1921                                            }
1922                                        
1923                                            .accordian-content-card__time {
1924                                                flex-shrink: 0 !important;
1925                                                text-align: right !important;
1926                                            }
1927                                        }
1928                                    </style>
1929                                    
1930                                    <div class="accordian-content-card"
1931                                        style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; ">
1932                                    
1933                                        <!-- Row 1: Icon + Title + Collapse Icon -->
1934                                        <div class="accordian-content-card__top"
1935                                            style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
1936                                        
1937                                            <!-- Icon -->
1938                                            <div class="accordian-content-card__ico" style="flex-shrink: 0;">
1939                                                <@ if(value1.type == 'code'){ @>
1940                                                    <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);">
1941                                                <@ } else { @>
1942                                                    <span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;">
1943                                                        <@ print(getCourseAssetIcon(value1.type))@>
1944                                                    </span>
1945                                                <@ } @>
1946                                            </div>
1947                                        
1948                                            <!-- Title -->
1949                                            <div class="accordian-content-card__title"
1950                                                style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
1951                                                <@print(value1.title)@>
1952                                                <!-- <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @>
1953                                                    <small style="color: #999;">(<@- value1.pages @> pages)</small>
1954                                                <@ } @>
1955                                                <@ if(value1.type == 'aiheading') { @>
1956                                                    <small style="color: #999;">(coming soon)</small>
1957                                                <@ } @> -->
1958                                            </div>
1959                                        
1960                                            <!-- Collapse Icon -->
1961                                            <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
1962                                            </div>
1963                                        </div>
1964                                    
1965                                        <!-- Row 2: Preview Button and Time -->
1966                                        <div class="accordian-content-card__bottom"
1967                                            style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
1968                                        
1969                                            <!-- Preview Button -->
1970                                            <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
1971                                                <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
1972                                                <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
1973                                                    class="previewBtn"
1974                                                    style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
1975                                                    <span class="text-primary" style="color:#D8FD46;">
1976                                                        <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
1977                                                        <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span>
1978                                                    </span>
1979                                                </a>
1980                                                <@}@>
1981                                            </div>
1982                                        
1983                                            <!-- Time -->
1984                                            <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
1985                                                <p class="text-primary course-asset-time"
1986                                                    style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;">
1987                                                    <@ if(value1.duration && value1.duration > 0) { @>
1988                                                        <@ print(millisecondsToHHMMSSStr(value1.duration)) @>
1989                                                    <@ } else { @>
1990                                                        --
1991                                                    <@ } @>
1992                                                </p>
1993                                            </div>
1994                                        </div>
1995                                    </div>
1996                                </li>
1997                                <@ }); @>
1998                            <@ } else { @>
1999								<li class="accordian-list__item" style="padding:0px 0px !important;">
2000									<div class="accordian-content-card"
2001										style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; ">
2002								   
2003										<!-- Row 1: Icon + Title + Collapse Icon -->
2004										<div class="accordian-content-card__top"
2005											style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2006									  
2007											<!-- Icon -->
2008											<div class="accordian-content-card__ico" style="flex-shrink: 0;">
2009												<@ if(value.type == 'code'){ @>
2010													<img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);">
2011												<@ } else { @>
2012													<span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;">
2013														<@ print(getCourseAssetIcon(value.type))@>
2014													</span>
2015												<@ } @>
2016											</div>
2017									  
2018											<!-- Title -->
2019											<div class="accordian-content-card__title"
2020												style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2021												<@print(value.title)@>
2022											</div>
2023									  
2024											<!-- Collapse Icon (optional) -->
2025											<div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2026												<!-- Example placeholder, add real icon if needed -->
2027												<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2028											</div>
2029										</div>
2030									  
2031										<!-- Row 2: Preview Button and Time -->
2032										<div class="accordian-content-card__bottom"
2033											style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2034									  
2035											<!-- Preview Button -->
2036											<div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2037												<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2038													<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2039													   class="previewBtn"
2040													   style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2041														<span class="text-primary" style="color:#D8FD46;">
2042															<@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2043															<span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span>
2044														</span>
2045													</a>
2046												<@}@>
2047											</div>
2048									  
2049											<!-- Time -->
2050											<div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2051												<p class="text-primary course-asset-time"
2052												   style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;">
2053													<@ if(value.duration && value.duration > 0) { @>
2054														<@ print(millisecondsToHHMMSSStr(value.duration)) @>
2055													<@ } else { @>
2056														--
2057													<@ } @>
2058												</p>
2059											</div>
2060										</div>
2061									</div>
2062								</li>
2063                            <@ } @>
2064                        </ul>
2065                    
2066                        <@ if(itemsCount > 5) { @>
2067                            <div style="text-align: center; margin-top: 10px;">
2068                                <button style="background-color: #D8FD46; color: black; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 
2069                                   onclick="
2070							var parentAccordion = this.closest('.accordion-content');
2071							parentAccordion.style.maxHeight = 'none';
2072							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2073							this.style.display = 'none';
2074						">
2075                                    View All
2076                                </button>
2077                            </div>
2078                        <@ } @>
2079                    </div>
2080                </div>
2081            </div>
2082            <@ }); @>
2083            <@ if(item.length > 5) { @>
2084                <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
2085                    <button style="background-color: #D8FD46; color: black; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 
2086                        onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
2087                        View All Sessions
2088                    </button>
2089                </div>
2090            <@ } @>
2091        </div>
2092    </div>
2093</script>
2093
2094
2095<script>
2096    // Simple responsive positioning (same as Vegas)
2097    function updatePosition() {
2098        const element = document.getElementById('totalTimeElement');
2099        if(element){
2100            if (window.innerWidth > 768) {
2101                element.style.position = 'absolute';
2102                element.style.top = "5px";
2103                element.style.right = '122px';
2104            } else {
2105                element.style.position = 'static';
2106                element.style.margin = '0 0';
2107            }
2108        }
2109    }
2110    
2111    // Run on load and resize
2112    window.addEventListener('load', updatePosition);
2113    window.addEventListener('resize', updatePosition);
2114</script>
2114
2115
2116
2117
2118
2119<!--Nebula Curriculum 7-->
2120
2121
2122<script>
2123	// Simple responsive positioning
2124	function updatePosition() {
2125		const element = document.getElementById('totalTimeElement');
2126		if(element){
2127		if (window.innerWidth > 768) {
2128			element.style.position = 'absolute';
2129			element.style.top = "5px";
2130			element.style.right = '122px';
2131		} else {
2132			element.style.position = 'static';
2133			element.style.margin = '0 0';
2134		}
2135		}
2136	}
2137	
2138	// Run on load and resize
2139	window.addEventListener('load', updatePosition);
2140	window.addEventListener('resize', updatePosition);
2141	</script>
2141
2142 
2142<script type="text/template" id="coursecurr-7-template">
2143	<div class="total-time" id="totalTimeElement" style="
2144    font-size: 18px;
2145    font-weight: 600;
2146    color: #6715FF;
2147    padding: 8px 12px;
2148    border-radius: 4px;
2149    white-space: nowrap;">
2150     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2151        <@print(millisecondsToHHMMSSStr(summary.durations))@>
2152    <@}@>
2153</div>
2154
2155<div class="accordion-syllabus" style="max-width:1000px !important">
2156    <@ $.each(item, function(index, value) { @>
2157    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2158        <header class="accordion-syllabus-header" style="background:#F1ECFB !important; border-radius16px;box-shadow:none;padding:20px !important">
2159            <h4 class="accordion-syllabus-header__title">
2160                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
2161                    <@if(index < 9) {@>  
2162                        Week <@print(index + 1)@>:  
2163                    <@ } else {@>  
2164                        Week <@print(index + 1)@>:
2165                    <@ } @>  
2166                </span>
2167                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2168                    <@if(value && value.items){@>
2169                        <@ print(value.items.length) @> attachment(s) 
2170                    <@} else {@>
2171                        1 attachment(s)
2172                    <@}@>
2173                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2174						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2175					<@}@>
2176                </span></p>
2177            </h4>
2178			
2179            <div class="accordion-syllabus-header__info">
2180                <p class="text-primary hide-sm" style="color:#6715FF !important;">
2181                    <@if(value && value.items){@>
2182                        <@ print(value.items.length) @> attachment(s) 
2183                    <@} else {@>
2184                        1 attachment(s)
2185                    <@}@>
2186                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2187						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2188					<@}@>
2189                </p>
2190                <div class="accordion-syllabus-header__icon text-primary">
2191                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#6715FF;"></i>
2192                </div>
2193            </div>
2194        </header>
2195        <div class="accordion-content" style="filter:none;background:transparent !important;">
2196            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
2197                <ul class="accordian-list">
2198                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2199                    <@ if(value['items'] && value['items'].length > 0) { @>
2200                        <@ $.each(value['items'], function(index1, value1) { @>
2201                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2202							<style>
2203								@media (max-width: 768px) {
2204								  .accordian-content-card {
2205									flex-direction: column !important;
2206									align-items: stretch !important;
2207								  }
2208							  
2209								  .accordian-content-card__top {
2210									flex-direction: row !important;
2211									justify-content: space-between !important;
2212									align-items: center !important;
2213									width: 100% !important;
2214								  }
2215							  
2216								  .accordian-content-card__title {
2217									flex: 1 !important;
2218									margin: 0 10px !important;
2219									white-space: nowrap;
2220									overflow: hidden;
2221									text-overflow: ellipsis;
2222								  }
2223							  
2224								  .accordian-content-card__bottom {
2225									flex-direction: row !important;
2226									justify-content: space-between !important;
2227									align-items: center !important;
2228									width: 100% !important;
2229									margin-top: 6px !important;
2230								  }
2231							  
2232								  .accordian-content-card__link {
2233									flex: 1 !important;
2234									min-width: 0 !important;
2235									text-align: left !important;
2236								  }
2237							  
2238								  .accordian-content-card__time {
2239									flex-shrink: 0 !important;
2240									text-align: right !important;
2241								  }
2242								}
2243							  </style>
2244							  
2245							  <div class="accordian-content-card"
2246     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2247
2248							  
2249								<!-- Row 1: Icon + Title + Collapse Icon -->
2250								<div class="accordian-content-card__top"
2251									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2252							  
2253								  <!-- Icon -->
2254								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2255									<@ if(value1.type == 'code'){ @>
2256									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2257									<@ } else { @>
2258									  <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;">
2259										<@ print(getCourseAssetIcon(value1.type))@>
2260									  </span>
2261									<@ } @>
2262								  </div>
2263							  
2264								  <!-- Title -->
2265								  <div class="accordian-content-card__title"
2266									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2267									<@print(value1.title)@>
2268								  </div>
2269							  
2270								  <!-- Collapse Icon (optional) -->
2271								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2272									<!-- Example placeholder, add real icon if needed -->
2273									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2274								  </div>
2275								</div>
2276							  
2277								<!-- Row 2: Preview Button and Time -->
2278								<div class="accordian-content-card__bottom"
2279									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2280							  
2281								  <!-- Preview Button -->
2282								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2283									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2284									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
2285										 class="previewBtn"
2286										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2287										<span class="text-primary" style="color:#6715FF;">
2288										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2289										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span>
2290										</span>
2291									  </a>
2292									<@}@>
2293								  </div>
2294							  
2295								  <!-- Time -->
2296								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2297									<p class="text-primary course-asset-time"
2298									   style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;">
2299									  <@ if(value1.duration && value1.duration > 0) { @>
2300										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
2301									  <@ } else { @>
2302										--
2303									  <@ } @>
2304									</p>
2305								  </div>
2306							  
2307								</div>
2308							  </div>
2309							  
2310							
2311                        </li>
2312                        <@ }); @>
2313                    <@ } else { @>
2314                        <li class="accordian-list__item" style="padding:0px 0px !important;">
2315							<div class="accordian-content-card"
2316							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2317					   
2318						   <!-- Row 1: Icon + Title + Collapse Icon -->
2319						   <div class="accordian-content-card__top"
2320								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2321						 
2322							   <!-- Icon -->
2323							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2324								   <@ if(value.type == 'code'){ @>
2325									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2326								   <@ } else { @>
2327									   <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;">
2328										   <@ print(getCourseAssetIcon(value.type))@>
2329									   </span>
2330								   <@ } @>
2331							   </div>
2332						 
2333							   <!-- Title -->
2334							   <div class="accordian-content-card__title"
2335									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2336								   <@print(value.title)@>
2337							   </div>
2338						 
2339							   <!-- Collapse Icon (optional) -->
2340							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2341								   <!-- Example placeholder, add real icon if needed -->
2342								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2343							   </div>
2344						   </div>
2345						 
2346						   <!-- Row 2: Preview Button and Time -->
2347						   <div class="accordian-content-card__bottom"
2348								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2349						 
2350							   <!-- Preview Button -->
2351							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2352								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2353									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2354										  class="previewBtn"
2355										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2356										   <span class="text-primary" style="color:#6715FF;">
2357											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2358											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span>
2359										   </span>
2360									   </a>
2361								   <@}@>
2362							   </div>
2363						 
2364							   <!-- Time -->
2365							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2366								   <p class="text-primary course-asset-time"
2367									  style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;">
2368									   <@ if(value.duration && value.duration > 0) { @>
2369										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
2370									   <@ } else { @>
2371										   --
2372									   <@ } @>
2373								   </p>
2374							   </div>
2375						   </div>
2376					   </div>
2377                        </li>
2378                    <@ } @>
2379                </ul>
2380            
2381                <@ if(itemsCount > 5) { @>
2382                    <div style="text-align: center; margin-top: 10px;">
2383						<button style="background-color: #6715FF; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2384						onclick="
2385							var parentAccordion = this.closest('.accordion-content');
2386							parentAccordion.style.maxHeight = 'none';
2387							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2388							this.style.display = 'none';
2389						">
2390                            View All
2391                        </button>
2392                    </div>
2393                <@ } @>
2394            </div>
2395        </div>
2396    </div>
2397    <@ }); @>
2398    <@ if(item.length > 5) { @>
2399        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
2400            <button style="background-color: #6715FF; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2401                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
2402                View All Sessions
2403            </button>
2404        </div>
2405    <@ } @>
2406</div>
2407	</div>
2408</script>
2408
2409
2410
2411
2412<!--Olive Curriculum 8-->
2413<script>
2414	// Simple responsive positioning
2415	function updatePosition() {
2416		const element = document.getElementById('totalTimeElement');
2417		if(element){
2418		if (window.innerWidth > 768) {
2419			element.style.position = 'absolute';
2420			element.style.top = "5px";
2421			element.style.right = '122px';
2422		} else {
2423			element.style.position = 'static';
2424			element.style.margin = '0 0';
2425		}
2426		}
2427	}
2428	
2429	// Run on load and resize
2430	window.addEventListener('load', updatePosition);
2431	window.addEventListener('resize', updatePosition);
2432	</script>
2432
2433 
2433<script type="text/template" id="coursecurr-8-template">
2434	<div class="total-time" id="totalTimeElement" style="
2435    font-size: 18px;
2436    font-weight: 600;
2437    color: #064400;
2438    padding: 8px 12px;
2439    border-radius: 4px;
2440    white-space: nowrap;">
2441     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2442        <@print(millisecondsToHHMMSSStr(summary.durations))@>
2443    <@}@>
2444</div>
2445
2446<div class="accordion-syllabus" style="max-width:1000px !important">
2447    <@ $.each(item, function(index, value) { @>
2448    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2449        <header class="accordion-syllabus-header" style="background:#E5E5E5 !important; border-radius16px;box-shadow:none;padding:20px !important">
2450            <h4 class="accordion-syllabus-header__title">
2451                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
2452                    <@if(index < 9) {@>  
2453                        Week <@print(index + 1)@>:  
2454                    <@ } else {@>  
2455                        Week <@print(index + 1)@>:
2456                    <@ } @>  
2457                </span>
2458                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2459                    <@if(value && value.items){@>
2460                        <@ print(value.items.length) @> attachment(s) 
2461                    <@} else {@>
2462                        1 attachment(s)
2463                    <@}@>
2464                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2465						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2466					<@}@>
2467                </span></p>
2468            </h4>
2469			
2470            <div class="accordion-syllabus-header__info">
2471                <p class="text-primary hide-sm" style="color:#064400 !important;">
2472                    <@if(value && value.items){@>
2473                        <@ print(value.items.length) @> attachment(s) 
2474                    <@} else {@>
2475                        1 attachment(s)
2476                    <@}@>
2477                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2478						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2479					<@}@>
2480                </p>
2481                <div class="accordion-syllabus-header__icon text-primary">
2482                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#064400;"></i>
2483                </div>
2484            </div>
2485        </header>
2486        <div class="accordion-content" style="filter:none;background:transparent !important;">
2487            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
2488                <ul class="accordian-list">
2489                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2490                    <@ if(value['items'] && value['items'].length > 0) { @>
2491                        <@ $.each(value['items'], function(index1, value1) { @>
2492                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2493							<style>
2494								@media (max-width: 768px) {
2495								  .accordian-content-card {
2496									flex-direction: column !important;
2497									align-items: stretch !important;
2498								  }
2499							  
2500								  .accordian-content-card__top {
2501									flex-direction: row !important;
2502									justify-content: space-between !important;
2503									align-items: center !important;
2504									width: 100% !important;
2505								  }
2506							  
2507								  .accordian-content-card__title {
2508									flex: 1 !important;
2509									margin: 0 10px !important;
2510									white-space: nowrap;
2511									overflow: hidden;
2512									text-overflow: ellipsis;
2513								  }
2514							  
2515								  .accordian-content-card__bottom {
2516									flex-direction: row !important;
2517									justify-content: space-between !important;
2518									align-items: center !important;
2519									width: 100% !important;
2520									margin-top: 6px !important;
2521								  }
2522							  
2523								  .accordian-content-card__link {
2524									flex: 1 !important;
2525									min-width: 0 !important;
2526									text-align: left !important;
2527								  }
2528							  
2529								  .accordian-content-card__time {
2530									flex-shrink: 0 !important;
2531									text-align: right !important;
2532								  }
2533								}
2534							  </style>
2535							  
2536							  <div class="accordian-content-card"
2537     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2538
2539							  
2540								<!-- Row 1: Icon + Title + Collapse Icon -->
2541								<div class="accordian-content-card__top"
2542									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2543							  
2544								  <!-- Icon -->
2545								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2546									<@ if(value1.type == 'code'){ @>
2547									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2548									<@ } else { @>
2549									  <span class="material-icons text-primary" style="color:#064400; font-size: 24px;">
2550										<@ print(getCourseAssetIcon(value1.type))@>
2551									  </span>
2552									<@ } @>
2553								  </div>
2554							  
2555								  <!-- Title -->
2556								  <div class="accordian-content-card__title"
2557									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2558									<@print(value1.title)@>
2559								  </div>
2560							  
2561								  <!-- Collapse Icon (optional) -->
2562								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2563									<!-- Example placeholder, add real icon if needed -->
2564									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2565								  </div>
2566								</div>
2567							  
2568								<!-- Row 2: Preview Button and Time -->
2569								<div class="accordian-content-card__bottom"
2570									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2571							  
2572								  <!-- Preview Button -->
2573								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2574									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2575									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
2576										 class="previewBtn"
2577										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2578										<span class="text-primary" style="color:#064400;">
2579										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2580										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span>
2581										</span>
2582									  </a>
2583									<@}@>
2584								  </div>
2585							  
2586								  <!-- Time -->
2587								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2588									<p class="text-primary course-asset-time"
2589									   style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;">
2590									  <@ if(value1.duration && value1.duration > 0) { @>
2591										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
2592									  <@ } else { @>
2593										--
2594									  <@ } @>
2595									</p>
2596								  </div>
2597							  
2598								</div>
2599							  </div>
2600							  
2601							
2602                        </li>
2603                        <@ }); @>
2604                    <@ } else { @>
2605                        <li class="accordian-list__item" style="padding:0px 0px !important;">
2606							<div class="accordian-content-card"
2607							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2608					   
2609						   <!-- Row 1: Icon + Title + Collapse Icon -->
2610						   <div class="accordian-content-card__top"
2611								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2612						 
2613							   <!-- Icon -->
2614							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2615								   <@ if(value.type == 'code'){ @>
2616									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2617								   <@ } else { @>
2618									   <span class="material-icons text-primary" style="color:#064400; font-size: 24px;">
2619										   <@ print(getCourseAssetIcon(value.type))@>
2620									   </span>
2621								   <@ } @>
2622							   </div>
2623						 
2624							   <!-- Title -->
2625							   <div class="accordian-content-card__title"
2626									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2627								   <@print(value.title)@>
2628							   </div>
2629						 
2630							   <!-- Collapse Icon (optional) -->
2631							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2632								   <!-- Example placeholder, add real icon if needed -->
2633								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2634							   </div>
2635						   </div>
2636						 
2637						   <!-- Row 2: Preview Button and Time -->
2638						   <div class="accordian-content-card__bottom"
2639								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2640						 
2641							   <!-- Preview Button -->
2642							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2643								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2644									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2645										  class="previewBtn"
2646										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2647										   <span class="text-primary" style="color:#064400;">
2648											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2649											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span>
2650										   </span>
2651									   </a>
2652								   <@}@>
2653							   </div>
2654						 
2655							   <!-- Time -->
2656							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2657								   <p class="text-primary course-asset-time"
2658									  style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;">
2659									   <@ if(value.duration && value.duration > 0) { @>
2660										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
2661									   <@ } else { @>
2662										   --
2663									   <@ } @>
2664								   </p>
2665							   </div>
2666						   </div>
2667					   </div>
2668                        </li>
2669                    <@ } @>
2670                </ul>
2671            
2672                <@ if(itemsCount > 5) { @>
2673                    <div style="text-align: center; margin-top: 10px;">
2674						<button style="background-color: #064400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2675						onclick="
2676							var parentAccordion = this.closest('.accordion-content');
2677							parentAccordion.style.maxHeight = 'none';
2678							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2679							this.style.display = 'none';
2680						">
2681                            View All
2682                        </button>
2683                    </div>
2684                <@ } @>
2685            </div>
2686        </div>
2687    </div>
2688    <@ }); @>
2689    <@ if(item.length > 5) { @>
2690        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
2691            <button style="background-color: #064400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2692                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
2693                View All Sessions
2694            </button>
2695        </div>
2696    <@ } @>
2697</div>
2698	</div>
2699</script>
2699
2700
2701
2702
2703<!--Dusk Curriculum 9-->
2704<script>
2705	// Simple responsive positioning
2706	function updatePosition() {
2707		const element = document.getElementById('totalTimeElement');
2708		if(element){
2709		if (window.innerWidth > 768) {
2710			element.style.position = 'absolute';
2711			element.style.top = "5px";
2712			element.style.right = '122px';
2713		} else {
2714			element.style.position = 'static';
2715			element.style.margin = '0 0';
2716		}
2717		}
2718	}
2719	
2720	// Run on load and resize
2721	window.addEventListener('load', updatePosition);
2722	window.addEventListener('resize', updatePosition);
2723	</script>
2723
2724 
2724<script>
2725	// Simple responsive positioning
2726	function updatePosition() {
2727		const element = document.getElementById('totalTimeElement');
2728		if(element){
2729		if (window.innerWidth > 768) {
2730			element.style.position = 'absolute';
2731			element.style.top = "5px";
2732			element.style.right = '122px';
2733		} else {
2734			element.style.position = 'static';
2735			element.style.margin = '0 0';
2736		}
2737		}
2738	}
2739	
2740	// Run on load and resize
2741	window.addEventListener('load', updatePosition);
2742	window.addEventListener('resize', updatePosition);
2743	</script>
2743
2744 
2744<script type="text/template" id="coursecurr-9-template">
2745	<div class="total-time" id="totalTimeElement" style="
2746    font-size: 18px;
2747    font-weight: 600;
2748    color: #282400;
2749    padding: 8px 12px;
2750    border-radius: 4px;
2751    white-space: nowrap;">
2752     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2753        <@print(millisecondsToHHMMSSStr(summary.durations))@>
2754    <@}@>
2755</div>
2756
2757<div class="accordion-syllabus" style="max-width:1000px !important">
2758    <@ $.each(item, function(index, value) { @>
2759    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2760        <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:8px;box-shadow:none;padding:20px !important">
2761            <h4 class="accordion-syllabus-header__title">
2762                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
2763                    <@if(index < 9) {@>  
2764                        Week <@print(index + 1)@>:  
2765                    <@ } else {@>  
2766                        Week <@print(index + 1)@>:
2767                    <@ } @>  
2768                </span>
2769                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2770                    <@if(value && value.items){@>
2771                        <@ print(value.items.length) @> attachment(s) 
2772                    <@} else {@>
2773                        1 attachment(s)
2774                    <@}@>
2775                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2776						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2777					<@}@>
2778                </span></p>
2779            </h4>
2780			
2781            <div class="accordion-syllabus-header__info">
2782                <p class="text-primary hide-sm" style="color:#282400 !important;">
2783                    <@if(value && value.items){@>
2784                        <@ print(value.items.length) @> attachment(s) 
2785                    <@} else {@>
2786                        1 attachment(s)
2787                    <@}@>
2788                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2789						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2790					<@}@>
2791                </p>
2792                <div class="accordion-syllabus-header__icon text-primary">
2793                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#282400;"></i>
2794                </div>
2795            </div>
2796        </header>
2797        <div class="accordion-content" style="filter:none;background:transparent !important;">
2798            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
2799                <ul class="accordian-list">
2800                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2801                    <@ if(value['items'] && value['items'].length > 0) { @>
2802                        <@ $.each(value['items'], function(index1, value1) { @>
2803                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2804							<style>
2805								@media (max-width: 768px) {
2806								  .accordian-content-card {
2807									flex-direction: column !important;
2808									align-items: stretch !important;
2809								  }
2810							  
2811								  .accordian-content-card__top {
2812									flex-direction: row !important;
2813									justify-content: space-between !important;
2814									align-items: center !important;
2815									width: 100% !important;
2816								  }
2817							  
2818								  .accordian-content-card__title {
2819									flex: 1 !important;
2820									margin: 0 10px !important;
2821									white-space: nowrap;
2822									overflow: hidden;
2823									text-overflow: ellipsis;
2824								  }
2825							  
2826								  .accordian-content-card__bottom {
2827									flex-direction: row !important;
2828									justify-content: space-between !important;
2829									align-items: center !important;
2830									width: 100% !important;
2831									margin-top: 6px !important;
2832								  }
2833							  
2834								  .accordian-content-card__link {
2835									flex: 1 !important;
2836									min-width: 0 !important;
2837									text-align: left !important;
2838								  }
2839							  
2840								  .accordian-content-card__time {
2841									flex-shrink: 0 !important;
2842									text-align: right !important;
2843								  }
2844								}
2845							  </style>
2846							  
2847							  <div class="accordian-content-card"
2848     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2849
2850							  
2851								<!-- Row 1: Icon + Title + Collapse Icon -->
2852								<div class="accordian-content-card__top"
2853									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2854							  
2855								  <!-- Icon -->
2856								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2857									<@ if(value1.type == 'code'){ @>
2858									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2859									<@ } else { @>
2860									  <span class="material-icons text-primary" style="color:#282400; font-size: 24px;">
2861										<@ print(getCourseAssetIcon(value1.type))@>
2862									  </span>
2863									<@ } @>
2864								  </div>
2865							  
2866								  <!-- Title -->
2867								  <div class="accordian-content-card__title"
2868									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2869									<@print(value1.title)@>
2870								  </div>
2871							  
2872								  <!-- Collapse Icon (optional) -->
2873								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2874									<!-- Example placeholder, add real icon if needed -->
2875									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2876								  </div>
2877								</div>
2878							  
2879								<!-- Row 2: Preview Button and Time -->
2880								<div class="accordian-content-card__bottom"
2881									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2882							  
2883								  <!-- Preview Button -->
2884								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2885									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2886									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
2887										 class="previewBtn"
2888										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2889										<span class="text-primary" style="color:#282400;">
2890										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2891										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span>
2892										</span>
2893									  </a>
2894									<@}@>
2895								  </div>
2896							  
2897								  <!-- Time -->
2898								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2899									<p class="text-primary course-asset-time"
2900									   style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;">
2901									  <@ if(value1.duration && value1.duration > 0) { @>
2902										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
2903									  <@ } else { @>
2904										--
2905									  <@ } @>
2906									</p>
2907								  </div>
2908							  
2909								</div>
2910							  </div>
2911							  
2912							
2913                        </li>
2914                        <@ }); @>
2915                    <@ } else { @>
2916                        <li class="accordian-list__item" style="padding:0px 0px !important;">
2917							<div class="accordian-content-card"
2918							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2919					   
2920						   <!-- Row 1: Icon + Title + Collapse Icon -->
2921						   <div class="accordian-content-card__top"
2922								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2923						 
2924							   <!-- Icon -->
2925							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2926								   <@ if(value.type == 'code'){ @>
2927									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2928								   <@ } else { @>
2929									   <span class="material-icons text-primary" style="color:#282400; font-size: 24px;">
2930										   <@ print(getCourseAssetIcon(value.type))@>
2931									   </span>
2932								   <@ } @>
2933							   </div>
2934						 
2935							   <!-- Title -->
2936							   <div class="accordian-content-card__title"
2937									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2938								   <@print(value.title)@>
2939							   </div>
2940						 
2941							   <!-- Collapse Icon (optional) -->
2942							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2943								   <!-- Example placeholder, add real icon if needed -->
2944								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2945							   </div>
2946						   </div>
2947						 
2948						   <!-- Row 2: Preview Button and Time -->
2949						   <div class="accordian-content-card__bottom"
2950								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2951						 
2952							   <!-- Preview Button -->
2953							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2954								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2955									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2956										  class="previewBtn"
2957										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2958										   <span class="text-primary" style="color:#282400;">
2959											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2960											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span>
2961										   </span>
2962									   </a>
2963								   <@}@>
2964							   </div>
2965						 
2966							   <!-- Time -->
2967							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2968								   <p class="text-primary course-asset-time"
2969									  style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;">
2970									   <@ if(value.duration && value.duration > 0) { @>
2971										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
2972									   <@ } else { @>
2973										   --
2974									   <@ } @>
2975								   </p>
2976							   </div>
2977						   </div>
2978					   </div>
2979                        </li>
2980                    <@ } @>
2981                </ul>
2982            
2983                <@ if(itemsCount > 5) { @>
2984                    <div style="text-align: center; margin-top: 10px;">
2985						<button style="background-color: #282400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2986						onclick="
2987							var parentAccordion = this.closest('.accordion-content');
2988							parentAccordion.style.maxHeight = 'none';
2989							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2990							this.style.display = 'none';
2991						">
2992                            View All
2993                        </button>
2994                    </div>
2995                <@ } @>
2996            </div>
2997        </div>
2998    </div>
2999    <@ }); @>
3000    <@ if(item.length > 5) { @>
3001        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
3002            <button style="background-color: #282400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3003                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
3004                View All Sessions
3005            </button>
3006        </div>
3007    <@ } @>
3008</div>
3009	</div>
3010</script>
3010
3011
3012
3013
3014
3015
3016
3017<!-- Feedback Template First -->
3018<script type="text/template" id="widget-1-template">
3019<div class="column full feedbackContainer feedback1 spectre">
3020<@if(msg){@>
3021	<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3022<@}else{@>
3023<div class="avgratingbox">
3024  <div class="flex-row" >
3025        <div class="is-box-2" >
3026           <p style="color: rgb(247, 247, 247); font-weight: 700!important; font-size: 40px!important; text-align: center; letter-spacing: 3px; padding-bottom: 0px; margin-bottom: 0px; line-height: 1; margin-top: 0px;"> 
3027			<@ if(ratings && ratings.avgRating) {@>
3028				<@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3029			<@}else{@>
3030				0
3031			<@}@>
3032		  </p>
3033          <h5 class="ratings1" style="text-align: center; margin-bottom: 0px; margin-top: 0px; line-height: 1;">  
3034          <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3035					<@if(ratings){@> 
3036						<@ if(ratings.avgRating >= ratingsSize) {@> 
3037							<i class="icon ion-android-star"></i>&nbsp; 
3038						<@ } else if(ratings.avgRating > ratingsSize-1 && ratings.avgRating < ratingsSize) { @> 
3039							<i class="icon ion-android-star-half"></i>&nbsp;
3040						<@ } else { @> 
3041							<i class="icon ion-android-star-outline"></i>&nbsp; 
3042						<@ } @>
3043					<@} else {@>
3044						<i class="icon ion-android-star-outline"></i>&nbsp;
3045					<@}@>		
3046		  <@}@>
3047          </h5>        
3048          <p style="margin: 10px 0 0 !important;text-align: center;line-height: 1;font-size: 30px!important;"><i class="fa-light fa-users t-white"></i> </p>
3049          <p style="margin-bottom: 10px; margin-top: 0px; font-size: 12px!important; letter-spacing: 1px; font-weight: 500!important; color: rgb(247, 247, 247); text-align: center;">
3050			Total <@ if(ratings){print(ratings.total) }else{0}@> Reviews 
3051		  </p>
3052        </div>
3053        <div class="is-box-9">
3054			<@ for (i = 0; i < 5; i++) {@>
3055				<div class="box7878"> 
3056            <div style="flex:1;">							
3057					<div class="meter <@print(ratingsPer[(parseInt(i)+1)+'-star'].cls)@> nostripes">
3058                  		<span style="width: <@print(ratingsPer[(parseInt(i)+1)+'-star'].rates)@>%"></span>
3059               		</div>	
3060            </div>
3061            <div id="ratingbox">
3062              <p class="ratings2" style=" line-height: 1;">  
3063				<@ for (ratingsSize = 5; ratingsSize >=1; ratingsSize--) {@>
3064						<@if(ratingsSize>i){@>
3065							<i class="fa fa-solid fa-star-sharp text-primary"></i>&nbsp;
3066						<@} else {@>
3067							<i class="fa fa-solid fa-star-sharp"></i>&nbsp;
3068						<@}@>
3069				<@}@>
3070               <span class="t-white">					
3071					<@ if(ratings && ratings.ratingsCount){print(ratings.ratingsCount[(parseInt(5)-i)+'-stars'])}else{0} @>
3072			   </span>
3073              </p>
3074
3075            </div>
3076          </div>
3077	  	<@}@>
3078        </div>        
3079  	</div>
3080</div>
3081	<div class="bg-secondary" style="padding:15px 15px;border-radius:10px;border-top-right-radius: 0;border-top-left-radius: 0;" >
3082		<p
3083			style="font-size: 16px!important; font-weight: 500!important; letter-spacing: 1px;" class="text-primary">
3084			Reviews
3085		</p>
3086
3087<div class="review-box" id="createCustomReview" style="display:none">
3088<div class="flex-row">
3089	<div class="is-box-2 centerbox">
3090		<div class="spectre">
3091			<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" >
3092				<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3093			</figure>	
3094			<@if(typeof SPUSER !== 'undefined'){ @><p class="review-name"><@ print(SPUSER.name) @> </p><@ } @>
3095		</div>
3096	</div>
3097	<div class="is-box-10">
3098		<textarea rows="3" class="form-input"
3099			placeholder="Add your review here"></textarea>
3100		<div class="rating3">
3101			<p id="rating-stars">
3102				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 
3103					class="fa fa-solid fa-star-sharp text-primary rating-star" data-value='<@- ratingsSize @>'></i> <@}@>
3104			</p>
3105
3106			<button class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3107				data-reviewData="reviewlist"
3108				style="padding: 2px 28px; text-transform: uppercase; border-radius: 40px;">Post</button>
3109		</div>
3110	</div>
3111</div>
3112</div>		
3113	
3114	<div id="reviewlist">
3115	<@ $.each(items, function(index, item) { @>
3116	<div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3117		<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3118			<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3119		<@ } @>
3120		<div class="flex-row">
3121			<div class="is-box-2 centerbox">
3122				<div class="spectre">
3123					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3124						<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" >
3125							<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3126					<@ } else {@>	
3127					<figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="uppercase avatar avatar-lg figsize" >
3128						<img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>">	
3129					<@ } @>
3130					</figure>
3131					<p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @><@ print(SPUSER.name) @><@ } else {@>	<@ print(item.userName) @><@ } @>	</p>
3132				</div>
3133			</div>
3134			<div class="is-box-10">
3135				<div class="rating4">
3136					<p>
3137						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@
3138						if(item.rating >= ratingsSize) {@> 
3139							<i class="fa fa-solid fa-star-sharp text-primary"></i>
3140						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3141							<i class="fa fa-solid fa-star-sharp-half text-primary"></i> 
3142						<@ } else { @> 
3143							<i class="fa fa-solid fa-star-sharp"></i> 
3144						<@}@> 
3145						<@ }@>
3146					</p>
3147					<p
3148						style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;">
3149						<time class="timestamp"
3150							datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@
3151							print(parseDate(item.createdDate.$date)) @></time>
3152					</p>
3153				</div>
3154				<p  class="reviewTxt"
3155					style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@
3156					print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @></p>
3157				<div class="comment-tag">
3158					<@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @>
3159				</div>
3160			</div>
3161		</div>
3162	</div>
3163	<@ }); @>
3164	</div>	
3165	<button class="bg-primary loadMoreReviewsBtn reviewLMbtn" data-itemTemplate="feedback-1-item-template" data-reviewData="reviewlist" >Load More Reviews</button>
3166</div>
3167<@}@>
3168</script>
3168
3169
3170
3171<script type="text/template" id="feedback-1-item-template">
3172<div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>"">
3173<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3174	<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3175<@ } @>
3176<div class="flex-row">
3177	<div class="is-box-2 centerbox">
3178		<div class="spectre">
3179			<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3180				<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="avatar avatar-lg figsize" >
3181					<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3182			<@ } else {@>	
3183			<figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="avatar avatar-lg figsize" >
3184				<img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>">	
3185			<@ } @>
3186			</figure>
3187			<p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @><@ print(SPUSER.name) @><@ } else {@>	<@ print(item.userName) @><@ } @>	</p>
3188		</div>
3189	</div>
3190	<div class="is-box-10">
3191		<div class="rating4">
3192			<p>
3193				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@
3194				if(item.rating >= ratingsSize) {@> 
3195					<i class="fa fa-solid fa-star-sharp text-primary"></i>
3196				<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3197					<i class="fa fa-solid fa-star-sharp-half text-primary"></i>
3198				<@ } else { @> 
3199					<i class="fa fa-solid fa-star-sharp-outline"></i> 
3200				<@}@> 
3201				<@ } @>
3202			</p>
3203			<p
3204				style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;">
3205				<time class="timestamp"
3206					datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@
3207					print(parseDate(item.createdDate.$date)) @></time>
3208			</p>
3209		</div>
3210		<p  class="reviewTxt"
3211			style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@
3212			print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @></p>
3213		<div class="comment-tag">
3214			<@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @>
3215		</div>
3216	</div>
3217</div>
3218</div>
3219</script>
3219
3220
3221
3222<!-- Feedback Template Second -->
3223<script type="text/template" id="feedback-2-template">
3224<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3225<@if(msg){@>
3226	<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3227<@}else{@>
3228<@ if(total > 0 && ratings && ratings.avgRating) {@>
3229<div class="avgratingbox">
3230<div class="column third">
3231   <div class="is-card avgRatingContainer" >
3232      <div class="avgRatingInnerContainer">
3233         <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3234         <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3235            <i class="icon ion-android-star text-primary" style="font-size: 80px;"></i>
3236            <div style="margin-left: 25px;">
3237               <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3238                  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;">
3239                     <@ if(ratings && ratings.avgRating) {@>
3240                     <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3241                     <@}else{@>
3242                     0
3243                     <@}@>
3244                  </h3>
3245                  <p class="avgRatingReviews">/5</p>
3246               </span>
3247               <p class="avgRatingReviews">
3248                  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3249               </p>
3250            </div>
3251         </div>
3252      </div>
3253   </div>
3254</div>
3255</div>
3256<@ } @>
3257<div id="feedback2Reviewlist" class="reviewslist">
3258   <@ $.each(items, function(index, item) { @>
3259   		<@ var template = _.template($("#feedback-2-item-template").html()); print(template({item: item})) @>
3260   <@ }); @>
3261   <@}@>
3262</div>
3263<div class="row clearfix">
3264   <div class="column full">
3265      <p class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-2-item-template" data-reviewData="feedback2Reviewlist" style="text-align: right; font-size: 14px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none;">
3266         View more
3267      </p>
3268   </div>
3269</div>
3270</script>
3270
3271
3272<script type="text/template" id="feedback-2-item-template">
3273	<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3274      <div class="is-card avgRatingContainer">
3275         <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3276			<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3277				<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3278			<@ } @>
3279            <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 80px; max-height: 80px; overflow: hidden;">
3280   			<@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3281   		 	</p>
3282			<div class="reviewerName">
3283           	<p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px;">
3284   				<@ print(item.userName) @>
3285   		 	</p></div>
3286			
3287			 <p style="margin: 0px;">
3288				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
3289					<@ if(item.rating >= ratingsSize) {@> 
3290						<i class="fa fa-solid fa-star-sharp text-primary"></i>
3291					<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3292						<i class="fa fa-solid fa-star-sharp-half text-primary"></i> 
3293					<@ } @> 
3294				<@ }@>
3295			 </p>		
3296
3297      	 </div>
3298	  </div>	
3299   </div>
3300</script>
vendor: 1 bytes, line 3300
3300
3301<script type="text/template" id="feedback-2-createTemplate">
3302	<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3303  <div class="is-boxes">
3304    <div class="is-box-centered">
3305      <div class="is-container container" style="max-width: 940px;">
3306	
3307		<div class="review-box review-add-box">
3308            <div class="is-container container is-content-800" >
3309               <div class="row clearfix" >
3310                  <div class="column full" >
3311                     <h1 style="text-align: center; font-size: 28px; line-height: 1.1; font-weight: 700; letter-spacing: 0px; color: var(--themeColor); margin-bottom: 44px;">Add a review</h1>
3312                  </div>
3313               </div>
3314               <div class="textarea-cont">
3315                  <div class="review-star text-primary" style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;">
3316					<span id="rating-stars">
3317                     <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 
3318                        class="fa fa-solid fa-star-sharp rating-star" data-value='<@- ratingsSize @>'></i> <@}@>
3319					</span>
3320                  </div>
3321                  <textarea class="add-review-textarea" id="reviewText" style="background: transparent;width: 100%; border-width: 0px; padding-right: 28px; padding-bottom: 28px; min-height: 150px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;" placeholder="Add your review here"></textarea>
3322                  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3323						<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
3324				<@ } @>
3325               </div>
3326               <div  style="margin-top: 20px; display: flex; justify-content: flex-end;">
3327                  <button id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3328					data-reviewData="feedback2Reviewlist" disabled >Submit</button>
3329               </div>
3330            </div>
3331		</div>
3332		</div>
3333		</div>
3334	</div>
3335</div>
3336</script>
3336
3337
3338<!-- Vegas 4th feedback Template-->
3339
3340
3341<script type="text/template" id="feedback-4-template">
3342	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3343	<@if(msg){@>
3344		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3345	<@}else{@>
3346	<@ if(total > 0 && ratings && ratings.avgRating) {@>
3347	<div class="avgratingbox">
3348	<div class="column third">
3349	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
3350		  <div class="avgRatingInnerContainer">
3351			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3352			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3353				<i class="icon ion-android-star text-primary" style="font-size: 80px;"></i>
3354				<div style="margin-left: 25px;">
3355				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3356					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;">
3357						 <@ if(ratings && ratings.avgRating) {@>
3358						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3359						 <@}else{@>
3360						 0
3361						 <@}@>
3362					  </h3>
3363					  <p class="avgRatingReviews">/5</p>
3364				   </span>
3365				   <p class="avgRatingReviews">
3366					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3367				   </p>
3368				</div>
3369			 </div>
3370		  </div>
3371	   </div>
3372	</div>
3373	</div>
3374	<@ } @>
3375	<div id="feedback4Reviewlist" class="reviewslist">
3376	   <@ $.each(items, function(index, item) { @>
3377			   <@ var template = _.template($("#feedback-4-item-template").html()); print(template({item: item})) @>
3378	   <@ }); @>
3379	   <@}@>
3380	</div>
3381	<div class="row clearfix">
3382	   <div class="column full" style="text-align: center;">
3383		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-4-item-template" data-reviewData="feedback4Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#FB5607; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
3384			View All Reviews
3385		  </a>
3386	   </div>
3387	</div>
3388	</script>
3388
3389	
3390	
3390<script type="text/template" id="feedback-4-item-template">
3391		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3392		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
3393			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3394				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3395					<a  style="color:#FB5607 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3396				<@ } @>
3397				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
3398				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3399					</p>
3400				<div class="reviewerName">
3401				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
3402					   <@ print(item.userName) @>
3403					</p></div>
3404				
3405				 <p style="margin: 0px;">
3406					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
3407						<@ if(item.rating >= ratingsSize) {@> 
3408							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#FB5607 !important;"></i>
3409						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3410							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#FB5607 !important;"></i> 
3411						<@ } @> 
3412					<@ }@>
3413				 </p>		
3414	
3415			   </div>
3416		  </div>	
3417	   </div>
3418	</script>
3418
3419	
3419<script type="text/template" id="feedback-4-createTemplate">
3420		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3421	  <div class="is-boxes">
3422		<div class="is-box-centered">
3423		  <div class="is-container container" style="max-width: 1200px;">
3424		
3425			<div class="review-box review-add-box">
3426				<div class="is-container container is-content-1200" >
3427				   <div class="row clearfix" >
3428					  <div class="column full" >
3429						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
3430					  </div>
3431				   </div>
3432				   <div class="textarea-cont">
3433					<div style="display:flex; gap:30px;">
3434						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
3435						<div class="review-star1 text-primary" 
3436						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
3437					   <span id="rating-stars" >
3438						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3439							   <i class="fa fa-solid fa-star-sharp rating-star" 
3440								  data-value='<@- ratingsSize @>' 
3441								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
3442						   <@}@>
3443					   </span>
3444				   </div>
3445				   <style></style>
3446				   
3447				   
3448					</div>
3449					  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
3450					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3451							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
3452					<@ } @>
3453				   </div>
3454				   <div  style=" display: flex; justify-content: center;">
3455					  <button style="letter-spacing:0px !important ; background-color:#FB5607;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3456						data-reviewData="feedback4Reviewlist" disabled >Submit</button>
3457				   </div>
3458				</div>
3459			</div>
3460			</div>
3461			</div>
3462		</div>
3463	</div>
3464	</script>
3464
3465	
3466
3467
3468
3469<!-- Blaze 5th feedback Template-->
3470<script type="text/template" id="feedback-5-template">
3471	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3472	<@if(msg){@>
3473		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3474	<@}else{@>
3475	<@ if(total > 0 && ratings && ratings.avgRating) {@>
3476	<div class="avgratingbox">
3477	<div class="column third">
3478	   <div class="is-card avgRatingContainer" style="background:#232323; border-radius:0px;padding:21px;" >
3479		  <div class="avgRatingInnerContainer">
3480			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;color:white;">Customer ratings</h3>
3481			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3482				<i class="icon ion-android-star text-primary" style="font-size: 80px;color:rgb(216, 253, 70);"></i>
3483				<div style="margin-left: 25px;">
3484				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3485					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: rgb(216, 253, 70); line-height: 1.3;">
3486						 <@ if(ratings && ratings.avgRating) {@>
3487						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3488						 <@}else{@>
3489						 0
3490						 <@}@>
3491					  </h3>
3492					  <p class="avgRatingReviews" style="color:white;">/5</p>
3493				   </span>
3494				   <p class="avgRatingReviews" style="color:white;">
3495					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3496				   </p>
3497				</div>
3498			 </div>
3499		  </div>
3500	   </div>
3501	</div>
3502	</div>
3503	<@ } @>
3504	<div id="feedback5Reviewlist" class="reviewslist">
3505	   <@ $.each(items, function(index, item) { @>
3506			   <@ var template = _.template($("#feedback-5-item-template").html()); print(template({item: item})) @>
3507	   <@ }); @>
3508	   <@}@>
3509	</div>
3510	<div class="row clearfix">
3511	   <div class="column full" style="text-align: center;">
3512		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-5-item-template" data-reviewData="feedback5Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#D8FD46; color:black; padding:12px 28px; border-radius:0px;text-decoration:none;">
3513			View All Reviews
3514		  </a>
3515	   </div>
3516	</div>
3517	</script>
3517
3518	
3519	
3520	
3520<script type="text/template" id="feedback-5-item-template">
3521		<style>
3522			.template5-review .reviewTxt{
3523				color:white !important;
3524			}
3525			.template5-review .reviewerName p{
3526				color:white !important;
3527			}
3528		</style>
3529		<div class="column third reviewcontainer template5-review <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> selfreview <@ } @>">
3530			<div class="is-card avgRatingContainer" style="border:1px solid #232323;padding:20px;">
3531				<div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;">
3532					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>
3533						<a style="color:#D8FD46 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>">
3534							<i class="material-icons">delete</i>
3535						</a>
3536					<@ } @>
3537					<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
3538						<@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3539					</p>
3540					<div class="reviewerName">
3541						<p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5; ">
3542							<@ print(item.userName) @>
3543						</p>
3544					</div>
3545	
3546					<p style="margin: 0px;">
3547						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) { @>
3548							<@ if(item.rating >= ratingsSize) { @>
3549								<i class="fa fa-solid fa-star-sharp text-primary" style="color:#D8FD46 !important;"></i>
3550							<@ } else if(item.rating > ratingsSize - 1 && item.rating < ratingsSize) { @>
3551								<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#D8FD46 !important;"></i>
3552							<@ } @>
3553						<@ } @>
3554					</p>
3555				</div>
3556			</div>
3557		</div>
3558	</script>
3558
3559	
3560	
3560<script type="text/template" id="feedback-5-createTemplate">
3561		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3562	  <div class="is-boxes">
3563		<div class="is-box-centered" style="background:#181818;">
3564		  <div class="is-container container" style="max-width: 1200px;">
3565		
3566			<div class="review-box review-add-box">
3567				<div class="is-container container is-content-1200" >
3568				   <div class="row clearfix" >
3569					  <div class="column full" >
3570						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: white; ">Add a review</h1>
3571					  </div>
3572				   </div>
3573				   <div class="textarea-cont" style="background:transparent">
3574					<div style="display:flex; gap:30px;">
3575						<div><h3 style="font-size:18px;font-weight:600; color:white;">Overall Rating</h3></div>
3576						<div class="review-star text-primary" 
3577						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
3578					   <span id="rating-stars" >
3579						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3580							   <i class="fa fa-solid fa-star-sharp rating-star" 
3581								  data-value='<@- ratingsSize @>' 
3582								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
3583						   <@}@>
3584					   </span>
3585				   </div>
3586				   
3587				   
3588					</div>
3589					  <textarea class="add-review-textarea" id="reviewText" style="color:white;background:#232323;width: 100%; border: 1px solid #636363; padding: 28px;  min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:0px !important" placeholder="Add your review here"></textarea>
3590					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3591							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
3592					<@ } @>
3593				   </div>
3594				   <div  style=" display: flex; justify-content: center;margin-top:20px;">
3595					  <button style="letter-spacing:0px !important ; background-color:#D8FD46;padding:12px 28px !important; border-radius:0px !important; color:black;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3596						data-reviewData="feedback5Reviewlist" disabled >Submit</button>
3597				   </div>
3598				</div>
3599			</div>
3600			</div>
3601			</div>
3602		</div>
3603	</div>
3604	</script>
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620<!-- Nebula Feedback 6-->
3621
3622<script type="text/template" id="feedback-6-template">
3623	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3624	<@if(msg){@>
3625		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3626	<@}else{@>
3627	<@ if(total > 0 && ratings && ratings.avgRating) {@>
3628	<div class="avgratingbox">
3629	<div class="column third">
3630	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
3631		  <div class="avgRatingInnerContainer">
3632			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3633			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3634				<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #6715FF !important;"></i>
3635				<div style="margin-left: 25px;">
3636				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3637					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #6715FF !important; line-height: 1.3;">
3638						 <@ if(ratings && ratings.avgRating) {@>
3639						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3640						 <@}else{@>
3641						 0
3642						 <@}@>
3643					  </h3>
3644					  <p class="avgRatingReviews">/5</p>
3645				   </span>
3646				   <p class="avgRatingReviews">
3647					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3648				   </p>
3649				</div>
3650			 </div>
3651		  </div>
3652	   </div>
3653	</div>
3654	</div>
3655	<@ } @>
3656	<div id="feedback6Reviewlist" class="reviewslist">
3657	   <@ $.each(items, function(index, item) { @>
3658			   <@ var template = _.template($("#feedback-6-item-template").html()); print(template({item: item})) @>
3659	   <@ }); @>
3660	   <@}@>
3661	</div>
3662	<div class="row clearfix">
3663	   <div class="column full" style="text-align: center;">
3664		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-6-item-template" data-reviewData="feedback6Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#6715FF; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
3665			View All Reviews
3666		  </a>
3667	   </div>
3668	</div>
3669	</script>
3669
3670	
3671	
3671<script type="text/template" id="feedback-6-item-template">
3672		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3673		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
3674			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3675				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3676					<a  style="color:#6715FF !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3677				<@ } @>
3678				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
3679				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3680					</p>
3681				<div class="reviewerName">
3682				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
3683					   <@ print(item.userName) @>
3684					</p></div>
3685				
3686				 <p style="margin: 0px;">
3687					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
3688						<@ if(item.rating >= ratingsSize) {@> 
3689							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#6715FF !important;"></i>
3690						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3691							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#6715FF !important;"></i> 
3692						<@ } @> 
3693					<@ }@>
3694				 </p>		
3695	
3696			   </div>
3697		  </div>	
3698	   </div>
3699	</script>
3699
3700	
3700<script type="text/template" id="feedback-6-createTemplate">
3701		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3702	  <div class="is-boxes">
3703		<div class="is-box-centered">
3704		  <div class="is-container container" style="max-width: 1200px;">
3705		
3706			<div class="review-box review-add-box">
3707				<div class="is-container container is-content-1200" >
3708				   <div class="row clearfix" >
3709					  <div class="column full" >
3710						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
3711					  </div>
3712				   </div>
3713				   <div class="textarea-cont" style="background:transparent">
3714					<div style="display:flex; gap:30px;">
3715						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
3716						<div class="review-star1 text-primary" 
3717						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
3718					   <span id="rating-stars" >
3719						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3720							   <i class="fa fa-solid fa-star-sharp rating-star" 
3721								  data-value='<@- ratingsSize @>' 
3722								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
3723						   <@}@>
3724					   </span>
3725				   </div>
3726				   <style></style>
3727				   
3728				   
3729					</div>
3730					  <textarea class="add-review-textarea" id="reviewText" style="background:white;width: 100%; border: 1px solid #c3c0c0; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
3731					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3732							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: grey; margin-top: 0px;"><@ print(SPUSER.name) @></p>
3733					<@ } @>
3734				   </div>
3735				   <div  style=" display: flex; justify-content: center;">
3736					  <button style="letter-spacing:0px !important ; background-color:#6715FF;padding:12px 28px !important;margin-top:30px;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3737						data-reviewData="feedback6Reviewlist" disabled >Submit</button>
3738				   </div>
3739				</div>
3740			</div>
3741			</div>
3742			</div>
3743		</div>
3744	</div>
3745	</script>
3745
3746
3747
3748
3749
3750
3751<!-- Olive Feedback 7-->
3752<script type="text/template" id="feedback-7-template">
3753	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3754	<@if(msg){@>
3755		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3756	<@}else{@>
3757	<@ if(total > 0 && ratings && ratings.avgRating) {@>
3758	<div class="avgratingbox">
3759	<div class="column third">
3760	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
3761		  <div class="avgRatingInnerContainer">
3762			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3763			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3764				<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #064400 !important;"></i>
3765				<div style="margin-left: 25px;">
3766				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3767					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #064400 !important; line-height: 1.3;">
3768						 <@ if(ratings && ratings.avgRating) {@>
3769						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3770						 <@}else{@>
3771						 0
3772						 <@}@>
3773					  </h3>
3774					  <p class="avgRatingReviews">/5</p>
3775				   </span>
3776				   <p class="avgRatingReviews">
3777					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3778				   </p>
3779				</div>
3780			 </div>
3781		  </div>
3782	   </div>
3783	</div>
3784	</div>
3785	<@ } @>
3786	<div id="feedback7Reviewlist" class="reviewslist">
3787	   <@ $.each(items, function(index, item) { @>
3788			   <@ var template = _.template($("#feedback-7-item-template").html()); print(template({item: item})) @>
3789	   <@ }); @>
3790	   <@}@>
3791	</div>
3792	<div class="row clearfix">
3793	   <div class="column full" style="text-align: center;">
3794		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-7-item-template" data-reviewData="feedback7Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#064400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
3795			View All Reviews
3796		  </a>
3797	   </div>
3798	</div>
3799	</script>
3799
3800	
3801	
3801<script type="text/template" id="feedback-7-item-template">
3802		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3803		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
3804			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3805				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3806					<a  style="color:#064400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3807				<@ } @>
3808				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
3809				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3810					</p>
3811				<div class="reviewerName">
3812				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
3813					   <@ print(item.userName) @>
3814					</p></div>
3815				
3816				 <p style="margin: 0px;">
3817					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
3818						<@ if(item.rating >= ratingsSize) {@> 
3819							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#064400 !important;"></i>
3820						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3821							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#064400 !important;"></i> 
3822						<@ } @> 
3823					<@ }@>
3824				 </p>		
3825	
3826			   </div>
3827		  </div>	
3828	   </div>
3829	</script>
3829
3830	
3830<script type="text/template" id="feedback-7-createTemplate">
3831		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3832	  <div class="is-boxes">
3833		<div class="is-box-centered">
3834		  <div class="is-container container" style="max-width: 1200px;">
3835		
3836			<div class="review-box review-add-box">
3837				<div class="is-container container is-content-1200" >
3838				   <div class="row clearfix" >
3839					  <div class="column full" >
3840						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
3841					  </div>
3842				   </div>
3843				   <div class="textarea-cont">
3844					<div style="display:flex; gap:30px;">
3845						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
3846						<div class="review-star1 text-primary" 
3847						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
3848					   <span id="rating-stars" >
3849						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3850							   <i class="fa fa-solid fa-star-sharp rating-star" 
3851								  data-value='<@- ratingsSize @>' 
3852								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
3853						   <@}@>
3854					   </span>
3855				   </div>
3856				   <style></style>
3857				   
3858				   
3859					</div>
3860					  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
3861					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3862							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
3863					<@ } @>
3864				   </div>
3865				   <div  style=" display: flex; justify-content: center;">
3866					  <button style="letter-spacing:0px !important ; background-color:#064400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3867						data-reviewData="feedback7Reviewlist" disabled >Submit</button>
3868				   </div>
3869				</div>
3870			</div>
3871			</div>
3872			</div>
3873		</div>
3874	</div>
3875	</script>
3875
3876
3877
3878
3879
3880	<!--Dusk Feedback-8-->
3881	
3881<script type="text/template" id="feedback-8-template">
3882		<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3883		<@if(msg){@>
3884			<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3885		<@}else{@>
3886		<@ if(total > 0 && ratings && ratings.avgRating) {@>
3887		<div class="avgratingbox">
3888		<div class="column third">
3889		   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;background:#F5F5F5;" >
3890			  <div class="avgRatingInnerContainer">
3891				 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3892				 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3893					<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #282400 !important;"></i>
3894					<div style="margin-left: 25px;">
3895					   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3896						  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #282400 !important; line-height: 1.3;">
3897							 <@ if(ratings && ratings.avgRating) {@>
3898							 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3899							 <@}else{@>
3900							 0
3901							 <@}@>
3902						  </h3>
3903						  <p class="avgRatingReviews">/5</p>
3904					   </span>
3905					   <p class="avgRatingReviews">
3906						  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3907					   </p>
3908					</div>
3909				 </div>
3910			  </div>
3911		   </div>
3912		</div>
3913		</div>
3914		<@ } @>
3915		<div id="feedback8Reviewlist" class="reviewslist">
3916		   <@ $.each(items, function(index, item) { @>
3917				   <@ var template = _.template($("#feedback-8-item-template").html()); print(template({item: item})) @>
3918		   <@ }); @>
3919		   <@}@>
3920		</div>
3921		<div class="row clearfix">
3922		   <div class="column full" style="text-align: center;">
3923			  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-8-item-template" data-reviewData="feedback8Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#282400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
3924				View All Reviews
3925			  </a>
3926		   </div>
3927		</div>
3928		</script>
3928
3929		
3930		
3930<script type="text/template" id="feedback-8-item-template">
3931			<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3932			  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:#F5F5F5; padding:20px; ">
3933				 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3934					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3935						<a  style="color:#282400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3936					<@ } @>
3937					<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
3938					   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3939						</p>
3940					<div class="reviewerName">
3941					   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
3942						   <@ print(item.userName) @>
3943						</p></div>
3944					
3945					 <p style="margin: 0px;">
3946						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
3947							<@ if(item.rating >= ratingsSize) {@> 
3948								<i class="fa fa-solid fa-star-sharp text-primary" style="color:#282400 !important;"></i>
3949							<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3950								<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#282400 !important;"></i> 
3951							<@ } @> 
3952						<@ }@>
3953					 </p>		
3954		
3955				   </div>
3956			  </div>	
3957		   </div>
3958		</script>
3958
3959		
3959<script type="text/template" id="feedback-8-createTemplate">
3960			<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
3961		  <div class="is-boxes">
3962			<div class="is-box-centered">
3963			  <div class="is-container container" style="max-width: 1200px;">
3964			
3965				<div class="review-box review-add-box">
3966					<div class="is-container container is-content-1200" >
3967					   <div class="row clearfix" >
3968						  <div class="column full" >
3969							 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
3970						  </div>
3971					   </div>
3972					   <div class="textarea-cont">
3973						<div style="display:flex; gap:30px;">
3974							<div><h3 style="font-size:18px;font-weight:600;">Overall rating</h3></div>
3975							<div class="review-star1 text-primary" 
3976							style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
3977						   <span id="rating-stars" >
3978							   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3979								   <i class="fa fa-solid fa-star-sharp rating-star" 
3980									  data-value='<@- ratingsSize @>' 
3981									  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
3982							   <@}@>
3983						   </span>
3984					   </div>
3985					   <style></style>
3986					   
3987					   
3988						</div>
3989						  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
3990						  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
3991								<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
3992						<@ } @>
3993					   </div>
3994					   <div  style=" display: flex; justify-content: center;">
3995						  <button style="letter-spacing:0px !important ; background-color:#282400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3996							data-reviewData="feedback8Reviewlist" disabled >Submit</button>
3997					   </div>
3998					</div>
3999				</div>
4000				</div>
4001				</div>
4002			</div>
4003		</div>
4004		</script>
4004
4005
4006
4007
4008<div class="spectre">
4009<div class="modal" id="reviewModal">
4010			<a href="javascript:void(0);" class="modal-overlay close"
4011				aria-label="Close"></a>	
4012			<div class="modal-container">
4013				<div class="modal-header">
4014					<a href="javascript:void(0);"
4015						class="close btn btn-clear float-right" aria-label="Close"></a>
4016					<div class="modal-title h5">Review</div>
4017				</div>
4018				<div class="modal-body" style="max-height: 90vh;padding-top: 0;">
4019				</div>
4020			</div>
4021			
4022			  
4023			  
4024</div>
4025
4026  
4027</div>
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041 
4042
4043<script>
4044	var created_date = `Created Date`;
4045	var uname_msg = `Name`;
4046	var email_msg = `Email`;
4047	var has_web_token = `Has Web Token`;
4048	var has_mobile_token = `Has Mobile Token`;
4049	var actions_msg = `Actions`;
4050	var delete_user = `Delete User`;
4051	var create_target_audience = `Create Target Audience`;
4052	var msg_now = `NOW`;
4053	var msg_now_2 = `Now`;
4054	var msg_scheduled = `SCHEDULED`;
4055	var msg_recurring = `RECURRING`;
4056	var msg_weeks = `weeks`;
4057	var msg_months = `month(s)`;
4058	var msg_days = `days`;
4059	var notification_screen = `Notification Screen`;
4060	var coursepackagelandingpage = `Course/Package landing page`;
4061	var search_course_name = `Search by course/package name`;
4062	var webinar_landing_page = `Webinar landing page`;
4063	var search_by_webinar_name = `Search by webinar name`;
4064	var categorypage = `Category Page`;
4065	var custompage = `Custom Page`;
4066	var blogpage = `Blog Page`;
4067	var customlink = `Custom Link`;
4068	var homepage_msg = `Homepage`;
4069	var search_category = `Search category`;
4070	var search_page_title = `Search by Page title`;
4071	var search_blog_title = `Search by Blog title`;
4072	var enter_the_link = `Enter the link`;
4073	var membership_page = `Membership page`;
4074	var pick_a_date = `Pick a date`;
4075	var pick_first_push_date = `Pick a first push date`;
4076	var every_msg = `Every`;
4077	var starting_msg = `Starting`;
4078	var msg_published = `Published`;
4079	var msg_unpublished = `Unpublished`;
4080	var msg_customize = `Customize`;
4081	var msg_edit = `Edit`;
4082	var msg_featured_image = `Featured Image`;
4083	var msg_preview = `Preview`;
4084	var msg_delete = `Delete`;
4085	var msg_unpublish = `Unpublish`;
4086	var msg_publish = `Publish  `;
4087	var msg_question= `questions`;
4088	var try_new_coding_assignment= `Try new coding assignment`;
4089	var change_enrollment_date = `Change Enrollment Date`;
4090	var change_expiry = `Change Expiry`;
4091	var change_remanining_time = `Change Remaining Time`;
4092	var remove_from_course = `Remove From Course`;
4093	var reset_course_progress = `Reset Course Progress`;
4094	var complete_report = `Complete Report`;
4095	var msg_progress = `Progress`;
4096	var timetaken = `Time Taken`;
4097	var msg_user_details = `User Details`;
4098	var graphy_platform_fees_note = `Amount after deducting Graphy platform fees. This does not include your payment gateway charges.`;
4099	var final_price_note = `Final payable price by learners`;
4100	var save_alert_message = `Save progress before moving forward.`;
4101	var no_chapter_alert_message = `Please add at least one chapter in the course.`;
4102	var download_msg = `Download`;
4103	var revoke_msg = `Revoke`;
4104	var yes_msg = `Yes`;
4105	var no_msg = `No`;
4106	var details_hover = `Details`;
4107	var hide_notification = `Hide Notification`;
4108	var notify_learners_hover = `Notify Learners`;
4109	var search_course_package = `Search Courses to add in this package.`;
4110	var bulk_delete = `Bulk Delete`;
4111	var scheduled_msg = `Scheduled`;
4112	var inprogress_msg = `In Progress`;
4113	var completed_msg = `Completed`;
4114	var yes_all_caps = `YES`;
4115	var no_all_caps = `NO`;
4116	var discount_msg = `Discount`;
4117	var max_discount = `Max Discount`;
4118	var min_cart = `Min Cart`;
4119	var delete_bookmark = `Delete Bookmark`;
4120	var view_question = `View question`;
4121	var msg_free = `Free`;
4122	var membership_expiration_note = `Membership will be canceled on next billing date.`;
4123	var msg_active = `Active`;
4124	var msg_inactive = `Inactive`;
4125	var delete_hover = `Delete`;
4126	var view_hover = `View`;
4127	var coursewise = `Course Wise`;
4128	var learner_wise = `Learner wise`;
4129	var segment_wise = `Segment wise`;
4130	var unregistered_msg = `Unregistered`;
4131	var target_audience_deleted = `Target Audience Deleted`;
4132	var courses_msg = `course(s)`;
4133	var learners_msg = `learner(s)`;
4134	var unregistered_learners = `Unregistered Learner`;
4135	var all_learners = `All Learners`;
4136	var course_wise_learners = `Course wise Learners`;
4137	var segment_wise_learners = `Segment wise Learners`;
4138	var with_token = `with token`;
4139	var segments_msg = `segments`;
4140	var add_users_msg = `Add Users`;
4141	var approx_msg = `Approx`;
4142	var revoke_cancellation_request = `Revoke Cancellation request.`;
4143	var remove_scheduled_membership_cancellation = `Remove Scheduled Membership Cancellation`;
4144	var schedule_to_stop_subscription = `Schedule to stop Subscription`;
4145	var stop_subscription = `Stop subscription`;
4146	var available_for_review_all_caps = `AVAILABLE FOR REVIEW`;
4147	var reviewed_all_caps = `REVIEWED`;
4148	var rejected_all_caps = `REJECTED`;
4149	var preview_code = `Preview Code`;
4150	var approve_msg = `Approve`;
4151	var reject_msg = `Reject`;
4152	var history_msg = `History`;
4153	var message_hover= `Message`;
4154	var remove_msg= `Remove`;
4155	var enroll_msg= `Enroll`;
4156	var change_validity= `Change Validity`;
4157	var learners_selected= `learner(s) selected`;
4158	var select_all_msg= `Select all`;
4159	var do_you_want_to_delete_course= `Do you really want to delete this course?`;
4160	var do_you_want_to_revoke_this_certificate= `Do you really want to revoke this certificate?`;
4161	var do_you_want_to_revoke_entry= `Do you really want to revoke this entry?`;
4162	var do_you_want_to_edit_enrollment_date= `Do you really want to edit enrollment date of all learners?`;
4163	var do_you_want_to_edit_enrollment_date_for_selected= `Do you really want to edit enrollment date of selected learners?`;
4164	var do_you_want_to_edit_course_validity= `Do you really want to edit course validity of all learners?`;
4165	var do_you_want_to_edit_course_validity_for_selected= `Do you really want to edit course validity of selected learners?`;
4166	var do_you_want_to_remove_selected= `Do you really want to remove selected learners?`;
4167	var do_you_want_to_remove_all= `Do you really want to remove all learners?`;
4168	var do_you_want_to_create_zip= `Do you really want to create zip for this course?`;
4169	var do_you_want_to_deactivate= `Do you really want to deactivate?`;
4170	var successfully_done_alert= `Successfully Done.`;
4171	var please_select_atleast_1_learner= `Please select atleast 1 learner !`;
4172	var on_msg= `On`;
4173	var single_correct_option = `Single Correct Option`;
4174	var multiple_correct_options = `Multiple Correct Options`;
4175	var numerical_Fill_in_the_Blank = `Numerical/Fill in the Blank`;
4176	var match_the_Column = `Match the Column`;
4177	var subjective = `Subjective`;
4178	var your_target_audience_appear= `Your target audience user(s) will appear here`;
4179	var your_upcoming_campaign= `Your upcoming campaign will appear here`;
4180	var status_msg= `Status`;
4181	var stop_campaign= `Stop Campaign`;
4182	var copy_campaign= `Copy Campaign`;
4183	var platform_fee_tax = `platform fees including taxes`;
4184	var pg_fees_taxes = `payment gateway fees including taxes`;
4185	var msg_quiz = `Quiz`;
4186	var msg_livetest = `Live test`;
4187	var msg_heading = `Heading`;
4188	var msg_text = `Text`;
4189	var msg_form = `Form`;
4190	var msg_live_class = `Live class`;
4191	var msg_live_class_rec = `live class recording`;
4192	var msg_code = `Code`;
4193	var msg_assignment = `Assignment`;
4194	var msg_added = `added`;
4195	var msg_about = `About`;
4196	var msg_year = `year`;
4197	var msg_month = `Month`;
4198	var msg_day = `day`;
4199	//var msg_hour = `hh`;
4200	//var msg_minute = `mm`;
4201	//var msg_seconds = `seconds`;
4202	var msg_month_l = `month`;
4203	var msg_day_l = `day`;
4204	var msg_hour_l = `hour`;
4205	var msg_minute_l = `minute`;
4206	var msg_second_l = `second`;
4207	var mobile_number=`Mobile Number`;
4208	var status_android =`Status (ANDROID)`;
4209	var status_ios =`Status (IOS)`;
4210	var delivery_time=`Delivery Time`;
4211	var sure_unhide=`Are you sure you want to unhide this course ?`;
4212	var become_a_partner=`Become a Partner`;
4213	var failed_msg=`Failed`;
4214	var sent_msg=`Sent`;
4215	var pending_msg=`Pending`;
4216	var running_msg=`Running`;
4217	var add_pricing_plan = `Add pricing plan`;
4218	var msg_add = `Add`;
4219	var of_msg = `of`;
4220	var items_msg = `items`
4221	var ago_msg = `ago`
4222	var items_msg = `items`;
4223	
4224	var january_msg = `January`;
4225	var february_msg = `February`;
4226	var march_msg = `March`;
4227	var april_msg = `April`;
4228	var may_msg = `May`;
4229	var june_msg = `June`;
4230	var july_msg = `July`;
4231	var august_msg = `August`;
4232	var september_msg = `September`;
4233	var october_msg = `October`;
4234	var november_msg = `November`;
4235	var december_msg = `December`;
4236	var sunday_msg = `Sunday`;
4237	var monday_msg = `Monday`;
4238	var tuesday_msg = `Tuesday`;
4239	var wednesday_msg = `Wednesday`;
4240	var thursday_msg = `Thursday`;
4241	var friday_msg = `Friday`;
4242	var saturday_msg = `Saturday`;
4243	var at_msg = `at`;
4244	var generate_outline = `Generate outline using AI`;
4245	var it_take_min = `It may take a min.`;
4246	var msg_ok = `OK`;
4247	var edit_pricing_plan = `Edit pricing plan`;
4248
4249</script>
4249
4250
4251
4252
4253
4254
4255
4256
4257<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-2.0.3.min.js"></script>
4257
4258
4259<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/underscore-min.js?v=1.9.1"></script>
4259
4260
4261<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.form.js"></script>
vendor: 1 bytes, line 4261
4261
4262<script async src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.noty.packaged.min.js"></script>
vendor: 1 bytes, line 4262
4262
4263<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-ui.min.js"></script>
vendor: 1 bytes, line 4263
4263
4264<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.timeago.js"></script>
vendor: 1 bytes, line 4264
4264
4265<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/js-webshim/minified/extras/modernizr-custom.js"></script>
vendor: 1 bytes, line 4265
4265
4266<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.datetimepicker.js"></script>
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/aes.js"></script>
vendor: 1 bytes, line 4275
4275
4276<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/mode-ecb-min.js"></script>
vendor: 1 bytes, line 4276
4276
4277<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/pad-nopadding-min.js"></script>
4277
4278
4279<!-- 
4279<script src="https://unpkg.com/@popperjs/core@2"></script>
vendor: 1 bytes, line 4279
4279
4280<script src="https://unpkg.com/tippy.js@6"></script>
4280 -->
4281<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.3.3/umd/popper.js" integrity="sha512-jSMYzs1Iebw2Uew+Y9karoqkqTDEzbqkdttIkHJKh3auQ6aGV7p8b7A3Yo9k/LsMvUFqWt5AV66hfo1OwH4Jjg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 4281
4281
4282<script src="https://cdnjs.cloudflare.com/ajax/libs/tippy.js/6.0.0/tippy-bundle.umd.js"></script>
4282
4283
4284<script type="text/javascript">
4285	var passwordPolicyRequired = true;
4286	var checkoutV2 = false;
4287	var primaryFieldPhoneEnabled = false;
4288	var orgLanguageCode = "";
4289	var SPEERESCDN = "https://d502jbuhuh9wk.cloudfront.net";
4290</script>
4290
4291
4292<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sutils_919c30bb7230024efec7b939763642a2.js"></script>
vendor: 1 bytes, line 4292
4292
4293<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/utils/dateUtils_f53456b03f1287667a7b24fb63b367ce.js"></script>
vendor: 1 bytes, line 4293
4293
4294<script type="text/javascript">
4295	// Make org object globally available for dateUtils
4296	window.org = window.org || {};
4297	window.org.currencyCode = "false"=='true'?'USD':'INR';
4298	var websiteV3Org = false;
4299	var orgCreatedDate = {"$date":"2022-04-16T12:28:32.308Z"};
4300</script>
4300
4301
4302	
4302<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/talk_b564486691065235006e186474078666.js"></script>
4302
4303
4304
4305
4306
4307
4308<script type="text/javascript">
4309	var trialExpired = "false";
4310	var planCancelled = "false";
4311	var isFreePlan = false;
4312	
4313</script>
vendor: 1 bytes, line 4313
4313
4314<script type="text/javascript" id="dsf239df">
4315	var ctx = "/s",
4316		isFirstLogin = "", cjs = CryptoJS;
4317		
4318	var defaultCoreColor = "#5755d9", theme1CoreColor = "#572b7a", theme2CoreColor = "#3f51b5", theme3CoreColor = "#009051", 
4319		theme4CoreColor = "#596439", theme5CoreColor = "#F0591D", theme6CoreColor = "#28a745", theme7CoreColor = "#1bbc9b", 
4320		theme8CoreColor = "#f38f20", apkId = "6231373436231373432363038663465653864613523630386634656538646135", theme9CoreColor = "#c0af01", theme10CoreColor = "#e8d3a4",
4321		webColor = defaultCoreColor,
4322		CFCDN = "https://d502jbuhuh9wk.cloudfront.net", mobileNotification = true, webNotification = true, 
4323		iosPlayVideo = false,
4324		chromeDrmPlayback = false,
4325		gaType = "";
4326		
4327	
4328	
4329	$("#dsf239df").remove();
4330</script>
4330
4331
4332
4333
4334
4335
4336
4337
4338	
4339		<input type="hidden" id="orgCurrencyCode" value="USD" />
4340	
4341	
4342
4343
4344
4345	
4345<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/detect-private-browsing.js"></script>
4345
4346	
4346<script type="text/javascript">
4347	detectPrivateMode(
4348        function(is_private) {
4349            if(typeof is_private !== 'undefined' && is_private) {
4350            		$("input[name=privateMode]").val("private");
4351            }
4352        }
4353    );
4354	</script>
4354
4355
4356
4357
4358	
4359	
4360		
4360<script type="text/javascript"
4361			src="https://d502jbuhuh9wk.cloudfront.net/resources/js/intlTelInput.min.js"></script>
4361
4362		
4362<script type="text/javascript">
4363		
4364			var ipInfo = localStorage.getItem('ipInfo');
4365	        if(!ipInfo) {
4366	        	$.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
4367	        		if(resp) {
4368	        			var ipInfoStr = JSON.stringify(resp);
4369	    				var ipInfoField = document.getElementById("ipInfo");
4370	    				var countryCode = (resp.country) ? resp.country : "in";
4371				        sessionStorage.setItem('countryCode', countryCode);
4372						if('statusText' in resp) {
4373	    					if((resp['statusText'] !== 'error') && ('ip' in resp)) {
4374	    						localStorage.setItem('ipInfo', ipInfoStr);
4375	    						if(ipInfoField) {
4376	    							ipInfoField.value = ipInfoStr;
4377	    		        		}
4378							}
4379						}
4380			        	else if('ip' in resp) {
4381			        		localStorage.setItem('ipInfo', ipInfoStr);
4382			        		if(ipInfoField) {
4383			        			ipInfoField.value = ipInfoStr;
4384			        		}
4385		        		}
4386					}
4387	        	})
4388	        }
4389		
4390		  $("#sphone").intlTelInput({
4391		      initialCountry: "auto",
4392		      geoIpLookup: function(callback) {
4393		    	 var scountryCode = sessionStorage.getItem('countryCode');
4394		    	 
4395		    	 if(scountryCode !== null) {
4396		    		 callback(scountryCode);
4397		    	 }else {
4398		    		 $.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
4399				          var countryCode = (resp && resp.country) ? resp.country : "in";
4400				          callback(countryCode);
4401				          sessionStorage.setItem('countryCode', countryCode);
4402				        });
4403		    	 }
4404		      },
4405		      preferredCountries: ["in", "us"],
4406		      separateDialCode: true,
4407		      utilsScript: "/resources/js/intlUtils.js"
4408		    });
4409		  	
4410		  </script>
4410
4411	
4412
4413
4414
4415<div class="spectre">
4416
4417	
4418	
4419	
4420
4421	
4421<script type="text/javascript">
4422		if(top != self) {
4423		    //iframe
4424		    $(".toast").remove();
4425		}
4426	</script>
4426
4427	
4428	
4429</div>
4430
4431	
4432
4433<input type="hidden" id="orgCreditAlias"
4434	value="Powershellacademy Coins" />
4435
4436	<input type="hidden" id="ssoLoginUrl"
4437		value="https://graphy-enrollment-webhook.powershell4u.workers.dev/sso/login" />
4438	<input type="hidden" id="ssoSignupUrl"
4439		value="https://graphy-enrollment-webhook.powershell4u.workers.dev/sso/signup" />
4440	
4441
4442
4443
4444	
4445		
4446			
4447			
4448			
4449				
4450					
4451					
4452					
4453				
4454			
4455		
4456	
4457
4458
4459<script>
4460
4461
4462
4463
4464	var orgTaxLabel = "";
4465
4466
4467
4468	var sessionCountry = "";
4469
4470	$(document).ready(function() {		
4471		$("input[name='userMobileVerify']").change(function(data){
4472			var uniqueMobileSwitch = $('#uniqueMobileId');
4473			if(data.target.value==='true'){
4474				$('input[name=uniqueMobile]').prop('checked', true)
4475				$('#uniqueMobileLabelId').show();				
4476			}else{
4477				$('input[name=uniqueMobile]').prop('checked', false)
4478				$('#uniqueMobileLabelId').hide();
4479			}
4480		});
4481	});
4482	
4483	
4484		
4485		
4486			localStorage.removeItem('microserviceAuthToken');
4487		
4488   
4489   
4490   
4491	
4492	
4493			localStorage.removeItem('communityToken');
4494	
4495   
4496   
4497   
4498	
4499	
4500			localStorage.removeItem('chatRefreshToken');
4501	
4502
4503
4504
4505	
4506	
4507			localStorage.removeItem('refreshToken');
4508	
4509
4510	
4511</script>
4511
4512
4513
4514<!-- amplitude script start -->
4515
4516
4517
4518	
4518<script type="text/javascript">
4519	    window.localStorage.removeItem('loginAmplitudeEventSent');
4520	</script>
4520
4521
4522
4523<!-- amplitude script end -->
4524
4525 
4526
4527 <div id="template-container"></div>
4528
4529<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sstore_5ffb558e86d7b5ef265e05fb0bfbef79.js"></script>
vendor: 1 bytes, line 4529
4529
4530<script type="text/javascript">store.bindEvents();</script>
vendor: 1 bytes, line 4530
4530
4531<script type="text/javascript">
4532	window.signupParams = {source: "landing_page", platform: "web", sourceId: null};
4533</script>
4533
4534<div class="containerBody is-wrapper clearfix" style=""><!--OTHERS--->
4535<html>
4536 <head>
4537  <meta charset="UTF-8">
4538  <meta name="viewport" content="width=device-width, initial-scale=1.0">
4539  <title>PowerShell Academy — AI-Powered Learning for DBAs &amp; Engineers</title>
4540  <meta name="description" content="Master PowerShell, Python, SQL Server, and AI with hands-on courses featuring an AI mentor in every lab. Built for DBAs and automation engineers.">
4541  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&amp;display=swap" rel="stylesheet">
4542  <style>
4543* { box-sizing: border-box; margin: 0; padding: 0; }
4544body { font-family: 'Inter', system-ui, sans-serif; background: #050810; color: #f1f5f9 !important; }
4545h1, h2, h3, h4, p, span, a, div, li, ol, ul, strong, em { color: inherit; }
4546a { text-decoration: none; }
4547img { max-width: 100%; }
4548section { color: #f1f5f9 !important; }
4549section h1, section h2, section h3 { color: #f1f5f9 !important; }
4550section[data-theme="light"] { color: #0f172a !important; }
4551section[data-theme="light"] h2, section[data-theme="light"] h3 { color: #0f172a !important; }
4552section[data-theme="light"] p { color: #475569 !important; }
4553
4554/* Icon styles for technology logos */
4555.tech-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; }
4556.tech-icon svg { width: 48px; height: 48px; }
4557
4558/* Floating Action Buttons */
4559.whatsapp-float {
4560    position: fixed;
4561    bottom: 24px;
4562    right: 24px;
4563    width: 60px;
4564    height: 60px;
4565    background: #25D366;
4566    border-radius: 50%;
4567    display: flex;
4568    align-items: center;
4569    justify-content: center;
4570    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
4571    z-index: 9998;
4572    transition: transform 0.3s, box-shadow 0.3s;
4573    text-decoration: none;
4574}
4575.whatsapp-float:hover {
4576    transform: scale(1.1);
4577    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.6);
4578}
4579.whatsapp-float svg {
4580    display: block;
4581}
4582
4583.feedback-float {
4584    position: fixed;
4585    bottom: 96px;
4586    right: 24px;
4587    width: 60px;
4588    height: 60px;
4589    background: linear-gradient(135deg, #6366f1, #00d4aa);
4590    border-radius: 50%;
4591    display: flex;
4592    align-items: center;
4593    justify-content: center;
4594    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
4595    z-index: 9998;
4596    transition: transform 0.3s, box-shadow 0.3s;
4597    text-decoration: none;
4598}
4599.feedback-float:hover {
4600    transform: scale(1.1);
4601    box-shadow: 0 6px 20px rgba(99, 102, 241, 0.6);
4602}
4603.feedback-float svg {
4604    display: block;
4605}
4606</style>
4607 </head>
4608 <body>
4609  <section style="background:#050810 !important;padding:20px 16px 48px;"> 
4610   <div style="max-width:1100px;margin:0 auto;"> 
4611    <!-- Nav pills --> 
4612    <div style="display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,0.1);"> 
4613     <a href="https://pylabs.powershellacademy.com" target="_blank" style="padding:5px 8px;background:rgba(0,212,170,0.1);border:1px solid rgba(0,212,170,0.25);border-radius:6px;color:#6ee7d3;font-size:10px;font-weight:600;">🐍 Python</a> 
4614     <a href="https://ai.powershellacademy.com" target="_blank" style="padding:5px 8px;background:rgba(99,102,241,0.1);border:1px solid rgba(99,102,241,0.25);border-radius:6px;color:#a5b4fc;font-size:10px;font-weight:600;">🤖 AI DBA</a> 
4615     <a href="https://labs.powershellacademy.com" target="_blank" style="padding:5px 8px;background:rgba(245,158,11,0.1);border:1px solid rgba(245,158,11,0.25);border-radius:6px;color:#fcd34d;font-size:10px;font-weight:600;">⚡ PS DBA</a> 
4616     <a href="https://jiralabs.powershellacademy.com" target="_blank" style="padding:5px 8px;background:rgba(0,180,216,0.1);border:1px solid rgba(0,180,216,0.25);border-radius:6px;color:#67e8f9;font-size:10px;font-weight:600;">📋 Jira</a> 
4617     <span style="flex:1;min-width:4px;"></span> 
4618     <a href="https://home.powershellacademy.com/server-tool.html" target="_blank" style="padding:5px 8px;background:rgba(52,211,153,0.12);border:1px solid rgba(52,211,153,0.3);border-radius:6px;color:#6ee7d3;font-size:10px;font-weight:700;">📥 Free: Server Remote Checker</a> 
4619     <a href="https://home.powershellacademy.com/store" style="padding:5px 8px;color:#94a3b8;font-size:10px;font-weight:500;">📚 Courses</a> 
4620     <a href="https://chat.whatsapp.com/EotpYGKYlZKDSKJWO6vCu8" target="_blank" style="padding:5px 8px;color:#94a3b8;font-size:10px;font-weight:500;">💬 Community</a> 
4621    </div> 
4622    <!-- Hero content - AI Predominant --> 
4623    <div style="text-align:center;margin-bottom:32px;"> 
4624     <div style="margin-bottom:18px;"> 
4625      <span style="display:inline-block;background:rgba(99,102,241,0.15);color:#c7d2fe;border:1px solid rgba(99,102,241,0.35);padding:6px 14px;border-radius:14px;font-size:11px;font-weight:600;">🤖 AI mentor built into every course</span> 
4626     </div> 
4627     <!-- Animated AI visual --> 
4628     <div style="margin:0 auto 24px;max-width:120px;height:120px;background:radial-gradient(circle,rgba(99,102,241,0.3) 0%,rgba(0,212,170,0.15) 50%,transparent 70%);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;"> 
4629      <div style="width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#00d4aa);display:flex;align-items:center;justify-content:center;box-shadow:0 0 60px rgba(99,102,241,0.4),0 0 120px rgba(0,212,170,0.2);"> 
4630       <svg width="40" height="40" viewbox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
4631        <path d="M12 2a4 4 0 0 1 4 4v1a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4z"></path>
4632        <path d="M8 14s-4 1-4 4v2h16v-2c0-3-4-4-4-4"></path>
4633        <circle cx="9" cy="6" r="0.5" fill="#fff"></circle>
4634        <circle cx="15" cy="6" r="0.5" fill="#fff"></circle>
4635        <path d="M5 3L2 6M19 3l3 3M12 20v2"></path>
4636       </svg> 
4637      </div> 
4638     </div> 
4639     <h1 style="font-size:clamp(28px,6.5vw,56px);line-height:1.08;font-weight:900;letter-spacing:-0.02em;margin:0 0 16px;color:#f1f5f9 !important;">Learn with an <span style="color:#00d4aa !important;text-shadow:0 0 40px rgba(0,212,170,0.3);">AI mentor</span><br>that sees your code.</h1> 
4640     <p style="color:#cbd5e1;font-size:clamp(14px,3vw,17px);line-height:1.65;margin:0 auto 24px;max-width:580px;">Hands-on video courses plus interactive AI labs for <strong style="color:#fff;">SQL Server DBAs</strong> &amp; automation engineers. <strong style="color:#fff;">PowerShell</strong>, <strong style="color:#fff;">Python</strong>, <strong style="color:#fff;">AI</strong> — learn at your pace with an AI mentor that understands every lesson.</p> 
4641     <div style="display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:20px;"> 
4642      <a href="https://home.powershellacademy.com/store" style="padding:13px 24px;border-radius:10px;font-weight:700;font-size:14px;background:linear-gradient(135deg,#6366f1,#00d4aa);color:#fff;box-shadow:0 6px 20px rgba(99,102,241,0.3);">🚀 Explore Courses</a> 
4643      <a href="https://ai.powershellacademy.com" target="_blank" style="padding:13px 24px;border-radius:10px;font-weight:600;font-size:14px;color:#f1f5f9;border:1px solid rgba(255,255,255,0.2);">🤖 Try AI Mentor Free</a> 
4644      <a href="https://home.powershellacademy.com/server-tool.html" target="_blank" style="padding:13px 24px;border-radius:10px;font-weight:600;font-size:14px;color:#6ee7d3;border:1px solid rgba(52,211,153,0.3);">📥 Free Server Tool</a> 
4645     </div> 
4646     <div style="display:flex;gap:20px;justify-content:center;flex-wrap:wrap;padding-top:18px;border-top:1px solid rgba(148,163,184,0.1);"> 
4647      <div style="text-align:center;">
4648       <strong style="color:#6366f1;font-size:20px;">AI</strong>
4649       <br>
4650       <span style="font-size:10px;color:#94a3b8;">Mentor in every lab</span>
4651      </div> 
4652      <div style="text-align:center;">
4653       <strong style="color:#00d4aa;font-size:20px;">4</strong>
4654       <br>
4655       <span style="font-size:10px;color:#94a3b8;">Interactive Labs</span>
4656      </div> 
4657      <div style="text-align:center;">
4658       <strong style="color:#00d4aa;font-size:20px;">100+</strong>
4659       <br>
4660       <span style="font-size:10px;color:#94a3b8;">Exercises</span>
4661      </div> 
4662      <div style="text-align:center;">
4663       <strong style="color:#00d4aa;font-size:20px;">Video</strong>
4664       <br>
4665       <span style="font-size:10px;color:#94a3b8;">+ Live Labs</span>
4666      </div> 
4667     </div> 
4668    </div> 
4669   </div> 
4670  </section>
4671  <section style="background:#0a0f1a !important;padding:56px 16px;color:#f1f5f9 !important;"> 
4672   <div style="max-width:1100px;margin:0 auto;"> 
4673    <div style="text-align:center;margin-bottom:36px;"> 
4674     <span style="display:inline-block;background:rgba(0,212,170,0.12);color:#6ee7d3;border:1px solid rgba(0,212,170,0.3);padding:5px 12px;border-radius:14px;font-size:11px;font-weight:600;letter-spacing:1.2px;">🎓 OUR COURSES</span> 
4675     <h2 style="font-size:clamp(22px,5vw,36px);margin:14px 0 8px;font-weight:800;color:#f1f5f9 !important;">Video courses + AI labs. Learn by doing.</h2> 
4676    </div> 
4677    <style>
4678.psa-carousel-wrap { position:relative; padding:0 40px; }
4679.psa-courses { display:flex; gap:20px; padding:20px 4px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; }
4680.psa-courses::-webkit-scrollbar { display:none; }
4681.psa-card { min-width:280px; max-width:300px; flex-shrink:0; background:#111827; border:1px solid rgba(148,163,184,0.12); border-radius:14px; overflow:hidden; transition:transform 0.2s,box-shadow 0.2s; }
4682.psa-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,0.4); }
4683.psa-arrow { position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:50%; background:rgba(99,102,241,0.9); border:none;
4683 color:#fff; font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:5; transition:background 0.2s; box-shadow:0 4px 12px rgba(0,0,0,0.4); }
4684.psa-arrow:hover { background:rgba(0,212,170,0.9); }
4685.psa-arrow-left { left:0; }
4686.psa-arrow-right { right:0; }
4687.psa-cover { height:140px; display:flex; align-items:center; justify-content:center; position:relative; }
4688.psa-badge { position:absolute; top:10px; right:10px; font-size:9px; font-weight:700; padding:4px 9px; border-radius:4px; letter-spacing:0.5px; }
4689.psa-body { padding:16px; }
4690.psa-body h3 { font-size:15px; font-weight:700; color:#f1f5f9; margin:0 0 6px; line-height:1.3; }
4691.psa-body p { font-size:11px; color:#64748b; margin:0 0 12px; }
4692.psa-tags { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:14px; }
4693.psa-tag { font-size:9px; font-weight:600; padding:3px 8px; border-radius:4px; background:rgba(0,212,170,0.1); color:#6ee7d3; }
4694.psa-actions { display:flex; gap:8px; }
4695.psa-actions a { flex:1; text-align:center; padding:10px; border-radius:8px; font-size:12px; font-weight:700; text-decoration:none; transition:opacity 0.2s; }
4696.psa-actions a:hover { opacity:0.85; }
4697.psa-enrol { background:linear-gradient(135deg,#6366f1,#00d4aa); color:#fff !important; }
4698.psa-lab { background:rgba(0,212,170,0.08); border:1px solid rgba(0,212,170,0.25); color:#6ee7d3 !important; }
4699.psa-free { background:#6366f1; color:#fff; }
4700.psa-coming { background:#f59e0b; color:#0a0f1a; }
4701@media(max-width:640px) { .psa-courses { flex-direction:column; align-items:center; } .psa-card { width:100%; max-width:360px; } }
4702</style> 
4703    <div class="psa-carousel-wrap"> 
4704     <button class="psa-arrow psa-arrow-left" onclick="document.getElementById('psaScroll').scrollBy({left:-320,behavior:'smooth'})">‹</button> 
4705     <div class="psa-courses" id="psaScroll"> 
4706      <!-- Income Generation (FREE bait) --> 
4707      <div class="psa-card" style="border-color:rgba(0,212,170,0.2);"> 
4708       <div class="psa-cover" style="background:linear-gradient(135deg,#1a2e1a,#0a1929);"> 
4709        <svg width="44" height="44" viewbox="0 0 32 32" fill="none">
4710         <circle cx="16" cy="16" r="11" stroke="#22c55e" stroke-width="1.5"></circle>
4711         <text x="16" y="21" text-anchor="middle" font-size="14" font-weight="bold" fill="#22c55e">
4712          $
4713         </text>
4714         <path d="M10 6l2-2M22 6l-2-2M6 16H4M28 16h-2" stroke="#22c55e" stroke-width="1.2" stroke-linecap="round"></path>
4715        </svg> 
4716        <span class="psa-badge" style="background:#f59e0b;color:#0a0f1a;">COMING SOON</span> 
4717       </div> 
4718       <div class="psa-body"> 
4719        <h3>Income Generation Ideas for DBAs</h3> 
4720        <p>Interactive Lab — Career Growth</p> 
4721        <div class="psa-tags">
4722         <span class="psa-tag">6 modules</span>
4723         <span class="psa-tag">Career Growth</span>
4724        </div> 
4725        <div class="psa-actions"> 
4726         <a href="#" class="psa-enrol" style="opacity:0.6;cursor:not-allowed;pointer-events:none;">🔔 Coming Soon</a> 
4727        </div> 
4728       </div> 
4729      </div> 
4730      <!-- AI for SQL DBA --> 
4731      <div class="psa-card" style="border-color:rgba(99,102,241,0.2);"> 
4732       <div class="psa-cover" style="background:linear-gradient(135deg,#1a1033,#0f0a2a);"> 
4733        <svg width="48" height="48" viewbox="0 0 32 32" fill="none">
4734         <rect x="6" y="4" width="20" height="24" rx="2" stroke="#818cf8" stroke-width="1.5"></rect>
4735         <ellipse cx="16" cy="12" rx="6" ry="3" stroke="#818cf8" stroke-width="1.3"></ellipse>
4736         <path d="M10 12v4c0 1.7 2.7 3 6 3s6-1.3 6-3v-4" stroke="#818cf8" stroke-width="1.3"></path>
4737         <path d="M10 16v4c0 1.7 2.7 3 6 3s6-1.3 6-3v-4" stroke="#818cf8" stroke-width="1.3"></path>
4738         <circle cx="23" cy="22" r="5" fill="#0f0a2a" stroke="#a78bfa" stroke-width="1.3"></circle>
4739         <path d="M21.5 22l1 1 2.5-2.5" stroke="#a78bfa" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"></path>
4740        </svg> 
4741        <span class="psa-badge" style="background:#f59e0b;color:#0a0f1a;">COMING SOON</span> 
4742       </div> 
4743       <div class="psa-body"> 
4744        <h3>AI for SQL Server DBAs</h3> 
4745        <p>Interactive Lab — Python + AI</p> 
4746        <div class="psa-tags">
4747         <span class="psa-tag">Hands-on</span>
4748         <span class="psa-tag" style="background:rgba(99,102,241,0.12);color:#a5b4fc;">Python + AI</span>
4749        </div> 
4750        <div class="psa-actions"> 
4751         <a href="#" class="psa-enrol" style="opacity:0.6;cursor:not-allowed;pointer-events:none;">🔔 Coming Soon</a> 
4752        </div> 
4753       </div> 
4754      </div> 
4755      <!-- Jira Automation --> 
4756      <div class="psa-card" style="border-color:rgba(0,180,216,0.2);"> 
4757       <div class="psa-cover" style="background:linear-gradient(135deg,#0a1929,#0d2137);"> 
4758        <svg width="44" height="44" viewbox="0 0 32 32" fill="none">
4759         <path d="M27.1 15.3L16.7 4.9 16 4.2 4.2 16l7.3 7.3L16 27.8l7.3-7.3 3.8-3.8zM16 19.3L12.7 16 16 12.7 19.3 16 16 19.3z" fill="#2684ff"></path>
4760        </svg> 
4761        <svg width="28" height="28" viewbox="0 0 32 32" fill="none" style="margin-left:6px;">
4762         <rect width="32" height="32" rx="4" fill="#012456"></rect>
4763         <path d="M7 22l8-6-8-6" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path>
4764         <path d="M16 22h9" stroke="#fff" stroke-width="2.2" stroke-linecap="round"></path>
4765        </svg> 
4766        <span class="psa-badge" style="background:#f59e0b;color:#0a0f1a;">COMING SOON</span> 
4767       </div> 
4768       <div class="psa-body"> 
4769        <h3>Jira Automation with PowerShell</h3> 
4770        <p>Interactive Lab — REST API</p> 
4771        <div class="psa-tags">
4772         <span class="psa-tag">Hands-on</span>
4773         <span class="psa-tag" style="background:rgba(0,180,216,0.12);color:#67e8f9;">PowerShell + REST</span>
4774        </div> 
4775        <div class="psa-actions"> 
4776         <a href="#" class="psa-enrol" style="opacity:0.6;cursor:not-allowed;pointer-events:none;">🔔 Coming Soon</a> 
4777        </div> 
4778       </div> 
4779      </div> 
4780      <!-- Python for AI --> 
4781      <div class="psa-card" style="border-color:rgba(0,212,170,0.2);"> 
4782       <div class="psa-cover" style="background:linear-gradient(135deg,#0d2818,#1a3a2a);"> 
4783        <svg width="44" height="44" viewbox="0 0 32 32" fill="none">
4784         <path d="M15.9 3C9.8 3 10.4 5.7 10.4 5.7v2.8h5.7v.8H8.4S5 9 5 15.5 8 21.5 8 21.5h1.7v-3s-.1-3.1 3-3.1h5.2s2.9 0 2.9-2.8V7.1S21.2 3 15.9 3zm-3 2.3a.9.9 0 1 1 0 1.8.9.9 0 0 1 0-1.8z" fill="#3776ab"></path>
4785         <path d="M16.1 29c6.1 0 5.5-2.7 5.5-2.7v-2.8h-5.7v-.8h7.7s3.4.3 3.4-6.2-3-6-3-6h-1.7v3s.1 3.1-3 3.1h-5.2s-2.9 0-2.9 2.8v5.5S10.8 29 16.1 29zm3-2.3a.9.9 0 1 1 0-1.8.9.9 0 0 1 0 1.8z" fill="#ffcb3d"></path>
4786        </svg> 
4787        <span class="psa-badge" style="background:#f59e0b;color:#0a0f1a;">COMING SOON</span> 
4788       </div> 
4789       <div class="psa-body"> 
4790        <h3>Python for AI</h3> 
4791        <p>Interactive Lab — 15 modules</p> 
4792        <div class="psa-tags">
4793         <span class="psa-tag">Hands-on</span>
4794         <span class="psa-tag" style="background:rgba(0,212,170,0.12);color:#6ee7d3;">15 modules</span>
4795        </div> 
4796        <div class="psa-actions"> 
4797         <a href="#" class="psa-enrol" style="opacity:0.6;cursor:not-allowed;pointer-events:none;">🔔 Coming Soon</a> 
4798        </div> 
4799       </div> 
4800      </div> 
4801      <!-- PowerShell for SQL DBAs --> 
4802      <div class="psa-card" style="border-color:rgba(245,158,11,0.2);"> 
4803       <div class="psa-cover" style="background:linear-gradient(135deg,#1a1a2e,#0f1a2e);"> 
4804        <svg width="40" height="40" viewbox="0 0 32 32" fill="none">
4805         <rect width="32" height="32" rx="4" fill="#012456"></rect>
4806         <path d="M7 22l8-6-8-6" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path>
4807         <path d="M16 22h9" stroke="#fff" stroke-width="2.2" stroke-linecap="round"></path>
4808        </svg> 
4809        <svg width="32" height="32" viewbox="0 0 32 32" fill="none" style="margin-left:8px;">
4810         <ellipse cx="16" cy="10" rx="10" ry="4" fill="none" stroke="#f59e0b" stroke-width="1.5"></ellipse>
4811         <path d="M6 10v12c0 2.2 4.5 4 10 4s10-1.8 10-4V10" stroke="#f59e0b" stroke-width="1.5"></path>
4812         <ellipse cx="16" cy="16" rx="10" ry="4" fill="none" stroke="#f59e0b" stroke-width="1" opacity="0.5"></ellipse>
4813         <ellipse cx="16" cy="22" rx="10" ry="4" fill="none" stroke="#f59e0b" stroke-width="1" opacity="0.3"></ellipse>
4814        </svg> 
4815        <span class="psa-badge" style="background:#00d4aa;color:#0a0f1a;">SELF-PACED</span> 
4816       </div> 
4817       <div class="psa-body"> 
4818        <h3>PowerShell for SQL Server DBAs</h3> 
4819        <p>Powershellacademy — 13 modules</p> 
4820        <div class="psa-tags">
4821         <span class="psa-tag" style="background:rgba(245,158,11,0.12);color:#fcd34d;">13 modules</span>
4822         <span class="psa-tag">AI Mentor</span>
4823        </div> 
4824        <div class="psa-actions"> 
4825         <a href="https://www.powershellacademy.com/courses/Powershell-for-SQL-Server-DBAs-1688871978752-64aa242ae4b04cc8360b40a2" class="psa-enrol">Enrol Now</a> 
4826         <a href="https://labs.powershellacademy.com" target="_blank" class="psa-lab">🧪 Lab</a> 
4827        </div> 
4828       </div> 
4829      </div> 
4830      <!-- PowerShell Essential Training --> 
4831      <div class="psa-card" style="border-color:rgba(99,102,241,0.2);"> 
4832       <div class="psa-cover" style="background:linear-gradient(135deg,#1a1033,#0f0a2a);"> 
4833        <svg width="48" height="48" viewbox="0 0 32 32" fill="none">
4834         <rect width="32" height="32" rx="4" fill="#012456"></rect>
4835         <path d="M7 22l8-6-8-6" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path>
4836         <path d="M16 22h9" stroke="#fff" stroke-width="2.2" stroke-linecap="round"></path>
4837        </svg> 
4838        <svg width="22" height="22" viewbox="0 0 24 24" fill="none" style="margin-left:6px;">
4839         <path d="M12 3L2 9l10 6 10-6-10-6zM2 17l10 6 10-6M2 13l10 6 10-6" stroke="#a78bfa" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
4840        </svg> 
4841        <span class="psa-badge" style="background:#6366f1;color:#fff;">BEGINNER</span> 
4842       </div> 
4843       <div class="psa-body"> 
4844        <h3>PowerShell Essential Training</h3> 
4845        <p>Powershell Academy — Beginner friendly</p> 
4846        <div class="psa-tags">
4847         <span class="psa-tag" style="background:rgba(99,102,241,0.12);color:#a5b4fc;">Beginner</span>
4848         <span class="psa-tag">AI Mentor</span>
4849        </div> 
4850        <div class="psa-actions"> 
4851         <a href="https://www.powershellacademy.com/courses/Powershell-Essential-Training-by-PowershelAcademy-6309cb95e4b0ba8915b6f507" class="psa-enrol">Enrol Now</a> 
4852        </div> 
4853       </div> 
4854      </div> 
4855      <!-- Easy Tool Making --> 
4856      <div class="psa-card" style="border-color:rgba(148,163,184,0.15);"> 
4857       <div class="psa-cover" style="background:linear-gradient(135deg,#0f1a14,#0a1929);"> 
4858        <svg width="36" height="36" viewbox="0 0 32 32" fill="none">
4859         <rect width="32" height="32" rx="4" fill="#012456"></rect>
4860         <path d="M7 22l8-6-8-6" stroke="#fff" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"></path>
4861         <path d="M16 22h9" stroke="#fff" stroke-width="2.2" stroke-linecap="round"></path>
4862        </svg> 
4863        <svg width="32" height="32" viewbox="0 0 32 32" fill="none" style="margin-left:6px;">
4864         <path d="M20 6a6 6 0 0 0-5.3 8.8L7 22.5a2 2 0 1 0 2.8 2.8l7.7-7.7A6 6 0 1 0 20 6z" stroke="#94a3b8" stroke-width="1.8" stroke-linecap="round"></path>
4865         <circle cx="20" cy="12" r="2" fill="#94a3b8" opacity="0.5"></circle>
4866        </svg> 
4867        <span class="psa-badge" style="background:#00d4aa;color:#0a0f1a;">QUICK</span> 
4868       </div> 
4869       <div class="psa-body"> 
4870        <h3>Easy Tool Making with PowerShell</h3> 
4871        <p>Vishnu Gupthan — 45 minutes</p> 
4872        <div class="psa-tags">
4873         <span class="psa-tag" style="background:rgba(148,163,184,0.12);color:#94a3b8;">45 min</span>
4874         <span class="psa-tag">AI Mentor</span>
4875        </div> 
4876        <div class="psa-actions"> 
4877         <a href="https://www.powershellacademy.com/courses/Fancy-Tool-Making-using-Powershell-62c9851a0cf2792b9ef04838" class="psa-enrol">Enrol Now</a> 
4878        </div> 
4879       </div> 
4880      </div> 
4881     </div> 
4882     <button class="psa-arrow psa-arrow-right" onclick="document.getElementById('psaScroll').scrollBy({left:320,behavior:'smooth'})">›</button> 
4883    </div> 
4884    <div style="text-align:center;margin-top:28px;"> 
4885     <a href="https://home.powershellacademy.com/store" style="display:inline-block;padding:12px 28px;background:linear-gradient(135deg,#6366f1,#00d4aa);color:#fff;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none;box-shadow:0 4px 16px rgba(0,212,170,0.25);">📚 Explore All Courses</a> 
4886    </div> 
4887   </div> 
4888  </section>
4889  <section style="background:#050810 !important;padding:56px 16px;color:#f1f5f9 !important;"> 
4890   <div style="max-width:800px;margin:0 auto;text-align:center;"> 
4891    <span style="display:inline-block;background:rgba(99,102,241,0.15);color:#c7d2fe;border:1px solid rgba(99,102,241,0.35);padding:5px 12px;border-radius:14px;font-size:11px;font-weight:700;letter-spacing:1.2px;margin-bottom:16px;">🤖 INSIDE EVERY LAB</span> 
4892    <h2 style="font-size:clamp(22px,5vw,38px);font-weight:800;line-height:1.15;margin:0 0 14px;color:#f1f5f9 !important;">An AI mentor that <span style="color:#00d4aa !important;">
4892sees your code.</span></h2> 
4893    <p style="color:#cbd5e1;font-size:14px;line-height:1.7;margin:0 auto 20px;max-width:560px;">Every lab includes an AI mentor that reads your code, understands the lesson context, and gives real answers in seconds. No more being stuck alone.</p> 
4894    <div style="display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:24px;"> 
4895     <span style="background:rgba(0,212,170,0.08);border:1px solid rgba(0,212,170,0.2);padding:6px 12px;border-radius:8px;font-size:11px;color:#6ee7d3;">🧠 Context-aware</span> 
4896     <span style="background:rgba(99,102,241,0.08);border:1px solid rgba(99,102,241,0.2);padding:6px 12px;border-radius:8px;font-size:11px;color:#a5b4fc;">💬 Conversational</span> 
4897     <span style="background:rgba(245,158,11,0.08);border:1px solid rgba(245,158,11,0.2);padding:6px 12px;border-radius:8px;font-size:11px;color:#fcd34d;">🧪 Auto-grades</span> 
4898     <span style="background:rgba(0,180,216,0.08);border:1px solid rgba(0,180,216,0.2);padding:6px 12px;border-radius:8px;font-size:11px;color:#67e8f9;">⚡ Suggested prompts</span> 
4899    </div> 
4900    <a href="https://ai.powershellacademy.com" target="_blank" style="display:inline-block;padding:13px 24px;background:linear-gradient(135deg,#6366f1,#00d4aa);color:#fff;border-radius:10px;font-weight:700;font-size:14px;box-shadow:0 4px 16px rgba(99,102,241,0.25);">🤖 Try the AI Mentor Free</a> 
4901   </div> 
4902  </section>
4903  <section style="background:#fff;padding:56px 16px;color:#0f172a !important;" data-theme="light"> 
4904   <div style="max-width:900px;margin:0 auto;"> 
4905    <div style="text-align:center;margin-bottom:36px;"> 
4906     <span style="display:inline-block;background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc;padding:5px 12px;border-radius:14px;font-size:11px;font-weight:600;letter-spacing:1.2px;">WHY POWERSHELL ACADEMY</span> 
4907     <h2 style="font-size:clamp(22px,5vw,34px);font-weight:800;margin:14px 0 0;color:#0f172a !important;">Built for engineers who learn by doing.</h2> 
4908    </div> 
4909    <div style="display:flex;flex-wrap:wrap;gap:16px;justify-content:center;"> 
4910     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4911      <div style="font-size:24px;margin-bottom:8px;">
4912       🎬
4913      </div> 
4914      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">Video + AI Labs</h3> 
4915      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Watch structured video lessons, then practice in live AI-powered labs.</p> 
4916     </div> 
4917     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4918      <div style="font-size:24px;margin-bottom:8px;">
4919       🤖
4920      </div> 
4921      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">AI mentor in every lab</h3> 
4922      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Stuck? Ask the mentor. It sees your code and gives context-aware help.</p> 
4923     </div> 
4924     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4925      <div style="font-size:24px;margin-bottom:8px;">
4926       🎯
4927      </div> 
4928      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">Built for novices</h3> 
4929      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Every module starts at zero. No assumptions about prior knowledge.</p> 
4930     </div> 
4931     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4932      <div style="font-size:24px;margin-bottom:8px;">
4933       🏆
4934      </div> 
4935      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">Auto-graded challenges</h3> 
4936      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Earn XP. AI evaluates every submission instantly.</p> 
4937     </div> 
4938     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4939      <div style="font-size:24px;margin-bottom:8px;">
4940       💬
4941      </div> 
4942      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">Monthly live Q&amp;A</h3> 
4943      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Doubt-clarification sessions every month with the instructor.</p> 
4944     </div> 
4945     <div style="background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;width:260px;"> 
4946      <div style="font-size:24px;margin-bottom:8px;">
4947       📜
4948      </div> 
4949      <h3 style="font-size:14px;font-weight:700;margin:0 0 6px;color:#0f172a !important;">Certification</h3> 
4950      <p style="color:#475569;font-size:12px;line-height:1.5;margin:0;">Verifiable certificate on completion of each course.</p> 
4951     </div> 
4952    </div> 
4953   </div> 
4954  </section>
4955  <section style="background:#050810 !important;padding:56px 16px;color:#f1f5f9 !important;"> 
4956   <div style="max-width:800px;margin:0 auto;text-align:center;"> 
4957    <h2 style="font-size:24px;font-weight:800;margin:0 0 24px;color:#f1f5f9 !important;">What students say</h2> 
4958    <div style="display:flex;flex-wrap:wrap;gap:16px;justify-content:center;"> 
4959     <div style="background:#111827;border:1px solid rgba(148,163,184,0.15);border-radius:12px;padding:20px;width:240px;text-align:left;"> 
4960      <div style="color:#f59e0b;font-size:14px;margin-bottom:8px;">
4961       ⭐⭐⭐⭐⭐
4962      </div> 
4963      <p style="color:#cbd5e1;font-size:12px;line-height:1.5;margin:0 0 10px;font-style:italic;">"Best training for someone with zero PowerShell knowledge."</p> 
4964      <strong style="color:#f1f5f9;font-size:11px;">— Karthik BV</strong> 
4965     </div> 
4966     <div style="background:#111827;border:1px solid rgba(148,163,184,0.15);border-radius:12px;padding:20px;width:240px;text-align:left;"> 
4967      <div style="color:#f59e0b;font-size:14px;margin-bottom:8px;">
4968       ⭐⭐⭐⭐⭐
4969      </div> 
4970      <p style="color:#cbd5e1;font-size:12px;line-height:1.5;margin:0 0 10px;font-style:italic;">"Love the course, can't wait to make my own GUI from PowerShell."</p> 
4971      <strong style="color:#f1f5f9;font-size:11px;">— Jason Mitchell Cole</strong> 
4972     </div> 
4973     <div style="background:#111827;border:1px solid rgba(148,163,184,0.15);border-radius:12px;padding:20px;width:240px;text-align:left;"> 
4974      <div style="color:#f59e0b;font-size:14px;margin-bottom:8px;">
4975       ⭐⭐⭐⭐⭐
4976      </div> 
4977      <p style="color:#cbd5e1;font-size:12px;line-height:1.5;margin:0 0 10px;font-style:italic;">"Great course. Good starting point for automation."</p> 
4978      <strong style="color:#f1f5f9;font-size:11px;">— Allan Laird</strong> 
4979     </div> 
4980    </div> 
4981   </div> 
4982  </section>
4983  <section style="background:#0a0f1a !important;padding:56px 16px;color:#f1f5f9 !important;"> 
4984   <div style="max-width:800px;margin:0 auto;text-align:center;"> 
4985    <span style="display:inline-block;background:rgba(239,68,68,0.12);color:#fca5a5;border:1px solid rgba(239,68,68,0.3);padding:5px 12px;border-radius:14px;font-size:11px;font-weight:600;letter-spacing:1.2px;margin-bottom:16px;">▶ FREE CONTENT</span> 
4986    <h2 style="font-size:clamp(20px,4vw,30px);font-weight:800;margin:0 0 10px;color:#f1f5f9 !important;">Free Videos on YouTube</h2> 
4987    <p style="color:#cbd5e1;font-size:14px;line-height:1.7;margin:0 auto 20px;max-width:500px;">Watch free PowerShell tutorials and tips on our YouTube channel. Get a taste before enrolling.</p> 
4988    <a href="https://home.powershellacademy.com/videos.html" target="_blank" style="display:inline-block;padding:13px 24px;background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.3);color:#fca5a5;border-radius:10px;font-weight:700;font-size:14px;">▶ Watch Free Videos</a> 
4989   </div> 
4990  </section>
4991  <footer style="background:#050810 !important;padding:32px 16px;border-top:1px solid rgba(148,163,184,0.1);text-align:center;"> 
4992   <div style="display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;"> 
4993    <a href="https://www.facebook.com/powershellacademy" target="_blank" style="color:#94a3b8;font-size:12px;">Facebook</a> 
4994    <a href="https://www.linkedin.com/in/vishnu-gupthan-nair-09a12b31/" target="_blank" style="color:#94a3b8;font-size:12px;">LinkedIn</a> 
4995    <a href="https://www.youtube.com/c/GraphyUniversity" target="_blank" style="color:#94a3b8;font-size:12px;">YouTube</a> 
4996    <a href="https://play.google.com/store/apps/details?id=com.powershellacademy.learners" target="_blank" style="color:#94a3b8;font-size:12px;">Android App</a> 
4997   </div> 
4998   <div style="display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;"> 
4999    <a href="https://www.powershellacademy.com/privacypolicy" style="color:#64748b;font-size:11px;">Privacy</a> 
5000    <a href="https://www.powershellacademy.com/termsofuse" style="color:#64748b;font-size:11px;">Terms</a> 
5001    <a href="https://www.powershellacademy.com/contactus" style="color:#64748b;font-size:11px;">Contact</a> 
5002    <a href="https://www.powershellacademy.com/refundpolicy" style="color:#64748b;font-size:11px;">Refund</a> 
5003   </div> 
5004   <p style="color:#475569;font-size:10px;">PowerShell Academy © 2026</p> 
5005  </footer>
5006  <a href="https://www.powershellacademy.com/contactus" target="_blank" class="feedback-float" title="Feedback &amp; Contact Us"> 
5007   <svg viewbox="0 0 24 24" width="28" height="28" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 
5008    <path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path> 
5009   </svg> </a>
5010  <a href="https://chat.whatsapp.com/EotpYGKYlZKDSKJWO6vCu8" target="_blank" class="whatsapp-float" title="Join our WhatsApp community"> 
5011   <svg viewbox="0 0 32 32" width="32" height="32" fill="white"> 
5012    <path d="M16 0C7.164 0 0 7.163 0 16c0 2.826.737 5.625 2.14 8.118L.294 30.828a.998.998 0 0 0 1.265 1.265l6.71-1.846A15.93 15.93 0 0 0 16 32c8.837 0 16-7.163 16-16S24.837 0 16 0zm0 29.333c-2.582 0-5.11-.75-7.285-2.159a1 1 0 0 0-.835-.124l-4.71 1.296 1.296-4.71a1 1 0 0 0-.124-.835A13.264 13.264 0 0 1 2.667 16C2.667 8.636 8.637 2.667 16 2.667S29.333 8.636 29.333 16 23.364 29.333 16 29.333z"></path> 
5013    <path d="M23.543 19.466c-.312-.156-1.846-.91-2.132-1.013-.286-.104-.494-.156-.703.156s-.806.912-1.013 1.117c-.182.182-.39.208-.702.052-.52-.26-1.508-.556-2.873-1.773-1.06-.949-1.779-2.12-1.987-2.432-.208-.312-.026-.481.136-.636.14-.14.312-.364.468-.546.156-.182.208-.312.312-.52.104-.208.052-.39-.026-.546-.078-.156-.703-1.696-.963-2.32-.26-.624-.52-.52-.703-.52h-.598c-.208 0-.546.078-.832.39s-1.092 1.066-1.092 2.606c0 1.54 1.118 3.029 1.274 3.237.156.208 2.197 3.354 5.322 4.699.744.322 1.326.513 1.779.657.748.238 1.43.204 1.967.124.6-.09 1.846-.755 2.106-1.482.26-.728.26-1.352.182-1.482-.078-.13-.286-.208-.598-.364z"></path> 
5014   </svg> </a>
5015  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900" rel="stylesheet">
5016  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900" rel="stylesheet">
5017  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900" rel="stylesheet">
5018  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900" rel="stylesheet">
5019 </body>
5020</html></div>
5021
5022
5023	
5024		
5025		
5026			
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037<div class="yogya-footer" style="display: flex !important;align-items:center;justify-content:center;clear:both;width: 100%;flex-direction: column; row-gap:30px; background: #F7F7F7; color: #232228; padding: 80px 10px;">
5038	
5039		
5040		
5041			
5042				
5043				
5044					<a style="display: flex !important;align-items:center;justify-content:center;text-decoration: none !important;background: #000 !important;color: #fff !important;padding: 12px 20px !important;border-radius: 4px !important;font-size: 14px !important;font-weight: 600 !important;line-height: 20px !important;" rel="nofollow" href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=p
5044owershellacademy0959&utm_source=gc&utm_device=website&gref=powershellacademy0959" target="_blank"><img alt="Launch your Graphy" style="height: 20px; width: 11px; margin-right: 12px;" src="/resources/images/grvector.svg">Launch your Graphy</a>
5045					<div class="text-center" style="font-size: 12px;font-weight: 400;line-height: 20px;letter-spacing: 0.015em;">100K+ creators trust <a href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=powershellacademy0959&utm_source=gc&utm_device=website&gref=powershellacademy0959" target="_blank" rel="nofollow" style="color: #000 !important;text-decoration: underline !important;padding: 0 !important;font-size: inherit !important;">Graphy</a> to teach online</div>
5046				
5047			
5048		
5049	
5050	<div style="display: flex !important;align-items:center;justify-content:center;column-gap: 12px;">
5051		<a href="https://www.facebook.com/powershellacademy" class="fbPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;"><i class="fa-brands fa-facebook-f" style="font-size: 11px"></i></a>
5052		
5053		
5054		<a href="https://www.linkedin.com/in/vishnu-gupthan-nair-09a12b31/" class="linkedinPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;" ><i class="fa-brands fa-linkedin-in" style="font-size: 11px"></i></a> 
5055		
5056		
5057	</div>
5058	<div style="display: flex !important;align-items:center;justify-content:center;font-size: 14px;font-weight: 500;line-height: 20px;letter-spacing: 0.015em;column-gap: 12px;flex-wrap: wrap;">
5059		<span>PowershellAcademy <i class="fa-regular fa-copyright"></i> 2026</span> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
5060		<a href="/privacypolicy" style="color: #232228 !important; padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Privacy policy</a>  <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
5061		<a href="/termsofuse" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Terms of use</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
5062		<a href="/contactus" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Contact us</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
5063		<a href="/refundpolicy" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Refund policy</a>
5064	</div>
5065</div>
5066
5067
5068
5069
5070
5071		
5072	
5073
5074
5075	
5075<script type="text/javascript">
5076		var coursesList = $("#courseslist, .itemsContainer"), blogsList = $("#blogslist");
5077		if(coursesList.length > 0 && coursesList.html().replace(/[\s]/g, '') === "") {
5078			coursesList.addClass("columns").html("<div class='loading loading-lg centered'></div>");
5079			store.allCourses.init(false, (coursesList.data("limit")===undefined?4:coursesList.data("limit")));
5080		}
5081		if(blogsList.length > 0 && blogsList.html().replace(/[\s]/g, '') === "") {
5082			blogsList.addClass("columns").html("<div class='loading loading-lg centered'></div>");
5083			var limit = (blogsList.data("limit")===undefined?4:blogsList.data("limit")), packet = {
5084					url: "/blog/json/get",
5085					data: {skip: 0, limit: limit},
5086					success: function(data, params) {
5087						var template = _.template($("#blogcard-template").html()), html = "", blogs = data.data.blogs.data;
5088						
5089						for(var i=0;i < blogs.length;i++) {
5090							html = html + template({item: blogs[i]});
5091						}
5092						
5093						blogsList.html(html);//.find("time.timeago").timeago(); 
5094					}
5095			};
5096			
5097			getData(packet, {});
5098		}
5099	</script>
5099
5100
5101<script src="https://d502jbuhuh9wk.cloudfront.net/resources/pagebuilder2/box/box.js" type="text/javascript"></script>
5101
5102
5103
5104
5105
5106
5107
5108	<div id="ui-notification-container" class="spectre"></div>
5109	
5109<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-easing.js"></script>
5109
5110	
5110<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-notification.js"></script>
5110
5111
5112	<!-- Import and configure the Firebase SDK -->
5113	<!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
5114	<!-- If you do not serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup -->
5115	
5115<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
5115
5116	
5116<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
5116
5117
5118	
5118<script>
5119  // Retrieve Firebase Messaging object.
5120  var firebaseConfig = {"apiKey":"AIzaSyCQ2wNyeXrIzifB0IKKVCalHXrDk7pg32w","authDomain":"live-stream-chat-efac5.firebaseapp.com","databaseURL":"https://live-stream-chat-efac5.firebaseio.com","projectId":"live-stream-chat-efac5","storageBucket":"live-stream-chat-efac5.appspot.com","messagingSenderId":"158909475587","appId":"1:158909475587:web:93ede0a9feef2b3f"};
5121  // Initialize Firebase
5122  firebase.initializeApp(firebaseConfig);
5123  const messaging = firebase.messaging();
5124  // Add the public key generated from the console here.
5125  messaging.usePublicVapidKey("BN3BYOmWjo3NAW7if4jCE5cG-yIOXAvmoKB9k53ZssAfgb7Z6ZZ-oAQWFK7j6EqHIG3f-G9QAVKLOIK7Vw3X0_k");
5126
5127  // Callback fired if Instance ID token is updated.
5128  messaging.onTokenRefresh(function(){
5129    messaging.getToken().then(function(refreshedToken){
5130      // Indicate that the new Instance ID token has not yet been sent to the
5131      // app server.
5132      setTokenSentToServer(false);
5133      // Send Instance ID token to app server.
5134      sendTokenToServer(refreshedToken);
5135      // Display new Instance ID token and clear UI of all previous messages.
5136      resetUI();
5137      // [END_EXCLUDE]
5138    })["catch"](function(err){
5139      console.log('Unable to retrieve refreshed token ', err);
5140      showToken('Unable to retrieve refreshed token ', err);
5141      requestPermission();
5142    });
5143  });
5144
5145  // Handle incoming messages. Called when:
5146  // - a message is received while the app has focus
5147  // - the user clicks on an app notification created by a service worker
5148  //   `messaging.setBackgroundMessageHandler` handler.
5149  messaging.onMessage(function(payload){
5150    console.log('Message received. ', payload);
5151    appendMessage(payload);
5152  });
5153
5154  function resetUI() {
5155    clearMessages();
5156    $(function(){
5157        $("#ui-notification-container").notification();
5158    });
5159    // Get Instance ID token. Initially this makes a network call, once retrieved
5160    // subsequent calls to getToken will return from cache.
5161    messaging.getToken().then(function(currentToken) {
5162      if (currentToken) {
5163        sendTokenToServer(currentToken);
5164        updateUIForPushEnabled(currentToken);
5165      } else {
5166        // Show permission request.
5167        console.log('No Instance ID token available. Request permission to generate one.');
5168        // Show permission UI.
5169        updateUIForPushPermissionRequired();
5170        setTokenSentToServer(false);
5171      }
5172    })["catch"](function(err) {
5173      console.log('An error occurred while retrieving token. ', err);
5174      showToken('Error retrieving Instance ID token. ', err);
5175      setTokenSentToServer(false);
5176    });
5177    // [END get_token]
5178  }
5179
5180  function showToken(currentToken) {
5181    // Show token in console and UI.
5182    console.log(currentToken);
5183  }
5184
5185  // Send the Instance ID token your application server, so that it can:
5186  // - send messages back to this app
5187  // - subscribe/unsubscribe the token from topics
5188  function sendTokenToServer(currentToken) {
5189    if (!isTokenSentToServer()) {
5190      console.log('Sending token to server...');
5191      var packet = {
5192			  url : "/public/v1/fcm/token",
5193			  data: {token: currentToken},
5194			  success: function(data, params) {
5195				  console.log("Token successfully sent")
5196				  setTokenSentToServer(true);
5197				  setTokenSentToServerUserId(window.userId);
5198			  }
5199	  };
5200	  postData(packet, {});
5201    } else {
5202      console.log('Token already sent to server so won\'t send it again ' +
5203          'unless it changes');
5204    }
5205
5206  }
5207
5208  function isTokenSentToServer() {
5209    return window.localStorage.getItem('sentToServer') === '1' && isTokenSentToServerWithUser(window.userId);
5210  }
5211  
5212  function isTokenSentToServerWithUser(userId) {
5213	 return window.localStorage.getItem('sentToServer-user') === userId;
5214  }
5215
5216  function setTokenSentToServer(sent) {
5217    window.localStorage.setItem('sentToServer', sent ? '1' : '0');
5218  }
5219  
5220  function setTokenSentToServerUserId(userId) {
5221	    window.localStorage.setItem('sentToServer-user', userId);
5222  }
5223
5224  function requestPermission() {
5225    console.log('Requesting permission...');
5226    // [START request_permission]
5227    Notification.requestPermission().then(function(permission) {
5228      if (permission === 'granted') {
5229        console.log('Notification permission granted.');
5230        resetUI();
5231      } else {
5232        console.log('Unable to get permission to notify.');
5233      }
5234    });
5235    // [END request_permission]
5236  }
5237
5238  function deleteToken() {
5239    // Delete Instance ID token.
5240    // [START delete_token]
5241    messaging.getToken().then(function(currentToken){
5242      messaging.deleteToken(currentToken).then(function(){
5243        console.log('Token deleted.');
5244        setTokenSentToServer(false);
5245        // Once token is deleted update UI.
5246        resetUI();
5247      })["catch"](function(err) {
5248        console.log('Unable to delete token. ', err);
5249      });
5250    })["catch"](function(err) {
5251      console.log('Error retrieving Instance ID token. ', err);
5252      showToken('Error retrieving Instance ID token. ', err);
5253    });
5254
5255  }
5256
5257  // Add a message to the messages element.
5258  function appendMessage(payload) {
5259	  $("#ui-notification-container").notification("create", {
5260          title: payload.data.title,
5261          content: payload.data.message,
5262          customIcon: payload.data.customIcon,
5263          customImage: payload.data.customImage,
5264          link: payload.data.link
5265      },
5266      {
5267          sticky: true 
5268      });
5269  }
5270
5271  // Clear the messages element of all children.
5272  function clearMessages() {
5273    const messagesElement = document.querySelector('#ui-notification-container');
5274    while (messagesElement.hasChildNodes()) {
5275      messagesElement.removeChild(messagesElement.lastChild);
5276    }
5277  }
5278
5279  function updateUIForPushEnabled(currentToken) {
5280	  showToken("Token update ui: " + currentToken);
5281  }
5282
5283  function updateUIForPushPermissionRequired() {
5284    console.warg("Push notification permission is requred")
5285  }
5286
5287  window.userId = "";
5288  resetUI();
5289  
5290  
5291 </script>
5291
5292
5293
5294<script src="https://d502jbuhuh9wk.cloudfront.net/static/files/lazyload.min.js"></script>
vendor: 1 bytes, line 5294
5294
5295<script type="text/javascript">
5296	var lazyLoadInstance = new LazyLoad({
5297	  unobserve_entered: true,
5298	  callback_enter: function(element) {
5299		  resizeCdnImage(element);
5300	  }
5301	});
5302</script>
5302
5303</body>
5304</html>

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