CINXE.COM

Application security according to ISO 27001 | Invicti

<!doctype html> <html lang="en-US"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="zd-site-verification" content="zbchuxl9kjemdkdydvjh49" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <title>Application security according to ISO 27001 | Invicti</title> <meta name="description" content="This Invicti ebook focuses on the place of application security in ISO 27001:2022 requirements, whether you&#039;re working to ensure ISO 27001 compliance or are looking to the standard for best practices on securing your application life cycle." /> <link rel="canonical" href="https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Application security according to ISO 27001 | Invicti" /> <meta property="og:description" content="This Invicti ebook focuses on the place of application security in ISO 27001:2022 requirements, whether you&#039;re working to ensure ISO 27001 compliance or are looking to the standard for best practices on securing your application life cycle." /> <meta property="og:url" content="https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/" /> <meta property="og:site_name" content="Invicti" /> <meta property="article:published_time" content="2023-05-09T10:23:57+00:00" /> <meta property="article:modified_time" content="2023-05-09T14:18:20+00:00" /> <meta property="og:image" content="https://cdn.invicti.com/app/uploads/2023/05/09101141/appsec-iso-27001-ebook-invicti-thumb.png" /> <meta property="og:image:width" content="600" /> <meta property="og:image:height" content="315" /> <meta property="og:image:type" content="image/png" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="31 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/","url":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/","name":"Application security according to ISO 27001 | Invicti","isPartOf":{"@id":"https://www.invicti.com/#website"},"primaryImageOfPage":{"@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/#primaryimage"},"image":{"@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/#primaryimage"},"thumbnailUrl":"https://cdn.invicti.com/app/uploads/2023/05/09101141/appsec-iso-27001-ebook-invicti-thumb.png","datePublished":"2023-05-09T10:23:57+00:00","dateModified":"2023-05-09T14:18:20+00:00","description":"This Invicti ebook focuses on the place of application security in ISO 27001:2022 requirements, whether you're working to ensure ISO 27001 compliance or are looking to the standard for best practices on securing your application life cycle.","breadcrumb":{"@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/#primaryimage","url":"https://cdn.invicti.com/app/uploads/2023/05/09101141/appsec-iso-27001-ebook-invicti-thumb.png","contentUrl":"https://cdn.invicti.com/app/uploads/2023/05/09101141/appsec-iso-27001-ebook-invicti-thumb.png","width":600,"height":315},{"@type":"BreadcrumbList","@id":"https://www.invicti.com/white-papers/application-security-according-to-iso-27001-invicti-ebook/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.invicti.com/"},{"@type":"ListItem","position":2,"name":"Application security according to ISO 27001"}]},{"@type":"WebSite","@id":"https://www.invicti.com/#website","url":"https://www.invicti.com/","name":"Invicti","description":"Web Application and API Security For Enterprise","publisher":{"@id":"https://www.invicti.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.invicti.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@context":"http://schema.org","@type":"Organization","name":"Invicti","logo":"https://cdn.invicti.com/branding/invicti-logo-black.svg","image":"https://cdn.invicti.com/branding/invicti-logo-black.svg","telephone":["+1 737-263-3333"],"email":"contact@invicti.com","url":"https://www.invicti.com","sameAs":["https://facebook.com/Invicti-Security-100090617259790/","https://twitter.com/InvictiSecurity","https://www.linkedin.com/company/invicti-security"],"address":{"@type":"PostalAddress","streetAddress":"1000 N Lamar Blvd Suite 300","addressLocality":"Austin","addressRegion":"Texas","addressCountry":"United States","postalCode":"78703"}}]}</script> <link rel='dns-prefetch' href='//www.googletagmanager.com' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} .ccfg-unique-bc4370-e7 img{display:inline-block;vertical-align:baseline} </style> <meta name="generator" content="Site Kit by Google 1.136.0" /><meta name="google-site-verification" content="ceMUxhM6CVvCVJcqefKlgIRfKWEkgktxWLDpqhgSIkM"> <!-- Google Tag Manager snippet added by Site Kit --> <script type="text/javascript"> /* <![CDATA[ */ ( function( w, d, s, l, i ) { w[l] = w[l] || []; w[l].push( {'gtm.start': new Date().getTime(), event: 'gtm.js'} ); var f = d.getElementsByTagName( s )[0], j = d.createElement( s ), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore( j, f ); } )( window, document, 'script', 'dataLayer', 'GTM-M7R7MXJ' ); /* ]]> */ </script> <!-- End Google Tag Manager snippet added by Site Kit --> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://cdn.invicti.com/app/uploads/2022/03/08125959/cropped-favicon-270x270.png" /> <style id="theme-css-assets">/*! tailwindcss v3.0.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e5e5;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a3a3a3;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}.container-small{margin-left:auto;margin-right:auto}@media (min-width:1200px){.container-small{margin-top:6.25rem;padding-left:375px;padding-right:375px;width:100%}@media (min-width:992px){.container-small{margin-top:0;padding-left:5rem;padding-right:5rem}}.container-small{max-width:1100px!important}}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;padding-left:25px;padding-right:25px;width:100%}@media (min-width:100%){.container{max-width:100%;padding-left:25px;padding-right:25px}}@media (min-width:1380px){.container{max-width:1380px;padding-left:30px;padding-right:30px}}@media (min-width:1460px){.container{max-width:1460px;padding-left:30px;padding-right:30px}}@media (min-width:1560px){.container{max-width:1560px;padding-left:30px;padding-right:30px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.top-10{top:.625rem}.left-10{left:.625rem}.isolate{isolation:isolate}.z-\[99\]{z-index:99}.order-2{order:2}.col-span-9{grid-column:span 9/span 9}.mb-10{margin-bottom:.625rem}.mb-60{margin-bottom:3.75rem}.mt-6{margin-top:.375rem}.mt-32{margin-top:2rem}.mb-32{margin-bottom:2rem}.mt-20{margin-top:1.25rem}.mt-15{margin-top:.9375rem}.mb-34{margin-bottom:2.125rem}.mt-10{margin-top:.625rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-\[36px\]{height:36px}.h-48{height:3rem}.min-h-screen{min-height:100vh}.w-1\/5{width:20%}.w-1\/4{width:25%}.w-1\/3{width:33.333333%}.w-2\/5{width:40%}.w-2\/4{width:50%}.w-3\/5{width:60%}.w-2\/3{width:66.666667%}.w-3\/4{width:75%}.w-4\/5{width:80%}.w-10\/12{width:83.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.w-48{width:3rem}.w-1\/2{width:50%}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:.25rem}.gap-20{gap:1.25rem}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.3125rem*var(--tw-space-y-reverse));margin-top:calc(.3125rem*(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity))}.bg-neutral-bone,.bg-sky{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.bg-dark{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.bg-nsgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.fill-dark{fill:#101820}.p-10{padding:.625rem}.px-16{padding-left:1rem;padding-right:1rem}.px-0{padding-left:0;padding-right:0}.px-15{padding-left:.9375rem;padding-right:.9375rem}.py-18{padding-bottom:1.125rem;padding-top:1.125rem}.pt-20{padding-top:1.25rem}.pb-10{padding-bottom:.625rem}.pt-40{padding-top:2.5rem}.text-center{text-align:center}.font-circular{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}.text-\[13px\]{font-size:13px}.text-h-xs{font-size:2rem}.text-h-sm{font-size:2.125rem}.text-h-md{font-size:2.25rem}.text-h-lg{font-size:2.375rem}.text-h-xl{font-size:2.5rem}.text-h-2xl{font-size:2.625rem}.text-h-3xl{font-size:2.75rem}.text-h-4xl{font-size:2.875rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.375rem}.text-3xl{font-size:1.5rem}.text-4xl{font-size:1.625rem}.text-5xl{font-size:1.75rem}.text-6xl{font-size:1.875rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.lowercase{text-transform:lowercase}.italic{font-style:italic}.text-gray-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(136 19 55/var(--tw-text-opacity))}.text-primary-invictipurple{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.text-dark{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.text-nsgray{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity))}.text-customcolors-32{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 0.0625rem 0.125rem 0 rgba(0,0,0,0.05);--tw-shadow-colored:0 0.0625rem 0.125rem 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.hover\:border-secondary-darkpurple:hover{--tw-border-opacity:1;border-color:rgb(60 16 83/var(--tw-border-opacity))}.hover\:text-secondary-darkpurple:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.hover\:text-dark:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:opacity-80:hover{opacity:.8}.hover\:transition-opacity:hover{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:576px){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:w-full{width:100%}}@media (min-width:767px){.md\:ml-15{margin-left:.9375rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/5{width:20%}.md\:w-1\/4{width:25%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/5{width:40%}.md\:w-2\/4{width:50%}.md\:w-3\/5{width:60%}.md\:w-2\/3{width:66.666667%}.md\:w-3\/4{width:75%}.md\:w-4\/5{width:80%}.md\:w-10\/12{width:83.333333%}.md\:w-11\/12{width:91.666667%}.md\:w-full{width:100%}.md\:w-6\/12{width:50%}.md\:flex-row{flex-direction:row}.md\:px-25{padding-left:1.5625rem;padding-right:1.5625rem}.md\:pr-15{padding-right:.9375rem}.md\:pl-15{padding-left:.9375rem}.md\:text-sm{font-size:.875rem}}@media (min-width:769px){.md2\:block{display:block}.md2\:hidden{display:none}}@media (min-width:992px){.lg\:order-2{order:2}.lg\:mt-60{margin-top:3.75rem}.lg\:mb-60{margin-bottom:3.75rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-1\/5{width:20%}.lg\:w-1\/4{width:25%}.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/5{width:40%}.lg\:w-2\/4{width:50%}.lg\:w-3\/5{width:60%}.lg\:w-2\/3{width:66.666667%}.lg\:w-3\/4{width:75%}.lg\:w-4\/5{width:80%}.lg\:w-10\/12{width:83.333333%}.lg\:w-11\/12{width:91.666667%}.lg\:w-full{width:100%}.lg\:w-7\/12{width:58.333333%}.lg\:w-5\/12{width:41.666667%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-10{gap:.625rem}.lg\:px-0{padding-left:0;padding-right:0}}@media (min-width:1200px){.xl\:block{display:block}.xl\:hidden{display:none}.xl\:pt-60{padding-top:3.75rem}}@media (min-width:1400px){.\32xl\:block{display:block}.\32xl\:hidden{display:none}}@media (min-width:1620px){.\33xl\:block{display:block}.\33xl\:hidden{display:none}} :root{--color-nsblue-default:#591769;--color-nsblue-dark:#3c1053;--color-nsblue-lightest:#faf9f7;--color-sky-default:#faf9f7;--color-sky-light:#faf9f7;--color-sky-lightest:#faf9f7;--color-nsgray-default:#636569;--color-nsgray-lightest:#faf9f7;--color-nsdark:#101820;--color-acunetix:#fa4216;--color-blue:#591769;--color-dark-blue:#3c1053;--color-dark:#101820;--body-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--heading-font:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;--box-shadow-1:0 3px 15px 0 rgb(0 0 0/10%);--box-shadow-2:0 5px 50px -1px rgb(0 0 0/5%);--color-entrycontent-default:#636569;--color-entrycontent-heading:#101820;--color-entrycontent-light:#636569;--color-sky-more:#cc8bdb;--color-nsblue-medium:#7a2582;--color-customcolors-1:#d9d8d6;--color-customcolors-2:#fff;--color-customcolors-3:#3c1053;--color-customcolors-4:#636569;--color-customcolors-5:#3c1053;--color-customcolors-6:#faf9f7;--color-customcolors-7:#636569;--color-customcolors-8:#b1b1b2;--color-customcolors-9:#636569;--color-customcolors-10:#b1b1b2;--color-customcolors-11:#b1b1b2;--color-customcolors-12:#faf9f7;--color-customcolors-13:#d73829;--color-customcolors-14:#faf9f7;--color-customcolors-15:#b1b1b2;--color-customcolors-16:#f15d2a;--color-customcolors-17:#636569;--color-customcolors-18:#f15d2a;--color-customcolors-19:#faf9f7;--color-customcolors-20:#cc8bdb;--color-customcolors-21:#ff8001;--color-customcolors-22:#cc8bdb;--color-customcolors-23:#f15d2a;--color-customcolors-24:#636569;--color-customcolors-25:#d9d8d6;--color-customcolors-26:#b1b1b2;--color-customcolors-27:#636569;--color-customcolors-28:#d9d8d6;--color-customcolors-29:#b1b1b2;--color-customcolors-30:rgba(8,49,126,0);--color-customcolors-31:#fff;--color-customcolors-32:#fff;--color-customcolors-33:#cc8bdb;--color-customcolors-34:#636569;--color-customcolors-35:#b1b1b2;--color-customcolors-36:#faf9f7;--color-customcolors-37:invert(43%) sepia(32%) saturate(1361%) hue-rotate(245deg) brightness(91%) contrast(67%);--color-customcolors-38:#faf9f7;--color-customcolors-39:#faf9f7;--color-customcolors-40:#faf9f7;--color-customcolors-41:#faf9f7;--color-customcolors-42:#3c1053;--color-customcolors-43:#2c51bd;--color-customcolors-44:#636569;--color-customcolors-45:#101820;--color-customcolors-46:rgba(204,139,219,0.05);--color-primary-invictipurple:#591769;--color-secondary-darkpurple:#3c1053;--color-secondary-mediumpurple:#7a2582;--color-secondary-mauve:#a35eb4;--color-secondary-lightmauve:#cc8bdb;--color-secondary-magenta:#c554d0;--color-secondary-grape:#422991;--color-secondary-softpurple:#fdfafe;--color-secondary-periwinkle:#5d40bd;--color-neutral-invictiblack:#101820;--color-neutral-darkgray:#636569;--color-neutral-mediumgray:#b1b1b2;--color-neutral-lightgray:#d9d8d6;--color-neutral-bone:#faf9f7;--color-accent-darkred:#910710;--color-accent-darkorange:#d73829;--color-accent-brightorange:#f15d2a;--color-accent-lightorange:#ff8001;--color-accent-darkblue:#202b7b;--color-accent-mediumblue:#2c51bd;--color-accent-brightblue:#06aeef;--color-accent-lightblue:#05d5ff;--color-gradient-purple:linear-gradient(90deg,#3c1053,#7a2582);--color-gradient-purple-reverse:linear-gradient(90deg,#7a2582,#3c1053);--color-gradient-purple-radial:radial-gradient(circle,#3c1053 0%,#7a2582 100%);--color-gradient-purple-radial-reverse:radial-gradient(circle,#7a2582 0%,#3c1053 100%);--color-gradient-darksteel:linear-gradient(90deg,#101820,#636569);--color-gradient-darksteel-reverse:linear-gradient(90deg,#636569,#101820);--color-gradient-darksteel-radial:radial-gradient(circle,#101820 0%,#636569 100%);--color-gradient-darksteel-radial-reverse:radial-gradient(circle,#636569 0%,#101820 100%);--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-regular:400;--font-weight-book:450;--font-weight-medium:500;--font-weight-semibold:500;--font-weight-bold:700;--font-weight-extrabold:900;--font-weight-black:900;--font-weight-extrablack:950}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlack.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:950;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ExtraBlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Black.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:900;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BlackItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Bold.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:700;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BoldItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:500;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-MediumItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Book.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:450;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-BookItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:400;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Light.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:300;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-LightItalic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:normal;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-Thin.woff2) format("woff2")}@font-face{font-display:swap;font-family:Circular XX;font-stretch:100%;font-style:italic;font-weight:100;src:url(/app/themes/netsparker/public/fonts/circular/CircularXXWeb-ThinItalic.woff2) format("woff2")}*,:after,:before{word-wrap:break-word;box-sizing:border-box;overflow-wrap:break-word}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;scroll-behavior:smooth}body{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;min-height:100vh}@media (min-width:576px){body{font-size:1rem}}@media (min-width:769px){body{font-size:1.25rem}}pre{overflow:auto}img,video{min-width:1px}.block-editor-writing-flow{font-size:1rem;line-height:1.5}.site-main{margin-bottom:3rem;margin-top:3rem}.content{min-height:calc(100vh - var(--add-height, 50vh));overflow-x:clip}.content .wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}address,blockquote,dl,iframe,ol,pre,table,ul{margin-bottom:1rem}a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif}a.sm{font-size:.75rem}a.md{font-size:16px}a.xl{font-size:1.25rem;font-weight:700}@media (min-width:767px){a.xl{font-size:1.5rem}}a svg{display:inline-block}a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.block-padding-large{padding-bottom:3.125rem;padding-top:3.125rem}@media (min-width:769px){.block-padding-large{padding-bottom:6.25rem;padding-top:6.25rem}}.block-bg-light-gary,.block-bg-sk{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-nsblue,.block-bg-primary-invictipurple{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.block-bg-secondary-darkpurple{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.block-bg-secondary-mediumpurple{--tw-bg-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity))}.block-bg-secondary-mauve{--tw-bg-opacity:1;background-color:rgb(163 94 180/var(--tw-bg-opacity))}.block-bg-secondary-lightmauve{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity))}.block-bg-secondary-magenta{--tw-bg-opacity:1;background-color:rgb(197 84 208/var(--tw-bg-opacity))}.block-bg-secondary-grape{--tw-bg-opacity:1;background-color:rgb(66 41 145/var(--tw-bg-opacity))}.block-bg-secondary-periwinkle{--tw-bg-opacity:1;background-color:rgb(93 64 189/var(--tw-bg-opacity))}.block-bg-secondary-softpurple{--tw-bg-opacity:1;background-color:rgb(253 250 254/var(--tw-bg-opacity))}.block-bg-neutral-invictiblack{--tw-bg-opacity:1;background-color:rgb(16 24 32/var(--tw-bg-opacity))}.block-bg-neutral-darkgray{--tw-bg-opacity:1;background-color:rgb(99 101 105/var(--tw-bg-opacity))}.block-bg-neutral-mediumgray{--tw-bg-opacity:1;background-color:rgb(177 177 178/var(--tw-bg-opacity))}.block-bg-neutral-lightgray{--tw-bg-opacity:1;background-color:rgb(217 216 214/var(--tw-bg-opacity))}.block-bg-neutral-bone{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity))}.block-bg-accent-darkred{--tw-bg-opacity:1;background-color:rgb(145 7 16/var(--tw-bg-opacity))}.block-bg-accent-darkorange{--tw-bg-opacity:1;background-color:rgb(215 56 41/var(--tw-bg-opacity))}.block-bg-accent-brightorange{--tw-bg-opacity:1;background-color:rgb(241 93 42/var(--tw-bg-opacity))}.block-bg-accent-lightorange{--tw-bg-opacity:1;background-color:rgb(255 128 1/var(--tw-bg-opacity))}.block-bg-accent-darkblue{--tw-bg-opacity:1;background-color:rgb(32 43 123/var(--tw-bg-opacity))}.block-bg-accent-mediumblue{--tw-bg-opacity:1;background-color:rgb(44 81 189/var(--tw-bg-opacity))}.block-bg-accent-brightblue{--tw-bg-opacity:1;background-color:rgb(6 174 239/var(--tw-bg-opacity))}.block-bg-accent-lightblue{--tw-bg-opacity:1;background-color:rgb(5 213 255/var(--tw-bg-opacity))}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.smaller-container{max-width:1024px}.small-container{max-width:1280px}.full-container{max-width:100%}.stretch-wrapper{left:50%;margin-left:-50vw;position:relative;width:100vw}.normal-vspace{padding-bottom:37px;padding-top:37px}@media (min-width:992px){.normal-vspace{padding-bottom:75px;padding-top:75px}}.small-vspace{padding-bottom:25px;padding-top:25px}@media (min-width:992px){.small-vspace{padding-bottom:50px;padding-top:50px}}.large-vspace{padding-bottom:50px;padding-top:50px}@media (min-width:992px){.large-vspace{padding-bottom:150px;padding-top:150px}}.lg-hidden{display:none}@media (min-width:992px){.lg-hidden{display:block}}.md-hidden{display:none}@media (min-width:767px){.md-hidden{display:block}}.sm-hidden{display:none}@media (min-width:576px){.sm-hidden{display:block}}.lg-break-hidden br{display:none}@media (min-width:992px){.lg-break-hidden br{display:block}}.md-break-hidden br{display:none}@media (min-width:767px){.md-break-hidden br{display:block}}.sm-break-hidden br{display:none}@media (min-width:576px){.sm-break-hidden br{display:block}}.lg-visible{display:block}@media (min-width:992px){.lg-visible{display:none}}.md-visible{display:block}@media (min-width:767px){.md-visible{display:none}}.sm-visible{display:block}@media (min-width:576px){.sm-visible{display:none}}.wp-block-image.is-style-rounded img{border-radius:50%}.alignleft{float:left;margin-bottom:1rem;margin-right:1rem}.alignright{float:right;margin-bottom:1rem;margin-left:1rem}.aligncenter{margin:1rem auto}.alignnone{margin-bottom:1rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.16}.h1,h1{font-size:1.75rem;font-weight:700;margin-bottom:2rem}@media (min-width:767px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem}@media (min-width:769px){.h2,h2{font-size:2.25rem}}.h3,h3{font-size:1.375rem;margin-bottom:1rem}@media (min-width:767px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:1.375rem;margin-bottom:.75rem}.h5,h5{font-size:.875rem}.svg-sprite-wrapper{display:none}.btn{border-radius:.25rem;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.5rem;padding:.625rem 1.75rem;text-align:center}.btn--primary{background-color:rgb(122 37 130/var(--tw-bg-opacity));border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px}.btn--primary,.btn--primary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--primary:hover{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.btn--primary-light{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(16 24 32/var(--tw-text-opacity))}.btn--primary-light:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--secondary{background-color:rgb(255 255 255/var(--tw-bg-opacity));border-width:2px;color:rgb(89 23 105/var(--tw-text-opacity));display:inline-block}.btn--secondary,.btn--secondary:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity))}.btn--secondary:hover{background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(122 37 130/var(--tw-border-opacity));border-width:2px;color:rgb(122 37 130/var(--tw-text-opacity))}.btn--border:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));border-width:2px;color:rgb(255 255 255/var(--tw-text-opacity))}.btn--border-light:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));color:rgb(122 37 130/var(--tw-text-opacity))}.btn--full{display:block;width:100%}.btn--hero{display:inline-block;margin-top:1.875rem}.button{padding:1rem}input:not(.button),textarea{padding:.5rem .75rem}@media (min-width:767px){input:not(.button),textarea{padding-bottom:.625rem;padding-top:.625rem}}label{display:block;font-weight:500;margin-bottom:1rem}.search-form{position:relative;width:100%}.search-form .search-field{--tw-text-opacity:1;background-color:transparent;border-radius:.5rem;border-width:1px;color:rgb(0 0 0/var(--tw-text-opacity));padding:.75rem;width:100%}.search-form button{height:100%;padding-left:1rem;padding-right:1rem;position:absolute;right:0;text-align:center;top:0}.search-form button svg{font-size:1rem;height:1rem}.content-form{--tw-bg-opacity:1;--tw-shadow:rgb(0 0 0/15%) 0 7px 29px 0;--tw-shadow-colored:0 7px 29px 0 var(--tw-shadow-color);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin-left:auto;margin-right:auto;padding:1.75rem}@media (min-width:767px){.content-form{padding-bottom:2.875rem;padding-left:38px;padding-right:38px;padding-top:2.875rem}}@media (min-width:992px){.content-form{margin-left:0;margin-right:0;max-width:500px}}.content-form__heading{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.25rem;font-weight:300;margin-bottom:1.875rem;text-align:center}@media (min-width:767px){.content-form__heading{font-size:2.25rem}}.ns-form>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.ns-form{text-align:center}.form-group .iti{font-size:1rem;width:100%}@media (max-width:500px){.form-group .iti .iti__country-list{min-width:80vw}}.form-group .iti__flag-container:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity));outline:2px solid transparent;outline-offset:2px}.form-group.optin{align-items:flex-start;display:flex;gap:.5rem;justify-content:center;margin-top:1.25rem}@media (min-width:767px){.form-group.optin{align-items:center}}.form-group.optin input{-webkit-appearance:none;appearance:none;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-position:50%;background-repeat:no-repeat;background-size:contain;border-color:rgb(212 212 212/var(--tw-border-opacity));border-radius:.125rem;border-width:1px;cursor:pointer;flex:none;height:12px;margin-right:.125rem;margin-top:.1875rem;padding:0;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:top;width:12px}.form-group.optin input,.form-group.optin input:checked{--tw-border-opacity:1;--tw-bg-opacity:1}.form-group.optin input:checked{background-color:rgb(89 23 105/var(--tw-bg-opacity));border-color:rgb(89 23 105/var(--tw-border-opacity))}.form-group.optin input:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:767px){.form-group.optin input{margin-top:.25rem}}.form-group.optin input:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3E%3C/svg%3E")}.form-group.optin label{font-size:13px!important;margin-bottom:0!important;text-align:center!important}input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{--tw-border-opacity:1;border:1px solid rgb(212 212 212/var(--tw-border-opacity));border-radius:.25rem;font-size:.875rem;font-weight:400;height:3.125rem;outline:2px solid transparent;outline-offset:2px;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=text]:focus,select:focus,textarea:focus{--tw-border-opacity:1;border-color:rgb(16 24 32/var(--tw-border-opacity))}input[type=email]:focus::placeholder,input[type=number]:focus::placeholder,input[type=tel]:focus::placeholder,input[type=text]:focus::placeholder,select:focus::placeholder,textarea:focus::placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity))}@media (min-width:767px){input[type=email],input[type=number],input[type=tel],input[type=text],select,textarea{font-size:1rem}}textarea{height:auto}select{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));background-image:none;cursor:default;display:block;font-size:1rem;line-height:48px;margin:0;padding:0 .75rem;text-transform:none;white-space:pre;width:100%}select:focus{outline:2px solid transparent;outline-offset:2px}form .btn{padding-bottom:13px;padding-top:13px}form label.error{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity));font-size:13.6px;font-weight:500;margin-top:.3125rem;text-align:left}form .error:not(label){--tw-border-opacity:1;--tw-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #1665fb;--tw-shadow-colored:inset 0 1px 1px var(--tw-shadow-color),0 0 6px var(--tw-shadow-color);border-color:rgb(89 23 105/var(--tw-border-opacity));box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.page-pricing-data .content-form .btn{margin-left:auto;margin-right:auto;margin-top:3rem;width:auto}#pardot-err{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity));border-radius:.125rem;color:rgb(255 255 255/var(--tw-text-opacity));padding:1.25rem;text-align:left}#pardot-err h5{display:flex;font-size:.875rem;font-weight:500;gap:.3125rem;margin-bottom:.4375rem}#pardot-err p{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));font-size:.875rem;margin-bottom:.125rem}.modal{bottom:0;display:none;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:1050}.modal.modal-open{display:block;overflow-x:hidden;overflow-y:auto}.modal .modal-dialog{--tw-translate-x:-50%;--tw-translate-y:-50%;left:50%;position:absolute;top:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:auto}.modal .modal-content{--tw-bg-opacity:1;background-clip:padding-box;background-color:rgb(255 255 255/var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;padding:1.5rem;position:relative}.modal .modal-content .modal-header{text-align:center}.modal .modal-content .modal-body,.modal .modal-content .modal-footer{position:relative}.modal .fluid-embed embed,.modal .fluid-embed iframe,.modal .fluid-embed object{border-style:none}.close{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:block;margin-top:.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem}.site-header{--tw-bg-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:flex;font-size:1.125rem;left:0;padding-bottom:.9375rem;padding-top:.9375rem;position:sticky;right:0;top:0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:50}@media (min-width:767px){.site-header{padding-bottom:1.375rem;padding-top:1.375rem}}@media (min-width:992px){.site-header{font-size:1rem;padding-bottom:1.125rem;padding-top:1.125rem}}@media (min-width:1400px){.site-header{font-size:1.125rem}}@media (min-width:992px){.site-header{height:100px}.site-header>.container{align-items:center;display:flex;justify-content:space-between}}.site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));display:none;float:right;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;margin-left:.9375rem;padding:.375rem 1.125rem}.site-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}@media (min-width:767px){.site-header .btn-get-demo{display:block}}.site-header .btn-get-demo{letter-spacing:.3px}@media (min-width:992px){.site-header .btn-get-demo{height:max-content;order:3}}.site-header .mobile-logo,.site-header .sticky-logo{display:none}.site-header.no-sticky,.site-header.no-sticky .top-slogan{position:relative}.site-header.centered-logo .navigation-header{align-items:center;display:flex;flex-direction:column;justify-content:center;width:100%}.site-header.centered-logo .navigation-header .logo{height:auto;margin-left:auto;margin-right:auto;width:6.25rem}@media (min-width:767px){.site-header.centered-logo .navigation-header .logo{width:120px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .logo{width:150px}}.site-header.centered-logo .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:9px;font-weight:300;text-align:center}@media (min-width:767px){.site-header.centered-logo .navigation-header .top-slogan{font-size:11px}}@media (min-width:992px){.site-header.centered-logo .navigation-header .top-slogan{font-size:14px}}.site-header.centered-logo .top-slogan{display:block}.site-header.purple-header .navigation-header .navbar-toggle-open path[fill],.site-header.transparent-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.site-header.purple-header .navigation-header .top-slogan,.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a,.site-header.transparent-header .navigation-header .top-slogan,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.site-header.purple-header .primary-menu-wrapper .primary-menu>li:hover>a:after,.site-header.transparent-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23CC8BDB'/%3E%3C/svg%3E")}.site-header.purple-header .btn-get-demo,.site-header.transparent-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.site-header.purple-header .btn-get-demo:hover,.site-header.transparent-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.site-header.transparent-header{background-color:transparent;position:absolute}.site-header.purple-header{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.site-header.white-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header .top-logo{display:none}@media (min-width:767px){body.sticky-header:not(.mobile-menu-active) .site-header .sticky-logo{display:block}}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#101820}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23591769'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header,body.sticky-header:not(.mobile-menu-active) .site-header.white-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .sticky-header-btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(89 23 105/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a{--tw-text-opacity:1;color:rgb(163 94 180/var(--tw-text-opacity))}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .primary-menu-wrapper .primary-menu>li:hover>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23A35EB4'/%3E%3C/svg%3E")}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}body.sticky-header:not(.mobile-menu-active) .site-header.purple-sticky-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}body:not(.sticky-header) .site-header:not(.centered-logo) .logo{margin-top:-.4375rem}body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:71px}@media (min-width:767px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:5rem}}@media (min-width:992px){body:not(.sticky-header) .site-header.transparent-header+.content>main>:first-child{padding-top:6.25rem}}.sticky-header-enabled .site-header{padding-bottom:1.25rem}@media (min-width:767px){.sticky-header-enabled .site-header{padding-bottom:1.875rem}}.sticky-header-enabled.sticky-header .site-header{--tw-shadow:0 1px 6px rgb(0 0 0/15%);--tw-shadow-colored:0 1px 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.625rem;padding-top:.625rem;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:767px){.sticky-header-enabled.sticky-header .site-header{padding-bottom:.9375rem;padding-top:.9375rem}}@media (min-width:992px){.sticky-header-enabled.sticky-header .site-header{height:63px}}.sticky-header-enabled.sticky-header .site-header.transparent-header{position:fixed}.sticky-header-enabled.sticky-header .site-header .navigation-header,.sticky-header-enabled.sticky-header .site-header .primary-menu-wrapper .primary-menu li a{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}body.pricing .site-header{border-bottom:1px solid #e8e8e9}.invicti-bar{display:none;position:relative;z-index:1}.invicti-bar .bar-close{--tw-text-opacity:1;align-items:center;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;display:flex;height:1.25rem;justify-content:center;position:absolute;right:1.5rem;width:1.25rem}.invicti-bar .bar-close:hover{opacity:.5}.invicti-bar .bar-close svg{height:1.125rem;width:1.125rem}.invicti-bar .transition-message{--tw-bg-opacity:1;align-items:center;background-color:rgb(122 37 130/var(--tw-bg-opacity));display:flex;flex-wrap:wrap;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;gap:.125rem;height:45px;justify-content:center;padding-left:1.25rem;padding-right:1.25rem}.invicti-bar .transition-message,.invicti-bar a{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));width:100%}.invicti-bar a{text-align:center}.invicti-bar a:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}body.invicti-bar-active .invicti-bar{display:block}.transparent-header-active:not(.mobile-menu-active){margin-top:2.8125rem}.transparent-header-active:not(.mobile-menu-active) .invicti-bar{margin-top:-2.8125rem}.transparent-header-active:not(.mobile-menu-active) .transparent-header{top:2.8125rem}.transparent-header-active:not(.mobile-menu-active).sticky-header,.transparent-header-active:not(.mobile-menu-active).sticky-header .invicti-bar{margin-top:0}.transparent-header-active:not(.mobile-menu-active).sticky-header .transparent-header{top:0}.site-footer{--tw-bg-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.9375rem;padding-bottom:1.25rem;padding-top:1.25rem}.site-footer .copyright-mobile{margin-bottom:.625rem}@media (min-width:767px){.site-footer .copyright-mobile{display:none;margin-left:.9375rem;margin-right:.9375rem}}.site-footer .company-info-wrapper .footerlogo{margin-bottom:.9375rem}@media (min-width:992px){.site-footer .company-info-wrapper .company-info{line-height:21.4286px}}.site-footer .company-info-wrapper .copyright{display:none}@media (min-width:767px){.site-footer .company-info-wrapper .copyright{display:block;margin-top:1.25rem}}@media (min-width:992px){.site-footer .company-info-wrapper .copyright{display:none}}@media (min-width:1200px){.site-footer .company-info-wrapper .copyright{display:block}}.site-footer .company-info-wrapper br{display:none}@media (min-width:767px){.site-footer .company-info-wrapper br{display:block}}.site-footer .company-info-wrapper .social-icons{margin-bottom:1.375rem}.site-footer .company-info-wrapper .social-icons>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.site-footer .company-info-wrapper .social-icons{zoom:.9}.site-footer .company-info-wrapper .social-icons a{transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.site-footer .company-info-wrapper .social-icons a:hover{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.site-footer .primary-footer{display:grid;gap:1.875rem;justify-content:space-between;padding-bottom:1.5625rem;padding-top:1.5625rem}@media (min-width:767px){.site-footer .primary-footer{gap:3.75rem;grid-template-columns:max-content minmax(min-content,540px)}}@media (min-width:992px){.site-footer .primary-footer{grid-template-columns:max-content minmax(min-content,1140px)}}.site-footer .footer-primary-menu{display:grid;gap:1.875rem;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,1fr);grid-template-rows:auto;justify-content:space-between;margin:0;padding:0}@media (min-width:610px){.site-footer .footer-primary-menu{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,auto)}}@media (min-width:992px){.site-footer .footer-primary-menu{grid-template-columns:repeat(5,auto);grid-template-rows:auto}}.site-footer .footer-primary-menu>li>a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:700;margin-bottom:.625rem}.site-footer .footer-primary-menu .sub-menu{font-size:14px;margin:0}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu{margin-top:.375rem}}.site-footer .footer-primary-menu .sub-menu li{line-height:1.25rem;margin-bottom:.4375rem}@media (min-width:992px){.site-footer .footer-primary-menu .sub-menu li{margin-bottom:.3125rem}}.site-footer .footer-primary-menu .sub-menu li:last-child{margin-bottom:0}.site-footer .footer-primary-menu .sub-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-weight:400;letter-spacing:.5px}.site-footer .footer-primary-menu .sub-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.site-footer .footer-bottom-menu{display:flex;flex-wrap:wrap;margin-bottom:0;padding:0}@media (min-width:767px){.site-footer .footer-bottom-menu{display:inline-flex;line-height:1rem}}.site-footer .footer-bottom-menu li{width:100%}@media (min-width:767px){.site-footer .footer-bottom-menu li{margin-right:.625rem;width:auto}}@media (min-width:992px){.site-footer .footer-bottom-menu li{margin-right:1.75rem}}.site-footer .footer-bottom-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.75rem;font-weight:700;letter-spacing:.5px}.site-footer .footer-bottom-menu li a:hover{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(16 24 32/var(--tw-border-opacity))}.landing-page .site-footer{padding-bottom:0;padding-top:0}.gallery-caption figcaption,.wp-caption-text{font-size:.875rem}ul.checkmark-bullets{list-style:none!important;padding-left:2.5rem}ul.checkmark-bullets li{position:relative}ul.checkmark-bullets li:not(:last-child){margin-bottom:.3125rem}ul.checkmark-bullets li:before{background-repeat:no-repeat;background-size:contain;content:"";display:block;float:left;height:14px;left:-38px;position:absolute;top:8px;width:19px}ul.checkmark-bullets--blue li:before{background-image:url(https://cdn.invicti.com/app/uploads/2024/01/29150338/checkmark-blue.svg)}ul.general-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.9375rem*var(--tw-space-y-reverse));margin-top:calc(.9375rem*(1 - var(--tw-space-y-reverse)))}ul.general-list{padding-left:31px}ul.general-list li{position:relative}.fas-li{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:9999px;height:.5rem;left:-1.5em;position:absolute;text-align:center;top:9px;width:.5rem}.main ul{list-style-position:outside;list-style-type:disc;overflow-wrap:break-word;padding-left:2.5rem}.main ul ul{list-style-type:circle}.main ul ul ul{list-style-type:square}.main ol{list-style-position:outside;list-style-type:decimal;overflow-wrap:break-word;padding-left:2.5rem}.main ol ol{list-style:lower-alpha}.main ol ol ol{list-style-type:lower-roman}.main ol,.main ul{overflow-wrap:break-word}.main ol ol,.main ol ul,.main ul ol,.main ul ul{margin-top:1rem}.main ol li,.main ul li{margin-bottom:.5rem}.cookie-notice{--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(251 251 251/var(--tw-bg-opacity));border-color:rgb(235 235 235/var(--tw-border-opacity));border-top-width:1px;bottom:0;display:none;font-size:.75rem;justify-content:center;padding:.9375rem;position:fixed;width:100%;z-index:999}@media (min-width:767px){.cookie-notice{font-size:.875rem}}.cookie-notice.active{display:flex}.cookie-notice p a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.cookie-notice p a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.cookie-notice .cookie-notice-button{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer;font-weight:700;margin-bottom:-.625rem;margin-left:.625rem;margin-top:-.625rem;padding:.4375rem 1.5625rem}.cookie-notice .cookie-notice-button:hover{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity))}.entry-content>*{font-size:1.125rem}.entry-content>h1,.entry-content>h2,.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content>h1:first-child,.entry-content>h2:first-child,.entry-content>h3:first-child,.entry-content>h4:first-child,.entry-content>h5:first-child,.entry-content>h6:first-child{margin-top:0}.entry-content>h1,.entry-content>h2{font-weight:700;margin-bottom:1.875rem;margin-top:3.125rem}.entry-content>h3,.entry-content>h4,.entry-content>h5,.entry-content>h6{margin-bottom:1.125rem;margin-top:2rem}.entry-content>h1{font-size:1.75rem}@media (min-width:767px){.entry-content>h1{font-size:2.25rem}}.entry-content>h2{font-size:1.625rem}@media (min-width:767px){.entry-content>h2{font-size:2rem}}.entry-content>h3{font-size:1.5rem}@media (min-width:767px){.entry-content>h3{font-size:1.75rem}}.entry-content>h4{font-size:1.375rem}.entry-content>h5{font-size:1.25rem}.entry-content>h6{font-size:1.125rem}.entry-content>address,.entry-content>dl,.entry-content>figure,.entry-content>iframe,.entry-content>img,.entry-content>p,.entry-content>pre,.entry-content>table{margin-bottom:1.5625rem}.entry-content>figure,.entry-content>iframe,.entry-content>img{margin-bottom:3rem;margin-top:3rem}.entry-content>blockquote.wp-block-quote{margin-bottom:3.125rem;margin-top:3.125rem}.entry-content>.wp-block-quote.is-style-default{--tw-border-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity))}.entry-content>.wp-block-table{margin-top:2rem}.entry-content a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content code{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(215 56 41/var(--tw-text-opacity));font-size:90%;padding:.125rem .25rem;white-space:pre-wrap}.entry-content code,.entry-content pre{background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem}.entry-content pre{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(177 177 178/var(--tw-border-opacity));border-width:1px;color:rgb(16 24 32/var(--tw-text-opacity));font-size:13px;line-height:1.42857143;padding:.625rem}.entry-content pre>code{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgb(16 24 32/var(--tw-text-opacity));font-size:14px;margin:0;padding:0;white-space:pre-wrap}.entry-content>p a{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.entry-content .wp-block-table thead{border-style:none}.entry-content .wp-block-table thead th{border-bottom-width:2px}.entry-content .wp-block-table tbody td,.entry-content .wp-block-table thead th{--tw-border-opacity:1;border-color:rgb(99 101 105/var(--tw-border-opacity))}.entry-content .image-block,.entry-content .wp-block-image{margin-bottom:3rem;margin-top:3rem}.entry-content .image-block img,.entry-content .wp-block-image img{margin-bottom:0;margin-top:0}.archive-description{margin-bottom:1.5rem}.page-template-template-sidebar-right .site-main{display:grid;gap:5rem;grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:992px){.page-template-template-sidebar-right .site-main{grid-template-columns:repeat(3,minmax(0,1fr))}.page-template-template-sidebar-right .content-container{grid-column:span 2/span 2}} </style> <!-- TrenDemon Code --> <script type="text/javascript" id="trd-flame-load"> TRD_ACC_ID = 2632; (function (w, d) { function go() { var trdti = setInterval(function () { if (document.readyState === "complete") { var bi = document.createElement("script"); bi.type = "text/javascript"; bi.async = true; bi.src = "https://assets.trendemon.com/tag/trends.min.js"; bi.id = "trdflame"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bi, s); clearInterval(trdti); } }, 500); }; go(); }(window, document)); </script> <!-- End of TrenDemon Code --> <style id="page-dynamic-css">.navigation-header{align-items:center;display:flex;justify-content:space-between;min-height:36px}.navigation-header .logo{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:79px}@media (min-width:1200px){.navigation-header .logo{width:6.25rem}}.navigation-header .mobile-logo-icon{display:none;height:2rem;margin-left:auto;margin-right:auto}.navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:7.5px;font-weight:300;position:absolute;transition-delay:.2s;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear}@media (min-width:1200px){.navigation-header .top-slogan{font-size:9.4px}}.navigation-header .sticky-header-btn{--tw-translate-x:-50%;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(250 249 247/var(--tw-text-opacity));display:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;left:50%;line-height:1.25rem;padding:.375rem 1.125rem;position:absolute;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:767px){.navigation-header .sticky-header-btn{padding-left:2.5rem;padding-right:2.5rem}}.navigation-header .navbar-toggle{cursor:pointer;margin-bottom:0;outline:2px solid transparent;outline-offset:2px;padding:0}@media (min-width:767px){.navigation-header .navbar-toggle{margin-right:.625rem}}@media (min-width:992px){.navigation-header .navbar-toggle{display:none}}.navigation-header .navbar-toggle-close{display:none}.primary-menu-wrapper{height:0;overflow-y:auto;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper{display:inline-block;height:auto;margin-left:auto;margin-right:0}}.primary-menu-wrapper .btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(16 24 32/var(--tw-text-opacity));display:none;font-size:1rem;font-weight:700;line-height:1.25rem;padding-bottom:.9375rem;padding-top:.9375rem;position:relative;width:100%;z-index:1}.primary-menu-wrapper .primary-menu{display:flex;flex-direction:column;margin-bottom:0;margin-top:1.25rem;width:100%}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-color:rgb(255 255 255/.2);border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}@media (min-width:992px){.primary-menu-wrapper .primary-menu{display:inline-flex;flex-direction:row;margin-top:0}.primary-menu-wrapper .primary-menu>:not([hidden])~:not([hidden]){border-style:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu{padding-left:0;padding-right:0}}}.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;align-items:center;color:rgb(250 249 247/var(--tw-text-opacity));display:flex;font-size:42px;font-weight:300;justify-content:space-between;padding:1.25rem 0;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){.primary-menu-wrapper .primary-menu li a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));font-size:.9375rem;font-weight:500;line-height:1.25rem;padding-bottom:1.25rem;padding-left:14px;padding-right:14px;padding-top:1.25rem}}@media (min-width:1200px){.primary-menu-wrapper .primary-menu li a{font-size:1.125rem;padding-left:1.125rem;padding-right:1.125rem}}.primary-menu-wrapper .primary-menu li.partners-custom{position:relative}.primary-menu-wrapper .primary-menu li.partners-custom .sub-menu.level--2{right:100%;top:-.4375rem}.primary-menu-wrapper .primary-menu .menu-item-has-children{backface-visibility:hidden;-webkit-backface-visibility:hidden}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:cover;display:block;height:9px;position:relative;transform-origin:center;transition-duration:.1s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);width:16px}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-size:contain;height:.75rem;width:.75rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{backface-visibility:hidden;-webkit-backface-visibility:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23FAF9F7'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;content:"";-webkit-transform-style:preserve-3d}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children>a:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%23101820'/%3E%3C/svg%3E");margin-left:.375rem;margin-right:0;top:.0625rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children .active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:992px){@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>a:after{--tw-rotate:180deg;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='11' height='7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10.72 1.637-4.53 4.53s-.008.007-.008.015a.978.978 0 0 1-.682.278.978.978 0 0 1-.682-.278s-.007-.008-.007-.015L.28 1.637A.96.96 0 0 1 .957 0c.255 0 .499.1.679.28L5.5 4.144 9.363.28A.96.96 0 0 1 11 .958a.96.96 0 0 1-.28.679Z' fill='%237A2582'/%3E%3C/svg%3E");transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover>.sub-menu{display:block}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu{display:flex;left:100%;padding-bottom:5px;top:0}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level>.sub-menu li a{padding-bottom:.125rem;padding-top:.125rem}}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level:hover>a:after{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.primary-menu-wrapper .primary-menu .menu-item-has-children:hover.has-3rd-level .sub-menu>li>a:after{display:none}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level .sub-menu>li>a:after{display:none}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{display:block;opacity:.8}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu .sub-menu{opacity:1}}.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:2.5rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .menu-item-has-children.has-3rd-level>.sub-menu li.menu-item-has-children{padding-left:0}.primary-menu-wrapper .primary-menu li.menu-item-18>.sub-menu{width:200px}.primary-menu-wrapper .primary-menu li.menu-item-14>.sub-menu{width:260px}}.primary-menu-wrapper .primary-menu .sub-menu{display:none}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu{--tw-bg-opacity:1;--tw-shadow:0 0.25rem 0.375rem -0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.25rem -0.0625rem rgba(0,0,0,0.06);--tw-shadow-colored:0 0.25rem 0.375rem -0.0625rem var(--tw-shadow-color),0 0.125rem 0.25rem -0.0625rem var(--tw-shadow-color);background-color:rgb(250 249 247/var(--tw-bg-opacity));border-radius:.25rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);padding-bottom:.5rem;padding-top:.5rem;position:absolute;width:auto;z-index:50}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col{width:max-content}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:700;margin-bottom:-.9375rem;margin-left:-.9375rem;margin-right:-.9375rem;text-transform:uppercase}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col>a{font-weight:700;margin-left:0}}.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{margin-left:-.9375rem;margin-right:-.9375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li.menu-col .sub-menu{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;margin-bottom:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0;position:static}}.primary-menu-wrapper .primary-menu .sub-menu li a{font-weight:500;line-height:1.75rem;padding-bottom:.4375rem;padding-top:.4375rem}@media (min-width:992px){.primary-menu-wrapper .primary-menu .sub-menu li a{padding-bottom:.3125rem;padding-top:.3125rem}.primary-menu-wrapper .primary-menu .sub-menu li a:hover{--tw-text-opacity:1;color:rgb(122 37 130/var(--tw-text-opacity))}}.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a:after{background:#05d5ff;border-radius:2px;color:#101820;content:"NEW";font-size:12px;font-weight:700;line-height:1;margin-left:5px;padding:2px 3px}@media (max-width:991px){.primary-menu-wrapper .primary-menu .sub-menu li.new-promotion a{display:inline-block}}.mobile-menu-active{overflow:hidden}.mobile-menu-active .site-header{background:radial-gradient(81.5% 67% at 39% 50%,#431658 0,#3f1353 25%,#180427 100%)}.mobile-menu-active .site-header .btn-get-demo{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(250 249 247/var(--tw-bg-opacity));color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.2s}.mobile-menu-active .site-header .btn-get-demo:hover{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(122 37 130/var(--tw-bg-opacity));color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header{min-height:50px}.mobile-menu-active .site-header .navigation-header .logo.mobile-logo{display:block}.mobile-menu-active .site-header .navigation-header .logo.sticky-logo,.mobile-menu-active .site-header .navigation-header .logo.top-logo,.mobile-menu-active .site-header .navigation-header .mobile-logo-icon{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close path[fill],.mobile-menu-active .site-header .navigation-header .navbar-toggle-open path[fill]{fill:#faf9f7}.mobile-menu-active .site-header .navigation-header .top-slogan{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .navigation-header .navbar-toggle-open,.mobile-menu-active .site-header .navigation-header .sticky-header-btn{display:none}.mobile-menu-active .site-header .navigation-header .navbar-toggle-close{display:block}.mobile-menu-active .site-header .primary-menu-wrapper{height:100vh;padding-top:3.125rem;position:relative}@media (min-width:992px){.mobile-menu-active .site-header .primary-menu-wrapper{height:auto}}.mobile-menu-active .site-header .primary-menu-wrapper:after{height:150px;left:0;opacity:.2;position:absolute;top:0;width:100%}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper:after{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper:after{background:radial-gradient(50% 50% at 50% 50%,#c554d0 0,rgba(63,20,83,0) 100%);content:""}.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:block}@media (min-width:767px){.mobile-menu-active .site-header .primary-menu-wrapper .btn{display:none}}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a{--tw-text-opacity:1;color:rgb(250 249 247/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>a:after{--tw-rotate:180deg;position:relative;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu{display:block;padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu a{font-size:1.125rem;font-weight:700}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li{padding-left:0}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>a{padding-left:.9375rem}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li.menu-col>a{--tw-text-opacity:1;color:rgb(204 139 219/var(--tw-text-opacity))}.mobile-menu-active .site-header .primary-menu-wrapper .primary-menu li.menu-item-has-children.active-sub-menu>.sub-menu .sub-menu li>.sub-menu{padding-left:0;padding-top:.9375rem}.sticky-header .site-header .logo{display:none}@media (min-width:767px){.sticky-header .site-header .logo{display:block}.sticky-header .site-header .logo.mobile-logo{display:none}}.sticky-header .site-header .top-slogan{opacity:0;transition-delay:0ms;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sticky-header .site-header .mobile-logo-icon{display:block}@media (min-width:767px){.sticky-header .site-header .mobile-logo-icon{display:none}}.sticky-header .site-header .sticky-header-btn{display:block;text-align:center}@media (min-width:767px){.sticky-header .site-header .sticky-header-btn{display:none}}.single-white-papers .site-header{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(232 232 233/var(--tw-border-opacity))}.single-white-papers .invicti-block,.single-white-papers .site-footer{position:relative;z-index:9}.single-white-papers .content{transform:none}.single-white-papers .mobile-trigger{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:flex-end;background-color:rgb(89 23 105/var(--tw-bg-opacity));bottom:0;color:rgb(255 255 255/var(--tw-text-opacity));display:flex;font-size:15px;font-weight:500;height:100%;justify-content:center;left:0;padding-bottom:.9375rem;position:fixed;top:0;visibility:visible;width:20px}@media (min-width:767px){.single-white-papers .mobile-trigger{visibility:hidden}}.single-white-papers .mobile-trigger>div{display:flex;flex-direction:column;gap:.625rem;justify-content:center;text-align:center}.single-white-papers aside{--tw-translate-x:-100%;--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity));bottom:0;left:0;min-width:0;padding-left:1.5625rem;padding-right:1.5625rem;position:fixed;top:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);width:285px;z-index:20}@media (min-width:767px){.single-white-papers aside{--tw-translate-x:0;background-color:transparent;bottom:auto;display:block;left:auto;min-width:240px;padding-left:0;position:relative;right:auto;top:auto;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}@media (min-width:992px){.single-white-papers aside{min-width:250px;padding-right:2.5rem}}@media (min-width:1200px){.single-white-papers aside{min-width:420px}}@media (min-width:576px){.single-white-papers aside{overflow-y:auto}}@media (min-width:767px){.single-white-papers aside{overflow-y:initial}}.single-white-papers aside.active{--tw-translate-x:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.single-white-papers aside.active .sidebar-content{position:relative}.single-white-papers aside:before{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity));content:"";height:100%;position:absolute;right:0;top:0;width:100vw;z-index:-1}.single-white-papers aside .sidebar-home-link{margin-bottom:2.5rem;padding-top:1.25rem}@media (min-width:767px){.single-white-papers aside .sidebar-home-link{margin-bottom:52px;padding-top:45px}}.single-white-papers aside .sidebar-home-link a{--tw-text-opacity:1;align-items:center;color:rgb(44 81 189/var(--tw-text-opacity));display:flex;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.75rem;font-weight:500;gap:.3125rem;text-transform:uppercase}.single-white-papers aside .sidebar-home-link a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-white-papers aside .sidebar-home-link svg{fill:currentColor;color:currentColor;width:14px}.single-white-papers aside .sidebar-content{position:sticky;top:3.5rem;width:100%}@media (min-width:767px){.single-white-papers aside .sidebar-content{top:100px;width:auto}}.single-white-papers aside .sidebar-content .sidebar-heading{display:flex;justify-content:space-between;margin-bottom:.9375rem}.single-white-papers aside .sidebar-content .sidebar-heading .close-nav{--tw-text-opacity:1;align-items:flex-start;color:rgb(99 101 105/var(--tw-text-opacity));cursor:pointer;display:inline-flex;justify-content:center;padding-left:1.5625rem;padding-top:0;position:absolute;right:0;top:25px}@media (min-width:767px){.single-white-papers aside .sidebar-content .sidebar-heading .close-nav{display:none;position:relative}}.single-white-papers aside .sidebar-content .sidebar-heading h3{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:400;margin-bottom:0}.single-white-papers aside .sidebar-content .sidebar-heading h3:after{background:#ddd;content:"";display:block;height:2px;margin:15px 0 0;position:inherit;right:0;width:100px}.single-white-papers aside .sidebar-content .subscribe-block .marketo-form .mktoButton{border-width:0}.single-white-papers aside .sidebar-content .subscribe-block .marketo-form .mktoButton:hover{--tw-bg-opacity:1;background-color:rgb(60 16 83/var(--tw-bg-opacity))}.single-white-papers aside .sidebar-content #toc{overflow-y:auto}.single-white-papers aside .sidebar-content #toc>.toc-list{font-size:.875rem;margin-top:.9375rem;overflow:hidden;padding-left:0;position:relative}@media (min-width:767px){.single-white-papers aside .sidebar-content #toc>.toc-list{padding-left:1.875rem}}.single-white-papers aside .sidebar-content #toc>.toc-list>li{list-style-type:none;margin-bottom:7px}@media (min-width:767px){.single-white-papers aside .sidebar-content #toc>.toc-list>li{list-style-type:decimal;margin-bottom:13px}}.single-white-papers aside .sidebar-content #toc .toc-list{margin:0}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list-item a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;padding-bottom:.625rem;padding-top:.25rem}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list-item a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}@media (min-width:767px){.single-white-papers aside .sidebar-content #toc .toc-list .toc-list-item a{font-size:.875rem}}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list-item a.is-active-link{font-weight:700}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list{margin-top:.625rem;padding-left:.9375rem}@media (min-width:767px){.single-white-papers aside .sidebar-content #toc .toc-list .toc-list{margin-top:.9375rem}}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list>li{line-height:1.3;list-style-type:none;margin-bottom:0}.single-white-papers aside .sidebar-content #toc .toc-list .toc-list>li>a{display:inline-block;font-size:13px;padding-bottom:.25rem;padding-top:.25rem}.single-white-papers aside .sidebar-content #toc .is-collapsible{max-height:1000px;overflow:hidden;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.single-white-papers aside .sidebar-content #toc .is-collapsed{margin:0!important;max-height:0}.single-white-papers .entry-content{overflow:auto;padding:1.875rem 1.5625rem}@media (min-width:767px){.single-white-papers .entry-content{padding-left:40px}}@media (min-width:992px){.single-white-papers .entry-content{padding-bottom:30px;padding-left:50px;padding-top:30px}}@media (min-width:1200px){.single-white-papers .entry-content{padding-bottom:50px;padding-bottom:150px;padding-left:85px;padding-top:50px}}.single-white-papers .entry-content a:not(.btn){--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.single-white-papers .entry-content a:not(.btn):not(.btn):hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.single-white-papers .entry-content .container{padding:0!important}.single-white-papers .entry-content .sub-title{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;line-height:1;margin-bottom:.3125rem}.single-white-papers .entry-content .title h1{font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:36px;font-weight:400;margin-bottom:3.125rem}.single-white-papers .entry-content .wp-block-table tr td{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(217 216 214/var(--tw-border-opacity));border-top:1px rgb(217 216 214/var(--tw-border-opacity));border-style:solid;color:rgb(99 101 105/var(--tw-text-opacity));line-height:1.42857143;padding:.5rem;vertical-align:top}.single-white-papers .entry-content .table-bordered th{--tw-border-opacity:1;--tw-text-opacity:1;border:solid rgb(217 216 214/var(--tw-border-opacity));border-width:0 0 2px;color:rgb(99 101 105/var(--tw-text-opacity));text-align:left}.single-white-papers .entry-content .table-bordered tr td{--tw-border-opacity:1;--tw-text-opacity:1;border-bottom:1px solid rgb(217 216 214/var(--tw-border-opacity));border-left:0 solid rgb(217 216 214/var(--tw-border-opacity));border-right:0 solid rgb(217 216 214/var(--tw-border-opacity));border-top:1px solid rgb(217 216 214/var(--tw-border-opacity));color:rgb(99 101 105/var(--tw-text-opacity));line-height:1.42857143;padding:.5rem;vertical-align:top}.single-white-papers .entry-content .inv-seperator-full{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(217 216 214/var(--tw-border-opacity));display:inline-block;height:.0625rem;margin-bottom:1.25rem;margin-top:.9375rem;opacity:1;width:100%}.single-white-papers .entry-content h2,.single-white-papers .entry-content h3{scroll-margin-top:120px}.single-white-papers .entry-content p.sup-text{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));line-height:1.6}.single-white-papers .entry-content p.sup-text small{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity))}.single-white-papers .entry-content ul{list-style-position:outside;list-style-type:disc;padding-left:2.5rem}.single-white-papers .entry-content ul li{margin-bottom:.5rem}.single-white-papers .entry-content ul ul{list-style-type:circle;margin-top:1rem}.single-white-papers .entry-content ol{list-style-position:outside;list-style-type:decimal;padding-left:2.5rem}.single-white-papers .entry-content ol li{margin-bottom:.5rem}.single-white-papers .nav-overlay{--tw-bg-opacity:0.4;background-color:rgb(60 16 83/var(--tw-bg-opacity));bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:10}.single-white-papers .nav-overlay.active{display:flex}.separator-block{display:inline-block;height:1px;width:100%}#sep-67b30a1a52120{background-color:#d3d3d3;}#sep-67b30a1a52120{height:1px;}@media (min-width:1200px){#sep-67b30a1a52120{margin-top:20px;margin-bottom:40px;}}.invicti-block.text-block p:not(:first-of-type){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse))!important;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))!important}.invicti-block.text-block.ct-check-list ul{list-style:none;padding-left:0}.invicti-block.text-block.ct-check-list ul li{align-items:flex-start;display:flex;line-height:1.15;line-height:inherit;margin-bottom:.625rem;padding-left:.35rem;position:relative}.invicti-block.text-block.ct-check-list ul li:before{display:flex;height:14px;margin-right:1.125rem;margin-top:.1875rem;width:19px}@media (min-width:767px){.invicti-block.text-block.ct-check-list ul li:before{margin-top:.0625rem}}@media (min-width:992px){.invicti-block.text-block.ct-check-list ul li:before{margin-top:0}}.invicti-block.text-block.ct-check-list ul li:before{content:url(https://cdn.invicti.com/app/uploads/2024/01/29150338/checkmark-blue.svg)}.invicti-block.text-block.ct-check-list ul li a,.invicti-block.text-block.ct-check-list ul li strong{display:contents}.invicti-block.text-block.ct-x-list ul{list-style:none;padding-left:0}.invicti-block.text-block.ct-x-list ul li{align-items:flex-start;display:flex;line-height:1.15;line-height:inherit;margin-bottom:.625rem;padding-left:.5rem;position:relative}.invicti-block.text-block.ct-x-list ul li:before{margin-right:1rem;margin-top:.1875rem;width:1rem}@media (min-width:767px){.invicti-block.text-block.ct-x-list ul li:before{margin-top:.0625rem}}.invicti-block.text-block.ct-x-list ul li:before{content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.293 15.16a1 1 0 0 1 0-1.414L13.746.293a1 1 0 0 1 1.415 0l.023.024a1 1 0 0 1 0 1.414L1.731 15.184a1 1 0 0 1-1.414 0l-.024-.023Z' fill='%23FF0201'/%3E%3Cpath d='M15.16 15.184a1 1 0 0 1-1.414 0L.293 1.731a1 1 0 0 1 0-1.414L.317.293a1 1 0 0 1 1.414 0l13.453 13.453a1 1 0 0 1 0 1.415l-.023.023Z' fill='%23FF0201'/%3E%3C/svg%3E");height:27px}.invicti-block.text-block.ct-x-list ul li a,.invicti-block.text-block.ct-x-list ul li strong{display:contents}.invicti-block.text-block.ct-disc-list ul{list-style-position:outside;list-style-type:disc;margin-left:1em;overflow-wrap:break-word;padding-left:0}.invicti-block.text-block.ct-disc-list ul ol,.invicti-block.text-block.ct-disc-list ul ul{padding-left:1.875rem}.invicti-block.text-block.ct-disc-list ol{list-style-position:outside;list-style-type:decimal;margin-left:1em;overflow-wrap:break-word;padding-left:0}.invicti-block.text-block.ct-disc-list ol ol,.invicti-block.text-block.ct-disc-list ol ul{padding-left:1.875rem}.invicti-block.text-block.ct-check-list ol:not(:first-child),.invicti-block.text-block.ct-check-list ul:not(:first-child),.invicti-block.text-block.ct-disc-list ol:not(:first-child),.invicti-block.text-block.ct-disc-list ul:not(:first-child){margin-top:1.25rem}.invicti-block.text-block.disc-blue ::marker{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.invicti-block.text-block h1,.invicti-block.text-block h2,.invicti-block.text-block h3,.invicti-block.text-block h4,.invicti-block.text-block h5,.invicti-block.text-block h6,.invicti-block.text-block p,.invicti-block.text-block span{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;padding:0;text-transform:inherit}.invicti-block.text-block p,.invicti-block.text-block span{font-weight:inherit}.invicti-block.text-block a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.invicti-block.text-block a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}#ct-67b30a1a527ab{color:var(--color-nsgray-default);}#ct-67b30a1a527ab{font-family:var(--heading-font);}#ct-67b30a1a527ab{font-weight:var(--font-weight-medium);}#ct-67b30a1a527ab{font-size:16px;}#ct-67b30a1a527ab{margin-bottom:10px;}.invicti-block.marketo-form{position:relative}.invicti-block.marketo-form .mktoLabel{display:flex;font-size:1rem;gap:.3125rem;margin-bottom:.3125rem}.invicti-block.marketo-form .marketo-checkbox-row{display:flex;gap:.625rem}.invicti-block.marketo-form .marketo-checkbox-row .mktoHtmlText{font-size:.875rem;line-height:1.2em;padding-top:.125rem;text-align:left}.invicti-block.marketo-form .marketo-checkbox-row .mktoCheckboxList{line-height:1}.invicti-block.marketo-form .marketo-checkbox-row #LblConsent_Explicit_Opt_In__c,.invicti-block.marketo-form .mktoAsterix{display:none}.invicti-block.marketo-form .mktoRequiredField .mktoAsterix{display:block}.invicti-block.marketo-form.hide-labels .mktoLabel{display:none}.invicti-block.marketo-form .mktoErrorMsg{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity));font-size:13.6px;font-weight:500;margin-top:.3125rem;text-align:left}.invicti-block.marketo-form .marketo-privacy-line{display:none}.invicti-block.marketo-form .btn{background-color:rgb(122 37 130/var(--tw-bg-opacity));border-width:2px;margin-left:auto;margin-right:auto;margin-top:1.875rem;width:auto}.invicti-block.marketo-form .btn,.invicti-block.marketo-form .btn:not(.step-btn):hover{--tw-border-opacity:1;--tw-bg-opacity:1;border-color:rgb(197 84 208/var(--tw-border-opacity))}.invicti-block.marketo-form .btn:not(.step-btn):hover{background-color:rgb(197 84 208/var(--tw-bg-opacity))}.invicti-block.marketo-form .marketo-privacy-line,.invicti-block.marketo-form .privacy{font-size:.75rem;margin-top:1.25rem;text-align:center}.invicti-block.marketo-form .marketo-privacy-line a,.invicti-block.marketo-form .privacy a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-weight:700;-webkit-text-decoration-line:underline;text-decoration-line:underline}.invicti-block.marketo-form .marketo-privacy-line a:hover,.invicti-block.marketo-form .privacy a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity));-webkit-text-decoration-line:none;text-decoration-line:none}.invicti-block.marketo-form .hidden-role-field{display:none}.invicti-block.marketo-form .required-role-field .mktoAsterix{display:block}.invicti-block.marketo-form.multi-step-form form>.mktoFormRow{display:none}.invicti-block.marketo-form.multi-step-form .mktoButton{--tw-text-opacity:1;align-items:center;color:rgb(255 255 255/var(--tw-text-opacity));display:flex;justify-content:center;margin-left:auto;margin-right:auto;margin-top:1.875rem;padding-bottom:.625rem;padding-top:.625rem;position:relative;width:100%}@media (min-width:576px){.invicti-block.marketo-form.multi-step-form .mktoButton{max-width:60%}}.invicti-block.marketo-form.multi-step-form[data-currentstep="1"] .mktoButton:after,.invicti-block.marketo-form.multi-step-form[data-currentstep="2"] .mktoButton:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='14' height='14' viewBox='0 0 32 28.12' xmlns='http://www.w3.org/2000/svg' class='svg-arrow-icon'%3E%3Cpath d='m17.4.22-1.26 1.26c-.3.3-.3.78 0 1.08L26 12.41H.76a.76.76 0 0 0-.76.76v1.78c0 .42.34.76.76.76H26l-9.85 9.85c-.3.3-.3.78 0 1.08l1.26 1.26c.3.3.78.3 1.08 0l13.3-13.3c.3-.3.3-.78 0-1.08L18.49.22a.792.792 0 0 0-1.09 0z' fill='%23FFF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:cover;content:"";height:14px;margin-left:.5rem;margin-top:.125rem;width:14px}.invicti-block.marketo-form.multi-step-form .privacy,.invicti-block.marketo-form.multi-step-form legend{display:none}.invicti-block.marketo-form .get-demo-form-steps{display:flex;justify-content:space-around;margin-left:auto;margin-right:auto;margin-top:2.5rem;max-width:240px;position:relative;width:100%}.invicti-block.marketo-form .get-demo-form-steps button{background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:9999px;border-width:2px;color:rgb(89 23 105/var(--tw-text-opacity));cursor:default;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;height:2.5rem;line-height:calc(2.5rem - 4px);margin-top:0;padding:0;position:relative;width:2.5rem;z-index:20}.invicti-block.marketo-form .get-demo-form-steps button,.invicti-block.marketo-form .get-demo-form-steps button.visited{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;border-color:rgb(89 23 105/var(--tw-border-opacity))}.invicti-block.marketo-form .get-demo-form-steps button.visited{background-color:rgb(89 23 105/var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity));cursor:pointer}.invicti-block.marketo-form .get-demo-form-steps:before{--tw-translate-x:-50%;--tw-translate-y:-50%;--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));bottom:0;content:" ";height:.125rem;left:50%;position:absolute;top:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:60%;z-index:10}.invicti-block.marketo-form .form-title{display:none;font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.75rem;font-weight:700;margin-bottom:1.875rem;text-align:center}@media (min-width:992px){.invicti-block.marketo-form .form-title{font-size:2.25rem;padding-top:1.25rem}}.invicti-block.marketo-form .overlay-content{align-items:center;display:flex;display:none;flex-direction:column;justify-content:center;text-align:center}.invicti-block.marketo-form .overlay-content h4{font-size:50px;line-height:1;margin-top:2.5rem}.invicti-block.marketo-form .overlay-content p{font-size:16px;margin-top:.625rem}.invicti-block.marketo-form .overlay-content p a{font-weight:500;-webkit-text-decoration-line:underline;text-decoration-line:underline}.invicti-block.marketo-form .overlay-content .custom-form-text{padding-left:1.25rem;padding-right:1.25rem}@media (min-width:767px){.invicti-block.marketo-form .overlay-content .custom-form-text{padding-left:4.5rem;padding-right:4.5rem}}.invicti-block.marketo-form .overlay-content .custom-form-text a{display:inline-flex;font-weight:700;gap:.4375rem}.invicti-block.marketo-form.success-overlay .overlay-content{display:block}.invicti-block.marketo-form .mktoClear,.invicti-block.marketo-form.success-overlay .privacy,.invicti-block.marketo-form.success-overlay form{display:none}.invicti-block.marketo-form .loading-marketo{align-items:center;display:flex;font-size:.75rem;justify-content:center;margin-bottom:2.5rem;margin-top:2.5rem;text-align:center}.invicti-block.marketo-form .loading-marketo:before{--tw-border-opacity:1;animation:spin 1s ease-in-out infinite;border-color:transparent;border-bottom-color:rgb(89 23 105/var(--tw-border-opacity));border-radius:9999px;border-top-color:rgb(89 23 105/var(--tw-border-opacity));border-width:2px;content:"";display:inline-block;height:1.25rem;margin:.625rem;width:1.25rem}.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(2),.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(3),.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(4){margin-bottom:1.25rem}@media (min-width:767px){.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(2),.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(3),.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(4){display:flex;gap:1.25rem;justify-content:space-between}}.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(3)>.mktoFieldDescriptor:first-child,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(4)>.mktoFieldDescriptor:first-child{margin-bottom:1.25rem}@media (min-width:767px){.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(3)>.mktoFieldDescriptor:first-child,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(4)>.mktoFieldDescriptor:first-child{margin-bottom:0}}.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(2) .mktoFieldDescriptor,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(3) .mktoFieldDescriptor,.invicti-block.marketo-form.contact-sales-form form>.mktoFormRow:nth-child(4) .mktoFieldDescriptor{width:100%}.invicti-block.marketo-form.contact-sales-form form .mktoLabel{font-size:14px!important}.invicti-block.marketo-form.contact-sales-form form input[type=email],.invicti-block.marketo-form.contact-sales-form form input[type=number],.invicti-block.marketo-form.contact-sales-form form input[type=tel],.invicti-block.marketo-form.contact-sales-form form input[type=text],.invicti-block.marketo-form.contact-sales-form form select{height:34px}.invicti-block.marketo-form.contact-sales-form form select{font-size:.875rem!important}.invicti-block.marketo-form.contact-sales-form form .btn{padding-bottom:.5rem;padding-top:.5rem}.invicti-block.marketo-form.contact-sales-form .privacy a{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.invicti-block.marketo-form.contact-sales-form .privacy a:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.invicti-block.marketo-form.whitepapers-subscribe-block{padding-bottom:2.5rem}.invicti-block.marketo-form.whitepapers-subscribe-block h5{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;margin-bottom:.625rem}.invicti-block.marketo-form.whitepapers-subscribe-block form{display:flex;flex-wrap:wrap}.invicti-block.marketo-form.whitepapers-subscribe-block form>.mktoFormRow:nth-child(2){margin-top:0;order:1;width:70%}.invicti-block.marketo-form.whitepapers-subscribe-block form input{border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0;font-size:.875rem;height:34px}.invicti-block.marketo-form.whitepapers-subscribe-block form>.mktoButtonRow{margin-top:0;order:2;width:30%}.invicti-block.marketo-form.whitepapers-subscribe-block form>.mktoButtonRow .btn{border-bottom-left-radius:0;border-top-left-radius:0;font-size:.875rem;height:34px;margin:0;padding:0 .75rem}.invicti-block.marketo-form.whitepapers-subscribe-block form>.marketo-checkbox-row{margin-top:.625rem;order:3;width:100%}.invicti-block.marketo-form.whitepapers-subscribe-block form>.marketo-checkbox-row .mktoHtmlText{font-size:13px;padding-top:0}@media (min-width:769px){.invicti-block.marketo-form.whitepapers-subscribe-block form>.marketo-checkbox-row .mktoHtmlText{padding-top:.1875rem}}.invicti-block.marketo-form.whitepapers-subscribe-block form>.marketo-checkbox-row input{height:auto}.invicti-block.marketo-form.whitepapers-subscribe-block .privacy{margin-top:.3125rem;text-align:left}.invicti-block.marketo-form.whitepapers-subscribe-block .loading-marketo{justify-content:flex-start;margin-bottom:.625rem;margin-left:-.625rem;margin-top:.625rem}.modal-form-box.invicti-block.form-box{display:none;max-height:calc(100vh - 100px);min-height:inherit;min-width:calc(100vw - 60px);overflow:auto}@media (min-width:767px){.modal-form-box.invicti-block.form-box{min-width:700px}}.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(2),.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(3),.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(4){margin-bottom:1.25rem}@media (min-width:767px){.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(2),.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(3),.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(4){display:flex;gap:1.25rem;justify-content:space-between}}.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(3)>.mktoFieldDescriptor:first-child,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(4)>.mktoFieldDescriptor:first-child{margin-bottom:1.25rem}@media (min-width:767px){.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(3)>.mktoFieldDescriptor:first-child,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(4)>.mktoFieldDescriptor:first-child{margin-bottom:0}}.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(2) .mktoFieldDescriptor,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(3) .mktoFieldDescriptor,.modal-form-box.invicti-block.form-box form>.mktoFormRow:nth-child(4) .mktoFieldDescriptor{width:100%}.modal-form-box.invicti-block.form-box form .btn{padding-bottom:.5rem;padding-top:.5rem}.invicti-block.marketo-form #InstructCountry,.invicti-block.marketo-form #InstructMarketo_Role__c,.invicti-block.marketo-form .mktoHtmlText span,.video-form-box.invicti-block.form-box,.video-form-box.invicti-block.marketo-form{display:none}.invicti-block.marketo-form #State{width:100%!important}.invicti-block.marketo-form[data-currentstep="1"] .step-1-heading,.invicti-block.marketo-form[data-currentstep="1"] form>.mktoFormRow:nth-child(2),.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3){display:block}.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3) .mktoFormCol>.mktoFormRow:nth-child(2){margin-bottom:1.25rem}@media (min-width:767px){.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3) .mktoFormCol>.mktoFormRow:nth-child(2){display:flex;gap:1.25rem;justify-content:space-between}}.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3) .mktoFormCol>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child{margin-bottom:1.25rem}@media (min-width:767px){.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3) .mktoFormCol>.mktoFormRow:nth-child(2)>.mktoFieldDescriptor:first-child{margin-bottom:0}}.invicti-block.marketo-form[data-currentstep="2"] form>.mktoFormRow:nth-child(3) .mktoClear:last-child{display:none}.invicti-block.marketo-form[data-currentstep="2"] .step-2-heading,.invicti-block.marketo-form[data-currentstep="3"] form>.mktoFormRow:nth-child(4){display:block}.invicti-block.marketo-form[data-currentstep="3"] form>.mktoFormRow:nth-child(4) .mktoFormCol>.mktoFormRow:nth-child(2),.invicti-block.marketo-form[data-currentstep="3"] form>.mktoFormRow:nth-child(4) .mktoFormCol>.mktoFormRow:nth-child(3):not(.marketo-checkbox-row){margin-bottom:1.25rem}.invicti-block.marketo-form[data-currentstep="3"] .privacy,.invicti-block.marketo-form[data-currentstep="3"] .step-3-heading{display:block}.boxed-dark .loading-marketo,.boxed-dark .mktoHtmlText{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@keyframes spin{to{-webkit-transform:rotate(1turn)}}.intl-tel-input{width:100%}.intl-tel-input .country-list .country-name,.intl-tel-input .country-list .country .dial-code,.intl-tel-input .country-list .flag-box,.intl-tel-input.separate-dial-code .selected-dial-code{font-size:15px}.get-demo .flag-container,.page-template-landing-page .flag-container{height:52px}.sales .flag-container{height:34px}.iti-flag{background-image:url(/app/themes/netsparker/resources/assets/scripts/vendor/intl-tel-input/img/flags.png)!important}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.iti-flag{background-image:url(/app/themes/netsparker/resources/assets/scripts/vendor/intl-tel-input/img/flags@2x.png)!important}}.intl-tel-input { position: relative; display: inline-block;} .intl-tel-input * { box-sizing: border-box; -moz-box-sizing: border-box;} .intl-tel-input .hide { display: none;} .intl-tel-input .v-hide { visibility: hidden;} .intl-tel-input input, .intl-tel-input input[type=text], .intl-tel-input input[type=tel] { position: relative; z-index: 0; margin-top: 0 !important; margin-bottom: 0 !important; padding-right: 36px; margin-right: 0;} .intl-tel-input .flag-container { position: absolute; top: 0; bottom: 0; right: 0; padding: 1px;} .intl-tel-input .selected-flag { z-index: 1; position: relative; display: flex; align-items: center; height: 100%; padding: 0 6px 0 8px;} .intl-tel-input .selected-flag .iti-arrow { margin-left: 6px; width: 0; height: 0; border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid #555;} .intl-tel-input .selected-flag .iti-arrow.up { border-top: none; border-bottom: 4px solid #555;} .intl-tel-input .country-list { position: absolute; z-index: 2; list-style: none; text-align: left; padding: 0; margin: 0 0 0 -1px; box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2); background-color: white; border: 1px solid #CCC; white-space: nowrap; max-height: 200px; overflow-y: scroll; -webkit-overflow-scrolling: touch;} .intl-tel-input .country-list.dropup { bottom: 100%; margin-bottom: -1px;} .intl-tel-input .country-list .flag-box { display: inline-block; width: 20px;} @media (max-width: 500px) { .intl-tel-input .country-list { white-space: normal;} } .intl-tel-input .country-list .divider { padding-bottom: 5px; margin-bottom: 5px; border-bottom: 1px solid #CCC;} .intl-tel-input .country-list .country { padding: 5px 10px; outline: none;} .intl-tel-input .country-list .country .dial-code { color: #999;} .intl-tel-input .country-list .country.highlight { background-color: rgba(0, 0, 0, 0.05);} .intl-tel-input .country-list .flag-box, .intl-tel-input .country-list .country-name, .intl-tel-input .country-list .dial-code { vertical-align: middle;} .intl-tel-input .country-list .flag-box, .intl-tel-input .country-list .country-name { margin-right: 6px;} .intl-tel-input.allow-dropdown input, .intl-tel-input.allow-dropdown input[type=text], .intl-tel-input.allow-dropdown input[type=tel], .intl-tel-input.separate-dial-code input, .intl-tel-input.separate-dial-code input[type=text], .intl-tel-input.separate-dial-code input[type=tel] { padding-right: 6px; padding-left: 52px; margin-left: 0;} .intl-tel-input.allow-dropdown .flag-container, .intl-tel-input.separate-dial-code .flag-container { right: auto; left: 0;} .intl-tel-input.allow-dropdown .flag-container:hover { cursor: pointer;} .intl-tel-input.allow-dropdown .flag-container:hover .selected-flag { background-color: rgba(0, 0, 0, 0.05);} .intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover, .intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover { cursor: default;} .intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover .selected-flag, .intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover .selected-flag { background-color: transparent;} .intl-tel-input.separate-dial-code .selected-flag { background-color: rgba(0, 0, 0, 0.05);} .intl-tel-input.separate-dial-code .selected-dial-code { margin-left: 6px;} .intl-tel-input.iti-container { position: absolute; top: -1000px; left: -1000px; z-index: 1060; padding: 1px;} .intl-tel-input.iti-container:hover { cursor: pointer;}.iti-mobile .intl-tel-input.iti-container { top: 30px; bottom: 30px; left: 30px; right: 30px; position: fixed;}.iti-mobile .intl-tel-input .country-list { max-height: 100%; width: 100%;} .iti-mobile .intl-tel-input .country-list .country { padding: 10px 10px; line-height: 1.5em;}.iti-flag { width: 20px;} .iti-flag.be { width: 18px;} .iti-flag.ch { width: 15px;} .iti-flag.mc { width: 19px;} .iti-flag.ne { width: 18px;} .iti-flag.np { width: 13px;} .iti-flag.va { width: 15px;} @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .iti-flag { background-size: 5652px 15px;} } .iti-flag.ac { height: 10px; background-position: 0px 0px;} .iti-flag.ad { height: 14px; background-position: -22px 0px;} .iti-flag.ae { height: 10px; background-position: -44px 0px;} .iti-flag.af { height: 14px; background-position: -66px 0px;} .iti-flag.ag { height: 14px; background-position: -88px 0px;} .iti-flag.ai { height: 10px; background-position: -110px 0px;} .iti-flag.al { height: 15px; background-position: -132px 0px;} .iti-flag.am { height: 10px; background-position: -154px 0px;} .iti-flag.ao { height: 14px; background-position: -176px 0px;} .iti-flag.aq { height: 14px; background-position: -198px 0px;} .iti-flag.ar { height: 13px; background-position: -220px 0px;} .iti-flag.as { height: 10px; background-position: -242px 0px;} .iti-flag.at { height: 14px; background-position: -264px 0px;} .iti-flag.au { height: 10px; background-position: -286px 0px;} .iti-flag.aw { height: 14px; background-position: -308px 0px;} .iti-flag.ax { height: 13px; background-position: -330px 0px;} .iti-flag.az { height: 10px; background-position: -352px 0px;} .iti-flag.ba { height: 10px; background-position: -374px 0px;} .iti-flag.bb { height: 14px; background-position: -396px 0px;} .iti-flag.bd { height: 12px; background-position: -418px 0px;} .iti-flag.be { height: 15px; background-position: -440px 0px;} .iti-flag.bf { height: 14px; background-position: -460px 0px;} .iti-flag.bg { height: 12px; background-position: -482px 0px;} .iti-flag.bh { height: 12px; background-position: -504px 0px;} .iti-flag.bi { height: 12px; background-position: -526px 0px;} .iti-flag.bj { height: 14px; background-position: -548px 0px;} .iti-flag.bl { height: 14px; background-position: -570px 0px;} .iti-flag.bm { height: 10px; background-position: -592px 0px;} .iti-flag.bn { height: 10px; background-position: -614px 0px;} .iti-flag.bo { height: 14px; background-position: -636px 0px;} .iti-flag.bq { height: 14px; background-position: -658px 0px;} .iti-flag.br { height: 14px; background-position: -680px 0px;} .iti-flag.bs { height: 10px; background-position: -702px 0px;} .iti-flag.bt { height: 14px; background-position: -724px 0px;} .iti-flag.bv { height: 15px; background-position: -746px 0px;} .iti-flag.bw { height: 14px; background-position: -768px 0px;} .iti-flag.by { height: 10px; background-position: -790px 0px;} .iti-flag.bz { height: 14px; background-position: -812px 0px;} .iti-flag.ca { height: 10px; background-position: -834px 0px;} .iti-flag.cc { height: 10px; background-position: -856px 0px;} .iti-flag.cd { height: 15px; background-position: -878px 0px;} .iti-flag.cf { height: 14px; background-position: -900px 0px;} .iti-flag.cg { height: 14px; background-position: -922px 0px;} .iti-flag.ch { height: 15px; background-position: -944px 0px;} .iti-flag.ci { height: 14px; background-position: -961px 0px;} .iti-flag.ck { height: 10px; background-position: -983px 0px;} .iti-flag.cl { height: 14px; background-position: -1005px 0px;} .iti-flag.cm { height: 14px; background-position: -1027px 0px;} .iti-flag.cn { height: 14px; background-position: -1049px 0px;} .iti-flag.co { height: 14px; background-position: -1071px 0px;} .iti-flag.cp { height: 14px; background-position: -1093px 0px;} .iti-flag.cr { height: 12px; background-position: -1115px 0px;} .iti-flag.cu { height: 10px; background-position: -1137px 0px;} .iti-flag.cv { height: 12px; background-position: -1159px 0px;} .iti-flag.cw { height: 14px; background-position: -1181px 0px;} .iti-flag.cx { height: 10px; background-position: -1203px 0px;} .iti-flag.cy { height: 14px; background-position: -1225px 0px;} .iti-flag.cz { height: 14px; background-position: -1247px 0px;} .iti-flag.de { height: 12px; background-position: -1269px 0px;} .iti-flag.dg { height: 10px; background-position: -1291px 0px;} .iti-flag.dj { height: 14px; background-position: -1313px 0px;} .iti-flag.dk { height: 15px; background-position: -1335px 0px;} .iti-flag.dm { height: 10px; background-position: -1357px 0px;} .iti-flag.do { height: 14px; background-position: -1379px 0px;} .iti-flag.dz { height: 14px; background-position: -1401px 0px;} .iti-flag.ea { height: 14px; background-position: -1423px 0px;} .iti-flag.ec { height: 14px; background-position: -1445px 0px;} .iti-flag.ee { height: 13px; background-position: -1467px 0px;} .iti-flag.eg { height: 14px; background-position: -1489px 0px;} .iti-flag.eh { height: 10px; background-position: -1511px 0px;} .iti-flag.er { height: 10px; background-position: -1533px 0px;} .iti-flag.es { height: 14px; background-position: -1555px 0px;} .iti-flag.et { height: 10px; background-position: -1577px 0px;} .iti-flag.eu { height: 14px; background-position: -1599px 0px;} .iti-flag.fi { height: 12px; background-position: -1621px 0px;} .iti-flag.fj { height: 10px; background-position: -1643px 0px;} .iti-flag.fk { height: 10px; background-position: -1665px 0px;} .iti-flag.fm { height: 11px; background-position: -1687px 0px;} .iti-flag.fo { height: 15px; background-position: -1709px 0px;} .iti-flag.fr { height: 14px; background-position: -1731px 0px;} .iti-flag.ga { height: 15px; background-position: -1753px 0px;} .iti-flag.gb { height: 10px; background-position: -1775px 0px;} .iti-flag.gd { height: 12px; background-position: -1797px 0px;} .iti-flag.ge { height: 14px; background-position: -1819px 0px;} .iti-flag.gf { height: 14px; background-position: -1841px 0px;} .iti-flag.gg { height: 14px; background-position: -1863px 0px;} .iti-flag.gh { height: 14px; background-position: -1885px 0px;} .iti-flag.gi { height: 10px; background-position: -1907px 0px;} .iti-flag.gl { height: 14px; background-position: -1929px 0px;} .iti-flag.gm { height: 14px; background-position: -1951px 0px;} .iti-flag.gn { height: 14px; background-position: -1973px 0px;} .iti-flag.gp { height: 14px; background-position: -1995px 0px;} .iti-flag.gq { height: 14px; background-position: -2017px 0px;} .iti-flag.gr { height: 14px; background-position: -2039px 0px;} .iti-flag.gs { height: 10px; background-position: -2061px 0px;} .iti-flag.gt { height: 13px; background-position: -2083px 0px;} .iti-flag.gu { height: 11px; background-position: -2105px 0px;} .iti-flag.gw { height: 10px; background-position: -2127px 0px;} .iti-flag.gy { height: 12px; background-position: -2149px 0px;} .iti-flag.hk { height: 14px; background-position: -2171px 0px;} .iti-flag.hm { height: 10px; background-position: -2193px 0px;} .iti-flag.hn { height: 10px; background-position: -2215px 0px;} .iti-flag.hr { height: 10px; background-position: -2237px 0px;} .iti-flag.ht { height: 12px; background-position: -2259px 0px;} .iti-flag.hu { height: 10px; background-position: -2281px 0px;} .iti-flag.ic { height: 14px; background-position: -2303px 0px;} .iti-flag.id { height: 14px; background-position: -2325px 0px;} .iti-flag.ie { height: 10px; background-position: -2347px 0px;} .iti-flag.il { height: 15px; background-position: -2369px 0px;} .iti-flag.im { height: 10px; background-position: -2391px 0px;} .iti-flag.in { height: 14px; background-position: -2413px 0px;} .iti-flag.io { height: 10px; background-position: -2435px 0px;} .iti-flag.iq { height: 14px; background-position: -2457px 0px;} .iti-flag.ir { height: 12px; background-position: -2479px 0px;} .iti-flag.is { height: 15px; background-position: -2501px 0px;} .iti-flag.it { height: 14px; background-position: -2523px 0px;} .iti-flag.je { height: 12px; background-position: -2545px 0px;} .iti-flag.jm { height: 10px; background-position: -2567px 0px;} .iti-flag.jo { height: 10px; background-position: -2589px 0px;} .iti-flag.jp { height: 14px; background-position: -2611px 0px;} .iti-flag.ke { height: 14px; background-position: -2633px 0px;} .iti-flag.kg { height: 12px; background-position: -2655px 0px;} .iti-flag.kh { height: 13px; background-position: -2677px 0px;} .iti-flag.ki { height: 10px; background-position: -2699px 0px;} .iti-flag.km { height: 12px; background-position: -2721px 0px;} .iti-flag.kn { height: 14px; background-position: -2743px 0px;} .iti-flag.kp { height: 10px; background-position: -2765px 0px;} .iti-flag.kr { height: 14px; background-position: -2787px 0px;} .iti-flag.kw { height: 10px; background-position: -2809px 0px;} .iti-flag.ky { height: 10px; background-position: -2831px 0px;} .iti-flag.kz { height: 10px; background-position: -2853px 0px;} .iti-flag.la { height: 14px; background-position: -2875px 0px;} .iti-flag.lb { height: 14px; background-position: -2897px 0px;} .iti-flag.lc { height: 10px; background-position: -2919px 0px;} .iti-flag.li { height: 12px; background-position: -2941px 0px;} .iti-flag.lk { height: 10px; background-position: -2963px 0px;} .iti-flag.lr { height: 11px; background-position: -2985px 0px;} .iti-flag.ls { height: 14px; background-position: -3007px 0px;} .iti-flag.lt { height: 12px; background-position: -3029px 0px;} .iti-flag.lu { height: 12px; background-position: -3051px 0px;} .iti-flag.lv { height: 10px; background-position: -3073px 0px;} .iti-flag.ly { height: 10px; background-position: -3095px 0px;} .iti-flag.ma { height: 14px; background-position: -3117px 0px;} .iti-flag.mc { height: 15px; background-position: -3139px 0px;} .iti-flag.md { height: 10px; background-position: -3160px 0px;} .iti-flag.me { height: 10px; background-position: -3182px 0px;} .iti-flag.mf { height: 14px; background-position: -3204px 0px;} .iti-flag.mg { height: 14px; background-position: -3226px 0px;} .iti-flag.mh { height: 11px; background-position: -3248px 0px;} .iti-flag.mk { height: 10px; background-position: -3270px 0px;} .iti-flag.ml { height: 14px; background-position: -3292px 0px;} .iti-flag.mm { height: 14px; background-position: -3314px 0px;} .iti-flag.mn { height: 10px; background-position: -3336px 0px;} .iti-flag.mo { height: 14px; background-position: -3358px 0px;} .iti-flag.mp { height: 10px; background-position: -3380px 0px;} .iti-flag.mq { height: 14px; background-position: -3402px 0px;} .iti-flag.mr { height: 14px; background-position: -3424px 0px;} .iti-flag.ms { height: 10px; background-position: -3446px 0px;} .iti-flag.mt { height: 14px; background-position: -3468px 0px;} .iti-flag.mu { height: 14px; background-position: -3490px 0px;} .iti-flag.mv { height: 14px; background-position: -3512px 0px;} .iti-flag.mw { height: 14px; background-position: -3534px 0px;} .iti-flag.mx { height: 12px; background-position: -3556px 0px;} .iti-flag.my { height: 10px; background-position: -3578px 0px;} .iti-flag.mz { height: 14px; background-position: -3600px 0px;} .iti-flag.na { height: 14px; background-position: -3622px 0px;} .iti-flag.nc { height: 10px; background-position: -3644px 0px;} .iti-flag.ne { height: 15px; background-position: -3666px 0px;} .iti-flag.nf { height: 10px; background-position: -3686px 0px;} .iti-flag.ng { height: 10px; background-position: -3708px 0px;} .iti-flag.ni { height: 12px; background-position: -3730px 0px;} .iti-flag.nl { height: 14px; background-position: -3752px 0px;} .iti-flag.no { height: 15px; background-position: -3774px 0px;} .iti-flag.np { height: 15px; background-position: -3796px 0px;} .iti-flag.nr { height: 10px; background-position: -3811px 0px;} .iti-flag.nu { height: 10px; background-position: -3833px 0px;} .iti-flag.nz { height: 10px; background-position: -3855px 0px;} .iti-flag.om { height: 10px; background-position: -3877px 0px;} .iti-flag.pa { height: 14px; background-position: -3899px 0px;} .iti-flag.pe { height: 14px; background-position: -3921px 0px;} .iti-flag.pf { height: 14px; background-position: -3943px 0px;} .iti-flag.pg { height: 15px; background-position: -3965px 0px;} .iti-flag.ph { height: 10px; background-position: -3987px 0px;} .iti-flag.pk { height: 14px; background-position: -4009px 0px;} .iti-flag.pl { height: 13px; background-position: -4031px 0px;} .iti-flag.pm { height: 14px; background-position: -4053px 0px;} .iti-flag.pn { height: 10px; background-position: -4075px 0px;} .iti-flag.pr { height: 14px; background-position: -4097px 0px;} .iti-flag.ps { height: 10px; background-position: -4119px 0px;} .iti-flag.pt { height: 14px; background-position: -4141px 0px;} .iti-flag.pw { height: 13px; background-position: -4163px 0px;} .iti-flag.py { height: 11px; background-position: -4185px 0px;} .iti-flag.qa { height: 8px; background-position: -4207px 0px;} .iti-flag.re { height: 14px; background-position: -4229px 0px;} .iti-flag.ro { height: 14px; background-position: -4251px 0px;} .iti-flag.rs { height: 14px; background-position: -4273px 0px;} .iti-flag.ru { height: 14px; background-position: -4295px 0px;} .iti-flag.rw { height: 14px; background-position: -4317px 0px;} .iti-flag.sa { height: 14px; background-position: -4339px 0px;} .iti-flag.sb { height: 10px; background-position: -4361px 0px;} .iti-flag.sc { height: 10px; background-position: -4383px 0px;} .iti-flag.sd { height: 10px; background-position: -4405px 0px;} .iti-flag.se { height: 13px; background-position: -4427px 0px;} .iti-flag.sg { height: 14px; background-position: -4449px 0px;} .iti-flag.sh { height: 10px; background-position: -4471px 0px;} .iti-flag.si { height: 10px; background-position: -4493px 0px;} .iti-flag.sj { height: 15px; background-position: -4515px 0px;} .iti-flag.sk { height: 14px; background-position: -4537px 0px;} .iti-flag.sl { height: 14px; background-position: -4559px 0px;} .iti-flag.sm { height: 15px; background-position: -4581px 0px;} .iti-flag.sn { height: 14px; background-position: -4603px 0px;} .iti-flag.so { height: 14px; background-position: -4625px 0px;} .iti-flag.sr { height: 14px; background-position: -4647px 0px;} .iti-flag.ss { height: 10px; background-position: -4669px 0px;} .iti-flag.st { height: 10px; background-position: -4691px 0px;} .iti-flag.sv { height: 12px; background-position: -4713px 0px;} .iti-flag.sx { height: 14px; background-position: -4735px 0px;} .iti-flag.sy { height: 14px; background-position: -4757px 0px;} .iti-flag.sz { height: 14px; background-position: -4779px 0px;} .iti-flag.ta { height: 10px; background-position: -4801px 0px;} .iti-flag.tc { height: 10px; background-position: -4823px 0px;} .iti-flag.td { height: 14px; background-position: -4845px 0px;} .iti-flag.tf { height: 14px; background-position: -4867px 0px;} .iti-flag.tg { height: 13px; background-position: -4889px 0px;} .iti-flag.th { height: 14px; background-position: -4911px 0px;} .iti-flag.tj { height: 10px; background-position: -4933px 0px;} .iti-flag.tk { height: 10px; background-position: -4955px 0px;} .iti-flag.tl { height: 10px; background-position: -4977px 0px;} .iti-flag.tm { height: 14px; background-position: -4999px 0px;} .iti-flag.tn { height: 14px; background-position: -5021px 0px;} .iti-flag.to { height: 10px; background-position: -5043px 0px;} .iti-flag.tr { height: 14px; background-position: -5065px 0px;} .iti-flag.tt { height: 12px; background-position: -5087px 0px;} .iti-flag.tv { height: 10px; background-position: -5109px 0px;} .iti-flag.tw { height: 14px; background-position: -5131px 0px;} .iti-flag.tz { height: 14px; background-position: -5153px 0px;} .iti-flag.ua { height: 14px; background-position: -5175px 0px;} .iti-flag.ug { height: 14px; background-position: -5197px 0px;} .iti-flag.um { height: 11px; background-position: -5219px 0px;} .iti-flag.un { height: 14px; background-position: -5241px 0px;} .iti-flag.us { height: 11px; background-position: -5263px 0px;} .iti-flag.uy { height: 14px; background-position: -5285px 0px;} .iti-flag.uz { height: 10px; background-position: -5307px 0px;} .iti-flag.va { height: 15px; background-position: -5329px 0px;} .iti-flag.vc { height: 14px; background-position: -5346px 0px;} .iti-flag.ve { height: 14px; background-position: -5368px 0px;} .iti-flag.vg { height: 10px; background-position: -5390px 0px;} .iti-flag.vi { height: 14px; background-position: -5412px 0px;} .iti-flag.vn { height: 14px; background-position: -5434px 0px;} .iti-flag.vu { height: 12px; background-position: -5456px 0px;} .iti-flag.wf { height: 14px; background-position: -5478px 0px;} .iti-flag.ws { height: 10px; background-position: -5500px 0px;} .iti-flag.xk { height: 15px; background-position: -5522px 0px;} .iti-flag.ye { height: 14px; background-position: -5544px 0px;} .iti-flag.yt { height: 14px; background-position: -5566px 0px;} .iti-flag.za { height: 14px; background-position: -5588px 0px;} .iti-flag.zm { height: 14px; background-position: -5610px 0px;} .iti-flag.zw { height: 10px; background-position: -5632px 0px;} .iti-flag { height: 15px; box-shadow: 0px 0px 1px 0px #888; background-image: url("/app/themes/netsparker/resources/assets/scripts/vendor/intl-tel-input/img/flags.png"); background-repeat: no-repeat; background-color: #DBDBDB; background-position: 20px 0;} @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { .iti-flag { background-image: url("/app/themes/netsparker/resources/assets/scripts/vendor/intl-tel-input/img/flags@2x.png");} }.iti-flag.np { background-color: transparent;}</style></head> <body class="white-papers-template-default single single-white-papers postid-43794 application-security-according-to-iso-27001-invicti-ebook sticky-header-enabled app-data index-data singular-data single-data single-white-papers-data single-white-papers-application-security-according-to-iso-27001-invicti-ebook-data"> <!-- Google Tag Manager (noscript) snippet added by Site Kit --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M7R7MXJ" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) snippet added by Site Kit --> <div class="sticky-header-observer"></div> <div class="invicti-bar" hidden> <div class="transition-message"> <a href="https://www.invicti.com/blog/news/netsparker-is-now-invicti-signaling-a-new-era-for-modern-appsec/" title="Netsparker is now Invicti">Netsparker is now Invicti</a> <button class="bar-close" title="Hello bar close button"> <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.5858L1.41422 0L0 1.41422L13.5858 15L0.150757 28.435L1.56497 29.8492L15 16.4142L28.2843 29.6985L29.6985 28.2843L16.4142 15L29.8492 1.56497L28.435 0.150757L15 13.5858Z" fill="currentColor"></path> </svg> </button> </div> </div> <header class="site-header"> <div class="container"> <a href="https://www.invicti.com/get-demo/" class="btn-get-demo">Get a demo</a> <div class="navigation-header"> <a href="https://www.invicti.com/" rel="noreferrer"> <img class="logo-icon logo top-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo sticky-logo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <img class="logo-icon logo mobile-logo" src="https://cdn.invicti.com/branding/invicti-logo-bone.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="100" height="28" /> <span class="top-slogan">AppSec with Zero Noise</span> <img class="logo-icon mobile-logo-icon" src="https://cdn.invicti.com/branding/invicti-logo-icon.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="32" height="32" /> </a> <a href="https://www.invicti.com/get-demo/" class="sticky-header-btn">Get a demo</a> <svg class="navbar-toggle navbar-toggle-open" xmlns="http://www.w3.org/2000/svg" width="22" height="13" fill="none"><path fill="black" fill-rule="evenodd" d="M22 0H0v3h22V0Zm0 10H0v3h22v-3Z" clip-rule="evenodd"/></svg> <svg class="navbar-toggle navbar-toggle-close" xmlns="http://www.w3.org/2000/svg" width="17" height="17" fill="none"><path fill="black" fill-rule="evenodd" d="M9 6.718 2.282 0 .162 2.121 6.878 8.84.16 15.556l2.121 2.122L9 10.96l6.717 6.718 2.122-2.122L11.12 8.84 17.84 2.12 15.718 0 9 6.718Z" clip-rule="evenodd"/></svg> </div> <nav id="site-navigation" class="primary-menu-wrapper navigation-menu" aria-label="Main Navigation"> <a href="https://www.invicti.com/get-demo/" class="btn">Get a demo</a> <ul id="primary-menu" class="primary-menu"><li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-14"><a href="#">Product</a> <ul class="sub-menu level--1"> <li id="menu-item-55161" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55161"><a href="https://www.invicti.com/product/">Web Application Security</a></li> <li id="menu-item-15" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15"><a href="https://www.invicti.com/product/api-security/">API Security</a></li> <li id="menu-item-16" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-16"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-55889" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55889"><a href="https://www.invicti.com/product/dast/">DAST</a></li> <li id="menu-item-55937" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55937"><a href="https://www.invicti.com/product/sast/">SAST</a></li> <li id="menu-item-100773" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100773"><a href="https://www.invicti.com/product/sca/">SCA</a></li> <li id="menu-item-100774" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100774"><a href="https://www.invicti.com/product/container-security/">Container Security</a></li> </ul> </li> <li id="menu-item-18" class="solution menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-18"><a href="#">Why Us?</a> <ul class="sub-menu level--1"> <li id="menu-item-394" class="has-3rd-level menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-394"><a href="#">Solutions</a> <ul class="sub-menu level--2"> <li id="menu-item-48" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-48"><a href="#">Industries</a> <ul class="sub-menu level--3"> <li id="menu-item-19" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-19"><a href="https://www.invicti.com/solutions/it-and-telecom/">IT &#038; Telecom</a></li> <li id="menu-item-20" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-20"><a href="https://www.invicti.com/solutions/government/">Government</a></li> <li id="menu-item-21" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-21"><a href="https://www.invicti.com/solutions/financial-services/">Financial Services</a></li> <li id="menu-item-22" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-22"><a href="https://www.invicti.com/solutions/higher-education/">Education</a></li> <li id="menu-item-23" class="industries menu-item menu-item-type-custom menu-item-object-custom menu-item-23"><a href="https://www.invicti.com/solutions/healthcare/">Healthcare</a></li> </ul> </li> <li id="menu-item-49" class="menu-col menu-col1 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-49"><a href="#">Roles</a> <ul class="sub-menu level--3"> <li id="menu-item-24" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-24"><a href="https://www.invicti.com/solutions/cto-ciso/">CTO &#038; CISO</a></li> <li id="menu-item-25" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-25"><a href="https://www.invicti.com/solutions/engineering-manager/">Engineering Manager</a></li> <li id="menu-item-26" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-26"><a href="https://www.invicti.com/solutions/security-engineer/">Security Engineer</a></li> <li id="menu-item-27" class="roles menu-item menu-item-type-custom menu-item-object-custom menu-item-27"><a href="https://www.invicti.com/solutions/devsecops/">DevSecOps</a></li> </ul> </li> </ul> </li> <li id="menu-item-402" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-402"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparison</a></li> <li id="menu-item-401" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-401"><a href="https://www.invicti.com/case-studies/">Case studies</a></li> <li id="menu-item-400" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-400"><a href="https://www.invicti.com/customers/">Customers</a></li> <li id="menu-item-399" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-399"><a href="https://www.invicti.com/testimonials/">Testimonials</a></li> </ul> </li> <li id="menu-item-28" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-28"><a href="https://www.invicti.com/pricing/">Pricing</a></li> <li id="menu-item-29" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-29"><a href="#">About Us</a> <ul class="sub-menu level--1"> <li id="menu-item-395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-395"><a href="https://www.invicti.com/about/">Our Story</a></li> <li id="menu-item-398" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-398"><a href="https://www.invicti.com/blog/news/">In the news</a></li> <li id="menu-item-397" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-397"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-396" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-396"><a href="https://www.invicti.com/contact/">Contact us</a></li> </ul> </li> <li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-30"><a href="#">Resources</a> <ul class="sub-menu level--1"> <li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-31"><a href="https://www.invicti.com/blog/">Blog</a></li> <li id="menu-item-33" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-33"><a href="https://www.invicti.com/white-papers/">White Papers</a></li> <li id="menu-item-10430" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10430"><a href="https://www.invicti.com/webinars/">Webinars</a></li> <li id="menu-item-56654" class="new-promotion menu-item menu-item-type-post_type menu-item-object-page menu-item-56654"><a href="https://www.invicti.com/podcasts/">Podcasts</a></li> <li id="menu-item-27789" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27789"><a href="https://www.invicti.com/learn/">Invicti Learn</a></li> <li id="menu-item-34" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-34"><a href="https://www.invicti.com/resources/">Resource Library</a></li> <li id="menu-item-37" class="partners-custom menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-37"><a href="#">Partners</a> <ul class="sub-menu level--2"> <li id="menu-item-27215" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27215"><a href="https://www.invicti.com/partners/">Channel</a></li> <li id="menu-item-27218" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-27218"><a href="https://www.invicti.com/clp/managed-security-service-provider/">MSSP</a></li> </ul> </li> <li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-38"><a href="https://www.invicti.com/support/">Support</a></li> </ul> </li> </ul> </nav><!-- #site-navigation--> </div> </header><!-- .site-header--> <div class="container flex relative"> <div class="mobile-trigger"> <div> <span> <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 20 20" height="18px" viewBox="0 0 20 20" width="18px" fill="currentColor"> <g> <rect fill="none" height="20" width="20" x="0" /> </g> <g> <g> <polygon points="5.06,5 4,6.06 7.94,10 4,13.94 5.06,15 10.06,10" /> <polygon points="11,5 9.94,6.06 13.88,10 9.94,13.94 11,15 16,10" /> </g> </g> </svg> </span> M<br>E<br>N<br>U </div> </div> <aside class="sidebar"> <div class="sidebar-home-link hidden md:block"> <a href="https://www.invicti.com/white-papers/"> <svg viewBox="0 0 32 28.12" width="32" height="28" xmlns="http://www.w3.org/2000/svg" class="svg-arrow-icon"> <path d="M14.615,27.905l1.26-1.26c0.3-0.3,0.3-0.78,0-1.08l-9.86-9.85h25.24c0.42,0,0.76-0.34,0.76-0.76v-1.78 c0-0.42-0.34-0.76-0.76-0.76H6.015l9.85-9.85c0.3-0.3,0.3-0.78,0-1.08l-1.26-1.26c-0.3-0.3-0.78-0.3-1.08,0l-13.3,13.3 c-0.3,0.3-0.3,0.78,0,1.08l13.3,13.3C13.835,28.195,14.315,28.195,14.615,27.905z"> </path> </svg> All White Papers </a> </div> <div class="sidebar-content"> <div class="sidebar-home-link block md:hidden"> <a href="https://www.invicti.com/white-papers/"> <svg viewBox="0 0 32 28.12" width="32" height="28" xmlns="http://www.w3.org/2000/svg" class="svg-arrow-icon"> <path d="M14.615,27.905l1.26-1.26c0.3-0.3,0.3-0.78,0-1.08l-9.86-9.85h25.24c0.42,0,0.76-0.34,0.76-0.76v-1.78 c0-0.42-0.34-0.76-0.76-0.76H6.015l9.85-9.85c0.3-0.3,0.3-0.78,0-1.08l-1.26-1.26c-0.3-0.3-0.78-0.3-1.08,0l-13.3,13.3 c-0.3,0.3-0.3,0.78,0,1.08l13.3,13.3C13.835,28.195,14.315,28.195,14.615,27.905z"> </path> </svg> All White Papers </a> </div> <div class="sidebar-heading"> <h3>Table of Contents</h3> <span class="close-nav"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" class="ai ai-Cross"> <path d="M20 20L4 4m16 0L4 20" /> </svg> </span> </div> <div id="toc"> </div> <div class="subscribe-block"> <div id="sep-67b30a1a52120" class="separator-block"></div> <div id="ct-67b30a1a527ab" class="invicti-block text-block"> <h5>Download this White Paper as a PDF</h5> </div> <div id="form_1172_1" class="invicti-block marketo-form whitepapers-subscribe-block hide-labels" data-munchkinid="923-HQB-396" data-formid="1172" data-currentStep="0" data-successurl="https://cdn.invicti.com/app/uploads/2023/05/09141655/appsec-iso-27001-ebook-invicti.pdf" data-newtab="" data-overlay="" data-buttonText="" data-event-name="1172-Global Content Single Step" data-university-check="" data-linkedin-conversion-id=""> <div class="loading-marketo">loading the form...</div> <script src="//go2.invicti.com/js/forms2/js/forms2.min.js" defer></script> <form method="POST" class="ns-form" data-formInstance="form-1" data-mktoformid="1172"></form> <p class="privacy">Your information will be kept <u><a href="https://www.invicti.com/privacy-policy/" rel="noreferrer" target="_blank">private</a></u> </p> </div> </div> </div> </aside> <div class="entry-content col-span-9"> <div class="sub-title"> White Paper </div> <div class="title"> <h1>Application security according to ISO 27001</h1> </div> <p class="has-text-align-center"><em>A guide to applying ISO 27001/27002 recommendations to secure in-house and outsourced application development</em></p> <p></p> <div class="wp-block-image is-style-default"> <figure class="aligncenter size-full"><a href="https://www.invicti.com/webinars/new-iso27001-requirements-for-a-secure-sdlc-with-vulnerability-scanning/"><picture><source srcset="https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook.webp 800w,https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook-300x94.webp 300w,https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook-768x240.webp 768w" sizes="(max-width: 800px) 100vw, 800px" type="image/webp"><img src="https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook.png" height="250" width="800" srcset="https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook.png 800w, https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook-300x94.png 300w, https://cdn.invicti.com/app/uploads/2023/05/12110449/ISO-webinar-promo-banner-ebook-768x240.png 768w" sizes="(max-width: 800px) 100vw, 800px" class="wp-image-43815 sp-no-webp" alt="" fetchpriority="high" > </picture></a></figure></div> <h2 class="wp-block-heading">Executive summary</h2> <p>Information security professionals are well aware of the importance of ISO 27001 compliance in demonstrating an organization’s ability to secure its data. But where does application security come into play in the current compliance framework? With cyber threats constantly evolving and becoming ever more sophisticated and pervasive, relying on traditional network security measures is no longer enough to protect your data and systems. Accordingly, application security has become a crucial component of ISO 27001 compliance, particularly in the recently updated 2022 version – but the updated standard can also provide more general insights and best practices.&nbsp;</p> <p>Incorporating application security measures into your broader infosec strategy can help mitigate the risks posed by vulnerabilities across your software, and web applications in particular. This includes everything from enforcing secure coding practices during development to integrating security testing into the software development lifecycle (SDLC) and performing vulnerability scanning on all your web assets. To make this a reality, technical solutions must be accompanied by the right policies and procedures to ensure that security is baked into every aspect of your software development process, running from secure design principles right through to managing third-party code.</p> <p>In this ebook, we dive deeper into the place of application security in the current ISO 27001 standard. We’ll explore some of the key challenges that organizations face when planning and implementing application security controls, and provide practical guidance on how to overcome them. Whether you’re involved in ensuring ISO 27001 compliance or are simply looking to the standard for best practices on securing application development, this ebook provides insights and actionable strategies to help you protect your organization’s data in line with the latest ISO standards for information security management.</p> <p>Apart from vulnerability scanning, which is now a crucial consideration for ISO 27001 compliance, you will also learn about the importance of other aspects of application security, including:</p> <ul class="wp-block-list"> <li>Testing throughout the software development lifecycle to ensure that security controls are effective and properly implemented</li> <li>Implementing secure coding practices to reduce the risk of vulnerabilities being introduced during development</li> <li>Ensuring that third-party software and code used in applications are secure and do not introduce vulnerabilities</li> </ul> <h2 class="wp-block-heading">ISO 27001:2022 puts application security front and center</h2> <p>In October 2022, ISO 27001 was updated for the first time since 2013. Bringing information security management in line with the modern realities of software development meant defining security controls that encompass agile workflows and cloud-based environments across the entire SDLC.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>The October 2022 updates to ISO 27001, the first since 2013, recognize technological changes such as the rise of cloud computing and agile development.</li> <li>For application development and security, the standard now defines controls that encompass the full software development life cycle for the first time.</li> <li>Updated security controls specify security testing at multiple points during development and after deployment, making vulnerability scanning a practical necessity.</li> </ul> </blockquote> <p>In response to unrelenting threats to their increasingly web-based software infrastructure, organizations need to build cybersecurity management systems that reach all the way back into software development practices to ensure that the applications they build are inherently more secure. To that end, the updated ISO 27001 information security, cybersecurity, and privacy protection standard (and its companion document ISO 27002) now provides a framework for incorporating development security into the wider information security strategy. The previous 14 information security categories have been reorganized into four (People, Organizational, Technological, and Physical), and for the first time, the standard directly addresses the full software development life cycle.</p> <h3 class="wp-block-heading"><strong>What’s new in ISO 27001:2022</strong></h3> <p>The main text of the ISO 27001 standard describes in broad strokes the goals and characteristics of an overarching secure management system, while the annex lists in ISO 27002 describe in detail the security controls (processes, policies, and logical controls) that organizations can use to achieve their cybersecurity goals. Building on the <em>Software Development Environment</em> control from 2013, the 2022 edition reorganizes multiple granular controls within a newly created SDLC control.&nbsp;&nbsp;</p> <p>Many of the new control requirements were prompted by innovations in both technology and cyberattacks over the past decade. For example, among the standard’s new requirements is one for defining security responsibilities between a cloud provider and an organization – one that would have had limited applicability nine years ago. Other new controls for 2022 include:</p> <ul class="wp-block-list"> <li>Building threat intelligence by collecting and analyzing data about existing or emerging threats</li> <li>Ensuring IT departments are prepared for business continuity</li> <li>Continuously monitoring physical premises to prevent unauthorized access</li> <li>Deleting stored information when no longer needed</li> <li>Masking/encrypting data to limit exposure of sensitive information</li> <li>Monitoring networks, systems, and applications for deviations from a defined baseline of normal activities</li> <li>Restricting access to external websites that may compromise data</li> </ul> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“The 2022 version is long overdue, especially because it provides so much more value when it comes to the framework organizations need to protect today’s information technologies.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h3 class="wp-block-heading"><strong>Secure SDLC controls</strong></h3> <p>The biggest impact of the updated standard for software development teams is that the new control for secure SDLC wraps a number of previous controls into a coherent set of requirements for the software life cycle. Specifically, ISO 27002 lists the following as requirements necessary for a secure SDLC and then links to one or more controls that expand on each requirement:</p> <ul class="wp-block-list"> <li>Separating development, test, and production environments</li> <li>Defining security requirements in the specification and design phase</li> <li>Applying secure system architecture and engineering principles</li> <li>Performing system and security testing on deployed code, such as regression testing, code scanning, and penetration tests</li> <li>Using project management principles to address risks at any stage in the SDLC</li> <li>Defining secure coding guidelines for each programming language</li> <li>Building developer expertise in secure coding techniques and in finding and fixing vulnerabilities</li> <li>Creating secure repositories with restricted access to source code</li> <li>Securely protecting software, hardware, services, and network configurations</li> <li>Setting up secure version control with formal rules for managing changes to existing systems</li> <li>Applying security requirements to any outsourced development</li> </ul> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“Everything in the updated standard represents practices that every good software engineering shop should be doing, but very few are doing <em>all</em> of these things.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <p>While many of the listed controls were already included in the older version of the standard (if scattered among multiple categories), the secure coding control is new. This specifies activities and best practices for establishing a secure development environment, defining and following coding standards, and continually maintaining the security of production code. Additionally, the standard requires organizations to hold third-party and open-source software to the same coding standards as they use internally.&nbsp;&nbsp;</p> <h3 class="wp-block-heading"><strong>Vulnerability scanning now a compliance necessity</strong></h3> <p>Even assuming the strictest design and coding practices, vulnerabilities can still creep into an application at multiple stages of the SDLC. To address this, the standard now emphasizes vulnerability scanning both during development and testing and after deployment. In addition to the overall SDLC control, there are two controls that directly call out vulnerability testing:<br></p> <ul class="wp-block-list"> <li><strong>Management of Technical Vulnerability:</strong> Specifies that the organization’s exposure to attacks should be assessed and remedied. To accomplish this, the control recommends using vulnerability scanning tools as well as penetration testing.&nbsp;</li> <li><strong>Security Testing in Development and Acceptance:</strong> Recommends performing vulnerability scanning and penetration testing throughout the SDLC to verify that security requirements have been met.&nbsp;</li> </ul> <p>Four main types of application security testing tools are in common use and work synergistically: software composition analysis (<a href="https://www.invicti.com/learn/software-composition-analysis-sca/">SCA</a>), static application security testing (<a href="https://www.invicti.com/learn/static-application-security-testing-sast/">SAST</a>), interactive application security testing (<a href="https://www.invicti.com/learn/interactive-application-security-testing-iast/">IAST</a>), and dynamic application security testing (<a href="https://www.invicti.com/learn/dynamic-application-security-testing-dast/">DAST</a>). SCA, SAST, and IAST look for vulnerabilities on the code side, with SCA checking for known vulnerable components. DAST performs black-box testing on a running application, allowing it to be used both during development and after deployment.</p> <p>The unique advantage of DAST tools is that they can be <a href="https://www.invicti.com/white-papers/security-at-the-speed-of-software-dast-in-the-sdlc/">incorporated into the SDLC</a> and the continuous integration/continuous deployment (CI/CD) workflows that are the backbone of DevOps. DAST is also technology-agnostic to scan any type of web application, service, or API. Additionally, advanced DAST tools can discover web assets in the crawling phase as well as identify outdated technology stack components, including runtimes, frameworks, databases, libraries, and web servers.&nbsp;</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“The ISO standards tell you what to do but not how to do it. Any vulnerability and penetration testing method would be acceptable, but the automated capabilities that DAST brings to the table will lead most organizations towards DAST tools.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h2 class="wp-block-heading"><strong>Adopting a security mindset from design to deployment</strong></h2> <p>The current ISO 27001 edition clearly states that security must be a consideration all across the software development lifecycle, including calling out “security in the software development methodology” and “security requirements in the specification and design phase.” While there is no one-size-fits-all set of workflows and goals, incorporating security best practices all through design and implementation is crucial to prevent vulnerabilities that leave web applications open to attack.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>ISO 27001 outlines a roadmap to incorporate security considerations into the entire development workflow and infrastructure.</li> <li>Embedding systematic security testing throughout the pipeline can minimize the number of vulnerabilities that make it into production.</li> <li>Collaboration among developers, security teams, and project management is vital to integrate application security as a core aspect of development rather than an add-on.</li> </ul> </blockquote> <h3 class="wp-block-heading"><strong>A security-first approach</strong></h3> <p>Infusing security into application specifications and development workflows requires a deliberate plan since bolting on security at a later stage will likely lead to an insecure final product. From the initial design phase, the security workflow should be well-documented to track progress, flag issues, and document improvements. The design process may start with asking basic risk assessment questions:</p> <ul class="wp-block-list"> <li>How will user accounts be protected and encrypted?</li> <li>Will the user require a password and, if so, what kinds of passwords are acceptable?</li> <li>Does accessing accounts require multifactor authentication?</li> </ul> <p>Initially, software engineers can answer those fundamental questions by defining security requirements that, for example, require strong passwords during account creation or enable two-factor authentication by default.&nbsp;</p> <p>As development goes on, the initial answers to such questions may become more complex and need to factor in vulnerabilities specific to the type of application or the way it’s deployed. Notably, this may mean paying special attention to designing, documenting, and testing application program interfaces (APIs) for cloud-based applications. Vague security goals or poor threat assessment can lead to extra work and delays as teams struggle to address unclear security concerns or deal with the results of security testing that was brought in too late in the process.</p> <p>A security-first approach is also important during code reviews to minimize the risk of new or modified code adding new vulnerabilities. Code reviews that emphasize security also create opportunities for application developers to share knowledge and best practices with the rest of the team, which can strengthen the security of future designs.</p> <h3 class="wp-block-heading"><strong>Security in agile development workflows</strong></h3> <p>The most common development workflow used today is agile and incremental, replacing the traditional waterfall methods that typically relied on an isolated testing phase performed after development work was complete. If they are to be effective, agile workflows require ongoing collaboration between developers, security teams, and other stakeholders to ensure that security is a permanent part of the project from day one. In fact, this is the only way to ensure application security in sprint-oriented DevOps environments where stopping to wait for test results and then backtracking to remedy issues is not an option.</p> <p>To fold security into agile development without compromising release schedules, tools and processes for security testing and issue remediation need to be vetted and set up before coding (let alone testing) even begins. ISO 27001 now calls for vulnerability scanning throughout the SDLC, and while there are many approaches and tool combinations that can satisfy this requirement, the versatility of modern DAST solutions can be a particular boon. When integrated with DAST, an agile workflow enables web apps to be developed and updated continuously without compromising security or slowing down release cycles.&nbsp;</p> <p>Crucially, early dynamic testing gives developers ample time to discover and fix vulnerabilities before they become tougher and more expensive problems. Organizations can’t afford to wait until release to test their web apps for vulnerabilities, so security must be “designed and implemented within the secure development life cycle of software and systems,” as the standard puts it.</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“CISOs and security managers are being bombarded with tasks and initiatives. Having a security strategy is crucial to the success of your security program.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h2 class="wp-block-heading"><strong>Secure coding practices</strong></h2> <p>The updated ISO 27001 information security standard includes compliance requirements that call for developer education as the foundation of application security. By combining educational efforts with policies and tools to consistently enforce secure coding practices, organizations have a better chance of preventing vulnerabilities from being introduced in the first place.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>ISO 27001:2022 defines guidelines for developing secure code, with a special emphasis on developer education.&nbsp;</li> <li>To be effective, developer security education needs to focus on practical issues based around the most common software security weaknesses.</li> <li>Motivating and empowering developers to create secure code remains the main challenge.</li> </ul> </blockquote> <p>Winston Churchill once said, “Those that fail to learn from history are doomed to repeat it.” If Churchill were a chief security officer today, he might say, “Those that don’t learn to write secure code are doomed to repeatedly get the same vulnerabilities.” While good software security testing can uncover such vulnerabilities, organizations could save a lot of the time and money spent on fixing issues if they developed more secure code in the first place.</p> <p>Research shows that <a href="https://www.linuxfoundation.org/wp-content/uploads/2020FOSSContributorSurveyReport_121020.pdf">developer security education is lacking</a>, and organizations need to urgently address this not only to minimize risk but also to comply with the current ISO 27001/27002 requirements. The standard clearly states that “secure coding principles should be applied to software development” and lays out an extensive set of requirements that apply to writing secure code.&nbsp;</p> <p>The ISO standard separates secure coding requirements into three phases (planning, during coding, and review and maintenance), also calling for implementing these practices throughout the SDLC. Further, secure coding principles must apply not only to in-house development but also to any open-source, third-party, and outsourced code. To do this, organizations need to be aware of the real-world threats they face and understand how software weaknesses can open the door to attackers.</p> <h3 class="wp-block-heading"><strong>Phase 1: Planning and before coding</strong></h3> <p>ISO 27002 advises that the planning phase be used to draw up principles and expectations for secure coding for both in-house and outsourced development. Organizations should pay special attention to establishing developer competence in creating secure code. This will likely require developer training.</p> <p>The standard also advises that development tools be regularly updated and properly configured to help enforce the coding standards. This includes defining strict access rights to ensure the privacy and security of code while it’s being written. Threat modeling should play an integral role in the architecture and design of the application. This could entail defining use cases where the system is attacked or otherwise compromised.</p> <h3 class="wp-block-heading"><strong>Phase 2: During coding</strong></h3> <p>The ISO standard mandates defining “secure coding practices specific to the programming languages and techniques being used” and “prohibiting the use of insecure design techniques.” Overall, secure coding practices span all levels of development. Some are language-independent, others, such as those related to proper memory management, only apply to C or C++, and others still apply to interpreted rather than compiled languages. Crucially, some are specific to web applications. One overriding best practice is to thoroughly validate any input retrieved from the user or an external source. Failure to validate incoming data opens the door to attacks such as SQL injection, cross-site scripting (XSS), and server-side request forgery (SSRF).&nbsp;</p> <p>Other common weaknesses result from failed or insecure authentication of users. One cardinal rule is not to store passwords in a program where they can be read by an attacker. Instead, passwords should be stored in an external encrypted file or (preferably) only as hashes. Other errors include improper access control and failure to encrypt sensitive data. This can expose private, financial, or corporate data. Failure to encrypt sensitive personal data is not only a weakness, but it also can be illegal. ISO recommends applying the principle of least privilege, that is granting only the lowest level of access required to do a job.&nbsp;&nbsp;</p> <p>As an ongoing check, the ISO standard now requires at least SAST during development to verify that the code does not contain known security weaknesses and DAST later in the SDLC to catch dynamic issues that static analysis cannot find. Integrating these tools into the development pipeline allows security testing and remediation to become a routine part of development.&nbsp;</p> <h3 class="wp-block-heading"><strong>Phase 3: Review and maintenance</strong></h3> <p>After deployment, the organization should keep monitoring for new threats, comparing these with its production applications, and respond, as needed, with updated coding standards. Attack logs can be a resource for determining necessary code adjustments to protect against new emerging threats. Regular vulnerability scanning and penetration testing can also reveal weaknesses that need to be eliminated from existing and future code.</p> <h3 class="wp-block-heading"><strong>Developer education</strong></h3> <p>In the end, deploying secure applications depends on developers who are both able and willing to write secure code. This is hampered both by inadequate security training offered to developers (or demanded of them, in most organizations) and by the way that security is still often treated as an isolated concern. That separation can lead developers to believe that security simply isn’t their responsibility. While formal training can be useful, in practice, educational resources such as <a href="https://www.invicti.com/learn/">Invicti Learn</a> can be more effective in showing how to write secure code. Invicti Learn explains the most critical vulnerabilities and configuration errors that can open web applications to attacks and provides guidance to remedy and prevent them.&nbsp;&nbsp;</p> <p>Providing hands-on and minimally intrusive educational assets can be crucial for motivating developers to consider security issues in their code, as can empowering developers to take the extra time and effort required to do so. In many cases, delivering features on schedule takes precedence over reworking perfectly functional code for security reasons. To maintain a solid security posture and minimize security issues in the long run, organizations need to establish a culture and process where security is an inherent part of software quality and where development teams are fully supported in all efforts to eliminate application vulnerabilities.</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“Organizations need to put a lot of effort into developer education, but even more important than education is convincing developers that security works in their favor so they don’t treat it as a chore. Attitude is often the biggest problem.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h2 class="wp-block-heading"><strong>Application security testing in the SDLC</strong></h2> <p>Ensuring comprehensive application security in compliance with recent updates to ISO 27001 and 27002 requires the coordinated use of multiple approaches to security testing and application protection.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>ISO 27001:2022 specifically calls for ensuring application security at all points in the software development life cycle.</li> <li>While vulnerability testing is one of the key requirements, a comprehensive approach that combines multiple methodologies is needed for compliance.</li> <li>Several common approaches to application security testing are in use and should be coordinated for maximum coverage.</li> </ul> </blockquote> <p>The web attack surface of modern organizations has grown dramatically during the decade since the last ISO 27001 edition, as has their reliance on web applications to process sensitive data and provide business-critical functionality. At the same time, at least some in-house development is now the norm rather than the exception, lending weight to the well-worn cliché that every organization is now a software organization. Accordingly, ISO 27001:2022 not only mentions the need for security testing throughout the SDLC but states outright: “Security testing processes should be defined and implemented in the development life cycle.”&nbsp;</p> <h3 class="wp-block-heading"><strong>Multiple testing methods for securing the SDLC</strong></h3> <p>The complexity and opacity of modern web application frameworks and architectures mean that security testing needs to cover multiple aspects and phases of development. Many tools are now available to test application security at various stages of the SDLC – some look for weaknesses in code, others test user inputs in a running program, and yet others monitor a running program for possible intrusions. None of these tools is sufficient on its own, and each category of security testing tool has its place in a comprehensive security testing program.</p> <p>To catch vulnerable code constructs and components early on in the coding cycle, before the application is in a runnable state, organizations typically look to static application security testing (SAST) and software composition analysis (SCA) tools. Because both require access to the source code, both types come under the umbrella of white-box (or inside-out) testing.&nbsp;</p> <p>SAST tools scan the source code for potentially insecure syntax and data flows. They come in various shapes and sizes, from lint-type plugins for integrated development environments (IDEs) to standalone analysis programs. Most will integrate directly into build systems and issue-tracking systems to make security testing an integral part of the SDLC rather than an extra step that developers might be tempted to skip. One drawback of SAST tools is that, because they analyze source code but don’t know the developer’s intent, they tend to report a high proportion of false positives that need to be manually dismissed or painstakingly tuned out.&nbsp;</p> <p>SCA tools don’t analyze the source code directly but rather check for vulnerable open-source software components. With open-source software making up, on average, 78% of the code base of all deployed web applications, ensuring that you are not using a component with known vulnerabilities is crucial. Depending on the tool and your specific requirements, SCA may also include license compliance checking to make sure your use of open-source software doesn’t violate company policy or the relevant open-source licenses.</p> <h3 class="wp-block-heading"><strong>Dynamic security testing from first build to production</strong></h3> <p>SAST and SCA tools operate only on the static source code and its components, both for initial coding and for validating software updates in a continuous integration/continuous delivery (CI/CD) environment. Once an application is in a runnable state, whether in a test environment or deployed to a production system, you add dynamic and interactive application security testing into the mix. Both DAST and IAST tools interact with a running web application to detect vulnerabilities and provide runtime insights but differ in the scope of testing and requirements for source code access.</p> <p>DAST tools perform black-box (outside-in) testing that does not require access to the source code, is technology-agnostic, and can be performed on any runnable application or prototype. While historically DAST was only run in staging and production, the integration and automation capabilities of the latest generation of tools allow it to be plugged into the pipeline in much the same way as SAST. The limitation of requiring a running application to test is obviated by web frameworks now providing all the scaffolding to build runnable prototypes from an early stage of development. Depending on the solution, DAST can also incorporate code-level insights provided by interactive security testing.</p> <p>IAST (gray-box) tools cover the middle ground between SAST and DAST to combine elements of dynamic and static testing. The category covers a wide variety of solutions and approaches, from scanner extensions to standalone products, with some requiring code modifications (instrumentation) to extract runtime insights during testing and others being triggered by a DAST scan. An example of a DAST-driven approach that provides true interaction between dynamic analysis and code insights is the Invicti IAST component. This runs as a server-side agent and exchanges information with the DAST scanner throughout the scan process. Notably for this approach, no code modifications are needed, and the performance impact is minimal.</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>&nbsp;“A comprehensive, multi-level and multi-methodology approach is the only way to truly improve the security of the SDLC.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h2 class="wp-block-heading"><strong>Securing development workflows</strong></h2> <p>The updated ISO 27001 standard requires IT organizations to define a comprehensive, overarching information security policy that incorporates the entire development workflow.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>Software development and deployment involve multiple, often complex steps that can create opportunities for malware or vulnerabilities to go undetected in a system.</li> <li>Gaps in security can occur because of lax security enforcement, underappreciation of the possible risks a procedure or IT asset poses, or insufficient security testing coverage.</li> <li>The best protection comes from incorporating the entire development workflow and infrastructure into a detailed IT security plan that is enforced, monitored, and regularly updated.</li> </ul> </blockquote> <p>The most wide-ranging cyberattack on US government agencies and major software companies, namely the 2020 <a href="https://www.invicti.com/blog/web-security/solarwinds-hack-cybersecurity-lessons/">SolarWinds breach</a>, was the result of cyberattackers hijacking part of the software development supply chain of a third-party network monitoring tool vendor. Similar attacks against open-source projects have been successful as well, such as the one involving the NetBeans Java development environment, which for years <a href="https://duo.com/decipher/malware-infects-netbeans-projects-in-software-supply-chain-attack">unwittingly shipped malware</a> that had been introduced into its build system.&nbsp;</p> <p>We will discuss supply-chain security in detail in the next chapter, but it’s only one aspect of a bigger point: every organization that develops software must develop a policy to secure its entire development pipeline. This holds true both for internal and customer-facing software, and covers all platforms and technologies, notably including web applications. ISO 27001 provides a starting point for understanding how to develop security controls and policies for software development as part of the wider information security picture.</p> <p>The standard – specifically its Requirement 6.2 – calls for the development of a comprehensive, overarching information security policy and applicable objectives, “taking into account the information security requirements, results from risk assessment, and treatment.” Objectives should be measurable, monitored, communicated, updated, and made available as documented information. When implementing policy changes, the IT organization must determine “what will be done, what resources will be required, who will be responsible, when it will be completed, and how the results will be evaluated.”</p> <p>As these steps illustrate, the standard is not an abstract normative document but rather a framework that requires active implementation. ISO 27001 makes clear that the implementation of the security policy must be a living process that is properly communicated, enforced, and updated. Such vigilance can help staff spot and immediately address unanticipated gaps in security coverage and staff knowledge.&nbsp;&nbsp;</p> <h3 class="wp-block-heading"><strong>Where does your code come from?</strong></h3> <p>Developers frequently search the web for answers to coding problems they encounter – problems as simple as how to use a data structure in a given language or as complex as how to implement a difficult algorithm. Forums such as StackOverflow are popular for these kinds of discussions, where contributors who answer queries will post the full code intended to remedy the problems at hand. In turn, many developers will copy and paste the supplied code, unchanged, into their product code. With AI tools advancing in leaps and bounds, automatically generated code carries the same risks on an even greater scale.</p> <p>The possibility of unwittingly inserting insecure or downright malicious code is clearly a serious threat. But there are two other hidden risks. The first has to do with licensing: If the copied code comes from an open-source project, then the code is subject to the terms of an open-source license. In the most harmless scenario, this requires a statement distributed with the product acknowledging that some of its code is used under a specific license. However, for the widely used GPL and AGPL licenses, the code of the <em>entire</em> application must be released to all users, which may rule out some commercial usage. Static code analyzers today can spot code that is likely taken from an open-source project, and a policy must be in place to use such tools on a regular basis across the entire codebase to minimize the risk of non-compliance.&nbsp;</p> <p>A related threat arises when developers bring in dynamic dependencies that incorporate third-party code into the application. This is a particularly common practice in JavaScript code in web applications. In this setup, the code is brought into the program every time the application is run. While there is a risk that the code could be modified for malicious purposes, it can also be modified with no evil intent and prevent an application from running correctly or even running at all. In an extreme example, back in 2016, a developer <a href="https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code">deleted from his personal repository a simple 11-line function</a> that enabled characters to be added to the start of a string. Thousands of web applications, including those of several global technology giants, suddenly stopped working until the deleted lines were restored.&nbsp;</p> <h3 class="wp-block-heading"><strong>Have you tested that app in real life?</strong></h3> <p>Developers understand the importance of testing their code and functionality, with unit tests, integration tests, and user-acceptance tests all being established practices. But if security is to leave no gaps, code-level testing must be followed by security checks on running web applications. DAST scanners search for entry points, vulnerabilities, and other weaknesses that could be exploited by malicious actors. While DAST tools can and should be run after deployment, restricting them to this stage could leave a window for attacks against new releases. The best practice is thus to also test each web app in a staging environment that mirrors the production environment as closely as possible to find a DAST tool to search for vulnerabilities before moving into production.</p> <p>Spotting and eliminating application security gaps starts with secure coding practices, code reviews, and static analysis. Then dynamic testing comes in, overlapping with static testing in the development phase and (ideally) progressively reducing the number of vulnerabilities at each subsequent stage. But even after passing all security tests in staging, web applications still need regular scanning in production, for two main reasons. Firstly, the production environment may be configured differently than in staging and is likely to change even more as time goes by. Secondly, and more importantly, new vulnerabilities and attack techniques are discovered daily, so it’s crucial to regularly rescan your entire web environment with a well-maintained tool that tests for all the latest tricks available to attackers.</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“Companies nowadays are required to adopt best practices around SDLC, including software supply chain management. Security is as strong as it&#8217;s weakest link, thus obtaining a secure pipeline is fundamental in today&#8217;s risk appetite.”</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h2 class="wp-block-heading"><strong>Software supply chain security</strong></h2> <p>The majority of your web application code is most likely written by third parties – but you’re still the one responsible for security. ISO 27001 requirements and guidelines for information security management also include securing third-party software and cloud infrastructure.</p> <blockquote class="wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow"> <p><strong>In a nutshell</strong></p> <ul class="wp-block-list"> <li>ISO 27001 includes requirements to negotiate responsibilities with an outsourcing supplier for delivering secure code.</li> <li>Organizations are required to test the security of third-party components even with no access to the source code, making DAST and manual penetration testing essential.&nbsp;</li> <li>Securing the cloud platforms your applications run on requires a close partnership with the cloud service provider to define and monitor security controls.</li> </ul> </blockquote> <p>It’s no secret that all your code is not your own, with the vast majority of web application code consisting of open-source and third-party libraries (including any outsourced code) alongside a small percentage of code developed in-house. Moreover, not only do you not own all your application code, but there’s a good chance the platform on which the application runs is also made up of third-party software: cloud services, web servers, networking software, and operating systems. And yet, if there’s a data breach, your customers don’t care whether some third party wrote the software that was compromised – they’ll hold you responsible.&nbsp;</p> <p>The collaborative nature of modern software is clearly recognized in ISO 27001, with organizations required to “identify and implement processes and procedures to address security risks associated with the use of products and services provided by suppliers.” Although this is a daunting task, both documents lay out guiding principles for protecting outsourced and third-party code as well as cloud services.&nbsp;</p> <h3 class="wp-block-heading"><strong>Third-party software still needs security testing</strong></h3> <p>It makes good business sense for an organization to use third-party libraries for common tasks such as handling network operations or rendering the user interface. Such pre-written code is often stable, debugged, and ready to run, saving a lot of development and testing effort. But widely-used code can also make an easy target for attackers looking for a big payback on their efforts. Fortunately, the security community continually monitors popular platforms and software for weaknesses or security breaches. ISO recommends that organizations keep an eye on disclosures and apply patches and updates promptly when available. Regression testing must follow to verify that existing code still works as intended.&nbsp;</p> <blockquote class="wp-block-quote is-style-quote-primary is-layout-flow wp-block-quote-is-layout-flow"> <p>“An organization cannot accept third-party software as-is – it must perform security testing. SAST and SCA are a good starting point for open-source code, but for libraries accessed through an API where the source is unavailable, automated DAST and manual penetration testing are the only options.”&nbsp;</p> <cite><em>&#8211; Matthew Sciberras, CISO and VP of Information Security, Invicti</em></cite></blockquote> <h3 class="wp-block-heading"><strong>Guidelines for securing outsourced code</strong></h3> <p>The advantages to outsourcing development are many, but the main advantage is that the outsourcing supplier can contribute skills lacking in your organization. As with code developed in-house, however, that outsourced code can carry security risks. The responsibility for protecting data remains with your organization, so it’s worth looking to ISO 27002 for security best practices for all stages of outsourced development.&nbsp;</p> <p>The first step ISO recommends is researching the outsourcing supplier: its reputation, documentation, and certifications. Given that the supplier will have access to your organization’s data, you should pay special attention to documented security practices.&nbsp;</p> <p>Next, it’s time to negotiate a strong contract. ISO says the contract should clearly delineate the responsibilities of both parties, including non-disclosure agreements where appropriate. The contract should also establish ownership of the completed code and intellectual property. Procedures and policies for secure design, coding, and testing should be written into the contract, with an option to audit those procedures.</p> <p>Access control is another crucial consideration. During development, your organization should provide the appropriate access level for any resources needed by the supplier, and both parties should establish secure procedures for code delivery. Upon termination of the contract (either because the software was delivered or the supplier failed in its obligations), your organization should remove any access rights granted to the supplier, and the supplier should destroy all copies of your data and return any assets. And if at any time the outsourcing supplier becomes aware of a data breach involving its code, it should be contractually obligated to promptly notify your organization and work with you to remedy the situation.</p> <p>Crucially, both the supplier and your organization need to perform security testing. SAST can be used during development because you will have access to the source code, but DAST is also essential both during development and after deployment. Once the code is deployed, you should continue to monitor the supplier’s security procedures and practices to keep up with any reported vulnerabilities affecting third-party software used in the supplier’s code.</p> <h3 class="wp-block-heading"><strong>Security requirements for cloud services and platforms</strong></h3> <p>When it comes to cloud infrastructure, ISO 27002 recommends that you negotiate a dedicated agreement with your cloud service provider to incorporate security. In the agreement, the provider should be required to use industry-standard architecture and infrastructure. It must also protect your organization’s data by applying secure access controls and ensuring appropriate handling for any sensitive data. The provider’s obligations should also include monitoring for intrusions and malware as well as ensuring dedicated support in gathering evidence should a breach occur. If the provider subcontracts any of its services, the same contractual terms must apply to subcontractors. And to cover the entire lifecycle, upon contract termination, the provider must return all data and configuration files to the organization and properly remove your data from its systems.</p> <h2 class="wp-block-heading"><strong>ISO 27001 is for life, not just for certification</strong></h2> <p>No matter how complex their business processes, software environments, and development workflows, organizations bear full responsibility for the security of their data – and that of their customers. With web applications constituting your most exposed attack surface, securing application development and deployment is now a non-negotiable priority for both information security professionals and engineering leaders. While ISO 27001 is most often discussed purely in terms of ensuring compliance and certification, it can also provide valuable high-level insights and guidelines for designing and implementing an effective application security program.</p> <p>One of the biggest changes in the updated 2022 edition of ISO 27001 was to reorganize and spell out controls for ensuring application security all across the software lifecycle, notably requiring security testing at every phase of development and deployment, regardless of where the code originated. This means a comprehensive approach to testing that combines multiple methodologies, including SAST and SCA, and incorporates vulnerability scanning using DAST solutions as the only way to automatically test all running applications, regardless of origin, mode of deployment, or underlying technologies.</p> <p class="ccfg-unique-bc4370-e7">The bottom line is that vulnerabilities cannot be ignored at any point in the software development life cycle. Certainly, identifying and managing all possible risks can be daunting, but when faced with the possibility of an attack that could derail development or, worse, cause a breach for customers of deployed software, testing for vulnerabilities both early and often is more than an obvious solution – it’s the specified standard. <picture><source srcset="https://cdn.invicti.com/app/uploads/2023/05/09092120/invicti-square-purple.webp " type="image/webp"><img src="https://cdn.invicti.com/app/uploads/2023/05/09092120/invicti-square-purple.png" height="16" width="16" class="wp-image-43802 sp-no-webp" alt="" style="width: 16px" > </picture></p> </div> </div> <div class="nav-overlay"></div> <footer class="site-footer"> <div class="container primary-footer"> <div class="company-info-wrapper"> <figure> <img class="logo-icon footerlogo" src="https://cdn.invicti.com/branding/invicti-logo-black.svg" alt="Invicti Logo - The Largest Dynamic Application Security Solutions Provider In The World" width="128" height="36" /> </figure> <div class="social-icons"> <a href="https://twitter.com/InvictiSecurity" aria-label="Twitter" target="_blank" rel="noopener noreferrer" title="Twitter"> <svg xmlns="http://www.w3.org/2000/svg" width="20.616" height="16.969"> <path d="M20.532 2.035a8.514 8.514 0 01-2.085.595c.336-.057.827-.663 1.025-.909a3.838 3.838 0 00.693-1.262c.017-.036.031-.081-.005-.109a.119.119 0 00-.111.009 10.543 10.543 0 01-2.472.946.168.168 0 01-.171-.044 1.845 1.845 0 00-.216-.221 4.377 4.377 0 00-1.2-.734 4.167 4.167 0 00-1.836-.3 4.4 4.4 0 00-1.743.493 4.473 4.473 0 00-1.405 1.148 4.316 4.316 0 00-.84 1.682 4.557 4.557 0 00-.044 1.775c.013.1 0 .112-.085.1A13.2 13.2 0 011.543.881c-.1-.112-.154-.112-.235.009a4.307 4.307 0 00.734 5.089c.167.158.339.315.522.46a4.342 4.342 0 01-1.639-.46c-.1-.062-.149-.026-.158.087a2.622 2.622 0 00.027.486 4.357 4.357 0 002.683 3.473 2.548 2.548 0 00.544.165 4.841 4.841 0 01-1.608.05c-.116-.022-.162.036-.116.149a4.523 4.523 0 003.38 2.829c.154.026.306.026.46.062-.009.014-.018.014-.027.027a5.364 5.364 0 01-2.306 1.223 8.282 8.282 0 01-3.5.449c-.189-.028-.228-.026-.279 0s-.006.076.054.125c.239.158.482.3.729.433a11.571 11.571 0 002.343.936 12.471 12.471 0 0012.106-2.831c2.481-2.465 3.351-5.866 3.351-9.27 0-.133.158-.207.251-.278a8.157 8.157 0 001.648-1.713.518.518 0 00.109-.328v-.018c0-.054 0-.039-.084 0z" fill="currentColor"/> </svg> </a> <a href="https://facebook.com/Invicti-Security-100090617259790/" aria-label="Facebook" target="_blank" rel="noopener noreferrer" title="Facebook"> <svg xmlns="http://www.w3.org/2000/svg" width="11.862" height="22.315"> <path d="M11.085 12.457l.615-4.008H7.854v-2.6a2 2 0 012.26-2.165h1.748V.272a21.277 21.277 0 00-3.1-.271c-3.167 0-5.237 1.92-5.237 5.395v3.055H.003v4.008h3.522v9.69a14.013 14.013 0 002.166.168 14.013 14.013 0 002.166-.168v-9.69z" fill="currentColor"/> </svg> </a> <a href="https://www.linkedin.com/company/invicti-security" aria-label="Linkedin" target="_blank" rel="noopener noreferrer" title="Linkedin"> <svg xmlns="http://www.w3.org/2000/svg" width="20.636" height="20.588"> <path d="M.342 6.834h4.282v13.754H.342zM2.483-.002a2.478 2.478 0 012.478 2.477 2.48 2.48 0 01-2.478 2.481 2.482 2.482 0 01-2.481-2.48A2.48 2.48 0 012.483-.002M7.305 6.834h4.1v1.882h.056a4.5 4.5 0 014.049-2.219c4.329 0 5.125 2.847 5.125 6.551v7.543h-4.271v-6.686c0-1.6-.032-3.648-2.223-3.648-2.226 0-2.564 1.737-2.564 3.53v6.8H7.305z" fill="currentColor"/> </svg> </a> <a href="https://www.invicti.com/blog/feed/" aria-label="RSS Feed" target="_blank" rel="noopener noreferrer" title="RSS Feed"> <svg width="20" height="20" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 6.34887C6.05667 6.08303 9.25 9.2772 8.985 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1.83333 14.3339C2.29357 14.3339 2.66667 13.9608 2.66667 13.5005C2.66667 13.0403 2.29357 12.6672 1.83333 12.6672C1.3731 12.6672 1 13.0403 1 13.5005C1 13.9608 1.3731 14.3339 1.83333 14.3339Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1 1.02553C9.42833 0.583866 14.7508 5.90637 14.3083 14.3339" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <div class="company-info"> <p>Invicti Security Corp <br>1000 N Lamar Blvd Suite 300 <br>Austin, TX 78703, US</p> </div> <div class="copyright hidden-md"> <p>© Invicti 2025</p> </div> </div> <ul id="footer-primary-menu" class="footer-primary-menu"><li id="menu-item-50" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-50"><a href="#">RESOURCES</a> <ul class="sub-menu level--1"> <li id="menu-item-51" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51"><a href="https://www.invicti.com/features/">Features</a></li> <li id="menu-item-52" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-52"><a href="https://www.invicti.com/integrations/">Integrations</a></li> <li id="menu-item-53" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-53"><a href="https://www.invicti.com/plans/">Plans</a></li> <li id="menu-item-54" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-54"><a href="https://www.invicti.com/case-studies/">Case Studies</a></li> <li id="menu-item-55" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55"><a href="https://www.invicti.com/changelogs/">Changelogs</a></li> <li id="menu-item-22395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-22395"><a href="https://www.invicti.com/learn/welcome/">Invicti Learn</a></li> </ul> </li> <li id="menu-item-57" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-57"><a href="#">USE CASES</a> <ul class="sub-menu level--1"> <li id="menu-item-58" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58"><a href="https://www.invicti.com/penetration-testing-software/">Penetration Testing Software</a></li> <li id="menu-item-59" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-59"><a href="https://www.invicti.com/website-security-scanner/">Website Security Scanner</a></li> <li id="menu-item-60" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-60"><a href="https://www.invicti.com/ethical-hacking-software/">Ethical Hacking Software</a></li> <li id="menu-item-61" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-61"><a href="https://www.invicti.com/web-vulnerability-scanner/">Web Vulnerability Scanner</a></li> <li id="menu-item-62" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-62"><a href="https://www.invicti.com/vulnerability-scanner-comparison/">Comparisons</a></li> <li id="menu-item-63" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-63"><a href="https://www.invicti.com/online-web-application-security-scanner/">Online Application Scanner</a></li> </ul> </li> <li id="menu-item-64" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-64"><a href="#">WEB SECURITY</a> <ul class="sub-menu level--1"> <li id="menu-item-70" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-70"><a href="https://www.invicti.com/blog/web-security/false-positives-web-application-security/">The Problem with False Positives</a></li> <li id="menu-item-69" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-69"><a href="https://www.invicti.com/blog/web-security/comparison-commercial-non-commercial-web-application-security-scanner/">Why Pay for Web Scanners</a></li> <li id="menu-item-68" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-68"><a href="https://www.invicti.com/blog/web-security/sql-injection-cheat-sheet/">SQL Injection Cheat Sheet</a></li> <li id="menu-item-67" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-67"><a href="https://www.invicti.com/blog/web-security/getting-started-web-application-security/">Getting Started with Web Security</a></li> <li id="menu-item-66" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66"><a href="https://www.invicti.com/web-vulnerability-scanner/vulnerabilities/">Vulnerability Index</a></li> <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65"><a href="https://www.invicti.com/blog/web-security/content-security-policy/">Using Content Security Policy to Secure Web Applications</a></li> </ul> </li> <li id="menu-item-55407" class="footer-menu-title menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-55407"><a href="#">COMPARISON</a> <ul class="sub-menu level--1"> <li id="menu-item-55410" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55410"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-acunetix/">Acunetix vs. Invicti</a></li> <li id="menu-item-55408" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55408"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-burp-suite/">Burp Suite vs. Invicti</a></li> <li id="menu-item-100775" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-100775"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-checkmarx/">Checkmarx vs. Invicti</a></li> <li id="menu-item-55409" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55409"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-probely/">Probely vs. Invicti</a></li> <li id="menu-item-55411" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55411"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-qualys/">Qualys vs. Invicti</a></li> <li id="menu-item-55412" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55412"><a href="https://www.invicti.com/vulnerability-scanner-comparison/invicti-vs-nessus/">Tenable Nessus vs. Invicti</a></li> </ul> </li> <li id="menu-item-71" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-71"><a href="#">COMPANY</a> <ul class="sub-menu level--1"> <li id="menu-item-72" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-72"><a href="https://www.invicti.com/about/">About Us</a></li> <li id="menu-item-73" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-73"><a href="https://www.invicti.com/contact/">Contact Us</a></li> <li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-74"><a href="https://www.invicti.com/support/">Support</a></li> <li id="menu-item-75" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-75"><a href="https://www.invicti.com/careers/">Careers</a></li> <li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-76"><a href="https://www.invicti.com/resources/">Resources</a></li> <li id="menu-item-77" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-77"><a href="https://www.invicti.com/partners/">Partners</a></li> </ul> </li> </ul> </div> <div class="container copyright-mobile testing-class-here"> © Invicti 2025 </div> <div class="container"> <ul id="footer-bottom-menu" class="footer-bottom-menu"><li id="menu-item-55180" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-55180"><a href="https://www.invicti.com/compliance/">Compliance</a></li> <li id="menu-item-78" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-78"><a href="https://www.invicti.com/legal/">Legal</a></li> <li id="menu-item-79" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-79"><a href="https://www.invicti.com/compliance/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-8973" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-8973"><a href="https://www.invicti.com/compliance/california-privacy-rights/">California Privacy Rights</a></li> <li id="menu-item-80" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-80"><a href="https://www.invicti.com/legal/terms/">Terms of Use</a></li> <li id="menu-item-81" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-81"><a href="https://www.invicti.com/accessibility/">Accessibility</a></li> <li id="menu-item-82" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-82"><a href="https://www.invicti.com/sitemap/">Sitemap</a></li> </ul> </div> </footer> <div class="cookie-notice" id="cookie-notice-bar"> <p> By using this website you agree with our use of cookies to improve its performance and enhance your experience. More information in our <a href="https://www.invicti.com/privacy-policy" rel="noreferrer">Privacy Policy</a>. </p> <button class="cookie-notice-button" title="OK">OK</button> </div><link rel='stylesheet' id='wp-block-library-css' href='https://www.invicti.com/wp/wp-includes/css/dist/block-library/style.min.css' type='text/css' media='all' /> <style id='wp-block-library-inline-css' type='text/css'> .is-style-quote-primary.wp-block-quote{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgb(204 139 219/var(--tw-border-opacity));border-left-width:0;color:rgb(16 24 32/var(--tw-text-opacity));margin-bottom:0;margin-left:2.5rem;padding-left:1.25rem;position:relative}@media (min-width:767px){.is-style-quote-primary.wp-block-quote{border-left-width:5px;margin-left:65px;padding-bottom:.1875rem;padding-left:2.5rem;padding-top:.1875rem}}.is-style-quote-primary.wp-block-quote a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-primary.wp-block-quote cite{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));display:block;font-size:.75rem;font-weight:500;margin-top:.625rem}@media (min-width:576px){.is-style-quote-primary.wp-block-quote cite{font-size:.875rem}}.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(89 23 105/var(--tw-bg-opacity));height:100%;left:-45px;position:absolute;top:0;width:37px}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{--tw-bg-opacity:1;background-color:rgb(204 139 219/var(--tw-bg-opacity));left:-65px;width:21px}}.is-style-quote-primary.wp-block-quote:before{content:"";-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z'/%3E%3C/svg%3E") top/contain no-repeat}@media (min-width:767px){.is-style-quote-primary.wp-block-quote:before{-webkit-mask-position:center;mask-position:center}} .is-style-quote-warning.wp-block-quote,blockquote.warning{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(242 222 222/var(--tw-bg-opacity));border-color:rgb(235 204 209/var(--tw-border-opacity));border-width:1px;color:rgb(169 68 66/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-warning.wp-block-quote a,blockquote.warning a{--tw-text-opacity:1;color:rgb(169 68 66/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-warning.wp-block-quote a:hover,blockquote.warning a:hover{--tw-text-opacity:1;color:rgb(109 36 35/var(--tw-text-opacity))}.is-style-quote-warning.wp-block-quote:before,blockquote.warning:before{--tw-bg-opacity:1;background-color:rgb(169 68 66/var(--tw-bg-opacity));content:"";height:100%;left:17px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -3 24 24'%3E%3Cpath fill='currentColor' d='m12.8 1.613 6.701 11.161c.963 1.603.49 3.712-1.057 4.71a3.213 3.213 0 0 1-1.743.516H3.298C1.477 18 0 16.47 0 14.581c0-.639.173-1.264.498-1.807L7.2 1.613C8.162.01 10.196-.481 11.743.517c.428.276.79.651 1.057 1.096zm-2.22.839a1.077 1.077 0 0 0-1.514.365L2.365 13.98a1.17 1.17 0 0 0-.166.602c0 .63.492 1.14 1.1 1.14H16.7c.206 0 .407-.06.581-.172a1.164 1.164 0 0 0 .353-1.57L10.933 2.817a1.12 1.12 0 0 0-.352-.365zM10 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-9a1 1 0 0 1 1 1v4a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:30px} .is-style-quote-info.wp-block-quote,blockquote.info{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(217 237 247/var(--tw-bg-opacity));border-color:rgb(188 232 241/var(--tw-border-opacity));border-width:1px;color:rgb(49 112 143/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-info.wp-block-quote a,blockquote.info a{--tw-text-opacity:1;color:rgb(49 112 143/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-info.wp-block-quote a:hover,blockquote.info a:hover{--tw-text-opacity:1;color:rgb(19 69 95/var(--tw-text-opacity))}.is-style-quote-info.wp-block-quote:before,blockquote.info:before{--tw-bg-opacity:1;background-color:rgb(49 112 143/var(--tw-bg-opacity));content:"";height:100%;left:20px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' fill='%2331708f'%3E%3Cpath d='M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 128c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.3-32-32 14.3-32 32-32zm40 256h-80c-13.2 0-24-10.7-24-24s10.75-24 24-24h16v-64h-8c-13.25 0-24-10.75-24-24s10.8-24 24-24h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24s-10.7 24-24 24z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:25px} .is-style-quote-tips.wp-block-quote,blockquote.tips{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 254 250/var(--tw-bg-opacity));border-color:rgb(255 243 204/var(--tw-border-opacity));border-width:1px;color:rgb(121 108 16/var(--tw-text-opacity));font-size:1rem;margin-bottom:0;padding:1.25rem 1.5625rem 1.25rem 4rem;position:relative}.is-style-quote-tips.wp-block-quote a,blockquote.tips a{--tw-text-opacity:1;color:rgb(121 108 16/var(--tw-text-opacity));-webkit-text-decoration-line:underline;text-decoration-line:underline}.is-style-quote-tips.wp-block-quote a:hover,blockquote.tips a:hover{--tw-text-opacity:1;color:rgb(77 70 14/var(--tw-text-opacity))}.is-style-quote-tips.wp-block-quote:before,blockquote.tips:before{--tw-bg-opacity:1;background-color:rgb(255 196 0/var(--tw-bg-opacity));content:"";height:100%;left:23px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1536'%3E%3Cpath d='M736 448q0 13-9.5 22.5T704 480t-22.5-9.5T672 448q0-46-54-71t-106-25q-13 0-22.5-9.5T480 320t9.5-22.5T512 288q50 0 99.5 16t87 54 37.5 90zm160 0q0-72-34.5-134t-90-101.5-123-62T512 128t-136.5 22.5-123 62-90 101.5T128 448q0 101 68 180 10 11 30.5 33t30.5 33q128 153 141 298h228q13-145 141-298 10-11 30.5-33t30.5-33q68-79 68-180zm128 0q0 155-103 268-45 49-74.5 87T787 898.5 753 1006q47 28 47 82 0 37-25 64 25 27 25 64 0 52-45 81 13 23 13 47 0 46-31.5 71t-77.5 25q-20 44-60 70t-87 26-87-26-60-70q-46 0-77.5-25t-31.5-71q0-24 13-47-45-29-45-81 0-37 25-64-25-27-25-64 0-54 47-82-4-50-34-107.5T177.5 803 103 716Q0 603 0 448q0-99 44.5-184.5t117-142 164-89T512 0t186.5 32.5 164 89 117 142T1024 448z'/%3E%3C/svg%3E") top/contain no-repeat;-webkit-mask-position:top;mask-position:top;position:absolute;width:20px} .wp-block-group.is-style-group-info{--tw-border-opacity:1;border-color:rgb(250 249 247/var(--tw-border-opacity));border-width:1px;padding:1.5625rem} .is-style-whitepaper-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-top:1rem}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-primary-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}@media (max-width:766px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-whitepaper-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} .is-style-whitepaper-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-group{padding:0!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:0;margin-top:.625rem}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a{color:#1d1c29!important}.is-style-whitepaper-featured-query.wp-block-query li .wp-block-post-title a:hover{color:var(--color-primary-invictipurple)!important}.is-style-whitepaper-featured-query.wp-block-query .wp-block-post-excerpt__excerpt{--tw-text-opacity:1;color:rgb(99 101 105/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-style:normal;font-weight:400;line-height:1.36;padding-bottom:1.875rem;padding-top:1.25rem} .is-style-webinar-primary-query.wp-block-query ul{list-style-type:none;padding-left:0}.is-style-webinar-primary-query.wp-block-query ul li{margin-bottom:2rem}.is-style-webinar-primary-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-featured-image{min-height:160px}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title{font-size:1.125rem;font-style:normal;font-weight:500;margin-bottom:.3125rem;margin-top:1rem}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-primary-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}@media (max-width:766px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:100%}}@media (min-width:767px) and (max-width:991px){.is-style-webinar-primary-query.wp-block-query .wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(50% - .9375em)}} @charset "UTF-8";.is-style-webinar-featured-query.wp-block-query .is-layout-flow{list-style-type:none;padding:0}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-featured-image{margin-left:auto;margin-right:auto;max-width:600px}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.25rem;font-style:normal;font-weight:500;line-height:1.16;margin-bottom:.625rem;margin-top:1.25rem}@media (min-width:767px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{margin-top:0}}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title{font-size:1.625rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity));transition-duration:.3s}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-title a:hover{--tw-text-opacity:1;color:rgb(89 23 105/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt{margin-bottom:1.25rem;margin-top:1.25rem}.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{line-height:1.5}@media (min-width:992px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:.9375rem}}@media (min-width:1200px){.is-style-webinar-featured-query.wp-block-query li .wp-block-post-excerpt p{font-size:1rem}}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more{--tw-text-opacity:1;color:rgb(44 81 189/var(--tw-text-opacity));font-family:Circular XX,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;margin-bottom:0;position:relative}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:hover{--tw-text-opacity:1;color:rgb(60 16 83/var(--tw-text-opacity))}.is-style-webinar-featured-query.wp-block-query li .wp-block-read-more:after{content:"▶";font-size:.875rem;margin-left:.3125rem} .wp-block-code.is-style-code-highlighter>code{border-style:none;padding:.625rem 0}.wp-block-code.is-style-code-highlighter>code .punctuation{--tw-text-opacity:1;color:rgb(16 24 32/var(--tw-text-opacity))}.wp-block-code.is-style-code-highlighter>code .line-numbers-rows{padding-bottom:.625rem;padding-top:.625rem}.wp-block-code.is-style-code-highlighter+.toolbar{right:.3em}.wp-block-code.is-style-code-highlighter+.toolbar>.toolbar-item>button{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;background-color:rgb(177 177 178/var(--tw-bg-opacity));border-radius:.25rem;border-width:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(255 255 255/var(--tw-text-opacity));line-height:1;padding:.25rem .625rem;text-transform:lowercase} </style> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <script type="text/javascript" id="app-footer-js" nonce="wo123jejr234982dfn">!function(){"use strict";var r,n={},t={};function e(r){var o=t[r];if(void 0!==o)return o.exports;var u=t[r]={exports:{}};return n[r](u,u.exports,e),u.exports}e.m=n,r=[],e.O=function(n,t,o,u){if(!t){var i=1/0;for(s=0;s<r.length;s++){t=r[s][0],o=r[s][1],u=r[s][2];for(var f=!0,c=0;c<t.length;c++)(!1&u||i>=u)&&Object.keys(e.O).every((function(r){return e.O[r](t[c])}))?t.splice(c--,1):(f=!1,u<i&&(i=u));if(f){r.splice(s--,1);var a=o();void 0!==a&&(n=a)}}return n}u=u||0;for(var s=r.length;s>0&&r[s-1][2]>u;s--)r[s]=r[s-1];r[s]=[t,o,u]},e.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},function(){var r={8546:0,8138:0,2365:0,9049:0,4522:0,8056:0,3626:0,2917:0,7260:0,995:0,5398:0,1697:0,3896:0,687:0,7555:0,9484:0,1120:0,4167:0,3615:0,2229:0,9944:0,196:0,896:0,1785:0,1548:0,2651:0,1739:0,7532:0,1891:0,3973:0,9047:0,7368:0,6469:0,3415:0,2078:0,8320:0,1010:0,4906:0,2855:0,4098:0,973:0,8201:0,7089:0,6840:0,8043:0,3770:0,4216:0,226:0,383:0,2285:0,6045:0,6567:0,1575:0,1855:0,9489:0,7215:0,4674:0,5177:0,9190:0,9402:0,4346:0,175:0,1121:0,6231:0,4055:0,5517:0,4298:0,7695:0,7916:0,8947:0,4915:0,547:0,7258:0,8624:0,2039:0,7381:0,1625:0,7123:0,5839:0,3501:0,2132:0,1518:0,530:0,148:0,1909:0,5605:0,3375:0,188:0,1981:0,6362:0,798:0,2212:0,5950:0,8517:0,7991:0,5551:0,2125:0,1099:0,5760:0,9331:0,2126:0,4692:0,495:0,4777:0,961:0,9598:0,2845:0,2019:0,2879:0};e.O.j=function(n){return 0===r[n]};var n=function(n,t){var o,u,i=t[0],f=t[1],c=t[2],a=0;if(i.some((function(n){return 0!==r[n]}))){for(o in f)e.o(f,o)&&(e.m[o]=f[o]);if(c)var s=c(e)}for(n&&n(t);a<i.length;a++)u=i[a],e.o(r,u)&&r[u]&&r[u][0](),r[i[a]]=0;return e.O(s)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))}()}(); !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,(function(){"use strict";var t="undefined"!=typeof document&&document.documentMode,e={rootMargin:"0px",threshold:0,load:function(e){if("picture"===e.nodeName.toLowerCase()){var r=e.querySelector("img"),a=!1;null===r&&(r=document.createElement("img"),a=!0),t&&e.getAttribute("data-iesrc")&&(r.src=e.getAttribute("data-iesrc")),e.getAttribute("data-alt")&&(r.alt=e.getAttribute("data-alt")),a&&e.append(r)}if("video"===e.nodeName.toLowerCase()&&!e.getAttribute("data-src")&&e.children){for(var o=e.children,i=void 0,n=0;n<=o.length-1;n++)(i=o[n].getAttribute("data-src"))&&(o[n].src=i);e.load()}e.getAttribute("data-poster")&&(e.poster=e.getAttribute("data-poster")),e.getAttribute("data-src")&&(e.src=e.getAttribute("data-src")),e.getAttribute("data-srcset")&&e.setAttribute("srcset",e.getAttribute("data-srcset"));var d=",";if(e.getAttribute("data-background-delimiter")&&(d=e.getAttribute("data-background-delimiter")),e.getAttribute("data-background-image"))e.style.backgroundImage="url('"+e.getAttribute("data-background-image").split(d).join("'),url('")+"')";else if(e.getAttribute("data-background-image-set")){var u=e.getAttribute("data-background-image-set").split(d),g=u[0].substr(0,u[0].indexOf(" "))||u[0];g=-1===g.indexOf("url(")?"url("+g+")":g,1===u.length?e.style.backgroundImage=g:e.setAttribute("style",(e.getAttribute("style")||"")+"background-image: "+g+"; background-image: -webkit-image-set("+u+"); background-image: image-set("+u+")")}e.getAttribute("data-toggle-class")&&e.classList.toggle(e.getAttribute("data-toggle-class"))},loaded:function(){}};function r(t){t.setAttribute("data-loaded",!0)}var a=function(t){return"true"===t.getAttribute("data-loaded")},o=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return t instanceof Element?[t]:t instanceof NodeList?t:e.querySelectorAll(t)};return function(){var t,i,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:".lozad",d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},u=Object.assign({},e,d),g=u.root,s=u.rootMargin,c=u.threshold,l=u.load,b=u.loaded,f=void 0;"undefined"!=typeof window&&window.IntersectionObserver&&(f=new IntersectionObserver((t=l,i=b,function(e,o){e.forEach((function(e){(0<e.intersectionRatio||e.isIntersecting)&&(o.unobserve(e.target),a(e.target)||(t(e.target),r(e.target),i(e.target)))}))}),{root:g,rootMargin:s,threshold:c}));for(var A,m=o(n,g),v=0;v<m.length;v++)(A=m[v]).getAttribute("data-placeholder-background")&&(A.style.background=A.getAttribute("data-placeholder-background"));return{observe:function(){for(var t=o(n,g),e=0;e<t.length;e++)a(t[e])||(f?f.observe(t[e]):(l(t[e]),r(t[e]),b(t[e])))},triggerLoad:function(t){a(t)||(l(t),r(t),b(t))},observer:f}}})); !function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}((function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function t(o){function r(){}function i(n,t,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},r.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=o.write?o.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var u in i)i[u]&&(f+="; "+u,!0!==i[u]&&(f+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+f}}function c(e,t){if("undefined"!=typeof document){for(var r={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var f=i[c].split("="),u=f.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var a=n(f[0]);if(u=(o.read||o)(u,a)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(r[a]=u,e===a)break}catch(e){}}return e?r[e]:r}}return r.set=i,r.get=function(e){return c(e,!1)},r.getJSON=function(e){return c(e,!0)},r.remove=function(n,t){i(n,"",e(t,{expires:-1}))},r.defaults={},r.withConverter=t,r}((function(){}))})); (self.webpackChunk=self.webpackChunk||[]).push([[9742],{4006:function(){var e=function(){"use strict";var e={},t=[];return e.extend=function(t,o){e[t]=o},e.init=function(e){t.push(e)},e.getAll=function(){return e},e.on=function(e,t,o,n){if(!e)throw new Error("Please provide an element to attach the event to.");if(!t)throw new Error("Please provide an event to listen for.");if(!o||"function"!=typeof o)throw new Error("Please provide a valid callback function to run");e.addEventListener(t,o,n||!1)},e.off=function(e,t){e.removeEventListener(t,t)},e.imageLazyLoading=function(){lozad(".lozad",{rootMargin:"300px",threshold:0}).observe()},e.pageSettings=function(){var e=0,t=document.querySelector(":root"),o=document.querySelector(".site-footer"),n=document.querySelector(".site-header");if(n){var i=n.offsetHeight;e+=i,t.style.setProperty("--header-height",i+"px")}if(o){var a=o.offsetHeight;e+=a,t.style.setProperty("--footer-height",a+"px")}t.style.setProperty("--add-height",e+"px")},e.ready=function(){var e=new Event("ready");document.dispatchEvent(e)},document.addEventListener("DOMContentLoaded",e.ready),e.init(e.imageLazyLoading),e.init(e.pageSettings),window.onload=function(){e.pageSettings()},window.onresize=function(){e.pageSettings()},document.addEventListener("DOMContentLoaded",(function(){t.forEach((function(e){e.call()}))})),e}();window.App=e,e.init((function(){var e=document.getElementById("cookie-notice-bar"),t=e.getElementsByClassName("cookie-notice-button")[0],o=new Event("cookiesAllowed");Cookies.get("cookiebar")||e.classList.add("active"),t.onclick=function(){Cookies.set("cookiebar","hide",{expires:999}),window.dispatchEvent(o)},window.addEventListener("cookiesAllowed",(function(t){t.preventDefault(),e.classList.remove("active")}),!1)})),e.extend("utm",{nsUtmKeys:["utm_source","utm_campaign","utm_medium","utm_content","utm_term","utm_concept","vwo_id","vwo_variation","gclid"],localStoragePrefix:"",localStorageLandingPageKey:"ns_landing_page_key",localStorageReferrerKey:"referrerUrl",saveUtmDataToLocalStorage:function(){var e=this;try{var t=new URLSearchParams(window.location.search);this.nsUtmKeys.forEach((function(o){!0===t.has(o)&&null!=t.get(o)&&"null"!=t.get(o)&&localStorage.setItem(e.localStoragePrefix+o,t.get(o))})),Cookies.get(this.localStorageLandingPageKey)||(Cookies.set(this.localStorageLandingPageKey,window.location.protocol+"//"+window.location.host+window.location.pathname,{expires:1/48}),e.saveReferrer())}catch(e){console.error(e)}},saveReferrer:function(){var e=this,t=document.referrer;""!==t&&(t=(t=(t=(t=t.replace("http://","")).replace("https://","")).replace("www.","")).replace("/","")),localStorage.setItem(this.localStorageReferrerKey,t);var o=localStorage.getItem(e.localStoragePrefix+"utm_source");if(""!==t&&(null===o||""==o)){var n=e.getSearchEngine(t);localStorage.setItem(e.localStoragePrefix+"utm_source",n),localStorage.setItem(e.localStoragePrefix+"utm_medium",n!=t?"organic":"referral")}""!==t&&-1===t.indexOf("invicti.com")||null!==o&&""!=o||(localStorage.setItem(e.localStoragePrefix+"utm_source","direct"),localStorage.setItem(e.localStoragePrefix+"utm_medium","direct"))},getSearchEngine:function(e){return null==e?e:-1!=e.indexOf("google")?"google":-1!=e.indexOf("bing.com")?"bing":-1!=e.indexOf("duckduckgo.com")?"duckduckgo":-1!=e.indexOf("yahoo")?"yahoo":-1!=e.indexOf("baidu.com")?"baidu":-1!=e.indexOf("ecosia.org")?"ecosia.org ":-1!=e.indexOf("yandex")?"yandex":-1!=e.indexOf("qwant.com")?"qwant":-1!=e.indexOf("naver.com")?"naver":-1!=e.indexOf("ask")?"ask.com ":-1!=e.indexOf("so.com")?"so.com ":-1!=e.indexOf("sogou.com")?"sogou":e},vwoInit:function(){window.VWO=window.VWO||[],window.VWO.push(["onVariationApplied",function(e){if(e){var t=e[1],o=e[2];if(void 0!==window._vwo_exp[t].comb_n[o]&&["VISUAL_AB","VISUAL","SPLIT_URL","SURVEY"].indexOf(window._vwo_exp[t].type)>-1){var n=parseInt(sessionStorage.getItem("ns_vwo_id"),10);(isNaN(n)||n>t)&&(sessionStorage.setItem("ns_vwo_id",t),sessionStorage.setItem("ns_vwo_variation",o))}}}])},init:function(){var t=e.utm;t.vwoInit(),t.saveUtmDataToLocalStorage()}}),e.init(e.utm.init),e.init((function(){"function"==typeof WOW&&new WOW({boxClass:"wow",animateClass:"animated",offset:165,mobile:!1,live:!1}).init()})),e.init((function(){var e=document.querySelector(".invicti-bar"),t=localStorage.getItem("hello_bar");if(e&&(null==t||"hide"!==t)){var o=document.querySelector(".bar-close"),n=document.querySelector("body"),i=document.querySelector(".transparent-header");n.classList.add("invicti-bar-active"),i&&n.classList.add("transparent-header-active"),o.addEventListener("click",(function(){localStorage.setItem("hello_bar","hide"),n.classList.remove("invicti-bar-active"),n.classList.remove("transparent-header-active")}))}}))}},function(e){var t;t=4006,e(e.s=t)}]); /* PrismJS 1.29.0 https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+aspnet+c+csharp+graphql+java+json+json5+jsonp+markup-templating+nginx+php+python+regex+ruby+sql&plugins=line-numbers+toolbar+copy-to-clipboard */ var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(n,t){var r,i;switch(t=t||{},a.util.type(n)){case"Object":if(i=a.util.objId(n),t[i])return t[i];for(var l in r={},t[i]=r,n)n.hasOwnProperty(l)&&(r[l]=e(n[l],t));return r;case"Array":return i=a.util.objId(n),t[i]?t[i]:(r=[],t[i]=r,n.forEach((function(n,a){r[a]=e(n,t)})),r);default:return n}},getLanguage:function(e){for(;e;){var t=n.exec(e.className);if(t)return t[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,t){e.className=e.className.replace(RegExp(n,"gi"),""),e.classList.add("language-"+t)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(r.stack)||[])[1];if(e){var n=document.getElementsByTagName("script");for(var t in n)if(n[t].src==e)return n[t]}return null}},isActive:function(e,n,t){for(var r="no-"+n;e;){var a=e.classList;if(a.contains(n))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!t}},languages:{plain:r,plaintext:r,text:r,txt:r,extend:function(e,n){var t=a.util.clone(a.languages[e]);for(var r in n)t[r]=n[r];return t},insertBefore:function(e,n,t,r){var i=(r=r||a.languages)[e],l={};for(var o in i)if(i.hasOwnProperty(o)){if(o==n)for(var s in t)t.hasOwnProperty(s)&&(l[s]=t[s]);t.hasOwnProperty(o)||(l[o]=i[o])}var u=r[e];return r[e]=l,a.languages.DFS(a.languages,(function(n,t){t===u&&n!=e&&(this[n]=l)})),l},DFS:function e(n,t,r,i){i=i||{};var l=a.util.objId;for(var o in n)if(n.hasOwnProperty(o)){t.call(n,o,n[o],r||o);var s=n[o],u=a.util.type(s);"Object"!==u||i[l(s)]?"Array"!==u||i[l(s)]||(i[l(s)]=!0,e(s,t,o,i)):(i[l(s)]=!0,e(s,t,null,i))}}},plugins:{},highlightAll:function(e,n){a.highlightAllUnder(document,e,n)},highlightAllUnder:function(e,n,t){var r={callback:t,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),a.hooks.run("before-all-elements-highlight",r);for(var i,l=0;i=r.elements[l++];)a.highlightElement(i,!0===n,r.callback)},highlightElement:function(n,t,r){var i=a.util.getLanguage(n),l=a.languages[i];a.util.setLanguage(n,i);var o=n.parentElement;o&&"pre"===o.nodeName.toLowerCase()&&a.util.setLanguage(o,i);var s={element:n,language:i,grammar:l,code:n.textContent};function u(e){s.highlightedCode=e,a.hooks.run("before-insert",s),s.element.innerHTML=s.highlightedCode,a.hooks.run("after-highlight",s),a.hooks.run("complete",s),r&&r.call(s.element)}if(a.hooks.run("before-sanity-check",s),(o=s.element.parentElement)&&"pre"===o.nodeName.toLowerCase()&&!o.hasAttribute("tabindex")&&o.setAttribute("tabindex","0"),!s.code)return a.hooks.run("complete",s),void(r&&r.call(s.element));if(a.hooks.run("before-highlight",s),s.grammar)if(t&&e.Worker){var c=new Worker(a.filename);c.onmessage=function(e){u(e.data)},c.postMessage(JSON.stringify({language:s.language,code:s.code,immediateClose:!0}))}else u(a.highlight(s.code,s.grammar,s.language));else u(a.util.encode(s.code))},highlight:function(e,n,t){var r={code:e,grammar:n,language:t};if(a.hooks.run("before-tokenize",r),!r.grammar)throw new Error('The language "'+r.language+'" has no grammar.');return r.tokens=a.tokenize(r.code,r.grammar),a.hooks.run("after-tokenize",r),i.stringify(a.util.encode(r.tokens),r.language)},tokenize:function(e,n){var t=n.rest;if(t){for(var r in t)n[r]=t[r];delete n.rest}var a=new s;return u(a,a.head,e),o(e,a,n,a.head,0),function(e){for(var n=[],t=e.head.next;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=a.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=a.hooks.all[e];if(t&&t.length)for(var r,i=0;r=t[i++];)r(n)}},Token:i};function i(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function l(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function o(e,n,t,r,s,g){for(var f in t)if(t.hasOwnProperty(f)&&t[f]){var h=t[f];h=Array.isArray(h)?h:[h];for(var d=0;d<h.length;++d){if(g&&g.cause==f+","+d)return;var v=h[d],p=v.inside,m=!!v.lookbehind,y=!!v.greedy,k=v.alias;if(y&&!v.pattern.global){var x=v.pattern.toString().match(/[imsuy]*$/)[0];v.pattern=RegExp(v.pattern.source,x+"g")}for(var b=v.pattern||v,w=r.next,A=s;w!==n.tail&&!(g&&A>=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(j<O||"string"==typeof C.value);C=C.next)L++,j+=C.value.length;L--,E=e.slice(A,j),P.index-=A}else if(!(P=l(b,0,E,m)))continue;S=P.index;var N=P[0],_=E.slice(0,S),M=E.slice(S+N.length),W=A+E.length;g&&W>g.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a<t&&r!==e.tail;a++)r=r.next;n.next=r,r.prev=n,e.length-=a}if(e.Prism=a,i.stringify=function e(n,t){if("string"==typeof n)return n;if(Array.isArray(n)){var r="";return n.forEach((function(n){r+=e(n,t)})),r}var i={type:n.type,content:e(n.content,t),tag:"span",classes:["token",n.type],attributes:{},language:t},l=n.alias;l&&(Array.isArray(l)?Array.prototype.push.apply(i.classes,l):i.classes.push(l)),a.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=" "+s+'="'+(i.attributes[s]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+o+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^<!\[CDATA\[|\]\]>$/i;var t={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; !function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; !function(e){function n(e,n){return e.replace(/<<(\d+)>>/g,(function(e,s){return"(?:"+n[+s]+")"}))}function s(e,s,a){return RegExp(n(e,s),a||"")}function a(e,n){for(var s=0;s<n;s++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var t="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",r="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var d=l(r),p=RegExp(l(t+" "+r+" "+i+" "+o)),c=l(r+" "+i+" "+o),u=l(t+" "+r+" "+o),g=a("<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>",2),b=a("\\((?:[^()]|<<self>>)*\\)",2),h="@?\\b[A-Za-z_]\\w*\\b",f=n("<<0>>(?:\\s*<<1>>)?",[h,g]),m=n("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[c,f]),k="\\[\\s*(?:,\\s*)*\\]",y=n("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[m,k]),w=n("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[g,b,k]),v=n("\\(<<0>>+(?:,<<0>>+)+\\)",[w]),x=n("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[v,m,k]),$={keyword:p,punctuation:/[<>()?,.:[\]]/},_="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",B='"(?:\\\\.|[^\\\\"\r\n])*"';e.languages.csharp=e.languages.extend("clike",{string:[{pattern:s("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:s("(^|[^@$\\\\])<<0>>",[B]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:s("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[m]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[h,x]),lookbehind:!0,inside:$},{pattern:s("(\\busing\\s+)<<0>>(?=\\s*=)",[h]),lookbehind:!0},{pattern:s("(\\b<<0>>\\s+)<<1>>",[d,f]),lookbehind:!0,inside:$},{pattern:s("(\\bcatch\\s*\\(\\s*)<<0>>",[m]),lookbehind:!0,inside:$},{pattern:s("(\\bwhere\\s+)<<0>>",[h]),lookbehind:!0},{pattern:s("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[y]),lookbehind:!0,inside:$},{pattern:s("\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[x,u,h]),inside:$}],keyword:p,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:s("([(,]\\s*)<<0>>(?=\\s*:)",[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:s("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:s("(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[b]),lookbehind:!0,alias:"class-name",inside:$},"return-type":{pattern:s("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[x,m]),inside:$,alias:"class-name"},"constructor-invocation":{pattern:s("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[x]),lookbehind:!0,inside:$,alias:"class-name"},"generic-method":{pattern:s("<<0>>\\s*<<1>>(?=\\s*\\()",[h,g]),inside:{function:s("^<<0>>",[h]),generic:{pattern:RegExp(g),alias:"class-name",inside:$}}},"type-list":{pattern:s("\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))",[d,f,h,x,p.source,b,"\\bnew\\s*\\(\\s*\\)"]),lookbehind:!0,inside:{"record-arguments":{pattern:s("(^(?!new\\s*\\()<<0>>\\s*)<<1>>",[f,b]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:p,"class-name":{pattern:RegExp(x),greedy:!0,inside:$},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var E=B+"|"+_,R=n("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[E]),z=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),S="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",j=n("<<0>>(?:\\s*\\(<<1>>*\\))?",[m,z]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:s("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[S,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:s("^<<0>>(?=\\s*:)",[S]),alias:"keyword"},"attribute-arguments":{pattern:s("\\(<<0>>*\\)",[z]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=":[^}\r\n]+",F=a(n("[^\"'/()]|<<0>>|\\(<<self>>*\\)",[R]),2),P=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[F,A]),U=a(n("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<<self>>*\\)",[E]),2),Z=n("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[U,A]);function q(n,a){return{interpolation:{pattern:s("((?:^|[^{])(?:\\{\\{)*)<<0>>",[n]),lookbehind:!0,inside:{"format-string":{pattern:s("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[a,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:s('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[P]),lookbehind:!0,greedy:!0,inside:q(P,F)},{pattern:s('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[Z]),lookbehind:!0,greedy:!0,inside:q(Z,U)}],char:{pattern:RegExp(_),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism); Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:Prism.languages.csharp||{}}}); Prism.languages.c=Prism.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],char:Prism.languages.c.char,comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}}}),Prism.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete Prism.languages.c.boolean; Prism.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:Prism.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},Prism.hooks.add("after-tokenize",(function(n){if("graphql"===n.language)for(var t=n.tokens.filter((function(n){return"string"!=typeof n&&"comment"!==n.type&&"scalar"!==n.type})),e=0;e<t.length;){var a=t[e++];if("keyword"===a.type&&"mutation"===a.content){var r=[];if(c(["definition-mutation","punctuation"])&&"("===l(1).content){e+=2;var i=f(/^\($/,/^\)$/);if(-1===i)continue;for(;e<i;e++){var o=l(0);"variable"===o.type&&(b(o,"variable-input"),r.push(o.content))}e=i+1}if(c(["punctuation","property-query"])&&"{"===l(0).content&&(e++,b(l(0),"property-mutation"),r.length>0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var u=e;u<s;u++){var p=t[u];"variable"===p.type&&r.indexOf(p.content)>=0&&b(p,"variable-input")}}}}function l(n){return t[e+n]}function c(n,t){t=t||0;for(var e=0;e<n.length;e++){var a=l(e+t);if(!a||a.type!==n[e])return!1}return!0}function f(n,a){for(var r=1,i=e;i<t.length;i++){var o=t[i],s=o.content;if("punctuation"===o.type&&"string"==typeof s)if(n.test(s))r++;else if(a.test(s)&&0==--r)return i}return-1}function b(n,t){var e=n.alias;e?Array.isArray(e)||(n.alias=e=[e]):n.alias=e=[],e.push(t)}})); !function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t="(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp("(^|[^\\w.])"+t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[s,{pattern:RegExp("(^|[^\\w.])"+t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)"),lookbehind:!0,inside:s.inside},{pattern:RegExp("(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)"+t+"[A-Z]\\w*\\b"),lookbehind:!0,inside:s.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":s,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp("(\\bimport\\s+)"+t+"(?:[A-Z]\\w*|\\*)(?=\\s*;)"),lookbehind:!0,inside:{namespace:s.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp("(\\bimport\\s+static\\s+)"+t+"(?:\\w+|\\*)(?=\\s*;)"),lookbehind:!0,alias:"static",inside:{namespace:s.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(/<keyword>/g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; !function(n){var e=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;n.languages.json5=n.languages.extend("json",{property:[{pattern:RegExp(e.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:e,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(Prism); Prism.languages.jsonp=Prism.languages.extend("json",{punctuation:/[{}[\]();,.]/}),Prism.languages.insertBefore("jsonp","punctuation",{function:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*\()/}); !function(e){function n(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(t,a,r,o){if(t.language===a){var c=t.tokenStack=[];t.code=t.code.replace(r,(function(e){if("function"==typeof o&&!o(e))return e;for(var r,i=c.length;-1!==t.code.indexOf(r=n(a,i));)++i;return c[i]=e,r})),t.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(t,a){if(t.language===a&&t.tokenStack){t.grammar=e.languages[a];var r=0,o=Object.keys(t.tokenStack);!function c(i){for(var u=0;u<i.length&&!(r>=o.length);u++){var g=i[u];if("string"==typeof g||g.content&&"string"==typeof g.content){var l=o[r],s=t.tokenStack[l],f="string"==typeof g?g:g.content,p=n(a,l),k=f.indexOf(p);if(k>-1){++r;var m=f.substring(0,k),d=new e.Token(a,e.tokenize(s,t.grammar),"language-"+a,s),h=f.substring(k+p.length),v=[];m&&v.push.apply(v,c([m])),v.push(d),h&&v.push.apply(v,c([h])),"string"==typeof g?i.splice.apply(i,[u,1].concat(v)):g.content=v}}else g.content&&c(g.content)}return i}(t.tokens)}}}})}(Prism); !function(e){var n=/\$(?:\w[a-z\d]*(?:_[^\x00-\x1F\s"'\\()$]*)?|\{[^}\s"'\\]+\})/i;e.languages.nginx={comment:{pattern:/(^|[\s{};])#.*/,lookbehind:!0,greedy:!0},directive:{pattern:/(^|\s)\w(?:[^;{}"'\\\s]|\\.|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|\s+(?:#.*(?!.)|(?![#\s])))*?(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:{string:{pattern:/((?:^|[^\\])(?:\\\\)*)(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,lookbehind:!0,greedy:!0,inside:{escape:{pattern:/\\["'\\nrt]/,alias:"entity"},variable:n}},comment:{pattern:/(\s)#.*/,lookbehind:!0,greedy:!0},keyword:{pattern:/^\S+/,greedy:!0},boolean:{pattern:/(\s)(?:off|on)(?!\S)/,lookbehind:!0},number:{pattern:/(\s)\d+[a-z]*(?!\S)/i,lookbehind:!0},variable:n}},punctuation:/[{};]/}}(Prism); !function(e){var a=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:a,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];e.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:a,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(a){/<\?/.test(a.code)&&e.languages["markup-templating"].buildPlaceholders(a,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"php")}))}(Prism); Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python; !function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":i}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}}}(Prism); !function(e){e.languages.ruby=e.languages.extend("clike",{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore("ruby","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}});var n={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"}}};delete e.languages.ruby.function;var t="(?:"+["([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^]|\\((?:[^()\\\\]|\\\\[^])*\\))*\\)","\\{(?:[^{}\\\\]|\\\\[^]|\\{(?:[^{}\\\\]|\\\\[^])*\\})*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^]|\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\])*\\]","<(?:[^<>\\\\]|\\\\[^]|<(?:[^<>\\\\]|\\\\[^])*>)*>"].join("|")+")",i='(?:"(?:\\\\.|[^"\\\\\r\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\0-\\x7F]+)[?!]?|\\$.)';e.languages.insertBefore("ruby","keyword",{"regex-literal":[{pattern:RegExp("%r"+t+"[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp("(^|[^:]):"+i),lookbehind:!0,greedy:!0},{pattern:RegExp("([\r\n{(,][ \t]*)"+i+"(?=:(?!:))"),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore("ruby","string",{"string-literal":[{pattern:RegExp("%[qQiIwWs]?"+t),greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:n,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp("%x"+t),greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:n,command:{pattern:/[\s\S]+/,alias:"string"}}}]}),delete e.languages.ruby.string,e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby}(Prism); Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",n=/\n(?!$)/g,t=Prism.plugins.lineNumbers={getLine:function(n,t){if("PRE"===n.tagName&&n.classList.contains(e)){var i=n.querySelector(".line-numbers-rows");if(i){var r=parseInt(n.getAttribute("data-start"),10)||1,s=r+(i.children.length-1);t<r&&(t=r),t>s&&(t=s);var l=t-r;return i.children[l]}}},resize:function(e){r([e])},assumeViewportIndependence:!0},i=void 0;window.addEventListener("resize",(function(){t.assumeViewportIndependence&&i===window.innerWidth||(i=window.innerWidth,r(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(t){if(t.code){var i=t.element,s=i.parentNode;if(s&&/pre/i.test(s.nodeName)&&!i.querySelector(".line-numbers-rows")&&Prism.util.isActive(i,e)){i.classList.remove(e),s.classList.add(e);var l,o=t.code.match(n),a=o?o.length+1:1,u=new Array(a+1).join("<span></span>");(l=document.createElement("span")).setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=u,s.hasAttribute("data-start")&&(s.style.counterReset="linenumber "+(parseInt(s.getAttribute("data-start"),10)-1)),t.element.appendChild(l),r([s]),Prism.hooks.run("line-numbers",t)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function r(e){if(0!=(e=e.filter((function(e){var n,t=(n=e,n?window.getComputedStyle?getComputedStyle(n):n.currentStyle||null:null)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var t=e.map((function(e){var t=e.querySelector("code"),i=e.querySelector(".line-numbers-rows");if(t&&i){var r=e.querySelector(".line-numbers-sizer"),s=t.textContent.split(n);r||((r=document.createElement("span")).className="line-numbers-sizer",t.appendChild(r)),r.innerHTML="0",r.style.display="block";var l=r.getBoundingClientRect().height;return r.innerHTML="",{element:e,lines:s,lineHeights:[],oneLinerHeight:l,sizer:r}}})).filter(Boolean);t.forEach((function(e){var n=e.sizer,t=e.lines,i=e.lineHeights,r=e.oneLinerHeight;i[t.length-1]=void 0,t.forEach((function(e,t){if(e&&e.length>1){var s=n.appendChild(document.createElement("span"));s.style.display="block",s.textContent=e}else i[t]=r}))})),t.forEach((function(e){for(var n=e.sizer,t=e.lineHeights,i=0,r=0;r<t.length;r++)void 0===t[r]&&(t[r]=n.children[i++].getBoundingClientRect().height)})),t.forEach((function(e){var n=e.sizer,t=e.element.querySelector(".line-numbers-rows");n.style.display="none",n.innerHTML="",e.lineHeights.forEach((function(e,n){t.children[n].style.height=e+"px"}))}))}}}(); !function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e=[],t={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var r;r="function"==typeof a?a:function(e){var t;return"function"==typeof a.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){a.onClick.call(this,e)}))):"string"==typeof a.url?(t=document.createElement("a")).href=a.url:t=document.createElement("span"),a.className&&t.classList.add(a.className),t.textContent=a.text,t},n in t?console.warn('There is a button with the key "'+n+'" registered already.'):e.push(t[n]=r)},r=Prism.plugins.toolbar.hook=function(a){var r=a.element.parentNode;if(r&&/pre/i.test(r.nodeName)&&!r.parentNode.classList.contains("code-toolbar")){var o=document.createElement("div");o.classList.add("code-toolbar"),r.parentNode.insertBefore(o,r),o.appendChild(r);var i=document.createElement("div");i.classList.add("toolbar");var l=e,d=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(a.element);d&&(l=d.map((function(e){return t[e]||n}))),l.forEach((function(e){var t=e(a);if(t){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(t),i.appendChild(n)}})),o.appendChild(i)}};a("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var n,a,r=t.getAttribute("data-label");try{a=document.querySelector("template#"+r)}catch(e){}return a?n=a.content:(t.hasAttribute("data-url")?(n=document.createElement("a")).href=t.getAttribute("data-url"):n=document.createElement("span"),n.textContent=r),n}})),Prism.hooks.add("complete",r)}}(); !function(){function t(t){var e=document.createElement("textarea");e.value=t.getText(),e.style.top="0",e.style.left="0",e.style.position="fixed",document.body.appendChild(e),e.focus(),e.select();try{var o=document.execCommand("copy");setTimeout((function(){o?t.success():t.error()}),1)}catch(e){setTimeout((function(){t.error(e)}),1)}document.body.removeChild(e)}"undefined"!=typeof Prism&&"undefined"!=typeof document&&(Prism.plugins.toolbar?Prism.plugins.toolbar.registerButton("copy-to-clipboard",(function(e){var o=e.element,n=function(t){var e={copy:"Copy","copy-error":"Press Ctrl+C to copy","copy-success":"Copied!","copy-timeout":5e3};for(var o in e){for(var n="data-prismjs-"+o,c=t;c&&!c.hasAttribute(n);)c=c.parentElement;c&&(e[o]=c.getAttribute(n))}return e}(o),c=document.createElement("button");c.className="copy-to-clipboard-button",c.setAttribute("type","button");var r=document.createElement("span");return c.appendChild(r),u("copy"),function(e,o){e.addEventListener("click",(function(){!function(e){navigator.clipboard?navigator.clipboard.writeText(e.getText()).then(e.success,(function(){t(e)})):t(e)}(o)}))}(c,{getText:function(){return o.textContent},success:function(){u("copy-success"),i()},error:function(){u("copy-error"),setTimeout((function(){!function(t){window.getSelection().selectAllChildren(t)}(o)}),1),i()}}),c;function i(){setTimeout((function(){u("copy")}),n["copy-timeout"])}function u(t){r.textContent=n[t],c.setAttribute("data-copy-state",t)}})):console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."))}(); (self.webpackChunk=self.webpackChunk||[]).push([[1137],{2768:function(){App.init((function(){document.querySelectorAll(".is-style-code-highlighter").forEach((function(e){-1===e.classList.value.search("language-")&&e.classList.add("language-javascript"),e.classList.add("line-numbers"),e.parentNode.classList.add("line-numbers")})),Prism.highlightAll(document.querySelector("main.main"))}))}},function(e){var s;s=2768,e(e.s=s)}]); (self.webpackChunk=self.webpackChunk||[]).push([[4998],{1035:function(){App.extend("navbar",{stickyHeader:function(){var e=document.querySelector("body"),t=document.querySelector(".sticky-header-observer");t&&new IntersectionObserver((function(t){t[0].isIntersecting?e.classList.remove("sticky-header"):e.classList.add("sticky-header")})).observe(t)},mobileSubMenu:function(){document.querySelectorAll("#site-navigation .menu-item-has-children a").forEach((function(e){App.on(e,"click",(function(){App.mobileMenuActive&&(e.parentElement.classList.contains("active-sub-menu")?e.parentElement.classList.remove("active-sub-menu"):e.parentElement.classList.add("active-sub-menu"))}))}))},mobileMenu:function(){var e=document.querySelectorAll(".navbar-toggle"),t=document.querySelector("body");e&&e.forEach((function(e){App.on(e,"click",(function(){var e=document.querySelector(".site-header"),n=document.querySelector(".primary-menu-wrapper"),i=window.innerHeight;t.classList.contains("mobile-menu-active")?(n.removeAttribute("style"),t.classList.remove("mobile-menu-active"),App.extend("mobileMenuActive",!1)):(n.style.height=i-e.offsetHeight+"px",t.classList.add("mobile-menu-active"),App.extend("mobileMenuActive",!0))}))}))},resizer:function(){App.on(window,"resize",(function(){var e=document.querySelector(".primary-menu-wrapper");e&&(e.removeAttribute("style"),document.querySelector("body").classList.remove("mobile-menu-active"))}))},init:function(){var e=App.navbar;e.stickyHeader(),e.mobileMenu(),e.mobileSubMenu(),e.resizer()}}),App.init(App.navbar.init)}},function(e){var t;t=1035,e(e.s=t)}]); !function(e){var t={};function n(o){if(t[o])return t[o].exports;var l=t[o]={i:o,l:!1,exports:{}};return e[o].call(l.exports,l,l.exports,n),l.l=!0,l.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)n.d(o,l,function(t){return e[t]}.bind(null,l));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){(function(o){var l,r,i;!function(o,s){r=[],l=function(e){"use strict";var t,o,l,r=n(2),i={},s={},c=n(3),a=n(4),u=n(5),d=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||d){var f=Object.prototype.hasOwnProperty;return s.destroy=function(){if(!i.skipRendering)try{document.querySelector(i.tocSelector).innerHTML=""}catch(e){console.warn("Element not found: "+i.tocSelector)}i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(i.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1))},s.init=function(e){if(d&&(i=function(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var o in n)f.call(n,o)&&(e[o]=n[o])}return e}(r,e||{}),this.options=i,this.state={},i.scrollSmooth&&(i.duration=i.scrollSmoothDuration,i.offset=i.scrollSmoothOffset,s.scrollSmooth=n(6).initSmoothScrolling(i)),t=c(i),o=a(i),this._buildHtml=t,this._parseContent=o,s.destroy(),null!==(l=o.selectHeadings(i.contentSelector,i.headingSelector)))){var h=o.nestHeadingsArray(l).nest;i.skipRendering||t.render(i.tocSelector,h),this._scrollListener=m((function(e){t.updateToc(l),!i.disableTocScrollSync&&u(i);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(l),i.scrollEndCallback&&i.scrollEndCallback(e))}),i.throttleTimeout),this._scrollListener(),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var p=null;return this._clickListener=m((function(e){i.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(l),p&&clearTimeout(p),p=setTimeout((function(){t.enableTocAnimation()}),i.scrollSmoothDuration)}),i.throttleTimeout),i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}},s.refresh=function(e){s.destroy(),s.init(e||this.options)},e.tocbot=s,s}function m(e,t,n){var o,l;return t||(t=250),function(){var r=n||this,i=+new Date,s=arguments;o&&i<o+t?(clearTimeout(l),l=setTimeout((function(){o=i,e.apply(r,s)}),t)):(o=i,e.apply(r,s))}}}(o),void 0===(i="function"==typeof l?l.apply(t,r):l)||(e.exports=i)}(void 0!==o?o:this.window||this.global)}).call(this,n(1))},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports={tocSelector:".js-toc",contentSelector:".js-toc-content",headingSelector:"h1, h2, h3",ignoreSelector:".js-toc-ignore",hasInnerContainers:!1,linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},headingsOffset:1,throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,onClick:function(e){},orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:null,basePath:"",disableTocScrollSync:!1}},function(e,t){e.exports=function(e){var t=[].forEach,n=[].some,o=document.body,l=!0,r=" ";function i(n,o){var l=o.appendChild(function(n){var o=document.createElement("li"),l=document.createElement("a");return e.listItemClass&&o.setAttribute("class",e.listItemClass),e.onClick&&(l.onclick=e.onClick),e.includeHtml&&n.childNodes.length?t.call(n.childNodes,(function(e){l.appendChild(e.cloneNode(!0))})):l.textContent=n.textContent,l.setAttribute("href",e.basePath+"#"+n.id),l.setAttribute("class",e.linkClass+r+"node-name--"+n.nodeName+r+e.extraLinkClasses),o.appendChild(l),o}(n));if(n.children.length){var c=s(n.isCollapsed);n.children.forEach((function(e){i(e,c)})),l.appendChild(c)}}function s(t){var n=e.orderedList?"ol":"ul",o=document.createElement(n),l=e.listClass+r+e.extraListClasses;return t&&(l+=r+e.collapsibleClass,l+=r+e.isCollapsedClass),o.setAttribute("class",l),o}return{enableTocAnimation:function(){l=!0},disableTocAnimation:function(t){var n=t.target||t.srcElement;"string"==typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(l=!1)},render:function(e,t){var n=s(!1);t.forEach((function(e){i(e,n)}));var o=document.querySelector(e);if(null!==o)return o.firstChild&&o.removeChild(o.firstChild),0===t.length?o:o.appendChild(n)},updateToc:function(i){var s;s=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop,e.positionFixedSelector&&function(){var t;t=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||o.scrollTop;var n=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=document.querySelector(e.tocSelector).offsetTop),t>e.fixedSidebarOffset?-1===n.className.indexOf(e.positionFixedClass)&&(n.className+=r+e.positionFixedClass):n.className=n.className.split(r+e.positionFixedClass).join("")}();var c,a=i;if(l&&null!==document.querySelector(e.tocSelector)&&a.length>0){n.call(a,(function(t,n){return function t(n){var o=0;return n!==document.querySelector(e.contentSelector&&null!=n)&&(o=n.offsetTop,e.hasInnerContainers&&(o+=t(n.offsetParent))),o}(t)>s+e.headingsOffset+10?(c=a[0===n?n:n-1],!0):n===a.length-1?(c=a[a.length-1],!0):void 0}));var u=document.querySelector(e.tocSelector).querySelectorAll("."+e.linkClass);t.call(u,(function(t){t.className=t.className.split(r+e.activeLinkClass).join("")}));var d=document.querySelector(e.tocSelector).querySelectorAll("."+e.listItemClass);t.call(d,(function(t){t.className=t.className.split(r+e.activeListItemClass).join("")}));var f=document.querySelector(e.tocSelector).querySelector("."+e.linkClass+".node-name--"+c.nodeName+'[href="'+e.basePath+"#"+c.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');-1===f.className.indexOf(e.activeLinkClass)&&(f.className+=r+e.activeLinkClass);var m=f.parentNode;m&&-1===m.className.indexOf(e.activeListItemClass)&&(m.className+=r+e.activeListItemClass);var h=document.querySelector(e.tocSelector).querySelectorAll("."+e.listClass+"."+e.collapsibleClass);t.call(h,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=r+e.isCollapsedClass)})),f.nextSibling&&-1!==f.nextSibling.className.indexOf(e.isCollapsedClass)&&(f.nextSibling.className=f.nextSibling.className.split(r+e.isCollapsedClass).join("")),function t(n){return-1!==n.className.indexOf(e.collapsibleClass)&&-1!==n.className.indexOf(e.isCollapsedClass)?(n.className=n.className.split(r+e.isCollapsedClass).join(""),t(n.parentNode.parentNode)):n}(f.parentNode.parentNode)}}}}},function(e,t){e.exports=function(e){var t=[].reduce;function n(e){return e[e.length-1]}function o(t){if(!(t instanceof window.HTMLElement))return t;if(e.ignoreHiddenElements&&(!t.offsetHeight||!t.offsetParent))return null;var n={id:t.id,children:[],nodeName:t.nodeName,headingLevel:function(e){return+e.nodeName.split("H").join("")}(t),textContent:e.headingLabelCallback?String(e.headingLabelCallback(t.textContent)):t.textContent.trim()};return e.includeHtml&&(n.childNodes=t.childNodes),e.headingObjectCallback?e.headingObjectCallback(n,t):n}return{nestHeadingsArray:function(l){return t.call(l,(function(t,l){var r=o(l);return r&&function(t,l){for(var r=o(t),i=r.headingLevel,s=l,c=n(s),a=i-(c?c.headingLevel:0);a>0;)(c=n(s))&&void 0!==c.children&&(s=c.children),a--;i>=e.collapseDepth&&(r.isCollapsed=!0),s.push(r)}(r,t.nest),t}),{nest:[]})},selectHeadings:function(t,n){var o=n;e.ignoreSelector&&(o=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return document.querySelector(t).querySelectorAll(o)}catch(e){return console.warn("Element not found: "+t),null}}}}},function(e,t){e.exports=function(e){var t=document.querySelector(e.tocSelector);if(t&&t.scrollHeight>t.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},function(e,t){function n(e,t){var n,o,l=window.pageYOffset,r={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||function(e,t,n,o){return(e/=o/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t}},i=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]'),s="string"==typeof e?r.offset+(e?i&&i.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,c="function"==typeof r.duration?r.duration(s):r.duration;function a(e){o=e-n,window.scrollTo(0,r.easing(o,l,s,c)),o<c?requestAnimationFrame(a):(window.scrollTo(0,l+s),"function"==typeof r.callback&&r.callback())}requestAnimationFrame((function(e){n=e,a(e)}))}t.initSmoothScrolling=function(e){document.documentElement.style;var t=e.duration,o=e.offset,l=location.hash?r(location.href):location.href;function r(e){return e.slice(0,e.lastIndexOf("#"))}document.body.addEventListener("click",(function(i){!function(e){return"a"===e.tagName.toLowerCase()&&(e.hash.length>0||"#"===e.href.charAt(e.href.length-1))&&(r(e.href)===l||r(e.href)+"#"===l)}(i.target)||i.target.className.indexOf("no-smooth-scroll")>-1||"#"===i.target.href.charAt(i.target.href.length-2)&&"!"===i.target.href.charAt(i.target.href.length-1)||-1===i.target.className.indexOf(e.linkClass)||n(i.target.hash,{duration:t,offset:o,callback:function(){!function(e){var t=document.getElementById(e.substring(1));t&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}(i.target.hash)}})}),!1)}}]); (self.webpackChunk=self.webpackChunk||[]).push([[5275],{1780:function(){App.init((function(){document.querySelectorAll(".entry-content h2, .entry-content h3").forEach((function(e){null==e.getAttribute("id")&&e.setAttribute("id",function(e){e=(e=e.replace(/^\s+|\s+$/g,"")).toLowerCase();for(var t="åàáãäâèéëêìíïîòóöôùúüûñç·/_,:;",c=0,o=t.length;c<o;c++)e=e.replace(new RegExp(t.charAt(c),"g"),"aaaaaaeeeeiiiioooouuuunc------".charAt(c));return e.replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}(e.textContent))})),document.querySelector(".close-nav").addEventListener("click",(function(){document.querySelector(".sidebar").classList.remove("active"),document.querySelector(".nav-overlay").classList.remove("active")})),document.querySelector(".nav-overlay").addEventListener("click",(function(){document.querySelector(".sidebar").classList.remove("active"),document.querySelector(".nav-overlay").classList.remove("active")})),document.querySelector(".mobile-trigger").addEventListener("click",(function(){document.querySelector(".sidebar").classList.add("active"),document.querySelector(".nav-overlay").classList.add("active")})),tocbot.init({tocSelector:"#toc",contentSelector:".entry-content",headingSelector:"h2, h3",hasInnerContainers:!0,headingsOffset:200,scrollSmoothOffset:-120,collapseDepth:1,scrollSmooth:!1})}))}},function(e){var t;t=1780,e(e.s=t)}]); (self.webpackChunk=self.webpackChunk||[]).push([[1217],{6409:function(){function e(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,i,o=[],r=!0,s=!1;try{for(t=t.call(e);!(r=(n=t.next()).done)&&(o.push(n.value),!a||o.length!==a);r=!0);}catch(e){s=!0,i=e}finally{try{r||null==t.return||t.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=new Array(a);t<a;t++)n[t]=e[t];return n}App.extend("marketo",{marketoForms:document.querySelectorAll(".marketo-form"),utmKeys:["utm_source","utm_campaign","utm_medium","utm_content","utm_term","utm_concept","vwo_id","vwo_variation","gclid"],countries:new Map([["Afghanistan","AF"],["Aland Islands","AX"],["Albania","AL"],["Algeria","DZ"],["Andorra","AD"],["Angola","AO"],["Anguilla","AI"],["Antigua and Barbuda","AG"],["Argentina","AR"],["Armenia","AM"],["Aruba","AW"],["Australia","AU"],["Austria","AT"],["Azerbaijan","AZ"],["Bahamas","BS"],["Bahrain","BH"],["Bangladesh","BD"],["Barbados","BB"],["Belarus","BY"],["Belgium","BE"],["Belize","BZ"],["Benin","BJ"],["Bermuda","BM"],["Bhutan","BT"],["Bolivia, Plurinational State of","BO"],["Bonaire, Sint Eustatius and Saba","BQ"],["Bosnia and Herzegovina","BA"],["Botswana","BW"],["Brazil","BR"],["British Indian Ocean Territory","IO"],["Brunei Darussalam","BN"],["Bulgaria","BG"],["Burkina Faso","BF"],["Burundi","BI"],["Cambodia","KH"],["Cameroon","CM"],["Canada","CA"],["Cape Verde","CV"],["Cayman Islands","KY"],["Central African Republic","CF"],["Chad","TD"],["Chile","CL"],["China","CN"],["Christmas Island","CX"],["Cocos (Keeling) Islands","CC"],["Colombia","CO"],["Comoros","KM"],["Congo","CG"],["Congo, the Democratic Republic of the","CD"],["Cook Islands","CK"],["Costa Rica","CR"],["Cote d'Ivoire","CI"],["Croatia","HR"],["Cuba","CU"],["Cura&ccedil;ao","CW"],["Cyprus","CY"],["Czech Republic","CZ"],["Denmark","DK"],["Djibouti","DJ"],["Dominica","DM"],["Dominican Republic","DO"],["Ecuador","EC"],["Egypt","EG"],["El Salvador","SV"],["Equatorial Guinea","GQ"],["Eritrea","ER"],["Estonia","EE"],["Ethiopia","ET"],["Falkland Islands (Malvinas)","FK"],["Faroe Islands","FO"],["Fiji","FJ"],["Finland","FI"],["France","FR"],["French Guiana","GF"],["French Polynesia","PF"],["French Southern Territories","TF"],["Gabon","GA"],["Gambia","GM"],["Georgia","GE"],["Germany","DE"],["Ghana","GH"],["Gibraltar","GI"],["Greece","GR"],["Greenland","GL"],["Grenada","GD"],["Guadeloupe","GP"],["Guatemala","GT"],["Guernsey","GG"],["Guinea","GN"],["Guinea-Bissau","GW"],["Guyana","GY"],["Haiti","HT"],["Holy See (Vatican City State)","VA"],["Honduras","HN"],["Hong Kong","HK"],["Hungary","HU"],["Iceland","IS"],["India","IN"],["Indonesia","ID"],["Iran, Islamic Republic of","IR"],["Iraq","IQ"],["Ireland","IE"],["Isle of Man","IM"],["Israel","IL"],["Italy","IT"],["Jamaica","JM"],["Japan","JP"],["Jersey","JE"],["Jordan","JO"],["Kazakhstan","KZ"],["Kenya","KE"],["Kiribati","KI"],["Korea, Democratic People's Republic of","KP"],["Kuwait","KW"],["Kyrgyzstan","KG"],["Lao People's Democratic Republic","LA"],["Latvia","LV"],["Lebanon","LB"],["Lesotho","LS"],["Liberia","LR"],["Libyan Arab Jamahiriya","LY"],["Liechtenstein","LI"],["Lithuania","LT"],["Luxembourg","LU"],["Macao","MO"],["Macedonia, the former Yugoslav Republic of","MK"],["Madagascar","MG"],["Malawi","MW"],["Malaysia","MY"],["Maldives","MV"],["Mali","ML"],["Malta","MT"],["Martinique","MQ"],["Mauritania","MR"],["Mauritius","MU"],["Mayotte","YT"],["Mexico","MX"],["Moldova, Republic of","MD"],["Monaco","MC"],["Mongolia","MN"],["Montenegro","ME"],["Montserrat","MS"],["Morocco","MA"],["Mozambique","MZ"],["Myanmar","MM"],["Namibia","NA"],["Nauru","NR"],["Nepal","NP"],["Netherlands","NL"],["New Caledonia","NC"],["New Zealand","NZ"],["Nicaragua","NI"],["Niger","NE"],["Nigeria","NG"],["Niue","NU"],["Norfolk Island","NF"],["Norway","NO"],["Oman","OM"],["Pakistan","PK"],["Palestinian Territory, Occupied","PS"],["Panama","PA"],["Papua New Guinea","PG"],["Paraguay","PY"],["Peru","PE"],["Philippines","PH"],["Poland","PL"],["Portugal","PT"],["Qatar","QA"],["Reunion","RE"],["Romania","RO"],["Russian Federation","RU"],["Rwanda","RW"],["Saint Barthelemy","BL"],["Saint Helena, Ascension and Tristan da Cunha","SH"],["Saint Kitts and Nevis","KN"],["Saint Lucia","LC"],["Saint Martin (French part)","MF"],["Saint Pierre and Miquelon","PM"],["Saint Vincent and the Grenadines","VC"],["Samoa","WS"],["San Marino","SM"],["Sao Tome and Principe","ST"],["Saudi Arabia","SA"],["Senegal","SN"],["Serbia","RS"],["Seychelles","SC"],["Sierra Leone","SL"],["Singapore","SG"],["Sint Maarten (Dutch part)","SX"],["Slovakia","SK"],["Slovenia","SI"],["Solomon Islands","SB"],["Somalia","SO"],["South Africa","ZA"],["South Georgia and the South Sandwich Islands","GS"],["South Sudan","SS"],["Spain","ES"],["Sri Lanka","LK"],["Sudan","SD"],["Suriname","SR"],["Svalbard and Jan Mayen","SJ"],["Swaziland","SZ"],["Sweden","SE"],["Switzerland","CH"],["Syrian Arab Republic","SY"],["Taiwan","TW"],["Tajikistan","TJ"],["Tanzania, United Republic of","TZ"],["Thailand","TH"],["Timor-Leste","TL"],["Togo","TG"],["Tokelau","TK"],["Tonga","TO"],["Trinidad and Tobago","TT"],["Tunisia","TN"],["Turkey","TR"],["Turkmenistan","TM"],["Turks and Caicos Islands","TC"],["Tuvalu","TV"],["Uganda","UG"],["Ukraine","UA"],["United Arab Emirates","AE"],["United Kingdom","GB"],["United States","US"],["Uruguay","UY"],["Uzbekistan","UZ"],["Vanuatu","VU"],["Venezuela, Bolivarian Republic of","VE"],["Viet Nam","VN"],["Virgin Islands, British","VG"],["Virgin Islands, U.S.","VI"],["Wallis and Futuna","WF"],["Western Sahara","EH"],["Yemen","YE"],["Zambia","ZM"],["Zimbabwe","ZW"]]),loaded:[],countryCode:"",init:function(){var e=window.App.marketo;fetch("/wp-json/wp/v1/country_code/",{method:"GET",headers:{"Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(a){e.countryCode=a,e.marketoForms.forEach((function(a){e.load(a)}))})).catch((function(e){console.error("Error:",e.message)}))},load:function(e){var a=e,t=e.getAttribute("data-munchkinid"),n=e.getAttribute("data-formid"),i=App.marketo,o=a.getAttribute("data-currentstep"),r=a.getAttribute("data-event-name"),s=a.getAttribute("data-university-check"),l=MktoForms2.loadForm.bind(MktoForms2,"//go2.invicti.com",t,n);i.loaded.includes(n)||(i.loaded.push(n),function e(t){var u=t.shift();u.id="mktoForm_"+n,l((function(n){var l=n.getFormElem(),c=n.getFormElem().find("#Email"),d=l[0].parentElement,m=d.getAttribute("data-successurl"),v=d.getAttribute("data-newtab"),g=d.getAttribute("data-overlay"),f=d.getAttribute("data-buttonText"),S=d.getAttribute("data-linkedin-conversion-id"),p=l[0].querySelector(".mktoCheckboxList");p&&p.parentNode.parentNode.parentNode.classList.add("marketo-checkbox-row");var h=l[0].querySelector('[title="Privacy Policy"]');if(h&&h.parentNode.classList.add("marketo-privacy-line"),s&&c.length){var y=d.querySelector("#Marketo_Role__c");y.querySelector('option[value=""]').text=y.querySelector('option[value=""]').text+" *",y.closest(".mktoFormCol").classList.add("hidden-role-field","required-role-field"),c[0].onblur=function(){i.isUniversityMail(c[0].value,y)}}var b=l[0].parentNode.querySelector(".loading-marketo");b&&b.remove();var C=l[0].querySelector("button");""!=f&&(C.textContent=f),C.classList.add("btn","btn--primary","btn--full");var L={};i.utmKeys.forEach((function(e){L[e+"__c"]=localStorage.getItem(e)})),sessionStorage.getItem("ns_vwo_id")&&(L.vwo_id__c=sessionStorage.getItem("ns_vwo_id")),sessionStorage.getItem("ns_vwo_variation")&&(L.vwo_variation__c=sessionStorage.getItem("ns_vwo_variation")),L.Page_Prior_to_Form_URL__c=document.referrer,L.Form_Submit_URL__c=window.location.href,L.GA_Client_ID__c=i.getCookie("_ga"),L.GCLID__c=localStorage.getItem("gclid"),L.Landing_Page_URL__c=i.getCookie("ns_landing_page_key"),L.Netsparker__c="true",L.CountryCode="null"===i.countryCode?"":i.countryCode;var M=d.querySelector("#Country");M&&M.addEventListener("change",(function(){var e=i.countries.get(M.value);L.CountryCode=null!=e?e:L.CountryCode,m.includes("/getting-started")&&(m=m+"?country="+e),n.vals(L)})),n.vals(L);var k=l[0].querySelector('input[name="Phone"]');if(k&&(window.intlTelInput(k,{autoHideDialCode:!1,geoIpLookup:function(e){fetch("https://ipapi.co/json").then((function(e){return e.json()})).then((function(a){e(a.country_code)})).catch((function(){e("us")}))},nationalMode:!1,separateDialCode:!1}),k.addEventListener("input",(function(){var e=this.value,a=e.replace(/[^0-9]/g,"");"+"===e.charAt(0)&&(a="+"+a),this.value=a}))),parseInt(o)>0){var A=l[0].querySelector('[name="Email"]'),I=l[0].querySelector('[name="FirstName"]');C.textContent="Next",n.submittable(!1),A.focus();var E=d.querySelector(".get-demo-form-step-2"),_=d.querySelector(".get-demo-form-step-3");C.onclick=function(){var e=d.getAttribute("data-currentstep"),a=n.getValues();if("1"==e&&(""!=a.Email&&A.classList.contains("mktoValid")&&A.classList.contains("email-validated")&&(d.dataset.currentstep=2,E.classList.add("visited")),setTimeout((function(){I.focus()}),600)),"2"==e){var t=l[0].querySelector('[name="LastName"]'),i=l[0].querySelector('[name="Company"]');""!=a.FirstName&&I.classList.contains("mktoValid")&&""!=a.LastName&&t.classList.contains("mktoValid")&&""!=a.Company&&i.classList.contains("mktoValid")&&(d.dataset.currentstep=3,_.classList.add("visited"),C.textContent="3 Steps Trial Request Form"==r?"Start free trial":"Get a demo"),setTimeout((function(){k.focus()}),400)}"3"==e&&n.validate()&&(n.submittable(!0),n.submit())},d.querySelectorAll(".get-demo-form-steps button").forEach((function(e){e.onclick=function(){e.classList.contains("visited")&&(d.dataset.currentstep=parseInt(e.textContent)),e.classList.contains("get-demo-form-step-1")&&(E.classList.remove("visited"),_.classList.remove("visited"),C.textContent="Next",c[0].classList.remove("email-validated")),e.classList.contains("get-demo-form-step-2")&&(_.classList.remove("visited"),C.textContent="Next")}}))}n.onSuccess((function(){dispatchEvent(new CustomEvent("marketoFormSubmitted"));var e=0;return window.lintrk&&S&&"linkedin"==localStorage.getItem("utm_source")&&(window.lintrk("track",{conversion_id:S}),e=1e3),sessionStorage.setItem("formValues",JSON.stringify(n.getValues())),m&&(s&&"Student"==n.getValues().Marketo_Role__c&&(m="/getting-started-edu"),v?Object.assign(document.createElement("a"),{target:"_blank",href:m}).click():setTimeout((function(){location.href=m}),e)),g&&d.classList.add("success-overlay"),!1})),c.length&&(c[0].onkeydown=function(){c[0].classList.remove("email-validated")}),n.onValidate((function(){var e=n.getValues();if(s){var t=n.getFormElem().find("#Marketo_Role__c");t[0].classList.contains("mktoRequired")&&(""==e.Marketo_Role__c?(n.showErrorMessage("Please select a role!",t),n.submittable(!1)):n.submittable(!0))}e.Email&&c.length&&!c[0].classList.contains("email-validated")&&(i.validateEmail(c,n,o,a),n.submittable(!1))})),i.destyle(n),window.addEventListener("resize",(function(){i.destyle(n)}),!1),u.id="",t.length&&e(t)}))}([].slice.call(document.querySelectorAll('[data-mktoformid="'+n+'"]'))))},validateEmail:function(e,a,t,n){var i=e[0].value;if(!i)return!1;i!==window.validatingEmail&&(window.validatingEmail=i,fetch("/wp-json/wp/v2/email/validate?email="+encodeURIComponent(i),{method:"GET",headers:{"Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(i){if(console.log("Email validation response:",i),!0===i.business||"true"===i.business){if(e[0].classList.add("email-validated"),e[0].classList.remove("mktoInvalid"),parseInt(t)>0){var o=n.querySelector(".get-demo-form-step-2");"1"==t&&(n.dataset.currentstep=2,o.classList.add("visited"))}0!=parseInt(t)&&3!=parseInt(t)||(a.submittable(!0),a.submit())}else{e[0].classList.remove("email-validated"),e[0].classList.remove("mktoValid"),e[0].classList.add("mktoInvalid");var r=i.business||"Must be a valid email. example@yourdomain.com";a.showErrorMessage(r,e),e[0].scrollIntoView()}window.validatingEmail=""})).catch((function(t){console.error("Email validation error:",t),e[0].classList.remove("email-validated"),e[0].classList.add("mktoInvalid"),a.showErrorMessage("Email validation failed. Please try again.",e)})))},isUniversityMail:function(e,a){fetch("/wp-json/wp/v2/email/validate?email="+e,{method:"GET",headers:{"Content-Type":"application/json"}}).then((function(e){return e.json()})).then((function(e){"true"===e.university?(a.closest(".mktoFormCol").classList.remove("hidden-role-field"),a.classList.add("mktoRequired")):(a.closest(".mktoFormCol").classList.add("hidden-role-field"),a.classList.remove("mktoRequired"))})).catch((function(e){console.error("Error:",e)}))},getCookie:function(a){var t={};return document.cookie.split(";").forEach((function(a){var n=e(a.split("="),2),i=n[0],o=n[1];t[i.trim()]=o})),t[a]},destyle:function(e,a){var t=e.getFormElem()[0],n=getSelection.call.bind([].slice);n(t.querySelectorAll("[style]")).concat(t).forEach((function(e){e.removeAttribute("style")})),n(document.styleSheets).forEach((function(e){(-1!=[mktoForms2BaseStyle,mktoForms2ThemeStyle].indexOf(e.ownerNode)||t.contains(e.ownerNode))&&(e.disabled=!0)})),a||t.setAttribute("data-styles-ready","true")}}),App.init(App.marketo.init)}},function(e){var a;a=6409,e(e.s=a)}]); /* * International Telephone Input v15.1.0 * https://github.com/jackocnr/intl-tel-input.git * Licensed under the MIT license */ !function(a){var b=function(a,b,c){"use strict";return function(){function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}function e(a,b,c){return b&&d(a.prototype,b),c&&d(a,c),a}for(var f=[["Afghanistan (‫افغانستان‬‎)","af","93"],["Albania (Shqipëri)","al","355"],["Algeria (‫الجزائر‬‎)","dz","213"],["American Samoa","as","1684"],["Andorra","ad","376"],["Angola","ao","244"],["Anguilla","ai","1264"],["Antigua and Barbuda","ag","1268"],["Argentina","ar","54"],["Armenia (Հայաստան)","am","374"],["Aruba","aw","297"],["Australia","au","61",0],["Austria (Österreich)","at","43"],["Azerbaijan (Azərbaycan)","az","994"],["Bahamas","bs","1242"],["Bahrain (‫البحرين‬‎)","bh","973"],["Bangladesh (বাংলাদেশ)","bd","880"],["Barbados","bb","1246"],["Belarus (Беларусь)","by","375"],["Belgium (België)","be","32"],["Belize","bz","501"],["Benin (Bénin)","bj","229"],["Bermuda","bm","1441"],["Bhutan (འབྲུག)","bt","975"],["Bolivia","bo","591"],["Bosnia and Herzegovina","ba","387"],["Botswana","bw","267"],["Brazil (Brasil)","br","55"],["British Indian Ocean Territory","io","246"],["British Virgin Islands","vg","1284"],["Brunei","bn","673"],["Bulgaria (България)","bg","359"],["Burkina Faso","bf","226"],["Burundi (Uburundi)","bi","257"],["Cambodia (កម្ពុជា)","kh","855"],["Cameroon (Cameroun)","cm","237"],["Canada","ca","1",1,["204","226","236","249","250","289","306","343","365","387","403","416","418","431","437","438","450","506","514","519","548","579","581","587","604","613","639","647","672","705","709","742","778","780","782","807","819","825","867","873","902","905"]],["Cape Verde (Kabu Verdi)","cv","238"],["Caribbean Netherlands","bq","599",1],["Cayman Islands","ky","1345"],["Central African Republic","cf","236"],["Chad (Tchad)","td","235"],["Chile","cl","56"],["China (中国)","cn","86"],["Christmas Island","cx","61",2],["Cocos (Keeling) Islands","cc","61",1],["Colombia","co","57"],["Comoros (‫جزر القمر‬‎)","km","269"],["Congo (DRC)","cd","243"],["Congo (Republic)","cg","242"],["Cook Islands","ck","682"],["Costa Rica","cr","506"],["Côte d’Ivoire","ci","225"],["Croatia (Hrvatska)","hr","385"],["Cuba","cu","53"],["Curaçao","cw","599",0],["Cyprus (Κύπρος)","cy","357"],["Czech Republic","cz","420"],["Denmark (Danmark)","dk","45"],["Djibouti","dj","253"],["Dominica","dm","1767"],["Dominican Republic","do","1",2,["809","829","849"]],["Ecuador","ec","593"],["Egypt (‫مصر‬‎)","eg","20"],["El Salvador","sv","503"],["Equatorial Guinea","gq","240"],["Eritrea","er","291"],["Estonia (Eesti)","ee","372"],["Ethiopia","et","251"],["Falkland Islands","fk","500"],["Faroe Islands (Føroyar)","fo","298"],["Fiji","fj","679"],["Finland (Suomi)","fi","358",0],["France","fr","33"],["French Guiana","gf","594"],["French Polynesia","pf","689"],["Gabon","ga","241"],["Gambia","gm","220"],["Georgia (საქართველო)","ge","995"],["Germany (Deutschland)","de","49"],["Ghana (Gaana)","gh","233"],["Gibraltar","gi","350"],["Greece (Ελλάδα)","gr","30"],["Greenland (Kalaallit Nunaat)","gl","299"],["Grenada","gd","1473"],["Guadeloupe","gp","590",0],["Guam","gu","1671"],["Guatemala","gt","502"],["Guernsey","gg","44",1],["Guinea (Guinée)","gn","224"],["Guinea-Bissau (Guiné Bissau)","gw","245"],["Guyana","gy","592"],["Haiti","ht","509"],["Honduras","hn","504"],["Hong Kong (香港)","hk","852"],["Hungary (Magyarország)","hu","36"],["Iceland (Ísland)","is","354"],["India (भारत)","in","91"],["Indonesia","id","62"],["Iran (‫ایران‬‎)","ir","98"],["Iraq (‫العراق‬‎)","iq","964"],["Ireland","ie","353"],["Isle of Man","im","44",2],["Israel (‫ישראל‬‎)","il","972"],["Italy (Italia)","it","39",0],["Jamaica","jm","1",4,["876","658"]],["Japan (日本)","jp","81"],["Jersey","je","44",3],["Jordan (‫الأردن‬‎)","jo","962"],["Kazakhstan (Казахстан)","kz","7",1],["Kenya","ke","254"],["Kiribati","ki","686"],["Kosovo","xk","383"],["Kuwait (‫الكويت‬‎)","kw","965"],["Kyrgyzstan (Кыргызстан)","kg","996"],["Laos (ລາວ)","la","856"],["Latvia (Latvija)","lv","371"],["Lebanon (‫لبنان‬‎)","lb","961"],["Lesotho","ls","266"],["Liberia","lr","231"],["Libya (‫ليبيا‬‎)","ly","218"],["Liechtenstein","li","423"],["Lithuania (Lietuva)","lt","370"],["Luxembourg","lu","352"],["Macau (澳門)","mo","853"],["Macedonia (FYROM)","mk","389"],["Madagascar (Madagasikara)","mg","261"],["Malawi","mw","265"],["Malaysia","my","60"],["Maldives","mv","960"],["Mali","ml","223"],["Malta","mt","356"],["Marshall Islands","mh","692"],["Martinique","mq","596"],["Mauritania (‫موريتانيا‬‎)","mr","222"],["Mauritius (Moris)","mu","230"],["Mayotte","yt","262",1],["Mexico (México)","mx","52"],["Micronesia","fm","691"],["Moldova (Republica Moldova)","md","373"],["Monaco","mc","377"],["Mongolia (Монгол)","mn","976"],["Montenegro (Crna Gora)","me","382"],["Montserrat","ms","1664"],["Morocco (‫المغرب‬‎)","ma","212",0],["Mozambique (Moçambique)","mz","258"],["Myanmar (Burma) (မြန်မာ)","mm","95"],["Namibia (Namibië)","na","264"],["Nauru","nr","674"],["Nepal (नेपाल)","np","977"],["Netherlands (Nederland)","nl","31"],["New Caledonia","nc","687"],["New Zealand","nz","64"],["Nicaragua","ni","505"],["Niger (Nijar)","ne","227"],["Nigeria","ng","234"],["Niue","nu","683"],["Norfolk Island","nf","672"],["North Korea","kp","850"],["Northern Mariana Islands","mp","1670"],["Norway (Norge)","no","47",0],["Oman (‫عُمان‬‎)","om","968"],["Pakistan (‫پاکستان‬‎)","pk","92"],["Palau","pw","680"],["Palestine (‫فلسطين‬‎)","ps","970"],["Panama (Panamá)","pa","507"],["Papua New Guinea","pg","675"],["Paraguay","py","595"],["Peru (Perú)","pe","51"],["Philippines","ph","63"],["Poland (Polska)","pl","48"],["Portugal","pt","351"],["Puerto Rico","pr","1",3,["787","939"]],["Qatar (‫قطر‬‎)","qa","974"],["Réunion (La Réunion)","re","262",0],["Romania (România)","ro","40"],["Russia (Россия)","ru","7",0],["Rwanda","rw","250"],["Saint Barthélemy","bl","590",1],["Saint Helena","sh","290"],["Saint Kitts and Nevis","kn","1869"],["Saint Lucia","lc","1758"],["Saint Martin (Saint-Martin)","mf","590",2],["Saint Pierre and Miquelon","pm","508"],["Saint Vincent and the Grenadines","vc","1784"],["Samoa","ws","685"],["San Marino","sm","378"],["São Tomé and Príncipe","st","239"],["Saudi Arabia","sa","966"],["Senegal (Sénégal)","sn","221"],["Serbia (Србија)","rs","381"],["Seychelles","sc","248"],["Sierra Leone","sl","232"],["Singapore","sg","65"],["Sint Maarten","sx","1721"],["Slovakia (Slovensko)","sk","421"],["Slovenia (Slovenija)","si","386"],["Solomon Islands","sb","677"],["Somalia (Soomaaliya)","so","252"],["South Africa","za","27"],["South Korea (대한민국)","kr","82"],["South Sudan (‫جنوب السودان‬‎)","ss","211"],["Spain (España)","es","34"],["Sri Lanka (ශ්‍රී ලංකාව)","lk","94"],["Sudan (‫السودان‬‎)","sd","249"],["Suriname","sr","597"],["Svalbard and Jan Mayen","sj","47",1],["Swaziland","sz","268"],["Sweden (Sverige)","se","46"],["Switzerland (Schweiz)","ch","41"],["Syria (‫سوريا‬‎)","sy","963"],["Taiwan (台灣)","tw","886"],["Tajikistan","tj","992"],["Tanzania","tz","255"],["Thailand (ไทย)","th","66"],["Timor-Leste","tl","670"],["Togo","tg","228"],["Tokelau","tk","690"],["Tonga","to","676"],["Trinidad and Tobago","tt","1868"],["Tunisia (‫تونس‬‎)","tn","216"],["Turkey (Türkiye)","tr","90"],["Turkmenistan","tm","993"],["Turks and Caicos Islands","tc","1649"],["Tuvalu","tv","688"],["U.S. Virgin Islands","vi","1340"],["Uganda","ug","256"],["Ukraine (Україна)","ua","380"],["United Arab Emirates","ae","971"],["United Kingdom","gb","44",0],["United States","us","1",0],["Uruguay","uy","598"],["Uzbekistan (Oʻzbekiston)","uz","998"],["Vanuatu","vu","678"],["Vatican City (Città del Vaticano)","va","39",1],["Venezuela","ve","58"],["Vietnam (Việt Nam)","vn","84"],["Wallis and Futuna","wf","681"],["Western Sahara (‫الصحراء الغربية‬‎)","eh","212",1],["Yemen (‫اليمن‬‎)","ye","967"],["Zambia","zm","260"],["Zimbabwe","zw","263"],["Åland Islands","ax","358",1]],g=0;g<f.length;g++){var h=f[g];f[g]={name:h[0],iso2:h[1],dialCode:h[2],priority:h[3]||0,areaCodes:h[4]||null}}a.intlTelInputGlobals={getInstance:function(b){var c=b.getAttribute("data-intl-tel-input-id");return a.intlTelInputGlobals.instances[c]},instances:{}};var i=0,j={allowDropdown:!0,autoHideDialCode:!0,autoPlaceholder:"polite",customContainer:"",customPlaceholder:null,dropdownContainer:null,excludeCountries:[],formatOnDisplay:!0,geoIpLookup:null,hiddenInput:"",initialCountry:"",localizedCountries:null,nationalMode:!0,onlyCountries:[],placeholderNumberType:"MOBILE",preferredCountries:["us","gb"],separateDialCode:!1,utilsScript:""},k=["800","822","833","844","855","866","877","880","881","882","883","884","885","886","887","888","889"];a.addEventListener("load",function(){a.intlTelInputGlobals.windowLoaded=!0});var l=function(a,b){for(var c=Object.keys(a),d=0;d<c.length;d++)b(c[d],a[c[d]])},m=function(b){l(a.intlTelInputGlobals.instances,function(c){a.intlTelInputGlobals.instances[c][b]()})},n=function(){function d(a,b){var e=this;c(this,d),this.id=i++,this.a=a,this.b=null,this.c=null;var f=b||{};this.d={},l(j,function(a,b){e.d[a]=f.hasOwnProperty(a)?f[a]:b}),this.e=Boolean(a.getAttribute("placeholder"))}return e(d,[{key:"_init",value:function(){var a=this;if(this.d.nationalMode&&(this.d.autoHideDialCode=!1),this.d.separateDialCode&&(this.d.autoHideDialCode=this.d.nationalMode=!1),this.g=/Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),this.g&&(b.body.classList.add("iti-mobile"),this.d.dropdownContainer||(this.d.dropdownContainer=b.body)),"undefined"!=typeof Promise){var c=new Promise(function(b,c){a.h=b,a.i=c}),d=new Promise(function(b,c){a.i0=b,a.i1=c});this.promise=Promise.all([c,d])}else this.h=this.i=function(){},this.i0=this.i1=function(){};this.s={},this._b(),this._f(),this._h(),this._i(),this._i3()}},{key:"_b",value:function(){this._d(),this._d2(),this._e(),this.d.localizedCountries&&this._d0(),(this.d.onlyCountries.length||this.d.localizedCountries)&&this.p.sort(this._d1)}},{key:"_c",value:function(a,b,c){this.q.hasOwnProperty(b)||(this.q[b]=[]);var d=c||0;this.q[b][d]=a}},{key:"_d",value:function(){if(this.d.onlyCountries.length){var a=this.d.onlyCountries.map(function(a){return a.toLowerCase()});this.p=f.filter(function(b){return a.indexOf(b.iso2)>-1})}else if(this.d.excludeCountries.length){var b=this.d.excludeCountries.map(function(a){return a.toLowerCase()});this.p=f.filter(function(a){return-1===b.indexOf(a.iso2)})}else this.p=f}},{key:"_d0",value:function(){for(var a=0;a<this.p.length;a++){var b=this.p[a].iso2.toLowerCase();this.d.localizedCountries.hasOwnProperty(b)&&(this.p[a].name=this.d.localizedCountries[b])}}},{key:"_d1",value:function(a,b){return a.name.localeCompare(b.name)}},{key:"_d2",value:function(){this.q={};for(var a=0;a<this.p.length;a++){var b=this.p[a];if(this._c(b.iso2,b.dialCode,b.priority),b.areaCodes)for(var c=0;c<b.areaCodes.length;c++)this._c(b.iso2,b.dialCode+b.areaCodes[c])}}},{key:"_e",value:function(){this.preferredCountries=[];for(var a=0;a<this.d.preferredCountries.length;a++){var b=this.d.preferredCountries[a].toLowerCase(),c=this._y(b,!1,!0);c&&this.preferredCountries.push(c)}}},{key:"_e2",value:function(a,c,d){var e=b.createElement(a);return c&&l(c,function(a,b){return e.setAttribute(a,b)}),d&&d.appendChild(e),e}},{key:"_f",value:function(){this.a.setAttribute("autocomplete","off");var a="intl-tel-input";this.d.allowDropdown&&(a+=" allow-dropdown"),this.d.separateDialCode&&(a+=" separate-dial-code"),this.d.customContainer&&(a+=" ",a+=this.d.customContainer);var b=this._e2("div",{"class":a});if(this.a.parentNode.insertBefore(b,this.a),this.k=this._e2("div",{"class":"flag-container"},b),b.appendChild(this.a),this.selectedFlag=this._e2("div",{"class":"selected-flag",role:"combobox","aria-owns":"country-listbox"},this.k),this.l=this._e2("div",{"class":"iti-flag"},this.selectedFlag),this.d.separateDialCode&&(this.t=this._e2("div",{"class":"selected-dial-code"},this.selectedFlag)),this.d.allowDropdown&&(this.selectedFlag.setAttribute("tabindex","0"),this.u=this._e2("div",{"class":"iti-arrow"},this.selectedFlag),this.m=this._e2("ul",{"class":"country-list hide",id:"country-listbox","aria-expanded":"false",role:"listbox"}),this.preferredCountries.length&&(this._g(this.preferredCountries,"preferred"),this._e2("li",{"class":"divider",role:"separator","aria-disabled":"true"},this.m)),this._g(this.p,"standard"),this.d.dropdownContainer?(this.dropdown=this._e2("div",{"class":"intl-tel-input iti-container"}),this.dropdown.appendChild(this.m)):this.k.appendChild(this.m)),this.d.hiddenInput){var c=this.d.hiddenInput,d=this.a.getAttribute("name");if(d){var e=d.lastIndexOf("[");-1!==e&&(c="".concat(d.substr(0,e),"[").concat(c,"]"))}this.hiddenInput=this._e2("input",{type:"hidden",name:c}),b.appendChild(this.hiddenInput)}}},{key:"_g",value:function(a,b){for(var c="",d=0;d<a.length;d++){var e=a[d];c+="<li class='country ".concat(b,"' tabIndex='-1' id='iti-item-").concat(e.iso2,"' role='option' data-dial-code='").concat(e.dialCode,"' data-country-code='").concat(e.iso2,"'>"),c+="<div class='flag-box'><div class='iti-flag ".concat(e.iso2,"'></div></div>"),c+="<span class='country-name'>".concat(e.name,"</span>"),c+="<span class='dial-code'>+".concat(e.dialCode,"</span>"),c+="</li>"}this.m.insertAdjacentHTML("beforeend",c)}},{key:"_h",value:function(){var a=this.a.value,b=this._5(a),c=this._w(a),d=this.d,e=d.initialCountry,f=d.nationalMode,g=d.autoHideDialCode,h=d.separateDialCode;b&&!c?this._v(a):"auto"!==e&&(e?this._z(e.toLowerCase()):b&&c?this._z("us"):(this.j=this.preferredCountries.length?this.preferredCountries[0].iso2:this.p[0].iso2,a||this._z(this.j)),a||f||g||h||(this.a.value="+".concat(this.s.dialCode))),a&&this._u(a)}},{key:"_i",value:function(){this._j(),this.d.autoHideDialCode&&this._l(),this.d.allowDropdown&&this._i2(),this.hiddenInput&&this._i0()}},{key:"_i0",value:function(){var a=this;this._a14=function(){a.hiddenInput.value=a.getNumber()},this.a.form&&this.a.form.addEventListener("submit",this._a14)}},{key:"_i1",value:function(){for(var a=this.a;a&&"LABEL"!==a.tagName;)a=a.parentNode;return a}},{key:"_i2",value:function(){var a=this;this._a9=function(b){a.m.classList.contains("hide")?a.a.focus():b.preventDefault()};var b=this._i1();b&&b.addEventListener("click",this._a9),this._a10=function(){!a.m.classList.contains("hide")||a.a.disabled||a.a.readOnly||a._n()},this.selectedFlag.addEventListener("click",this._a10),this._a11=function(b){a.m.classList.contains("hide")&&-1!==["ArrowUp","ArrowDown"," ","Enter"].indexOf(b.key)&&(b.preventDefault(),b.stopPropagation(),a._n()),"Tab"===b.key&&a._2()},this.k.addEventListener("keydown",this._a11)}},{key:"_i3",value:function(){var b=this;this.d.utilsScript&&!a.intlTelInputUtils?a.intlTelInputGlobals.windowLoaded?a.intlTelInputGlobals.loadUtils(this.d.utilsScript):a.addEventListener("load",function(){a.intlTelInputGlobals.loadUtils(b.d.utilsScript)}):this.i0(),"auto"===this.d.initialCountry?this._i4():this.h()}},{key:"_i4",value:function(){a.intlTelInputGlobals.autoCountry?this.handleAutoCountry():a.intlTelInputGlobals.startedLoadingAutoCountry||(a.intlTelInputGlobals.startedLoadingAutoCountry=!0,"function"==typeof this.d.geoIpLookup&&this.d.geoIpLookup(function(b){a.intlTelInputGlobals.autoCountry=b.toLowerCase(),setTimeout(function(){return m("handleAutoCountry")})},function(){return m("rejectAutoCountryPromise")}))}},{key:"_j",value:function(){var a=this;this._a12=function(){a._v(a.a.value)&&a._8()},this.a.addEventListener("keyup",this._a12),this._a13=function(){setTimeout(a._a12)},this.a.addEventListener("cut",this._a13),this.a.addEventListener("paste",this._a13)}},{key:"_j2",value:function(a){var b=this.a.getAttribute("maxlength");return b&&a.length>b?a.substr(0,b):a}},{key:"_l",value:function(){var a=this;this._a8=function(){a._l2()},this.a.form&&this.a.form.addEventListener("submit",this._a8),this.a.addEventListener("blur",this._a8)}},{key:"_l2",value:function(){if("+"===this.a.value.charAt(0)){var a=this._m(this.a.value);a&&this.s.dialCode!==a||(this.a.value="")}}},{key:"_m",value:function(a){return a.replace(/\D/g,"")}},{key:"_m2",value:function(a){var c=b.createEvent("Event");c.initEvent(a,!0,!0),this.a.dispatchEvent(c)}},{key:"_n",value:function(){this.m.classList.remove("hide"),this.m.setAttribute("aria-expanded","true"),this._o(),this.b&&(this._x(this.b,!1),this._3(this.b,!0)),this._p(),this.u.classList.add("up"),this._m2("open:countrydropdown")}},{key:"_n2",value:function(a,b,c){c&&!a.classList.contains(b)?a.classList.add(b):!c&&a.classList.contains(b)&&a.classList.remove(b)}},{key:"_o",value:function(){var c=this;if(this.d.dropdownContainer&&this.d.dropdownContainer.appendChild(this.dropdown),!this.g){var d=this.a.getBoundingClientRect(),e=a.pageYOffset||b.documentElement.scrollTop,f=d.top+e,g=this.m.offsetHeight,h=f+this.a.offsetHeight+g<e+a.innerHeight,i=f-g>e;if(this._n2(this.m,"dropup",!h&&i),this.d.dropdownContainer){var j=!h&&i?0:this.a.offsetHeight;this.dropdown.style.top="".concat(f+j,"px"),this.dropdown.style.left="".concat(d.left+b.body.scrollLeft,"px"),this._a4=function(){return c._2()},a.addEventListener("scroll",this._a4)}}}},{key:"_o2",value:function(a){for(var b=a;b&&b!==this.m&&!b.classList.contains("country");)b=b.parentNode;return b===this.m?null:b}},{key:"_p",value:function(){var a=this;this._a0=function(b){var c=a._o2(b.target);c&&a._x(c,!1)},this.m.addEventListener("mouseover",this._a0),this._a1=function(b){var c=a._o2(b.target);c&&a._1(c)},this.m.addEventListener("click",this._a1);var c=!0;this._a2=function(){c||a._2(),c=!1},b.documentElement.addEventListener("click",this._a2);var d="",e=null;this._a3=function(b){b.preventDefault(),"ArrowUp"===b.key||"ArrowDown"===b.key?a._q(b.key):"Enter"===b.key?a._r():"Escape"===b.key?a._2():/^[a-zA-ZÀ-ÿ ]$/.test(b.key)&&(e&&clearTimeout(e),d+=b.key.toLowerCase(),a._s(d),e=setTimeout(function(){d=""},1e3))},b.addEventListener("keydown",this._a3)}},{key:"_q",value:function(a){var b="ArrowUp"===a?this.c.previousElementSibling:this.c.nextElementSibling;b&&(b.classList.contains("divider")&&(b="ArrowUp"===a?b.previousElementSibling:b.nextElementSibling),this._x(b,!0))}},{key:"_r",value:function(){this.c&&this._1(this.c)}},{key:"_s",value:function(a){for(var b=0;b<this.p.length;b++)if(this._t(this.p[b].name,a)){var c=this.m.querySelector("#iti-item-".concat(this.p[b].iso2));this._x(c,!1),this._3(c,!0);break}}},{key:"_t",value:function(a,b){return a.substr(0,b.length).toLowerCase()===b}},{key:"_u",value:function(b){var c=b;if(this.d.formatOnDisplay&&a.intlTelInputUtils&&this.s){var d=!this.d.separateDialCode&&(this.d.nationalMode||"+"!==c.charAt(0)),e=intlTelInputUtils.numberFormat,f=e.NATIONAL,g=e.INTERNATIONAL,h=d?f:g;c=intlTelInputUtils.formatNumber(c,this.s.iso2,h)}c=this._7(c),this.a.value=c}},{key:"_v",value:function(a){var b=a,c="1"===this.s.dialCode;b&&this.d.nationalMode&&c&&"+"!==b.charAt(0)&&("1"!==b.charAt(0)&&(b="1".concat(b)),b="+".concat(b));var d=this._5(b),e=this._m(b),f=null;if(d){var g=this.q[this._m(d)],h=-1!==g.indexOf(this.s.iso2),i="+1"===d&&e.length>=4;if(!("1"===this.s.dialCode&&this._w(e))&&(!h||i))for(var j=0;j<g.length;j++)if(g[j]){f=g[j];break}}else"+"===b.charAt(0)&&e.length?f="":b&&"+"!==b||(f=this.j);return null!==f&&this._z(f)}},{key:"_w",value:function(a){var b=this._m(a);if("1"===b.charAt(0)){var c=b.substr(1,3);return-1!==k.indexOf(c)}return!1}},{key:"_x",value:function(a,b){var c=this.c;c&&c.classList.remove("highlight"),this.c=a,this.c.classList.add("highlight"),b&&this.c.focus()}},{key:"_y",value:function(a,b,c){for(var d=b?f:this.p,e=0;e<d.length;e++)if(d[e].iso2===a)return d[e];if(c)return null;throw new Error("No country data for '".concat(a,"'"))}},{key:"_z",value:function(a){var b=this.s.iso2?this.s:{};this.s=a?this._y(a,!1,!1):{},this.s.iso2&&(this.j=this.s.iso2),this.l.setAttribute("class","iti-flag ".concat(a));var c=a?"".concat(this.s.name,": +").concat(this.s.dialCode):"Unknown";if(this.selectedFlag.setAttribute("title",c),this.d.separateDialCode){var d=this.s.dialCode?"+".concat(this.s.dialCode):"";this.t.innerHTML=d,this.a.style.paddingLeft="".concat(this.selectedFlag.offsetWidth+6,"px")}if(this._0(),this.d.allowDropdown){var e=this.b;if(e&&(e.classList.remove("active"),e.setAttribute("aria-selected","false")),a){var f=this.m.querySelector("#iti-item-".concat(a));f.setAttribute("aria-selected","true"),f.classList.add("active"),this.b=f,this.m.setAttribute("aria-activedescendant",f.getAttribute("id"))}}return b.iso2!==a}},{key:"_0",value:function(){var b="aggressive"===this.d.autoPlaceholder||!this.e&&"polite"===this.d.autoPlaceholder;if(a.intlTelInputUtils&&b){var c=intlTelInputUtils.numberType[this.d.placeholderNumberType],d=this.s.iso2?intlTelInputUtils.getExampleNumber(this.s.iso2,this.d.nationalMode,c):"";d=this._7(d),"function"==typeof this.d.customPlaceholder&&(d=this.d.customPlaceholder(d,this.s)),this.a.setAttribute("placeholder",d)}}},{key:"_1",value:function(a){var b=this._z(a.getAttribute("data-country-code"));this._2(),this._4(a.getAttribute("data-dial-code"),!0),this.a.focus();var c=this.a.value.length;this.a.setSelectionRange(c,c),b&&this._8()}},{key:"_2",value:function(){this.m.classList.add("hide"),this.m.setAttribute("aria-expanded","false"),this.u.classList.remove("up"),b.removeEventListener("keydown",this._a3),b.documentElement.removeEventListener("click",this._a2),this.m.removeEventListener("mouseover",this._a0),this.m.removeEventListener("click",this._a1),this.d.dropdownContainer&&(this.g||a.removeEventListener("scroll",this._a4),this.dropdown.parentNode&&this.dropdown.parentNode.removeChild(this.dropdown)),this._m2("close:countrydropdown")}},{key:"_3",value:function(c,d){var e=this.m,f=a.pageYOffset||b.documentElement.scrollTop,g=e.offsetHeight,h=e.getBoundingClientRect().top+f,i=h+g,j=c.offsetHeight,k=c.getBoundingClientRect().top+f,l=k+j,m=k-h+e.scrollTop,n=g/2-j/2;if(k<h)d&&(m-=n),e.scrollTop=m;else if(l>i){d&&(m+=n);var o=g-j;e.scrollTop=m-o}}},{key:"_4",value:function(a,b){var c,d=this.a.value,e="+".concat(a);if("+"===d.charAt(0)){var f=this._5(d);c=f?d.replace(f,e):e}else{if(this.d.nationalMode||this.d.separateDialCode)return;if(d)c=e+d;else{if(!b&&this.d.autoHideDialCode)return;c=e}}this.a.value=c}},{key:"_5",value:function(a){var b="";if("+"===a.charAt(0))for(var c="",d=0;d<a.length;d++){var e=a.charAt(d);if(!isNaN(parseInt(e,10))&&(c+=e,this.q[c]&&(b=a.substr(0,d+1)),4===c.length))break}return b}},{key:"_6",value:function(){var a=this.a.value.trim(),b=this.s.dialCode,c=this._m(a),d="1"===c.charAt(0)?c:"1".concat(c);return(this.d.separateDialCode&&"+"!==a.charAt(0)?"+".concat(b):a&&"+"!==a.charAt(0)&&"1"!==a.charAt(0)&&b&&"1"===b.charAt(0)&&4===b.length&&b!==d.substr(0,4)?b.substr(1):"")+a}},{key:"_7",value:function(a){var b=a;if(this.d.separateDialCode){var c=this._5(b);if(c){null!==this.s.areaCodes&&(c="+".concat(this.s.dialCode));var d=" "===b[c.length]||"-"===b[c.length]?c.length+1:c.length;b=b.substr(d)}}return this._j2(b)}},{key:"_8",value:function(){this._m2("countrychange")}},{key:"handleAutoCountry",value:function(){"auto"===this.d.initialCountry&&(this.j=a.intlTelInputGlobals.autoCountry,this.a.value||this.setCountry(this.j),this.h())}},{key:"handleUtils",value:function(){a.intlTelInputUtils&&(this.a.value&&this._u(this.a.value),this._0()),this.i0()}},{key:"destroy",value:function(){var b=this.a.form;if(this.d.allowDropdown){this._2(),this.selectedFlag.removeEventListener("click",this._a10),this.k.removeEventListener("keydown",this._a11);var c=this._i1();c&&c.removeEventListener("click",this._a9)}this.hiddenInput&&b&&b.removeEventListener("submit",this._a14),this.d.autoHideDialCode&&(b&&b.removeEventListener("submit",this._a8),this.a.removeEventListener("blur",this._a8)),this.a.removeEventListener("keyup",this._a12),this.a.removeEventListener("cut",this._a13),this.a.removeEventListener("paste",this._a13),this.a.removeAttribute("data-intl-tel-input-id");var d=this.a.parentNode;d.parentNode.insertBefore(this.a,d),d.parentNode.removeChild(d),delete a.intlTelInputGlobals.instances[this.id]}},{key:"getExtension",value:function(){return a.intlTelInputUtils?intlTelInputUtils.getExtension(this._6(),this.s.iso2):""}},{key:"getNumber",value:function(b){if(a.intlTelInputUtils){var c=this.s.iso2;return intlTelInputUtils.formatNumber(this._6(),c,b)}return""}},{key:"getNumberType",value:function(){return a.intlTelInputUtils?intlTelInputUtils.getNumberType(this._6(),this.s.iso2):-99}},{key:"getSelectedCountryData",value:function(){return this.s}},{key:"getValidationError",value:function(){if(a.intlTelInputUtils){var b=this.s.iso2;return intlTelInputUtils.getValidationError(this._6(),b)}return-99}},{key:"isValidNumber",value:function(){var b=this._6().trim(),c=this.d.nationalMode?this.s.iso2:"";return a.intlTelInputUtils?intlTelInputUtils.isValidNumber(b,c):null}},{key:"setCountry",value:function(a){var b=a.toLowerCase();this.l.classList.contains(b)||(this._z(b),this._4(this.s.dialCode,!1),this._8())}},{key:"setNumber",value:function(a){var b=this._v(a);this._u(a),b&&this._8()}},{key:"setPlaceholderNumberType",value:function(a){this.d.placeholderNumberType=a,this._0()}}]),d}();a.intlTelInputGlobals.getCountryData=function(){return f};var o=function(a,c,d){var e=b.createElement("script");e.onload=function(){m("handleUtils"),c&&c()},e.onerror=function(){m("rejectUtilsScriptPromise"),d&&d()},e.className="iti-load-utils",e.async=!0,e.src=a,b.body.appendChild(e)};return a.intlTelInputGlobals.loadUtils=function(b){if(!a.intlTelInputUtils&&!a.intlTelInputGlobals.startedLoadingUtilsScript){if(a.intlTelInputGlobals.startedLoadingUtilsScript=!0,"undefined"!=typeof Promise)return new Promise(function(a,c){return o(b,a,c)});o(b)}return null},a.intlTelInputGlobals.defaults=j,a.intlTelInputGlobals.version="15.1.0",function(b,c){var d=new n(b,c);return d._init(),b.setAttribute("data-intl-tel-input-id",d.id),a.intlTelInputGlobals.instances[d.id]=d,d}}()}(window,document);"object"==typeof module&&module.exports?module.exports=b:window.intlTelInput=b}(); </script> <!-- Start VWO Async SmartCode --> <script async type='text/javascript' nonce="wo123jejr234982dfn"> window._vwo_code = window._vwo_code || (function(){ var account_id=301870, settings_tolerance=2000, library_tolerance=2500, use_existing_jquery=false, is_spa=1, hide_element='body', /* DO NOT EDIT BELOW THIS LINE */ f=false,d=document,code={use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById('_vis_opt_path_hides');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement('script');b.src=a;b.type='text/javascript';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName('head')[0].appendChild(b);},init:function(){ window.settings_timer=setTimeout(function () {_vwo_code.finish() },settings_tolerance);var a=d.createElement('style'),b=hide_element?hide_element+'{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}':'',h=d.getElementsByTagName('head')[0];a.setAttribute('id','_vis_opt_path_hides');a.setAttribute('type','text/css');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);this.load('https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(d.URL)+'&f='+(+is_spa)+'&r='+Math.random());return settings_timer; }};window._vwo_settings_timer = code.init(); return code; }()); </script> <!-- End VWO Async SmartCode --> </body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com -->

Pages: 1 2 3 4 5 6 7 8 9 10