PageSourceSearch

https://smartout.ai/

html smartout.ai collected 2026-10-05 15:06:02 UTC 36,968 bytes, 698 lines download raw bytes

1<!doctype html>
2<html lang="no">
3<head>
4<meta charset="utf-8">
5
6<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
8<title>Smartout</title>
9<script type="text/javascript">
10    window.bubble_session_uid = '1791212760491x731083496923379500';
11</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript">
13    window.headers_source_maps = [["plugin_main_headers_1515787032525x876315403042684900",220,222],["plugin_main_headers_1540857498064x563539974936330200",223,226],["plugin_main_headers_1552401463205x225714219237769200",227,234],["plugin_main_headers_1580238841425x582072028873097200",235,266],["plugin_main_headers_1582601241392x653181519983018000",267,268],["plugin_main_headers_1618916043803x877032991371296800",269,486],["plugin_main_headers_1661717622628x490300288223674400",487,494],["custom_app_header",496,544]]
14</script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript">
16function make_proxy(target, name) {
17  return new Proxy(target, {
18    get: function(target, prop) {
19      if (prop in target) {
20        return target[prop];
21      }
22      throw new Error('The variable ' + name + ' is not fully initialized yet');
23    }
24  });
25}
26window.appquery = make_proxy({
27  app_version: function() { return "live"; },
28  last_change: function() { return "61831481805";},
29}, 'appquery');
30window.Lib = new Proxy(function() {}, {
31  get: function(target, prop) {
32    if (prop === 'is_skeleton') {
33      return true;
34    }
35    throw new Error('The variable ' + Lib + ' is not fully initialized yet');
36  },
37  apply: function() {
38    return make_proxy({
39      current_user: function() {
40        return make_proxy({ id: "1791212760491x731083496923379500" }, 'Lib().current_user');
41      }
42    }, 'Lib()');
43  }
44});
45</script>
vendor: 1 bytes, line 45
45
46<script type="text/javascript">
47function load_error_function (event) {
48  return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno })
49}
50window.load_error_log = [];
51window.addEventListener('error', load_error_function);
52window.disableLoadErrorFunction = function () {
53  window.removeEventListener('error', load_error_function);
54}
55</script>
55
56<meta name="referrer" content="origin">
57<script type="text/javascript">
58if (!window._bubble_page_load_data) {
59  window._bubble_page_load_data = {}
60}
61if (!window._bubble_page_load_data.js_execution_timings) {
62  window._bubble_page_load_data.js_execution_timings = {}
63}
64window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now();
65</script>
65<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script>
65<script type="text/javascript">
66if (!window._bubble_page_load_data) {
67  window._bubble_page_load_data = {}
68}
69if (!window._bubble_page_load_data.js_execution_timings) {
70  window._bubble_page_load_data.js_execution_timings = {}
71}
72window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now();
73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">(function () {
75    function onWebFontFinish () {
76        window.google_web_fonts_active = true;
77if (window.google_web_fonts_active_cb) {
78    window.google_web_fonts_active_cb();
79}
80        (function fontface_loaded_snippet (font) {
81  if (window.fontface_loaded == null) {
82    window.fontface_loaded = {}
83  }
84  if (font != null) {
85    window.fontface_loaded[font] = true
86  } else {
87    window.all_fontface_loaded = true
88  }
89  if (window.fontface_webfonts_loaded_cb) {
90    return window.fontface_webfonts_loaded_cb(font)
91  }
92})()
93    }
94    const WebFontConfig = {'google': { families: ["Alex Brush:regular","Alex Brush:400","Inter:300","Inter:regular","Inter:regular","Inter:regular","Inter:500","Inter:500","Inter:500","Inter:600","Inter:600","Inter:600","Inter:700","Inter:700","Inter:800","Inter:900","Lato:regular","Lato:400","Lato:900","Lato:700","Montserrat:regular","Montserrat:600","Montserrat:700","Open Sans:regular","Open Sans:500","Open Sans:600","Open Sans:600","Open Sans:700","Open Sans:700","Poppins:regular","Poppins:regular","Poppins:500","Poppins:500","Poppins:600","Poppins:600","Poppins:700","Roboto:300","Roboto:regular","Roboto:500"] },
95        active: function() {
96            onWebFontFinish()
97        },
98        inactive: function() {
99            console.log('Failed to load all the fonts');
100            onWebFontFinish()
101        },
102        fontinactive: function(family_name, fvd) {
103            console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render');
104            onWebFontFinish()
105        }
106    }
107        window.WebFont.load(WebFontConfig);
108})();</script>
vendor: 1 bytes, line 108
108
109<script>
110(function initialize_data() {
111const xhr = new XMLHttpRequest();
112xhr.onreadystatechange = function() {
113    if (this.readyState === 4 && this.status === 200) {
114        const data = JSON.parse(this.responseText);
115
116        function init_data() {
117            data.forEach(function(d) {
118                Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version);
119            })
120        }
121
122        if (window.Lib && window.Lib.is_skeleton == null) {
123            init_data();
124        } else {
125            window.Lib_post_load = init_data;
126        }
127    }
128};
129xhr.open("GET", "https://smartout.ai/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true);
130xhr.send();
131})();
132</script>
vendor: 1 bytes, line 132
132
133<script type="text/javascript">window.gm_key = "AIzaSyCSojxKyp7J445n-Oo5uUc7Fvy7hjN9alE";</script>
vendor: 1 bytes, line 133
133
134<script type="text/javascript">window.glrl_key_status = false;</script>
vendor: 1 bytes, line 134
134
135<script type="text/javascript">window.bubble_page_load_id = "1791212761524x1526";</script>
vendor: 1 bytes, line 135
135
136<script type="text/javascript">window.bubble_plp_token = "1791212762195.sdYSpax2OxcsvAvEUjRK5wpp87Eg50bj5IwpI6rhSeI=";</script>
vendor: 1 bytes, line 136
136
137<script type="text/javascript">window.bubble_is_leanjs = false;</script>
vendor: 1 bytes, line 137
137
138<script type="text/javascript">window.bubble_shim_modules = false;</script>
138
139<link rel="icon" type="image/png" href="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/cdn-cgi/image/w=128,h=,f=auto,dpr=1,fit=contain/f1680419688725x423597097966981200/Logo%20orange%20transp.%20400x400.png" />
140<meta name="fragment" content="!">
141<meta name="description" content="One app to replace them all">
142<meta property="og:title" content="Employee managment" />
143<meta name="twitter:title" content="Employee managment" />
144<meta property="og:site_name" content="Smartout" />
145<meta name="twitter:site_name" content="Smartout" />
146<meta property="og:description" content="One app to replace them all" />
147<meta name="twitter:description" content="One app to replace them all" />
148<link rel="image_src" href="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1679377793445x596485070504803100/iPhone%2014%20Pro%20%E2%80%93%203.png" />
149<meta property="og:image" content="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1679377793445x596485070504803100/iPhone%2014%20Pro%20%E2%80%93%203.png" />
150<meta name="twitter:image:src" content="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1679377793445x596485070504803100/iPhone%2014%20Pro%20%E2%80%93%203.png" />
151<meta property="og:url" content="https://smartout.ai/" />
152<meta property="og:type" content="website" />
153<meta name="twitter:card" content="summary_large_image" />
154<meta name="apple-mobile-web-app-capable" content="yes">
155<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
156<link rel="apple-touch-startup-image" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" href="//s3.amazonaws.com/appforest_uf/f1679377691208x720085914450876900/iPhone%2014%20Pro%20%E2%80%93%203.png">
157<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" href="//s3.amazonaws.com/appforest_uf/f1679377698518x146042591044714940/iPhone%2014%20Pro%20%E2%80%93%203.png">
158<link rel="apple-touch-startup-image" media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)" href="//s3.amazonaws.com/appforest_uf/f1679377702984x619372749660810800/iPhone%2014%20Pro%20%E2%80%93%203.png">
159<link rel="apple-touch-icon" href="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/cdn-cgi/image/w=192,h=,f=auto,dpr=1,fit=contain/f1680419738173x654282661798267500/Logo%20orange%20transp.%20400x400.png">
160<meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=no, minimal-ui">
161<script type="text/javascript">window._p = '{"id":"app_starter_mobile_web_2025","no_branding":true,"import_export_csv":true,"custom_domain":true}';</script>
vendor: 1 bytes, line 161
161
162<script type="text/javascript">window.bubble_page_name = "index";</script>
vendor: 1 bytes, line 162
162
163<script type="text/javascript">window.__bubble_module_mode = false;</script>
163
164<link type="text/css" href="/package/run_css/926821180a12e847fd985f399d59daea4bc67dcb8efd9bf88a7bb63929745a8c/smart-out/live/index/xfalse/xfalse/run.css" rel="stylesheet">
165<script type="text/javascript">
166if (!window._bubble_page_load_data) {
167  window._bubble_page_load_data = {}
168}
169if (!window._bubble_page_load_data.js_execution_timings) {
170  window._bubble_page_load_data.js_execution_timings = {}
171}
172window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now();
173</script>
vendor: 1 bytes, line 173
173
174<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script>
vendor: 1 bytes, line 174
174
175<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/8cd6f3c6022bac6b5a05a34b3e121e04310de12eb44a836b95b38e08e6a0a41c/xfalse/x30/run.js"></script>
vendor: 1 bytes, line 175
175
176<script type="text/javascript">
177if (!window._bubble_page_load_data) {
178  window._bubble_page_load_data = {}
179}
180if (!window._bubble_page_load_data.js_execution_timings) {
181  window._bubble_page_load_data.js_execution_timings = {}
182}
183window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now();
184</script>
vendor: 1 bytes, line 184
184
185<script type="text/javascript">
186if (!window._bubble_page_load_data) {
187  window._bubble_page_load_data = {}
188}
189if (!window._bubble_page_load_data.js_execution_timings) {
190  window._bubble_page_load_data.js_execution_timings = {}
191}
192window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now();
193</script>
193<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/b803a65aca96ba067c6f5532e66d3e447f43192cc3dc18535572b7cf40b2ddbd/smart-out/live/index/xnull/xfalse/xfalse/xfalse/static.js"></script>
193<script type="text/javascript">
194if (!window._bubble_page_load_data) {
195  window._bubble_page_load_data = {}
196}
197if (!window._bubble_page_load_data.js_execution_timings) {
198  window._bubble_page_load_data.js_execution_timings = {}
199}
200window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now();
201</script>
vendor: 1 bytes, line 201
201
202<script type="text/javascript">
203if (!window._bubble_page_load_data) {
204  window._bubble_page_load_data = {}
205}
206if (!window._bubble_page_load_data.js_execution_timings) {
207  window._bubble_page_load_data.js_execution_timings = {}
208}
209window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now();
210</script>
210<script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/d3ba34e5e838c38bd57f24a3c0ca4bf4397038c7ada5d0e942d8f3340f3923e1/smart-out/live/index/xnull/xfalse/xfalse/no_no/xfalse/xfalse/dynamic.js"></script>
210<script type="text/javascript">
211if (!window._bubble_page_load_data) {
212  window._bubble_page_load_data = {}
213}
214if (!window._bubble_page_load_data.js_execution_timings) {
215  window._bubble_page_load_data.js_execution_timings = {}
216}
217window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now();
218</script>
vendor: 1 bytes, line 218
218
219<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script>
219
220<!-- 1515787032525x876315403042684900 -->
221<link rel="stylesheet" href="https://d2tf8y1b8kxrzw.cloudfront.net/serve_files/airalert/jquery.toast.min.css" />
222<script src="https://d2tf8y1b8kxrzw.cloudfront.net/serve_files/airalert/jquery-xss.toast.min.js"></script>
222
223<!-- 1540857498064x563539974936330200 -->
224<script>  
225window.convertEnvToBase=function(e){return"object"==typeof e&&null!==e?e=e.get&&e.get("_id")?e.get("_id"):e:void 0===e&&(e=null),e},window.bdk_env={},window.initEnvVariable=function(e){e&&(window.bdk_env[e]||(window.bdk_env[e]={previous_value:null,current_value:null,previous_value_base:null,current_value_base:null,is_changed:!1,listeners:[],triggers:[],apply_value:function(e){this.previous_value=this.current_value,this.previous_value_base=this.current_value_base,this.current_value=e,this.current_value_base=window.convertEnvToBase(this.current_value),this.current_value_base!==this.previous_value_base&&(this.is_changed=!0)},publish_value:function(){var n=this.current_value;this.listeners.forEach(function(e){e(n)}),!0===this.is_changed&&(this.triggers.forEach(function(e){e(n)}),this.is_changed=!1)}}))},window.collectEnvVariable=function(e,n){e&&(window.initEnvVariable(e),window.bdk_env[e].apply_value(n),window.bdk_env[e].publish_value())},window.seekEnvVariable=function(e){if(e)return window.bdk_env[e]&&window.bdk_env[e].current_value?window.bdk_env[e].current_value:null},window.setEnv=window.setGlobalField=function(e,n){if("string"==typeof e)try{window.collectEnvVariable(e,n)}catch(e){conosle.log(e)}else console.log("Please check the name of env variable. It should be a string")},window.getEnv=window.getGlobalField=function(e){if("string"!=typeof e)return console.log("Please check the name of env variable. It should be a string"),null;try{return window.seekEnvVariable(e)}catch(e){return conosle.log(e),e}};
226</script>
226
227<!-- 1552401463205x225714219237769200 -->
228<script>
229class evaluation{constructor(e=500){this.gap=e,this.queue=[],this.isExecuting=!1,this.url=window.location.href,this.url&&-1!=this.url.indexOf("version-test")&&(this.isTestVersion=!0),window.pendingRemoveLoading&&this.removeLoading()}addToQueue(e,i={},s={}){this.queue.push({command:e,options:i,config:s}),this.processQueue()}addToTopOfQueue(e,i={},s={}){this.queue.unshift({command:e,options:i,config:s})}isPendingRemoveLoading(){return this.queue.length>0&&"removeLoading"==this.queue[0].command}processItem(){this.isExecuting=!0;var data=this.queue[0],allowed=!0;if(data.config.minVersion&&this.releaseVersion&&this.releaseVersion<data.config.minVersion&&(allowed=!1,this.showWarning("Upgrade BDK Native Engine","to use this feature")),data.config.maxVersion&&this.releaseVersion&&this.releaseVersion>data.config.maxVersion&&(allowed=!1),data.config.platform&&this.platform&&this.platform.toLowerCase()!=data.config.platform.toLowerCase()&&(allowed=!1),allowed)try{eval("$agent.trigger('"+data.command+"',"+JSON.stringify(data.options)+");")}catch(e){data.config.errorMessage&&console.log(data.config.errorMessage)}this.isNative&&this.queue.shift(),this.isNative||this.isPendingRemoveLoading||this.addToTopOfQueue("removeLoading"),setTimeout(this.processQueue.bind(this,[!0]),this.gap)}processQueue(e){e?this.queue.length>0?this.processItem():this.isExecuting=!1:!this.isExecuting&&this.queue.length>0&&this.processItem()}removeLoading(){this.isNative||this.pendingRemoveLoading||(this.addToTopOfQueue("removeLoading"),this.processQueue())}showWarning(title,description){this.isTestVersion&&eval("$agent.trigger('showBanner',"+JSON.stringify({title:title,description:description})+");")}}window.nativeprocessor=new evaluation(500);
230</script>
vendor: 1 bytes, line 230
230
231<script>
232window.injectCSS=function(e){let o=document.createElement("style");return o.innerText=e,document.head.appendChild(o),o},window.adjustedPageHeight=!1,window.advancedconfig="",document.addEventListener("DOMContentLoaded",function(){if(window){if(window.advancedconfig)try{window.bdkusersettings=JSON.parse(window.advancedconfig)}catch(e){window.bdkusersettings={}}else window.bdkusersettings={remove_loading:"automatic"};window.nativeprocessor?("manual"!==window.bdkusersettings.remove_loading?window.nativeprocessor.removeLoading():console.log("user will remove loading via workflow"),window.nativeprocessor.addToQueue("sendDeviceInfoToBubble"),window.nativeprocessor.processQueue()):window.pendingRemoveLoading=!0}else console.log("could not find window object")},!1),window.NativeReceivers={AddressBook:{},TakePhoto:{},SelectPhoto:{},Screenshot:{},AppInfo:{},ListTypeMenu:{},Barcode:{},DeviceLocation:{},DeviceVariable:{},HeaderMenuClicked:{},CaptureAudio:{},TakeVideo:{},SelectVideo:{},collectPopup:{},BackButtonPressed:{},PurchaseSuccess_ios:{},PurchaseFailed_ios:{},ReceiptsReceived_ios:{},PurchaseSuccess_android:{},PurchaseFailed_android:{},ReceiptsReceived_android:{},Datepicker:{},Optionpicker:{},Biometrics:{},SmartLogin:{}},window.activeReceivers={AddressBook:null,TakePhoto:null,SelectPhoto:null,Screenshot:null,AppInfo:null,ListTypeMenu:null,Barcode:null,DeviceLocation:null,DeviceVariable:null,HeaderMenuClicked:null,CaptureAudio:null,TakeVideo:null,SelectVideo:null,collectPopup:null,Datepicker:null,Optionpicker:null,Biometrics:null,SmartLogin:null},window.validateData=function(e){return null!=e&&(-1===e.indexOf("{{")&&-1===e.indexOf("$env")&&-1===e.indexOf("$get")&&-1===e.indexOf("$cache")&&-1===e.indexOf("}}"))},window.collectDeviceInfo=function(e,o,i,n,c,t,r,a,d,s,w,v,l,u,f,h,p,g,R,k,N){try{window.bdkNativeInfo={playerId:e,pushToken:o,deviceWidth:i,deviceHeight:n,deviceOS:c,deviceOSVersion:t,deviceLanguage:r,cameraPermissionStatus:a,contactsPermissionStatus:d,audiorecordPermissionStatus:s,externalstoragePermissionStatus:w,locationPermissionStatus:v,versionName:l,versionCode:u,deviceModel:f,bdkRelease:h,biometricsAvailable:"available"==p,smartLoginAvailable:"available"==g},window.validateData(R)&&(window.bdkNativeInfo.appTrackingPermissionStatus=R),window.validateData(k)&&(window.bdkNativeInfo.idfa=k),window.validateData(N)&&(window.bdkNativeInfo.viewType=N),window.nativeprocessor.isNative=!0,window.nativeprocessor.platform=c,window.nativeprocessor.releaseVersion=parseFloat(h),Object.keys(window.NativeReceivers.AppInfo).forEach(function(e){window.NativeReceivers.AppInfo[e](window.bdkNativeInfo)}),"ios"===c.toLowerCase()&&window.detectLinks(),window.nativeprocessor.isNative&&!window.adjustedPageHeight&&(window.injectCSS("body {\n        min-height: calc(100vh - 39px);\n      }\n      .main-page.bubble-element.Page {\n        min-height: calc(100vh - 39px);\n      }"),window.adjustedPageHeight=!0)}catch(e){}},window.checkIfVersion=function(e,o){var i=!0;return o&&Number(window.bdkNativeInfo.bdkRelease)>o?i=!1:Number(window.bdkNativeInfo.bdkRelease)<e&&(i=!1),i},window.getContacts=function(e){try{var o=window.activeReceivers.AddressBook;window.NativeReceivers.AddressBook[o](e)}catch(e){console.log("No receiver found for information")}},window.collectSnapshot=function(e){try{var o=window.activeReceivers.Screenshot;window.NativeReceivers.Screenshot[o](e)}catch(e){console.log("No receiver found for information")}},window.onBiometricAuthentication_ios=function(e,o){try{var i=window.activeReceivers.Biometrics;window.NativeReceivers.Biometrics[i](e,o)}catch(e){console.log("No receiver found for biometrics")}},window.onBiometricAuthentication_android=function(e,o){try{var i=window.activeReceivers.Biometrics;window.NativeReceivers.Biometrics[i](e,o)}catch(e){console.log("No receiver found for biometrics")}},window.onLoginViaCredentials=function(e,o){try{var i=window.activeReceivers.SmartLogin;-1!=e.indexOf("{{")&&(e=null),-1!=o.indexOf("{{")&&(o=null),window.NativeReceivers.SmartLogin[i](e,o)}catch(e){console.log("No receiver found for smartlogin")}},window.pickPhoto=function(e,o,i,n){try{var c=window.activeReceivers.SelectPhoto;window.NativeReceivers.SelectPhoto[c](e,o,i,n)}catch(e){console.log("No receiver found for information")}},window.pickVideo=function(e,o,i,n){try{var c=window.activeReceivers.SelectVideo;window.NativeReceivers.SelectVideo[c](e,o,i,n)}catch(e){console.log("No receiver found for information")}},window.capturePhoto=function(e,o,i,n){try{var c=window.activeReceivers.TakePhoto;window.NativeReceivers.TakePhoto[c](e,o,i,n)}catch(e){console.log("No receiver found for information")}}
232,window.captureVideo=function(e,o,i,n){try{var c=window.activeReceivers.TakeVideo;window.NativeReceivers.TakeVideo[c](e,o,i,n)}catch(e){console.log("No receiver found for information")}},window.collectMenuClick=function(e){try{var o=window.activeReceivers.ListTypeMenu;window.NativeReceivers.ListTypeMenu[o](e)}catch(e){console.log("No receiver found for list type menu information")}},window.collectBarcode=function(e){try{var o=window.activeReceivers.Barcode;window.NativeReceivers.Barcode[o](e)}catch(e){console.log("No receiver found for barcode information")}},window.collectLocation=function(e){try{Object.keys(window.NativeReceivers.DeviceLocation).forEach(function(o){window.NativeReceivers.DeviceLocation[o](e)})}catch(e){console.log("error capturing location info to receivers")}},window.collectDeviceVariable=function(e,o){try{var i=window.activeReceivers.DeviceVariable;window.NativeReceivers.DeviceVariable[i](e,o)}catch(e){console.log("No receiver found for device variable")}},window.headerMenuClicked=function(){try{Object.keys(window.NativeReceivers.HeaderMenuClicked).forEach(function(e){window.NativeReceivers.HeaderMenuClicked[e]()})}catch(e){console.log("error sending header menu click event to receivers")}},window.recordAudio=function(e,o,i,n){try{var c=window.activeReceivers.CaptureAudio;window.NativeReceivers.CaptureAudio[c](e,o,i,n)}catch(e){console.log("No receiver found for information")}},window.collectPopup=function(e){try{var o=window.activeReceivers.collectPopup;window.NativeReceivers.collectPopup[o](e)}catch(e){console.log("No receiver found for information")}},window.collectDateTime=function(e){try{var o=window.activeReceivers.Datepicker;window.NativeReceivers.Datepicker[o](e)}catch(e){console.log("No receiver found for date information")}},window.collectOption=function(e){try{var o=window.activeReceivers.Optionpicker;window.NativeReceivers.Optionpicker[o](e)}catch(e){console.log("No receiver found for option information")}},window.backButtonPressed=function(){try{Object.keys(window.NativeReceivers.BackButtonPressed).forEach(function(e){window.NativeReceivers.BackButtonPressed[e]()})}catch(e){console.log("error sending header menu click event to receivers")}},window.BackButtonPressed=window.backButtonPressed,window.onPurchaseSuccess_ios=function(e){try{Object.keys(window.NativeReceivers.PurchaseSuccess_ios).forEach(function(o){window.NativeReceivers.PurchaseSuccess_ios[o](e)})}catch(e){console.log("error sending successful ios in app purchase data to receivers")}},window.onPurchaseFailed_ios=function(e){try{Object.keys(window.NativeReceivers.PurchaseFailed_ios).forEach(function(o){window.NativeReceivers.PurchaseFailed_ios[o](e)})}catch(e){console.log("error sending failed ios in app purchase data to receivers")}},window.onReceiptDataReceived_ios=function(e){try{Object.keys(window.NativeReceivers.ReceiptsReceived_ios).forEach(function(o){window.NativeReceivers.ReceiptsReceived_ios[o](e)})}catch(e){console.log("error sending receipts of ios in app purchase data to receivers")}},window.onPurchaseSuccess_android=function(e){try{Object.keys(window.NativeReceivers.PurchaseSuccess_android).forEach(function(o){window.NativeReceivers.PurchaseSuccess_android[o](e)})}catch(e){console.log("error sending successful android in app purchase data to receivers")}},window.onPurchaseFailed_android=function(e){try{Object.keys(window.NativeReceivers.PurchaseFailed_android).forEach(function(o){window.NativeReceivers.PurchaseFailed_android[o](e)})}catch(e){console.log("error sending failed android in app purchase data to receivers")}},window.onReceiptDataReceived_android=function(e){try{Object.keys(window.NativeReceivers.ReceiptsReceived_android).forEach(function(o){window.NativeReceivers.ReceiptsReceived_android[o](e)})}catch(e){console.log("error sending receipts of android in app purchase data to receivers")}},window.detectLinks=function(){if(!window.detection_status){console.log("started detection");var e=document.body,o={childList:!0,subtree:!0},i=function(e){if(!window.need_to_resolve){for(var o=0;o<e.length;++o)e[o].addedNodes.length>0&&document.querySelectorAll("a[target='_blank']").length>0&&(window.need_to_resolve=!0);window.need_to_resolve&&(document.querySelectorAll("a[target='_blank']").forEach(function(e){-1==e.href.indexOf("https://bubble.io/?utm_source=app_mention")&&(e.target="_self")}),window.need_to_resolve=!1)}},n=new MutationObserver(i);n.observe(e,o)}return window.detection_status=!0,!0};
233</script>
vendor: 1 bytes, line 233
233
234<script src="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/f1664489218713x811279010926034800/URI.min.js"></script>
234
235<!-- 1580238841425x582072028873097200 -->
236<style>
237    
238    blockquote {
239        border-left: 4px solid #ccc;
240   		margin-bottom: 5px;
241    	margin-top: 5px;
242        padding-left: 16px;
243    }
244    
245    ul, ol {
246    	list-style-position: outside;
247    }
248    
249    .ql-font .ql-picker-label:first-child::before {
250    	font-family: inherit;    
251        overflow: hide;
252    }
253    
254    .ql-font .ql-picker-label {
255        overflow: hidden;
256    }
257    
258    .regular-header-icon {
259        color: #444;
260    }
261    
262    .tooltip-header-icon {
263        color: #ccc;
264    }
265    
266</style>
267<!-- 1582601241392x653181519983018000 -->
268<script src="https://2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/f1581785748644x612892952682557000/papaparse.min.js"></script>
268
269<!-- 1618916043803x877032991371296800 -->
270<script defer src="//meta.cdn.bubble.io/f1678588430465x230578802325048350/icons.js"></script>
270
271
272<script>
273  const allSelect2 = /\[(hi.*)\](.*)\[\/(hi.*)\]/;
274  const colormatch2 = /#[0-9A-f]{3,6}#/;
275  const fillMatcher2 = /fill="currentColor"/;
276
277  function replaceIcon(btn) {
278    let content = btn.getAttribute("title");
279
280    if (!content) return;
281
282    let iconColor = content.match(colormatch2);
283    content = content.replace(colormatch2, "");
284    const iconMarkup = content.match(allSelect2);
285    if (!iconMarkup) {
286      return;
287    }
288
289    if (iconMarkup[1] != iconMarkup[3]) return;
290
291    const iconProps = iconMarkup[1].slice(2).split("-");
292
293    const props = {
294      name: iconMarkup[2],
295      size: "20px",
296      color: btn.innerHTML.match(colormatch2)
297        ? btn.innerHTML.match(colormatch2)[0].slice(0, -1)
298        : undefined,
299      set: "mini",
300      position: undefined,
301      iconHTML: undefined,
302      style: 'style="',
303      spacing: "8px",
304      stroke_width: "1.5px",
305    };
306
307    if (props.color) {
308      props.iconHTML = props.iconHTML.replace(
309        fillMatcher2,
310        "fill=" + iconColor
311      );
312    }
313
314    iconProps.forEach((property) => {
315      switch (property) {
316        case "l":
317          props.position = "left";
318          break;
319        case "r":
320          props.position = "right";
321          break;
322        case "b":
323          props.position = "center";
324          break;
325        case "o":
326          props.set = "outlined";
327          break;
328        case "s":
329          props.set = "solid";
330          break;
331      }
332      if (/m[0-99]+/.test(property)) {
333        const matched = property.match(/m([0-99]+)/);
334        props.spacing = `${matched[1]}px`;
335      }
336      if (/w[0-99]+/.test(property)) {
337        const matched = property.match(/w([0-99]+)/);
338        props.stroke_width = `${matched[1]/10}px`;
339      }
340
341      const number = Number(property);
342
343      if (number && number > 0) {
344        props.size = String(number) + "px";
345      }
346    });
347
348    if (props.name == "no-icon") {
349      btn.classList.add("heroicon");
350
351      btn.setAttribute("title", btn.getAttribute("title").replace(allSelect2, "").replace(/\u00AD/g, ''));
352      btn.childNodes.forEach((node) => {
353        if (node.nodeName !== "#text") {
354          node.remove();
355        }
356
357      });
358      return;
359    }
360
361    if (window[`heroicons_${props.set}`].has(props.name)) {
362      props.iconHTML = window[`heroicons_${props.set}`].get(props.name);
363    } else {
364      return;
365    }
366
367    btn.classList.add("heroicon");
368
369    props.style += ` ${props.set == "outlined" ? ` stroke-width: ${props.stroke_width};` : ""
370      } height: ${props.size}; width: ${props.size}; `;
371
372    let insertBefore = props.iconHTML.lastIndexOf("viewBox");
373
374    btn.setAttribute("title", btn.getAttribute("title").replace(allSelect2, "").replace(/\u00AD/g, ''));
375    btn.childNodes.forEach((node) => {
376      if (node.nodeName !== "#text") {
377        node.remove();
378      }
379    });
380
381    btn.style.display = "inline-flex";
382    btn.style.alignItems = "center";
383
384    if (props.position == "left") {
385      let styledHTML =
386        props.iconHTML.substring(0, insertBefore) +
387        props.style +
388        `margin-right:${props.spacing}"` +
389        props.iconHTML.substring(insertBefore);
390      btn.insertAdjacentHTML("afterbegin", styledHTML);
391    } else if (props.position == "right") {
392      let styledHTML =
393        props.iconHTML.substring(0, insertBefore) +
394        props.style +
395        `margin-left:${props.spacing}"` +
396        props.iconHTML.substring(insertBefore);
397      btn.insertAdjacentHTML("beforeend", styledHTML);
398    } else {
399      let styledHTML =
400        props.iconHTML.substring(0, insertBefore) +
401        props.style +
402        `"` +
403        props.iconHTML.substring(insertBefore);
404      btn.insertAdjacentHTML("beforeend", styledHTML);
405    }
406  }
407
408  document.addEventListener("DOMContentLoaded", function () {
409    let config = {
410      subtree: true,
411      childList: true,
412      attributes: true,
413      characterData: false,
414      attributeFilter: ["title"]
415    };
416
417    let callback = function (mutationsList, observer) {
418      for (let mutation of mutationsList) {
419        if (mutation.target.tagName === "BUTTON") {
420          replaceIcon(mutation.target);
421        } else if (mutation.addedNodes) {
422          mutation.addedNodes.forEach((node) => {
423            if (node.tagName == "BUTTON") {
424              replaceIcon(node);
425            }
426          });
427        }
428      }
429    };
430
431    const observer = new MutationObserver(callback);
432    observer.observe(document, config);
433  });
434</script>
434
435
436<style>
437  .animate-spin>circle {
438    color: inherit;
439    opacity: 25%;
440  }
441
442  .animate-spin {
443    animation: 1s linear infinite spin;
444  }
445
446  @keyframes spin {
447    from {
448      transform: rotate(0);
449    }
450
451    to {
452      transform: rotate(360deg);
453    }
454  }
455
456  .heroicon {
457    display: inline-flex;
458    align-items: center;
459    justify-content: center;
460    gap: 0 !important;
461  }
462
463  .dots_one {
464    stroke: currentColor;
465    fill: currentColor;
466    animation: dots 0.8s linear infinite;
467    animation-delay: -0.8s;
468    margin-right: 1px;
469  }
470
471  .dots_two {
472    animation-delay: -0.65s;
473  }
474
475  .dots_three {
476    animation-delay: -0.5s;
477  }
478
479  @keyframes dots {
480
481    93.75%,
482    100% {
483      opacity: 0.2;
484    }
485  }
486</style>
487<!-- 1661717622628x490300288223674400 -->
488<script type="text/javascript">
489    (function(c,l,a,r,i,t,y){
490        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
491        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i+"?ref=bubble";
492        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
493    })(window, document, "clarity", "script", "rnbm5d1yx4");
494</script>
vendor: 1 bytes, line 494
494
495<script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script>
495
496<!-- custom app meta header -->
497<meta name="mobile-web-app-capable" content="yes">
498<meta name="apple-mobile-web-app-capable" content="yes">
499<meta name="theme-color" content="
500#ffffff">
501<meta name="apple-mobile-web-app-status-bar-style" content="default">
502
503<style>
504#noScroll_shiftCard::-webkit-scrollbar { 
505    display: none; 
506}
507#noScroll_shiftCard {
508    -ms-overflow-style: none;  /* IE and Edge */
509    scrollbar-width: none;  /* Firefox */
510}
511
512#noScroll::-webkit-scrollbar { 
513    display: none; 
514}
515    
516#noScroll {
517    -ms-overflow-style: none;  /* IE and Edge */
518    scrollbar-width: none;  /* Firefox */
519}
520    
521#noScroll_shiftMonth, #noScroll_shiftMonth > :first-child {
522    -ms-overflow-style: none;  /* IE and Edge */
523    scrollbar-width: none;  /* Firefox */
524}
525
526#overflow {
527    overflow-x: scroll !important;
528}
529    
530#overflow::-webkit-scrollbar {
531    display: none;
532}
533    
534#overflow {
535    -ms-overflow-style: none; /* IE and Edge */
536    scrollbar-width: none; /* Firefox */
537}
538    
539#overflow-bar {
540    overflow-x: scroll !important;
541    -ms-overflow-style: normal !important;
542    scrollbar-width: normal !important;
543}
544</style>
545</head>
546<body>
546<script type="text/javascript">
547window.addEventListener('DOMContentLoaded', function () {
548  if (window.appquery == null) {
549    (function() {
550    const html = `
551      <div class="error-card">
552        <div class="error-section">
553          <div class="error-title">Your browser was unable to load some necessary resources</div>
554          <div class="error-message">Contact your IT network administrator to allow access to:
555    • d3dqmih97rcqmh.cloudfront.net
556    • 2c7b72955cb81ec1a99b821510a561cb.cdn.bubble.io/
557    • d1muf25xaso8hp.cloudfront.net</div>
558        </div>
559      </div>
560    `
561
562    const css = document.createElement('style')
563    css.type = 'text/css'
564    css.appendChild(
565      document.createTextNode(`
566      .error-overlay {
567        width: 100%;
568        height: 100%;
569        background: rgba(0,0,0,0.30);
570        overflow: hidden;
571        display: flex;
572        justify-content: center;
573        align-items: flex-start;
574        position: fixed;
575        inset: 0;
576        z-index: 999999;
577      }
578
579      .error-card {
580        width: 500px;
581        margin: 40px;
582        background: white;
583        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
584        border-radius: 8px;
585        display: flex;
586        flex-direction: column;
587      }
588
589      .error-section {
590        padding: 40px;
591        display: flex;
592        flex-direction: column;
593        gap: 12px;
594      }
595
596      .error-title {
597        color: #1A1A1A;
598        font-size: 18px;
599        font-family: Arial, sans-serif;
600        font-weight: 600;
601        line-height: 28px;
602      }
603
604      .error-message {
605        color: #525252;
606        font-size: 14px;
607        font-family: Arial, sans-serif;
608        font-weight: 400;
609        line-height: 20px;
610        white-space: pre-wrap;
611      }
612    `)
613    )
614    document.head.appendChild(css)
615
616    const container = document.createElement('div')
617    container.className = 'error-overlay'
618    container.innerHTML = html
619    document.body.appendChild(container)
620  })()
621    httpRequest = new XMLHttpRequest();
622httpRequest.open('POST', '/user/m', true);
623httpRequest.setRequestHeader('Content-Type', 'application/json');
624httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}}));
625  };
626});
627</script>
627<script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {(function() {
628    const html = `
629      <div class="error-card">
630        <div class="error-section">
631          <div class="error-title">Your browser was unable to load the application</div>
632          <div class="error-message">We&#39;ve been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers.</div>
633        </div>
634      </div>
635    `
636
637    const css = document.createElement('style')
638    css.type = 'text/css'
639    css.appendChild(
640      document.createTextNode(`
641      .error-overlay {
642        width: 100%;
643        height: 100%;
644        background: rgba(0,0,0,0.30);
645        overflow: hidden;
646        display: flex;
647        justify-content: center;
648        align-items: flex-start;
649        position: fixed;
650        inset: 0;
651        z-index: 999999;
652      }
653
654      .error-card {
655        width: 500px;
656        margin: 40px;
657        background: white;
658        box-shadow: 0px 1px 2px rgba(0,0,0,0.10);
659        border-radius: 8px;
660        display: flex;
661        flex-direction: column;
662      }
663
664      .error-section {
665        padding: 40px;
666        display: flex;
667        flex-direction: column;
668        gap: 12px;
669      }
670
671      .error-title {
672        color: #1A1A1A;
673        font-size: 18px;
674        font-family: Arial, sans-serif;
675        font-weight: 600;
676        line-height: 28px;
677      }
678
679      .error-message {
680        color: #525252;
681        font-size: 14px;
682        font-family: Arial, sans-serif;
683        font-weight: 400;
684        line-height: 20px;
685        white-space: pre-wrap;
686      }
687    `)
688    )
689    document.head.appendChild(css)
690
691    const container = document.createElement('div')
692    container.className = 'error-overlay'
693    container.innerHTML = html
694    document.body.appendChild(container)
695  })()}});</script>
695
696<img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" />
697</body>
698</html>

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