PageSourceSearch

https://admin.octopuspro.com/login

html octopuspro.com collected 2026-10-01 14:16:53 UTC 179,157 bytes, 2,683 lines download raw bytes

1<!DOCTYPE html>
2<script type='module' src='/vue-3/assets/main--PahQucp.js?v=1790862941' rel='preload'></script>
2 <link type='text/css' rel='stylesheet' href='/vue-3/assets/style-B59C2bZq.css?v=1790862941'>
3<script>
4    if(localStorage.getItem('version') !== '1790862941'){
5        localStorage.removeItem('data')
6        localStorage.removeItem('s3PathsData')
7        localStorage.removeItem('bookingStatusesData')
8        localStorage.setItem('version','1790862941')
9    }
10</script>
vendor: 1 bytes, line 10
10
11<script type="text/javascript">
12        var config = {};
13</script>
13
14<!--comment-->
15<script>
16    var hasTwilio = '';
17    var getContractorInfoForMapUrl = "https://admin.octopuspro.com/default/get-contractor-info-for-map";
18</script>
18
19<html>
20<head>
21<script src="/js/platform-guard-challenge.js?v=1790862941&h=4"></script>
21
22    
22<script src='/dist/js/manifest.js?v=1790862941'></script>
22
23    
23<script src='/dist/js/vendor.js?v=1790862941'></script>
23
24    
24<script src='/dist/js/main.js?v=1790862941'></script>
24
25
26    <!--    
26<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC7vd6jFUCUbMyfDtWOJlb4n9y2rZU5hhw&libraries=places"></script>
26-->
27
28    <!-- Adding Initial Scale -->
29    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
30
31
32
33    <link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap.min.css?v=1790862941"/>
34	<link type="text/css" rel="stylesheet" media="screen" href="/css/style-updated9.css?v=286?v=1790862941"/>
35	<link type="text/css" rel="stylesheet" media="screen" href="/css/custom_css.min.css?v=1790862941"/>
36	<link type="text/css" rel="stylesheet" media="screen" href="/css/Scroll-menu.css?v=1790862941"/>
37	<link type="text/css" rel="stylesheet" media="screen" href="/css/fontello.min.css?v=1790862941"/>
38	<link type="text/css" rel="stylesheet" media="screen" href="/css/animate.min.css?v=1790862941"/>
39	<link type="text/css" rel="stylesheet" media="screen" href="/css/basic.min.css?v=1790862941"/>
40	<link type="text/css" rel="stylesheet" media="screen" href="/css/switchery.css?v=1790862941"/>
41	<link type="text/css" rel="stylesheet" media="screen" href="/css/firebaseui.css?v=1790862941"/>
42	<link type="text/css" rel="stylesheet" media="screen" href="/css/dropzone.min.css?v=1790862941"/>
43	<link type="text/css" rel="stylesheet" media="screen" href="/css/summernote.css?v=1790862941"/>
44	<link type="text/css" rel="stylesheet" media="screen" href="/css/login_updated.css?v=115?v=1790862941"/>
45	<link type="text/css" rel="stylesheet" media="screen" href="/css/SimpleSliderCustom.css?v=1790862941"/>
46	<link type="text/css" rel="stylesheet" media="screen" href="/css/activity-log.min.css?v=1790862941"/>
47	<link type="text/css" rel="stylesheet" media="screen" href="/css/filtersCss.css?v=102?v=1790862941"/>
48	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-timepicker.css?v=1790862941"/>
49	<link type="text/css" rel="stylesheet" media="screen" href="/css/responsive-table-updated3.css?v=5?v=1790862941"/>
50	<link type="text/css" rel="stylesheet" media="screen" href="/css/datepicker3.min.css?v=1790862941"/>
51	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-datetimepicker.min.css?v=1790862941"/>
52	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-colorpicker.min.css?v=1790862941"/>
53	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-clockpicker.min.css?v=1790862941"/>
54	<link type="text/css" rel="stylesheet" media="screen" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/>
55	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap-select.min.css"/>
56	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.datatables.net/v/dt/dt-1.13.4/b-2.3.6/b-colvis-2.3.6/b-html5-2.3.6/b-print-2.3.6/r-2.4.1/datatables.min.css"/>
57	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css"/>
58    
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js?v=1790862941" type="text/javascript"></script>
58
59	
59<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery-migrate.min.js?v=1790862941" type="text/javascript"></script>
59
60	
60<script src="https://cdn.jsdelivr.net/npm/[email protected]/jquery-ui.min.js?v=1790862941" type="text/javascript"></script>
60
61	
61<script src="/js/inspinia.js?v=1790862941" type="text/javascript"></script>
61
62	
62<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js?v=1790862941" type="text/javascript"></script>
62
63	
63<script src="https://cdn.jsdelivr.net/npm/[email protected]/min/moment.min.js?v=1790862941" type="text/javascript"></script>
63
64	
64<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap-select.min.js?v=1790862941" type="text/javascript"></script>
64
65	
65<script src="/js/switchery.min.js?v=1790862941" type="text/javascript"></script>
65
66	
66<script src="/js/classie.js?v=1790862941" type="text/javascript"></script>
66
67	
67<script src="/js/bootstrap-tabdrop.js?v=1790862941" type="text/javascript"></script>
67
68	
68<script src="/js/jquery.form.min.js?v=1790862941" type="text/javascript"></script>
68
69	
69<script src="/js/notify_updated.min.js?v=1790862941" type="text/javascript"></script>
69
70	
70<script src="/js/jquery.bootstrap-touchspin-updated2.js?v=1790862941" type="text/javascript"></script>
70
71	
71<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.validate.min.js?v=1790862941" type="text/javascript"></script>
71
72	
72<script src="/plugins/dropzone/dropzone.min.js?v=1790862941" type="text/javascript"></script>
72
73	
73<script src="/js/summernote.min.js?v=1790862941" type="text/javascript"></script>
73
74	
74<script src="/js/firebase.js?v=1790862941" type="text/javascript"></script>
74
75	
75<script src="/js/firebaseui.js?v=1790862941" type="text/javascript"></script>
75
76	
76<script src="/js/signature_pad.min.js?v=1790862941" type="text/javascript"></script>
76
77	
77<script src="/js/jquery.tablesorter.js?v=1790862941" type="text/javascript"></script>
77
78	
78<script src="/js/jquery.format-1.3.min.js?v=1790862941" type="text/javascript"></script>
78
79	
79<script src="/js/nav-dropdown.js?v=1790862941" type="text/javascript"></script>
79
80	
80<script src="/js/bootstrap-datetimepicker.min.js?v=1790862941" type="text/javascript"></script>
80
81	
81<script src="/js/bootstrap-colorpicker.min.js?v=1790862941" type="text/javascript"></script>
81
82	
82<script src="/js/bootstrap-modal-popover.js?v=1790862941" type="text/javascript"></script>
82
83	
83<script src="/js/popover.js?v=1790862941" type="text/javascript"></script>
83
84	
84<script src="/js/bootstrap-clockpicker.min.js?v=1790862941" type="text/javascript"></script>
84
85	
85<script src="/js/bootstrap-datepicker_1.js?v=1790862941" type="text/javascript"></script>
85
86	
86<script src="/js/ajax/AjaxManager.js?v=1790862941" type="text/javascript"></script>
86
87	
87<script src="/js/filters.js?v=1790862941" type="text/javascript"></script>
87
88	
88<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js?v=1790862941" type="text/javascript"></script>
88
89	
89<script src="https://cdn.datatables.net/v/dt/dt-1.13.4/b-2.3.6/b-colvis-2.3.6/b-html5-2.3.6/b-print-2.3.6/r-2.4.1/datatables.min.js" type="text/javascript"></script>
89
90    
91
92
93    
93<script>
94        const GOOGLE_API_KEY = 'AIzaSyAPqtzqpQ7hTnssEESLhM1twGHR_qhwIOc';
95
96    </script>
96
97
98
99
100
101            <link REL="SHORTCUT ICON"
102              HREF="https://admin.octopuspro.com/pic/favicon_octologo.png?v=1790862941"/>
103
104    
105
106
107
108    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
108<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1589263453",accountID:"1169474",trustKey:"1169474",xpid:"VQcBWFJUDBABUVJVBgMOV1QA",licenseKey:"1c7ac89166",applicationID:"1537129101",browserID:"1589263453"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
109(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
109e.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;
109const 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);
109if(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$:()=>
109o,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])}
109(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}
109;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
109{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
109ine_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()=>
109{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)=>
109null==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
109dTimingMethod(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
109imeToRegister: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})})}
109return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
109!==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);
109if(!(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)}
109);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)})});
109class 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
109h(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>
109
110<meta name="description" content="Login - OctopusPro - Octopuspro" ><title>Login - OctopusPro</title>
111
112    <!--By moataz to check if company has twilio account or not -->
113        <!--    -->
114    <!--  BOOK SETTINGS STYLE LEVEL STARTS @AUTHOR AMR-->
115    <!--    <link type="text/css" rel="stylesheet"-->
116    <!--  BOOK SETTINGS STYLE LEVEL ENDS @AUTHOR AMR-->
117
118
119
120    <!-- INITIALIZE LANGUAGE SCRIPT START @AUTHOR AMR -->
121    
121<script type="text/javascript">
122        /**
123         * Global JS constants injected by the PHP layout.
124         *
125         * LANG          — The active locale code from Zend's translator (e.g. 'en', 'ar', 'fr').
126         *                 Used by octopus-translate.js to decide which translation file to load
127         *                 and by trans.js for the existing translation system.
128         *
129         * COMPANY_ID    — The currently authenticated company's numeric ID, cast to int for safety.
130         *                 Used by octopus-translate.js to apply the feature gate (only runs for
131         *                 companies that have the translation feature enabled).
132         *
133         * LARAVEL_BASE  — The base URL of the Laravel API (e.g. 'https://api.example.com').
134         *                 Trailing slash is stripped to avoid double-slash issues when
135         *                 building endpoint URLs like `${LARAVEL_BASE}/api/v2/locales`.
136         */
137        const LANG = 'en';
138        const COMPANY_ID = 0;
139    </script>
139
140    <!-- INITIALIZE LANGUAGE SCRIPT FINISH @AUTHOR AMR -->
141
142    
143
144</head>
145<style>
146    .h-fit-content{
147        height: fit-content !important;
148    }
149    .inline.no-padding{
150        width: 100%;
151        margin-bottom: 15px;
152    }
153    .input-group-btn .fa-minus,.input-group-btn .fa-plus{
154        font-size: 14px !important;
155        padding-top: 5px;
156    }
157.font-s-32{
158
159    font-size: 32px !important;
160}
161    div > #button:focus{
162        border-color: #2e4051 !important;
163    }
164    #authenticate_email:focus{
165        border-color: #2e4051 !important;
166    }
167    #custom_popupi .btn-primary:focus {
168        border-color: #2e4051 !important;
169    }
170    .width_100{
171        width: 100%;
172        margin-bottom : 15px !important;
173    }
174
175.digit,
176.dig {
177    float: left;
178    padding: 10px 30px;
179    font-size: 2rem;
180    cursor: pointer;
181}
182
183.sub {
184  font-size: 0.8rem;
185  color: grey;
186}
187
188.pad-container {
189  display: none;
190  background-color: white;
191  width: 255px;
192  padding: 18px;
193  margin: auto;
194  text-align: center;
195  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
196}
197
198.pad-container #output {
199    border: 1px solid lightgray;
200    padding: 5px !important;
201    min-height: 32px;
202}
203
204.pad-container .row {
205    margin-left: 0px;
206}
207
208.toggle-pad {
209    cursor: pointer;
210}
211
212#call {
213  display: inline-block;
214  background-color: #66bb6a;
215  padding: 4px 30px;
216  margin: 10px;
217  color: white;
218  border-radius: 4px;
219  float: left;
220  cursor: pointer;
221}
222
223.botrow {
224  margin: 0 auto;
225  width: 280px;
226  clear: both;
227  text-align: center;
228  font-family: 'Exo';
229}
230
231.back-button {
232    padding: 4px !important;
233    font-size: 25px !important;
234    cursor: pointer !important;
235    margin-top: 0px !important;
236    margin-left: 0px !important;
237}
238
239
240.digit:active,
241.dig:active {
242  background-color: #e6e6e6;
243}
244
245#call:hover {
246  background-color: #81c784;
247}
248
249.dig {
250  float: left;
251  padding: 10px 20px;
252  margin: 10px;
253  width: 30px;
254  cursor: pointer;
255}
256
257    #newTwilioModal .modal-content,#newTwilioModal2 .modal-content {
258        background-color: #222222 !important;;
259        text-align: center;
260        padding-top: 40px;
261        /*width:420px !important;*/
262    }
263
264    #newTwilioModal .modal-footer , #newTwilioModal2 .modal-footer {
265        background-color: #fefefe !important;
266        text-align: center;
267    }
268
269    #newTwilioModal .btn-circle ,#newTwilioModal2 .btn-circle{
270        width: 50px;
271        height: 50px;
272        text-align: center;
273        font-size: 22px;
274        line-height: 1.42857;
275        border-radius: 50%;
276        outline: none;
277    }
278
279    #newTwilioModal .user-info,  #newTwilioModal2 .user-info{
280        padding-bottom: 20px !important;
281    }
282    #newTwilioModal .btn-call:hover ,#newTwilioModal .green-btn-call,
283    #newTwilioModal2 .btn-call:hover ,#newTwilioModal .green-btn-call{
284        color: white;
285        background-color: forestgreen !important;
286    }
287
288    #newTwilioModal #content_modal_popup_twilio ,
289    #newTwilioModal2 #content_modal_popup_twilio {
290        width: 50%;
291        margin: 0 auto;
292    }
293
294    #newTwilioModal .btn-user-avatar,
295    #newTwilioModal2 .btn-user-avatar {
296
297        width:180px;
298        height:180px;
299        font-size: 88px;
300        background-color: #494949 !important;
301        border-color: #494949;
302        color: white;
303    }
304
305    #newTwilioModal .modal-header .close
306    ,    #newTwilioModal2 .modal-header .close{
307        margin-top: -37px;
308        color: white;
309        font-size: 25px;
310        margin-right: 10px;
311
312    }
313    #newTwilioModal .modal-header
314    ,#newTwilioModal2 .modal-header{
315        border:none !important;
316    }
317    #newTwilioModal #warning,
318    #newTwilioModal2 #warning{
319        padding: 10px 0px;
320        text-align: center;
321        color: red;
322    }
323
324    #newTwilioModal .callee-name,
325    #newTwilioModal2 .callee-name{
326        padding: 21px 0px;
327        font-size: 18px;
328        color: whitesmoke;
329    }
330
331    #newTwilioModal .modal-body{
332        max-height: calc(100vh - 212px);
333        overflow-y: auto;
334    }
335    #newTwilioModal #call-time ,
336    #newTwilioModal2 #call-time{
337        color:white;
338    }
339    #newTwilioModal .callee-number ,
340    #newTwilioModal2 .callee-number{
341        color: white;
342        font-size: 20px;
343
344        padding-bottom: 32px;
345    }
346
347    .dismissbtn{
348        background-color: transparent;
349        border-color: white;
350    }
351</style>
352<!--/*popups style*/-->
353<link rel="stylesheet" href="https://admin.octopuspro.com/css/popups-style.css?v=3?v=1790862941">
354<style>
355    .updated_date{
356        float: right;
357        font-size: 10px;
358    }
359    @media (max-width: 720px){
360        #search_form {
361            width: 100%!important;
362        }}
363
364    @media only screen and (max-width: 991px) {
365        .updated_date{
366            float: none;
367        }
368        #tidio-chat-iframe {
369            display: none;
370        }
371    }
372
373
374    @media only screen and (max-width: 500px) {
375        .label-margin
376        {
377            margin-top:5px;
378        }
379    }
380    #tidio-chat div iframe {
381        left: 200px !important;
382        right: initial !important;
383    }
384
385    .settings-items .nav-second-level li a {
386        padding: 14px 10px 7px 10px;
387        padding-left: 40px;
388    }
389
390    .settings-items > .nav > li > a {
391        padding: 14px 10px 2px 10px;
392    }
393
394    .settings-items .nav-third-level li a {
395        padding: 7px 20px 2px 25px;
396        padding-left: 50px;
397    }
398
399    .nav > li > a {
400        color: #ffffff;
401    }
402
403    .nav-second-level > li > a {
404        color: #a7b1c2;
405    }
406
407    .nav-third-level > li > a {
408        color: #a7b1c2;
409        padding-left: 45px;
410    }
411
412
413    .collapse.in{
414
415        height: auto !important;
416
417    }
418
419    .nav_parent_top_menu {
420        background: #fff;
421    }
422
423
424    .custom-search-container {
425        position: relative;
426    }
427    .custom-search-container input { text-indent: 22px;}
428    .custom-search-container .fa-search {
429        position: absolute;
430        top: 10px;
431        left: 10px;
432        z-index: 1
433    }
434
435    .blue-label-btn {
436        background-color: #03A9F4;
437        border-color: #03A9F4;
438        font-size: 12px;
439        color: white;
440    }
441    .blue-label-btn:hover{
442        background-color: #0790ce;
443        border-color: #0790ce;
444        color: white;
445    }
446    div#address_Modal_admin {
447        z-index: 1071;
448    }
449    #top-menu{
450        padding: 10px 30px !important;
451    }
452    @media (max-width: 768px) {
453
454        body.mini-navbar .navbar-static-side {
455            width: 65% ;
456            display: block;
457        }
458        /*.yes{*/
459        /*    width: 50%;*/
460        /*    display: block;*/
461        /*}*/
462        .nav_parent_top_menu {
463            background: #fff;
464            position: relative;
465            z-index: 1010;
466        }
467        /*body.mini-navbar .nav-header{*/
468        /*    padding-top: 63px;*/
469        /*}*/
470        body.mini-navbar .profile-element, body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span {
471            display: block;
472        }
473        #complo , #myaccount-image , .logo-element{
474            display: none;
475        }
476
477        .nav>li {
478            position: relative;
479            display: block;
480        }
481        .nav > li > a {
482            color: #a7b1c2;
483            font-weight: 600;
484            /*padding: 14px 20px 14px 25px;*/
485
486        }
487        .nav > li > a i {
488            margin-right: 6px;
489            float: left;
490        }
491        .nav > li a .nav-label{
492            font-size: 13px;
493        }
494        .dis_none_in_mob{
495            display: none !important;
496        }
497        .flex_elemnt{
498            display: flex;
499            align-items: center;
500            justify-content: center;
501        }
502        .trans_top{
503            transform: translateY(-16px);
504        }
505        body:not(.fixed-sidebar).mini-navbar .nav li:hover .nav-second-level{
506            position: relative;
507            left:0
508        }
509        body:not(.fixed-sidebar).mini-navbar .nav li:active .nav-second-level{
510            display: block;
511            position: relative;
512            left: 0;
513        }
514        body:not(.fixed-sidebar).mini-navbar .nav li:active ,.nav-second-level, .mini-navbar .nav li:focus > .nav-second-level{
515            position: relative;
516            left: 0;
517        }
518        /*.nav li .nav-second-level{*/
519        /*    display: none !important;*/
520        /*}*/
521        /*.nav li.active .nav-second-level{
522            display: block !important;
523        }*/
524        /*.work_toggels{*/
525        /*    display: block;*/
526        /*    position: relative;*/
527        /*    left: 0;*/
528        /*}*/
529        .mini-navbar .nav-second-level{
530            position: relative;
531        }
532        /*body.mini-navbar #page-wrapper{*/
533        /*    background: none;*/
534        /*}*/
535        .body-small.mini-navbar .navbar-static-side{
536            /*top: 63px;*/
537            /*padding-bottom: 200px !important;*/
538        }
539        body.mini-navbar #page-wrapper {
540            margin:0 !important;
541        }
542        .settings-items .nav-third-level li a{
543            padding-left: 20px ;
544        }
545        .n_padding_left_mob{
546            padding-left: 25px !important;
547        }
548        .mini-navbar .nav-second-level li a{
549            padding: 10px 10px 10px 20px;
550        }
551        .mini-navbar li.active .nav-second-level{
552            left: 0;
553        }
554        .nav-second-level li > ul {
555            padding-left: 15px;
556        }
557        .edit_padd_in_mob{
558            padding-left: 25px !important;
559        }
560        .hiddin_in_mob{
561            display: none !important;
562        }
563        .padding_bot_500{
564            padding-bottom:500px;
565        }
566        /*.label-primary, .badge-primary{*/
567        /*    transform: translate(10px , -16px) !important;*/
568        /*}*/
569        .unique_box_number .pull-right{
570            transform: translate(0px , -16px) !important;
571        }
572        #top-menu{
573            padding: 10px 25px !important;
574            /*padding-left: 10px !important;*/
575        ;
576        }
577    }
578    .home-profile{
579        display: flex;
580        flex-direction: column;
581        flex-wrap: wrap;
582        align-content: center;
583    }
584    .uniq_flex{
585        display: flex;
586        justify-content: space-evenly;
587        align-items: flex-end;
588    }
589    .hiddin_in_mob{
590        display: none !important;
591    }
592    .width_of_icon_search{
593        background: #0e9aef !important;
594        border-color: #0e9aef !important;
595
596    }
597    .width_of_icon_search:hover{
598        background: #0e9aef;
599        border-color: #0e9aef;
600    }
601    .width_of_icon_search:active{
602
603        background: #0e9aef;
604        border-color: #0e9aef;
605    }
606    .width_of_icon_search:focus{
607
608        background: #0e9aef;
609        border-color: #0e9aef;
610    }
611    @media (max-width: 350px) {
612        body.mini-navbar .navbar-static-side {
613            width: 62% ;
614            display: block;
615        }
616        body.mini-navbar .navbar-static-side {
617            width: 65% ;
618            display: block;
619        }
620    }
621
622    .cancel_style{
623        color: #2f4050!important;
624        background-color: #fff!important;
625        border-color: #2f4050!important;
626    }
627    .min_width_btn{
628        min-width: 120px;
629    }
630
631    .toggle-pad img{
632        height: 35px;
633        width: 35px;
634        margin-left: -10px;
635        margin-top: -5px;
636    }
637
638    @media (max-width: 350px) {
639        .add_15margin__un_350{
640            margin-left: -15px;
641            margin-right: -15px;
642        }
643    }
644</style>
645
646<script>
647    $(".sidebar-collapse ul li a").on("click", function() {
648        $("body.mini-navbar .navbar-static-side").addClass("yes");
649    })
650
651     function showEmbedText() {
652      popupi_alert('Set this worker’s default pay rules', `
653   <ul style="margin:0 0 12px 20px; padding:0; list-style-position:inside; list-style-type:disc; font-size:14px; line-height:1.5;">
654  <li style="margin-bottom:4px;">
655    <strong>Default Pay Model:</strong> How this service normally rewards fieldworkers. Choose <b>Commission</b> (percent or flat per service line) or <strong>Hourly</strong> (time-based).
656  </li>
657  <li style="margin-bottom:4px;">
658    <strong>If Commission →</strong> <strong>Base Commission</strong> is the normal share of each service line (pre-tax). <strong>Bonus Commission</strong> is an optional bonus rate you can activate on a booking or service line for special cases.
659  </li>
660  <li style="margin-bottom:4px;">
661    <strong>If Hourly →</strong> enter the regular <strong>Hourly Rate</strong>, an <strong>Over-Time Rate</strong> for premium hours, and an optional <strong>First-Hour Rate</strong> (call-out fee that replaces the first hour).
662  </li>
663  <li style="margin-bottom:4px;">
664    These defaults auto-fill new jobs unless you override them at the <strong>Worker × Service</strong> level in this profile or via a one-off <strong>booking override</strong>.
665  </li>
666  <li style="margin-bottom:4px;">
667    All shares are calculated on the pre-tax amount and each service line’s totals can’t exceed <b>100 %.</b>
668  </li>
669
670    <a href="https://help.octopuspro.com/fieldworker-commission-pay-rates" target="_blank" style="text-decoration:none; font-size:14px; line-height:1.5;">
671      <strong>Learn More →</strong>
672    </a>
673
674</ul>
675
676`);
677      $('.modal-footer').hide();
678    }
679
680
681</script>
681
682<!--check if 'hide_menu' received from bootstrap file equals true,render custom css to hide menu-->
683
684
685<!-- START CUSTOM CSS FOR MOBIE WEB VIEW @AUTHOR Yosor test-->
686<link rel="stylesheet" href="" id="web_view_link">
687<!-- END CUSTOM CSS FOR MOBIE WEB VIEW @AUTHOR AMR-->
688<body class="pace-done " id='bodyhight' onload="loadhight()">
689
690<!-- Browser compatibility warning banner — shown only on non-Chrome / non-Safari browsers -->
691<div id="browser-warning-banner" style="display:none;position:relative;background:#fff3cd;border-bottom:2px solid #ffc107;color:#856404;padding:10px 16px;font-size:14px;line-height:1.5;box-sizing:border-box;align-items:center;justify-content:space-between;">
692    <span>
693        <i class="fa fa-exclamation-circle" style="margin-right:8px;"></i>
694        For the best experience and full feature support, please use <strong>Google Chrome</strong> or <strong>Safari</strong>.
695        Your current browser may not display all features correctly.
696    </span>
697    <button onclick="document.getElementById('browser-warning-banner').style.display='none';" style="background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:#856404;padding:0 4px;margin-left:16px;float:right;" aria-label="Dismiss">&times;</button>
698</div>
699<script>
700    (function () {
701        var ua = navigator.userAgent;
702        var vendor = navigator.vendor || '';
703
704        var isEdge = /Edg\//.test(ua) || /Edge\//.test(ua);
705
706        var isChrome =
707            /Chrome\//.test(ua) &&
708            !/OPR\//.test(ua) &&
709            !isEdge;
710
711        var isSafari =
712            /^Apple/.test(vendor) ||
713            (/Safari\//.test(ua) && !/Chrome\//.test(ua));
714
715        if (!isChrome && !isSafari) {
716            var banner = document.getElementById('browser-warning-banner');
717            if (banner) banner.style.display = 'flex';
718        }
719    })();
720</script>
720
721<!-- END browser compatibility warning banner -->
722
723<div id="vue-3"></div>
724<div id="wrapper">
725    <!-- check if user login -->
726    
727
728        
729        <div class="no-margin-b">
730            <style>
731    .alert_box{
732        position: absolute;
733        top: 0;
734        right: 0;
735        z-index: 999999;
736        width: 100%;
737        text-align: center;
738        left: 0;
739        margin: 0 !important;
740    }
741    .alert_box .alert{
742        display: inline-block;
743        margin: 0;
744        padding: 10px 20px;
745        border-radius: 0;
746        font-size: 14px;
747        font-weight: 400;
748        line-height: 20px;
749        color: #fff;
750        text-align: left;
751        background-color: #f0ad4e;
752        border-color: #eea236;
753        box-shadow: 0 1px 1px rgba(0,0,0,0.05);
754        margin-top: 5px;
755        width: 100%;
756    }
757    .alert_box .alert-success{
758        background-color: #5cb85c;
759        border-color: #4cae4c;
760    }
761    .alert_box .alert-danger{
762        background-color: #d9534f;
763        border-color: #d43f3a;
764    }
765</style>
766<div class="alert_box">
767    </div>
768
769<script>
770  // $(document).ready(function(){
771  //   setTimeout(function(){
772  //     $(".alert").fadeOut('slow');
773  //   }, 8000); // 8 seconds delay
774  // });
775</script>
775
776                                     
777<div id="exhaustedAttempsMsg"></div>  
778    <section>
779             <div class="col-lg-offset-4 col-lg-4 col-sm-offset-2 col-sm-8  col-xs-offset-1 col-xs-10">
780               <div class="contBig">
781			      <div class="outbiglogo" >
782				    <div class="inbiglogo">
783					</div>
784				  </div>
785				  <div class="headnewaccount"> 
786				  Welcome back!
787				  </div> 
788						
789
790
791 <form id="form" class="form-horizontal" method="POST"
792	   action="https://admin.octopuspro.com/checkUserInMulticompanies"  > 
793
794                
795				    
796         <div class="cont-input">
797              <input type="email" required class="inputstyle"  name="email" placeholder="Email Address" onchange="return trim(this)" />
798         </div>
799         <div class="cont-input">
800			  <input type="password" required class="inputstyle" name="password" placeholder="Password" />
801		</div>		
802				<div class="content">
803					<div class="row">
804					
805				   </div>
806			   </div>
807			   <div>
808					<div class="center-check">
809							<label>
810								<input type="checkbox" value="remember-me"  name="keep_sign" style="float:left"> &nbsp; keep me signed in
811							</label>
812					</div>
813					
814				
815				</div>
816				<div class="clearfix"></div>
817
818				  <div class="btncont  col-sm-offset-3 col-sm-6"> 
819				      <input  type="submit" class="btn" value="Login" id="subNewAccount" >
820				   </div>
821
822<div class="clearfix"></div>
823				   <div class="center-check">
824								<a href="https://admin.octopuspro.com/forget/password" class="a_pass">
825										Forgot your Password?
826								</a>
827					</div>
828				   
829				</form>			
830              </div>
831              <div class="sec-center white-text">
832             Don't have a login? <a href="/signup" class="white-text">Try Octopuspro for free </a>
833           </div>
834		   <hr/>
835			<div class="sec-center" >
836			<a style="margin-left: 10px;" href="https://www.octopuspro.com/terms/" class="white-text">Terms&nbsp;of&nbsp;use</a>
837			<a style="margin-left: 10px;" href="https://www.octopuspro.com/privacy-policy/" class="white-text">Privacy&nbsp;policy</a>
838			<a style="margin-left: 10px;" href="https://www.octopuspro.com/offer-details/" class="white-text">Offer&nbsp;details</a>
839			</div>
840                 <!--
841            <div class="sec-center">
842             Customer? <a href="https://admin.octopuspro.com/login-customer">Click here </a> 
843           </div>
844-->
845            </div>
846            
847         </section>
848	  
849	   <style>
850	   .center-check{
851          text-align: center;
852
853	   }
854
855	   .cen-text{
856	   	    margin: 20px;
857    text-align: center;
858    line-height: 23px;
859    font-size: 17px;
860	   }
861
862       .white-text {
863           color: white !important;
864       }
865	
866	
867	body{
868		background: #fff url(https://admin.octopuspro.com/bd.jpg) no-repeat center center fixed; 
869	    -webkit-background-size: cover;
870	    -moz-background-size: cover;
871	    -o-background-size: cover;
872		font-weight: 400;
873		font-size: 15px;
874		color: #1d3c41;
875    }    
876	
877	ul{
878		list-style-type:none;
879		margin-left:2px;
880		padding-left:0;
881	}
882	.errors li{
883		color:#f00;
884	}
885	
886	 .alert_box{
887		 margin-right:10px;
888		 margin-left:10px;
889	 }
890	 .btncont input[type=button], input[type=reset], input[type=submit]{
891	   background: url(https://admin.octopuspro.com/btn.jpg) repeat-x;
892	   color:#fff;
893	   /* width:100%; */
894	   margin:10px 0px;
895
896	 }
897
898	 input[type=submit] {
899    background: url(https://admin.octopuspro.com/btn.jpg) repeat-x;
900    color: #fff;
901    width: 100%;
902    margin: 15px 0px;
903}
904	 
905	 .btncont input:hover{
906	   background: #33c2ff;
907	   color:#fff;
908
909	 }
910	 
911   .cont-input{
912	 margin:10px;
913   }
914	 .inputstyle{
915	    text-align:center ;
916		background:#f1f1f1;
917		width:100%;
918		border:none;
919		padding:5px;
920		font-size:17px;
921	 }
922	 
923   .contBig{
924    background: #fff ;
925	/*vertical-align: middle;*/
926    border-radius:18px;
927   /* position: absolute;*/
928   // overflow: hidden;
929   min-height: 420px;
930    margin:120px auto 5px;
931	}	
932	
933	.outbiglogo{
934	  position:relative;
935	}
936	
937	.inbiglogo{
938	   background :url(https://admin.octopuspro.com/octbiglogo.png) no-repeat;
939	   height:172px; 
940	   width:230px;
941	   position: absolute;
942       top:49px;
943       bottom: 0;
944       left: 0;
945       right: 0;
946      margin: auto;
947	}
948	
949	.headnewaccount{
950	   padding-top:130px ;  
951	   text-align:center;
952	   font-size:21px;
953	   color:#0091d7;
954	}
955	.sec-center{
956		text-align: center;
957		color : #79D7F3;
958	}
959	</style>                    
960 
961
962
963<script>
964$(document).ready(function () {
965	});
966function trim (el) {
967    el.value = el.value.
968       replace (/(^\s*)|(\s*$)/gi, ""). 
969	   replace (/[ ]{2,}/gi," "). 
970       replace (/\n +/,"\n");           
971    return;
972}
973
974localStorage.removeItem('data')
975localStorage.removeItem('s3PathsData')
976localStorage.removeItem('bookingStatusesData')
977console.log("Session Deleted")
978
979function resendVerificationEmail(email = '', companyId = '') {
980    var email = email || "";
981    var companyId = companyId || "";
982    
983    // Show loader
984    var button = document.querySelector('input#resend-verification');
985    button.value = "Sending...";
986    button.disabled = true;
987    
988    $.ajax({
989        url: '/sendReverifyUserAccount',
990        type: 'POST',
991		data: {
992			email: email,
993			companyId: companyId
994		},
995		success: function(response) {
996			// The server now returns a generic message for both existing and non-existing
997			// emails to prevent enumeration. Treat any successful 200 response as
998			// an acknowledgement and show the generic verification message.
999			document.getElementById('verificationMessage').style.display = 'block';
1000			// Hide loader
1001			button.value = "Resend Verification Email";
1002			button.disabled = false;
1003		},
1004        error: function() {
1005            // Hide loader on error
1006            button.value = "Resend Verification Email";
1007            button.disabled = false;
1008        }
1009    });
1010}
1011</script>
1011
1012
1013
1014
1015
1016
1017        </div>
1018    </div>
1019</div>
1020<div id="ajax_loader" class="hidden" style="position: fixed;display: none;width: 100%;height: 100%;top: 0;left: 0;
1021    right: 0;bottom: 0;background-color: rgba(0,0,0,0.5);z-index: 9999;">
1022    <img src="/pic/loading-img.gif" class="img-responsive" style="position: relative;top:45%;left:47%;"/>
1023</div>
1024<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
1025     aria-hidden="true" data-backdrop="static">
1026    <div class="modal-dialog">
1027        <div class="modal-content">
1028            <div id="content_modal_popup3">
1029            </div>
1030        </div>
1031    </div>
1032</div>
1033
1034<div id="vue-3-modals"></div>
1035
1036<div class="modal fade model_height_js" id="popupi" role="dialog" aria-labelledby="exampleModalLabel"
1037     data-backdrop="static" style="overflow-y: auto">
1038    <div class="modal-dialog modal-md aya">
1039        <div class="modal-content">
1040
1041            <div class="modal-header">
1042                <button type="button" class="close custom-m-top-0" data-dismiss="modal" aria-label="Close">
1043                    <span aria-hidden="true">&times;</span>
1044                </button>
1045                <h4 class="modal-title link-block font-s-32 remove-padd-mobile padd-left-0" style="align-items: center"  id="modal_title"></h4>
1046
1047
1048            </div>
1049
1050            <div class="modal-body edit_padd_contractor_pop">
1051                <div id="content_modal_popup" class="aya">
1052                </div>
1053            </div>
1054            <div class="modal-footer add_new_style Activate_Member_Cancel_button" style="display:none;"></div>
1055
1056        </div>
1057    </div>
1058</div>
1059
1060
1061
1062<div class="modal fade model_height_js" id="popupi_additional" role="dialog" aria-labelledby="exampleModalLabel"
1063     data-backdrop="static" style="overflow-y: auto">
1064    <div class="modal-dialog ">
1065        <div class="modal-content">
1066
1067            <div class="modal-header">
1068                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1069                    <span aria-hidden="true">&times;</span>
1070                </button>
1071                <h4 class="modal-title link-block d-flex font-s-32 remove-padd-mobile" style="align-items: center"  id="modal_title"></h4>
1072
1073
1074            </div>
1075
1076            <div class="modal-body edit_padd_contractor_pop">
1077                <div id="content_modal_popup_additional" class="p-bottom-60-mob">
1078                </div>
1079            </div>
1080            <div class="modal-footer add_new_style Activate_Member_Cancel_button" style="display:none;"></div>
1081
1082        </div>
1083    </div>
1084</div>
1085
1086<div class="modal" id="confirmModal" style="display: none; z-index: 1050;">
1087    <div class="modal-dialog" style="overflow: hidden">
1088        <div class="modal-content">
1089            <div class="modal-body" id="confirmMessage">
1090            </div>
1091            <div class="modal-footer custom-design-new d-flex justify-content-between">
1092                <button type="button" class="btn  cancel_style min_width_btn new-cancle-btn" id="confirmCancel">Cancel</button>
1093                <button type="button" class="btn btn-primary width_of_icon_search min_width_btn new-save-btn" id="confirmOk">Continue
1094                 </button>
1095            </div>
1096        </div>
1097    </div>
1098</div>
1099
1100
1101<div class="modal" id="confirmTwilioCall" style="display: none; z-index: 1050;">
1102    <div class="modal-dialog">
1103        <div class="modal-content">
1104            <div class="modal-body" id="confirmMessage">
1105            </div>
1106            <div class="modal-footer">
1107                <button type="button" class="btn  cancel_style min_width_btn" id="confirmCancel">Cancel</button>
1108                <button type="button" class="btn btn-primary width_of_icon_search min_width_btn" id="confirmOk">Continue</button>
1109            </div>
1110        </div>
1111    </div>
1112</div>
1113
1114<div id="payment-invoice-popup-div"></div>
1115
1116<!--
1117    Shared modal shells used across the application for dynamically loaded popup content.
1118    The placeholder picker, preview dialogs, and secondary stacked previews all reuse
1119    these containers so feature-specific views only need to load their body content.
1120-->
1121<div class="modal fade" id="popupi_stack" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1122     data-backdrop="static">
1123    <div class="modal-dialog">
1124        <div class="modal-content">
1125
1126            <div class="modal-header">
1127                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1128                    <span aria-hidden="true">&times;</span>
1129                </button>
1130                <h4 class="modal-title" id="modal_title"></h4>
1131            </div>
1132
1133            <div class="modal-body">
1134                <div id="content_modal_popup" class="p-bottom-60-mob">
1135                </div>
1136            </div>
1137            <div class="modal-footer" style="display:none;"></div>
1138
1139        </div>
1140    </div>
1141</div>
1142<!-- Global confirmation modal used by shared confirmation flows across the app. -->
1143<div class="modal fade" id="confirmation_popup_id" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1144     data-backdrop="static">
1145    <div class="modal-dialog">
1146        <div class="modal-content">
1147            <div class="modal-header">
1148                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1149                    <span aria-hidden="true">&times;</span>
1150                </button>
1151                <h4 class="modal-title" id="modal_title"></h4>
1152            </div>
1153
1154            <div class="modal-body">
1155                <div id="content_modal_popup">
1156                </div>
1157            </div>
1158            <div class="modal-footer" style="display:none;"></div>
1159
1160        </div>
1161    </div>
1162</div>
1163<div class="modal fade" id="fn_nearest" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1164     data-backdrop="static">
1165    <div class="modal-dialog">
1166        <div class="modal-content">
1167
1168            <div class="modal-header">
1169                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1170                    <span aria-hidden="true">&times;</span>
1171                </button>
1172                <h4 class="modal-title" id="modal_title2"></h4>
1173            </div>
1174
1175            <div class="modal-body">
1176                <div id="content_modal_popup2" class="p-bottom-60-mob">
1177                </div>
1178
1179            </div>
1180
1181        </div>
1182    </div>
1183</div>
1184
1185<div id="createNewButtonModal" class="popover modalPopover">
1186    <div class="arrow "></div>
1187    <div class="popover-content">
1188        <p>
1189        <h3>Tap here to make a new booking</h3></p>
1190
1191        <div style="border-top: 1px solid #e5e5e5;"><a id="gotNewBooking" class="btn btn-primary">Ok, Got it</a></div>
1192
1193    </div>
1194</div>
1195
1196<div class="modal fade" id="newTwilioModal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static"  >
1197    <div class="modal-dialog">
1198        <div class="modal-content" id="newTwilioContent">
1199
1200        </div>
1201    </div>
1202</div>
1203<div class="modal fade" id="callChooseModal" tabindex="-1" role="dialog" aria-labelledby="callChooseModal" aria-hidden="true"
1204     style="top:25% !important;z-index: 9999;">
1205    <div class="modal-dialog" role="document">
1206        <div class="modal-content">
1207
1208            <div class="modal-header">
1209                <h5 class="modal-title" id="exampleModalLabel">How would you like to call?</h5>
1210                <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top:-20px !important;">
1211                    <span aria-hidden="true">&times;</span>
1212                </button>
1213            </div>
1214            <div class="modal-body">
1215                <div class="row text-center ">
1216
1217                    <a  class="call-method-btn btn btn-default"
1218                        id="call-regular-method" data-toggle="modal" data-target="#twilioModal"
1219                        style="padding:16px 39px !important; margin-right:7px;">
1220                        <span class="fa fa-phone " style="font-size:16px !important"></span>
1221                        Regular call
1222                    </a>
1223
1224                    <a href="javascript:void(0)"    class="call-method-btn btn btn-primary "
1225                       id="call-twilio-method"
1226                       style="padding:16px 39px !important;">
1227                        <i style="padding-right: 5px; font-size:16px !important" class="fa fa-phone"  style="font-size:16px"></i>
1228                        Twilio call
1229                    </a>
1230
1231                </div>
1232            </div>
1233        </div>
1234    </div>
1235</div>
1236
1237
1238<div id="sideMenuModal" class="popover modalPopover">
1239    <div class="arrow "></div>
1240    <div class="popover-content">
1241        <p>
1242        <h3>Your side menu give you quick access to all the features</h3></p>
1243
1244        <div style="border-top: 1px solid #e5e5e5;"><a id="gotSideMenu" class="btn btn-primary">Ok, Got it</a></div>
1245        <input type="hidden" id="content_modal_popup_redirect_url" />
1246    </div>
1247</div>
1248
1249<div id="panelfirstpage" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1250     data-backdrop="static">
1251    <div class="modal-dialog">
1252        <div class="modal-content">
1253            <div class="modal-header">
1254                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
1255                <h4 class="modal-title">complete steps</h4>
1256            </div>
1257            <div class="modal-body">
1258                <p>Please complete the following steps to setup your account.</p>
1259            </div>
1260            <div class="modal-footer">
1261                <a type="button" class="btn btn-danger" id="okpanelfirst">OK</a>
1262                <a type="button" class="btn btn-default" data-dismiss="modal" id="cancelpanelfirst">Cancel</a>
1263
1264            </div>
1265        </div><!-- /.modal-content -->
1266    </div><!-- /.modal-dialog -->
1267</div>
1268
1269
1270<div id="confirm" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1271     data-backdrop="static">
1272    <div class="modal-dialog modal-md">
1273        <div class="modal-content">
1274            <div class="modal-header">
1275                <button type="button" class="close modal-close-btn" data-dismiss="modal" aria-label="Close">
1276                    <span aria-hidden="true">&times;</span>
1277                </button>
1278                <h4 class="modal-title" id="confirmModalTitle">Confirmation Message</h4>
1279            </div>
1280            <div class="modal-body">
1281                <p>Are you sure you want to continue?</p>
1282            </div>
1283            <div class="modal-footer">
1284                <a type="button" class="btn width_of_icon_search  btn-confirm-popup float-right" id="okBtn">OK</a>
1285                <a type="button" class="btn btn-cancel-popup  float-left" data-dismiss="modal" id="cancelBtn">Cancel</a>
1286
1287<!--                <a type="button" class="btn width_of_icon_search  btn-confirm-popup" id="okBtn">OK</a>-->
1288<!--                <a type="button" class="btn btn-default" data-dismiss="modal" id="cancelBtn">Cancel</a>-->
1289
1290            </div>
1291        </div><!-- /.modal-content -->
1292    </div><!-- /.modal-dialog -->
1293</div>
1294
1295
1296
1297    <div class="company_list_mobile" style="display: none;height: 0">
1298
1299        <div class="company-list-overlay"></div>
1300
1301        <div class="dropdown btn-group company_list_drop_down_mobile">
1302            <button type="button" data-toggle="dropdown" class="btn btn-danger dropdown-toggle">
1303                <i class="fa fa-building"></i></button>
1304            <ul class="dropdown-menu companies_list scrollable-menu" role="menu"
1305                aria-labelledby="dropdownMenu1">
1306
1307                <li role="presentation">
1308                    <a role="menuitem" tabindex="-1"
1309                                           href="https://admin.octopuspro.com/myOctopusPro">
1310                        <img style="width:40px;    margin-left: -10px;"
1311                                src="https://admin.octopuspro.com/pic/octlogo.png?v=1790862941"/>
1312                        My OctopusPro
1313                    </a>
1314                </li>
1315
1316
1317                <li class="divider"></li>
1318                
1319
1320            </ul>
1321        </div>
1322
1323    </div>
1324
1325<div class="modal fade" id="twilioModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static" style="z-index: 9999;">
1326    <div class="modal-dialog">
1327        <div class="modal-content">
1328
1329            <div class="modal-header">
1330                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1331                    <span aria-hidden="true">&times;</span>
1332                </button>
1333                <h4 class="modal-title" id="modal_title_twilio"></h4>
1334            </div>
1335
1336            <div class="modal-body">
1337                <div id="content_modal_popup_twilio" >
1338                </div>
1339            </div>
1340            <div class="modal-footer" style="display:none;"></div>
1341
1342        </div>
1343    </div>
1344</div>
1345
1346<div class="modal fade" id="newTwilioModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static" style="z-index:9999">
1347    <div id="directTwilioLoadFunction"></div>
1348
1349    <div class="modal-dialog">
1350        <div class="modal-content" >
1351
1352            <div class="modal-header">
1353                <button type="button" class="close"  onclick="closetwilioDialog()">
1354                    <span aria-hidden="true">&times;</span>
1355                </button>
1356            </div>
1357            <div class="modal-body">
1358
1359
1360                <div id="content_modal_popup_twilio">
1361                    <div class="user-info-numbers-area">
1362                        <div class="numbers-area">
1363
1364
1365                            <select id="calling_number_option" class="form-control" onchange="changeTwilioNumber(this)">
1366
1367                            </select>
1368                            <br/>
1369                            <div>
1370                                <input autocomplete="odgfdgff"  type="text" name="number" id="number" class="form-control" style="display:none "
1371                                    onkeyup="return isNumberKey(event)"/>
1372                                <!--                <input type="text"  class="form-control" id="manualNumberInput" onkeypress="allowNumbersOnly(this),changeNumber(this)" style="display: none"/>-->
1373                            </div>
1374
1375
1376                            <div id="warning"></div>
1377                        </div>
1378                        <div class="user-info">
1379                            <div>
1380
1381                                <label class="callee-name">
1382
1383                                </label>
1384                                <p class="callee-number">
1385                                </p>
1386                            </div>
1387                            <div>
1388                                <button type="button" class="btn btn-default btn-circle btn-xl btn-user-avatar" disabled>
1389                                    <i class="fa fa-user" aria-hidden="true"></i>
1390                                </button>
1391
1392                            </div>
1393                            <div>
1394                                <h2 id="call-time" style="display: none">
1395                                    <time>00:00:00</time>
1396                                </h2>
1397                            </div>
1398
1399
1400                        </div>
1401                    </div>
1402                </div>
1403
1404                <div class="pad-container">
1405
1406                    <div id="output"></div>
1407
1408                    <div class="row">
1409                        <div class="digit">1</div>
1410                        <div class="digit">2</div>
1411                        <div class="digit">3</div>
1412                    </div>
1413                    <div class="row">
1414                        <div class="digit">4</div>
1415                        <div class="digit">5</div>
1416                        <div class="digit">6</div>
1417                    </div>
1418                    <div class="row">
1419                        <div class="digit">7</div>
1420                        <div class="digit">8</div>
1421                        <div class="digit">9</div>
1422                    </div>
1423                    <div class="row">
1424                        <div class="digit">*</div>
1425                        <div class="digit">0</div>
1426                        <div class="digit">#</div>
1427                    </div>
1428
1429
1430                </div>
1431
1432            </div>
1433            <div class="modal-footer">
1434                <div class="row">
1435                    <span id="log"></span>
1436                </div>
1437                <div class="row">
1438                    <!--        <button type="button" class="btn btn-default btn-circle btn-lg">-->
1439                    <!--            <i class="fa fa-microphone"></i>-->
1440                    <!--        </button>-->
1441
1442                    <button disabled type="button" class="btn btn-default btn-circle btn-lg toggle-pad">
1443                        <img src="/dialpad.svg">
1444                    </button>
1445                    <button type="button" class="btn btn-default btn-circle btn-lg btn-mute" style="display: none;">
1446                        <i class="fa fa-microphone-slash" style="font-size: 22px !important;"></i>
1447                    </button>
1448
1449                    <button type="button" class="btn btn-default btn-circle btn-lg btn-call" id="start">
1450                        <i class="fa fa-phone" style="font-size: 22px !important;"></i>
1451                    </button>
1452                    <button type="button" class="btn btn-danger btn-circle btn-lg " id="stop" style="display: none;">
1453                        <i class="fa fa-phone" style="font-size: 22px !important;rotate:135deg !important;"></i>
1454                    </button>
1455                                        <button type="button" class="btn btn-default btn-circle btn-lg" id="manualNumber" onclick="toggleTwilioInput()">
1456                        <i class="fa fa-edit"></i>
1457                    </button>
1458                    
1459                </div>
1460
1461            </div>
1462        </div>
1463    </div>
1464
1465</div>
1466
1467
1468<div class="modal fade" id="callModal" tabindex="-1" role="dialog"
1469     aria-labelledby="exampleModalLabe5"
1470     data-backdrop="static"  style="z-index: 9999;">
1471    <div class="modal-dialog">
1472        <div class="modal-content">
1473            <div class="modal-header">
1474                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1475                    <span aria-hidden="true">&times;</span>
1476                </button>
1477                <h4 class="modal-title" > Calling
1478                    <span class="callee-name"></span>
1479                </h4>
1480            </div>
1481
1482            <div class="modal-body">
1483                <div  >
1484                </div>
1485            </div>
1486        </div>
1487    </div>
1488</div>
1489
1490<!-- START MOBILE WEB VIEW SCRIPT @AUTHOR AMR -->
1491<script id="mobile-web-view-script" type="text/javascript" src="https://admin.octopuspro.com//js/mobile_web_view/company_list.js?v=1790862941"
1492        data-style="https://admin.octopuspro.com//css/mobile_web/mobile_web_view.css?v=1790862941"></script>
1492
1493<!-- END MOBILE WEB VIEW SCRIPT @AUTHOR AMR -->
1494
1495<script type="text/javascript">
1496    (function() {
1497        'use strict';
1498
1499        var csrfToken = 'c5717776693726232a55195a19cec5088411677b90b1782744ede79984fa9b00';
1500
1501        $.ajaxPrefilter(function(options, originalOptions, jqXHR) {
1502            if (!options.type || options.type.toUpperCase() !== 'POST') {
1503                return;
1504            }
1505
1506            // Detect JSON requests (front-end APIs etc.)
1507            var contentType = options.contentType || originalOptions.contentType || '';
1508            var isJson = contentType.indexOf('application/json') !== -1;
1509
1510            // Detect FormData
1511            var isFormData = (typeof FormData !== 'undefined') &&
1512                (originalOptions.data instanceof FormData);
1513
1514            // --- 1) JSON requests: DO NOT touch body, send CSRF as header ---
1515            if (isJson) {
1516                options.headers = options.headers || {};
1517                if (!options.headers['X-CSRF-Token']) {
1518                    options.headers['X-CSRF-Token'] = csrfToken;
1519                }
1520                // very important: don't change options.data / processData here
1521                return;
1522            }
1523
1524            // --- 2) FormData: append field safely, keep processData/contentType false ---
1525            if (isFormData) {
1526                if (!originalOptions.data.has('csrf_token')) {
1527                    originalOptions.data.append('csrf_token', csrfToken);
1528                }
1529                options.data = originalOptions.data;
1530                options.processData = false;
1531                options.contentType = false;
1532                return;
1533            }
1534
1535            // --- 3) Normal form-encoded POSTs (x-www-form-urlencoded) ---
1536            if (!options.data) {
1537                // just token
1538                options.data = 'csrf_token=' + encodeURIComponent(csrfToken);
1539            } else if (typeof options.data === 'string') {
1540                // query-string style
1541                if (options.data.indexOf('csrf_token=') === -1) {
1542                    options.data += (options.data ? '&' : '') +
1543                        'csrf_token=' + encodeURIComponent(csrfToken);
1544                }
1545            } else if (typeof options.data === 'object') {
1546                // simple JS object (will be $.param'ed)
1547                if (!options.data.csrf_token) {
1548                    options.data.csrf_token = csrfToken;
1549                }
1550            }
1551
1552            if (options.processData === undefined) {
1553                options.processData = true; // let jQuery build query string
1554            }
1555        });
1556
1557        // Forms: still fine to inject hidden input
1558        $(document).on("submit", 'form', function(e) {
1559            var form = $(e.target);
1560
1561            if (form.attr('method') &&
1562                form.attr('method').toUpperCase() === 'POST'
1563            ) {
1564                if (form.find('input[name="csrf_token"]').length === 0) {
1565                    form.append(
1566                        '<input type="hidden" name="csrf_token" value="' + csrfToken + '" />'
1567                    );
1568                }
1569            }
1570        });
1571
1572        window.getCsrfToken = function() {
1573            return csrfToken;
1574        };
1575
1576        // Security fix: allow controlled CSRF token rotation from server responses
1577        // to prevent forced reload loops when token expires during active sessions.
1578        window.setCsrfToken = function(newToken) {
1579            if (!newToken || typeof newToken !== 'string') return;
1580            csrfToken = newToken;
1581            window.csrf_token = newToken;
1582            var csrfInputs = document.getElementsByName('csrf_token');
1583            for (var i = 0; i < csrfInputs.length; i++) {
1584                csrfInputs[i].value = newToken;
1585            }
1586        };
1587    })();
1588    /**
1589     * Global CSRF failure coordinator (mirrors nuxt/utils/v1/csrf/csrfGuard.ts)
1590     *
1591     * Handles all three backend CSRF error codes:
1592     *   ERR_CSRF_TOKEN_EXPIRED  → hotswap new token from response body (no reload)
1593     *   ERR_CSRF_TOKEN_INVALID  → page reload (up to MAX_CSRF_REFRESHES), then logout
1594     *   ERR_CSRF_TOKEN_MISSING  → same as INVALID
1595     *
1596     * Module-level singleton: state resets automatically on each full page load.
1597     */
1598    (function () {
1599        'use strict';
1600
1601        var _csrfHandlingInProgress = false;
1602        var CSRF_REFRESH_COUNT_KEY = 'csrf_refresh_count';
1603        var MAX_CSRF_REFRESHES = 3;
1604
1605
1606
1607        // ── Internal: hotswap an expired token from the response body into the
1608        // global csrf token holder. Returns true when successful — the next
1609        // request will use the fresh token with no page reload required.
1610        function tryHotswapExpiredToken(data) {
1611            if (!data || !data.csrf_token) return false;
1612            try {
1613                if (typeof window.setCsrfToken === 'function') {
1614                    window.setCsrfToken(data.csrf_token);
1615                    return true;
1616                }
1617            } catch (e) { /* ignore */ }
1618            return false;
1619        }
1620
1621        // ── Public: dispatch a CSRF failure response payload.
1622        function handleCsrfFailure(data) {
1623            if (_csrfHandlingInProgress) return;
1624            if (!data || typeof data !== 'object') return;
1625            var code = data.code;
1626            if (
1627                code !== 'ERR_CSRF_TOKEN_EXPIRED' &&
1628                code !== 'ERR_CSRF_TOKEN_INVALID' &&
1629                code !== 'ERR_CSRF_TOKEN_MISSING'
1630            ) {
1631                return;
1632            }
1633
1634            // Claim the guard BEFORE any branch so concurrent requests that
1635            // both receive the same failure don't each show a toast.
1636            _csrfHandlingInProgress = true;
1637
1638            // ── Expired: hotswap the new token the backend included in the body ──
1639            if (code === 'ERR_CSRF_TOKEN_EXPIRED') {
1640                var hotswapped = tryHotswapExpiredToken(data);
1641                if (hotswapped) {
1642                    try { sessionStorage.removeItem(CSRF_REFRESH_COUNT_KEY); } catch (e) { /* ignore */ }
1643                    console.warn('[CSRF] Token expired — hotswapped from response body. Please retry.');
1644                    $.notify('Your session token was refreshed. Please retry your last action.','error');
1645                    broadcastCsrfEvent('token_refresh', data.csrf_token);
1646                    setTimeout(function () { _csrfHandlingInProgress = false; }, 0);
1647                    return;
1648                }
1649                // Hotswap failed → fall through to reload path
1650            }
1651
1652            // ── Invalid / Missing / Expired-without-hotswap → reload or logout ──
1653            console.warn('[CSRF] Token invalid/missing — triggering recovery.', code);
1654
1655            var refreshCount = 0;
1656            try {
1657                refreshCount = parseInt(sessionStorage.getItem(CSRF_REFRESH_COUNT_KEY) || '0', 10) || 0;
1658            } catch (e) { /* ignore */ }
1659
1660            if (refreshCount >= MAX_CSRF_REFRESHES) {
1661                try { sessionStorage.removeItem(CSRF_REFRESH_COUNT_KEY); } catch (e) { /* ignore */ }
1662                $.notify('Your session could not be restored after multiple attempts. Please log in again.','error');
1663                broadcastCsrfEvent('logout');
1664                setTimeout(function () { window.location.href = '/logout'; }, 1500);
1665            } else {
1666                try { sessionStorage.setItem(CSRF_REFRESH_COUNT_KEY, Str
1666ing(refreshCount + 1)); } catch (e) { /* ignore */ }
1667                $.notify('Your temporary session has expired. We have refreshed the page to get you back on track. Please try your action again.','error');
1668                broadcastCsrfEvent('reload');
1669                setTimeout(function () { window.location.reload(); }, 500);
1670            }
1671        }
1672
1673        // ── BroadcastChannel: sync CSRF events across all open tabs ──
1674        var CSRF_BROADCAST_CHANNEL = 'octopus_csrf_sync';
1675
1676        function broadcastCsrfEvent(action, csrfToken) {
1677            try {
1678                if (typeof BroadcastChannel === 'undefined') return;
1679                var ch = new BroadcastChannel(CSRF_BROADCAST_CHANNEL);
1680                ch.postMessage({ action: action, csrf_token: csrfToken || null });
1681                ch.close();
1682            } catch (e) { /* ignore */ }
1683        }
1684
1685        // Listen for events broadcast by OTHER tabs
1686        if (typeof BroadcastChannel !== 'undefined') {
1687            (function () {
1688                var _syncChannel = new BroadcastChannel(CSRF_BROADCAST_CHANNEL);
1689                _syncChannel.addEventListener('message', function (event) {
1690                    var action   = event.data && event.data.action;
1691                    var newToken = event.data && event.data.csrf_token;
1692                    if (action === 'token_refresh' && newToken) {
1693                        if (typeof window.setCsrfToken === 'function') {
1694                            window.setCsrfToken(newToken);
1695                        }
1696                        console.info('[CSRF] Token refreshed from another tab via BroadcastChannel.');
1697                    } else if (action === 'reload') {
1698                        window.location.reload();
1699                    } else if (action === 'logout') {
1700                        window.location.href = '/logout';
1701                    }
1702                });
1703            })();
1704        }
1705
1706        // Expose for tests / manual invocation
1707        window.handleCsrfFailure = handleCsrfFailure;
1708        window.resetCsrfGuard = function () { _csrfHandlingInProgress = false; };
1709
1710        // 🔐 Global CSRF failure handler — inspect every ajax response.
1711        $(document).ajaxComplete(function (event, xhr, settings) {
1712            if (_csrfHandlingInProgress) return;
1713
1714            // Performance optimization:
1715            // Avoid JSON.parse on every successful JSON response. Most responses
1716            // are not CSRF errors — fast-path bail out via substring check.
1717            var response = xhr.responseJSON;
1718            if (!response) {
1719                var responseText = xhr.responseText;
1720                if (typeof responseText !== 'string' ||
1721                    (responseText.indexOf('ERR_CSRF_TOKEN_INVALID') === -1 &&
1722                     responseText.indexOf('ERR_CSRF_TOKEN_EXPIRED') === -1 &&
1723                     responseText.indexOf('ERR_CSRF_TOKEN_MISSING') === -1)
1724                ) {
1725                    return;
1726                }
1727                try {
1728                    response = JSON.parse(responseText);
1729                } catch (e) {
1730                    return;
1731                }
1732            }
1733
1734            handleCsrfFailure(response);
1735        });
1736
1737    })();
1738
1739</script>
1739
1740
1741
1742
1743<script>
1744
1745    $(document).ready(function () {
1746        // 1) Keep track of which icon's popover is open
1747        let currentPopover = null;
1748
1749        // 2) Single handler for clicking on any .spopover
1750        $(document).on('click', '.spopover', function(e) {
1751            e.stopPropagation();
1752            const $icon = $(this);
1753
1754            // a) If you clicked the already-open one → hide it & clear state
1755            if (currentPopover && currentPopover.is($icon)) {
1756                $icon.popover('hide');
1757                currentPopover = null;
1758                return;
1759            }
1760
1761            // b) Otherwise, hide any other that’s open
1762            if (currentPopover) {
1763                currentPopover.popover('hide');
1764            }
1765
1766            // c) Initialize this popover once
1767            if (!$icon.data('bs.popover')) {
1768                $icon.popover({
1769                    trigger: 'manual',
1770                    html:    true,
1771                    container:'body',
1772                    placement:'bottom',
1773                    title:   () => $icon.data('title') + ' <span class="close">&times;</span>',
1774                    content: () => $icon.data('content')
1775                });
1776            }
1777
1778            // d) Show this one and mark it as current
1779            $icon.popover('show');
1780            currentPopover = $icon;
1781        });
1782
1783        // 3) Click or tap **outside** any popover/icon → hide the open one
1784        $(document).on('click touchstart', function(e) {
1785            if (!$(e.target).closest('.popover, .spopover').length && currentPopover) {
1786                currentPopover.popover('hide');
1787                currentPopover = null;
1788            }
1789        });
1790
1791        // 4) Click the “×” inside the popover header → hide & clear state
1792        $(document).on('click', '.popover .close', function() {
1793            const $icon = $(this).closest('.popover').prev('.spopover');
1794            $icon.popover('hide');
1795            if (currentPopover && currentPopover.is($icon)) {
1796                currentPopover = null;
1797            }
1798        });
1799
1800        if($.hasOwnProperty('notify')){
1801            $.notify.defaults({position: "left bottom"});
1802        }
1803
1804        $(".only-integer").on("keypress keyup blur",function (event) {
1805            $(this).val($(this).val().replace(/[^0-9\.]/g,''));
1806            if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
1807                event.preventDefault();
1808            }
1809        });
1810        $(".only-decimal").on("keypress keyup blur",function (event) {
1811            $(this).val($(this).val().replace(/[^\d].+/, ""));
1812            if ((event.which < 48 || event.which > 57)) {
1813                event.preventDefault();
1814            }
1815        });
1816        $(".nav-header").removeClass("active");
1817        
1818
1819        $("#cambtn").click(function () {
1820            $("#company_upload_pic").click();
1821        });
1822
1823
1824        $('#company_upload_pic').change(function () {
1825
1826            if ($('#company_upload_pic').get(0).length != 0) {
1827
1828                $("#loader_view").css('display', 'block');
1829                $("#imgcompany").ajaxForm(
1830                    {
1831                        target: '#previewPicComapny',
1832                        success: function (data) {
1833                            $("#loader_view").css('display', 'none');
1834                            $(".logo-element").html('<span>' + data + '</span>');
1835                        }
1836                    }).submit();
1837
1838            }
1839        });
1840
1841
1842    });
1843
1844
1845    var fullUrl = window.location.href;
1846    //console.log("fullUrl = " + fullUrl + " length = $("a[href='/"' + fullUrl + '"']")" + $("a[href='/" + fullUrl + "']").length);
1847    //$("a[href='/" + fullUrl + "']").css('color','white');
1848    var urlType = window.location.href.split('?')[0].split("/");
1849    if (urlType[3] == 'item-attachment' && urlType[4] == 'booking') {
1850        urlType[3] = 'booking';
1851        urlType[4] = 'undefined';
1852    }
1853    $("li.active").has("ul").removeClass('active');
1854    //
1855    if (urlType[3] == 'settings' || urlType[3] == 'contractor' || urlType[3] == 'reports' || urlType[3] == 'item-attachment' && urlType[4] == 'service') {
1856        if (typeof (urlType[4]) != 'undefined') {
1857            var settingsType = urlType[4].split("-");
1858            if (urlType[4] == 'custom-field-value') {
1859                $("li").has("ul li a[href*='/service']").parents('li').addClass("active");
1860                $("li").has("ul li a[href*='/service']").closest('ul').css("height", "auto");
1861
1862                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1863            } else if (urlType[3] == 'contractor') {
1864                $("li").has("ul li a[href*='/contractor-']").parents('li').addClass("active");
1865                $("li").has("ul li a[href*='/contractor-']").closest('ul').css("height", "auto");
1866
1867                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1868            } else if (urlType[3] == 'fieldworkers') {
1869                $("li").has("ul li a[href*='/fieldworker-']").parents('li').addClass("active");
1870                $("li").has("ul li a[href*='/fieldworker-']").closest('ul').css("height", "auto");
1871
1872                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1873            }
1874            else if (settingsType[0] != 'booking') {
1875                $("li").has("ul li a[href*='/" + urlType[3] + "/" + settingsType[0] + "']").parents('li').addClass("active");
1876                $("li").has("ul li a[href*='/" + urlType[3] + "/" + settingsType[0] + "']").closest('ul').css("height", "auto");
1877
1878                if (urlType[4] == 'booking_summary') {
1879                    $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "?']").css('color', 'white');
1880                }
1881                else {
1882                    $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1883                }
1884
1885            }
1886        }
1887    } else {
1888        $("li").has("ul li a[href*='/" + urlType[2] + '/' + urlType[3] + "']").parents('li').addClass("active");
1889    }
1890
1891    //when viewing the system from mobile view, the left menu is collapsed, so there is no point getting the menu item counts (until someone clicks on one of the menu items) but no point getting it if it's collapsed
1892    // if($(window).width() > 768){
1893    //     getCounts(urlType[3]);
1894    // }
1895
1896    $(".settings-parts").on('click', function () {
1897        /*$(this).closest('ul').siblings().children(".settings-parts").removeClass('active');
1898        $(this).closest('ul').siblings().children(".settings-parts").find('ul').css('height', '0px');
1899        $(this).closest('ul').siblings().children(".settings-parts").find('ul').removeClass('in');*/
1900        $(this).siblings(".settings-parts").removeClass('active');
1901        $(this).siblings(".settings-parts").children("ul").css('height', '0px');
1902        $(this).siblings(".settings-parts").children("ul").removeClass('in');
1903        $(this).find('ul').css('height', 'auto');
1904        //$(this).siblings('.progress-show').children('.currTime').text('111111');
1905        /*$(this).removeClass('settings-parts');
1906        $(".settings-parts").removeClass('active');
1907        $(".settings-parts").closest().css('height','0px');
1908        $(this).addClass('settings-parts');*/
1909        /*var elems = $(this).closest('ul').siblings().children(".settings-parts");
1910
1911        for(var elem in elems){
1912            console.log(elem);
1913        }
1914        $(this).closest().siblings().children(".settings-parts").removeClass('active')*/
1915        //console.log("siblings = " +  $(".settings-parts").siblings(".settings-parts").removeClass('active'));
1916        //$(".settings-parts").siblings(".settings-parts").removeClass('active')
1917        //$(".settings-parts").siblings().removeClass('active');
1918    });
1919
1920    function getCounts(urlType) {
1921        if (urlType == 'recently-updated' || urlType == 'awaitingAccept-booking' || urlType == 'unapproved-booking' || urlType == 'awaitingUpdate-booking') {
1922            urlType = 'booking';
1923        }
1924
1925        if (urlType == 'refund' || urlType == 'payment') {
1926            urlType = 'invoices';
1927        }
1928
1929        $.ajax({
1930            type: "GET",
1931            dataType: "JSON",
1932            url: "https://admin.octopuspro.com/ajax/getItemCounts",
1933            data: {'type': urlType},
1934            success: function (result) {
1935                $.each(result, function (key, data) {
1936                    if ($('#' + key).find('span.label').length > 0) {
1937                        $('#' + key).find('span.label').remove();
1938                    }
1939                    $('#' + key).append('<span class="label label-' + data.color + ' pull-right" style="display:inline-block">' + data.count + '</span>');
1940                });
1941                if (urlType == 'booking') {
1942                    getCounts('booking1');
1943                }
1944
1945            }
1946        });
1947
1948
1949    }
1950
1951    $(document).on('#side-menu li','click',function () {
1952        var $type = $(this).attr('data-target');
1953        if (typeof $type !== typeof undefined && $type !== false) {
1954            if (!($(this).find('span.label').length > 0)) {
1955                getCounts($type);
1956
1957            }
1958        }
1959    });
1960
1961
1962    $('#side-menu li').hover(function () {
1963        if ($('body').hasClass('mini-navbar')) {
1964            var $type = $(this).attr('data-target');
1965            if (typeof $type !== typeof undefined && $type !== false) {
1966                if (!($(this).find('span.label').length > 0)) {
1967                    getCounts($type);
1968
1969                }
1970            }
1971        }
1972
1973    });
1974
1975
1976
1977    $("#spacelogo").hover(
1978        function () {
1979            // $("#cambtn").css( 'display' , 'block' );
1980            $("#cambtn").fadeIn(500);
1981        }, function () {
1982            // $("#cambtn").css( 'display' , 'none' );
1983            $("#cambtn").fadeOut(500);
1984        }
1985    );
1986
1987
1988    $("#gotNewBooking").on('click', function () {
1989        $('#createNewButtonModal').modalPopover('hide');
1990        $("#first-create-new").attr('data-toggle', 'dropdown');
1991        $("#first-create-new").removeAttr('href');
1992        $("#first-create-new").removeAttr('data-placement');
1993        $("#first-create-new").html('New <span class="caret"></span>');
1994    });
1995    /*$("#gotViewDemo").on('click', function(){
1996        $('#viewDemoModal').modalPopover('hide');
1997        $("#viewDemo").removeAttr('href');
1998        $("#viewDemo").removeAttr('data-placement');
1999        $("#viewDemo").removeAttr('data-toggle');
2000    });*/
2001    $("#gotSideMenu").on('click', function () {
2002        $('#sideMenuModal').modalPopover('hide');
2003        $("#inquiriesListItem").attr('data-target', 'inquiry');
2004        $("#inquiriesListItem").removeAttr('href');
2005        $("#inquiriesListItem").removeAttr('data-placement');
2006        $("#inquiriesListItem").removeAttr('data-toggle');
2007    });
2008
2009        $("#settings-item").on('click', function () {
2010        if (!$(this).hasClass('active')) {
2011            $(".settings-parts").removeClass('active');
2012            $(".settings-parts").find('ul').css('height', '0px');
2013            $(".settings-parts").find('ul').removeClass('in');
2014        }
2015    });
2016    $("#reports-item").on('click', function () {
2017        if (!$(this).hasClass('active')) {
2018            $(".settings-parts").removeClass('active');
2019            $(".settings-parts").find('ul').css('height', '0px');
2020            $(".settings-parts").find('ul').removeClass('in');
2021        }
2022    });
2023    $(document).on("click", "#cat-button", function () {
2024        $("#form-cat").submit();
2025    });
2026
2027
2028    $(function(){
2029        $('#nav ul li')
2030            .css({cursor: "pointer"})
2031            .on('click', function(){
2032                $(this).find('ul').toggle();
2033            })
2034    })
2035    /**
2036     * hide and show the nav-bar
2037     * @author Amr
2038     */
2039    function toggleNavBar(){
2040        var navBar = $('#bodyhight');
2041        if(navBar.hasClass('mini-navbar')){
2042            navBar.removeClass('mini-navbar');
2043            return;
2044        }
2045
2046        console.error('Side bar ', $('.vue-sidebar').innerText)
2047
2048        $('html,body').animate({ scrollTop: 0 }, 'slow');
2049        navBar.addClass('mini-navbar');
2050
2051    }
2052
2053
2054    function openSendInternalMessagePopup(){
2055        $("#GLOBAL_MESSAGE_MODAL").modal('show');
2056    }
2057
2058
2059
2060    var changeTheDirectionOfArrow = (function(){
2061
2062
2063        var menu = null;
2064
2065        const ARROW_CLASS = 'arrow'
2066
2067        const RIGHT_ANGLE = 'fa-angle-right'
2068
2069        function __readDom(){
2070            menu = $('#side-menu')
2071        }
2072
2073        function changeDirection(){
2074            var listItem = menu.find('li')
2075            $.each(listItem , function(){
2076                var arrow = __getArrow($(this));
2077                __updateArrow(arrow);
2078            })
2079        }
2080
2081        function __getArrow(item){
2082            return item.find('span.fa.arrow');
2083        }
2084
2085        function __updateArrow(item){
2086            item.removeClass(ARROW_CLASS)
2087            item.addClass(RIGHT_ANGLE)
2088            item.css({float : "right"})
2089        }
2090
2091        __readDom();
2092        return {
2093            changeDirection : changeDirection
2094        }
2095
2096    })()
2097
2098    $(function(){
2099        changeTheDirectionOfArrow.changeDirection();
2100    })
2101
2102
2103    var count = 0;
2104
2105    $(".digit").on('click', function() {
2106    var num = ($(this).clone().children().remove().end().text());
2107    if (count < 11) {
2108        $("#output").append('<span>' + num.trim() + '</span>');
2109        count++
2110    }
2111    });
2112
2113
2114    $(document).ready(function(){
2115        var collapsedMenu = $('ul#side-menu').find('.collapse.in');
2116        $.each($('body').find('ul.nav.nav-second-level.for-dashboard.collapse.in'), function(){
2117            $(this).removeClass('in');
2118        })
2119    })
2120
2121
2122    // hide tooltips if data-toggle = tooltip is exict only added by Ezzat
2123    $('.modal').on('shown.bs.modal', function (e) {
2124        if ($(this).attr('data-toggle') === 'tooltip'){
2125                $(e.target).tooltip('hide');
2126        }
2127        $(".pad-container").hide();
2128        $(".user-info-numbers-area").show();
2129        $('.toggle-pad').attr('disabled',true);
2130        $("#output").html('');
2131    });
2132</script>
2132
2133
2134
2135<input type="hidden" id="current_element"/>
2136<input type="hidden" id="ViewHelperVersion" value="1790862941"/>
2137<input type="hidden" id="country_code" value=""/>
2138
2139<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"1c7ac89166","applicationID":"1537129101","transactionName":"ZVMGYEACWUVXURdZC1wZJVdGClhYGVYGVgVHWhAbWw1TU04dCl4AV04=","queueTime":0,"applicationTime":224,"atts":"SRQFFggYSks=","errorBeacon":"bam.nr-data.net","agent":""}</script>
2139<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a43c16679b0c1bd1',t:'MTc5MDg2NDIxMQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2139<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"84b52bd1c32e47f29ca58a54f1d5b59e","r":1,"spa":2}' crossorigin="anonymous"></script>
2139
2140</body>
2141<script type="text/javascript" src="https://media.twiliocdn.com/sdk/js/client/releases/1.7.7/twilio.min.js"></script>
vendor: 1 bytes, line 2141
2141
2142<script>
vendor: 363 bytes, lines 2142-2148
2142
2143    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
2144        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
2145        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
2146    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
2147
2148    ga('create', '
2148UA-92690224-1
vendor: 41 bytes, lines 2148-2150
2148', 'auto');
2149    ga('send', 'pageview');
2150
2151</script>
vendor: 1 bytes, line 2151
2151
2152<script type="text/javascript" src="https://admin.octopuspro.com/js/common/confirmation_popup.js?v=1790862941"></script>
2152
2153<!-- S3 uploader -->
2154<script src="https://admin.octopuspro.com/js/s3_uploader.js?v=1790862941" type="text/javascript"></script>
vendor: 1 bytes, line 2154
2154
2155<script rel="" src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script>
2155
2156
2157
2158<!-- S3 upload Files -->
2159<!--
2159<script src="--><!--?v=--><!--" type="text/javascript"></script>
2159-->
2160<script src="https://admin.octopuspro.com/js/js_updated16.js?v=1790862941" type="text/javascript"></script>
2160
2161<!--Aws Uploader -->
2162<!--
2162<script rel="preload" src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script>
2162-->
2163<!-- LOAD TRANSLATIONS OBJECT START @AUTHOR AMR -->
2164
2165<script src="https://admin.octopuspro.com/js/_trans/languages/en.js"
2166        type="text/javascript"></script>
2166
2167<!-- LOAD TRANSLATIONS OBJECT END @AUTHOR AMR 2 -->
2168<script src="https://admin.octopuspro.com/js/_trans/trans.js"
2169        type="text/javascript"></script>
2169
2170    
2170<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
2170
2171
2172<script src="/js/octopus-translate.js" type="text/javascript"></script>
2172
2173
2174<script rel="preload" id="tinymceScript" src="/js/tinymce_8.4.0/tinymce.min.js"></script>
vendor: 1 bytes, line 2174
2174
2175<script>
2176    tinymce.init({
2177        license_key: 'gpl',
2178        selector: '.mceEditor',  // change this value according to your HTML
2179        plugin: 'a_tinymce_plugin',
2180        a_plugin_option: true,
2181        a_configuration_option: 400,
2182        setup: function(editor) {
2183            editor.on('change', function(e) {
2184                editor.save();
2185                window.onbeforeunload = null;
2186            });
2187        }
2188    });
2189</script>
2189
2190
2191</html>
2192<script>
2193<!--    -->//
2194//    $(window).on('load', function() {
2195//
2196//        loadScript("/dist/js/manifest.js?v=//");
2197//        loadScript("/dist/js/vendor.js?v=//");
2198//        loadScript("/dist/js/main.js?v=//");
2199//
2200//
2201//    });
2202    function loadScript(src,isModule = false) {
2203        return new Promise(function (resolve, reject) {
2204            if ($("script[src='" + src + "']").length === 0) {
2205                var script = document.createElement('script');
2206                script.onload = function () {
2207                    resolve();
2208                };
2209                script.onerror = function () {
2210                    reject();
2211                };
2212                script.src = src;
2213                if(isModule){
2214                    script.type = 'module';
2215                }
2216                document.body.appendChild(script);
2217            } else {
2218                resolve();
2219            }
2220        });
2221    }
2222
2223    $("#send_verification_email").on("click", function() {
2224        $.ajax({
2225            type: "POST",
2226
2227            url: "https://admin.octopuspro.com/settings/send-verification-ses-custom-email",
2228            success: function (data) {
2229                location.reload();
2230            }
2231        });
2232    })
2233
2234
2235    $( "#page-wrapper" ).on("click", function() {
2236        // $(".nav li").removeClass("active");
2237    })
2238        $(document).ready(function () {
2239            $('#search-btn ').click(function () {
2240                if ($(this).next().is(':visible')) {
2241                    $(this).next().hide();
2242                } else {
2243                    $(this).next().show();
2244                    $(this).next().find('input[type=text]').focus();
2245                }
2246            });
2247        });
2248
2249    $(function(){
2250        $('.jq-toast-wrap .jq-toast-heading').hide();
2251
2252
2253        let customerPortalActiveLinkHrefs = $('.customer-portal-active-link li a');
2254        const currentUrl = window.location.href;
2255        customerPortalActiveLinkHrefs.each( function (){
2256                if( $(this).attr('href') !== currentUrl){
2257                    $(this).attr('style', 'color: #a7b1c2 !important');
2258                }
2259        });
2260
2261        // Twilio.Device.on('incoming', (call) => {
2262        //     $(".pad-container").show();
2263        //     call.on('disconnect', (call) => {
2264        //         $(".pad-container").hide();
2265        //     });
2266        // });
2267
2268        // $('.btn-call').on("click",function(){
2269        //     $(".pad-container").toggle();
2270        //     $(".user-info-numbers-area").toggle();
2271        //     $('.toggle-pad').removeAttr('disabled');
2272        // });
2273
2274
2275        $('.toggle-pad').on("click",function(){
2276            $(".pad-container").toggle();
2277            $(".user-info-numbers-area").toggle();
2278        });
2279
2280        $('.pad-container .digit').on('click',function(){
2281            var connection = Twilio.Device.activeConnection();
2282            if(connection) {
2283                connection.sendDigits($(this).text());
2284            }
2285        })
2286
2287
2288    });
2289
2290</script>
2290
2291
2292<style>
2293    .custom-design-new{
2294        padding: 15px 30px 15px 30px;
2295    }
2296    .custom-design-new:before
2297    {
2298        content: unset;
2299    }
2300    @media (max-width: 991px) {
2301        .custom-design-new {
2302            padding: 10px !important;
2303        }
2304    }
2305    .custom-design-new:after
2306    {
2307        content: unset;
2308    }
2309
2310    .new-save-btn {
2311        border-radius: 8px !important;
2312        padding: 12px 16px !important;
2313        font-family: 'Roboto', serif !important;
2314        font-style: normal !important;
2315        font-weight: 500 !important;
2316        font-size: 16px !important;
2317        line-height: 16px !important;
2318        text-align: center !important;
2319        color: #ffffff !important;
2320        background: #2e4051 !important;
2321    }
2322    .new-cancel-btn {
2323        background-color: white !important;
2324        color: black !important;
2325        border-color: black !important;
2326        border-radius: 8px !important;
2327        padding: 12px 16px !important;
2328        font-family: 'Roboto', serif !important;
2329        font-style: normal !important;
2330        font-weight: 500 !important;
2331        font-size: 16px !important;
2332        line-height: 16px !important;
2333        text-align: center !important;
2334    }
2335    .justify-content-between{
2336        justify-content: space-between;
2337    }
2338    .d-flex{display: flex}
2339    .align-center{
2340        align-items: center;
2341    }
2342    .position-relative{
2343        position: relative;
2344        font-family: 'Roboto', sans-serif;
2345
2346    }
2347    .custom-style{
2348        position: absolute !important;
2349        top:10px !important;
2350        right:10px !important;
2351        margin-right:0 !important;
2352    }
2353    #address_Modal_admin .gm-style-iw{
2354        display: flex !important;
2355        max-height: 40px!important;
2356        align-items: center;
2357        flex-direction: row-reverse;
2358        padding-left: 0.07% !important;
2359    }
2360    @media (max-width: 768px) {
2361        .modal-body.edit_padd_contractor_pop .p-bottom-60-mob {
2362            padding: 12px !important;
2363        }
2364    }
2365</style>
2366<div class="modal fade" id="address_Modal_admin" role="dialog" data-backdrop="static" >
2367    <div class="modal-dialog">
2368
2369        <form  id="address_form" class="form-horizontal" method="get" onsubmit="fillPlace(0,null,0,1);" autocomplete="odgfdgff" >
2370            <!-- Modal content-->
2371            <div class="modal-content h-fit-content" >
2372                <div class="modal-header">
2373                    <button type="button" class="close close_map"  data-dismiss="modal">&times;</button>
2374                    <h4 class="modal-title" id="addressModalTitle" style="text-align: center;font-weight: bold;"> Please confirm location by dragging the marker on the map </h4>
2375                </div>
2376                <div style="padding-bottom: 0px;" class="modal-body">
2377                    <div  class="alert-address alert-danger welcome-alert" role="alert" style="display: none;margin-bottom: 5px;"></div>
2378                    <div id="customerResult"></div>
2379                    <div class="row p-bottom-24 p-right-8 p-left-8 "  id="modal_components" >
2380                        <div class="form-group">
2381                            <div class="col-md-12">
2382                            <div class="inline col-md-12 col-xs-12 no-padding">
2383                                <input  autocomplete="odgfdgff" class=" Location_details_input text_input form-control change-google-location"  placeholder="Tag e.g. Home" name="marker_label[]"   type="text" value="" id="marker_label"/>
2384                            </div>
2385                                                         </div>
2386                        </div>
2387                        <div class="form-group">
2388                            <div class="col-md-12">
2389
2390                            <div class="inline col-md-2 col-xs-6 ipad_locations_inputs_style  ">
2391
2392
2393                                <input  autocomplete="odgfdgff" class=" Location_details_input text_input form-control change-google-location"  auto_fill="subpremise" placeholder="Unit / Lot No." name="unit_lot_number[]"   type="text" value="" id="unit_lot_number"/>
2394
2395                            </div>
2396
2397                            <div class="inline  col-md-5 col-xs-6 ipad_locations_inputs_style ">
2398
2399
2400                                <input    class=" Location_details_input text_input form-control change-google-location update_address_from_component" real-val="" placeholder="Address line 1" auto_fill="street_number" name="street_number[]"   type="text" value="" id="street_number"  autocomplete="odgfdgff" />
2401                            </div>
2402
2403                            <div class="inline col-md-5 col-xs-12  ">
2404
2405                                <input    class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="street_address[]" auto_fill="route"  real-val=""  placeholder="Address line 2"   type="text" value="" id="street_address" autocomplete="odgfdgff" />
2406
2407                            </div>
2408
2409                        </div>
2410                    </div>
2411
2412
2413                    <div class="form-group ">
2414
2415                        <div class="col-md-12  ">
2416
2417                            <div class="inline col-md-4 col-xs-6 ipad_locations_inputs_style">
2418                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="suburb[]" placeholder="Suburb / Locality" auto_fill="locality"   real-val=""  type="text" value="" id="suburb"  autocomplete="odgfdgff" /><!--required-->
2419                            </div>
2420
2421                            <div class="inline col-md-4 col-xs-6 ">
2422                                <input  class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="postcode[]" auto_fill="postal_code"  real-val=""  placeholder="Postal / Zip code" type="text"  value="" id="postcode"   autocomplete="odgfdgff" />
2423                            </div>
2424
2425                            <div class="inline col-md-4 col-xs-6  ipad_locations_inputs_style">
2426                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="country[]" auto_fill="
2426country" placeholder="country"   type="hidden"  value="" id="country"   autocomplete="odgfdgff" />
2427                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="time_zone[]" auto_fill="time_zone" placeholder="time_zone"   type="hidden"  value="" id="time_zone"   autocomplete="off" />
2428                            </div>
2429                            <div class="inline col-md-4 col-xs-12  " id="display_state">
2430                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="state[]" placeholder="State" auto_fill="state"   type="text" value=""   autocomplete="odgfdgff" /><!--required-->
2431                            </div>
2432                        </div>
2433
2434                    </div>
2435
2436
2437<div class="col-xs-12 ">
2438                        <label for="autocomplete" style="font-family: 'Roboto';font-style: normal;font-weight: 600;font-size: 16px;line-height: 24px;color: #2E4051;" class="Url_label_vue"> Url</label>
2439
2440                        <input class="text_input form-control auto p-all-15 Location_details_input" id="autocomplete" link-to-address ="1"
2441                               placeholder="Link to address"    autocomplete="odgfdgff" name="fullAddress[]" type="text" value=""/>
2442</div>
2443                    </div>
2444
2445                    <div class="row" style="padding: 0px">
2446                        <div class="col-md-12 modal_body_map" style="padding: 7px">
2447                            <div class="location-map 22" id="location-map-admin">
2448                            <div id="map_canvas" style="height: 400px;"></div>
2449                            </div>
2450                        </div>
2451                    </div>
2452
2453                </div>
2454                <div class="form-group col-md-12 parent-lat-lon-alignment">
2455                    <div class="col-md-12 lat-lon-alignment">
2456                        <div class="inline col-md-4 col-xs-6 p-left-0">
2457                            <input   autocomplete="odgfdgff" style=" color: #000000;  background-color: #ffffffd9;  "  class=" Location_details_input text_input form-control change-google-location"  onchange="autocompleteByLatLon('' , undefined  , $(event.target).attr('id'))" name="lat[]" auto_fill="lat" required placeholder="Latitude"   type="text" value="" id="lat" /><!--required-->
2458                        </div>
2459
2460                        <div class="inline col-md-4 col-xs-6 padding-left-no-right">
2461                            <input  autocomplete="odgfdgff" style=" color: #000000;  background-color: #ffffffd9; "    class=" Location_details_input text_input form-control change-google-location"  onchange="autocompleteByLatLon('' , undefined  , $(event.target).attr('id'))" name="lon[]" auto_fill="lng" required placeholder="Longitude"  type="text"  value="" id="lon" />
2462                        </div>
2463                    </div>
2464                </div>
2465
2466                <div class="modal-footer h-fit-content" >
2467                            <div id="button_container" class="h-fit-content">
2468                                    <button   type="submit" class="width_of_icon_search float-right btn-confirm-popup" >   Save changes </button>
2469                                    <button    class="close_map btn-cancel-popup  change-p-y  float-left"  data-dismiss="modal"   >   Cancel </button>
2470                            </div>
2471
2472                    </div>
2473                 </div>
2474            </div>
2475        </form>
2476    </div>
2477<style>
2478    .ts-dropdown, .ts-dropdown.form-control, .ts-dropdown.form-select{
2479        background-color: #ffffff !important;
2480    }
2481    .change-p-y{
2482        padding: 12px 26px !important;
2483    }
2484    .padd-left-0{
2485        padding-left: 0 !important;
2486    }
2487
2488</style>
2489<script>
2490        $(document).ready(function () {
2491
2492            document.body.addEventListener('click', function (event) {
2493                if (event.target.closest('a[data-target="#create_edit_customer_popup"]')) {
2494                    event.preventDefault();
2495                    // Get the value of data-target attribute
2496                    var dataTarget = this.getAttribute('data-target');
2497                    VueEventBus.$emit('openModalCustomer');
2498                    // Do something with the data-target value
2499                    console.log('Data Target:', dataTarget);
2500                }
2501            });
2502
2503        });
2504
2505
2506</script>
2506
2507
2508
2509<div class="vue3-component" id="modals"></div>
2510<script src="https://admin.octopuspro.com/js/disable-autocomplete.js?v=1790862941" type="text/javascript"></script>
2510
2511<style>
2512
2513
2514    /* Address-update styling is scoped so other shared confirm usages stay unchanged. */
2515    #confirm.address-update-confirm .modal-dialog {
2516        width: 840px;
2517        max-width: calc(100% - 32px);
2518        margin: 20px auto;
2519    }
2520    #confirm.address-update-confirm .modal-content {
2521        border: 0;
2522        border-radius: 4px;
2523        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
2524        overflow: hidden;
2525    }
2526    #confirm.address-update-confirm .modal-header {
2527        position: relative;
2528        padding: 22px 16px 20px;
2529        border-bottom: 1px solid #e5e5e5;
2530    }
2531    #confirm.address-update-confirm .modal-title {
2532        margin: 0;
2533        padding-right: 30px;
2534        font-size: 31px;
2535        font-weight: 700;
2536        line-height: 1.2;
2537        color: #34495e;
2538    }
2539    #confirm.address-update-confirm .modal-body {
2540        padding: 28px 16px 26px !important;
2541    }
2542    #confirm.address-update-confirm .modal-body p,
2543    #confirm.address-update-confirm .confirm-message-text {
2544        margin: 0;
2545        font-size: 16px;
2546        line-height: 1.6;
2547        color: #6d737a;
2548    }
2549    #confirm.address-update-confirm .modal-footer {
2550        display: flex;
2551        justify-content: space-between;
2552        align-items: center;
2553        gap: 12px;
2554        padding: 0 16px 20px;
2555        border-top: 0 !important;
2556    }
2557    #confirm.address-update-confirm .modal-footer::before,
2558    #confirm.address-update-confirm .modal-footer::after {
2559        display: none;
2560    }
2561    #confirm.address-update-confirm .modal-footer .col-lg-3,
2562    #confirm.address-update-confirm .modal-footer .col-md-4,
2563    #confirm.address-update-confirm .modal-footer .col-xs-5 {
2564        float: none;
2565        width: auto;
2566        padding: 0;
2567    }
2568    #confirm.address-update-confirm .modal-close-btn {
2569        position: absolute;
2570        top: 16px;
2571        right: 16px;
2572        width: auto;
2573        height: auto;
2574        padding: 0;
2575        border: 0;
2576        background: transparent;
2577        color: #cfcfcf;
2578        font-size: 32px;
2579        font-weight: 400;
2580        line-height: 1;
2581        opacity: 1;
2582        text-shadow: none;
2583        transition: color 0.2s ease;
2584    }
2585    #confirm.address-update-confirm .modal-close-btn:hover,
2586    #confirm.address-update-confirm .modal-close-btn:focus {
2587        background: transparent;
2588        color: #98a2ad;
2589        outline: none;
2590    }
2591    #confirm.address-update-confirm .confirm-modern-btn {
2592        display: inline-flex;
2593        justify-content: center;
2594        align-items: center;
2595        min-width: 132px;
2596        height: 42px;
2597        padding: 0 22px;
2598        border-radius: 8px;
2599        border: 1px solid transparent;
2600        font-size: 15px;
2601        font-weight: 600;
2602        text-decoration: none;
2603        box-shadow: none;
2604        transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
2605    }
2606    #confirm.address-update-confirm .confirm-modern-btn:hover,
2607    #confirm.address-update-confirm .confirm-modern-btn:focus {
2608        text-decoration: none;
2609        outline: none;
2610    }
2611    #confirm.address-update-confirm .confirm-modern-btn-secondary {
2612        background: #ffffff;
2613        border-color: #d4d9de;
2614        color: #4f5965;
2615    }
2616    #confirm.address-update-confirm .confirm-modern-btn-secondary:hover,
2617    #confirm.address-update-confirm .confirm-modern-btn-secondary:focus {
2618        background: #f8fafb;
2619        border-color: #c8d0d8;
2620        color: #34495e;
2621    }
2622    #confirm.address-update-confirm .confirm-modern-btn-primary {
2623        background: #34495e;
2624        border-color: #34495e;
2625        color: #ffffff;
2626    }
2627    #confirm.address-update-confirm .confirm-modern-btn-primary:hover,
2628    #confirm.address-update-confirm .confirm-modern-btn-primary:focus {
2629        background: #2c3e50;
2630        border-color: #2c3e50;
2631        color: #ffffff;
2632    }
2633    .modal-backdrop.in.address-update-backdrop {
2634        opacity: .55;
2635        background: #666666;
2636    }
2637    @media only screen and (max-width: 767px) {
2638        #confirm.address-update-confirm .modal-dialog {
2639            width: auto;
2640            max-width: none;
2641            margin: 18px 14px;
2642        }
2643        #confirm.address-update-confirm .modal-header {
2644            padding: 18px 14px 16px;
2645        }
2646        #confirm.address-update-confirm .modal-title {
2647            font-size: 24px;
2648            padding-right: 24px;
2649        }
2650        #confirm.address-update-confirm .modal-body {
2651            padding: 22px 14px 20px !important;
2652        }
2653        #confirm.address-update-confirm .modal-footer {
2654            padding: 0 14px 16px;
2655            flex-direction: column-reverse;
2656            align-items: stretch;
2657        }
2658        #confirm.address-update-confirm .confirm-modern-btn {
2659            width: 100%;
2660            min-width: 0;
2661        }
2662        #confirm.address-update-confirm .modal-close-btn {
2663            top: 12px;
2664            right: 12px;
2665        }
2666    }
2667    .custom-m-top-0{
2668        margin-top: 0px !important;
2669    }
2670    .modal-header{
2671        padding: 16px 20px !important;
2672    }
2673    #confirm .modal-dialog.modal-md{width: 65% !important;}
2674    #popupi .modal-dialog.modal-md{width: 65% !important;}
2675    @media (max-width: 1440px) {
2676        #confirm .modal-dialog.modal-md{width:  80%  !important;}
2677        #popupi .modal-dialog.modal-md{width:  80%  !important;}
2678    }
2679    @media (max-width: 768px) {
2680        #confirm .modal-dialog.modal-md{width: auto !important;}
2681        #popupi .modal-dialog.modal-md{width: auto !important;}
2682    }
2683</style>

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.