CINXE.COM
Handy | About Us
<!DOCTYPE html> <html class='' ng-app='root'> <style>[ng-cloak], .ng-cloak { display: none !important; }</style> <head> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","45877b80-bef0-4387-905f-8bbebc0bd9ce","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"JsISVGLG/l+JEGtN80yCrvX6fNCZyWUyp7ngu+uo7nLcgAas1+fSYVEmvPZn/Cny1ytbRFW1Zt32RVXh+5t7Gg==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{},"pageInfo":{"bookingId":null,"conversionType":null,"serviceName":null,"serviceCategory":null,"serviceId":null,"recurringFrequency":null,"zipcode":null,"dateOfBooking":null,"timeOfBooking":null,"dateAdded":null,"hourlyRate":null,"bookingHrs":null,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":0,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); </script> <title>Handy | About Us</title> <meta charset='utf-8'> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"fee8387e35","applicationID":"16225130","transactionName":"IQwNRkoKXlVcSh5QDwULPERXCUZYXl0eSAcFBhAdSw1dTg==","queueTime":0,"applicationTime":209,"agent":""}</script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"VwMPUFNbGwIGVlNXBgIH",licenseKey:"fee8387e35",applicationID:"16225130"};;/*! For license information please see nr-loader-full-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>d});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function d(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const d="[data-nr-mask]",u=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,u());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},d={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},u={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!u[e])throw new Error("Runtime for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");u[e]={...(0,n.a)(t,d),...c},Object.hasOwnProperty.call(u[e],"harvestCount")||Object.defineProperty(u[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=u[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.274.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>d,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>d});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function d(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function u(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(u(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>d});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),d=function e(t,r){var n={},s={},u={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(d.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),u=c.length,l=0;l<u;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=d)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>d});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function d(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>d,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},d={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>d,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function d(e){let t=a();return t.initializedAgents?.[e]}function u(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),h(a.gm,f),h(c.prototype,f)),t.on(d+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(u+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],d=e[c];u(d)||(e[c]=r(d,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return u(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){d([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,u,l;try{a=this,o=[...arguments],u="function"==typeof n?n(o,a):n||{}}catch(t){d([t,"",[o,a,s],u],e)}i(r+"start",[o,a,s],u,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],u,c),e}finally{i(r+"end",[o,a,l],u,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){d([t,r,n,i],e)}s=a}}}function d(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function u(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,Zp:()=>i,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>u,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>d,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},d={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},u=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>d,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function d(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>d,Rz:()=>u,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,d="fn"+s,u="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),d=r(5289),u=r(6154),l=r(944),f=r(3969),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(2646),w=r(3434);function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,w.YM)(i),a=new x.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function A(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var S=r(9417),_=r(5603),O=r(5284);const N=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let I=!1;function P(e,t={},p,x){let{init:w,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(w=H.init,P=H.info,j=H.loader_config),(0,S.xN)(e.agentIdentifier,w||{}),(0,_.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},u.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,S.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];I||(D.proxy.assets&&(N(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var x=s.ee.get(e),w=x.get("tracer");E[e]=b.g.OFF,x.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var A="api-",S=A+"ixn-";function _(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(A,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,x),(0,R.R)(x,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,x),T(x,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(A,e,!0,"api")})),p.addPageAction=I(A,"addPageAction",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(A,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return _(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return _("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return _("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,x),x.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,x)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,x),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,x)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,x),h||(0,a.p)(S+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,x),function(){if(w.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw w.emit("fn-err",[arguments,this,t],r),t}finally{w.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,x),i&&(0,a.p)(e+t,[(0,v.t)(),...arguments],r?null:this,i,x),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),x.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(S,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(S,"routeName",void 0,n.K7.softNav):I(A,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,x),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,x)},u.RI?(0,d.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,x,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),I=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.274.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-Sx2xJQrHp2m/Ngn/ZcfBCUwNr2Xy/C5urYtWpfm3bWpil4spXOQGTtNwIfF5HvPGioGASn9QTyE4Z+zC7r7wcg==",222:"sha512-hMte3OWgwwYeisSiD7WCIx/6tT16zLaPjag9uF4tIZp7ybOvrJKbeyzhe4fz1tDbkdcdOMm8dvgPPLBatSAGeA==",95:"sha512-MPaT9dkHv16XzwEUVZPyqpN1do/Er1XFAZoIAPYWylmv+iGIThqN+GwQq27pUyAX7sNXVJQVZezH96p53Ks3Pg=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={959:0,85:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,d=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);d<a.length;d++)o=a[d],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function d(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var u=i(425);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(891).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),T=i(2843),A=i(3878),E=i(782),S=i(1863);class _ extends b{static featureName=E.T;constructor(e,t=!0){super(e,E.T,t),g.RI&&((0,T.u)((()=>(0,w.p)("docHidden",[(0,S.t)()],void 0,E.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,S.t)()],void 0,E.T,this.ee))),this.importAggregator(e))}}var O=i(3969);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(e=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var K=i(8990);let M=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,K.I)(e,U,(function(){return M++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===d||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",Q=["arrayBuffer","blob","json","text","formData"],J=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(J&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,Q.forEach((e=>{r(J[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),d={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),de=["load","error","abort","timeout"],ue=de.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){T(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<ue;s++)r.addEventListener(de[s],this.listener,(0,A.jT)(!1))}function d(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function u(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<ue;t++)e.removeEventListener(de[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCazptureCalled||4!==e.readyState?null==t.status&&(t.status=0):T(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function T(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",d),t.on("xhr-load-added",u),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Te,Lc:Ae,uP:Ee,Rz:Se}=be;class _e extends b{static featureName=Te;constructor(e,t=!0){super(e,Te,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ee,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+xe,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#d=!1;async#c(e){if(!this.#d){this.#d=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled];g.RI&&e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)))))),r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785);class ke extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,u.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=d(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,_,_e,Ne,he,N,L,Pe,ke],loaderType:"pro"})})()})();</script> <meta content='on' http-equiv='cleartype'> <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> <meta content='True' name='HandheldFriendly'> <meta content='yes' name='apple-mobile-web-app-capable'> <meta content='black' name='apple-mobile-web-app-status-bar-style'> <meta content='telephone=no' name='format-detection'> <meta content='summary' name='twitter:card'> <meta content='Handy | About Us' name='twitter:title'> <meta content='Handy' name='author'> <meta content='Handy' name='og:site_name'> <meta content='@Handy' name='twitter:site'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='image' property='image'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='og:image' property='og:image'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='twitter:image' property='twitter:image'> <meta content='Handy is the leading platform for connecting individuals looking for household services with top-quality, pre-screened independent service professionals.' name='description' property='description'> <meta content='app-id=604419063' name='apple-itunes-app'> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-57x57.png" sizes="57x57" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-114x114.png" sizes="114x114" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-60x60.png" sizes="60x60" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-120x120.png" sizes="120x120" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-72x72.png" sizes="72x72" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-144x144.png" sizes="144x144" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-76x76.png" sizes="76x76" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-152x152.png" sizes="152x152" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-160x160.png" sizes="160x160" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-196x196.png" sizes="196x196" /> <meta content='#2d89ef' name='msapplication-TileColor'> <meta content='/mstile-144x144.png' name='msapplication-TileImage'> <meta name="stripe-key" content="pk_live_S11YUr7x6AxvE7QHPTRhCUQY" /> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="DLzQ8BQTDiWmZGEVEE7lqp+/riJpB/Df9DmSlEiPl2tUqSHZM6EEupN6mQ2h0KikkSn+XbXSTp+4K+UuFcLkJg==" /> <link rel="stylesheet" media="screen" href="https://cache.hbfiles.com/assets/font_manifest-df4b95e6619d4e537be4efe30d979f568f2a987b1f2176c9af8928064728ca53.css" /> <link rel="stylesheet" media="screen" href="https://cache.hbfiles.com/assets/application-4342066986960bfc8e30fa07efba820f9976403cc08ddca6a7a9021d736aaad6.css" /> <script type="text/javascript"> window.waitForGlobalLib = function(library, callback, count) { // Allow a string or array of strings to be passed in var lib = library; var remaining_lib_count = 0; if (lib instanceof Array) { lib = lib[0]; remaining_lib_count = library.length - 1; } if (count >= 10) { console.error("Library `" + lib + "` didn't load after 1 second"); } else if (window[lib]) { if (remaining_lib_count > 0) { // if there are libraries left, // continuing checking for them (immediately) setTimeout(waitForGlobalLib, 0, library.slice(1), callback, 0); } else { callback(); } } else { setTimeout(waitForGlobalLib, 100, library, callback, count ? count + 1 : 1); } }; </script> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","45877b80-bef0-4387-905f-8bbebc0bd9ce","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"JsISVGLG/l+JEGtN80yCrvX6fNCZyWUyp7ngu+uo7nLcgAas1+fSYVEmvPZn/Cny1ytbRFW1Zt32RVXh+5t7Gg==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{},"pageInfo":{"bookingId":null,"conversionType":null,"serviceName":null,"serviceCategory":null,"serviceId":null,"recurringFrequency":null,"zipcode":null,"dateOfBooking":null,"timeOfBooking":null,"dateAdded":null,"hourlyRate":null,"bookingHrs":null,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":0,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); </script> <script src="https://cache.hbfiles.com/assets/analytics-lib-67744239654dd45701c556d5ecdbe8ed42050829d29e3352f19a7403cb53a2ba.js"></script> <script src="https://cache.hbfiles.com/assets/accessibility-6ce81c161307e3641911a1964bb04a220f820a8a8e415ad48abcb26f6044cf9c.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/nav_dropdown-fc89864a75fb4c72b82d851a70571014fff2591705018c65edd6f9b20f821bea.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/newrelic_ignored_errors-83d3aadbead42c7e0d95d270341e67d0139ab49f22b7d4934596c9d1a7a3d98c.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js" crossorigin="anonymous" integrity="sha384-NXgwF8Kv9SSAr+jemKKcbvQsz+teULH/a5UNJvZc6kP47hZgl62M1vGnw6gHQhb1"></script> <script> window.jQuery || document.write("<script src='https://cache.hbfiles.com/jquery-3.7.0.min.js'><\/script>") </script> </head> <body class=''> <!-- 6.1 --> <div class='nav-drawer'> <ul class='nav-list-first nav-border-bottom'> <li class='nav-link'><a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Login</a></li> <li class='nav-link'><a target="_blank" class="trackable help" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li class='nav-link'><a class="pro-apply-link trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Become a Professional</a></li> </ul> <ul class='nav-list nav-border-bottom'> <li class='nav-link'><div class='services-dropdown-menu'> <ul> <li> <a class="services-dropdown-link" href="">Book Services</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> <i class='mobile fa fa-angle-down'></i> </li> <div class='nav-link nav-border-bottom services-dropdown-content'> <li class='nav-link'><a href="/services/home-cleaning">Home Cleaning</a></li> <li class='nav-link'><a href="/services/furniture-assembly">Furniture Assembly</a></li> <li class='nav-link'><a href="/services/mount-tv">TV Mounting</a></li> <li class='nav-link'><a href="/services/painting">Interior Painting</a></li> <li class='nav-link'><a href="/services/hanging-pictures-shelves">Hanging Pictures & Shelves</a></li> <li class='nav-link'><a href="/services/moving-help">Moving Help</a></li> <li class='nav-link'><a href="/services/other-handyman-service">Handyman Service</a></li> <li class='nav-link'><a href="/services/other-smart-device">Smart Device Installation</a></li> <li class='nav-link'><a href="/services/maid-service">Maid Service</a></li> <li class='nav-link'><a href="/services/housekeeping">Housekeeping</a></li> <li class='nav-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">See All</a> </li> </div> </ul> </div> </li> </ul> <div class='about-dropdown-menu'> <ul class='nav-list'> <li class='nav-link'> <a class="about-dropdown-link" href="">About</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> <i class='mobile fa fa-angle-down'></i> </li> <div class='about-dropdown-content'> <li class='nav-link'><a href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li class='nav-link'><a href="/press">Press</a></li> <li class='nav-link'><a href="/retail">Retail Partnerships</a></li> <li class='nav-link'><a href="/blog">Blog</a></li> <li class='nav-link'><a href="/careers">Careers</a></li> <li class='nav-link'><a href="/help">Contact Us</a></li> </div> </ul> <div class='about-dropdown-content'> <ul class='nav-list nav-border-top'> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#cookies-policy">Cookies</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li class='nav-link'> <form class="" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="9QSbSN2vyOAg5J9Dx9G3uHFT6npwgYsPdzigdgJWD3mtEWph+h3CfxX6Z1t2T/q2f8W6BaxUNU87KtfMXxt8NA==" autocomplete="off" /> <div class='select-wrapper footer-mobile-nav-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </div> </div> </div> <div class='nav-drawer with-drilldown'> <div class='mobile_menu'> <ul class='nav-list-first'> <li><a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Login</a></li> <li><a target="_blank" class="trackable help" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li><a class="pro-apply-link trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Become a Professional</a></li> <div class='nav__line'></div> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services'> All Services </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='#'> Services by Category </a> <ul> <li> <a href='#'> Cleaning </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_home_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_move_out_in_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_office_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deep_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <a href='#'> Installation </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_mount_tv' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_hanging_pictures_shelves' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_light_fixtures' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_ceiling_fan' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <a href='#'> Handyman </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_furniture_assembly' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_handyman_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_plumbing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_faucets_replacement' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_toilet_trouble' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_electrical' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_outlets' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_moving_help' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <a href='#'> Outdoor Projects </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_lawn_care_maintenance_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_gutter_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_removal' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_trimming' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_fence_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_and_porch_repair' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_repair_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_exterior_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_power_washing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <a href='#'> Home Renovations </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_bathroom_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_kitchen_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_basement_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_major_home_renovations' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_installing_wood_flooring' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_repair_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_6_windows_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_window_treatments' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </li> <div class='nav__line'></div> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='blog' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> <li> <a class="about-dropdown-link" href="">About</a> <ul> <li><a href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li><a href="/press">Press</a></li> <li><a href="/retail">Retail Partnerships</a></li> <li><a href="/blog">Blog</a></li> <li><a href="/careers">Careers</a></li> <li><a href="/help">Contact Us</a></li> <div class='nav__line'></div> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li><a href="/cookies">Cookies</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li> <form class="" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="YKhPIIlmVLA4vI5D67MrsVnemGyEvdNrKBDJXCjsmrg4vb4JrtReLw2idltaLWa/V0jIE1hobStkAr7mdaHp9Q==" autocomplete="off" /> <div class='select-wrapper footer-mobile-nav-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </li> </ul> </div> </div> <script> jQuery(function () { if (typeof $.fn.slinky === "undefined") { return } const slinkyConfig = { 'theme': 'slinky-theme-white' }; $('.mobile_menu').slinky(slinkyConfig); const backLinks = $('.slinky-menu .header'); backLinks.each(function () { const backTxt = $(this).parent().parent().find('a:first > span').text(); $('a', this).text(backTxt); }); }); </script> <div class='non-drawer-content'> <div class='non-drawer-content-overlay'></div> <div class='non-flash-banner-content'> <header class='site-header'> <div class='header-row ms-margin-left'> <div class='header-content-container'> <div class='header-logo'><a class="home-link" href="/"><svg viewBox="0 0 32 23" height="100%"><path d=" M22.472 6.592l-2.365 0.503v6.82l2.356-0.501c1.969-0.419 3.285-1.996 3.285-4.104-0-2.106-1.316-3.134-3.276-2.718zM24.229 9.633c0 1.367-0.819 2.147-1.822 2.36l-0.847 0.18-0-3.954 0.847-0.18c1.003-0.213 1.822 0.228 1.822 1.594zM14.59 8.268l-1.443 0.307 0 6.82 1.443-0.307v-4.329l2.819 3.73 1.444-0.307v-6.82l-1.444 0.307v4.33l-2.819-3.731zM6.252 13.445c0 2.106 1.316 3.135 3.276 2.718l2.365-0.503v-6.82l-2.356 0.501c-1.969 0.419-3.285 1.998-3.285 4.104zM9.593 10.764l0.847-0.181v3.954l-0.847 0.18c-1.003 0.213-1.822-0.228-1.822-1.594s0.819-2.146 1.822-2.359zM30.547 9.029c-0 0.904-0.483 1.459-1.238 1.62s-1.238-0.19-1.238-1.094v-4.153l-1.453 0.309v4.22c0 1.783 1.197 2.469 2.691 2.152 0.447-0.095 0.867-0.271 1.238-0.516 0 0 0 1.143 0 1.525v0c0 0.913-0.592 1.779-1.581 1.989l-28.965 6.157v1.519l29.378-6.244c1.64-0.349 2.621-1.784 2.621-3.297v-8.647l-1.453 0.309 0 4.153zM1.453 13.727c0-0.904 0.483-1.459 1.237-1.62s1.238 0.189 1.238 1.094v4.153l1.453-0.309v-4.22c0-1.782-1.197-2.469-2.691-2.151-0.447 0.096-0.867 0.271-1.237 0.516 0 0 0-1.145 0-1.526 0-0.913 0.592-1.778 1.581-1.989l28.965-6.157-0-1.519-29.378 6.245c-1.64 0.348-2.621 1.784-2.621 3.297v8.647l1.453-0.309v-4.153z " fill="#00cded"></path></svg> </a><div class='site-header-container'> <div class='nav-drawer-trigger right-bumper'><span class='menu-icon'></span></div> <ul class='nav-container'><li class='header-link'> <div class='dropdown services-menu menu'> <a class="trackable-mouseover-once" data-mixpanel-event="nav_bar_hover" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">All Services</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> </div> <div class='grid-container services-panel'> <div class='grid-x'> <div class='cell'> <ul class='services-columns four-columns'> <li> <span> Cleaning </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_home_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_move_out_in_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_office_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deep_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <span> Installation </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_mount_tv' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_hanging_pictures_shelves' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_light_fixtures' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_ceiling_fan' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <span> Handyman </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_furniture_assembly' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_handyman_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_plumbing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_faucets_replacement' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_toilet_trouble' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_electrical' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_outlets' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_moving_help' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <span> Outdoor Projects </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_lawn_care_maintenance_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_gutter_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_removal' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_trimming' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_fence_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_and_porch_repair' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_repair_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_exterior_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_power_washing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <span> Home Renovations <span class='new-category'>NEW!</span> </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_bathroom_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_kitchen_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_basement_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_major_home_renovations' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_installing_wood_flooring' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_repair_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_6_windows_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/painting'> Interior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_window_treatments' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </div> </div> <div class='grid-x button-row'> <div class='row all-services__button'> <a class='button primary trackable' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> See All Services </a> </div> </div> </div> <script> const servicesPanel = document.querySelector('.services-panel'); const servicesMenu = document.querySelector('.services-menu'); servicesPanel.addEventListener('mouseenter', function() { servicesMenu.classList.add('chevron-hack'); }); servicesPanel.addEventListener('mouseleave', function() { servicesMenu.classList.remove('chevron-hack'); }); </script></li><li class='header-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="blog" href="/blog">Blog</a></li></ul> <ul class='nav-container'><li class='header-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply">Become a Pro</a></li> <li class='header-link'><a target="_blank" class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li class='header-link'><a class="trackable right-bumper" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Log In</a></li></ul></div></div> </div> </div> </header> <div class='main-body-container'> <div class='about-header-img'> <div class='row'> <h1 class='header-text'> About Us </h1> </div> </div> <div class='blank-background'> <div class='row'> <div class='small-12 medium-10 small-centered columns'> <div class='small-12 columns'> <div class='about-content'> <h2 class='uppercase'>About Handy</h2> <p>Handy is the leading platform for connecting individuals looking for household services with top-quality, pre-screened independent service professionals. From home cleaning to handyman services, Handy instantly matches thousands of customers every week with top-rated professionals in cities all around the world. With a seamless 60-second booking process, secure payment, and backed by the Handy Happiness Guarantee, Handy is the easiest, most convenient way to book home services.</p> </div> </div> <div class='small-12 columns'> <div class='about-content'> <h2 class='uppercase'>Our Story</h2> <p>Handy, formerly known as Handybook, was founded in 2012 as a practical solution to an age-old problem: finding top-rated, effective professionals for common household services. Oisin Hanrahan was a 19-year old college student in Ireland when he decided to become a real estate developer in Eastern Europe. After scouring various cities on weekend breaks from Trinity College in Dublin, Hanrahan started buying and renovating apartments in Budapest. While renovating a series of apartments around the city, Oisin found it difficult to find quality handymen he could trust to get the job done. There was no easy way. A few years later, while attending Harvard Business School, Oisin and classmate, Umang Dua, realized the same was true in the U.S. They developed Handy to fill that void, with the goal of building the easiest, most convenient way for busy people everywhere to book household services.</p> </div> </div> <div class='small-12 columns'> <div class='about-content'> <h2 class='uppercase'>Our Founders</h2> <br> </div> </div> <div class='small-12 columns'> <img class="about-img" src="https://cache.hbfiles.com/assets/about/umangoisin-73f76585538b001d3be0a3ee38c84312a52ae3411870f83fff12fe74c0b68424.jpg" /> </div> <div class='small-12 columns'> <div class='bio-content'> <h3>Oisin Hanrahan, CEO</h3> <p>Oisin Hanrahan is the Co-Founder and CEO of Handy. Prior to founding Handy, Oisin founded MiCandidate, a service that provided real time political content to media companies in 25 European countries. He also founded Clearwater Group, a real estate development business in Budapest, Hungary. In 2009, Oisin co-founded The Undergraduate Awards, a foundation that supports and celebrates outstanding undergraduate students globally.</p> </div> </div> <div class='small-12 columns'> <div class='bio-content'> <h3>Umang Dua, COO</h3> <p>Umang Dua is the Co-Founder and COO of Handy. Prior to founding Handy, Umang founded College Connect, an online platform in India that connected aspiring college students with enrolled students around the world. Earlier, Umang was a Business Analyst at McKinsey & Company. Umang earned a Bachelor of Arts degree in Economics and Political Science from Amherst College.</p> </div> </div> <div class='small-12 columns'> <div class='bio-content'> <h3>Thank you to the many people who helped Handy get started.</h3> <p>Ignacio Leonhardt and Weina Scott were the first members of the founding team at Handy. After spending 9 months working with Handy, Ignacio moved back to Guatemala and is now running his family's business. Weina worked with Handy for 7 months, building the first version of the website, and now works on another startup in California. Bob Davis and Jeremiah Daly from Highland Capital Partners invested the first capital in Handy, followed by Joel Cutler and Nitesh Banta from General Catalyst Partners, David Tisch and Adam Rothenberg from Box Group, and Art Papas. Andrew Lurvey was Handy's first operations team member. Andrew joined Handy when we were four people in a small room. He spent two years working with Handy while we've grown to over 200 hundred people in 28 cities.</p> </div> </div> <div class='small-12 columns'> <div class='about-content'> <h3>Thank you to the many people who've subsequently joined the team and invested in Handy. It's because of your help that we're well on our way to changing the way the world buys services.</h3> </div> </div> </div> </div> </div> </div> <footer class='site-footer'> <div class='row hide-for-small search-footer-content-row'> <nav class='small-5 columns'> <ul class='footer-link-menu top-footer-links'> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="happiness_guarantee" href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="about" href="/about">About</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="press" href="/press">Press</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="careers" href="/careers">Careers</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="blog" href="/blog">Blog</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" href="/help">Help</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" href="/help">Contact Us</a></li> <br> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Be a Professional</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="retail" href="/retail">Retail Partnerships</a></li> <li class='pad-top2 footer-appstore-icons'> <div class='row'> <div class='small-12 columns'> <a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="app" href="https://handy.app.link/app"><img src="" data-img-src="https://cache.hbfiles.com/assets/miscellaneous/app-store-badge-4a71a8c7f185bad9ad8653a3267dafec0a9a649da7d5764c582fec70b8dc9f45.svg" class="lazy-loading " /></a> <a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="app" href="https://handy.app.link/app"><img src="" data-img-src="https://cache.hbfiles.com/assets/miscellaneous/play-store-badge-49e311a794277c754af75084413fbc788682c55ad83b651c681c99d6197c6bc1.svg" class="lazy-loading " /></a> </div> </div> </li> </ul> </nav> <nav class='small-4 columns'> <p class='footer-header'>Locations</p> <ul class='footer-link-menu'> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_boston" href="/services/home-cleaning/boston">Boston</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_chicago" href="/services/home-cleaning/chicago">Chicago</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_london" href="/services/home-cleaning/london">London</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_los-angeles" href="/services/home-cleaning/los-angeles">Los Angeles</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_new-york" href="/services/home-cleaning/new-york">New York</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_san-francisco" href="/services/home-cleaning/san-francisco">San Francisco</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_toronto" href="/services/home-cleaning/toronto">Toronto</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_vancouver" href="/services/home-cleaning/vancouver">Vancouver</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations" href="/locations">See all locations</a></li> <li class='header-link'> <form class="header-form-wrapper" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="jU71liVujeZ3R09TwtYB5dRKg/5Pkgl7S32+hLW1hrjVWwS/AtyHeUJZt0tzSEzr2tzTgZNHtzsHb8k+6Pj19Q==" autocomplete="off" /> <div class='select-wrapper header-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </nav> <nav class='small-3 columns'> <p class='footer-header'>Popular Services</p> <ul class='footer-link-menu'> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_home_cleaning" href="/services/home-cleaning">Cleaning</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_handyman_service" href="/services/other-handyman-service">Handyman</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_plumbing" href="/services/other-plumbing">Plumbing</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_electrical" href="/services/other-electrical">Electrical</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_moving_help" href="/services/moving-help">Moving Help</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_painting" href="/services/painting">Painting</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_furniture_assembly" href="/services/furniture-assembly">Furniture Assembly</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">See all services</a></li> </ul> </nav> </div> <div class='row hide-for-small search-footer-content-row'> <div class='footer-social-icon-row columns'> <a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="twitter" href="https://twitter.com/handy"><i class='fa lazy-loading' data-class='fa-twitter'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="facebook" href="https://facebook.com/handyhq"><i class='fa lazy-loading' data-class='fa-facebook'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="instagram" href="http://instagram.com/handy_hq"><i class='fa lazy-loading' data-class='fa-instagram'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="wikipedia" href="https://en.wikipedia.org/wiki/Handy_(company)"><i class='fa lazy-loading' data-class='fa-wikipedia-w'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="linkedin" href="https://www.linkedin.com/company/handyhq"><i class='fa lazy-loading' data-class='fa-linkedin'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="crunchbase" href="https://crunchbase.com/organization/handybook"><i class='fa lazy-loading' data-class='fa-cb'></i> </a></div> <div class='small-12 columns'> <div class='footer-divider'></div> </div> </div> <div class='row search-footer-content-row'> <div class='row footer-interlinks'> <div class='column headline'>Other Handy Services</div> <div class='column medium-5'> <ul> <li> <a href="https://www.handy.com/services/move-out-in-cleaning/boston">boston move in move out cleaning services</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning/chicago">chicago house cleaning</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning/near-me">cleaners near me</a> </li> </ul> </div> <div class='column medium-4'> <ul> <li> <a href="https://www.handy.com/services/cleaning-service">cleaning service</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/las-vegas">cleaning service in las vegas</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service">cleaning services</a> </li> </ul> </div> <div class='column medium-3'> <ul> <li> <a href="https://www.handy.com/services/housekeeping">housekeeping service</a> </li> <li> <a href="https://www.handy.com/services/maid-service">maids service</a> </li> <li> <a href="https://www.handy.com/services/affordable-maids">affordable maids</a> </li> </ul> </div> </div> <div class='small-12 columns'> <div class='footer-divider'></div> </div> </div> <div class='row pad-top lower-footer search-footer-content-row'> <div class='small-12 medium-8 columns footer-term-links'> <ul class='footer-secondary-links'> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="contact" href="/help">Contact</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="privacy" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="privacy" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cookies" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cookies" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#cookies-policy">Cookies</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="terms" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cancellation_policy" href="https://help.handy.com/handysupport/s/article/What-s-the-cancellation-policy--How-Handy-Works">Cancellation Policy</a></li> </ul> </div> <div class='small-12 medium-4 columns footer-copyright-text'> <div class='attribution-wrapper'> <span> 2024 Handy. All rights reserved. </span> <strong> Handy powered by Angi </strong> </div> </div> </div> <!-- BEGIN TRACERS --> <!-- handy_request_trace_id=f5e3e463d15f6e5837fc2c5d28c6d48d --> <!-- handy_user_trace_id=CsomxWdHNYqMWgAHQuwuAg== --> <!-- END TRACERS --> </footer> </div> </div> <script src="https://cache.hbfiles.com/assets/vendor/built-8f695339a51840c6b18455b0b02afe88e4d355e73f60ad4719021a17817342fc.js"></script> <script src="https://cache.hbfiles.com/assets/polyfills-cfc5672726f9bad46be17973ffae6c2e4b48ee765cc9cb93573b3235ec3bc12e.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/application-047e2ce373aa30fcb3f8426e63dc2263d3bc835f563b199305fefa434531bcd9.js" defer="defer"></script> <script class="handy-analytics-events" id="handy-analytics--events--mixpanel"> document.addEventListener('DOMContentLoaded', function(){ window.Handy = window.Handy || {}; if (typeof Handy.track === "function") { } if (typeof Handy.trackLink === "function") { } if (typeof Handy.trackVisibleElement === "function") { } }); </script> </body> </html>