uniform_resource (table) Content
01JR7CRJV28NRVKB6R0R29KCS4 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/user-no-image.6C6x2-VQ_2pDaat.avif | - | avif | 8687 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV2KYP4GJRSG7WA0CEC | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/lectio-pattern.g9zmiR7c_XE2Uk.avif | - | avif | 65252 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV2JJ32B30HGH01VD2Y | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/dedicated-support.BQdWP0kt_21wNxz.avif | - | avif | 36546 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV2R960JY73F76S3Q64 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/fhir-explorer-pattern-ss-3.CmdadhWq_NO04N.avif | - | avif | 21105 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV23EAV0CR3BSQ42G62 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/fleetfolio-continuous-asset-and-identity-intelligence.1s-dj6Pd_ODWkv.avif | - | avif | 20120 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV27Q45G46NAQ2JRSCE | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/shahid-shah.B2DFcsvR_ZITVg0.avif | - | avif | 190737 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV385G6DHF87R5P9Y3A | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/osquery-pattern-ss-2.Ds_ByT8M_4Bo2w.avif | - | avif | 34306 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV31AYKCAERJVBQF9J3 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/fhir-explorer-pattern.DmWEO2EG_ewmN5.avif | - | avif | 11631 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV373Y5JXRV3DNXMRPQ | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/research-study-explorer-pattern-ss-5.B5Avi_6V_1swxvY.avif | - | avif | 14803 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV372QT5X9XJGPWXCA5 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/research-explorer.CKy9kAYJ_1n6z5o.avif | - | avif | 21153 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV37V9GTB5MP8D1RV46 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/authentication.Du5w1-8x_Z3yV3o.webp | - | webp | 55780 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV31RXT0YG0F5NJBHCH | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/features-image-med.ddOnJwCH_23BqUL.webp | - | webp | 30014 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV37VQM3BDE66XRRKEB | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/index.x-iyR4LI.css | - | css | 74907 | 2025-04-07 05:49:51.746987692 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV38XAMGY8KC2PHVCAT | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/app-registrations.5K4ZeymS_Z2cLgED.webp | - | webp | 26758 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV3AEBCG0Z11T76YHD4 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/advanced-polyglot-orchestration.DUq5BBKY_Z1bhFJh.avif | - | avif | 4973 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV3V7V451HDD8PRQYQQ | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/research-study-explorer-pattern-ss-2.CKgqLGXw_2mInmH.avif | - | avif | 43567 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV32DGCBAEAMHFSSZ36 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/osquery-pattern.CJYgu4S2_ZDP31U.avif | - | avif | 29452 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV3YNMC7VK4J7MGZ0B8 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/social.C618f-KT_ZTdSmg.avif | - | avif | 93433 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4650EX1GQXM402B8K | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/direct-message-pattern.MIDcmLaO_Z1C1DMN.avif | - | avif | 19032 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV46GZ0FRPMH8RNW5Y0 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/qualityfolio-5.DZmgwzOe_Uffnn.avif | - | avif | 41994 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4C6RXZN2XRJHJRJ10 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-integration-engine.D4-bfeLm_Z199LXF.avif | - | avif | 16608 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4PYQN9YE59NYDGAN5 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/ec.tm3va.css | - | css | 18258 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4MC36W3QMY02618TH | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/fhir-explorer-pattern-ss-1.gAtRbOmV_Z1VPBzY.avif | - | avif | 16364 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV456JRQ26R4HD8JS7Y | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/direct-message-ss-3.DyWW9lWT_Z1pdfAs.avif | - | avif | 27351 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4TXREM90G3VDE8BK8 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/osquery-pattern-ss-1.UHUNrmzD_Ln0rU.avif | - | avif | 140360 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4335B7WDES4YB4PSN | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/geo-vl.BQ3YuuRe_ZlEYQp.avif | - | avif | 27903 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV43VAWWCYY5WEEY4RM | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/fleetfolio-screenshot-2.BIzQd42p_Z1vYoKz.avif | - | avif | 16942 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4WY5RKYSHBWPMHHAS | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/compliance-explorer-pattern-ss-1.CgPz0X02_Z1uMJDo.avif | - | avif | 34656 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4HA877PGV495TH48S | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-logo-with-tagline.DhfmVTrk_ZOYF0D.webp | - | webp | 3826 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4FRY3F5D8Q57FGPYY | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-app.Cdur0j1S_2a4OfB.webp | - | webp | 27628 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4QYE0NWCF4MVGQ28X | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-logo-with-subtitle.Bolv885d_Z1W3H0m.webp | - | webp | 13708 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV4CBAD9191XB4J8ZV0 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/research-study-explorer-pattern-ss-3.COiKnkLK_1KbJOM.avif | - | avif | 20762 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV51S3T42Y36JP04MJD | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/paid-support.Drmd2WKC_Z2cqOKq.avif | - | avif | 47906 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV50EEDQXKSRMFY76Q7 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/redirect-url.VfSOaAjc_Z1VSfD7.webp | - | webp | 27140 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5PBBN5WQCCBVSFBND | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/algorithm-infographics-laptop-screen-online-business-1639886-pxhere.com.Vh5Nlz8I_ZkG5rS.avif | - | avif | 13202 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5NY93K93HQ4J63BDH | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/compliance-explorer-pattern-ss-2.Clembp9e_1FvH8P.avif | - | avif | 45222 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5FXWQT80MX4W2HCKW | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/dashboard-image.Bil85hOA_Z1FX0LI.avif | - | avif | 169376 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5AE4JNFJ3FVBN3XCR | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/help-desk.C3P36uDp_Z2nPibo.avif | - | avif | 20565 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5GY6GAKV8NXQRJM9A | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/patterns.0dW8K5zI_ZNLz5F.avif | - | avif | 5185 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5KX6R6E4646YJ7W5W | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/support-desk.DbO79Adb_iq09K.avif | - | avif | 26364 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5BA137TR78X32CMPR | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/blueprint-1.C3as_WJM_Z3Mdge.avif | - | avif | 15461 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV5ZB9R4WB8PZEQ4Z8S | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/quality-management-pattern.DfE3CvUC_ZwIeYr.avif | - | avif | 37097 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV59WS1H4WGX0E368VS | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-core-vs-patterns-abstract.DrceFwNF_Z1ALO2G.avif | - | avif | 29620 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV6CAHMKQ19ACX4YDDG | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/secure-health-data-exchange.CLZ3b6ma_1LGAce.avif | - | avif | 8356 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV68MHYSFGZYM7F3282 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/evidence-based-decision-making-pattern.TKnVy63Z_Z15z0qF.avif | - | avif | 106180 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV6XYEFZD2XR8ZQTRJG | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/content-assembler-pattern.BdjZyCUW_Z1VVjrm.avif | - | avif | 201082 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV64HMFVQ9HRRN3T28Z | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/qualityfolio-1.l0geP3C2_1eC96X.avif | - | avif | 32328 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV6MWQFFYBSYC4E4BH5 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/surveilr-logo-without-tagline.DVJj0veE_Z19EPPG.webp | - | webp | 2558 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV6F7A4RBXKD9ZG7R19 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/_astro/power-of-sql-and-sql-views.D9V6AARL_26Yjuf.avif | - | avif | 9352 | 2025-04-07 04:48:31 UTC | 2025-04-07 05:49:51 | UNKNOWN | ||||||||||
01JR7CRJV6GSSRQ11EVMVW7T86 | 01JR7CRJSKD3QA3ZXFBWN5QZQJ | 01JR7CRJSM2GJMXSTX4RZ8RV6C | 01JR7CRJSNH5VET82WMAN9G4JQ | /app/www.surveilr.com/lib/pattern/site-quality-explorer/content/website-resources/www.surveilr.com/services.html | 9d8b6122f17e89ba857708ad0cb21fdb40a929fb | <!DOCTYPE html><!-- This is the main structure for the page. We set the language of the page to English and add classes for scrollbar and scroll behavior. --><html lang="en" class="scrollbar-hide lenis lenis-smooth scroll-pt-16 astro-ouamjn2i"> <head><!-- Adding metadata to the HTML document --><!-- Inject structured data into the page if provided. This data is formatted as JSON-LD, a method recommended by Google for structured data pass: https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data --><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","inLanguage":"en-US","@id":"https://surveilr.com","url":"https://surveilr.com","name":"surveilr","description":"Prove Security, Quality, and Compliance with Auditable, Queryable, and Machine-Attestable Evidence","isPartOf":{"@type":"WebSite","url":"https://surveilr.com","name":"surveilr","description":"Prove Security, Quality, and Compliance with Auditable, Queryable, and Machine-Attestable Evidence"}}</script><!-- Define the character set, description, author, and viewport settings --><meta charset="utf-8"><meta content="Prove Security, Quality, and Compliance with Auditable, Queryable, and Machine-Attestable Evidence" name="description"><meta name="web_author" content="Shahid N. Shah"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><link rel="canonical" href="services.html"><link rel="alternate" hreflang="en" href="services.html" /> <link rel="alternate" hreflang="fr" href="https://www.surveilr.com/fr/services/" /><!-- Facebook Meta Tags --><meta property="og:locale" content="en_US"><meta property="og:url" content="https://www.surveilr.com/services/"><meta property="og:type" content="website"><meta property="og:title" content="Services | surveilr"><meta property="og:site_name" content="surveilr"><meta property="og:description"><meta property="og:image" content="https://www.surveilr.com/_astro/social.C618f-KT_Z1ba4v3.webp"><meta content="1200" property="og:image:width"><meta content="600" property="og:image:height"><meta content="image/png" property="og:image:type"><!-- Twitter Meta Tags --><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="https://www.surveilr.com/"><meta property="twitter:url" content="https://www.surveilr.com/services/"><meta name="twitter:title" content="Services | surveilr"><meta name="twitter:description"><meta name="twitter:image" content="https://www.surveilr.com/_astro/social.C618f-KT_Z1ba4v3.webp"><!-- Links to the webmanifest and sitemap --><link rel="manifest" href="manifest.json"><!-- https://docs.astro.build/en/guides/integrations-guide/sitemap/ --><link rel="sitemap" href="sitemap-index.xml"><!-- Links for favicons --><link href="favicon.ico" rel="icon" sizes="any" type="image/x-icon"><link href="_astro/icon.Bc6rUfkK_1shs5g.svg" rel="icon" type="image/svg+xml" sizes="any"><meta name="mobile-web-app-capable" content="yes"><link href="_astro/icon.yxznLHQU_Z2n55ga.png" rel="apple-touch-icon"><link href="_astro/icon.yxznLHQU_Z2n55ga.png" rel="shortcut icon"><!-- Set theme color --><meta name="theme-color" content="#facc15"><!-- Google Tag Manager --><script type="module">(function(e,n,r,t,m){e[t]=e[t]||[],e[t].push({"gtm.start":new Date().getTime(),event:"gtm.js"});var g=n.getElementsByTagName(r)[0],a=n.createElement(r),s="";a.async=!0,a.src="https://www.googletagmanager.com/gtm.js?id="+m+s,g.parentNode.insertBefore(a,g)})(window,document,"script","dataLayer","GTM-53HB45F9");</script><!-- End Google Tag Manager --><!-- Define the title of the page --><title>Services | surveilr</title><script> // Script to handle dark mode. It will check if the theme is stored in localStorage or if dark theme is preferred by system settings if ( localStorage.getItem("hs_theme") === "dark" || (!("hs_theme" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches) ) { document.documentElement.classList.add("dark"); } else { document.documentElement.classList.remove("dark"); } </script><script type="module" src="_astro/MainLayout.astro_astro_type_script_index_0_lang.CJB9pIOu.js"></script><script type="application/ld+json"> [ { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Home", "url": "https://www.surveilr.com/" }, { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Docs", "url": "https://www.surveilr.com/docs" }, { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Patterns", "url": "https://www.surveilr.com/pattern" }, { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Services", "url": "https://www.surveilr.com/services" }, { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Blog", "url": "https://www.surveilr.com/blog" }, { "@context": "https://schema.org/", "@type": "SiteNavigationElement", "@id": "https://www.surveilr.com/", "name": "Contact", "url": "https://www.surveilr.com/contact" } ] </script><style>html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none} </style> <link rel="stylesheet" href="_astro/index.x-iyR4LI.css"> <style>.c-breadcrumbs{--color-link-breadcrumbs: #b9b9b9;--size-font-breadcrumbs: 15px;--spacing-vertical-separator-breadcrumbs: 6px}.c-breadcrumbs .has-ellipsis{display:var(--display-ellipsis-breadcrumbs, none)}.c-breadcrumbs.is-truncated .has-ellipsis{--display-ellipsis-breadcrumbs: flex}.c-breadcrumbs.is-truncated .c-breadcrumbs__crumb{visibility:var(--visibility-truncated-breadcrumbs, hidden);position:var(--position-truncated-breadcrumbs, absolute)}.c-breadcrumbs.is-truncated .c-breadcrumbs__crumb:first-of-type,.c-breadcrumbs.is-truncated .c-breadcrumbs__crumb:last-of-type,.c-breadcrumbs.is-truncated .c-breadcrumbs__crumb.has-ellipsis{--visibility-truncated-breadcrumbs: visible;--position-truncated-breadcrumbs: relative}.c-breadcrumbs__truncated-button{background-color:transparent;border:none;padding:0;margin:0;cursor:pointer;color:var(--color-truncated-button, var(--color-link-breadcrumbs))}.c-breadcrumbs__crumbs{list-style-type:none;margin:0;padding:0;display:flex;flex-wrap:wrap}.c-breadcrumbs__crumbs:where(.has-no-separators){row-gap:var(--spacing-vertical-separator-breadcrumbs);-moz-column-gap:1rem;column-gap:1rem}.c-breadcrumbs__crumb{display:flex;align-items:center}.c-breadcrumbs__crumb:has(.c-breadcrumbs__separator) .c-breadcrumbs__separator{display:flex;align-items:center;justify-content:center;margin-inline:var(--spacing-vertical-separator-breadcrumbs);color:#d3d3d3}.c-breadcrumbs__crumb:has(svg,image) :where(svg,image){max-width:var(--size-font-breadcrumbs);max-height:var(--size-font-breadcrumbs)}.c-breadcrumbs__link,.c-breadcrumbs__truncated-button{font-size:var(--size-font-breadcrumbs);text-decoration:none;color:var(--color-link-breadcrumbs);line-height:1;transition:color .2s ease-in-out}@media (hover: hover){.c-breadcrumbs__link:hover,.c-breadcrumbs__truncated-button:hover{--color-link-breadcrumbs: #214EA2}}.c-breadcrumbs__link{line-height:normal!important}.c-breadcrumbs__link[aria-disabled=true]{pointer-events:none;cursor:default;color:#b9b9b9;text-decoration:none}.scrollbar-hide:where(.astro-ouamjn2i)::-webkit-scrollbar{display:none}.scrollbar-hide:where(.astro-ouamjn2i){-ms-overflow-style:none;scrollbar-width:none} </style><script type="module" src="_astro/page.CJRj5HRh.js"></script></head> <body class="bg-neutral-200 selection:bg-yellow-400 selection:text-neutral-700 dark:bg-neutral-800 astro-ouamjn2i"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-53HB45F9" height="0" width="0" style="display:none;visibility:hidden" class="astro-ouamjn2i"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Setting up the main structure of the page. The Navbar is placed at the top, with a slot for the main content and FooterSection at the bottom. --> <div class="mx-auto max-w-screen-2xl px-4 sm:px-6 lg:px-8 astro-ouamjn2i"> <!-- Main header component --><header class="sticky inset-x-0 top-4 z-50 flex w-full flex-wrap text-sm md:flex-nowrap md:justify-start"> <!-- Navigation container --> <nav class="relative mx-2 w-full rounded-[36px] border border-yellow-100/40 bg-yellow-50/60 px-4 py-3 backdrop-blur-md dark:border-neutral-700/40 dark:bg-neutral-800/80 dark:backdrop-blur-md md:flex md:items-center md:justify-between md:px-6 md:py-0 lg:px-8 xl:mx-auto" aria-label="Global"> <div class="flex items-center justify-between"> <!-- Brand logo --> <a class="flex-none rounded-lg text-xl font-bold outline-none ring-zinc-500 focus-visible:ring dark:ring-zinc-200 dark:focus:outline-none" href="../surveilr.com/index.html" aria-label="Brand"> <img src="_astro/surveilr-logo-without-tagline.DVJj0veE_Z19EPPG.webp" alt="surveilr logo" width="264" height="66" loading="lazy" decoding="async" class="h-auto w-24"> </a> <!-- Collapse toggle for smaller screens --> <div class="ml-auto mr-5 md:hidden"> <button type="button" class="hs-collapse-toggle flex h-8 w-8 items-center justify-center rounded-full text-sm font-bold text-neutral-600 transition duration-300 hover:bg-neutral-200 disabled:pointer-events-none disabled:opacity-50 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:focus:outline-none" data-hs-collapse="#navbar-collapse-with-animation" aria-controls="navbar-collapse-with-animation" aria-label="Toggle navigation"> <svg class="h-[1.25rem] w-[1.25rem] flex-shrink-0 hs-collapse-open:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <line x1="3" x2="21" y1="6" y2="6"></line> <line x1="3" x2="21" y1="12" y2="12"></line> <line x1="3" x2="21" y1="18" y2="18"></line> </svg> <svg class="hidden h-[1.25rem] w-[1.25rem] flex-shrink-0 hs-collapse-open:block" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 6 6 18"></path> <path d="m6 6 12 12"></path> </svg> </button> </div> <!-- ThemeIcon component specifically for smaller screens --> <span class="inline-block md:hidden"> <!-- Dark Theme Toggle Button --><!-- This button is shown when the light theme is active, and when clicked, it switches the theme to dark --><button type="button" aria-label="Dark Theme Toggle" class="hs-dark-mode group flex h-8 w-8 items-center justify-center rounded-full font-medium text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:bg-neutral-200 hover:text-orange-400 hs-dark-mode-active:hidden dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-orange-300 dark:focus:outline-none" data-hs-theme-click-value="dark"> <!-- The SVG displayed shows an abstract icon that represents the moon (dark theme) --> <svg class="h-4 w-4 flex-shrink-0" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg> <!-- Light Theme Toggle Button --> <!-- This button is hidden by default and only appears when the dark theme is active, when clicked, it switches to the light theme --> </button> <button type="button" aria-label="Light Theme Toggle" class="hs-dark-mode group hidden h-8 w-8 items-center justify-center rounded-full font-medium text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-orange-400 hs-dark-mode-active:flex dark:text-neutral-400 dark:ring-zinc-200 dark:hover:bg-neutral-700 dark:hover:text-orange-300 dark:focus:outline-none" data-hs-theme-click-value="light"> <!-- The SVG displayed shows a standard sun icon that stands for the light theme --> <svg class="h-4 w-4 flex-shrink-0" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 8a2 2 0 1 0 4 4"></path><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg> </button> </span> </div> <!-- Contains navigation links --> <div id="navbar-collapse-with-animation" class="hs-collapse hidden grow basis-full overflow-hidden transition-all duration-300 md:block"> <!-- Navigation links container --> <div class="mt-5 flex flex-col gap-x-0 gap-y-4 md:mt-0 md:flex-row md:items-center md:justify-end md:gap-x-4 md:gap-y-0 md:ps-7 lg:gap-x-7"> <!-- Navigation links and Authentication component --> <!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="home" href="../surveilr.com/index.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Home </a> <script type="module">document.addEventListener("DOMContentLoaded",function(){let t=window.location.pathname;t.split("/");let a;t==="/"?a="home":a=t.replace("/","");let e=document.getElementById(a);e&&(e.classList.remove("text-neutral-600","dark:text-neutral-400","hover:text-neutral-500","dark:hover:text-neutral-500"),e.classList.add("text-orange-400","dark:text-orange-300"),e.setAttribute("aria-current","page"))});</script><!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="docs" href="docs.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Docs </a> <!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="pattern" href="pattern.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Patterns </a> <!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="services" href="services.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Services </a> <!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="blog" href="blog.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Blog </a> <!-- Re-usable link component for navigation bar. Highlights the active link by comparing the current URL with the href of each link. We assign an ID matching the URL for easy reference in our script. If URL is '/' (home page), assign ID as 'home' --><a id="insights" href="insights.html" data-astro-prefetch class="rounded-lg text-base font-medium text-neutral-600 outline-none ring-zinc-500 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-500 dark:focus:outline-none md:py-3 md:text-sm 2xl:text-base"> Insights </a> <!-- Login Button --><!-- <LoginBtn /> --><!-- Login Modal --><div id="hs-toggle-between-modals-login-modal" class="hs-overlay absolute start-0 top-0 z-50 hidden h-full w-full hs-overlay-backdrop-open:bg-neutral-900/90"> <div class="m-3 mt-0 opacity-0 transition-all ease-out hs-overlay-open:mt-7 hs-overlay-open:opacity-100 hs-overlay-open:duration-500 sm:mx-auto sm:w-full sm:max-w-lg"> <div class="mx-auto w-full max-w-md p-6"> <div class="mt-7 rounded-xl border border-neutral-200 bg-neutral-100 shadow-sm dark:border-neutral-700 dark:bg-neutral-800"> <div class="p-4 sm:p-7"> <div class="text-center"> <h2 class="block text-2xl font-bold text-neutral-800 dark:text-neutral-200"> Sign in </h2> <p class="mt-2 text-sm text-neutral-600 dark:text-neutral-400"> Don't have an account yet? <button class="rounded-lg p-1 font-medium text-orange-400 decoration-2 outline-none ring-zinc-500 hover:underline focus-visible:ring dark:text-orange-400 dark:ring-zinc-200 dark:focus:outline-none" data-hs-overlay="#hs-toggle-between-modals-register-modal"> Sign up here </button> </p> </div> <div class="mt-5"> <button type="button" class="inline-flex w-full items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm dark:text-neutral-400 font-medium text-neutral-600 shadow-sm transition duration-300 focus-visible:ring outline-none border border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 hover:bg-neutral-200 dark:hover:bg-neutral-900 disabled:pointer-events-none disabled:opacity-50 ring-zinc-500 dark:ring-zinc-200"> <!-- About Fragment: https://docs.astro.build/en/basics/astro-syntax/#fragments --> <svg class="h-auto w-4" width="46" height="47" viewBox="0 0 46 47" fill="none" > <path d="M46 24.0287C46 22.09 45.8533 20.68 45.5013 19.2112H23.4694V27.9356H36.4069C36.1429 30.1094 34.7347 33.37 31.5957 35.5731L31.5663 35.8669L38.5191 41.2719L38.9885 41.3306C43.4477 37.2181 46 31.1669 46 24.0287Z" fill="#4285F4"></path> <path d="M23.4694 47C29.8061 47 35.1161 44.9144 39.0179 41.3012L31.625 35.5437C29.6301 36.9244 26.9898 37.8937 23.4987 37.8937C17.2793 37.8937 12.0281 33.7812 10.1505 28.1412L9.88649 28.1706L2.61097 33.7812L2.52296 34.0456C6.36608 41.7125 14.287 47 23.4694 47Z" fill="#34A853"></path> <path d="M10.1212 28.1413C9.62245 26.6725 9.32908 25.1156 9.32908 23.5C9.32908 21.8844 9.62245 20.3275 10.0918 18.8588V18.5356L2.75765 12.8369L2.52296 12.9544C0.909439 16.1269 0 19.7106 0 23.5C0 27.2894 0.909439 30.8731 2.49362 34.0456L10.1212 28.1413Z" fill="#FBBC05"></path> <path d="M23.4694 9.07688C27.8699 9.07688 30.8622 10.9863 32.5344 12.5725L39.1645 6.11C35.0867 2.32063 29.8061 0 23.4694 0C14.287 0 6.36607 5.2875 2.49362 12.9544L10.0918 18.8588C11.9987 13.1894 17.25 9.07688 23.4694 9.07688Z" fill="#EB4335"></path> </svg> Sign in with Google </button> <div class="flex items-center py-3 text-xs uppercase text-neutral-400 before:me-6 before:flex-[1_1_0%] before:border-t before:border-neutral-200 after:ms-6 after:flex-[1_1_0%] after:border-t after:border-neutral-200 dark:text-neutral-500 dark:before:border-neutral-600 dark:after:border-neutral-600"> Or </div> <!-- The container for the form --> <form> <!-- A grid layout for the form fields --> <div class="grid gap-y-4"> <!-- The email input field --> <!-- Container for the label, input, and validation message --><div> <!-- Label for the email input field --> <label for="login-email" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Email address</label> <!-- Label for the email input field --> <div class="relative"> <!-- Email input field --> <input type="email" id="login-email" name="email" autocomplete="email" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="login-email"> <!-- Hidden error icon --> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <!-- Validation message which is hidden by default --> <p class="mt-2 hidden text-xs text-red-600" id="login-email-error"> Please include a valid email address so we can get back to you </p> </div> <!-- The password input field --> <div> <div class="flex items-center justify-between"> <label for="password" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Password</label> <button class="rounded-lg text-sm font-medium text-orange-400 decoration-2 outline-none ring-zinc-500 hover:underline focus-visible:ring dark:text-orange-400 dark:ring-zinc-200 dark:focus:outline-none dark:focus:ring-1" data-hs-overlay="#hs-toggle-between-modals-recover-modal"> Forgot password? </button> </div> <div class="relative"> <input type="password" id="password" name="password" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="login-password-error"> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <p class="mt-2 hidden text-xs text-red-600" id="login-password-error"> 8+ characters required </p> </div> <!-- The remember-me checkbox --> <!-- Container for the checkbox and its label --><div class="flex items-center"> <!-- Checkbox input --> <div class="flex"> <input id="remember-me" name="remember-me" type="checkbox" class="pointer-events-none mt-0.5 shrink-0 rounded border-neutral-200 text-neutral-600 focus:ring-yellow-400 dark:border-neutral-700 dark:bg-neutral-800 dark:checked:border-yellow-400 dark:checked:bg-yellow-400 dark:focus:ring-offset-neutral-800"> </div> <!-- Label for the checkbox --> <div class="ms-3"> <label for="remember-me" class="text-sm text-neutral-800 dark:text-neutral-200">Remember me </label> </div> </div> <!-- The sign-in button --> <!-- Styled submit button with dynamic title --><button type="submit" class="inline-flex w-full items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-700 focus-visible:ring outline-none transition duration-300 border border-transparent bg-yellow-400 dark:focus:outline-none hover:bg-yellow-500 2xl:text-base disabled:pointer-events-none disabled:opacity-50 ring-zinc-500 dark:ring-zinc-200">Sign in</button> </div> </form> </div> </div> </div> </div> </div> </div> <!-- Register Modal --> <!-- Root element of the registration modal with the id and styling --><div id="hs-toggle-between-modals-register-modal" class="hs-overlay absolute start-0 top-0 z-50 hidden h-full w-full hs-overlay-backdrop-open:bg-neutral-900/90"> <div class="m-3 mt-0 opacity-0 transition-all ease-out hs-overlay-open:mt-7 hs-overlay-open:opacity-100 hs-overlay-open:duration-500 sm:mx-auto sm:w-full sm:max-w-lg"> <div class="mx-auto w-full max-w-md p-6"> <div class="mt-7 max-h-full overflow-hidden rounded-xl border border-neutral-200 bg-neutral-100 shadow-sm dark:border-neutral-700 dark:bg-neutral-800"> <div class="p-4 sm:p-7"> <div class="text-center"> <h2 class="block text-2xl font-bold text-neutral-800 dark:text-neutral-200"> Sign up </h2> <p class="mt-2 text-sm text-neutral-600 dark:text-neutral-400"> Already have an account? <!-- Button to toggle login modal --> <button class="rounded-lg p-1 font-medium text-orange-400 decoration-2 outline-none ring-zinc-500 hover:underline focus-visible:ring dark:text-orange-400 dark:ring-zinc-200 dark:focus:outline-none" data-hs-overlay="#hs-toggle-between-modals-login-modal"> Sign in here </button> </p> </div> <!-- The form for user registration --> <div class="mt-5"> <!-- Google signup button --> <button type="button" class="inline-flex w-full items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm dark:text-neutral-400 font-medium text-neutral-600 shadow-sm transition duration-300 focus-visible:ring outline-none border border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 hover:bg-neutral-200 dark:hover:bg-neutral-900 disabled:pointer-events-none disabled:opacity-50 ring-zinc-500 dark:ring-zinc-200"> <!-- About Fragment: https://docs.astro.build/en/basics/astro-syntax/#fragments --> <svg class="h-auto w-4" width="46" height="47" viewBox="0 0 46 47" fill="none" > <path d="M46 24.0287C46 22.09 45.8533 20.68 45.5013 19.2112H23.4694V27.9356H36.4069C36.1429 30.1094 34.7347 33.37 31.5957 35.5731L31.5663 35.8669L38.5191 41.2719L38.9885 41.3306C43.4477 37.2181 46 31.1669 46 24.0287Z" fill="#4285F4"></path> <path d="M23.4694 47C29.8061 47 35.1161 44.9144 39.0179 41.3012L31.625 35.5437C29.6301 36.9244 26.9898 37.8937 23.4987 37.8937C17.2793 37.8937 12.0281 33.7812 10.1505 28.1412L9.88649 28.1706L2.61097 33.7812L2.52296 34.0456C6.36608 41.7125 14.287 47 23.4694 47Z" fill="#34A853"></path> <path d="M10.1212 28.1413C9.62245 26.6725 9.32908 25.1156 9.32908 23.5C9.32908 21.8844 9.62245 20.3275 10.0918 18.8588V18.5356L2.75765 12.8369L2.52296 12.9544C0.909439 16.1269 0 19.7106 0 23.5C0 27.2894 0.909439 30.8731 2.49362 34.0456L10.1212 28.1413Z" fill="#FBBC05"></path> <path d="M23.4694 9.07688C27.8699 9.07688 30.8622 10.9863 32.5344 12.5725L39.1645 6.11C35.0867 2.32063 29.8061 0 23.4694 0C14.287 0 6.36607 5.2875 2.49362 12.9544L10.0918 18.8588C11.9987 13.1894 17.25 9.07688 23.4694 9.07688Z" fill="#EB4335"></path> </svg> Sign up with Google </button> <!-- Dividing line with 'Or' text --> <div class="flex items-center py-3 text-xs uppercase text-neutral-400 before:me-6 before:flex-[1_1_0%] before:border-t before:border-neutral-200 after:ms-6 after:flex-[1_1_0%] after:border-t after:border-neutral-200 dark:text-neutral-500 dark:before:border-neutral-600 dark:after:border-neutral-600"> Or </div> <!-- Registration form --> <form> <div class="grid gap-y-4"> <!-- Email input field --> <!-- Container for the label, input, and validation message --><div> <!-- Label for the email input field --> <label for="register-email" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Email address</label> <!-- Label for the email input field --> <div class="relative"> <!-- Email input field --> <input type="email" id="register-email" name="email" autocomplete="email" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="register-email"> <!-- Hidden error icon --> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <!-- Validation message which is hidden by default --> <p class="mt-2 hidden text-xs text-red-600" id="register-email-error"> Please include a valid email address so we can get back to you </p> </div> <!-- Password input field --> <div> <div class="flex items-center justify-between"> <label for="create-password" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Password</label> </div> <div class="relative"> <input type="password" id="create-password" name="password" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="register-password-error"> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <p class="mt-2 hidden text-xs text-red-600" id="register-password-error"> 8+ characters required </p> </div> <!-- Password confirmation input field --> <div> <div class="flex items-center justify-between"> <label for="confirm-password" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Confirm Password</label> </div> <div class="relative"> <input type="password" id="confirm-password" name="password" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="confirm-password-error"> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <p class="mt-2 hidden text-xs text-red-600" id="confirm-password-error"> Password does not match the password </p> </div> <!-- Checkbox with a label and a link for accepting the terms and conditions --> <!-- Container for the checkbox and its label --><div class="flex items-center"> <!-- Checkbox input --> <div class="flex"> <input id="terms-agree" name="remember-me" type="checkbox" class="pointer-events-none mt-0.5 shrink-0 rounded border-neutral-200 text-neutral-600 focus:ring-yellow-400 dark:border-neutral-700 dark:bg-neutral-800 dark:checked:border-yellow-400 dark:checked:bg-yellow-400 dark:focus:ring-offset-neutral-800"> </div> <!-- Label for the checkbox --> <div class="ms-3"> <label for="terms-agree" class="text-sm text-neutral-800 dark:text-neutral-200">I accept the <a class="font-medium text-orange-400 decoration-2 hover:underline dark:text-orange-400 dark:focus:outline-none" href="services.html#">Terms and Conditions</a> </label> </div> </div> <!-- Submit button for the registration form --> <!-- Styled submit button with dynamic title --><button type="submit" class="inline-flex w-full items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-700 focus-visible:ring outline-none transition duration-300 border border-transparent bg-yellow-400 dark:focus:outline-none hover:bg-yellow-500 2xl:text-base disabled:pointer-events-none disabled:opacity-50 ring-zinc-500 dark:ring-zinc-200">Sign up</button> </div> </form> </div> </div> </div> </div> </div> </div> <!-- Password Recovery Modal --> <!-- Root element of the modal with id and styling --><div id="hs-toggle-between-modals-recover-modal" class="hs-overlay absolute start-0 top-0 z-50 hidden h-full w-full hs-overlay-backdrop-open:bg-neutral-900/90"> <!-- Modal content container --> <div class="m-3 mt-0 opacity-0 transition-all ease-out hs-overlay-open:mt-7 hs-overlay-open:opacity-100 hs-overlay-open:duration-500 sm:mx-auto sm:w-full sm:max-w-lg"> <div class="mx-auto w-full max-w-md p-6"> <!-- Actual box for the modal elements --> <div class="mt-7 rounded-xl border border-neutral-200 bg-neutral-100 shadow-sm dark:border-neutral-700 dark:bg-neutral-800"> <div class="p-4 sm:p-7"> <div class="text-center"> <h2 class="block text-2xl font-bold text-neutral-800 dark:text-neutral-200"> Forgot password? </h2> <p class="mt-2 text-sm text-neutral-600 dark:text-neutral-400"> Remember your password? <!-- Button that, when clicked, opens the login modal --> <button class="rounded-lg p-1 font-medium text-orange-400 decoration-2 outline-none ring-zinc-500 hover:underline focus-visible:ring dark:text-orange-400 dark:ring-zinc-200 dark:focus:outline-none" data-hs-overlay="#hs-toggle-between-modals-login-modal"> Sign in here </button> </p> </div> <div class="mt-5"> <!-- The form for password recovery --> <form> <div class="grid gap-y-4"> <!-- Email input field imported from EmailInput component --> <!-- Container for the label, input, and validation message --><div> <!-- Label for the email input field --> <label for="recover-email" class="mb-2 block text-sm text-neutral-800 dark:text-neutral-200">Email address</label> <!-- Label for the email input field --> <div class="relative"> <!-- Email input field --> <input type="email" id="recover-email" name="email" autocomplete="email" class="block w-full rounded-lg border border-neutral-200 bg-neutral-50 px-4 py-3 text-sm text-neutral-700 focus:border-neutral-200 focus:outline-none focus:ring focus:ring-neutral-400 disabled:pointer-events-none disabled:opacity-50 dark:border-neutral-600 dark:bg-neutral-700/30 dark:text-neutral-300 dark:focus:ring-1" required aria-describedby="recover-email"> <!-- Hidden error icon --> <div class="pointer-events-none absolute inset-y-0 end-0 hidden pe-3"> <svg class="h-5 w-5 text-red-500" width="16" height="16" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 4a.905.905 0 0 0-.9.995l.35 3.507a.552.552 0 0 0 1.1 0l.35-3.507A.905.905 0 0 0 8 4zm.002 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"></path> </svg> </div> </div> <!-- Validation message which is hidden by default --> <p class="mt-2 hidden text-xs text-red-600" id="recover-email-error"> Please include a valid email address so we can get back to you </p> </div> <!-- Reset password button imported from AuthBtn component --> <!-- Styled submit button with dynamic title --><button type="submit" class="inline-flex w-full items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-700 focus-visible:ring outline-none transition duration-300 border border-transparent bg-yellow-400 dark:focus:outline-none hover:bg-yellow-500 2xl:text-base disabled:pointer-events-none disabled:opacity-50 ring-zinc-500 dark:ring-zinc-200">Reset password</button> </div> </form> </div> </div> </div> </div> </div> </div> <!-- <LanguagePicker /> --> <!-- ThemeIcon component specifically for larger screens --> <span class="hidden md:inline-block"> <!-- Dark Theme Toggle Button --><!-- This button is shown when the light theme is active, and when clicked, it switches the theme to dark --><button type="button" aria-label="Dark Theme Toggle" class="hs-dark-mode group flex h-8 w-8 items-center justify-center rounded-full font-medium text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:bg-neutral-200 hover:text-orange-400 hs-dark-mode-active:hidden dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-orange-300 dark:focus:outline-none" data-hs-theme-click-value="dark"> <!-- The SVG displayed shows an abstract icon that represents the moon (dark theme) --> <svg class="h-4 w-4 flex-shrink-0" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg> <!-- Light Theme Toggle Button --> <!-- This button is hidden by default and only appears when the dark theme is active, when clicked, it switches to the light theme --> </button> <button type="button" aria-label="Light Theme Toggle" class="hs-dark-mode group hidden h-8 w-8 items-center justify-center rounded-full font-medium text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-orange-400 hs-dark-mode-active:flex dark:text-neutral-400 dark:ring-zinc-200 dark:hover:bg-neutral-700 dark:hover:text-orange-300 dark:focus:outline-none" data-hs-theme-click-value="light"> <!-- The SVG displayed shows a standard sun icon that stands for the light theme --> <svg class="h-4 w-4 flex-shrink-0" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 8a2 2 0 1 0 4 4"></path><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg> </button> </span> </div> </div> </nav> </header> <!-- Theme Appearance script to manage light/dark modes --> <script> const HSThemeAppearance = { init() { const defaultTheme = "default"; let theme = localStorage.getItem("hs_theme") || defaultTheme; if (document.querySelector("html").classList.contains("dark")) return; this.setAppearance(theme); }, _resetStylesOnLoad() { const $resetStyles = document.createElement("style"); $resetStyles.innerText = `*{transition: unset !important;}`; $resetStyles.setAttribute("data-hs-appearance-onload-styles", ""); document.head.appendChild($resetStyles); return $resetStyles; }, setAppearance(theme, saveInStore = true, dispatchEvent = true) { const $resetStylesEl = this._resetStylesOnLoad(); if (saveInStore) { localStorage.setItem("hs_theme", theme); } if (theme === "auto") { theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "default"; } document.querySelector("html").classList.remove("dark"); document.querySelector("html").classList.remove("default"); document.querySelector("html").classList.remove("auto"); document .querySelector("html") .classList.add(this.getOriginalAppearance()); setTimeout(() => { $resetStylesEl.remove(); }); if (dispatchEvent) { window.dispatchEvent( new CustomEvent("on-hs-appearance-change", { detail: theme }) ); } }, getAppearance() { let theme = this.getOriginalAppearance(); if (theme === "auto") { theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "default"; } return theme; }, getOriginalAppearance() { const defaultTheme = "default"; return localStorage.getItem("hs_theme") || defaultTheme; }, }; HSThemeAppearance.init(); window .matchMedia("(prefers-color-scheme: dark)") .addEventListener("change", () => { if (HSThemeAppearance.getOriginalAppearance() === "auto") { HSThemeAppearance.setAppearance("auto", false); } }); window.addEventListener("load", () => { const $clickableThemes = document.querySelectorAll( "[data-hs-theme-click-value]" ); const $switchableThemes = document.querySelectorAll( "[data-hs-theme-switch]" ); $clickableThemes.forEach(($item) => { $item.addEventListener("click", () => HSThemeAppearance.setAppearance( $item.getAttribute("data-hs-theme-click-value"), true, $item ) ); }); $switchableThemes.forEach(($item) => { $item.addEventListener("change", (e) => { HSThemeAppearance.setAppearance(e.target.checked ? "dark" : "default"); }); $item.checked = HSThemeAppearance.getAppearance() === "dark"; }); window.addEventListener("on-hs-appearance-change", (e) => { $switchableThemes.forEach(($item) => { $item.checked = e.detail === "dark"; }); }); }); </script> <!--Import the necessary Collapse and Overlay plugins--> <!--https://preline.co/plugins/html/collapse.html--> <!--https://preline.co/plugins/html/overlay.html--> <script type="module" src="_astro/Navbar.astro_astro_type_script_index_0_lang.z5i368Bh.js"></script> <div class="breadcrumb-container z-30 relative w-full max-w-7xl my-8 md:my-10 ml-[32px] astro-ouamjn2i"> <astro-breadcrumbs data-main-bem-class="c-breadcrumbs" data-id="dfc61922-fc88-46b4-a2e4-e8d358702fcd" data-path-length="1" data-truncated="true"> <nav aria-label="Site navigation" class="c-breadcrumbs" id="dfc61922-fc88-46b4-a2e4-e8d358702fcd"> <ol class="c-breadcrumbs__crumbs has-separators"> <li class="c-breadcrumbs__crumb"> <a href="../surveilr.com/index.html" class="c-breadcrumbs__link is-index" aria-current="false"> Home </a> <span class="c-breadcrumbs__separator" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="astro-ouamjn2i"> <polyline points="9 18 15 12 9 6" class="astro-ouamjn2i"></polyline> </svg> </span> </li> <li class="c-breadcrumbs__crumb"> <a href="services.html" aria-disabled="true" class="c-breadcrumbs__link is-current" aria-current="location"> Services </a> </li> </ol> </nav> </astro-breadcrumbs> <script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"/","name":"Home"}},{"@type":"ListItem","position":2,"item":{"@id":"/services/","name":"Services"}}]}</script> <script type="module">class t extends HTMLElement{constructor(){super(),this.isManualToggle=!1,this.breadcrumbs=null,this.mainBemClass=null,this.totalWidth=0,this.resizeObserver=null,this.handleTruncatedButtonClick=()=>{this.breadcrumbs?.classList.remove("is-truncated"),this.isManualToggle=!0},this.mainBemClass=this.dataset.mainBemClass||null;const e=this.dataset.id;!("truncated"in this.dataset)||!e||(this.breadcrumbs=document.getElementById(e),this.initializeCrumbs(),this.setupResizeObserver())}initializeCrumbs(){this.breadcrumbs?.querySelectorAll(`.${this.mainBemClass}__crumb`)?.forEach(s=>{this.totalWidth+=s.offsetWidth})}setupResizeObserver(){this.resizeObserver=new ResizeObserver(e=>{e.forEach(s=>{this.checkOverflow(s.target.clientWidth)})}),this.breadcrumbs&&this.resizeObserver.observe(this.breadcrumbs)}connectedCallback(){this.showHiddenCrumbs()}disconnectedCallback(){this.resizeObserver&&this.breadcrumbs&&(this.resizeObserver.unobserve(this.breadcrumbs),this.resizeObserver.disconnect())}toggleTruncated(e){this.breadcrumbs?.classList.toggle("is-truncated",e)}showHiddenCrumbs(){const e=this.breadcrumbs?.querySelector(`.${this.mainBemClass}__truncated-button`);e?.removeEventListener("click",this.handleTruncatedButtonClick),e?.addEventListener("click",this.handleTruncatedButtonClick.bind(this))}checkOverflow(e){const s=this.totalWidth>e&&!this.isManualToggle;this.toggleTruncated(s),s||(this.isManualToggle=!1)}}customElements.get("astro-breadcrumbs")||customElements.define("astro-breadcrumbs",t);</script> </div> <main class="astro-ouamjn2i"> <!-- Root section of the component --><section class="mx-auto mt-10 max-w-[85rem] px-4 py-10 sm:px-6 sm:py-16 lg:px-8 lg:py-14 2xl:max-w-full"> <div class="max-w-screen-md"> <!-- Section title --> <h1 class="mb-4 text-balance text-4xl font-extrabold tracking-tight text-neutral-800 dark:text-neutral-200"> Professional Services for Mission-Critical Use Cases </h1> <!-- Section subtitle --> <p class="mb-8 max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-xl"> We understand that organizations dealing with regulatory compliance, security, and mission-critical or safety-critical use cases need a reliable and flexible platform. That’s why surveilr is designed to be fully self-service, requiring minimal technical knowledge and little to no support from your IT team. However, when you do need help, we’re here to assist you every step of the way. </p> <!-- Conditional rendering of PrimaryCTA component if 'btnExists' property is truthy --> <div class="flex flex-col space-y-4 sm:flex-row sm:space-x-4 sm:space-y-0"> <!-- Link styled as a button, with dynamic title, URL, and optional arrow --><a class="group inline-flex items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-50 ring-zinc-500 transition duration-300 focus-visible:ring outline-none border border-transparent bg-orange-400 hover:bg-orange-500 active:bg-orange-500 dark:focus:outline-none disabled:pointer-events-none disabled:opacity-50 2xl:text-base dark:ring-zinc-200" href="services.html#"> Schedule a Consultation <!-- Display the arrow based on the 'noArrow' property --> <svg class="h-4 w-4 flex-shrink-0 transition duration-300 group-hover:translate-x-1" height="24" viewBox="0 0 24 24" width="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title></title><path d="m9 18 6-6-6-6" class></path></svg> </a> </div> </div> </section> <!-- The root section of the component --><section class="mx-auto max-w-[85rem] items-center gap-8 px-4 py-10 sm:px-6 sm:py-16 md:grid md:grid-cols-2 lg:grid lg:grid-cols-2 lg:px-8 lg:py-14 xl:gap-16 2xl:max-w-full"> <!-- The Image component which renders the image --> <img src="_astro/help-desk.C3P36uDp_Z2nPibo.avif" alt="Construction site before and after" draggable="false" width="1024" height="683" loading="lazy" decoding="async" class="w-full rounded-xl"> <!-- The container for title, subtitle, and optional CTA button --> <div class="mt-4 md:mt-0"> <!-- The title of the section --> <h2 class="mb-4 text-balance text-4xl font-extrabold tracking-tight text-neutral-800 dark:text-neutral-200"> Free Best-Effort Support via GitHub Help Desk </h2> <!-- The subtitle of the section --> <p class="mb-4 max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-lg"> Our free support service is available to all users via the GitHub Help Desk. This includes best-effort support for general questions, troubleshooting, and assistance with surveilr. A collaborative community where you can ask questions, get advice, and share experiences with other surveilr users is ready to help. </p> <!-- Conditionally render the Primary CTA button if btnExists is true --> <!-- Link styled as a button, with dynamic title, URL, and optional arrow --><a class="group inline-flex items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-50 ring-zinc-500 transition duration-300 focus-visible:ring outline-none border border-transparent bg-orange-400 hover:bg-orange-500 active:bg-orange-500 dark:focus:outline-none disabled:pointer-events-none disabled:opacity-50 2xl:text-base dark:ring-zinc-200" href="https://github.com/surveilr/help.surveilr.com/discussions"> Access the Help Desk <!-- Display the arrow based on the 'noArrow' property --> <svg class="h-4 w-4 flex-shrink-0 transition duration-300 group-hover:translate-x-1" height="24" viewBox="0 0 24 24" width="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title></title><path d="m9 18 6-6-6-6" class></path></svg> </a> </div> </section><!-- Root section of the component --><section class="mx-auto max-w-[85rem] items-center gap-16 px-4 py-10 sm:px-6 lg:grid lg:grid-cols-2 lg:px-8 lg:py-14 2xl:max-w-full"> <div> <!-- Title of the section --> <h2 class="mb-4 text-balance text-4xl font-extrabold tracking-tight text-neutral-800 dark:text-neutral-200"> Paid Support with SLAs: Monthly or Annual Maintenance </h2> <!-- Subtitle of the section --> <p class="mb-4 max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-lg"> For organizations that need priority support or more dedicated assistance, we offer paid support plans. Email and phone support for for timely assistance with your specific needs. We offer support with Service Level Agreements (SLAs) that include guaranteed response times, ensuring your issues are addressed promptly, especially in mission-critical scenarios. </p> <!-- Conditional rendering of the Primary Call-To-Action button if 'btnExists' is true --> </div> <!-- Conditionally render one or two images based on 'single' property --> <div class="mt-8 grid grid-cols-2 gap-4"> <!-- First image in a two-image layout --> <img src="_astro/support-desk.DbO79Adb_iq09K.avif" alt="Construction workers orchestrating a project" draggable="false" width="1024" height="684" loading="lazy" decoding="async" class="w-full rounded-xl"> <!-- Second image in a two-image layout --> <img src="_astro/paid-support.Drmd2WKC_Z2cqOKq.avif" alt="Aerial view of managed construction" draggable="false" width="1024" height="683" loading="lazy" decoding="async" class="mt-4 w-full rounded-xl lg:mt-10"> </div> </section><!-- The root section of the component --><section class="mx-auto max-w-[85rem] items-center gap-8 px-4 py-10 sm:px-6 sm:py-16 md:grid md:grid-cols-2 lg:grid lg:grid-cols-2 lg:px-8 lg:py-14 xl:gap-16 2xl:max-w-full"> <!-- The Image component which renders the image --> <img src="_astro/custom-professional-service.BUExLA9c_1qarqa.avif" alt="Man in orange and black vest wearing white helmet holding yellow and black power tool" draggable="false" width="1024" height="683" loading="lazy" decoding="async" class="w-full rounded-xl"> <!-- The container for title, subtitle, and optional CTA button --> <div class="mt-4 md:mt-0"> <!-- The title of the section --> <h2 class="mb-4 text-balance text-4xl font-extrabold tracking-tight text-neutral-800 dark:text-neutral-200"> Custom Professional Services </h2> <!-- The subtitle of the section --> <p class="mb-4 max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-lg"> For organizations with unique use cases, custom compliance requirements, or those needing specialized features, we offer tailored professional services. We can develop specific Industry or Discipline Patterns that cater to your exact needs, whether it’s integrating a specific regulatory framework or creating custom reporting tools. Need more than what’s available in our out-of-the-box solutions? We offer bespoke development to extend surveilr to meet your organization’s exact specifications. </p> <!-- Conditionally render the Primary CTA button if btnExists is true --> </div> </section><!-- Root section of the component --><section class="mx-auto max-w-[85rem] items-center gap-16 px-4 py-10 sm:px-6 lg:grid lg:grid-cols-2 lg:px-8 lg:py-14 2xl:max-w-full"> <div> <!-- Title of the section --> <h2 class="mb-4 text-balance text-4xl font-extrabold tracking-tight text-neutral-800 dark:text-neutral-200"> Why Choose Our Professional Services? </h2> <!-- Subtitle of the section --> <p class="mb-4 max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-lg"> We have deep experience working with organizations that face regulatory hurdles, compliance audits, and security challenges. We understand the stakes and are equipped to provide solutions tailored to your environment. Whether you need occasional assistance or full, dedicated support, we offer flexible plans that fit your needs—ensuring your organization is never left without help when it’s needed most. </p> <!-- Conditional rendering of the Primary Call-To-Action button if 'btnExists' is true --> <!-- Link styled as a button, with dynamic title, URL, and optional arrow --><a class="group inline-flex items-center justify-center gap-x-2 rounded-lg px-4 py-3 text-sm font-bold text-neutral-50 ring-zinc-500 transition duration-300 focus-visible:ring outline-none border border-transparent bg-orange-400 hover:bg-orange-500 active:bg-orange-500 dark:focus:outline-none disabled:pointer-events-none disabled:opacity-50 2xl:text-base dark:ring-zinc-200" href="contact.html"> Talk to Us <!-- Display the arrow based on the 'noArrow' property --> <svg class="h-4 w-4 flex-shrink-0 transition duration-300 group-hover:translate-x-1" height="24" viewBox="0 0 24 24" width="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title></title><path d="m9 18 6-6-6-6" class></path></svg> </a> </div> <!-- Conditionally render one or two images based on 'single' property --> <div class="mt-8 grid grid-cols-2 gap-4"> <!-- First image in a two-image layout --> <img src="_astro/dedicated-support.BQdWP0kt_21wNxz.avif" alt="In progress building structure" draggable="false" width="960" height="1280" loading="lazy" decoding="async" class="w-full rounded-xl"> <!-- Second image in a two-image layout --> <img src="_astro/code-block.CG06ApEY_Z5vlod.avif" alt="Brown and gray building under construction" draggable="false" width="960" height="1440" loading="lazy" decoding="async" class="mt-4 w-full rounded-xl lg:mt-10"> </div> </section> </main> </div> <footer class="w-full bg-neutral-300 dark:bg-neutral-900"> <div class="mx-auto w-full max-w-[85rem] px-4 py-10 sm:px-6 lg:px-16 lg:pt-20 2xl:max-w-screen-2xl"> <div class="grid grid-cols-2 gap-6 md:grid-cols-4 lg:grid-cols-5"> <div class="col-span-full lg:col-span-1"> <!-- Brand Logo --> <img src="_astro/surveilr-logo-with-tagline.DhfmVTrk_ZOYF0D.webp" alt="surveilr logo" width="264" height="66" loading="lazy" decoding="async"> </div> <!-- An array of links for Pattern and Company sections --> <div class="col-span-1"> <h3 class="font-bold text-neutral-800 dark:text-neutral-200"> Ecosystem </h3> <ul class="mt-3 grid space-y-3"> <li> <a href="blog/surveilr-core-vs-patterns.html" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> Core vs. Patterns </a> </li><li> <a href="https://compliantinsecurity.com" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> Compliant Insecurity </a> </li><li> <a href="https://sql-aide.com" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> SQL Aide </a> </li><li> <a href="services.html" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> Professional Services </a> </li> </ul> </div><div class="col-span-1"> <h3 class="font-bold text-neutral-800 dark:text-neutral-200"> Organization </h3> <ul class="mt-3 grid space-y-3"> <li> <a href="https://www.netspective.com" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> About Netspective </a> </li><li> <a href="https://www.opsfolio.com" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> About Opsfolio </a> </li><li> <a href="blog.html" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> Blog </a> </li><li> <a href="https://discord.gg/fYHv3zzB" class="inline-flex gap-x-2 rounded-lg text-neutral-600 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-500 focus-visible:ring dark:text-neutral-400 dark:ring-zinc-200 dark:hover:text-neutral-300 dark:focus:outline-none"> Discord </a> </li> </ul> </div> <div class="col-span-2"> <h3 class="font-bold text-neutral-800 dark:text-neutral-200"> Stay up to date </h3> <form> <div class="mt-4 flex flex-col items-center gap-2 rounded-lg bg-neutral-200 p-2 dark:bg-neutral-800 sm:flex-row sm:gap-3"> <div class="w-full"> <label for="footer-input" class="sr-only">Search</label> <input type="text" id="footer-input" name="footer-input" class="block w-full rounded-lg border-transparent bg-neutral-100 px-4 py-3 text-sm text-neutral-600 focus:border-orange-400 focus:ring-orange-400 disabled:pointer-events-none disabled:opacity-50 dark:border-transparent dark:bg-neutral-700 dark:text-gray-300 dark:placeholder:text-neutral-300" placeholder="Enter your email"> </div> <a class="inline-flex w-full items-center justify-center gap-x-2 whitespace-nowrap rounded-lg border border-transparent bg-orange-400 p-3 text-sm font-bold text-neutral-50 outline-none ring-zinc-500 transition duration-300 hover:bg-orange-500 focus-visible:ring disabled:pointer-events-none disabled:opacity-50 dark:ring-zinc-200 dark:focus:outline-none dark:focus:ring-1 sm:w-auto" href="services.html#"> Subscribe </a> </div> <p class="mt-3 text-sm text-neutral-600 dark:text-neutral-400"> Stay updated with the latest tools and exclusive deals. </p> </form> </div> </div> <div class="mt-9 grid gap-y-2 sm:mt-12 sm:flex sm:items-center sm:justify-between sm:gap-y-0"> <div class="flex items-center justify-between"> <p class="text-sm text-neutral-600 dark:text-neutral-400"> © <span id="current-year"></span> Netspective Communications LLC. Crafted by <a class="rounded-lg font-medium underline underline-offset-2 outline-none ring-zinc-500 transition duration-300 hover:text-neutral-700 hover:decoration-dashed focus:outline-none focus-visible:ring dark:ring-zinc-200 dark:hover:text-neutral-300" href="https://shahidshah.com" target="_blank" rel="noopener noreferrer">Shahid N. Shah</a>. <span> 🕰️ Publication created Apr 7 2025, 4:45 AM.</span> </p> </div> <!-- Social Brands --> <div> <a class="inline-flex h-10 w-10 items-center justify-center gap-x-2 rounded-lg border border-transparent text-sm font-bold text-neutral-700 outline-none ring-zinc-500 hover:bg-neutral-500/10 focus:outline-none focus-visible:ring focus-visible:ring-zinc-500 dark:ring-zinc-200 dark:hover:bg-neutral-50/10" href="https://www.linkedin.com/company/netspective-communications-llc" target="_blank" rel="noopener noreferrer"> <svg class="h-4 w-4 flex-shrink-0 fill-current text-neutral-700 dark:text-neutral-400" viewBox="0 0 24 24" fill="currentColor"><title>LinkedIn</title><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" class></path></svg> </a> <a class="inline-flex h-10 w-10 items-center justify-center gap-x-2 rounded-lg border border-transparent text-sm font-bold text-neutral-700 outline-none ring-zinc-500 hover:bg-neutral-500/10 focus:outline-none focus-visible:ring focus-visible:ring-zinc-500 dark:ring-zinc-200 dark:hover:bg-neutral-50/10" href="https://twitter.com/netspective" target="_blank" rel="noopener noreferrer"> <svg class="h-4 w-4 flex-shrink-0 fill-current text-neutral-700 dark:text-neutral-400" viewBox="0 0 24 24" fill="currentColor"><title>Twitter</title><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z" class></path></svg> </a> <a class="inline-flex h-10 w-10 items-center justify-center gap-x-2 rounded-lg border border-transparent text-sm font-bold text-neutral-700 outline-none ring-zinc-500 hover:bg-neutral-500/10 focus:outline-none focus-visible:ring focus-visible:ring-zinc-500 dark:ring-zinc-200 dark:hover:bg-neutral-50/10" href="https://github.com/surveilr" target="_blank" rel="noopener noreferrer"> <svg class="h-4 w-4 flex-shrink-0 fill-current text-neutral-700 dark:text-neutral-400" viewBox="0 0 24 24" fill="currentColor"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" class></path></svg> </a> <a class="inline-flex h-10 w-10 items-center justify-center gap-x-2 rounded-lg border border-transparent text-sm font-bold text-neutral-700 outline-none ring-zinc-500 hover:bg-neutral-500/10 focus:outline-none focus-visible:ring focus-visible:ring-zinc-500 dark:ring-zinc-200 dark:hover:bg-neutral-50/10" href="https://plus.google.com/+Netspective" target="_blank" rel="noopener noreferrer"> <svg class="h-4 w-4 flex-shrink-0 fill-current text-neutral-700 dark:text-neutral-400" viewBox="0 0 24 24" fill="currentColor"><title>Google</title><path d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z" class></path></svg> </a> <a class="inline-flex h-10 w-10 items-center justify-center gap-x-2 rounded-lg border border-transparent text-sm font-bold text-neutral-700 outline-none ring-zinc-500 hover:bg-neutral-500/10 focus:outline-none focus-visible:ring focus-visible:ring-zinc-500 dark:ring-zinc-200 dark:hover:bg-neutral-50/10" href="https://discord.gg/fYHv3zzB" target="_blank" rel="noopener noreferrer"> <svg class="h-4 w-4 flex-shrink-0 fill-current text-neutral-700 dark:text-neutral-400" viewBox="0 0 24 24" fill="currentColor"><title>Discord</title><path d="M19.952,5.672c-1.904-1.531-4.916-1.79-5.044-1.801c-0.201-0.017-0.392,0.097-0.474,0.281 c-0.006,0.012-0.072,0.163-0.145,0.398c1.259,0.212,2.806,0.64,4.206,1.509c0.224,0.139,0.293,0.434,0.154,0.659 c-0.09,0.146-0.247,0.226-0.407,0.226c-0.086,0-0.173-0.023-0.252-0.072C15.584,5.38,12.578,5.305,12,5.305S8.415,5.38,6.011,6.872 c-0.225,0.14-0.519,0.07-0.659-0.154c-0.14-0.225-0.07-0.519,0.154-0.659c1.4-0.868,2.946-1.297,4.206-1.509 c-0.074-0.236-0.14-0.386-0.145-0.398C9.484,3.968,9.294,3.852,9.092,3.872c-0.127,0.01-3.139,0.269-5.069,1.822 C3.015,6.625,1,12.073,1,16.783c0,0.083,0.022,0.165,0.063,0.237c1.391,2.443,5.185,3.083,6.05,3.111c0.005,0,0.01,0,0.015,0 c0.153,0,0.297-0.073,0.387-0.197l0.875-1.202c-2.359-0.61-3.564-1.645-3.634-1.706c-0.198-0.175-0.217-0.477-0.042-0.675 c0.175-0.198,0.476-0.217,0.674-0.043c0.029,0.026,2.248,1.909,6.612,1.909c4.372,0,6.591-1.891,6.613-1.91 c0.198-0.172,0.5-0.154,0.674,0.045c0.174,0.198,0.155,0.499-0.042,0.673c-0.07,0.062-1.275,1.096-3.634,1.706l0.875,1.202 c0.09,0.124,0.234,0.197,0.387,0.197c0.005,0,0.01,0,0.015,0c0.865-0.027,4.659-0.667,6.05-3.111 C22.978,16.947,23,16.866,23,16.783C23,12.073,20.985,6.625,19.952,5.672z M8.891,14.87c-0.924,0-1.674-0.857-1.674-1.913 s0.749-1.913,1.674-1.913s1.674,0.857,1.674,1.913S9.816,14.87,8.891,14.87z M15.109,14.87c-0.924,0-1.674-0.857-1.674-1.913 s0.749-1.913,1.674-1.913c0.924,0,1.674,0.857,1.674,1.913S16.033,14.87,15.109,14.87z" class></path></svg> </a> </div> </div> <script type="module">const e=new Date().getFullYear(),t=document.getElementById("current-year");t.innerText=e.toString();</script> </div> </footer> </body> </html> | html | 66439 | 2025-04-07 05:49:50.159999471 UTC | 2025-04-07 05:49:51 | UNKNOWN |