PageSourceSearch

https://www.hibuwebsites.com/request-form

html hibuwebsites.com collected 2026-09-24 06:34:38 UTC 169,949 bytes, 3,201 lines download raw bytes

1<!doctype html >
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
3      class="ios-preview-native-scroll">
4<head>
5    <meta charset="utf-8">
6    
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45<script type="text/javascript">
46    window._currentDevice = 'desktop';
47    window.Parameters = window.Parameters || {
48        HomeUrl: 'https://www.hibuwebsites.com/',
49
50        SystemID: 'US_HIBU_PRODUCTION',
51        SiteAlias: '03345c75678a400f95e189230f569eaf',
52        SiteType: atob('RFVEQU9ORQ=='),
53        PublicationDate: 'Jun 28, 2022',
54        ExternalUid: '658707192',
55        IsSiteMultilingual: false,
56        InitialPostAlias: '',
57        InitialPostPageUuid: '',
58        InitialDynamicItem: '',
59        DynamicPageInfo: {
60            isDynamicPage: false,
61            base64JsonRowData: 'null',
62        },
63        InitialPageAlias: 'request-form',
64        InitialPageUuid: 'c6e4ebe700bb424da3a2325157d807a1',
65        InitialPageId: '73439243',
66        InitialEncodedPageAlias: 'cmVxdWVzdC1mb3Jt',
67        InitialHeaderUuid: '9f0a1206d4154f2791521bc71b400de3',
68        CurrentPageUrl: '',
69        IsCurrentHomePage: false,
70        AllowAjax: false,
71        AfterAjaxCommand: null,
72        HomeLinkText: 'Back To Home',
73        UseGalleryModule: false,
74        CurrentThemeName: 'Layout Theme',
75        ThemeVersion: '6405',
76        DefaultPageAlias: '',
77        RemoveDID: true,
78        WidgetStyleID: null,
79        IsHeaderFixed: false,
80        IsHeaderSkinny: false,
81        IsBfs: true,
82        StorePageAlias: 'null',
83        StorePagesUrls: 'e30=',
84        IsNewStore: 'false',
85        StorePath: '',
86        StoreId: 'null',
87        StoreVersion: 0,
88        StoreBaseUrl: '',
89        StoreCleanUrl: true,
90        StoreDisableScrolling: true,
91        IsStoreSuspended: false,
92        HasCustomDomain: true,
93        SimpleSite: false,
94        showCookieNotification: false,
95        cookiesNotificationMarkup: 'null',
96        translatedPageUrl: '',
97        isFastMigrationSite: false,
98        sidebarPosition: 'NA',
99        currentLanguage: 'en',
100        currentLocale: 'en',
101        NavItems: '{}',
102        errors: {
103            general: 'There was an error connecting to the page.<br/> Make sure you are not offline.',
104            password: 'Incorrect name/password combination',
105            tryAgain: 'Try again'
106        },
107        
108        mapConsent: {
109            message: 'This content is served by a third party, {0}. If enabled, {0} may collect information about your activity.',
110            enable: 'Enable'
111        },
112        NavigationAreaParams: {
113            ShowBackToHomeOnInnerPages: true,
114            NavbarSize: 4,
115            NavbarLiveHomePage: 'https://www.hibuwebsites.com/',
116            BlockContainerSelector: '.dmBody',
117            NavbarSelector: '#dmNav:has(a)',
118            SubNavbarSelector: '#subnav_main'
119        },
120        hasCustomCode: true,
121        planID: '753',
122        customTemplateId: 'null',
123        siteTemplateId: 'null',
124        productId: 'DM_DIRECT',
125        disableTracking: false,
126        pageType: 'FROM_SCRATCH',
127        isRuntimeServer: true,
128        isInEditor: false,
129        isInPreview: false,
130        hasNativeStore: false,
131        defaultLang: 'en',
132        hamburgerMigration: null,
133        isFlexSite: false
134    };
135
136    window.Parameters.LayoutID = {};
137    window.Parameters.LayoutID[window._currentDevice] = 6;
138    window.Parameters.LayoutVariationID = {};
139    window.Parameters.LayoutVariationID[window._currentDevice] = 5;
140</script>
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163<!-- Injecting site-wide to the head -->
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182<script type="text/javascript" id="d_track_campaign">
183    (function() {
184        if (!window.location.search) {
185            return;
186        }
187        const cleanParams = window.location.search.substring(1); // Strip ?
188        const queryParams = cleanParams.split('&');
189
190        const expires = 'expires=' + new Date().getTime() + 24 * 60 * 60 * 1000;
191        const domain = 'domain=' + window.location.hostname;
192        const path = "path=/";
193
194        queryParams.forEach((param) => {
195            const [key, value = ''] = param.split('=');
196            if (key.startsWith('utm_')) {
197                const cookieName = "_dm_rt_" + key.substring(4);
198                const cookie = cookieName + "=" + value;
199                const joined = [cookie, expires, domain, path].join(";");
200                document.cookie = joined;
201            }
202        });
203    }());
204</script>
vendor: 1 bytes, line 204
204
205<script type="text/javascript" id="d_track_referrer">
206    (function() {
207        const cookieName = '_dm_entry_referrer';
208        const referrer = document.referrer;
209        if (!referrer) {
210            return;
211        }
212        let referrerOrigin;
213        try {
214            referrerOrigin = new URL(referrer).origin;
215        } catch (e) {
216            return;
217        }
218        // 'null' is what an opaque origin (sandboxed iframe, file://) serializes to.
219        if (!referrerOrigin || referrerOrigin === 'null' || referrerOrigin === window.location.origin) {
220            return;
221        }
222        try {
223            const existing = document.cookie
224                .split('; ')
225                .find((candidate) => candidate.indexOf(cookieName + '=') === 0);
226            if (existing && decodeURIComponent(existing.slice(cookieName.length + 1))) {
227                return;
228            }
229            // No expiry: session-scoped, matching the _dm_rt_ cookies above that a submission
230            // reads alongside this one (session-scoped in practice — see FBN-5389).
231            const secure = window.location.protocol === 'https:' ? ';Secure' : '';
232            document.cookie = cookieName + '=' + encodeURIComponent(referrerOrigin)
233                + ';path=/;SameSite=Lax' + secure;
234        } catch (e) {
235            return;
236        }
237    }());
238</script>
238
239
240<script type="text/javascript" >
241    var _dm_gaq = {};
242    var _gaq = _gaq || [];
243    var _dm_insite = [];
244</script>
244
245
246
247
248
249
250
251<!-- End Injecting site-wide to the head -->
252
253<!-- Inject secured cdn script -->
254
255
256<!-- ========= Meta Tags ========= -->
257<!-- PWA settings -->
258<script>
259    function toHash(str) {
260        var hash = 5381, i = str.length;
261        while (i) {
262            hash = hash * 33 ^ str.charCodeAt(--i)
263        }
264        return hash >>> 0
265    }
266</script>
vendor: 1 bytes, line 266
266
267<script>
268    (function (global) {
269    //const cacheKey = global.cacheKey;
270    const isOffline = 'onLine' in navigator && navigator.onLine === false;
271    const hasServiceWorkerSupport = 'serviceWorker' in navigator;
272    if (isOffline) {
273        console.log('offline mode');
274    }
275    if (!hasServiceWorkerSupport) {
276        console.log('service worker is not supported');
277    }
278    if (hasServiceWorkerSupport && !isOffline) {
279        window.addEventListener('load', function () {
280            const serviceWorkerPath = '/runtime-service-worker.js?v=3';
281            navigator.serviceWorker
282                .register(serviceWorkerPath, { scope: './' })
283                .then(
284                    function (registration) {
285                        // Registration was successful
286                        console.log(
287                            'ServiceWorker registration successful with scope: ',
288                            registration.scope
289                        );
290                    },
291                    function (err) {
292                        // registration failed :(
293                        console.log('ServiceWorker registration failed: ', err);
294                    }
295                )
296                .catch(function (err) {
297                    console.log(err);
298                });
299        });
300
301        // helper function to refresh the page
302        var refreshPage = (function () {
303            var refreshing;
304            return function () {
305                if (refreshing) return;
306                // prevent multiple refreshes
307                var refreshkey = 'refreshed' + location.href;
308                var prevRefresh = localStorage.getItem(refreshkey);
309                if (prevRefresh) {
310                    localStorage.removeItem(refreshkey);
311                    if (Date.now() - prevRefresh < 30000) {
312                        return; // dont go into a refresh loop
313                    }
314                }
315                refreshing = true;
316                localStorage.setItem(refreshkey, Date.now());
317                console.log('refereshing page');
318                window.location.reload();
319            };
320        })();
321
322        function messageServiceWorker(data) {
323            return new Promise(function (resolve, reject) {
324                if (navigator.serviceWorker.controller) {
325                    var worker = navigator.serviceWorker.controller;
326                    var messageChannel = new MessageChannel();
327                    messageChannel.port1.onmessage = replyHandler;
328                    worker.postMessage(data, [messageChannel.port2]);
329                    function replyHandler(event) {
330                        resolve(event.data);
331                    }
332                } else {
333                    resolve();
334                }
335            });
336        }
337    }
338})(window);
339</script>
339
340<!-- Add manifest -->
341<!-- End PWA settings -->
342
343
344
345<link rel="canonical" href="http://www.hibuwebsites.com/request-form">
346
347<meta id="view" name="viewport" content="initial-scale=1, minimum-scale=1, maximum-scale=5, viewport-fit=cover">
348
349<meta name="apple-mobile-web-app-capable" content="yes">
350
351<!--Add favorites icons-->
352
353<link rel="icon" type="image/x-icon" href="https://cdn.websites.hibu.com/1c02a5e3326248d48476e9bb6fdaa9d8/site_favicon_16_1555599949070.ico"/>
354
355<!-- End favorite icons -->
356<link rel="preconnect" href="https://le-cdn.hibuwebsites.com"/>
357<link rel="preconnect" href="https://cdn.hibuwebsites.com" crossorigin/>
358<link rel="preconnect" href="https://static-res-cdn.websites.hibu.com"/>
359<link rel="preconnect" href="https://cdn.hibuwebsites.com"/>
360
361
362
363<!-- render the required CSS and JS in the head section -->
364<script id='d-js-dmapi'>
365    window.SystemID = 'US_HIBU_PRODUCTION';
366
367    if (!window.dmAPI) {
368        window.dmAPI = {
369            registerExternalRuntimeComponent: function () {
370            },
371            getCurrentDeviceType: function () {
372                return window._currentDevice;
373            },
374            runOnReady: (ns, fn) => {
375                const safeFn = dmAPI.toSafeFn(fn);
376                ns = ns || 'global_' + Math.random().toString(36).slice(2, 11);
377                const eventName = 'afterAjax.' + ns;
378
379                if (document.readyState === 'complete') {
380                    $.DM.events.off(eventName).on(eventName, safeFn);
381                    setTimeout(function () {
382                        safeFn({
383                            isAjax: false,
384                        });
385                    }, 0);
386                } else {
387                    window?.waitForDeferred?.('dmAjax', () => {
388                        $.DM.events.off(eventName).on(eventName, safeFn);
389                        safeFn({
390                            isAjax: false,
391                        });
392                    });
393                }
394            },
395            toSafeFn: (fn) => {
396                if (fn?.safe) {
397                    return fn;
398                }
399                const safeFn = function (...args) {
400                    try {
401                        return fn?.apply(null, args);
402                    } catch (e) {
403                        console.log('function failed ' + e.message);
404                    }
405                };
406                safeFn.safe = true;
407                return safeFn;
408            }
409        };
410    }
411
412    if (!window.requestIdleCallback) {
413        window.requestIdleCallback = function (fn) {
414            setTimeout(fn, 0);
415        }
416    }
417</script>
417
418
419<!-- loadCSS function header.jsp-->
420
421
422
423
424
425
426<script id="d-js-load-css">
427/**
428 * There are a few <link> tags with CSS resource in them that are preloaded in the page
429 * in each of those there is a "onload" handler which invokes the loadCSS callback
430 * defined here.
431 * We are monitoring 3 main CSS files - the runtime, the global and the page.
432 * When each load we check to see if we can append them all in a batch. If threre
433 * is no page css (which may happen on inner pages) then we do not wait for it
434 */
435(function () {
436  let cssLinks = {};
437  function loadCssLink(link) {
438    link.onload = null;
439    link.rel = "stylesheet";
440    link.type = "text/css";
441  }
442  
443    function checkCss() {
444      const pageCssLink = document.querySelector("[id*='CssLink']");
445      const widgetCssLink = document.querySelector("[id*='widgetCSS']");
446
447        if (cssLinks && cssLinks.runtime && cssLinks.global && (!pageCssLink || cssLinks.page) && (!widgetCssLink || cssLinks.widget)) {
448            const storedRuntimeCssLink = cssLinks.runtime;
449            const storedPageCssLink = cssLinks.page;
450            const storedGlobalCssLink = cssLinks.global;
451            const storedWidgetCssLink = cssLinks.widget;
452
453            storedGlobalCssLink.disabled = true;
454            loadCssLink(storedGlobalCssLink);
455
456            if (storedPageCssLink) {
457                storedPageCssLink.disabled = true;
458                loadCssLink(storedPageCssLink);
459            }
460
461            if(storedWidgetCssLink) {
462                storedWidgetCssLink.disabled = true;
463                loadCssLink(storedWidgetCssLink);
464            }
465
466            storedRuntimeCssLink.disabled = true;
467            loadCssLink(storedRuntimeCssLink);
468
469            requestAnimationFrame(() => {
470                setTimeout(() => {
471                    storedRuntimeCssLink.disabled = false;
472                    storedGlobalCssLink.disabled = false;
473                    if (storedPageCssLink) {
474                      storedPageCssLink.disabled = false;
475                    }
476                    if (storedWidgetCssLink) {
477                      storedWidgetCssLink.disabled = false;
478                    }
479                    // (SUP-4179) Clear the accumulated cssLinks only when we're
480                    // sure that the document has finished loading and the document 
481                    // has been parsed.
482                    if(document.readyState === 'interactive') {
483                      cssLinks = null;
484                    }
485                }, 0);
486            });
487        }
488    }
489  
490
491  function loadCSS(link) {
492    try {
493      var urlParams = new URLSearchParams(window.location.search);
494      var noCSS = !!urlParams.get("nocss");
495      var cssTimeout = urlParams.get("cssTimeout") || 0;
496
497      if (noCSS) {
498        return;
499      }
500      if (link.href && link.href.includes("d-css-runtime")) {
501        cssLinks.runtime = link;
502        checkCss();
503      } else if (link.id === "siteGlobalCss") {
504        cssLinks.global = link;
505        checkCss();
506      } 
507      
508      else if (link.id && link.id.includes("CssLink")) {
509        cssLinks.page = link;
510        checkCss();
511      } else if (link.id && link.id.includes("widgetCSS")) {
512        cssLinks.widget = link;
513        checkCss();
514      }
515      
516      else {
517        requestIdleCallback(function () {
518          window.setTimeout(function () {
519            loadCssLink(link);
520          }, parseInt(cssTimeout, 10));
521        });
522      }
523    } catch (e) {
524      throw e
525    }
526  }
527  window.loadCSS = window.loadCSS || loadCSS;
528})();
529</script>
529
530
531
532
533<script data-role="deferred-init" type="text/javascript">
534    /* usage: window.getDeferred(<deferred name>).resolve() or window.getDeferred(<deferred name>).promise.then(...)*/
535    function Def() {
536        this.promise = new Promise((function (a, b) {
537            this.resolve = a, this.reject = b
538        }).bind(this))
539    }
540
541    const defs = {};
542    window.getDeferred = function (a) {
543        return null == defs[a] && (defs[a] = new Def), defs[a]
544    }
545    window.waitForDeferred = function (b, a, c) {
546        let d = window?.getDeferred?.(b);
547        d
548            ? d.promise.then(a)
549            : c && ["complete", "interactive"].includes(document.readyState)
550                ? setTimeout(a, 1)
551                : c
552                    ? document.addEventListener("DOMContentLoaded", a)
553                    : console.error(`Deferred  does not exist`);
554    };
555</script>
555
556<style id="forceCssIncludes">
557    /* This file is auto-generated from a `scss` file with the same name */
558
559.videobgwrapper{overflow:hidden;position:absolute;z-index:0;width:100%;height:100%;top:0;left:0;pointer-events:none;border-radius:inherit}.videobgframe{position:absolute;width:101%;height:100%;top:50%;left:50%;transform:translateY(-50%) translateX(-50%);object-fit:fill}#dm video.videobgframe{margin:0}@media (max-width:767px){.dmRoot .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:80vh}}@media (min-width:1025px){.dmRoot .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:45vh}}@media (min-width:768px) and (max-width:1024px){.responsiveTablet .dmPhotoGallery.newPhotoGallery:not(.photo-gallery-done){min-height:45vh}}#dm [data-show-on-page-only]{display:none!important}#dmRoot div.stickyHeaderFix div.site_content{margin-top:0!important}#dmRoot div.stickyHeaderFix div.hamburger-header-container{position:relative}@media (min-width:768px) and (max-width:1024px){.responsiveTablet #dm .dmInner .hide-for-medium,[data-hidden-on-tablet]{display:none!important}}
560    
561
562</style>
563<style id="cssVariables" type="text/css">
564    
565</style>
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591<!-- Google Fonts Include -->
592
593
594
595
596
597
598
599
600
601
602
603
604
605<!-- loadCSS function fonts.jsp-->
606
607
608
609<link type="text/css" rel="stylesheet" href="https://cdn.hibuwebsites.com/fonts/css2?family=Source+Sans+Pro:wght@200;300;400;600;700;900&amp;subset=latin-ext&amp;display=swap"  />
610
611
612
613
614
615<!-- RT CSS Include d-css-runtime-desktop-one-package-new-->
616<link rel="stylesheet" type="text/css" href="https://static-res-cdn.websites.hibu.com/mnlt/production/6797/_dm/s/rt/dist/css/d-css-runtime-desktop-one-package-new.min.css" />
617
618<!-- End of RT CSS Include -->
619
620<link type="text/css" rel="stylesheet" href="https://cdn.hibuwebsites.com/WIDGET_CSS/0e62dce0138840dd48eed12c1ecc2aaf.css" id="widgetCSS" />
621
622<!-- Support `img` size attributes -->
623<style>img[width][height] {
624  height: auto;
625}</style>
626
627<!-- Support showing sticky element on page only -->
628<style>
629  body[data-page-alias="request-form"] #dm [data-show-on-page-only="request-form"] {
630    display: block !important;
631  }
632</style>
633
634<!-- This is populated in Ajax navigation -->
635<style id="pageAdditionalWidgetsCss" type="text/css">
636</style>
637
638
639
640
641<!-- Site CSS -->
642<link type="text/css" rel="stylesheet" href="https://cdn.hibuwebsites.com/03345c75678a400f95e189230f569eaf/files/03345c75678a400f95e189230f569eaf_1.min.css?v=2" id="siteGlobalCss" />
643
644
645<!-- additional css file per platform -->
646<link
647        type="text/css" rel="stylesheet"
648        href="/_dm/s/rt/css/hibu/hibu-runtime.css?version=2026-09-23T12_48_58"
649/>
650
651
652<style id="customWidgetStyle" type="text/css">
653    
654</style>
655<style id="innerPagesStyle" type="text/css">
656    
657</style>
658
659
660<style
661        id="additionalGlobalCss" type="text/css"
662>
663</style>
664
665<style id="pagestyle" type="text/css">
666    *#dm *.dmBody *.u_1766014014 *.dmformsubmit{
667float:LEFT !important}
668*#dm *.dmBody div.u_1766014014 *.dmforminput label{
669color:rgba(0,0,0,1) !important}
670*#dm *.dmBody div.u_1766014014 input[type="submit"]{
671font-weight:bold !important}
672*#dm *.dmBody *.u_1766014014 .dmform-success{
673text-align:LEFT !important}
674*#dm *.dmBody *.u_1766014014 .dmform-success .rteBlock{
675text-align:LEFT !important}
676</style>
677
678<style id="pagestyleDevice" type="text/css">
679    *#dm *.dmBody div.u_1248149678{
680float:none !important;
681top:0 !important;
682left:0 !important;
683width:100% !important;
684position:relative !important;
685height:auto !important;
686padding-top:0 !important;
687padding-left:40px !important;
688padding-bottom:0 !important;
689margin-right:auto !important;
690margin-left:auto !important;
691max-width:none !important;
692margin-top:0 !important;
693margin-bottom:0 !important;
694padding-right:40px !important;
695min-width:0 !important;
696text-align:center !important}
697*#dm *.dmBody div.u_1766014014{
698padding-top:0 !important;
699margin-top:-20px !important;
700margin-left:0 !important;
701padding-left:0 !important;
702padding-bottom:0 !important;
703margin-bottom:0 !important;
704margin-right:0 !important;
705padding-right:0 !important}
706</style>
707
708<!-- Flex Sections CSS -->
709
710
711
712
713
714
715
716<style id="globalFontSizeStyle" type="text/css">
717    .font-size-30, .size-30, .size-30 > font { font-size: 30px !important; }
718</style>
719<style id="pageFontSizeStyle" type="text/css">
720</style>
721
722
723
724
725<style id="hideAnimFix">
726  .dmDesktopBody:not(.editGrid) [data-anim-desktop]:not([data-anim-desktop='none']), .dmDesktopBody:not(.editGrid) [data-anim-extended] {
727    visibility: hidden;
728  }
729
730  .dmDesktopBody:not(.editGrid) .dmNewParagraph[data-anim-desktop]:not([data-anim-desktop='none']), .dmDesktopBody:not(.editGrid) .dmNewParagraph[data-anim-extended] {
731    visibility: hidden !important;
732  }
733
734  #dmRoot:not(.editGrid) .flex-element [data-anim-extended] {
735    visibility: hidden;
736  }
737
738</style>
739
740
741
742
743<style id="fontFallbacks">
744    
745</style>
746
747
748<!-- End render the required css and JS in the head section -->
749
750
751
752
753
754
755
756
757
758  <link type="application/rss+xml" rel="alternate" href="http://www.hibuwebsites.com/feed/rss2"/>
759  <link type="application/atom+xml" rel="alternate" href="http://www.hibuwebsites.com/feed/atom"/>
760  <meta property="og:type" content="website"/>
761  <meta property="og:url" content="http://www.hibuwebsites.com/request-form"/>
762  <title>
763    
764    Request _____________ | &lt;&lt;NOB&gt;&gt;
765  
766  </title>
767  <meta name="description" content="Request _________ from &lt;&lt;NOB>>. Motivating factor. Motivating factor (space permitting). Motivating factor (space permitting).   UPDATE PAGE URL TO MATCH REQUEST FORM TYPE i.e /request-estimate, /get-free-quote"/>
768  <style type="text/css">
769    
770    
771    
772    
773.dmInner {
774min-width: auto !important;
775max-width: 100vw !important;
776}
777
778  
779  
780  
781  </style>
782  <meta name="format-detection" content="telephone=no"/>
783
784  <meta name="twitter:card" content="summary"/>
785  <meta name="twitter:title" content="Request _____________ | &lt;&lt;NOB>>"/>
786  <meta name="twitter:description" content="Request _________ from &lt;&lt;NOB>>. Motivating factor. Motivating factor (space permitting). Motivating factor (space permitting).   UPDATE PAGE URL TO MATCH REQUEST FORM TYPE i.e /request-estimate, /get-free-quote"/>
787  <meta property="og:description" content="Request _________ from &lt;&lt;NOB>>. Motivating factor. Motivating factor (space permitting). Motivating factor (space permitting).   UPDATE PAGE URL TO MATCH REQUEST FORM TYPE i.e /request-estimate, /get-free-quote"/>
788  <meta property="og:title" content="Request _____________ | &lt;&lt;NOB>>"/>
789
790
791
792
793<!-- SYS- VVNfSElCVV9QUk9EVUNUSU9O -->
794</head>
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816<body id="dmRoot" data-page-alias="request-form"  class="dmRoot dmDesktopBody fix-mobile-scrolling addCanvasBorder dmResellerSite dmLargeBody "
817      style="padding:0;margin:0;"
818      
819    >
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835<!-- ========= Site Content ========= -->
836<div id="dm" class='dmwr'>
837    
838    <div class="dm_wrapper standard-var5 widgetStyle-3 standard">
839         <div dmwrapped="true" id="1233511975"> <div dmtemplateid="StandardLayoutMultiD" class="standardHeaderLayout dm-bfs dm-layout-sec hasAnimations hasStickyHeader dmPageBody d-page-1936388842 inputs-css-clean dmFreeHeader" id="dm-outer-wrapper" data-page-class="1936388842" data-buttonstyle="THICK_BORDER_ROUND" data-soch="true" data-background-parallax-selector=".dmHomeSection1, .dmSectionParallex"> <div id="dmStyle_outerContainer" class="dmOuter"> <div id="dmStyle_innerContainer" class="dmInner"> <div class="dmLayoutWrapper standard-var dmStandardDesktop"> <div> <div id="iscrollBody"> <div id="site_content"> <div class="dmHeaderContainer fHeader d-header-wrapper"> <div id="hcontainer" class="dmHeader p_hfcontainer u_hcontainer" freeheader="true" has-shadow="true"> <div dm:templateorder="85" class="dmHeaderResp dmHeaderStack noSwitch" id="1709005236"> <div class="dmRespRow fullBleedChanged fullBleedMode u_1367450802" id="1367450802"> <div class="dmRespColsWrapper" id="1937021165"> <div class="dmRespCol small-12 large-6 medium-6 u_1366752480" id="1366752480"> <div class="u_1766185638 widget-d1ee5d dmCustomWidget" data-lazy-load="" data-title="" id="1766185638" dmle_extension="custom_extension" data-element-type="custom_extension" wr="false" icon="false" surround="false" data-widget-id="d1ee5d5bf037471ea1770683731e577a" data-widget-version="22" data-widget-config="eyJtZXJjaGFudElkIjoiMTc5NDIiLCJ0aGVtZSI6ImxpZ2h0IiwibWluLXJldmlld3MiOiIzIiwibWluLXJhdGluZyI6IjQifQ=="> <div class="headerWidget" data-merchant="17942" data-theme="light" data-break="" data-count-limit="3" data-rating-limit="4"></div> 
840</div> 
841</div> 
842 <div class="dmRespCol large-6 medium-6 small-12 u_1653476552" id="1653476552"> <a data-display-type="block" class="u_1918503016 align-center dmButtonLink dmWidget dmWwr default dmOnlyButton dmDefaultGradient" file="false" href="/request-form" data-element-type="dButtonLinkId" id="1918503016"> <span class="iconBg" id="1693004465"> <span class="icon hasFontIcon icon-star" id="1675222523"></span> 
843</span> 
844 <span class="text" id="1547468839">Request &lt;&lt;Form Name&gt;&gt;</span> 
845</a> 
846</div> 
847</div> 
848</div> 
849 <div class="dmRespRow u_1867331532" id="1867331532"> <div class="dmRespColsWrapper" id="1955305792"> <div class="u_1697596152 dmRespCol small-12 medium-4 large-4" id="1697596152"> <div class="u_1303924522 dmRespRow" id="1303924522"> <div class="dmRespColsWrapper" id="1982888524"> <div class="u_1388887629 dmRespCol small-12 large-4 medium-4" id="1388887629"> <div class="u_1916980575 graphicWidget" data-element-type="graphic" data-widget-type="graphic" id="1916980575"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 70 70" id="1382430719" class="svg u_1382430719" data-icon-name="wp-location_pin"> <path d="M35,10c-9.4,0-17,7.6-17,17c0,4.1,1.5,8,4.1,11.1l0.1,0.1c4.6,5.3,7.9,10.8,9.9,16.4l1,3.7l0,0.1c0.3,1.1,1,1.6,1.9,1.6
850	c0.9,0,1.6-0.5,1.9-1.6l1-3.8c1.9-5.6,5.3-11.2,9.9-16.4l0.1-0.1C50.5,35,52,31.1,52,27C52,17.6,44.4,10,35,10z M35,33
851	c-3.3,0-6-2.7-6-6s2.7-6,6-6c3.3,0,6,2.7,6,6S38.3,33,35,33z"></path> 
852</svg> 
853</div> 
854</div> 
855 <div class="u_1286164759 dmRespCol small-12 large-8 medium-8" id="1286164759"> <div class="u_1864465045 widget-7b6cfb dmCustomWidget" data-lazy-load="" data-title="" id="1864465045" dmle_extension="custom_extension" data-element-type="custom_extension" wr="false" lock-element-for-editing="true" icon="false" surround="false" data-widget-id="7b6cfbac88324cffbaaf57354cd7a334" data-widget-version="227" data-widget-config="eyJnZXREaXJlY3Rpb25zVGV4dCI6IkdldCBEaXJlY3Rpb25zIiwiZ3JvdXBZZWFyRXN0YWJsaXNoZWQiOm51bGwsImgzRW1haWxUZXh0IjoiIiwidG9nZ2xlSDNBc3NvY2lhdGlvbnMiOm51bGwsImdyb3VwQml6TmFtZURlc2lnbiI6bnVsbCwidG9nZ2xlSDNTZXJ2aWNlcyI6bnVsbCwidHlwZSI6ImFkZHJlc3MiLCJib2xkTG9jYXRpb25OYW1lIjpudWxsLCJjb2xvclBpY2tlcjEiOm51bGwsImgzUGF5bWVudHNUZXh0IjpudWxsLCJncm91cEdvb2dsZUF0dHJpYnV0ZXMiOm51bGwsInBheW1lbnRHcm91cCI6bnVsbCwidG9nZ2xlSDNTcGVjaWFsdGllcyI6bnVsbCwic2VydmljZUFyZWFHcm91cCI6bnVsbCwic3RhdGUiOnRydWUsImdyb3VwU29jaWFsSWNvbnMiOm51bGwsInRvZ2dsZUgzU2VydmljZUFyZWEiOm51bGwsInNvY2lhbEdyb3VwIjpudWxsLCJ6aXAiOmZhbHNlLCJwaG9uZUxpc3RTdHlsZXMiOm51bGwsImNhcmRTdHlsZURhcmtPckxpZ2h0IjoidmFsdWUzIiwiaDNZZWFySGVhZFRleHQiOiIiLCJwYXltZW50T3B0aW9uc0J1bGxldCI6ImJ1bGxldCIsIi5hZGRyZXNzSGVhZGVyIjpudWxsLCJ0b2dnbGVIM2ZlYXRNZXNzYWdlIjpudWxsLCJicmFuZHNHcm91cCI6bnVsbCwicHJvZHVjdHNHcm91cCI6bnVsbCwiaDNLZXl3b3Jkc1RleHQiOm51bGwsInNjcmlwdCI6IiIsImdyb3VwS2V5d29yZHNEZXNpZ24iOm51bGwsImdyb3VwQXR0cmlidXRlcyI6bnVsbCwic29jaWFsSWNvbnNBbGlnbm1lbnQiOiJsZWZ0IiwibGFuZ3VhZ2VzQnVsbGV0IjoiYnVsbGV0IiwiZ3JvdXBFbWFpbERlc2lnbiI6bnVsbCwiaDNIb2xpZGF5SG91cnMiOiJIb2xpZGF5IEhvdXJzIiwic2hvd1BheW1lbnRzQXMiOm51bGwsInNlcnZpY2VzR3JvdXAiOm51bGwsImJvbGRTdGF0dXNUZXh0Ijp0cnVlLCJoM1NvY2lhbFRleHQiOm51bGwsImxvZ29Hcm91cCI6bnVsbCwiZ3JvdXBQaG9uZURlc2lnbiI6bnVsbCwicGhvbmVHcm91cCI6bnVsbCwiY2l0eSI6dHJ1ZSwiZ3JvdXBCaXpEZXNEZXNpZ24iOm51bGwsImgzaG91cnNUZXh0IjoiIiwiaDNTZXJ2aWNlQXJlYVRleHQiOm51bGwsImlzTGlzdCI6dHJ1ZSwiYm9sZEhvdXJzIjp0cnVlLCJ0b2dnbGVIM2hvdXJzIjpudWxsLCJncm91cEFkZGl0aW9uYWxIb3Vyc1RleHQiOm51bGwsImRlc2NyaXB0aW9uVGV4dEdyb3VwIjpudWxsLCJicmFuZHNCdWxsZXQiOiJidWxsZXQiLCJ0b2dnbGVIM2hvbGlkYXlIb3VycyI6dHJ1ZSwiYXNzb2NpYXRpb25zQnVsbGV0IjoiYnVsbGV0IiwibG9jYXRpb25Hcm91cCI6bnVsbCwidG9nZ2xlSDNHb29nbGVBdHRyaWJ1dGVzIjp0cnVlLCJ0b2dnbGVIM2Rlc2NyaXB0aW9uIjpudWxsLCJob2xpZGF5SG91cnNCdWxsZXQiOiJidWxsZXRzIiwidG9nZ2xlSDNMYW5ndWFnZXMiOm51bGwsInBob25lVHlwZSI6InBob25lIiwibG9jYXRpb25OYW1lIjpmYWxzZSwidG9nZ2xlSDNQYXltZW50cyI6bnVsbCwic2VydmljZUFyZWFCdWxsZXQiOiJidWxsZXQiLCJ0b2dnbGVIM1Byb2R1Y3RzIjpudWxsLCJncm91cEFkZHJl
855c3NEZXNpZ24iOm51bGwsIlBob25lIEhlYWRlciBHcm91cCI6bnVsbCwidG9nZ2xlSDNTb2NpYWwiOm51bGwsInNob3dTZXJ2aWNlQXJlYUZpcnN0IjpudWxsLCJhZGRpdGlvbmFsSG91cnNUZXh0IjpudWxsLCJoM1NwZWNpYWx0aWVzVGV4dCI6IiIsInRvZ2dsZUgzWWVhciI6bnVsbCwic3BlY2lhbHRpZXNHcm91cCI6bnVsbCwiZHJhd01hcCI6bnVsbCwiaW5zdHJ1Y3Rpb25zIjpudWxsLCJncm91cFByb2R1Y3RzRGVzaWduIjpudWxsLCJncm91cFNlcnZpY2VBcmVhRGVzaWduIjpudWxsLCJoM0FkZHJlc3NUZXh0IjoiIiwiZ3JvdXBTZXJ2aWNlc0Rlc2lnbiI6bnVsbCwidG9nZ2xlSDNQaG9uZUxpc3QiOm51bGwsImdyb3VwRmVhdHVyZWRNZXNzYWdlRGVzaWduIjpudWxsLCJoM1NlcnZpY2VzVGV4dCI6bnVsbCwiaDNQaG9uZVRleHQiOiIiLCJoM0Fzc29jaWF0aW9uc1RleHQiOiIiLCJwYXltZW50VGV4dEdyb3VwIjpudWxsLCJoM0Rlc2NyaXB0aW9uVGV4dCI6bnVsbCwic2hvd0dldERpcmVjdGlvbnNMaW5rIjpudWxsLCJncm91cFBheW1lbnREZWlzZ24iOm51bGwsImgzR29vZ2xlQXR0cmlidXRlcyI6IkJ1c2luZXNzIEF0dHJpYnV0ZXMiLCJ0b2dnbGVIM0FkZHJlc3MiOm51bGwsInNob3dFbWFpbEFzQnRuIjpudWxsLCJhc3NvY2lhdGlvbnNHcm91cCI6bnVsbCwiaDNQcm9kdWN0c1RleHQiOiIiLCJmb3JtYXRQaG9uZSI6dHJ1ZSwiZ3JvdXBMYW5ndWFnZXNEZXNpZ24iOm51bGwsInRvZ2dsZUgzS2V5d29yZHMiOm51bGwsImtleXdvcmRzR3JvdXAiOm51bGwsImFsdCI6bnVsbCwiaGlkZUhvdXJzTGlzdCI6ZmFsc2UsImdyb3VwSG9saWRheUhvdXJzRGVzaWduIjpudWxsLCJwaG9uZVNob3dBcyI6ImJ1dHRvbiIsImdvb2dsZUF0dHJpYnV0ZXNGb3JtYXR0ZWRMaXN0QnVsbGV0IjoiYnVsbGV0cyIsIm1hcFpvb20iOiIxMyIsImhvbGlkYXlIb3VycyI6bnVsbCwiZ3JvdXBIb3Vyc0Rlc2lnbiI6bnVsbCwiaDNMYW5ndWFnZXNUZXh0IjpudWxsLCJob3Vyc1Nob3dBcyI6Imxpc3QiLCJlbWFpbFRleHRHcm91cCI6bnVsbCwicGhvbmVMaXN0U3R5bGUiOiJidWxsZXRzIiwidG9nZ2xlMSI6bnVsbCwiaDNCcmFuZFRleHQiOiIiLCJsaW5rIjpudWxsLCJncm91cFBheW1lbnRDYXJkRGVzaWduIjpudWxsLCJncm91cFNwZWNpYWx0aWVzRGVzaWduIjpudWxsLCJ5ZWFyRXN0YWJpbGlzaGVkR3JvdXAiOm51bGwsInBob25lVGV4dFN0eWxlcyI6bnVsbCwiZ3JvdXBBc3NvY2lhdGlvbnNEZXNpZ24iOm51bGwsInNwZWNpYWx0aWVzQnVsbGV0IjoiYnVsbGV0IiwiaDNGZWF0TWVzc2FnZVRleHQiOm51bGwsInRvZ2dsZUgzQnJhbmRzIjpudWxsLCJhZGRyZXNzMiI6ZmFsc2UsImFkZHJlc3MxIjpmYWxzZSwiY2FyZEFsaWdubWVudCI6InBpY29ucy1jZW50ZXIiLCJncm91cExvZ29EZXNpZ24iOm51bGwsImdyb3VwT3BlbkhvdXJzRGVzaWduIjpudWxsLCJmZWF0TWVzc2FnZUdyb3VwIjpudWxsLCJrZXl3b3Jkc0J1bGxldCI6ImJ1bGxldCIsInRvZ2dsZUgzRW1haWwiOm51bGwsInNlcnZpY2VzQnVsbGV0IjpudWxsLCJncm91cEJyYW5kc0Rlc2lnbiI6bnVsbCwicHJvZHVjdHNCdWxsZXQiOiJidWxsZXQiLCJsYW5ndWFnZXNHcm91cCI6bnVsbCwiaG91cnNHcm91cCI6bnVsbH0="> <div class="yextAddress"> <div style="display:none"> <span class="" data-yext-field="locationName"></span> 
856</div> 
857 <div style="display:none"> <span data-yext-field="address1"></span> 
858</div> 
859 <div style="display:none"> <span data-yext-field="address2"></span> 
860</div> 
861 <div> <span> <span data-yext-field="city"></span> 
862 <span style="margin-left: -3px;">,</span> 
863</span> 
864 <span> <span data-yext-field="state"></span> 
865</span> 
866 <span style="display:none"> <span data-yext-field="zip"></span> 
867</span> 
868</div> 
869</div> 
870 <div class="editorOnlyInfo" data-nosnippet="">This is a placeholder for the Yext Knolwedge Tags. This message will not appear on the live site, but only within the editor. The Yext Knowledge Tags are successfully installed and will be added to the website.</div> 
871 <div class="wrongScriptError" data-nosnippet=""><!--The Yext script you entered is empty or incorrect: .<br/>--><!--It should look like:<br/>--><!-- <pre>--><!--    <code>--><!--&lt;script async defer src="https://knowledgetags.yextpages.net/embed?key=KEY&account_id=ACCOUNT_ID&location_id=LOCATIONS_ID" type="text/javascript"&gt;&lt;/script&gt;--><!--    </code>--><!--</pre>--></div> 
872<!-- Load Yext Script into page source so schema validates with Structured Data testing tool --></div> 
873</div> 
874</div> 
875</div> 
876</div> 
877 <div class="u_1155150290 dmRespCol small-12 medium-4 large-4" id="1155150290"> <div class="u_1280855790 imageWidget align-center" data-element-type="image" data-widget-type="image" id="1280855790"> <a id="1718291829" href="/" file="false"><img src="https://le-cdn.hibuwebsites.com/1c02a5e3326248d48476e9bb6fdaa9d8/dms3rep/multi/opt/Default-Logo-189x108-1920w.png" id="1513103595" class="" data-dm-image-path="https://cdn.websites.hibu.com/1d9ebc6ae52b4ea29931d62698e8c06f/dms3rep/multi/Default-Logo-189x108.png" onerror="handleImageLoadError(this)"/></a> 
878</div> 
879</div> 
880 <div class="dmRespCol small-12 u_1541614883 medium-4 large-4" id="1541614883"> <div class="u_1932231695 dmRespRow" id="1932231695"> <div class="dmRespColsWrapper" id="1343933041"> <div class="u_1972045051 dmRespCol small-12 large-5 medium-5" id="1972045051"> <div class="u_1078251265 graphicWidget" data-element-type="graphic" data-widget-type="graphic" id="10
88078251265"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 1408 1792" id="1812374094" class="svg u_1812374094" data-icon-name="fa-phone"> <path fill="inherit" d="M1408 1240q0 27-10 70.5t-21 68.5q-21 50-122 106-94 51-186 51-27 0-52.5-3.5t-57.5-12.5-47.5-14.5-55.5-20.5-49-18q-98-35-175-83-128-79-264.5-215.5t-215.5-264.5q-48-77-83-175-3-9-18-49t-20.5-55.5-14.5-47.5-12.5-57.5-3.5-52.5q0-92 51-186 56-101 106-122 25-11 68.5-21t70.5-10q14 0 21 3 18 6 53 76 11 19 30 54t35 63.5 31 53.5q3 4 17.5 25t21.5 35.5 7 28.5q0 20-28.5 50t-62 55-62 53-28.5 46q0 9 5 22.5t8.5 20.5 14 24 11.5 19q76 137 174 235t235 174q2 1 19 11.5t24 14 20.5 8.5 22.5 5q18 0 46-28.5t53-62 55-62 50-28.5q14 0 28.5 7t35.5 21.5 25 17.5q25 15 53.5 31t63.5 35 54 30q70 35 76 53 3 7 3 21z"></path> 
881</svg> 
882</div> 
883</div> 
884 <div class="u_1420927207 dmRespCol small-12 large-7 medium-7" id="1420927207"> <div class="widget-7b6cfb u_1735876590 dmCustomWidget" data-lazy-load="" data-title="" id="1735876590" dmle_extension="custom_extension" data-element-type="custom_extension" wr="false" lock-element-for-editing="true" icon="false" surround="false" data-widget-id="7b6cfbac88324cffbaaf57354cd7a334" data-widget-version="227" data-widget-config="eyJzY3JpcHQiOiIiLCJpbnN0cnVjdGlvbnMiOm51bGwsInR5cGUiOiJwaG9uZSIsImhvdXJzR3JvdXAiOm51bGwsImhvdXJzU2hvd0FzIjoibGlzdCIsImlzTGlzdCI6dHJ1ZSwiYWRkaXRpb25hbEhvdXJzVGV4dCI6bnVsbCwiaGlkZUhvdXJzTGlzdCI6ZmFsc2UsInRvZ2dsZUgzaG91cnMiOm51bGwsImgzaG91cnNUZXh0IjoiIiwibG9jYXRpb25Hcm91cCI6bnVsbCwibG9jYXRpb25OYW1lIjpmYWxzZSwiYWRkcmVzczEiOnRydWUsImFkZHJlc3MyIjp0cnVlLCJjaXR5Ijp0cnVlLCJzdGF0ZSI6dHJ1ZSwiemlwIjp0cnVlLCJkcmF3TWFwIjpudWxsLCJ0b2dnbGVIM0FkZHJlc3MiOm51bGwsImgzQWRkcmVzc1RleHQiOiIiLCJzaG93R2V0RGlyZWN0aW9uc0xpbmsiOm51bGwsImdldERpcmVjdGlvbnNUZXh0IjoiR2V0IERpcmVjdGlvbnMiLCJsb2dvR3JvdXAiOm51bGwsImxpbmsiOm51bGwsImFsdCI6bnVsbCwicGhvbmVHcm91cCI6bnVsbCwicGhvbmVUeXBlIjoicGhvbmUiLCJwaG9uZVNob3dBcyI6InRleHQiLCJmb3JtYXRQaG9uZSI6dHJ1ZSwidG9nZ2xlSDNQaG9uZUxpc3QiOm51bGwsImgzUGhvbmVUZXh0IjoiIiwiYnJhbmRzR3JvdXAiOm51bGwsInRvZ2dsZUgzQnJhbmRzIjpudWxsLCJoM0JyYW5kVGV4dCI6IiIsImFzc29jaWF0aW9uc0dyb3VwIjpudWxsLCJ0b2dnbGVIM0Fzc29jaWF0aW9ucyI6bnVsbCwiaDNBc3NvY2lhdGlvbnNUZXh0IjoiIiwic3BlY2lhbHRpZXNHcm91cCI6bnVsbCwidG9nZ2xlSDNTcGVjaWFsdGllcyI6bnVsbCwiaDNTcGVjaWFsdGllc1RleHQiOiIiLCJzZXJ2aWNlc0dyb3VwIjpudWxsLCJ0b2dnbGVIM1NlcnZpY2VzIjpudWxsLCJoM1NlcnZpY2VzVGV4dCI6bnVsbCwic2VydmljZUFyZWFHcm91cCI6bnVsbCwidG9nZ2xlSDNTZXJ2aWNlQXJlYSI6bnVsbCwiaDNTZXJ2aWNlQXJlYVRleHQiOm51bGwsInByb2R1Y3RzR3JvdXAiOm51bGwsInRvZ2dsZUgzUHJvZHVjdHMiOm51bGwsImgzUHJvZHVjdHNUZXh0IjoiIiwibGFuZ3VhZ2VzR3JvdXAiOm51bGwsInRvZ2dsZUgzTGFuZ3VhZ2VzIjpudWxsLCJoM0xhbmd1YWdlc1RleHQiOm51bGwsImtleXdvcmRzR3JvdXAiOm51bGwsInRvZ2dsZUgzS2V5d29yZHMiOm51bGwsImgzS2V5d29yZHNUZXh0IjpudWxsLCJwYXltZW50R3JvdXAiOm51bGwsInNob3dQYXltZW50c0FzIjpudWxsLCJwYXltZW50VGV4dEdyb3VwIjpudWxsLCJ0b2dnbGVIM1BheW1lbnRzIjpudWxsLCJoM1BheW1lbnRzVGV4dCI6bnVsbCwieWVhckVzdGFiaWxpc2hlZEdyb3VwIjpudWxsLCJ0b2dnbGVIM1llYXIiOm51bGwsImgzWWVhckhlYWRUZXh0IjoiIiwiZGVzY3JpcHRpb25UZXh0R3JvdXAiOm51bGwsInRvZ2dsZUgzZGVzY3JpcHRpb24iOm51bGwsImgzRGVzY3JpcHRpb25UZXh0IjpudWxsLCJmZWF0TWVzc2FnZUdyb3VwIjpudWxsLCJ0b2dnbGVIM2ZlYXRNZXNzYWdlIjpudWxsLCJoM0ZlYXRNZXNzYWdlVGV4dCI6bnVsbCwiZW1haWxUZXh0R3JvdXAiOm51bGwsInNob3dFbWFpbEFzQnRuIjpudWxsLCJ0b2dnbGVIM0VtYWlsIjpudWxsLCJoM0VtYWlsVGV4dCI6IiIsInNvY2lhbEdyb3VwIjpudWxsLCJ0b2dnbGVIM1NvY2lhbCI6bnVsbCwiaDNTb2NpYWxUZXh0IjpudWxsLCJtYXBab29tIjoiMTMiLCJob2xpZGF5SG91cnMiOm51bGwsInRvZ2dsZUgzaG9saWRheUhvdXJzIjp0cnVlLCJoM0hvbGlkYXlIb3VycyI6IkhvbGlkYXkgSG91cnMiLCJncm91cEF0dHJpYnV0ZXMiOm51bGwsInRvZ2dsZUgzR29vZ2xlQXR0cmlidXRlcyI6dHJ1ZSwiaDNHb29nbGVBdHRyaWJ1dGVzIjoiQnVzaW5lc3MgQXR0cmlidXRlcyIsImdyb3VwWWVhckVzdGFibGlzaGVkIjpudWxsLCJncm91cEJpek5hbWVEZXNpZ24iOm51bGwsImJvbGRMb2NhdGlvbk5hbWUiOm51bGwsImNvbG9yUGlja2VyMSI6bnVsbCwiZ3JvdXBHb29nbGVBdHRyaWJ1dGVzIjpudWxsLCJncm91cFNvY2lhbEljb25zIjpudWxsLCJwaG9uZUxpc3RTdHlsZXMiOm51bGwsImNhcmRTdHlsZURhcmtPckxpZ2h0IjoidmFsdWUzIiwicGF5bWVudE9wdGlvbnNCdWxsZXQiOiJidWxsZXQiLCIuYWRkcmVzc0hlYWRlciI6bnVsbCwiZ3JvdXBLZXl3b3Jkc0Rlc2lnbiI6bnVsbCwic29jaWFsSWNvbnNBbGlnbm1lbnQiOiJsZWZ0IiwibGFuZ3VhZ2VzQnVsbGV0IjoiYnVsbGV0IiwiZ3JvdXBFbWFpbERlc2lnbiI6bnVsbCwiYm9sZFN0YXR1c1RleHQiOnRydWUsImdyb3VwUGhvbmVEZXNpZ24iOm51bGwsImdyb3VwQml6RGVzRGVzaWduIjpudWxsLCJib2xkSG91cnMiOnRydWUsImdyb3VwQWRkaXRpb25hbEhvdXJzVGV4dCI6bnVsbCwiYnJhbmRzQnVsbGV0IjoiYnVsbGV0IiwiYXNzb2NpYXRpb25zQnVsbGV0IjoiYnVsbGV0IiwiaG9saWRheUhvdXJzQnVsbGV0IjoiYnVsbGV0cyIsInNlcnZpY2VBcmVhQnVsbGV0IjoiYnVsbGV0IiwiZ3JvdXBBZGRyZXNzRGVzaWduIjpudWxsLCJQaG9uZSBIZWFkZXIgR3JvdXAiOm51bGwsInNob3dTZXJ2aWNlQXJlYUZpcnN0IjpudWxsLCJncm91cFByb2R1Y3RzRGVzaWduIjpudWxsLCJncm91cFNlcnZpY2VBcmVhRGVzaWduIjpudWxsLCJncm91cFNlcnZpY2VzRGVzaWduIjpudWxsLCJncm91cEZlYXR1cmVkTWVzc2FnZURlc2lnbiI6bnVsbCwiZ3JvdXBQYXltZW50RGVpc2duIjpudWxsLCJncm91cExhbmd1YWdlc0Rlc2lnbiI6bnVsbCwiZ3JvdXBIb2xpZGF5SG91cnNEZXNpZ24iOm51bGwsImdvb2dsZUF0dHJpYnV0ZXNGb3JtYXR0ZWRMaXN0QnVsbGV0IjoiYnVsbGV0cyIsImdyb3VwSG91cnNEZXNpZ24iOm51bGwsInBob25lTGlzdFN0eWxlIjoiYnVsbGV0cyIsInRvZ2dsZTEiOm51bGwsImdyb3VwUGF5bWVudENhcmREZXNpZ24iOm51bGwsImdyb3VwU3BlY2lhbHRpZXNEZXNpZ24iOm51bGwsInBob25lVG
884V4dFN0eWxlcyI6bnVsbCwiZ3JvdXBBc3NvY2lhdGlvbnNEZXNpZ24iOm51bGwsInNwZWNpYWx0aWVzQnVsbGV0IjoiYnVsbGV0IiwiY2FyZEFsaWdubWVudCI6InBpY29ucy1jZW50ZXIiLCJncm91cExvZ29EZXNpZ24iOm51bGwsImdyb3VwT3BlbkhvdXJzRGVzaWduIjpudWxsLCJrZXl3b3Jkc0J1bGxldCI6ImJ1bGxldCIsInNlcnZpY2VzQnVsbGV0IjpudWxsLCJncm91cEJyYW5kc0Rlc2lnbiI6bnVsbCwicHJvZHVjdHNCdWxsZXQiOiJidWxsZXQifQ=="> <a onclick=";return dm_gaq_push_event('ClickToCall', 'Call',null, dmAPI.getSiteName(), this);" data-yext-field="phone" class="yextPhoneText"> <span class="text"></span> 
885</a> 
886 <div class="editorOnlyInfo" data-nosnippet="">This is a placeholder for the Yext Knolwedge Tags. This message will not appear on the live site, but only within the editor. The Yext Knowledge Tags are successfully installed and will be added to the website.</div> 
887 <div class="wrongScriptError" data-nosnippet=""><!--The Yext script you entered is empty or incorrect: .<br/>--><!--It should look like:<br/>--><!-- <pre>--><!--    <code>--><!--&lt;script async defer src="https://knowledgetags.yextpages.net/embed?key=KEY&account_id=ACCOUNT_ID&location_id=LOCATIONS_ID" type="text/javascript"&gt;&lt;/script&gt;--><!--    </code>--><!--</pre>--></div> 
888<!-- Load Yext Script into page source so schema validates with Structured Data testing tool --></div> 
889</div> 
890</div> 
891</div> 
892</div> 
893</div> 
894</div> 
895 <div class="dmRespRow u_1827972418" id="1827972418"> <div class="dmRespColsWrapper" id="1584211045"> <div class="dmRespCol large-12 medium-12 small-12 u_1239106891" id="1239106891"> <nav class="u_1190878319 effect-bottom2 main-navigation unifiednav dmLinksMenu" role="navigation" layout-main="horizontal_nav_layout_1" layout-sub="submenu_horizontal_1" data-show-vertical-sub-items="HOVER" id="1190878319" dmle_extension="onelinksmenu" data-element-type="onelinksmenu" wr="true" icon="true" surround="true" adwords="" navigation-id="unifiedNav"> <ul role="menubar" class="unifiednav__container unav-top  " data-auto="navigation-pages"> <li role="menuitem" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="0"> <a href="/" class="unifiednav__item unav-item unav-top-item  dmUDNavigationItem_00  " target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
896         Home
897        " data-auto="page-text-style">Home<span class="icon icon-angle-down"></span> 
898</span> 
899</a> 
900</li> 
901 <li role="menuitem" aria-haspopup="true" aria-expanded="false" data-sub-nav-menu="true" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="0"> <a href="#" class="unifiednav__item unav-item unav-top-item  dmUDNavigationItem_010101756583  unifiednav__item_has-sub-nav" target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
902         Services
903        " data-auto="page-text-style">Services<span class="icon icon-angle-down"></span> 
904</span> 
905</a> 
906 <ul role="menu" class="unifiednav__container unifiednav__container_sub-nav unav-sub" data-depth="0" data-auto="sub-pages"> <li role="menuitem" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="1"> <a href="/copy-of-copy-of-services-one" class="unifiednav__item unav-item   dmUDNavigationItem_010101373034  " target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
907           Services
908          " data-auto="page-text-style">Services<span class="icon icon-angle-right"></span> 
909</span> 
910</a> 
911</li> 
912</ul> 
913</li> 
914 <li role="menuitem" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="0"> <a href="/reviews" class="unifiednav__item unav-item unav-top-item  dmUDNavigationItem_010101497480  " target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
915         Reviews
916        " data-auto="page-text-style">Reviews<span class="icon icon-angle-down"></span> 
917</span> 
918</a> 
919</li> 
920 <li role="menuitem" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="0"> <a href="/about" class="unifiednav__item unav-item unav-top-item  dmUDNavigationItem_010101661768  " target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
921         About
922        " data-auto="page-text-style">About<span class="icon icon-angle-down" data-hidden-on-mobile="" data-hidden-on-desktop="" data-hidden-on-tablet=""></span> 
923</span> 
924</a> 
925</li> 
926 <li role="menuitem" aria-haspopup="true" aria-expanded="false" data-sub-nav-menu="true" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="0"> <a href="/contact" class="unifiednav__item unav-item unav-top-item  dmUDNavigationItem_01010198084  unifiednav__item_has-sub-nav" target="" data-target-page-alias=""> <span class="nav-item-text " data-link-text="
927         Contact
928        " data-auto="page-text-style">Contact<span class="icon icon-angle-down"></span> 
929</span> 
930</a> 
931 <ul role="menu" class="unifiednav__container unifiednav__container_sub-nav unav-sub" data-depth="0" data-auto="sub-pages"> <li role="menuitem" class=" unifiednav__item-wrap " data-auto="more-pages" data-depth="1"> <a href="/request-form" class="unifiednav__item unav-item   dmNavItemSelected  dmUDNavigationItem_010101292291  " target="" data-target-page-alias="" aria-current="page" data-auto="selected-page"> <span class="nav-item-text " data-link-text="
932           Request <<Form Name>>
933          " data-auto="page-text-style">Request &lt;&lt;Form Name&gt;&gt;<span class="icon icon-angle-right"></span> 
934</span> 
935</a> 
936</li> 
937</ul> 
938</li> 
939</ul> 
940</nav> 
941</div> 
942</div> 
943</div> 
944</div> 
945</div> 
946</div> 
947 <div class="stickyHeaderSpacer" id="stickyHeaderSpacer" data-new="true"></div> 
948 <div class="dmRespRow dmRespRowStable dmRespRowNoPadding dmPageTitleRow "> <div class="dmRespColsWrapper">
948 <div class="large-12 dmRespCol"> <div id="innerBar" class="innerBar lineInnerBar dmDisplay_None"> <div class="titleLine display_None"><hr/></div> 
949<!-- Page title is hidden in css for new responsive sites. It is left here only so we don't break old sites. Don't copy it to new layouts --> <div id="pageTitleText"> <div class="innerPageTitle">Request &lt;&lt;Form Name&gt;&gt;</div> 
950</div> 
951 <div class="titleLine display_None"><hr/></div> 
952</div> 
953</div> 
954</div> 
955</div> 
956 <div dmwrapped="true" id="dmFirstContainer" class="dmBody u_dmStyle_template_request-form"> <div id="allWrapper" class="allWrapper"> <div id="dm_content" class="dmContent" role="main"> <div dm:templateorder="1" class="dmDefaultRespTmpl" id="1936388842"> <div class="innerPageTmplBox dmDefaultPage  dmRespRowsWrapper" id="1690690789"> <div class="u_1248149678 dmRespRow" style="text-align: center;" id="1248149678"> <div class="dmRespColsWrapper" id="1139448797"> <div class="dmRespCol small-12 medium-12 large-12" id="1862675496"> <div class="dmNewParagraph" data-element-type="paragraph" data-version="5" id="1934905477" style="transition: opacity 1s ease-in-out 0s;"> <h3><span style="display: initial;">Request &lt;&lt;Form Name&gt;&gt;</span></h3> 
957</div> 
958 <div class="dmform default u_1766014014 native-inputs" data-element-type="dContactUsRespId" id="1766014014" captcha="true" data-captcha-position="text" data-captcha-message="PHAgY2xhc3M9InJ0ZUJsb2NrIj5UaGlzIHNpdGUgaXMgcHJvdGVjdGVkIGJ5IHJlQ0FQVENIQS48L3A+"> <h3 class="dmform-title dmwidget-title" id="1863730966" hide="true">Request &lt;&lt;Form Name&gt;&gt;</h3> 
959 <div class="dmform-wrapper" id="1362122045" captcha-lang="en"> <form method="post" class="dmRespDesignRow" locale="ENGLISH" id="1133746988"> <div class="dmforminput small-12 dmRespDesignCol newLine medium-12 large-12" id="1682042795"> <label for="dmform-5" id="1699316785" class="" hide="true">Free Text</label> 
960 <div class="freetextwrapper" id="1535627726"><p class="rteBlock" id="1779049161">Fill out this short form and a(n) &lt;&lt;NOB&gt;&gt; &nbsp;representative will contact you &lt;&lt;time frame&gt;&gt; &nbsp;to &lt;&lt;CTA&gt;&gt;.&nbsp;</p></div> 
961<input type="hidden" name="label-dmform-5" value="Free Text" id="1922290433" class=""/></div> 
962 <div class="dmforminput required  small-12 dmRespDesignCol medium-6 large-6" id="1488060371"> <label for="1156231752" id="1977141059" data-dm-for="dmform-0">Name*</label> 
963<input type="text" class="" name="dmform-0" id="1156231752"/><input type="hidden" name="label-dmform-0" value="Name*" id="1869490912" class=""/></div> 
964 <div class="dmforminput  small-12 dmRespDesignCol medium-6 large-6 required" id="1568821357"> <label for="1266727981" id="1757460738" data-dm-for="dmform-2">Phone*</label> 
965<input type="tel" class="" name="dmform-2" id="1266727981"/><input type="hidden" name="label-dmform-2" value="Phone*" id="1579219260" class=""/></div> 
966 <div class="dmforminput required  small-12 dmRespDesignCol medium-6 large-6 newLine" id="1570742394"> <label for="1578550632" id="1047464875" data-dm-for="dmform-1">Email*</label> 
967<input type="email" class="" name="dmform-1" id="1578550632"/><input type="hidden" name="label-dmform-1" value="Email*" id="1000025572" class=""/></div> 
968 <div class="dmforminput small-12 dmRespDesignCol medium-6 large-6" id="1180469657"> <label for="1949618457" id="1544689124" data-dm-for="dmform-4">&lt;&lt;Service / Product&gt;&gt;</label> 
969 <select name="dmform-4" id="1949618457"> <option selected="" disabled="" hidden="" value="" id="1494152787"></option> 
970 <option id="1164309878">Service / Product #1</option> 
971 <option id="1095648143">
971Service / Product #2</option> 
972 <option id="1866018737">Service / Product #3</option> 
973 <option id="1331143837">Service / Product #4</option> 
974 <option id="1499850504">Service / Product #5</option> 
975 <option id="1195899995">Other</option> 
976</select> 
977<input type="hidden" name="label-dmform-4" value="&lt;&lt;Service / Product&gt;&gt;" id="1293547678" class=""/></div> 
978 <div class="dmforminput large-12 medium-12 dmRespDesignCol" id="1959372715"> <label for="1118823278" id="1135703733" data-dm-for="dmform-3">Message</label> 
979 <textarea name="dmform-3" id="1118823278" class="" placeholder="BUILD TEAM - Delete this field for all medical related clients. DELETE this placeholder message." data-placeholder-original="BUILD TEAM - Delete this field for all medical related clients. DELETE this placeholder message."></textarea> 
980<input type="hidden" name="label-dmform-3" value="Message" id="1504433527" class=""/></div> 
981 <span id="1324275990" class="dmWidgetClear"></span> 
982 <div class="dmformsubmit dmWidget R" id="1654902837"><input class="" name="submit" type="submit" value="Request <<Form Name>>" id="1494349731"/></div> 
983<input name="dmformsendto" type="hidden" value="O0wrseIfFLsN0LRjFAkc53S6mvfFVCYAKcdcaddm0B3jZ7FqDnEw1jdymC3Zzixv" id="1474031422" data-dec="true"/><input class="dmActionInput" type="hidden" name="action" value="/_dm/s/rt/widgets/dmform.submit.jsp" id="1755606757"/><input name="dmformfrom" type="hidden" id="1559841536" class="" value="<< insert NOB >>"/><input name="dmformsubject" type="hidden" value="Hibu Website Request Form Submission" id="1009307827" class=""/><input name="dmformsubmitparams" type="hidden" value="8mpKnCSiNQXK/d9M7IDrSxTMRsFZNSUHpeltHqO0vlLuGM1wP5EQVjRndSDnOmf2sfMRaz5MAUVw3ZgunRtf6t1ZppbKqZz5MtT4KIbBahLjf9hZD7ODcIqwYFepN8hHkHX4iUMcgH1xujQODGaCU0HPvkUJfEmlP02ng7bXFGPYhEC18MKaU+ufRWgRmY7ca6LK1MbXM+gJV6PCLzRsaj4xLdhgrB/+1uvwB2D+Ay6cK8aBAlFRDWEUrC/X5h2SAxCQkpazLwRAelC0FNDkP7i3L1G6bAFA" data-dec="true"/><input type="hidden" name="page_uuid" value="c6e4ebe700bb424da3a2325157d807a1"/></form> 
984</div> 
985 <div class="dmform-success" style="display:none" id="1804435806"><br/><p class="rteBlock"><strong>We appreciate you contacting us. &nbsp;</strong>One of our colleagues will get back in touch with you soon!&nbsp;</p><br/><p class="rteBlock">Have a great day!</p></div> <div class="dmform-error" style="display:none" id="1303779636">Oops, there was an error sending your message.<br id="1424367776"/>Please try again later.</div> 
986</div> 
987</div> 
988</div> 
989</div> 
990</div> 
991</div> 
992</div> 
993</div> 
994</div> 
995 <div class="dmFooterContainer"> <div id="fcontainer" class="f_hcontainer dmFooter p_hfcontainer"> <div dm:templateorder="250" class="dmFooterResp generalFooter" id="1943048428"> <div class="dmRespRow" id="1009935928"> <div class="dmRespColsWrapper" id="1859658702"> <div class="dmRespCol large-12 medium-12 small-12" id="1284904550"> <div class="dmNewParagraph" id="1131091888"><div style="text-align: center;"><span style="" class="font-size-30 lh-1">&lt;&lt; add <i>footer</i>&nbsp;section &gt;&gt;</span></div></div></div> 
996</div> 
997</div> 
998 <div class="dmRespRow" id="1636271599"> <div class="dmRespColsWrapper" id="1501688634"> <div class="dmRespCol large-12 medium-12 small-12 empty-column" id="1271322060"></div> 
999</div> 
1000</div> 
1001 <div class="dmRespRow" id="1651083035"> <div class="dmRespColsWrapper" id="1532611836"> <div class="dmRespCol large-12 medium-12 small-12" id="1300055787"> <div class="widget-afd4bc u_1935852666 dmCustomWidget" data-lazy-load="" data-title="" id="1935852666" dmle_extension="custom_extension" data-element-type="custom_extension" icon="false" surround="false" data-widget-id="afd4bc7f907140298e111130d715031d" data-widget-version="99" data-widget-config="eyJJY29uTGlzdCI6W3siQWN0aW9uIjoiQ2FsbCIsIkxhYmVsIjoiQ2FsbCBVcyIsIkNhbGxOdW0iOiI1NTUtNTU1LTU1NTUiLCJRdWVyeSI6IlN0cmVldCBBZGRyZXNzLCBDaXR5LCBTVCwgMTIzNDUiLCJTbXNOdW0iOiI1NTUtNTU1LTU1NTUiLCJlbWFpbERlZlN1YmplY3QiOiJRdWVzdGlvbnMgQWJvdXQgWW91ciBCdXNpbmVzcyIsIkVtYWlsIjp0cnVlLCJGYWNlYm9vayI6dHJ1ZSwiVHVtYmxyIjpmYWxzZSwiTGlua2VkSW4iOnRydWUsIlR3aXR0ZXIiOnRydWUsIlJlZGRpdCI6dHJ1ZSwiUGludGVyZXN0Ijp0cnVlLCJDdXN0b21JY29uX1NlbGVjdCI6ImN1c3RvbV9pY29uMSIsInNob3dvbm1vYmlsZSI6dHJ1ZSwic2hvd29uZGVza3RvcCI6ZmFsc2UsImRlZkVtYWlsQm9keSI6IiIsIlNoYXJlVGl0bGUiOiIiLCJHb29nbGVQbHVzIjp0cnVlfSx7IkFjdGlvbiI6IlNtcyIsIkxhYmVsIjoiVGV4dCBVcyIsIkNhbGxOdW0iOiI1NTUtNTU1LTU1NTUiLCJRdWVyeSI6IlN0cmVldCBBZGRyZXNzLCBDaXR5LCBTVCwgMTIzNDUiLCJTbXNOdW0iOiI1NTUtNTU1LTU1NTUiLCJlbWFpbERlZlN1YmplY3QiOiJRdWVzdGlvbnMgQWJvdXQgWW91ciBCdXNpbmVzcyIsIkVtYWlsIjp0cnVlLCJGYWNlYm9vayI6dHJ1ZSwiVHVtYmxyIjpmYWxzZSwiTGlua2VkSW4iOnRydWUsIlR3aXR0ZXIiOnRydWUsIlJlZGRpdCI6dHJ1ZSwiUGludGVyZXN0Ijp0cnVlLCJDdXN0b21JY29uX1NlbGVjdCI6ImN1c3RvbV9pY29uMSIsInNob3dvbm1vYmlsZSI6dHJ1ZSwic2hvd29uZGVza3RvcCI6ZmFsc2UsImRlZkVtYWlsQm9keSI6IiIsIlNoYXJlVGl0bGUiOiIiLCJHb29nbGVQbHVzIjp0cnVlfSx7IkFjdGlvbiI6IkxpbmsiLCJMYWJlbC
1001I6IlJlYWQgUmV2aWV3cyIsIkNhbGxOdW0iOiI1NTUtNTU1LTU1NTUiLCJRdWVyeSI6IlN0cmVldCBBZGRyZXNzLCBDaXR5LCBTVCwgMTIzNDUiLCJTbXNOdW0iOiI1NTUtNTU1LTU1NTUiLCJlbWFpbERlZlN1YmplY3QiOiJRdWVzdGlvbnMgQWJvdXQgWW91ciBCdXNpbmVzcyIsIkVtYWlsIjp0cnVlLCJGYWNlYm9vayI6dHJ1ZSwiVHVtYmxyIjpmYWxzZSwiTGlua2VkSW4iOnRydWUsIlR3aXR0ZXIiOnRydWUsIlJlZGRpdCI6dHJ1ZSwiUGludGVyZXN0Ijp0cnVlLCJDdXN0b21JY29uX1NlbGVjdCI6ImN1c3RvbV9pY29uMSIsInNob3dvbm1vYmlsZSI6dHJ1ZSwic2hvd29uZGVza3RvcCI6dHJ1ZSwiZGVmRW1haWxCb2R5IjoiIiwiU2hhcmVUaXRsZSI6IiIsIkdvb2dsZVBsdXMiOnRydWUsIkN1c3RvbUljb24iOnRydWUsIkxpbmsiOnsidmFsdWUiOiJyZXZpZXdzIiwibGFiZWwiOiIiLCJ0eXBlIjoicGFnZSIsImhyZWYiOiIvcmV2aWV3cyIsInJhd191cmwiOiIvc2l0ZS8xYzAyYTVlMzMyNjI0OGQ0ODQ3NmU5YmI2ZmRhYTlkOC9yZXZpZXdzP25lZT10cnVlJmVkPXRydWUmc2hvd09yaWdpbmFsPXRydWUmcHJldmlldz10cnVlJmRtX3RyeV9tb2RlPXRydWUmZG1fY2hlY2tTeW5jPTEifX0seyJBY3Rpb24iOiJMaW5rIiwiTGFiZWwiOiJSZXF1ZXN0IF9fX19fX18iLCJDYWxsTnVtIjoiNTU1LTU1NS01NTU1IiwiUXVlcnkiOiJTdHJlZXQgQWRkcmVzcywgQ2l0eSwgU1QsIDEyMzQ1IiwiU21zTnVtIjoiNTU1LTU1NS01NTU1IiwiZW1haWxEZWZTdWJqZWN0IjoiUXVlc3Rpb25zIEFib3V0IFlvdXIgQnVzaW5lc3MiLCJFbWFpbCI6dHJ1ZSwiRmFjZWJvb2siOnRydWUsIlR1bWJsciI6ZmFsc2UsIkxpbmtlZEluIjp0cnVlLCJUd2l0dGVyIjp0cnVlLCJSZWRkaXQiOnRydWUsIlBpbnRlcmVzdCI6dHJ1ZSwiQ3VzdG9tSWNvbl9TZWxlY3QiOiJjdXN0b21faWNvbjIiLCJzaG93b25tb2JpbGUiOnRydWUsInNob3dvbmRlc2t0b3AiOnRydWUsImRlZkVtYWlsQm9keSI6IiIsIlNoYXJlVGl0bGUiOiIiLCJHb29nbGVQbHVzIjp0cnVlLCJMaW5rIjp7InZhbHVlIjoicmVxdWVzdC1mb3JtIiwibGFiZWwiOiIiLCJ0eXBlIjoicGFnZSIsImhyZWYiOiIvcmVxdWVzdC1mb3JtIiwicmF3X3VybCI6Ii9zaXRlLzFjMDJhNWUzMzI2MjQ4ZDQ4NDc2ZTliYjZmZGFhOWQ4L3JlcXVlc3QtZm9ybT9uZWU9dHJ1ZSZlZD10cnVlJnNob3dPcmlnaW5hbD10cnVlJnByZXZpZXc9dHJ1ZSZkbV90cnlfbW9kZT10cnVlJmRtX2NoZWNrU3luYz0xIn0sIkN1c3RvbUljb24iOnRydWV9LHsiQWN0aW9uIjoiTWVzcyIsIkxhYmVsIjoiTWVzc2FnZSBVcyIsIkNhbGxOdW0iOiI1NTUtNTU1LTU1NTUiLCJRdWVyeSI6IlN0cmVldCBBZGRyZXNzLCBDaXR5LCBTVCwgMTIzNDUiLCJTbXNOdW0iOiI1NTUtNTU1LTU1NTUiLCJlbWFpbERlZlN1YmplY3QiOiJRdWVzdGlvbnMgQWJvdXQgWW91ciBCdXNpbmVzcyIsIkVtYWlsIjp0cnVlLCJGYWNlYm9vayI6dHJ1ZSwiVHVtYmxyIjpmYWxzZSwiTGlua2VkSW4iOnRydWUsIlR3aXR0ZXIiOnRydWUsIlJlZGRpdCI6dHJ1ZSwiUGludGVyZXN0Ijp0cnVlLCJDdXN0b21JY29uX1NlbGVjdCI6ImN1c3RvbV9pY29uMSIsInNob3dvbm1vYmlsZSI6dHJ1ZSwic2hvd29uZGVza3RvcCI6dHJ1ZSwiZGVmRW1haWxCb2R5IjoiIiwiU2hhcmVUaXRsZSI6IiIsIkdvb2dsZVBsdXMiOnRydWV9LHsiQWN0aW9uIjoiRW
10011haWwiLCJMYWJlbCI6IkVtYWlsIFVzIiwiQ2FsbE51bSI6IjU1NS01NTUtNTU1NSIsIlF1ZXJ5IjoiU3RyZWV0IEFkZHJlc3MsIENpdHksIFNULCAxMjM0NSIsIlNtc051bSI6IjU1NS01NTUtNTU1NSIsImVtYWlsRGVmU3ViamVjdCI6IlF1ZXN0aW9ucyBBYm91dCBZb3VyIEJ1c2luZXNzIiwiRW1haWwiOnRydWUsIkZhY2Vib29rIjp0cnVlLCJUdW1ibHIiOmZhbHNlLCJMaW5rZWRJbiI6dHJ1ZSwiVHdpdHRlciI6dHJ1ZSwiUmVkZGl0Ijp0cnVlLCJQaW50ZXJlc3QiOnRydWUsIkN1c3RvbUljb25fU2VsZWN0IjoiY3VzdG9tX2ljb24xIiwic2hvd29ubW9iaWxlIjp0cnVlLCJzaG93b25kZXNrdG9wIjp0cnVlLCJkZWZFbWFpbEJvZHkiOiIiLCJTaGFyZVRpdGxlIjoiIiwiR29vZ2xlUGx1cyI6dHJ1ZX0seyJBY3Rpb24iOiJNYXAiLCJMYWJlbCI6IkdldCBEaXJlY3Rpb25zIiwiQ2FsbE51bSI6IjU1NS01NTUtNTU1NSIsIlF1ZXJ5IjoiU3RyZWV0IEFkZHJlc3MsIENpdHksIFNULCAxMjM0NSIsIlNtc051bSI6IjU1NS01NTUtNTU1NSIsImVtYWlsRGVmU3ViamVjdCI6IlF1ZXN0aW9ucyBBYm91dCBZb3VyIEJ1c2luZXNzIiwiRW1haWwiOnRydWUsIkZhY2Vib29rIjp0cnVlLCJUdW1ibHIiOmZhbHNlLCJMaW5rZWRJbiI6dHJ1ZSwiVHdpdHRlciI6dHJ1ZSwiUmVkZGl0Ijp0cnVlLCJQaW50ZXJlc3QiOnRydWUsIkN1c3RvbUljb25fU2VsZWN0IjoiY3VzdG9tX2ljb24xIiwic2hvd29ubW9iaWxlIjp0cnVlLCJzaG93b25kZXNrdG9wIjp0cnVlLCJkZWZFbWFpbEJvZHkiOiIiLCJTaGFyZVRpdGxlIjoiIiwiR29vZ2xlUGx1cyI6dHJ1ZX0seyJBY3Rpb24iOiJTaGFyZSIsIkxhYmVsIjoiU2hhcmUgVXMiLCJDYWxsTnVtIjoiNTU1LTU1NS01NTU1IiwiUXVlcnkiOiJTdHJlZXQgQWRkcmVzcywgQ2l0eSwgU1QsIDEyMzQ1IiwiU21zTnVtIjoiNTU1LTU1NS01NTU1IiwiZW1haWxEZWZTdWJqZWN0IjoiUXVlc3Rpb25zIEFib3V0IFlvdXIgQnVzaW5lc3MiLCJFbWFpbCI6dHJ1ZSwiRmFjZWJvb2siOnRydWUsIlR1bWJsciI6dHJ1ZSwiTGlua2VkSW4iOnRydWUsIlR3aXR0ZXIiOnRydWUsIlJlZGRpdCI6dHJ1ZSwiUGludGVyZXN0Ijp0cnVlLCJDdXN0b21JY29uX1NlbGVjdCI6ImN1c3RvbV9pY29uMSIsInNob3dvbm1vYmlsZSI6dHJ1ZSwic2hvd29uZGVza3RvcCI6dHJ1ZSwiZGVmRW1haWxCb2R5IjoiIiwiU2hhcmVUaXRsZSI6IiIsIkdvb2dsZVBsdXMiOmZhbHNlfV0sIk1vZGFsVGl0bGUiOiJTaGFyZSBPbjoiLCJEZXNrdG9wTGF5b3V0IjoiRmxvYXQiLCJEZXNrTWFpbiI6ImVudmVsb3BlIiwiTWFpbkxhYmVsIjoiQ29udGFjdCBVcyIsIkhlbHBUZXh0IjoiSGkuIERvIHlvdSBuZWVkIGFueSBoZWxwPyIsIk1vYmlsZUxheW91dCI6IkZ1bGwiLCJNb2JpbGVUaGVtZSI6IkxpZ2h0IiwiTW9iaWxlTWFpbiI6InBsdXMiLCJNb2JpbGVPcmllbnRhdGlvbiI6InJpZ2h0IiwiRm9jdXNBbmkiOnRydWUsIkZvY3VzRGVsYXkiOiI1MDAwIiwiRm9jdXNJdGVyIjoiMSIsImN1c3RvbV9pY29uMSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTY2NCAxNzkyXCI+PHBhdGggZmlsbD1cImluaGVyaXRcIiBkPVwiTTE2NjQgNjQ3cTAgMjItMjYgNDhsLTM2MyAzNTQgODYgNTAwcTEgNyAxIDIwIDAgMjEtMTAuNSAzNS41dC0zMC41IDE0LjVxLTE5IDAtNDAtMTJsLTQ0OS0yMzYtNDQ5IDIzNnEtMjIgMTItNDAgMTItMjEgMC0zMS41LTE0LjV0LTEwLjUtMzUuNXEwLTYgMi0yMGw4Ni01MDAtMzY0LTM1NHEtMjUtMjctMjUtNDggMC0zNyA1Ni00Nmw1MDItNzMgMjI1LTQ1NXExOS00MSA0OS00MXQ0OSA0MWwyMjUgNDU1IDUwMiA3M3E1NiA5IDU2IDQ2elwiLz5cbjwvc3ZnPiIsImN1c3RvbV9pY29uMiI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTY2NCAxNzkyXCI+PHBhdGggZmlsbD1cImluaGVyaXRcIiBkPVwiTTEyOCAxNjY0aDI4OHYtMjg4aC0yODh2Mjg4ek00ODAgMTY2NGgzMjB2LTI4OGgtMzIwdjI4OHpNMTI4IDEzMTJoMjg4di0zMjBoLTI4OHYzMjB6TTQ4MCAxMzEyaDMyMHYtMzIwaC0zMjB2MzIwek0xMjggOTI4aDI4OHYtMjg4aC0yODh2Mjg4ek04NjQgMTY2NGgzMjB2LTI4OGgtMzIwdjI4OHpNNDgwIDkyOGgzMjB2LTI4OGgtMzIwdjI4OHpNMTI0OCAxNjY0aDI4OHYtMjg4aC0yODh2Mjg4ek04NjQgMTMxMmgzMjB2LTMyMGgtMzIwdjMyMHpNNTEyIDQ0OHYtMjg4cTAtMTMtOS41LTIyLjV0LTIyLjUtOS41aC02NHEtMTMgMC0yMi41IDkuNXQtOS41IDIyLjV2Mjg4cTAgMTMgOS41IDIyLjV0MjIuNSA5LjVoNjRxMTMgMCAyMi41LTkuNXQ5LjUtMjIuNXpNMTI0OCAxMzEyaDI4OHYtMzIwaC0yODh2MzIwek04NjQgOTI4aDMyMHYtMjg4aC0zMjB2Mjg4ek0xMjQ4IDkyOGgyODh2LTI4OGgtMjg4djI4OHpNMTI4MCA0NDh2LTI4OHEwLTEzLTkuNS0yMi41dC0yMi41LTkuNWgtNjRxLTEzIDAtMjIuNSA5LjV0LTkuNSAyMi41djI4OHEwIDEzIDkuNSAyMi41dDIyLjUgOS41aDY0cTEzIDAgMjIuNS05LjV0OS41LTIyLjV6TTE2NjQgMzg0djEyODBxMCA1Mi0zOCA5MHQtOTAgMzhoLTE0MDhxLTUyIDAtOTAtMzh0LTM4LTkwdi0xMjgwcTAtNTIgMzgtOTB0OTAtMzhoMTI4di05NnEwLTY2IDQ3LTExM3QxMTMtNDdoNjRxNjYgMCAxMTMgNDd0NDcgMTEzdjk2aDM4NHYtOTZxMC02NiA0Ny0xMTN0MTEzLTQ3aDY0cTY2IDAgMTEzIDQ3dDQ3IDExM3Y5NmgxMjhxNTIgMCA5MCAzOHQzOCA5MHpcIi8+XG48L3N2Zz4iLCJjdXN0b21faWNvbjMiOiI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJpc28tODg1OS0xXCI/PlxyXG48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+XHJcbjxzdmcgdmVyc2lvbj1cIjEuMVwiIGlkPVwiTGF5ZXJfMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiXHJcblx0IHZpZXdCb3g9XCIwIDAgNDk2LjE1OCA0OTYuMTU4XCIg
1001c3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5Ni4xNTggNDk2LjE1ODtcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiPlxyXG48cGF0aCBzdHlsZT1cImZpbGw6IzU2QjQ4QztcIiBkPVwiTTI0OC4wODIsMC4wMDNDMTExLjA3LDAuMDAzLDAsMTExLjA2MSwwLDI0OC4wODVjMCwxMzcsMTExLjA3LDI0OC4wNywyNDguMDgyLDI0OC4wN1xyXG5cdGMxMzcuMDA2LDAsMjQ4LjA3Ni0xMTEuMDcsMjQ4LjA3Ni0yNDguMDdDNDk2LjE1OCwxMTEuMDYxLDM4NS4wODgsMC4wMDMsMjQ4LjA4MiwwLjAwM3pcIi8+XHJcbjxwYXRoIHN0eWxlPVwiZmlsbDojRkZGRkZGO1wiIGQ9XCJNMzE5LjYzNywyNjkuNzExYy0yLjYzNy02LjM5NS02LjU2OS0xMi4yMzEtMTEuNzkyLTE3LjUwNWMtNS4yMjYtNS4yNzMtMTEuNjQ2LTkuOTYxLTE5LjI2My0xNC4wNjNcclxuXHRjNy45MS02LjY0LDEzLjk4OS0xMy40NTEsMTguMjM3LTIwLjQzNWM0LjI0OC02Ljk4MSw2LjM3Mi0xNS4zNTUsNi4zNzItMjUuMTIyYzAtNy40Mi0xLjQ2NS0xNC4zNTUtNC4zOTUtMjAuODAxXHJcblx0cy03LjI3Ni0xMi4xMDgtMTMuMDM3LTE2Ljk5MmMtNS43NjMtNC44ODItMTIuNTUtOC42MTctMjAuMzYxLTExLjIwNmMtNy44MTQtMi41ODYtMTYuNDU3LTMuODgyLTI1LjkyOC0zLjg4MlxyXG5cdGMtMTAuODQsMC0yMC42NTQsMS41MzgtMjkuNDQzLDQuNjE0cy0xNi4xMzksNy4xNTUtMjIuMDQ2LDEyLjIzMWMtNS45MSw1LjA3OS0xMC40LDEwLjQyNi0xMy40NzcsMTYuMDRcclxuXHRjLTMuMDc2LDUuNjE3LTQuNjE0LDEwLjk2My00LjYxNCwxNi4wNGMwLDUuMjczLDEuNjM0LDkuNDk5LDQuOTA3LDEyLjY3MWMzLjI3MSwzLjE3NSw2Ljg1OSw0Ljc2MSwxMC43NjcsNC43NjFcclxuXHRjMy4zMTksMCw2LjI0OS0wLjU4Niw4Ljc4OS0xLjc1OGMyLjUzOC0xLjE3Miw0LjI5Ni0yLjc4Myw1LjI3My00LjgzNGMxLjY1OS0zLjgwOSwzLjQ5LTcuODYsNS40OTMtMTIuMTU4XHJcblx0YzItNC4yOTYsNC4xMjUtNy44MTIsNi4zNzItMTAuNTQ3YzIuMjQ1LTIuNzMzLDUuMjk2LTQuOTMsOS4xNTUtNi41OTJjMy44NTYtMS42NTksOC43NjQtMi40OSwxNC43MjItMi40OVxyXG5cdGM4Ljc4OSwwLDE1Ljc3LDIuNzEsMjAuOTQ3LDguMTNjNS4xNzUsNS40Miw3Ljc2NCwxMS44OTEsNy43NjQsMTkuNDA5YzAsOS44NjUtMy4yNDgsMTcuNDMyLTkuNzQxLDIyLjcwNVxyXG5cdGMtNi40OTYsNS4yNzMtMTQuMjM0LDcuOTEtMjMuMjE4LDcuOTFoLTYuMDA2Yy02LjkzNSwwLTEyLjE1OCwxLjQ0Mi0xNS42NzQsNC4zMjFjLTMuNTE2LDIuODgyLTUuMjczLDYuNjY1LTUuMjczLDExLjM1M1xyXG5cdGMwLDQuNzg2LDEuNDY1LDguNTIxLDQuMzk1LDExLjIwNmMyLjkzLDIuNjg3LDcuMDc5LDQuMDI4LDEyLjQ1MSw0LjAyOGMxLjE3MiwwLDMuODA5LTAuMTk0LDcuOTEtMC41ODZcclxuXHRjNC4xMDItMC4zODksNy4xMjctMC41ODYsOS4wODItMC41ODZjMTEuMTMzLDAsMTkuODIzLDMuMjQ4LDI2LjA3NCw5Ljc0MWM2LjI0OSw2LjQ5Niw5LjM3NSwxNS40NTQsOS4zNzUsMjYuODhcclxuXHRjMCw3LjcxNi0xLjgzMSwxNC41MDItNS40OTMsMjAuMzYxcy04LjMwMiwxMC4yNzktMTMuOTE2LDEzLjI1N2MtNS42MTcsMi45OC0xMS40NTEsNC40NjgtMTcuNTA1LDQuNDY4XHJcblx0Yy0xMC41NDcsMC0xOC43MjctMy4yOTYtMjQuNTM2LTkuODg4Yy01LjgxMi02LjU5Mi0xMS4yNTYtMTYuNjc0LTE2LjMzMy0zMC4yNDljLTAuNzgzLTIuMjQ1LTIuNDQyLTQuMTc1LTQuOTgtNS43ODZcclxuXHRjLTIuNTQxLTEuNjExLTUuMTc3LTIuNDE3LTcuOTEtMi40MTdjLTUuNDcsMC0xMC4wMzQsMS43MzUtMTMuNjk2LDUuMmMtMy42NjIsMy40NjgtNS40OTMsOC4wMzQtNS40OTMsMTMuNjk2XHJcblx0YzAsNC4zOTUsMS41MzgsOS45NjEsNC42MTQsMTYuNjk5czcuNjE3LDEzLjI1NywxMy42MjMsMTkuNTU2czEzLjY0NiwxMS41NDksMjIuOTI1LDE1Ljc0N2M5LjI3Niw0LjE5OCwxOS43NzUsNi4yOTksMzEuNDk0LDYuMjk5XHJcblx0YzExLjUyMiwwLDIyLjA0Ni0xLjgzMSwzMS41NjctNS40OTNzMTcuNzQ4LTguNzM5LDI0LjY4My0xNS4yMzRjNi45MzMtNi40OTMsMTIuMTgxLTEzLjg5MSwxNS43NDctMjIuMTkyXHJcblx0YzMuNTYzLTguMjk5LDUuMzQ3LTE2Ljg5NCw1LjM0Ny0yNS43ODFDMzIzLjU5MiwyODMuMDE4LDMyMi4yNzMsMjc2LjEwOSwzMTkuNjM3LDI2OS43MTF6XCIvPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48Zz5cclxuPC9nPlxyXG48L3N2Zz5cclxuIiwiY3VzdG9tX2ljb240IjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5OC4yOFwiIGhlaWdodD1cIjk4LjI4XCIgdmlld0JveD1cIjAgMCA5OC4yOCA5OC4yOFwiPjxjaXJjbGUgY3g9XCI0OS4xNFwiIGN5PVwiNDkuMTRcIiByPVwiNDkuMTRcIiBmaWxsPVwiIzI3MmEzZFwiLz48cGF0aCBkPVwiTTYwLjE4LDUzLjVhMywzLDAsMCwxLDIuMzIuNzUsMywzLDAsMCwxLC42NSwyLjA5LDYuNTMsNi41MywwLDAsMS0uMjQsMS44LDQuMzgsNC4zOCwwLDAsMS0uNDMsMS4xMkg1OC41NHY2LjY4SDUxLjkyVjU5LjI2aC03LjNxLTQuNTYsMC02LjQ4LTEuNDFhNS4xNyw1LjE3LDAsMCwxLTEuOTItNC40NCwxMC42NSwxMC42NSwwLDAsMSwuNDYtMywxOC45LDE4LjksMCwwLDEsMS4yLTMsMjYuNTcsMjYuNTcsMCwwLDEsMS43My0zLDMyLjg1LDMyLjg1LDAsMCwxLDItMi43NnExLjQ0LTEuNzgsMy0zLjM0YTMwLDMwLDAsMCwxLDMuMTItMi43NkExNSwxNSwwLDAsMSw1MSwzMy42NmE4LjQ4LDguNDgsMCwwLDEsMy4zNC0uNyw3LjczLDcuNzMsMCwwLDEsMi44OC40Myw2LjI3LDYuMjcsMCwwLDEsMS4zNC42N1Y1My41Wk01MS45MiwzOS40NGMtLjI2LjE2LS45LjY2LTEuOTIsMS40OWEyNC41OCwyNC41OCwwLDAsMC0zLjQxLDMuNTUsMjQuMTgsMjQuMTgsMCwwLDAtMi44Myw0LjE1LDYuODksNi44OSwwLDAsMC0uOTEsMi45MSwxLjU3LDEuNTcsMCwwLDAsLjg2LDEuNTNBNS4wNiw1LjA2LDAsMCwwLDQ2LDUzLjVoNlpcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTAuNCAtMC4zNylcIiBmaWxsPVwiIzRkYWY3Y1wiLz48L3N2Zz4iLCJjdXN0b21faWNvbjUiOiI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjk4LjI4XCIgaGVpZ2h0PVwiOTguMjhcIiB2aWV3Qm94PVwiMCAwIDk4LjI4IDk4LjI4XCI+PGNpcmNsZSBjeD1cIjQ5LjE0XCIgY3k9XCI0OS4xNFwiIHI9XCI0OS4xNFwiIGZpbGw9XCIjMjcyYTNkXCIvPjxwYXRoIGQ9XCJNNDAsMzcuNThhNC4yMSw0LjIxLDAsMCwxLDEtMi44MiwzLjg2LDMuODYsMCwwLDEsMi44OC0uOTRINTdhNC4zNiw0LjM2LDAsMCwxLDIuODMuNzEsMi44MSwyLjgxLDAsMCwxLC44MiwyLjI1LDUuMDcsNS4wNywwLDAsMS0uMzYsMiw3LjQyLDcuNDIsMCwwLDEtLjU2LDEuMTRINDUuOTJsLS4xOSw1LjksMS41MS0uMjFhMjIuMjksMjIuMjksMCwwLDEsMi42Ni0uMTIsMTYuNCwxNi40LDAsMCwxLDUuNjQuODYsMTAuNTQsMTAuNTQsMCwwLDEsMy43NywyLjI4LDguNDQsOC40NCwwLDAsMSwyLjA5LDMuMjksMTEuODUsMTEuODUsMCwwLDEsLjY1LDMuODksMTEuMTIsMTEuMTIsMCwwLDEtLjg3LDQuNDYsOS4xOCw5LjE4LDAsMCwxLTIuNTYsMy40NkExMi4xOCwxMi4xOCwwLDAsMSw1NC40Miw2NmExOS4wNSwxOS4wNSwwLDAsMS01Ljc2Ljc5LDIzLjg4LDIzLjg4LDAsMCwxLTUtLjQ1LDIyLjM1LDIyLjM1LDAsMCwxLTMuNDgtMSwxMS4yOCwxMS4yOCwwLDAsMS0yLjExLTEsNC4zNyw0LjM3LDAsMCwxLS43Ny0uNTdMNDAsNTguOTNhNy4zMSw3LjMxLDAsMCwwLC42OS40MywxMi40NiwxMi40NiwwLDAsMCwxLjczLjgyLDE3LjgsMTcuOCwwLDAsMCwyLjU3Ljc2LDE0LjQ0LDE0LjQ0LDAsMCwwLDMuMjYuMzQsMTEsMTEsMCwwLDAsMy4yMi0uNDEsNiw2LDAsMCwwLDIuMDktMS4wOCwzLjgzLDMuODMsMCwwLDAsMS4xMi0xLjZBNS4zOSw1LjM5LDAsMCwwLDU1LDU2LjI3YTYuMTQsNi4xNCwwLDAsMC0uMzEtMiwzLjcxLDMuNzEsMCwwLDAtMS4xNS0xLjY2LDYuMjUsNi4yNSwwLDAsMC0yLjI4LTEuMTYsMTMuMzIsMTMuMzIsMCwwLDAtMy43NS0uNDMsMTguNCwxOC40LDAsMCwwLTUuMTEuNiwzMC4wOCwzMC4wOCwwLDAsMC0yLjk1LDFaXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC0wLjQgLTAuMzcpXCIgZmlsbD1cIiM0ZGFmN2NcIi8+PC9zdmc+IiwiY3VzdG9tX2ljb242IjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5OC4yOFwiIGhlaWdodD1cIjk4LjI4XCIgdmlld0JveD1cIjAgMCA5OC4yOCA5OC4yOFwiPjxjaXJjbGUgY3g9XCI0OS4xNFwiIGN5PVwiNDkuMTRcIiByPVwiNDkuMTRcIiBmaWxsPVwiIzI3MmEzZFwiLz48cGF0aCBkPVwiTTYyLjUzLDU0Ljg1YTExLjUzLDExLjUzLDAsMCwxLTEsNC43NywxMS40LDExLjQsMCwwLDEtMi43MSwzLjc3LDEyLjQxLDEyLjQxLDAsMCwxLTQuMDcsMi40NywxNC4yNSwxNC4yNSwwLDAsMS01LjEzLjg5LDE0LjkzLDE0LjkzLDAsMCwxLTUuMTMtLjg2LDEyLjQyLDEyLjQyLDAsMCwxLTQtMi40LDExLDExLDAsMCwxLTIuNjYtMy42NSwxMS4xMywxMS4xMywwLDAsMS0xLTQuNjZBMTMuNTYsMTMuNTYsMCwwLDEsMzguMzEsNDlhMzMuNTUsMzMuNTUsMCwwLDEsMy4zOC01LjM3bDYuNDItOC40NWMuMTktLjIzLjQtLjQ3LjYyLS43NWEzLjgyLDMuODIsMCwwLDEsLjgyLS43Miw0LjksNC45LDAsMCwxLDEuMTctLjUyQTUuNDcsNS40NywwLDAsMSw1Mi4zOCwzM2E0LjU3LDQuNTcsMCwwLDEsMi43MS43LDQuNSw0LjUsMCwwLDEsMS4yMywxLjEyTDQ4LjI1LDQ1LjE1YTcuMzcsNy4zNywwLDAsMSwxLjUzLS41NUE4LjgyLDguODIsMCwwLDEsNTIsNDQuMzRhMTEuNDQsMTEuNDQsMCwwLDEsNC4zOC43OSw5LjQsOS40LDAsMCwxLDUuMzksNS41NEExMS44LDExLjgsMCwwLDEsNjIuNTMsNTQuODVabS02LjcyLjMzYTYuMTIsNi4xMiwwLDAsMC0xLjczLTQuNDgsNiw2LDAsMCwwLTQuNDYtMS43Niw2LjIyLDYuMjIsMCwwLDAtNC40NCwxLjc4LDUuNTUsNS41NSwwLDAsMC0xLjMsMiw3LDcsMCwwLDAsMCw1LDUuNDcsNS40NywwLDAsMCwxLjMsMiw2LjI3LDYuMjcsMCwwLDAsNC40NCwxLjc3LDYsNiwwLDAsMCw0LjQ2LTEuNzVBNi4xMyw2LjEzLDAsMCwwLDU1LjgxLDU1LjE4WlwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtMC40IC0wLjM3KVwiIGZpbGw9XCIjNGRhZjdjXCIvPjwvc3ZnPiJ9"> <style>/* Pulse animation */
1002    .pulse, .pulse2, .slide-pulse {
1003        -webkit-animation-iteration-count: 1;
1004        -moz-animation-iteration-count: 1; 
1005        -o-animation-iteration-count: 1;
1006        animation-iteration-count: 1; 
1007    }</style> 
1008 <div id="conversion-menu-container"> <div class="overlay"></div> 
1009 <div class="mobile-bg"></div> 
1010 <div class="social-bg"></div> 
1011 <div class="fab" id="masterfab"> <div class="desktop-bg"> <div id="help-text">Hi. Do you need any help?</div> 
1012 <div id="close-bar"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 224.512 224.512" style="enable-background:new 0 0 224.512 224.512;" xml:space="preserve"> <title>Close</title> 
1013 <g> <polygon points="224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254"></polygon> 
1014</g> 
1015 <g></g> 
1016 <g></g> 
1017 <g></g> 
1018 <g></g> 
1019 <g></g> 
1020 <g></g> 
1021 <g></g> 
1022 <g></g> 
1023 <g></g> 
1024 <g></g> 
1025 <g></g> 
1026 <g></g> 
1027 <g></g> 
1028 <g></g> 
1029 <g></g> 
1030</svg> 
1031</div> 
1032</div> 
1033 <span id="main-container"></span> 
1034</div> 
1035 <div id="float-container"></div> 
1036</div> 
1037 <div class="modal micromodal-slide" id="social-modal-menu" aria-hidden="true"> <div class="modal__overlay" tabindex="-1" data-micromodal-close=""> <div class="modal__container" role="dialog" aria-modal="true" aria-labelledby="Social Share Modal"> <header class="modal__header"> <h2 class="modal__title" id="modal-1-title">Share On:</h2> 
1038 <button class="modal__close" aria-label="Close modal" data-micromodal-close=""> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 224.512 224.512" style="enable-background:new 0 0 224.512 224.512;" xml:space="preserve" data-micromodal-close=""> <title>Close</title> 
1039 <g> <polygon points="224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254"></polygon> 
1040</g> 
1041 <g></g> 
1042 <g></g> 
1043 <g></g> 
1044 <g></g> 
1045 <g></g> 
1046 <g></g> 
1047 <g></g> 
1048 <g></g> 
1049 <g></g> 
1050 <g></g> 
1051 <g></g> 
1052 <g></g> 
1053 <g></g> 
1054 <g></g> 
1055 <g></g> 
1056</svg> 
1057</button> 
1058</header> 
1059 <main class="modal__content" id="modal-1-content"> <div class="share-container"></div> 
1060</main> 
1061</div> 
1062</div> 
1063</div> 
1064</div> 
1065</div> 
1066</div> 
1067</div> 
1068</div> 
1069 <div id="1236746004" class="poweredBy poweredByHibu" dmle_extension="powered_by" data-element-type="powered_by" icon="true" surround="false"> <div class="poweredLine1"> <a href="http://budurl.com/hibuprivacy" target="_blank">Privacy Policy</a>| <a href="http://budurl.com/hibucookie" target="_blank">Do Not Share My Information</a>| <a href="http://budurl.com/hibuconditionsofuse" target="_blank">Conditions of Use</a>| <a href="http://budurl.com/hibunotice" target="_blank">Notice and Take Down Policy</a>| <a href="http://b.link/accessibility" target="_blank">Website Accessibility Policy</a> 
1070</div> 
1071 <div class="poweredLine2">&copy; <span id="hibuYear">2026</span> 
1072The content on this website is owned by us and our licensors. Do not copy any content (including images) without our consent.</div> 
1073</div> 
1074</div> 
1075</div> 
1076</div> 
1077</div> 
1078</div> 
1079</div> 
1080</div> 
1081</div> 
1082</div> 
1083</div> 
1084
1085    </div>
1086</div>
1087<!--  Add full CSS and Javascript before the close tag of the body if needed -->
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126<!-- ========= JS Section ========= -->
1127<script>
1128    var isWLR = true;
1129
1130    window.customWidgetsFunctions = {};
1131    window.customWidgetsStrings = {};
1132    window.collections = {};
1133    window.currentLanguage = "ENGLISH"
1134    window.isSitePreview = false;
1135</script>
1135
1136
1137
1138
1139<script>
1140    window.customWidgetsFunctions["d1ee5d5bf037471ea1770683731e577a~22"] = function (element, data, api) {
1141        $(document).ready(function(){
1142    $.getScript('https://widget.hibu.us/static/js/index.js')
1143    .done(function(){
1144        dmAPI.runOnReady('hibu_header_reviews',function(){
1145            window.renderApp();
1146        });
1147        
1148    })
1149    .fail(function(){
1150        console.log("failed to loaded header reviews js file")
1151    });
1152})
1153
1154
1155    };
1156</script>
1156
1157
1158<script>
1159    window.customWidgetsFunctions["7b6cfbac88324cffbaaf57354cd7a334~227"] = function (element, data, api) {
1160        var emptyListPlaceHolder="<span style='min-height:20px' class='editorOnlyInfo inEditor' data-nosnippet>This list has no data in Yext. This message only appears in the editor.</span>"
1161
1162/* find yext src */
1163var findYextSrc = function(){
1164    var  keyExp = new RegExp(/src="(.*?)"/);
1165    if (data.config.script.includes('location_id')) {
1166        data.config.script = data.config.script.replace('location_id', 'entity_id');
1167    }
1168    var result = keyExp.exec(data.config.script);
1169    if(result && result.length == 2){
1170        window.yextScriptSrc=result[1];
1171        return result[1];
1172    }else{
1173        return window.yextScriptSrc;
1174    }
1175}
1176
1177window.yextLoadedCallback = function(yextData) {
1178    $('.wrongScriptError').removeClass('hasError');
1179    window.yextInitialized = true;
1180    
1181    if(yextData) {
1182        window._yextData = yextData;    
1183    } else {
1184        throw "Yext loaded but no data was passed";
1185    }
1186}
1187
1188function loadYextScript(src){
1189    $(element).find('.wrongScriptError').removeClass('hasError');
1190    var yextScript = document.getElementById('d-yext-script');
1191    if (yextScript) {
1192        yextScript.parentNode.removeChild(yextScript);
1193    }
1194    yextScript = document.createElement('script');
1195    yextScript.charset = 'utf-8';
1196    yextScript.type = 'text/javascript';
1197    
1198    src += "&callback=yextLoadedCallback"
1199    
1200    yextScript.src = src;
1201    yextScript.id = 'd-yext-script';
1202    document.body.appendChild(yextScript);
1203}
1204
1205/* load yext script */
1206var loadYext = function(forceRefresh) {
1207    // Make sure we call Yext only once
1208    if(window.yextInitialized && !forceRefresh){
1209        return;
1210    }
1211    
1212    startIntervalToWaitAndLoadWidgets(data.config.type);
1213    
1214    // We extract the "src" attribute from the string provided ina  safe way
1215    // The format we expect is the following:
1216   
1217    try{
1218        var src = findYextSrc();
1219        if(src){
1220
1221            loadYextScript(src);
1222            
1223        } else if(data.inEditor) {
1224            // $(document).load(function(){
1225            //     if(!window._yextData) {
1226            //         $(element).find('.wrongScriptError').addClass('hasError');    
1227            //     }
1228            // })
1229            
1230            // $(element).find('.wrongScriptError').addClass('hasError');
1231            
1232            return;
1233        }
1234        
1235    } catch(exp) {
1236        // $(element).find('.wrongScript').addClass('hasError');
1237        console.log(exp)
1238        return;
1239    }
1240    
1241    if (data.inEditor) {
1242        if($('.multipleYextError').length > 1){
1243             $(element).find('.multipleYextError').addClass('hasError');
1244             return;
1245        }else if(data.config.type === 'none'){
1246            $(element).find('.editorOnlyInfo').addClass('inEditor'); 
1247        }
1248    }
1249}
1250
1251/* refresh yext script */
1252window.refreshYext = function(){
1253    loadYext(true);
1254}
1255
1256//function for Omniture tracking
1257window._trackConvWidgetClickEvent = function(eventName) {
1258    if(typeof(HAF)==="object"){
1259        HAF.OmTracking.onCMClick(eventName) 
1260    }
1261    return;
1262}
1263
1264/* draw yext map */
1265var drawMap = function(yextData){
1266    var zoom = data.config.mapZoom;
1267    var yData = yextData.entities[0].attributes;
1268    var addressQuery = yData['address1'] + " " + yData['address2'] + " " + yData['city'] + " " + yData['state'] + " " + yData['zip'];
1269    dmAPI.drawMap({addressQuery: addressQuery, zoom: zoom, container: $(element).find('.yextMap')});
1270}
1271
1272
1273
1274var formatPhoneBeforeRender = function(num,cb) {
1275    if (!cb)
1276        cb = function(){return}
1277    if(data.config.formatPhone){ 
1278        var s2 = (""+num).replace(/\D/g, '');
1279        var m = s2.match(/^(\d{3})(\d{3})(\d{4})$/);
1280        var formatted =  (!m) ? null : "(" + m[1] + ") " + m[2] + "-" + m[3];
1281        cb(formatted);
1282        return formatted;
1283    } else {
1284        cb(num);
1285        return num;
1286    }
1287}
1288
1289var displayTextdList = function(type,yextData,firstOnly) {
1290    var list = "";
1291    if(yextData.entities[0].attributes[type]) {
1292        var yextAtt = yextData.entities[0].attributes[type]
1293    } else {
1294        var yextAtt = false
1295    }
1296    
1297    if(yextAtt && Array.isArray(yextAtt)) {
1298        for (var i=0; i< yextAtt.length; i++) {
1299            if (yextAtt[i] === 'Android Pay') {
1300                list += '<li>Google Pay</li>';
1301            }
1302            else {
1303                list += '<li>' + yextAtt[i] + '</li>';
1304            }
1305        }
1306        $(element).find('#' + type + 'List').html(list);
1307    } else if (yextAtt) {
1308        var yextAtt = yextAtt.split(", ");
1309        for (var i=0; i< yextAtt.length; i++) {
1310            list += '<li>' + yextAtt[i] + '</li>';
1311        }
1312        $(element).find('#' + type + 'List').html(list);
1313    } else if (data.inEditor) {
1314        $(element).html(emptyListPlaceHolder);
1315    } else {
1316        $(element).css('display','none');
1317    }
1318    
1319    
1320}
1321
1322var  displaySpecialties = function(yextData){
1323    var list = "";
1324    if(yextData.entities[0].attributes["specialties"]) {
1325        var yextAtt = yextData.entities[0].attributes["specialties"]
1326    } else if (yextData.entities[0].attributes["specialities"]) {
1327        var yextAtt = yextData.entities[0].attributes["specialities"]
1328    } else {
1329        var yextAtt = false
1330    }
1331    
1332    if(yextAtt && Array.isArray(yextAtt)) {
1333        for (var i=0; i< yextAtt.length; i++) {
1334            list += '<li>' + yextAtt[i] + '</li>';
1335        }
1336        $(element).find('#specialtiesList').html(list);
1337    } else if (yextAtt) {
1338        var yextAtt = yextAtt.split(", ");
1339        for (var i=0; i< yextAtt.length; i++) {
1340            list += '<li>' + yextAtt[i] + '</li>';
1341        }
1342        $(element).find('#specialtiesList').html(list);
1343    } else if (data.inEditor) {
1344        $(element).html(emptyListPlaceHolder);
1345    } else {
1346        $(element).css('display','none');
1347    }
1348}
1349
1350var displayHours = function(type,yextData) {
1351    var list = "";
1352    if(yextData.entities[0].attributes[type]) {
1353        var yextAtt = yextData.entities[0].attributes[type]
1354    } else {
1355        var yextAtt = false
1356    }
1357    
1358    if(yextAtt && Array.isArray(yextAtt)) {
1359        for(var i=0;i < yextAtt.length;i++) {
1360            var indexEndDay = yextAtt[i].lastIndexOf('day ') + 3;
1361            
1362            var leftSide = yextAtt[i].substr(0,indexEndDay).replace("Monday","Mon").replace("Tuesday","Tue").replace("Wednesday","Wed").replace("Thursday","Thu").replace("Friday","Fri").replace("Saturday","Sat").replace("Sunday","Sun");
1363            
1364            var rightSide = yextAtt[i].substr(indexEndDay + 1)
1365            
1366            list += '<div class="row"><div class="left">' + leftSide + '</div><div class="right">' + rightSide + '</div></div>';
1367        }
1368        
1369    $(element).find('#hoursSmall').html(list);
1370    
1371    } else if(yextAtt) { 
1372        var yextAtt = yextAtt.split(", ");
1373        for(var i=0;i < yextAtt.length;i++) {
1374            if((/\s/.test(yextAtt[i])) === false){
1375                yextAtt[i] = yextAtt[i] + ' - ' + yextAtt[i+1]
1376                yextAtt.splice(i+1, 1)
1377            }
1378             if (yextAtt[i].includes('day') === false ){
1379                var leftSide = ' ';
1380                
1381                var rightSide = yextAtt[i]
1382            }else {
1383                var indexEndDay = yextAtt[i].lastIndexOf('day ') + 3;
1384            
1385                var leftSide = yextAtt[i].substr(0,indexEndDay).replace("Monday","Mon").replace("Tuesday","Tue").replace("Wednesday","Wed").replace("Thursday","Thu").replace("Friday","Fri").replace("Saturday","Sat").replace("Sunday","Sun");
1386        
1387                var rightSide = yextAtt[i].substr(indexEndDay + 1)
1388            }
1389            
1390            list += '<div class="row"><div class="left">' + leftSide + '</div><div class="right">' + rightSide + '</div></div>';
1391        }
1392        $(element).find('#hoursSmall').html(list);
1393    } else if (data.inEditor) {
1394        $(element).html(emptyListPlaceHolder);
1395    } else {
1396        $(element).css('display','none');
1397    }
1398
1399}
1400
1401var displayOpenHours = function(type, yextData){
1402    if(yextData.entities[0].attributes['timezone']){
1403        var zone = yextData.entities[0].attributes['timezone']
1404    } else {
1405        var zone = false
1406    }
1407    
1408    if(zone){
1409        var time = new Date().toLocaleString("en-US", {timeZone: zone});
1410        var today = new Date(time );
1411        
1412        var thirtyMins = 30 * 60 * 1000
1413
1414        var days = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'];
1415        var daysShort = ['Sun','Mon','Tues','Wed','Thurs','Fri','Sat'];
1416
1417        var day = days[today.getDay()];
1418        var hour = today.getHours();
1419        var min = today.getMinutes();
1420        var dd = ("0" + today.getDate()).slice(-2);
1421        var mm = ("0" + (today.getMonth() + 1)).slice(-2)
1422        var yyyy = today.getFullYear();
1423        var todayDate = yyyy + '-' + mm + '-' + dd
1424        var mm = mm - 1 
1425        
1426        const tomorrow = new Date(today)
1427        tomorrow.setDate(tomorrow.getDate() + 1)
1428        var mmTmw  = ("0" + (tomorrow.getMonth() + 1)).slice(-2)
1429        var ddTmw = ("0" + tomorrow.getDate()).slice(-2)
1430        var yyyyTmw = tomorrow.getFullYear();
1431        var nextDay = days[tomorrow.getDay()]
1432        var tommorrow = yyyyTmw + '-' + mmTmw + '-' + ddTmw
1433        var mmTmw = mmTmw - 1
1434    }
1435
1436    if(yextData.entities[0].attributes[type + '-' + day]) {
1437        var yextAtt = yextData.entities[0].attributes[type + '-' + day]
1438        if (yextAtt === "Closed"){
1439            yextAtt = false
1440        }
1441    } else {
1442        var yextAtt = false
1443    }
1444    
1445    //check if day is closed
1446    if(yextData.entities[0].attributes[type + '.' + day + '.isClosed'] === true) { 
1447        var closed = true
1448    }
1449    
1450    //collects business holiday hours 
1451    if(yextData.entities[0].attributes[type + '.holidayHours']){
1452        var holidayHours = yextData.entities[0].attributes[type + '.holidayHours']
1453    } else{
1454         var holidayHours = false
1455    }
1456    
1457    //gets next days start time
1458    if(yextData.entities[0].attributes[type + '.' + nextDay + '.isClosed'] === true){
1459        var tomorrowOpen = false
1460    } else {
1461        var tomorrowOpen = true
1462        var tmrwStart = yextData.entities[0].attributes[type + '-' + nextDay].split(" - ")[0]
1463    }
1464    
1465     //checks if holiday hours change 
1466    if(holidayHours) {
1467        for(var i=0;i < holidayHours.length;i++){
1468            if(holidayHours[i].date === todayDate && holidayHours[i].openIntervals){
1469                yextAtt = holidayHours[i].hoursFormatted
1470            } 
1471        }
1472    }
1473    
1474    //split hours
1475    if(yextAtt && yextAtt.includes(",")){
1476        yextAtt = yextAtt.split(", ")
1477        for(var i=0;i < yextAtt.length;i++){
1478            var end = yextAtt[i].split(' - ')[1]
1479            var start = yextAtt[i].split(' - ')[0]
1480            if (i+1 != yextAtt.length){
1481                var nextStart = yextAtt[i + 1].split(' - ')[0]
1482            }
1483            if(start.includes("pm") && start.split(/\s+|:/)[0] != "12"){
1484                var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/\s+|:/)[0]) + 12, parseInt(start.split(/\s+|:/)[1]))
1485            } else {
1486                var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/\s+|:/)[0]), parseInt(start.split(/\s+|:/)[1]))
1487            }
1488            
1489            if(nextStart.includes("pm") && nextStart.split(/\s+|:/)[0] != "12"){
1490                var nextStartDate = new Date(yyyy, mm, dd, parseInt(nextStart.split(/\s+|:/)[0]) + 12, parseInt(nextStart.split(/\s+|:/)[1]))
1491            } else {
1492                var nextStartDate = new Date(yyyy, mm, dd, parseInt(nextStart), parseInt(nextStart.split(/\s+|:/)[1]))
1493            }
1494        
1495            if(end.includes("pm") && end.split(/\s+|:/)[0] != "12"){
1496                var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/\s+|:/)[0]) + 12, parseInt(end.split(/\s+|:/)[1]))
1497            } else {
1498                var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/\s+|:/)[0]), parseInt(end.split(/\s+|:/)[1]))
1499            }
1500        
1501            if (end.includes("am") && (endDate < startDate)){
1502                endDate = new Date(yyyyTmw, mmTmw, ddTmw, parseInt(end.split(/\s+|:/)[0]), parseInt(end.split(/\s+|:/)[1]))
1503            }
1504        
1505            if(today < startDate){
1506                var closed = true 
1507                tmrwStart = start
1508                break
1509            }else if(today > startDate && today < endDate){
1510                yextAtt = start + ' - ' + end
1511                break
1512            }else if(today > endDate &&  (i+1 != yextAtt.length) && today < nextStartDate){
1513                var closed = true
1514                tmrwStart = nextStart
1515                tomorrowOpen = true
1516            }else if(today > endDate && i+1 === yextAtt.length){
1517                var closed = true
1518            }
1519        }
1520    }  
1521    
1522    
1523    if(yextAtt || closed) {
1524        if(typeof yextAtt === "string"){
1525        var start = yextAtt.split(" - ")[0]
1526        var end = yextAtt.split(" - ")[1]
1527        if(start.includes("pm") && start.split(/\s+|:/)[0] != "12"){
1528            var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/\s+|:/)[0]) + 12, parseInt(start.split(/\s+|:/)[1]))
1529        } else {
1530            var startDate = new Date(yyyy, mm, dd, parseInt(start.split(/\s+|:/)[0]), parseInt(start.split(/\s+|:/)[1]))
1531        }
1532        
1533        if(end.includes("pm") && end.split(/\s+|:/)[0] != "12"){
1534            var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/\s+|:/)[0]) + 12, parseInt(end.split(/\s+|:/)[1]))
1535        } else if (end.includes("am") && end.split(/\s+|:/)[0] === "12") {
1536            var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/\s+|:/)[0]) - 12, parseInt(end.split(/\s+|:/)[1]))
1537        } else {
1538            var endDate = new Date(yyyy, mm, dd, parseInt(end.split(/\s+|:/)[0]), parseInt(end.split(/\s+|:/)[1]))
1539        }
1540        
1541        if (end.includes("am") && (endDate < startDate)){
1542            endDate = new Date(yyyyTmw, mmTmw, ddTmw, parseInt(end.split(/\s+|:/)[0]), parseInt(end.split(/\s+|:/)[1]))
1543        }
1544        
1545        //check if closed
1546        if(today > endDate){
1547            var closed = true
1548        //opened 24 hours 
1549        } else if(start === '12:00 am' && end === '11:59 pm'){
1550            var status = "Open "
1551            var cssClass = "allDayStatus"
1552            var busHours = ' 24 hours '
1553        //opened
1554        } else if(today < startDate){
1555            var closed = true
1556        //check if closing soon
1557        } else if (endDate - today < thirtyMins && endDate - today < 0 === false ){
1558                var status = "Closing Soon "
1559                var cssClass = "soonStatus"
1560                var busHours = ' • ' + end 
1561        } else {
1562            var status = "Open "
1563            var cssClass = "openedStatus"
1564            var busHours = '• Closes ' + end 
1565        }
1566 
1567        }
1568        
1569        if(closed){
1570        
1571        // closed & opening today 
1572        if((today < startDate)){
1573            var status = "Closed "
1574            var cssClass = "closedStatus"
1575            var busHours = ' Opens ' + start 
1576        //closed & open tomorrow 
1577        } else if(closed && tomorrowOpen === true){
1578            var status = "Closed "
1579            var cssClass = "closedStatus"
1580            var busHours = ' • Opens ' + tmrwStart 
1581        //closed and not open tomorrow 
1582        } else if(closed && tomorrowOpen != true){
1583            var offset = days.indexOf(day) + 1
1584            for( var i=0; i < days.length; i++) {
1585                var dayIndex = (i + offset) % days.length;
1586                if(yextData.entities[0].attributes[type + '.' + days[dayIndex] + '.openIntervals']){
1587                    tmrwStart =  daysShort[dayIndex] + " " + yextData.entities[0].attributes[type + '-' + days[dayIndex]].split(" - ")[0] 
1588                    break
1589                }
1590            }
1591            var status = "Closed "
1592            var cssClass = "closedStatus"
1593            var busHours = ' • Opens ' + tmrwStart
1594
1595        }
1596        }
1597    }
1598 
1599    // checks if holiday
1600    if(holidayHours) {
1601        for(var i=0;i < holidayHours.length;i++){
1602            if(holidayHours[i].date === todayDate && holidayHours[i].isClosed === true && tomorrowOpen === false){
1603                var offset = days.indexOf(day) + 1
1604                for( var i=0; i < days.length; i++) {
1605                    var dayIndex = (i + offset) % days.length;
1606                    if(yextData.entities[0].attributes[type + '.' + days[dayIndex] + '.openIntervals']){
1607                    tmrwStart = daysShort[dayIndex] + " " + yextData.entities[0].attributes[type + '-' + days[dayIndex]].split(" - ")[0]
1608                    break
1609                }
1610                }
1611                var status = "Closed "
1612                var cssClass = "closedStatus"
1613                var busHours = ' • Opens ' + tmrwStart  
1614            } else if(holidayHours[i].date === todayDate && holidayHours[i].isClosed === true && tomorrowOpen === true){
1615                var status = "Closed "
1616                var cssClass = "closedStatus"
1617                var busHours = ' • Opens ' + tmrwStart 
1618                
1619            }
1620        }
1621    } 
1622    if(cssClass){
1623        var hoursWidgets = document.getElementsByClassName('status')
1624        for( var i=0; i < hoursWidgets.length; i++) {
1625            hoursWidgets[i].classList.add(cssClass);
1626        }
1627    }
1628    if(status){
1629        var hoursWidgets = document.getElementsByClassName('status')
1630        for( var i=0; i < hoursWidgets.length; i++) {
1631            hoursWidgets[i].innerText = status;
1632        }
1633    }
1634    if(cssClass === 'allDayStatus'){
1635        var hoursWidgets = $(element).find('.openHours')
1636        for( var i=0; i < hoursWidgets.length; i++) {
1637            hoursWidgets[i].children[0].textContent = ""
1638        }
1639    }
1640    if(document.getElementsByClassName('openHours')[0].childElementCount > 1){
1641        var hoursWidgets = document.getElementsByClassName('openHours')
1642        for( var i=0; i < hoursWidgets.length; i++) {
1643            var openHoursLength = hoursWidgets[i].childNodes.length
1644            var oldHours = hoursWidgets[i]
1645            oldHours.removeChild(oldHours.childNodes[openHoursLength - 1])
1646        }
1647    }
1648    var hoursWidgets = document.getElementsByClassName('openHours')
1649    for( var i=0; i < hoursWidgets.length; i++) {
1650            hoursWidgets[i].append(busHours)
1651        }
1652}
1653
1654
1655var displayHolidayHoursList = function(type,yextData) {
1656    var list = "";
1657    
1658    if(yextData.entities[0].attributes["hours.holidayHours"]) {
1659        var yextAtt = yextData.entities[0].attributes["hours.holidayHours"]
1660    } else if(yextData.entities[0].attributes["holidayHours"]) {
1661        var yextAtt = yextData.entities[0].attributes["holidayHours"]
1662    } else {
1663        var yextAtt = false
1664    }
1665    
1666    
1667    
1668    if(yextAtt) {
1669        for (var i=0; i< yextAtt.length; i++) {
1670            
1671            var dateHol = new Date(Date.parse(yextAtt[i].date)); 
1672
1673            var dateNow = new Date();
1674            var numDaysBetween = getNumDaysBetween(dateHol,dateNow);
1675        
1676            if (numDaysBetween > -1) {
1677                // write to dom
1678                list += '<li>' + yextAtt[i].dateFormatted + ' -  <span class="holidayHoursStatus">' + yextAtt[i].hoursFormatted + '</span></li>';
1679            }
1680            
1681        }
1682        $(element).find('#' + type + 'List').html(list);
1683    } else if (data.inEditor) {
1684        // if in editor display place holder
1685        $(element).html(emptyListPlaceHolder);
1686    } else {
1687        // if empty, hide element on runtime
1688        $(element).css('display','none');
1689    }
1690}
1691
1692var displayServiceArea = function(type,yextData,firstOnly) {
1693    var list = "";
1694    if(yextData.entities[0].attributes[type]) {
1695        var yextAtt = yextData.entities[0].attributes[type]
1696    } else {
1697        var yextAtt = false
1698    }
1699
1700    if (firstOnly) {
1701        list = '<li>' + yextAtt[0] + '</li>';
1702        $(element).find('#' + type + 'List').html(list);
1703    } else if (yextAtt && Array.isArray(yextAtt)) {
1704        for (var i=0; i< yextAtt.length; i++) {
1705            list += '<li>' + yextAtt[i] + '</li>';
1706        }
1707        $(element).find('#' + type + 'List').html(list);
1708    } else if (yextAtt) {
1709        var yextAtt = yextData.entities[0].attributes[type + ".places"]
1710        for (var i=0; i< yextAtt.length; i++) {
1711            list += '<li>' + yextAtt[i] + '</li>';
1712        }
1713        $(element).find('#' + type + 'List').html(list);
1714    } else if (data.inEditor) {
1715        $(element).html(emptyListPlaceHolder);
1716    } else {
1717        $(element).css('display','none');
1718    }
1719
1720}
1721
1722var displayPhoneList = function(type,yextData) {
1723    var list = "";
1724    
1725    var locData = yextData.entities[0].attributes;
1726    
1727    if(locData.phone) {
1728        list += '<li><span class="phoneLabel">Main:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.phone) + '</span></li>';
1729    }
1730    if(locData.localPhone) {
1731        list += '<li><span class="phoneLabel">Local:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.localPhone) + '</span></li>';
1732    }
1733    if(locData.alternatePhone) {
1734        list += '<li><span class="phoneLabel">Alternate:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.alternatePhone) + '</span></li>';
1735    }
1736    if(locData.tollFreePhone) {
1737        list += '<li><span class="phoneLabel">Toll Free:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.tollFreePhone) + '</span></li>';
1738    }
1739    if(locData.mobilePhone) {
1740        list += '<li><span class="phoneLabel">Mobile:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.mobilePhone) + '</span></li>';
1741    }
1742    if(locData.faxPhone) {
1743        list += '<li><span class="phoneLabel">Fax:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.faxPhone) + '</span></li>';
1744    }
1745    if(locData.ttyPhone) {
1746        list += '<li><span class="phoneLabel">TTY:</span><span class="phoneNum"> ' + formatPhoneBeforeRender(locData.ttyPhone) + '</span></li>';
1747    }
1748    
1749    if(list.length > 0) {
1750        $(element).find('#' + type + 'List').html(list);
1751    } else if (data.inEditor) {
1752        $(element).html(emptyListPlaceHolder);
1753    } else {
1754        $(element).css('display','none');
1755    }
1756    
1757    emitYextPhoneRenderEvent(formatPhoneBeforeRender(locData.phone));
1758    
1759}
1760
1761var getNumDaysBetween = function(d1, d2) {
1762  var diff = d1.getTime() - d2.getTime();
1763  return diff / (1000 * 60 * 60 * 24);
1764};
1765
1766var orderPaymentsList = function(listData) {
1767    
1768    if(listData.indexOf('Discover') >= 0) {
1769        listData.splice(listData.indexOf("Discover"), 1);
1770        listData.unshift('Discover');
1771    }
1772    
1773    if(listData.indexOf('American Express') >= 0) {
1774        listData.splice(listData.indexOf("American Express"), 1);
1775        listData.unshift('American Express');
1776    }
1777    
1778    if(listData.indexOf('MasterCard') >= 0) {
1779        listData.splice(listData.indexOf("MasterCard"), 1);
1780        listData.unshift('MasterCard');
1781    }
1782    
1783    if(listData.indexOf('Visa') >= 0) {
1784        listData.splice(listData.indexOf("Visa"), 1);
1785        listData.unshift('Visa');
1786    }
1787    
1788    return listData
1789}
1790
1791var displayImageList = function(type,yextData) {
1792    var list = "";
1793    var listData = orderPaymentsList(_yextData.entities[0].attributes[type]);
1794    
1795    
1796    for (var i=0; i< listData.length; i++) {
1797        
1798        list += '<img src="' + getImageUrl(listData[i],data.config.cardStyleDarkOrLight) + '" alt="' + listData[i] + '"/>'
1799    }
1800    
1801    if(list.length > 0) {
1802        $(element).find('#paymentOptionsImages').html(list)
1803    } else if (data.inEditor) {
1804        $(element).html(emptyListPlaceHolder);
1805    } else {
1806        $(element).css('display','none');
1807    }
1808    
1809    
1810    
1811}
1812
1813var displaySocialIcons = function(type,yextData) {
1814    var list = "";
1815    
1816    if(yextData.entities[0].attributes.facebookPageUrl) {
1817        list += '<a href="' + yextData.entities[0].attributes.facebookPageUrl + '" target="_blank"> <img src="https://cdn.websites.hibu.com/-resellers-preview/_social_icons/hibu_facebook.svg" /></a>'
1818    }
1819    if(yextData.entities[0].attributes.twitterHandle) {
1820        list += '<a href="https://twitter.com/' +  yextData.entities[0].attributes.twitterHandle + '" target="_blank"> <img src="https://cdn.websites.hibu.com/-resellers-preview/_social_icons/hibu_twitter.svg" /></a>'
1821    }
1822    if(yextData.entities[0].attributes.instagramHandle) {
1823        list += '<a href="https://www.instagram.com/'+ yextData.entities[0].attributes.instagramHandle+'" target="_blank"> <img src="https://cdn.websites.hibu.com/-resellers-preview/_social_icons/hibu_instagram.svg" /></a>'
1824    }
1825    
1826    if(list.length > 0) {
1827        $(element).find('#socialIcons').html(list);
1828    } else if (data.inEditor) {
1829        $(element).html(emptyListPlaceHolder);
1830    } else {
1831        $(element).css('display','none');
1832    }
1833    
1834    
1835}
1836
1837var getImageUrl = function(name,style) {
1838    var cdnPath = 'https://cdn.websites.hibu.com/-resellers-preview/_cc_icons/';
1839    if(!style) {
1840        style = '_d.svg'
1841    }
1842    if (name === "ZELLE"){
1843        name = "Zelle"
1844    }
1845    if (name === "Google Pay"){
1846        name = "Android Pay"
1847    }
1848    if (name === "KLARNA"){
1849        name = "Klarna"
1850    }
1851    var imageUrl='';
1852    switch (name) {
1853        case 'Visa':
1854            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1855            break;
1856        case 'MasterCard':
1857            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1858            break;
1859        case 'Discover':
1860            imageUrl = cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1861            break;
1862        case 'American Express':
1863            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1864            break;
1865        case 'Android Pay':
1866            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1867            break;
1868        case 'Apple Pay':
1869            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1870            break;
1871        case 'Bitcoin':
1872            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1873            break;
1874        case 'Cash':
1875            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1876            break;
1877        case 'Check':
1878            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1879            break;
1880        case 'Diners Club':
1881            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1882            break;
1883        case 'Discover':
1884            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1885            break;
1886        case 'Financing':
1887            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1888            break;
1889        case 'Invoice':
1890            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1891            break;
1892        case 'PayPal':
1893            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1894            break;
1895        case 'Samsung Pay':
1896            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1897            break;
1898        case "Traveler's Check":
1899            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1900            break;
1901        case "Zelle":
1902            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1903            break
1904        case "Klarna":
1905            imageUrl =  cdnPath + name.replace(/[\W_]+/g,'').toLowerCase() + style;
1906            break
1907    }
1908    return imageUrl
1909}
1910
1911function emitYextPhoneRenderEvent(phone) {
1912    var yextPhoneRenderEvent = new CustomEvent('YextPhoneChangeEvent', 
1913        { 
1914            detail: phone, 
1915            bubbles: true, 
1916            cancelable: true 
1917        });
1918        
1919        document.dispatchEvent(yextPhoneRenderEvent);
1920}
1921
1922var initYextElements = function(yextData,widgetType){
1923    if (widgetType === 'address' && data.config.drawMap) {
1924        drawMap(yextData);
1925    } else if (widgetType === 'paymentOptions' && data.config.showPaymentsAs === 'paymentIcons') {
1926        displayImageList(widgetType,yextData);
1927    } else if (widgetType === 'phone' && data.config.phoneShowAs === 'list') {
1928        displayPhoneList(widgetType,yextData);
1929    // check for any list type
1930    } else if(widgetType === 'phone' && data.config.phoneShowAs === 'button') {
1931        var phFormatted = formatPhoneBeforeRender(yextData.entities[0].attributes[data.config.phoneType],function(phone) {
1932            $(element).find(".dmButtonLink").html('<span class="text">' + phone + '</span>');   
1933            
1934            emitYextPhoneRenderEvent(phone);
1935            
1936        });
1937    } else if(widgetType === 'phone' && data.config.phoneShowAs === 'text') {
1938        var phFormatted = formatPhoneBeforeRender(yextData.entities[0].attributes[data.config.phoneType],function(phone) {
1939            $(element).find('.yextPhoneText').html('<span class="text">' + phone + '</span>');   
1940            
1941            emitYextPhoneRenderEvent(phone);
1942            
1943        });
1944    } else if (widgetType === 'services' || widgetType === 'googleAttributesFormatted' || widgetType === 'languages' || widgetType === 'paymentOptions' || widgetType === 'keywords' || widgetType === 'products' || widgetType === 'associations' || widgetType === 'brands') {
1945        setTimeout(function() { 
1946            displayTextdList(widgetType,yextData)
1947        },1);
1948    } else if(widgetType === 'specialties') {
1949        setTimeout(function() {
1950            displaySpecialties(yextData)
1951        },1)
1952    }else if (widgetType ==='serviceArea') {
1953        setTimeout(function() {
1954            displayServiceArea(widgetType,yextData,data.config.showServiceAreaFirst)
1955        },1)
1956    } else if (widgetType ==='hours' && data.config.hoursShowAs === 'list' && data.config.isList == false) {
1957        setTimeout(function() {
1958            displayHours(widgetType,yextData)
1959        },1)
1960    } else if (widgetType ==='hours' && data.config.hoursShowAs === 'openHours') {
1961        setTimeout(function() {
1962            displayOpenHours(widgetType,yextData)
1963        },1)
1964    } else if (widgetType === 'social') {
1965        displaySocialIcons(widgetType,yextData);
1966    } else if (widgetType === 'holidayHours') {
1967        setTimeout(function() { 
1968            displayHolidayHoursList(widgetType,yextData)
1969        },1);
1970    } else if (widgetType === 'hours') {
1971        //hide hours list if toggle enabled
1972        if(data.config.hideHoursList === true) {
1973            $(element).find('.yextHours').css('display','none');
1974        }
1975    } else if (widgetType === 'description' || widgetType === 'yearEstablished' || widgetType === 'email' || widgetType === 'name') {
1976        // check
1977        hideIfEmpty(widgetType,yextData)
1978    }
1979    //remove error if script not entered correctly.
1980    $(element).find('.wrongScriptError').removeClass('hasError');
1981    
1982}
1983
1984function hideIfEmpty(type,yextData) {
1985    if(!yextData.entities[0].attributes[type]) {
1986        if(data.inEditor) {
1987            $(element).html(emptyListPlaceHolder);
1988        } else {
1989            $(element).css('display','none');    
1990        }
1991        
1992    }
1993}
1994
1995// TODO CHANGE TO EVENT CALL BACK
1996var startIntervalToWaitAndLoadWidgets = function(widgetType) {
1997    //start interval for this specific widget
1998    var intervalCheckYextLoaded = setInterval(function(){
1999        if (window._yextData) {
2000            clearInterval(intervalCheckYextLoaded);
2001            initYextElements(window._yextData,widgetType);
2002        } 
2003    },50)
2004}
2005
2006
2007/* initialization */
2008if(data.inEditor){
2009    window.refreshYext && window.refreshYext();
2010    
2011    
2012    $(document).ready(function(){
2013        if(!window.yextInitialized){
2014            $(element).find('.missingYextWidget').addClass('show'); 
2015        } else {
2016            $(element).find('.missingYextWidget').removeClass('show'); 
2017        }
2018    });
2019    
2020} else {
2021    dmAPI.runOnReady('yext' , function(){
2022        loadYext();
2023   });
2024    // Before navigating with Ajax, we set the yext initialized to be false so it will be initialized again after the ajax navigation
2025    dmAPI.runBeforeAjaxNavigation('yext', function(){
2026        window.yextInitialized = false;
2027    });
2028}
2029    };
2030</script>
2030
2031
2032<script>
2033    window.customWidgetsFunctions["afd4bc7f907140298e111130d715031d~99"] = function (element, data, api) {
2034        let HasOpenedMenu = false;
2035
2036$(document).ready(function() {
2037   displayType();
2038});
2039
2040function displayType() {
2041    if(isMobile()) {
2042        displayMobile();
2043    } else {
2044        displayDesktop();
2045    }
2046}
2047
2048function displayMobile() {
2049    var masterFabEle = $(element).find('#masterfab');
2050    $('#main-container').empty().append(getSvg(data.config.MobileMain));
2051    
2052    $(masterFabEle).attr('class', 'fab master-mobile');// add mobile class for custom style
2053    
2054    $(masterFabEle).css('display', 'flex'); //since element is hidden by default, show instead
2055    
2056    // set the text alignment var here for use below (update BSR:20200421)
2057    var moText = (data.config.MobileOrientation === 'left') ? 'bsrRightText' : 'leftText';
2058    
2059    // add items with or without overlay and label text
2060    if(data.config.MobileLayout === 'Full') {
2061        $('.mobile-bg').after(getItems(moText));
2062    }
2063    else {
2064        $('.mobile-bg').after(getItems());
2065    }
2066    
2067    mobileTheme();  // add light or dark theme
2068    bsrIconResize(); // makes a custom icon resizable (update BSR:20200529)
2069    bsrMobileOrientation(); // positions menu left or right (update BSR:20200421)
2070    addListener();
2071    
2072    if (typeof fbq === "function") { // this makes sure that fbq is on the page
2073        addPixelListener(); // Facebook Pixel conversion tracking (update BSR:20200422)
2074    }
2075    addChatListener(); // Add chat script injection (update BSR:20200526)
2076    
2077    // add focus animation
2078    if(data.config.FocusAni) animateFocus();
2079}
2080function displayDesktop() {
2081    var masterFabEle = $(element).find('#masterfab');
2082    $(masterFabEle).css('display', 'flex'); //since element is hidden by default, show instead
2083    if(data.config.DesktopLayout === 'Bar') {
2084        $('#main-container').empty().append(getSvg(data.config.DeskMain));
2085        $(masterFabEle).append(getItems('rightText'));
2086    }
2087    else {
2088        $('#float-container').empty().append(getItems('rightText', true));
2089    }
2090    desktopType();
2091    bsrIconResize(); // makes a custom icon resizable (update BSR:20200529)
2092    addListener();
2093    
2094    if (typeof fbq === "function") { // this makes sure that fbq is on the page
2095        addPixelListener(); // Facebook Pixel conversion tracking (update BSR:20200422)
2096    }
2097    addChatListener(); // Add chat script injection (update BSR:20200526)
2098    
2099    // add focus animation
2100    if(data.config.FocusAni) animateFocus();
2101}
2102// handles style changes for desktop types
2103function desktopType() {
2104    $('#masterfab').attr('class', 'fab master-desktop'); // add desktop class for styling
2105    $('.icon-container').addClass('desktop');
2106    if(data.config.DesktopLayout === 'Bar') {
2107        $('.menu-link').addClass('desk-bar');       // add class for fixed bar text
2108        $('.child').attr('class', 'fab child child-desktop-bar');
2109        
2110        const masterLabel = '<span id="master-label">'+data.config.MainLabel+'</span>';
2111        $('#master-label').remove();
2112        $('#masterfab').append(masterLabel);
2113        
2114        $('#masterfab').addClass('master-bar');
2115    } else if(data.config.DesktopLayout === 'Float') {
2116        $('#masterfab').hide();
2117    }
2118}
2119// styles light and dark mobile themes
2120function mobileTheme() {
2121    $('.child').attr('class', 'fab child child-mobile');
2122    if(data.config.MobileTheme === 'Light') {
2123        $('.overlay, .child, .social-icon, .icon-container, .mobile-bg, social-bg, .menu-link').addClass('mobile light');
2124    }
2125    else if(data.config.MobileTheme === 'Dark') {
2126        $('.overlay, .child, .social-icon, .icon-container, .mobile-bg, social-bg, .menu-link').addClass('mobile dark');
2127    }
2128}
2129// adds the menu to the left or right of the mobile screen (update BSR:20200421)
2130function bsrMobileOrientation() {
2131    if(data.config.MobileOrientation === 'left') {
2132        $('.fab.master-mobile, .child.mobile').addClass('bsr-left');
2133    }
2134    else {
2135        $('.fab.master-mobile, .child.mobile').removeClass('bsr-left');
2136    }
2137}
2138
2139/*  
2140    Previous implementation places custom icons in a new <div>
2141    I found this to be inconsistent in resizing so the function
2142    adds the appropriate class directly to the svg element
2143    (update BSR:20200529)
2144*/
2145function bsrIconResize() {
2146    customIcons = $(element).find('.custom-user-icon');
2147    if(customIcons.length > 0) {
2148        $.each(customIcons, function(i, cicon) {
2149            var classList = $(cicon).attr('class').split(/\s+/);
2150            $.each(classList, function(index, item) {
2151                if(item != 'custom-user-icon') {
2152                   $( "." + item + " > svg" ).addClass(item); // add the calling class to the child svg element directly
2153                   $( "." + item + " > svg" ).unwrap(); // remove the parent div
2154                }
2155            });
2156        });
2157    }
2158}
2159
2160
2161// adds click or hover listeners
2162function addListener() {
2163    // add listener and animation for floating icons hover animation
2164    if(!isMobile() && data.config.DesktopLayout === 'Float') animateFloat('.float-container', 300);
2165    // click handlers for desktop bar and mobile options
2166    else {
2167        $("#conversion-menu-container").off('click', '.fab,.overlay');
2168        $("#conversion-menu-container").on('click', '.fab,.overlay', function(){
2169            HasOpenedMenu = true;
2170            $('.animation').remove();   // remove any animations we have
2171            if(isMobile()) {
2172                animateIcons('overlay');
2173                data.config.MobileLayout === 'Full'? animateBg('.mobile-bg') : '';
2174            } else {    // bar desktop
2175                animateIcons('helpText');
2176                animateBg('.desktop-bg');
2177            }
2178        });
2179    }
2180}
2181
2182// listens for share button click and triggers response
2183function addShareListener() {
2184    $("#conversion-menu-container").off('click', '.share');
2185    $(".share").on('click', function() {
2186        // console.log('share clicked modal should open');
2187        MicroModal.show('social-modal-menu'); 
2188    });
2189}
2190function addPixelListener() {
2191    $('.bsr-menulink').click(function() {
2192        var eventName = $(this).data('eventname');
2193        if(!eventName) {
2194            fbq('track', 'Contact');
2195        } else {
2196            fbq('trackCustom', eventName);
2197        }
2198    });
2199}
2200function addChatListener() {
2201    $(".bsr-chat").on('click', function() {
2202        $("#chat-script").remove(); // Get rid of any chat-script on the page
2203        $.each(data.config.IconList, function(index,value){
2204            if(value.hasOwnProperty('ChatScript'))
2205            {
2206                var cscript = value.ChatScript;
2207                // Check if the script is a src or raw script
2208                // Changed mind and wanted to input 
2208<script> tags so this is saved for posterity
2209                /*
2210                var re = new RegExp('^(?:[a-z]+:)?//', 'i'); // non case-sensitive, protocol-agnostic 
2211                if (re.test(cscript)) {
2212                    $('body').append('
2212<script async="async" src="' + cscript + '" type="text/javascript" id="chat-script"><\/script>');
2213                    return false; // break out of the $.each() on first occurence
2214                } else {
2215                    $('body').append('
2215<script type="text/javascript" id="chat-script">' + cscript + '<\/script>');
2216                    return false; // break out of the $.each() on first occurence
2217                }
2218                */
2219                $('body').append(cscript);
2220            }
2221        });
2222    });
2223}
2224//
2225// ANIMATIONS
2226//
2227function animateFocus() {
2228    $('.animation').remove();   //in case already in DOM
2229    if(!HasOpenedMenu) {
2230        if(isMobile()) {
2231            const pulse = '<div class="pulse2 animation"/><div class="pulse animation"/>';
2232            setTimeout(function() {
2233                $('#masterfab').append(pulse);
2234            }, +data.config.FocusDelay);
2235        }
2236        // desktop
2237        else {
2238            data.config.DesktopLayout === 'Float'?
2239                animateFloatFocus() : animateBarFocus();
2240        }
2241    }
2242}
2243function animateFloatFocus() {
2244    if($('.focus')[0]) {
2245        const id = $('.focus')[0].id;
2246        setTimeout(function() {
2247            $('#'+id).css('max-width', '');
2248            $('#'+id).addClass('slide-pulse');
2249        }, +data.config.FocusDelay);
2250    }
2251}
2252// opens fixed bar on desktop after set interval
2253function animateBarFocus() {
2254    if(!$(".desktop-bg").is(":visible")) {
2255        setTimeout(function() {
2256            animateIcons('helpText');
2257            animateBg('.desktop-bg');
2258        }, +data.config.FocusDelay);
2259    }
2260}
2261// adds hover listeners and animates floating icons on desktop
2262function animateFloat(selector, dur) {
2263    $("#float-container").off("mouseenter", selector);
2264    $("#float-container").on("mouseenter", selector, function(event) {
2265        // console.log('float mouse enter');
2266        HasOpenedMenu = true;
2267        var id = $(this)[0].id;
2268        // cancel animation on hover
2269        data.config.FocusAni? $('#'+id).removeClass('slide-pulse') : 0;
2270        
2271        $('#text-'+id).fadeIn();
2272        $('#float-text-'+id).fadeIn(dur).css("display","inline-flex");
2273        $('#'+id).stop().animate({
2274            "max-width": "200px",
2275        }, dur);
2276    });
2277    
2278    $("#float-container").off("mouseleave", selector);
2279    $("#float-container").on("mouseleave", selector, function(event) {
2280        // console.log('float mouse leave');
2281        var id = $(this)[0].id;
2282        $('#text-'+id).fadeOut(dur);
2283        $('#'+id).stop().animate({
2284            "max-width": "42.666px",
2285        }, dur);
2286    });
2287}
2288// animates icons slide up and transparent overlay(depending on showType)
2289function animateIcons(showType) {
2290    if($(".overlay").is(":visible") || $(".desktop-bg").is(":visible")) {
2291        if(showType === 'overlay')          $('.overlay').fadeOut(125);
2292        else if(showType === 'helpText')    $('#help-text').fadeOut(125);
2293        
2294        // add plus icon back
2295        $('#main-container').empty().append(getSvg(data.config.MobileMain));
2296
2297        $('.fab.child').stop().animate({
2298            bottom  : $('#masterfab').css('bottom'),
2299            opacity : 0
2300        }, 125, function() {
2301            $(this).hide();
2302        });
2303    } else {
2304        if(showType === 'overlay')          $('.overlay').fadeIn(125);
2305        else if(showType === 'helpText')    $('#help-text').fadeIn(125);
2306        
2307        // add close icon on mobile only
2308        if(isMobile()) $('#main-container').empty().append(getSvg('close'));
2309        $(".fab.child").each(function(){
2310            $(this).stop().show().animate({
2311                bottom  : (parseInt($("#masterfab").css("bottom")) + parseInt($("#masterfab").outerHeight() + 20) + 56 * $(this).data("subitem") - $(".fab.child").outerHeight()) + "px",
2312                opacity : 1
2313            }, 125);
2314        });
2315    }
2316}
2317// adds overlay that slides up
2318function animateBg(selector) {
2319    if($(selector).is(":visible")) {
2320        $('#main-container').removeClass('open');
2321        $("#masterfab.fab.master-mobile").removeClass('mobile-open')
2322        var mainIcon = data.config.DeskMain
2323        // revert to default main icon style
2324        if(isMobile()) {
2325            mainIcon = data.config.MobileMain;
2326            $('#masterfab').css({'background': '', 'box-shadow': ''});  // restore default
2327        }
2328        $('#main-container').empty().append(getSvg(mainIcon));
2329        
2330        $('.menu-link, .child').hide();
2331        // slide down to cloes
2332        $(selector).stop().animate({
2333            height  : 0,
2334            opacity : 0
2335        }, 125, function(){
2336            $(this).hide();
2337        });
2338    } else {
2339        $('#main-container').addClass('open');
2340        $("#masterfab.fab.master-mobile").addClass('mobile-open')
2341        var topArea = 100;
2342        if(isMobile()) {
2343            $('#masterfab').css({'background': 'none', 'box-shadow': 'none'});  // make icon flat
2344            $('#main-container').empty().append(getSvg('close'));   // add x icon
2345        }
2346        else if(data.config.DesktopLayout === 'Bar') {
2347            // hack to get height of bar help text before it's visible
2348            $(selector).css({'position':'absolute','visibility':'hidden', 'display':'block'});
2349            topArea = $("#help-text").height()? $("#help-text").height() + 60 : 40;
2350            $(selector).removeAttr('style');
2351        }
2352        
2353        // slide up to open
2354        $(selector).stop().show().animate({
2355            height  : (((data.config.IconList.length+1) * 56) + topArea) + "px",
2356            opacity : 1
2357        },125, function() {
2358            $('.menu-link').fadeIn(125);
2359            $(selector).css("display","flex")
2360        });
2361    }
2362}
2363function getItems(type, float) {
2364    $('.child').remove();   // remove any items already in DOM
2365    var html = '', label = '', icon = '', text = '';
2366    var items = float? data.config.IconList : data.config.IconList.reverse();
2367    items.forEach(function(item, index) {
2368        
2369        if(item.showonmobile==true && data.device === 'mobile'){
2370            index = index+1;
2371           if(type === 'rightText'){ 
2372               label = '<span class="right-text">' + item.Label + '</span>';
2373            }
2374            if(type === 'leftText') {
2375                label = '<span class="left-text">' + item.Label + '</span>';
2376            }
2377            if(type === 'bsrRightText') {
2378                label = '<span class="bsr-right-text">' + item.Label + '</span>';
2379            }
2380            
2381           
2382            
2383                icon = '<span class="icon-container">'+getItemIcon(item)+'</span>';
2384                html += 
2385                    '<div class="fab child" id="child-'+index+'" data-subitem="'+index+'"> \
2386                        '+getItemAction(item, icon+label)+' \
2387                    </div>';
2388            
2389            if(item.Action === 'Share') {
2390                $.getScript('https://cdn.jsdelivr.net/npm/micromodal/dist/micromodal.min.js', function() {
2391                    MicroModal.init();
2392                    $('.share-container').html(getSocialItems(item));   // add social icons to modal
2393                    addShareListener();   // if social sharing enabled add click handler
2394                });
2395            }
2396        }
2397        
2398        else if(item.showondesktop==true && (data.device === 'desktop' || data.device === 'tablet') ){
2399            
2400           if(type === 'rightText'){ 
2401           label = '<span class="right-text">' + item.Label + '</span>';
2402        }
2403        if(type === 'leftText') {
2404            label = '<span class="left-text">' + item.Label + '</span>';
2405        }
2406        if(!float) {
2407            icon = '<span class="icon-container">'+getItemIcon(item)+'</span>';
2408            html += 
2409                '<div class="fab child" id="child-'+index+'" data-subitem="'+index+'"> \
2410                    '+getItemAction(item, icon+label)+' \
2411                </div>';
2412        }
2413        // floating icons on desktop only
2414        else {
2415            
2416            // add focus class for focus animation
2417            label = item.Label;
2418            var focusClass = item.Animate? 'focus' : '';
2419            icon = '<span class="icon-container">'+getItemIcon(item)+'</span>';
2420            text = '<span class="float-text" id="text-'+index+'">'+label+'</span>';
2421            html += 
2422                '<div class="float-container '+focusClass+'" id="'+index+'"> \
2423                    <span class="fab child float" id="child-'+index+'" data-subitem="'+index+'" style="display: inline-flex;"> \
2424                        '+getItemAction(item, icon)+' \
2425                    </span> \
2426                    <span class="float-text-container" id="float-text-'+index+'"> \
2427                        '+getItemAction(item, text)+' \
2428                    </span> \
2429                </div>';
2430        }
2431        // if action is share add share items to modal
2432        if(item.Action === 'Share') {
2433            $.getScript('https://cdn.jsdelivr.net/npm/micromodal/dist/micromodal.min.js', function() {
2434                MicroModal.init();
2435                $('.share-container').html(getSocialItems(item));   // add social icons to modal
2436                addShareListener();   // if social sharing enabled add click handler
2437            });
2438        }
2439        }
2440    });
2441    return html;
2442}
2443function getSocialItems(item) {
2444    let html = '';
2445    const content = getShareContent(item);
2446    if(item.Email)      html += getShareHtml('Email', content.link, content.title, 'Tab', 'social');
2447    if(item.Facebook)   html += getShareHtml('Facebook', content.link, content.title, 'Tab', 'social');
2448    if(item.Tumblr)     html += getShareHtml('Tumblr', content.link, content.title, 'Tab', 'social');
2449    if(item.LinkedIn)   html += getShareHtml('LinkedIn', content.link, content.title, 'Tab', 'social');
2450    if(item.Twitter)    html += getShareHtml('Twitter', content.link, content.title, 'Tab', 'social');
2451    if(item.Reddit)     html += getShareHtml('Reddit', content.link, content.title, 'Tab', 'social');
2452    //if(item.GooglePlus) html += getShareHtml('GooglePlus', content.link, content.title, 'Tab', 'social');
2453    if(item.Pinterest)  html += getShareHtml('Pinterest', content.link, content.title, 'Tab', 'social');
2454    return html;
2455}
2456
2457//
2458// Social Share Functions
2459//
2460function getShareContent(item) {
2461    // set link to the current page url
2462    let link = item.ShareLink? item.Link.href : window.top.location.href;
2463    link = encodeURI(link);
2464    
2465    // get default page title from the actual page title
2466    const pageTitle = item.ShareTitle? item.ShareTitle : document.title;
2467    const encodedTitle = encodeURI(pageTitle);
2468    
2469    return {link: link, title: encodedTitle};
2470}
2471function getShareHtml(site, link, encodedTitle, action, linkClass) {
2472    let href = '';
2473    switch(site) {
2474        case 'Email':
2475            href = "mailto:?Subject="+encodedTitle+"&body=Check out this site: "+window.location.href;
2476            
2477            statsEventName = 'CM_SHARE_EMAIL';
2478            return (
2479                '<div class="social-icon" style="background-color: grey;"> \
2480                    <a href="'+href+'" class="'+linkClass+'" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');;"> \
2481                        '+getSvg('shareenvelope')+' \
2482                    </a> \
2483                </div>');
2484        case 'Facebook':
2485            href = 'https://www.facebook.com/sharer/sharer.php?u='+link;
2486            statsEventName = 'CM_SHARE_FB';
2487            return (
2488                '<div class="social-icon" style="background-color: #3b5998;"> \
2489                    <a href="'+href+'" class="'+linkClass+'" target="_blank" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');"> \
2490                        '+getSvg('facebook')+' \
2491                    </a> \
2492                </div>');
2493        case 'Tumblr':
2494            href = 'http://tumblr.com/share/link?url='+link+'&name='+encodedTitle;
2495            return ( 
2496                '<div class="social-icon" style="background-color: #35465c;"> \
2497                    <a href="'+href+'" class="'+linkClass+'" target="_blank" > \
2498                        '+getSvg('tumblr')+' \
2499                    </a> \
2500                </div>');
2501        case 'LinkedIn':
2502            href = 'http://www.linkedin.com/shareArticle?mini=true&amp;url='+link+'&amp;title='+encodedTitle;
2503            statsEventName = 'CM_SHARE_LINKEDIN';
2504            return ( 
2505                '<div class="social-icon" style="background-color: #4875B4;"> \
2506                    <a href="'+href+'" class="'+linkClass+'" target="_blank" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');"> \
2507                        '+getSvg('linkedIn')+' \
2508                    </a> \
2509                </div>');
2510        case 'Twitter':
2511            href = 'https://twitter.com/intent/tweet?text='+link;
2512            statsEventName = 'CM_SHARE_TWITTER';
2513            return (
2514                '<div class="social-icon" style="background-color: #000000;"> \
2515                    <a href="'+href+'" class="'+linkClass+'" target="_blank" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');"> \
2516                        '+getSvg('twitter')+' \
2517                    </a> \
2518                </div>');
2519        case 'Reddit':
2520            href = 'http://www.reddit.com/submit?url='+link+'&title='+encodedTitle+'&text='+encodedTitle;
2521            return ( 
2522                '<div class="social-icon" style="background-color: #ff4500;"> \
2523                    <a href="'+href+'" class="'+linkClass+'" target="_blank"> \
2524                        '+getSvg('reddit')+' \
2525                    </a> \
2526                </div>');
2527       /* case 'GooglePlus':
2528            href = 'https://plus.google.com/share?url='+link;
2529            statsEventName = 'CM_SHARE_GOOGLE_PLUS';
2530            return ( 
2531                '<div class="social-icon" style="background-color: #d34836;"> \
2532                    <a href="'+href+'" class="'+linkClass+'" target="_blank" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');"> \
2533                        '+getSvg('gPlus')+' \
2534                    </a> \
2535                </div>'); */
2536        case 'Pinterest':
2537            href = 'http://pinterest.com/pin/create/button/?url='+link+'&amp;description='+encodedTitle;
2538            return (
2539                '<div class="social-icon" style="background-color: #cb2027;"> \
2540                    <a href="'+href+'" class="'+linkClass+'" target="_blank"> \
2541                        '+getSvg('pinterest')+' \
2542                    </a> \
2543                </div>');
2544        default: 
2545            return '';
2546    }
2547}
2548
2549//
2550// Helpers
2551//
2552// check display type
2553function isMobile() {
2554    return data.device === 'mobile';
2555}
2556function getItemAction(item, elem) {
2557    var statsEventName='';
2558    switch(item.Action) {
2559        case 'Link':
2560            if(!item.Link) item.Link = { target: 'target="_blank', href: 'http://www.google.com' }  // default link
2561            var target = item.Link.target? item.Link.target : '';
2562            var statsEventName = 'CM_LINK_CLICK';
2563            return '<a '+target+' href="'+item.Link.href+'" class="menu-link bsr-menulink" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');">
2563'+elem+'</a>';
2564        case 'Call':
2565            statsEventName = 'CM_CLICK_TO_CALL';
2566            return '<a href="tel:'+item.CallNum+'" class="menu-link bsr-menulink" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');">'+elem+'</a>';
2567        case 'Sms':
2568            statsEventName = 'CM_CLICK_TO_SMS';
2569            return '<a href="sms:'+item.SmsNum+'" class="menu-link bsr-menulink" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');">'+elem+'</a>';
2570        case 'Email':
2571            statsEventName = 'CM_CLICK_TO_EMAIL';
2572            return '<a href="mailto:'+item.EmailAddr+'?subject='+item.emailDefSubject + '&body=' + item.defEmailBody + '" target="_blank" class="menu-link bsr-menulink" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');">'+elem+'</a>';
2573        case 'Map':
2574            statsEventName = 'CM_DIRECTION';
2575            return '<a target="_blank" href="https://www.google.com/maps?q='+item.Query+'" class="menu-link bsr-menulink" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');" data-eventname="Find Location">'+elem+'</a>';
2576        case 'Mess':
2577            statsEventName = 'CM_FB_MESSAGE';
2578            return '<a href="http://m.me/'+item.FbUser+'" class="menu-link bsr-menulink" target="_blank" onclick="_trackConvWidgetClickEvent(\''+statsEventName+'\');">'+elem+'</a>';
2579        case 'Share':
2580            return '<a href="#" class="menu-link share bsr-menulink">'+elem+'</a>';
2581        case 'Chat':
2582            return '<a href="#" class="menu-link bsr-chat bsr-menulink">'+elem+'</a>';
2583        default: 
2584            return '';
2585    }
2586}
2587// returns new default icon only if icon is default (identified by path data in default svg MUST CHANGE FOR DIFFERENT DEFAUTL)
2588function xgetItemIcon(item) {
2589    // icon is default
2590    if(item.CustomIcon) {
2591         return '<div class="new-container">'+item.Icon+'</div>';
2592    } else {
2593        switch(item.Action) {
2594            case 'Link':
2595                return getSvg('link');
2596            case 'Call':
2597                return getSvg('phone');
2598            case 'Sms':
2599                return getSvg('sms');
2600            case 'Email':
2601                return getSvg('envelope');
2602            case 'Mess':
2603                return getSvg('messenger');
2604            case 'Map':
2605                return getSvg('map');
2606            case 'Share':
2607                return getSvg('share');
2608        }
2609    }
2610}
2611
2612/* --------------------- */
2613function getItemIcon(item) {
2614    var lcase = item.Action.toLowerCase();
2615
2616    if(item.CustomIcon) {
2617        switch(item.CustomIcon_Select) {
2618            case 'custom_icon1':
2619                // return '<div class="'+lcase+'-icon-prev custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon1 + '</div>';
2620                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon1 + '</div>';
2621            case 'custom_icon2':
2622                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon2 + '</div>';
2623            case 'custom_icon3':
2624                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon3 + '</div>';
2625            case 'custom_icon4':
2626                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon4 + '</div>';
2627            case 'custom_icon5':
2628                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon5 + '</div>';
2629            case 'custom_icon6':
2630                return '<div class="custom-user-icon ' + item.CustomIcon_Select + '">' + data.config.custom_icon6 + '</div>';
2631        }
2632    } else {
2633        switch(item.Action) {
2634            case 'Link':
2635                return getSvg('link');
2636            case 'Call':
2637                return getSvg('phone');
2638            case 'Sms':
2639                return getSvg('sms');
2640            case 'Email':
2641                return getSvg('envelope');
2642            case 'Mess':
2643                return getSvg('messenger');
2644            case 'Map':
2645                return getSvg('map');
2646            case 'Share':
2647                return getSvg('share');
2648            case 'Chat':
2649                return getSvg('chat');
2650        }
2651    }
2652}
2653/* --------------------- */
2654
2655window._trackConvWidgetClickEvent = function(eventName) {
2656    if(typeof(HAF)==="object"){
2657        HAF.OmTracking.onCMClick(eventName) 
2658    }
2659    return;
2660}
2661
2662function dudaicon(icon){
2663    return '<span class="new-container">'+icon+'</span>'
2664    
2665    
2666}
2667function xgetSvg(name) {
2668    const type = name? name : data.config.DeskMain;
2669    switch(type) {
2670        case 'vEllipsis':
2671            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><title>More</title><path d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"/></svg>';
2672        case 'map':
2673            return '<svg class="iconsvgmap" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-default="true"><path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"/></svg>'
2674        case 'hEllipsis':
2675            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>More</title><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg>';
2676        case 'plus':
2677            return '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 42 42" style="enable-background:new 0 0 42 42; xml:space="preserve"><title>More</title><polygon points="42,20 22,20 22,0 20,0 20,20 0,20 0,22 20,22 20,42 22,42 22,22 42,22 "/><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>';
2678        case 'bars':
2679            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>More</title><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>';
2680        case 'envelope':
2681            return '<svg class="iconsvgemail" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Email</title><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.5
268179-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>';
2682        case 'shareenvelope':
2683            return '<svg class="iconsvgshareemail" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Email</title><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>';
2684        case 'phone':
2685            return '<svg class="iconsvgphone" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-default><title>Phone</title><path d="M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"/></svg>';
2686        case 'close':
2687            return '<svg class="iconsvgclose" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 224.512 224.512" style="enable-background:new 0 0 224.512 224.512;" xml:space="preserve"><title>Close</title><g><polygon points="224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>';
2688        case 'facebook':
2689            return '<svg class="iconsvgfb" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512"><title>Facebook</title><path d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"/></svg>';
2690        case 'messenger':
2691            return '<svg class="iconsvgmesg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>Facebook Messenger</title><path d="M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"/></svg>'
2692        case 'tumblr':
2693            return '<svg class="iconsvgtmb" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><title>Tumblr</title><path d="M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"/></svg>';
2694        case 'linkedIn':
2695            return '<svg class="iconsvgli" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>LinkedIn</title><path d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"/></svg>';
2696        case 'twitter':
2697            return '<svg class="iconsvgtw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>Twitter</title><path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/></svg>';
2698        case 'reddit':
2699            return '<svg class="iconsvgred" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Reddit</title><path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 
269917.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"/></svg>';
2700        case 'pinterest':
2701            return '<svg class="iconsvgpin" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><title>Pinterest</title><path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/></svg>';
2702        case 'share':
2703            return '<svg class="iconsvgshare" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1792"><title>Share</title><path d="M1216 1024q133 0 226.5 93.5t93.5 226.5-93.5 226.5-226.5 93.5-226.5-93.5-93.5-226.5q0-12 2-34l-360-180q-92 86-218 86-133 0-226.5-93.5t-93.5-226.5 93.5-226.5 226.5-93.5q126 0 218 86l360-180q-2-22-2-34 0-133 93.5-226.5t226.5-93.5 226.5 93.5 93.5 226.5-93.5 226.5-226.5 93.5q-126 0-218-86l-360 180q2 22 2 34t-2 34l360 180q92-86 218-86z"/></svg>';
2704        case 'sms':
2705            return '<svg class="iconsvgsms" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>SMS Text</title><path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"/></svg>';
2706        case 'link':
2707            return '<svg class="iconsvglink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"/></svg>';
2708        default: 
2709            return '';
2710    }
2711}
2712function getSvg(name) {
2713    const type = name? name : data.config.DeskMain;
2714    switch(type) {
2715        case 'vEllipsis':
2716            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><title>More</title><path d="M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"/></svg>';
2717        case 'map':
2718            return '<svg class="map-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-default="true"><path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"/></svg>'
2719        case 'hEllipsis':
2720            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>More</title><path d="M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"/></svg>';
2721        case 'plus':
2722            return '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 42 42" style="enable-background:new 0 0 42 42; xml:space="preserve"><title>More</title><polygon points="42,20 22,20 22,0 20,0 20,20 0,20 0,22 20,22 20,42 22,42 22,22 42,22 "/><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>';
2723        case 'bars':
2724            return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>More</title><path d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"/></svg>';
2725        case 'envelope':
2726            return '<svg class="email-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Email</title><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.5
272679-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>';
2727        case 'shareenvelope':
2728            return '<svg class="iconsvgshareemail" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Email</title><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>';
2729        case 'phone':
2730            return '<svg class="call-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-default><title>Phone</title><path d="M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"/></svg>';
2731        case 'close':
2732            return '<svg class="iconsvgclose" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"viewBox="0 0 224.512 224.512" style="enable-background:new 0 0 224.512 224.512;" xml:space="preserve"><title>Close</title><g><polygon points="224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>';
2733        case 'facebook':
2734            return '<svg class="iconsvgfb" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512"><title>Facebook</title><path d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"/></svg>';
2735        case 'messenger':
2736            return '<svg class="mess-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>Facebook Messenger</title><path d="M224 32C15.9 32-77.5 278 84.6 400.6V480l75.7-42c142.2 39.8 285.4-59.9 285.4-198.7C445.8 124.8 346.5 32 224 32zm23.4 278.1L190 250.5 79.6 311.6l121.1-128.5 57.4 59.6 110.4-61.1-121.1 128.5z"/></svg>'
2737        case 'tumblr':
2738            return '<svg class="iconsvgtmb" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><title>Tumblr</title><path d="M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"/></svg>';
2739        case 'linkedIn':
2740            return '<svg class="iconsvgli" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><title>LinkedIn</title><path d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"/></svg>';
2741        case 'twitter':
2742            return '<svg class="iconsvgtw" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><title>Twitter</title><path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/></svg>';
2743        case 'reddit':
2744            return '<svg class="iconsvgred" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Reddit</title><path d="M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 
274417.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"/></svg>';
2745        case 'pinterest':
2746            return '<svg class="iconsvgpin" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><title>Pinterest</title><path d="M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z"/></svg>';
2747        case 'share':
2748            return '<svg class="share-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1792"><title>Share</title><path d="M1216 1024q133 0 226.5 93.5t93.5 226.5-93.5 226.5-226.5 93.5-226.5-93.5-93.5-226.5q0-12 2-34l-360-180q-92 86-218 86-133 0-226.5-93.5t-93.5-226.5 93.5-226.5 226.5-93.5q126 0 218 86l360-180q-2-22-2-34 0-133 93.5-226.5t226.5-93.5 226.5 93.5 93.5 226.5-93.5 226.5-226.5 93.5q-126 0-218-86l-360 180q2 22 2 34t-2 34l360 180q92-86 218-86z"/></svg>';
2749        case 'sms':
2750            return '<svg class="sms-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>SMS Text</title><path d="M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"/></svg>';
2751        case 'link':
2752            return '<svg class="link-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"/></svg>';
2753        case 'chat':
2754            // return '<svg class="chat-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title>Email</title><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"/></svg>';
2755            return '<svg class="chat-icon" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g><path d="m460.747 439.163c89.119-102.791 58.111-262.592-63.094-324.93-35.004-67.784-105.754-114.233-187.153-114.233-116.064 0-210.488 94.43-210.488 210.5 0 51.099 18.088 99.427 51.237 137.663l-46.774 46.16c-9.48 9.357-2.913 25.612 10.465 25.677l112.956.538c38.925 56.641 103.228 91.462 173.6 91.462.144 0 195.446-.999 195.561-1 13.333-.064 19.975-16.29 10.464-25.677zm-377.985-101.146c-34.017-34.08-52.752-79.367-52.752-127.517 0-99.528 80.968-180.5 180.49-180.5s180.49 80.972 180.49 180.5c0 95.373-75.473 181.269-186.343 180.403l-153.258-.73 31.293-30.882c5.918-5.842 5.953-15.389.08-21.274zm218.734 143.983c-52.634 0-101.557-22.489-135.565-61.281 57.104.376 41.945.281 44.569.281 135.402 0 236.506-127.009 204.689-259.617 82.966 67.774 89.761 191.779 14.045 267.634-5.874 5.885-5.838 15.433.08 21.274l31.293 30.882c-.119 0-158.995.827-159.111.827z"/><path d="m121.005 166h179.99c8.284 0 14.999-6.716 14.999-15s-6.715-15-14.999-15h-179.99c-8.284 0-14.999 6.716-14.999 15s6.716 15 14.999 15z"/><path d="m121.005 226h179.99c8.284 0 14.999-6.716 14.999-15s-6.715-15-14.999-15h-179.99c-8.284 0-14.999 6.716-14.999 15s6.716 15 14.999 15z"/><path d="m121.005 286h179.99c8.284 0 14.999-6.716 14.999-15s-6.715-15-14.999-15h-179.99c-8.284 0-14.999 6.716-14.999 15s6.716 15 14.999 15z"/></g></svg>';
2756        default: 
2757            return '';
2758    }
2759}
2760
2761    };
2762</script>
2762
2763
2764
2765<script type="text/javascript">
2766
2767    var d_version = "production_6797";
2768    var build = "2026-09-23T12_48_58";
2769    window['v' + 'ersion'] = d_version;
2770
2771    function buildEditorParent() {
2772        window.isMultiScreen = true;
2773        window.editorParent = {};
2774        window.previewParent = {};
2775        window.assetsCacheQueryParam = "?version=2026-09-23T12_48_58";
2776        try {
2777            var _p = window.parent;
2778            if (_p && _p.document && _p.$ && _p.$.dmfw) {
2779                window.editorParent = _p;
2780            } else if (_p.isSitePreview) {
2781                window.previewParent = _p;
2782            }
2783        } catch (e) {
2784
2785        }
2786    }
2787
2788    buildEditorParent();
2789</script>
2789
2790
2791
2792<!-- Load jQuery -->
2793
2794<script type="text/javascript" id='d-js-jquery'
2795        src="https://static-res-cdn.websites.hibu.com/libs/jquery/jquery-3.7.0.min.js"></script>
2795
2796
2797<!-- End Load jQuery -->
2798
2799
2800<!-- Injecting site-wide before scripts -->
2801
2802<!-- End Injecting site-wide to the head -->
2803
2804
2805
2806<script>
2807    var _jquery = window.$;
2808
2809    var jqueryAliases = ['$', 'jquery', 'jQuery'];
2810
2811    jqueryAliases.forEach((alias) => {
2812        Object.defineProperty(window, alias, {
2813            get() {
2814                return _jquery;
2815            },
2816            set() {
2817                console.warn("Trying to over-write the global jquery object!");
2818            }
2819        });
2820    });
2821    window.jQuery.migrateMute = true;
2822</script>
2822
2823
2824
2825
2826
2827<script>
2828    window.cookiesNotificationMarkupPreview = 'null';
2829</script>
2829
2830
2831<!-- HEAD RT JS Include -->
2832<script id='d-js-params'>
2833    window.INSITE = window.INSITE || {};
2834    window.INSITE.device = "desktop";
2835
2836    window.rtCommonProps = {};
2837    rtCommonProps["rt.ajax.ajaxScriptsFix"] =true;
2838    rtCommonProps["rt.pushnotifs.sslframe.encoded"] = 'aHR0cHM6Ly97c3ViZG9tYWlufS5wdXNoLW5vdGlmcy5jb20=';
2839    rtCommonProps["runtimecollector.url"] = 'https://rtc.hibuwebsites.com';
2840    rtCommonProps["performance.tabletPreview.removeScroll"] = 'false';
2841    rtCommonProps["inlineEditGrid.snap"] =true;
2842    rtCommonProps["popup.insite.cookie.ttl"] = '0.5';
2843    rtCommonProps["rt.pushnotifs.force.button"] =true;
2844    rtCommonProps["common.mapbox.token"] = 'pk.eyJ1IjoiZGFubnliMTIzIiwiYSI6ImNqMGljZ256dzAwMDAycXBkdWxwbDgzeXYifQ.Ck5P-0NKPVKAZ6SH98gxxw';
2845    rtCommonProps["common.mapbox.js.override"] =false;
2846    rtCommonProps["common.here.appId"] = 'iYvDjIQ2quyEu0rg0hLo';
2847    rtCommonProps["common.here.appCode"] = '1hcIxLJcbybmtBYTD9Z1UA';
2848    rtCommonProps["isCoverage.test"] =false;
2849    rtCommonProps["ecommerce.ecwid.script"] = 'https://app.multiscreenstore.com/script.js';
2850    rtCommonProps["common.resources.dist.cdn"] =true;
2851    rtCommonProps["common.build.dist.folder"] = 'production/6797';
2852    rtCommonProps["common.resources.cdn.host"] = 'https://static-res-cdn.websites.hibu.com';
2853    rtCommonProps["common.resources.folder"] = 'https://static-res-cdn.websites.hibu.com/mnlt/production/6797';
2854    rtCommonProps["common.fonts.api.v2.url"] = 'https://cdn.hibuwebsites.com/fonts/css2?family=';
2855    rtCommonProps["feature.flag.runtime.backgroundSlider.preload.slowly"] =true;
2856    rtCommonProps["feature.flag.runtime.newAnimation.enabled"] =true;
2857    rtCommonProps["feature.flag.runtime.newAnimation.jitAnimation.enabled"] =true;
2858    rtCommonProps["feature.flag.sites.google.analytics.gtag"] =true;
2859    rtCommonProps["feature.flag.runOnReadyNewTask"] =true;
2860    rtCommonProps["isAutomation.test"] =false;
2861    rtCommonProps["booking.cal.api.domain"] = 'api.cal.com';
2862
2863    
2864    rtCommonProps['common.mapsProvider'] = 'mapbox';
2865    
2866    rtCommonProps['common.mapsProvider.version'] = '0.52.0';
2867    rtCommonProps['common.geocodeProvider'] = 'mapbox';
2868    rtCommonProps['server.for.resources'] = '';
2869    rtCommonProps['feature.flag.lazy.widgets'] = true;
2870    rtCommonProps['feature.flag.single.wow'] = false;
2871    rtCommonProps['feature.flag.disallowPopupsInEditor'] = true;
2872    rtCommonProps['feature.flag.mark.anchors'] = true;
2873    rtCommonProps['captcha.public.key'] = '6LffcBsUAAAAAMU-MYacU-6QHY4iDtUEYv_Ppwlz';
2874    rtCommonProps['captcha.invisible.public.key'] = '6LeiWB8UAAAAAHYnVJM7_-7ap6bXCUNGiv7bBPME';
2875    rtCommonProps["images.sizes.small"] =160;
2876    rtCommonProps["images.sizes.mobile"] =640;
2877    rtCommonProps["images.sizes.tablet"] =1280;
2878    rtCommonProps["images.sizes.desktop"] =1920;
2879    rtCommonProps["modules.resources.cdn"] =true;
2880    rtCommonProps["import.images.storage.imageCDN"] = 'https://le-cdn.hibuwebsites.com/';
2881    rtCommonProps["feature.flag.runtime.inp.threshold"] =150;
2882    rtCommonProps["feature.flag.performance.logs"] =false;
2883    rtCommonProps["site.widget.form.captcha.type"] = 'g_recaptcha';
2884    rtCommonProps["friendly.captcha.site.key"] = 'FCMGSQG9GVNMFS8K';
2885    rtCommonProps["cookiebot.mapbox.consent.category"] = 'marketing';
2886    rtCommonProps["termly.mapbox.consent.category"] = 'performance';
2887    // feature flags that's used out of runtime module (in  legacy files)
2888    rtCommonProps["platform.monolith.personalization.dateTimeCondition.popupMsgAction.moveToclient.enabled"] =true;
2889
2890    window.rtFlags = {};
2891    rtFlags["unsuspendEcwidStoreOnRuntime.enabled"] =false;
2892    rtFlags["scripts.widgetCount.enabled"] =true;
2893    rtFlags["fnb.animations.tracking.enabled"] =true;
2894    rtFlags["ecom.ecwidNewUrlStructure.enabled"] = false;
2895    rtFlags["ecom.ecwid.accountPage.emptyBaseUrl.enabled"] = true;
2896    rtFlags["ecom.ecwid.accountPage.repeatOrderRedirect.enabled"] = false;
2897    rtFlags["ecom.ecwid.pages.links.disable.listeners"] = true;
2898    rtFlags["ecom.ecwid.storefrontV3.enabled"] = false;
2899    rtFlags["ecom.monolith.legacy.js.api.disabled.for.new.sites"] = false;
2900    rtFlags["geocode.search.localize"] =false;
2901    rtFlags["feature.flag.runtime.newAnimation.asyncInit.setTimeout.enabled"] =false;
2902    rtFlags["twitter.heightLimit.enabled"] = true;
2903    rtFlags["runtime.lottieOverflow"] =false;
2904    rtFlags["runtime.monitoring.sentry.ignoreErrors"] = "";
2905    rtFlags["streamline.monolith.personalization.supportMultipleConditions.enabled"] =false;
2906    rtFlags["flex.animation.design.panel.layout"] =true;
2907    rtFlags["runtime.cwv.report.cls.enabled"] =false;
2908    rtFlags["runtime.cwv.report.lcp.enabled"] =false;
2909    rtFlags["runtime.lcp.preload.selfheal.enabled"] =true;
2910    rtFlags["runtime.lcp.preload.bootstrap.enabled"] =true;
2911    rtFlags["runtime.lcp.preload.monitor.enabled"] =false;
2912    rtFlags["runtime.customwidget.heightpin.enabled"] =true;
2913    rtFlags["contact.form.useActiveForm"] =true;
2914    rtFlags["contact.form.custom.errors.enabled"] =false;
2915    rtFlags["runtime.ssr.productStore.internal.observer"] =true;
2916    rtFlags["runtime.ssr.productCustomizations"] =true;
2917    rtFlags["runtime.ssr.runtime.filter-sort.newFilterSortWidgetWithOptions.enabled"] =true;
2918    rtFlags["runtime.ssr.ssrSlider.jumpThreshold.enabled"] =true;
2919    rtFlags["termly.map.consent.overlay.enabled"] =false;
2920    rtFlags["editor.widget.form.a11y"] =true;
2921</script>
vendor: 1 bytes, line 2921
2921
2922<script src="https://static-res-cdn.websites.hibu.com/mnlt/production/6797/_dm/s/rt/dist/scripts/d-js-one-runtime-unified-desktop.min.js"  id="d-js-core"></script>
2922
2923
2924<!-- End of HEAD RT JS Include -->
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936    
2936<script src="https://static-res-cdn.websites.hibu.com/mnlt/production/6797/_dm/s/rt/dist/scripts/d-js-jquery-migrate.min.js" ></script>
2936
2937
2938
2939
2940
2941
2942<script>
2943    
2944    $(window).bind("orientationchange", function (e) {
2945        $.layoutManager.initLayout();
2946        
2947    });
2948    $(document).resize(function () {
2949        
2950    });
2951</script>
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971<script type="text/javascript" id="d_track_sp">
2972    ;(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[];
2973        p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)
2974        };p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1;
2975        n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,"script","//d32hwlnfiv2gyn.cloudfront.net/sp-2.0.0-dm-0.1.min.js","snowplow"));
2976    window.dmsnowplow  = window.snowplow;
2977
2978    dmsnowplow('newTracker', 'cf', 'd32hwlnfiv2gyn.cloudfront.net', { // Initialise a tracker
2979        appId: '03345c75678a400f95e189230f569eaf'
2980    });
2981
2982    // snowplow queries element styles so we wait until CSS calculations are done.
2983    requestAnimationFrame(() => {
2984        dmsnowplow('trackPageView');
2985        _dm_insite.forEach((rule) => {
2986            // Specifically in popup only the client knows if it is shown or not so we don't always want to track its impression here
2987            // the tracking is in popup.js
2988            if (rule.actionName !== "popup") {
2989                dmsnowplow('trackStructEvent', 'insite', 'impression', rule.ruleType, rule.ruleId);
2990            }
2991            window?.waitForDeferred?.('dmAjax', () => {
2992                $.DM.events.trigger('event-ruleTriggered', {value: rule});
2993            });
2994        });
2995    });
2996</script>
2996
2997
2998
2999
3000<div style="display:none;" id="P6iryBW0Wu"></div>
3001
3002<!-- photoswipe markup -->
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012<!-- Root element of PhotoSwipe. Must have class pswp. -->
3013<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
3014
3015    <!-- Background of PhotoSwipe. 
3016         It's a separate element as animating opacity is faster than rgba(). -->
3017    <div class="pswp__bg"></div>
3018
3019    <!-- Slides wrapper with overflow:hidden. -->
3020    <div class="pswp__scroll-wrap">
3021
3022        <!-- Container that holds slides. 
3023            PhotoSwipe keeps only 3 of them in the DOM to save memory.
3024            Don't modify these 3 pswp__item elements, data is added later on. -->
3025        <div class="pswp__container">
3026            <div class="pswp__item"></div>
3027            <div class="pswp__item"></div>
3028            <div class="pswp__item"></div>
3029        </div>
3030
3031        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
3032        <div class="pswp__ui pswp__ui--hidden">
3033
3034            <div class="pswp__top-bar">
3035
3036                <!--  Controls are self-explanatory. Order can be changed. -->
3037
3038                <div class="pswp__counter"></div>
3039
3040                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
3041
3042                <button class="pswp__button pswp__button--share" title="Share"></button>
3043
3044                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
3045
3046                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
3047
3048                <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
3049                <!-- element will get class pswp__preloader--active when preloader is running -->
3050                <div class="pswp__preloader">
3051                    <div class="pswp__preloader__icn">
3052                      <div class="pswp__preloader__cut">
3053                        <div class="pswp__preloader__donut"></div>
3054                      </div>
3055                    </div>
3056                </div>
3057            </div>
3058
3059            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
3060                <div class="pswp__share-tooltip"></div> 
3061            </div>
3062
3063            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
3064            </button>
3065
3066            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
3067            </button>
3068
3069            <div class="pswp__caption">
3070                <div class="pswp__caption__center"></div>
3071            </div>
3072
3073        </div>
3074
3075    </div>
3076
3077</div>
3078<div id="fb-root"
3079        data-locale="en"></div>
3080<!-- Alias: 03345c75678a400f95e189230f569eaf -->
3081<div class="dmPopupMask" id="dmPopupMask"></div>
3082<div id="dmPopup" class="dmPopup">
3083	<div class="dmPopupCloseWrapper"> <div class="dmPopupClose dm-common-icons-close oneIcon" onclick="dmHidePopup(event);"></div> </div>
3084 	<div class="dmPopupTitle"> <span></span> Share by:</div> 
3085	<div class="data"></div>
3086</div>
3086<script id="d_track_personalization">
3087	window?.waitForDeferred?.('dmAjax', () => {
3088		// Collects client data and updates cookies used by smart sites
3089		window.expireDays = 365;
3090		window.visitLength = 30 * 60000;
3091		$.setCookie("dm_timezone_offset", (new Date()).getTimezoneOffset(), window.expireDays);
3092			setSmartSiteCookiesInternal("dm_this_page_view","dm_last_page_view","dm_total_visits","dm_last_visit");
3093	});
3094</script>
vendor: 1 bytes, line 3094
3094
3095<script type="text/javascript">
3096    
3097    Parameters.NavigationAreaParams.MoreButtonText = 'MORE';
3098    
3099    Parameters.NavigationAreaParams.LessButtonText = 'LESS';
3100    Parameters.HomeLinkText = 'Home';
3101    </script>
3101
3102<!--  End Script tags -->
3103<!--  Begin Body End Markup -->
3104<!--  Begin Body End Markup -->
3105<div id="placeholder_retargeting_pixel" style="display: none;" data-inject="placeholder_retargeting_pixel">
3106    {{placeholder_retargeting_pixel}}
3107</div>
3108<div id="placeholder_dpni" style="display: none;" data-inject="placeholder_dpni">
3109    {{placeholder_dpni}}
3110</div>
3111<div id="placeholder_analytics" style="display: none;" data-inject="placeholder_analytics">
3112   
3112<script>
3113        //yellAnalyticsConfig need to set before s_code.js
3114        var yellAnalyticsConfig = {
3115        "global" : {
3116            "trackDownloadLinks": true,
3117            "downloadFileTypes": "exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx",
3118            "currency": "USD",
3119            "trackExternalLinks": true,
3120            "internalDomains": "javascript:",
3121            "charset": "UTF-8"
3122        },
3123        "omniture" : {
3124            "enabled": true,
3125            "server": "yellgroup.122.2o7.net",
3126            "serverSecure": "yellgroup.122.2o7.net",
3127            "namespace": "yellgroup",
3128            "account": "yelldudadev",
3129            "campaign": "CID|cam"
3130        }}
3131
3132        var hibuWebsiteConfig={
3133            "prodSKU":"WBS-PRO-01",
3134            "assetID":"658707192",
3135            "customerID":"8046857413"
3136        }
3137     </script>
3137
3138     
3138<script type="text/javascript" src="https://dh-static-files.s3.amazonaws.com/dev/AppMeasurement.js"></script>
3138
3139     
3139<script type="text/javascript" src="https://dh-static-files.s3.amazonaws.com/dev/hibu-analytics.min.js"></script>
3139
3140     
3140<script type="text/javascript" src="https://dh-static-files.s3.amazonaws.com/dev/omn_setting.js"></script>
3140
3141</div>
3142<div id="placeholder_footer_reserve1" style="display: none;" data-inject="placeholder_footer_reserve1">
3143    {{placeholder_footer_reserve1}}
3144</div>
3145<div id="placeholder_footer_reserve2" style="display: none;" data-inject="placeholder_footer_reserve2">
3146    {{placeholder_footer_reserve2}}
3147</div>
3148<div id="placeholder_footer_reserve3" style="display: none;" data-inject="placeholder_footer_reserve3">
3149    {{placeholder_footer_reserve3}}
3150</div>
3151<div id="placeholder_footer_reserve4" style="display: none;" data-inject="placeholder_footer_reserve4">
3152    {{placeholder_footer_reserve4}}
3153</div>
3154<div id="placeholder_footer_reserve5" style="display: none;" data-inject="placeholder_footer_reserve5">
3155    {{placeholder_footer_reserve5}}
3156</div>
3157<div id="placeholder_footer_reserve6" style="display: none;" data-inject="placeholder_footer_reserve6">
3158    {{placeholder_footer_reserve6}}
3159</div>
3160<div id="placeholder_footer_reserve7" style="display: none;" data-inject="placeholder_footer_reserve7">
3161    {{placeholder_footer_reserve7}}
3162</div>
3163<!--  End Body End Markup --><!--  End Body End Markup -->
3164<!--  Site Wide Html Markup -->
3165<div id="swh-3d361e1b778e4837bf2705c5c691f3cd">
3165<script> if (window.location.search.match(/[?,&]preview=true/) && window.top !== window) { window.__AudioEyePreviewMode=true;}</script>
3165
3166            
3166<script type="text/javascript">!function(){
3167              var b=function(){
3168                window.__AudioEyeSiteHash = "e76d422d2c617f51e2996cbcf20ca8e3";
3169                window.__AudioEyeInstallSource = "duda";
3170                var a=document.createElement("script");
3171                a.src="https://wsmcdn.audioeye.com/aem.js";
3172                a.type="text/javascript";
3173                a.setAttribute("async","");
3174                document.getElementsByTagName("body")[0].appendChild(a)};
3175                "complete"!==document.readyState?window.addEventListener?window.addEventListener("load",b):window.attachEvent&&window.attachEvent("onload",b):b()}();
3176              </script>
3176</div><!--  Site Wide Html Markup -->
3177<!--  Begin Product Custom HTML Markup -->
3178<div id="fb-root"></div> 
3179<script>(function(d, s, id) { 
3180var js, fjs = d.getElementsByTagName(s)[0]; 
3181if (d.getElementById(id)) return; 
3182js = d.createElement(s); js.id = id; 
3183js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8&appId=1822295708016537"; 
3184fjs.parentNode.insertBefore(js, fjs); 
3185}(document, 'script', 'facebook-jssdk'));
3186</script>
3186
3187<script>
3188//make sure video's on iOS load first screen of the video.
3189window.onload = function() {
3190    var _iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream
3191    if (_iOS) {
3192        var _hibu_vid = document.getElementsByTagName('video')
3193        for (var i = 0; i < _hibu_vid.length; i++) {
3194            _hibu_vid[i].preload = 'metadata'
3195            _hibu_vid[i].currentTime = .01
3196        }
3197    }
3198};
3199</script>
3199<!--  End Product Custom HTML Markup -->
3200</body>
3201</html>

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