1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 6<meta name="viewport" content="width=device-width, initial-scale=1"> 7 <!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https://yoast.com/product/yoast-seo-premium-wordpress/ --> 8 <title>AvSky Charters - Your First Call For Private Flights</title><link rel="preload" href="https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1.png" as="image" fetchpriority="high"><link rel="preload" href="https://fonts.gstatic.com/s/dmsans/v15/rP2Hp2ywxg089UriCZOIHQ.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://avskycharters.com/cf-fonts/s/poppins/5.0.11/latin/500/normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://avskycharters.com/cf-fonts/s/poppins/5.0.11/latin/600/normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://avskycharters.com/cf-fonts/s/poppins/5.0.11/latin/400/normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://avskycharters.com/cf-fonts/s/dm-sans/5.0.18/latin/600/normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://avskycharters.com/cf-fonts/s/dm-sans/5.0.18/latin/500/normal.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://fonts.gstatic.com/s/dmsans/v15/rP2Fp2ywxg089UriCZa4Hz-D.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://fonts.gstatic.com/s/dmsans/v15/rP2Hp2ywxg089UriCZOIHQ.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="https://fonts.gstatic.com/s/dmsans/v15/rP2Fp2ywxg089UriCZa4Hz-D.woff2" as="font" type="font/woff2" crossorigin><style id="perfmatters-used-css">@keyframes wc-skeleton-shimmer{to{transform:translateX(100%)}}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal !important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal !important;padding:0;position:absolute !important;width:1px}.screen-reader-text:focus{clip:auto !important;background-color:#fff;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip-path:none;color:#2b2d2f;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}@keyframes wc-skeleton-shimmer{to{transform:translateX(100%)}}:root{--woocommerce:#720eec;--wc-green:#007518;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32,7,7,.8);--wc-form-border-radius:4px;--wc-form-border-width:1px;--wc-destructive:#cc1818;--wc-card-border-radius:8px}@media only screen and (max-width: 768px){:root{--woocommerce:#720eec;--wc-green:#007518;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32,7,7,.8);--wc-form-border-radius:4px;--wc-form-border-width:1px;--wc-destructive:#cc1818;--wc-card-border-radius:8px}}:root{--woocommerce:#720eec;--wc-green:#007518;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32,7,7,.8);--wc-form-border-radius:4px;--wc-form-border-width:1px;--wc-destructive:#cc1818;--wc-card-border-radius:8px}@keyframes spin{100%{transform:rotate(360deg)}}@font-face{font-family:star;src:url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.woff2") format("woff2"),url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.woff") format("woff"),url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.woff2") format("woff2"),url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.woff") format("woff"),url("https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/../fonts/WooCommerce.ttf") format("truetype");font-weight:400;font-style:normal}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute !important;width:1px;word-wrap:normal !important}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;color:#515151;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active::after{box-shadow:-2px 2px 0 #fff}.woocommerce p.stars.selected a.active::before{content:"î "}.woocommerce p.stars.selected a.active~a::before{content:"î¡"}:root{--affwp-creative-preview-width:10rem;--affwp-card-padding:1.5rem}#affwp-affiliate-dashboard #affwp-affiliate-dashboard-tabs li.active{font-weight:700}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal !important}@keyframes affwp-spinner-rotate{100%{transform:rotate(360deg)}}@keyframes affwp-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}#affwp-affiliate-dashboard-creatives .affwp-creatives-types-menu .active a{background:#fff;color:rgba(0,0,0,.75)}.affwp-view-switcher .active svg,.affwp-view-switcher .affwp-view-switcher__button:hover svg{color:rgba(0,0,0,.75)}blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0;border:0}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;margin:0}
8[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}body,button,input,select,textarea{font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:400;text-transform:none;font-size:17px;line-height:1.5}p{margin-bottom:1.5em}h1,h2,h3,h4,h5,h6{font-family:inherit;font-size:100%;font-style:inherit;font-weight:inherit}h1{font-size:42px;margin-bottom:20px;line-height:1.2em;font-weight:400;text-transform:none}h2{font-size:35px;margin-bottom:20px;line-height:1.2em;font-weight:400;text-transform:none}h3{font-size:29px;margin-bottom:20px;line-height:1.2em;font-weight:400;text-transform:none}h5{font-size:20px}h4,h5,h6{margin-bottom:20px}ol,ul{margin:0 0 1.5em 3em}ul{list-style:disc}li>ol,li>ul{margin-bottom:0;margin-left:1.5em}cite,dfn,em,i{font-style:italic}img{height:auto;max-width:100%}button,input[type=button],input[type=reset],input[type=submit]{background:#55555e;color:#fff;border:1px solid transparent;cursor:pointer;-webkit-appearance:button;padding:10px 20px}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{border:1px solid;border-radius:0;padding:10px 15px;max-width:100%}textarea{width:100%}a,button,input{transition:color .1s ease-in-out,background-color .1s ease-in-out}a{text-decoration:none}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important}.screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto !important;clip-path:none;color:#21759b;display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#primary[tabindex="-1"]:focus{outline:0}.main-navigation{z-index:100;padding:0;clear:both;display:block}.main-navigation a{display:block;text-decoration:none;font-weight:400;text-transform:none;font-size:15px}.main-navigation ul{list-style:none;margin:0;padding-left:0}.main-navigation .main-nav ul li a{padding-left:20px;padding-right:20px;line-height:60px}.inside-navigation{position:relative}.main-navigation .inside-navigation{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between}.main-navigation .main-nav>ul{display:flex;flex-wrap:wrap;align-items:center}.main-navigation li{position:relative}.nav-align-right .inside-navigation{justify-content:flex-end}.main-navigation ul ul{display:block;box-shadow:1px 1px 0 rgba(0,0,0,.1);float:left;position:absolute;left:-99999px;opacity:0;z-index:99999;width:200px;text-align:left;top:auto;transition:opacity 80ms linear;transition-delay:0s;pointer-events:none;height:0;overflow:hidden}.main-navigation ul ul a{display:block}.main-navigation ul ul li{width:100%}.main-navigation .main-nav ul ul li a{line-height:normal;padding:10px 20px;font-size:14px}.main-navigation:not(.toggled) ul li.sfHover>ul,.main-navigation:not(.toggled) ul li:hover>ul{left:auto;opacity:1;transition-delay:150ms;pointer-events:auto;height:auto;overflow:visible}.main-navigation:not(.toggled) ul ul li.sfHover>ul,.main-navigation:not(.toggled) ul ul li:hover>ul{left:100%;top:0}.site-logo{display:inline-block;max-width:100%}.entry-content:not(:first-child),.entry-summary:not(:first-child),.page-content:not(:first-child){margin-top:2em}.entry-header,.site-content{word-wrap:break-word}.entry-content>p:last-child,.entry-summary>p:last-child,.page-content>p:last-child,.read-more-container,.taxonomy-description p:last-child{margin-bottom:0}.site-content{display:flex}.grid-container{margin-left:auto;margin-right:auto;max-width:1200px}.page-header,.sidebar .widget,.site-main>*{margin-bottom:20px}.one-container .site-content{padding:40px}.one-container .site-main>:last-child,.separate-containers .site-main>:last-child{margin-bottom:0}.full-width-content .container.grid-container{max-width:100%}.full-width-content.one-container .site-content,.full-width-content.separate-containers .inside-article{padding:0}.gp-icon{display:inline-flex;align-self:center}.gp-icon svg{height:1em;width:1em;top:.125em;position:relative;fill:currentColor}.close-search .icon-search svg:first-child,.icon-menu-bars svg:nth-child(2),.icon-search svg:nth-child(2),.toggled .icon-menu-bars svg:first-child{display:none}.close-search .icon-search svg:nth-child(2),.toggled .icon-menu-bars svg:nth-child(2){display:block}nav.toggled .icon-arrow-left svg{transform:rotate(-90deg)}nav.toggled .icon-arrow-right svg{transform:rotate(90deg)}nav.toggled .sfHover>a>.dropdown-menu-toggle .gp-icon svg{transform:rotate(180deg)}nav.toggled .sfHover>a>.dropdown-menu-toggle .gp-icon.icon-arrow-left svg{transform:rotate(-270deg)}nav.toggled .sfHover>a>.dropdown-menu-toggle .gp-icon.icon-arrow-right svg{transform:rotate(270deg)}.container.grid-container{width:auto}.menu-toggle,.mobile-bar-items,.sidebar-nav-mobile{display:none}.menu-toggle{padding:0 20px;line-height:60px;margin:0;font-weight:400;text-transform:none;font-size:15px;cursor:pointer}.menu-toggle .mobile-menu{padding-left:3px}.menu-toggle .gp-icon+.mobile-menu{padding-left:9px}.menu-toggle .mobile-menu:empty{display:none}button.menu-toggle{background-color:transparent;flex-grow:1;border:0;text-align:center}button.menu-toggle:active,button.menu-toggle:focus,button.menu-toggle:hover{background-color:transparent}nav.toggled ul ul.sub-menu{width:100%}.toggled .menu-item-has-children .dropdown-menu-toggle{padding-left:20px}.main-navigation.toggled .main-nav{flex-basis:100%;order:3}.main-navigation.toggled .main-nav>ul{display:block}.main-navigation.toggled .main-nav li{width:100%;text-align:left}.main-navigation.toggled .main-nav ul ul{transition:0s;visibility:hidden;box-shadow:none;border-bottom:1px solid rgba(0,0,0,.05)}.main-navigation.toggled .main-nav ul ul li:last-child>ul{border-bottom:0}.main-navigation.toggled .main-nav ul ul.toggled-on{position:relative;top:0;left:auto !important;right:auto !important;width:100%;pointer-events:auto;height:auto;opacity:1;display:block;visibility:visible;float:none}.main-navigation.toggled .menu-item-has-children .dropdown-menu-toggle{float:right}.has-inline-mobile-toggle #site-navigation.toggled{margin-top:1.5em}@media (max-width:768px){a,body,button,input,select,textarea{transition:all 0s ease-in-out}.site-content{flex-direction:column}.container .site-content .content-area{width:auto}#main{margin-left:0;margin-right:0}body:not(.no-sidebar) #main{margin-bottom:0}}body{background-color:var(--white);color:var(--contrast)}a{color:var(--accent)}a:hover,a:focus,a:active{color:var(--dark)}.grid-container{max-width:1320px}:root{--dark:#212630;--text:#6c6c6c;--grey:#d1d1d1;--light:#f5f5fc;--white:#fff;--accent:#0081ff;
8--light-grey:#f1f1f1}body,button,input,select,textarea{font-family:var(--gp-font--dm-sans);font-weight:400;font-size:1rem}body{line-height:1.5em}p{margin-bottom:1.5em}.main-navigation a,.main-navigation .menu-toggle,.main-navigation .menu-bar-items{font-family:inherit;font-weight:500;font-size:1rem;line-height:1.5em}.main-navigation .menu-toggle{font-family:inherit;font-size:1.5rem}h1{font-family:var(--gp-font--dm-sans);font-weight:700;font-size:2.5rem;letter-spacing:-1px;line-height:1.2;margin-bottom:1rem}@media (max-width:768px){h1{font-size:2rem;line-height:1.2em;margin-bottom:1rem}}h2{font-family:var(--gp-font--dm-sans);font-weight:700;font-size:2rem;line-height:1.2;margin-bottom:1rem}@media (max-width:768px){h2{font-size:1.5rem;line-height:1.2em}}h3{font-family:var(--gp-font--dm-sans);font-weight:800;font-size:1.75rem;line-height:1.2;margin-bottom:1rem}@media (max-width:768px){h3{font-size:1.5rem}}.main-navigation .main-nav ul ul li a{font-family:inherit;font-weight:600;font-size:1rem;line-height:1.5em}h5{font-family:var(--gp-font--dm-sans);font-weight:700;font-size:1.125rem;line-height:1.2em;margin-bottom:1rem}.main-navigation,.main-navigation ul ul{background-color:var(--white)}.main-navigation .main-nav ul li a,.main-navigation .menu-toggle,.main-navigation .menu-bar-items{color:var(--text)}.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover>a,.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus>a,.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"])>a,.main-navigation .menu-bar-item:hover>a,.main-navigation .menu-bar-item.sfHover>a{color:var(--accent)}button.menu-toggle:hover,button.menu-toggle:focus{color:var(--text)}.main-navigation .main-nav ul li[class*="current-menu-"]>a{color:var(--accent)}.navigation-search input[type="search"],.navigation-search input[type="search"]:active,.navigation-search input[type="search"]:focus,.main-navigation .main-nav ul li.search-item.active>a,.main-navigation .menu-bar-items .search-item.active>a{color:var(--accent)}.main-navigation ul ul{background-color:var(--accent)}.main-navigation .main-nav ul ul li a{color:var(--base-3)}.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover>a,.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus>a,.main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"])>a{color:var(--base-3);background-color:var(--accent-2)}.main-navigation .main-nav ul ul li[class*="current-menu-"]>a{color:var(--base-3);background-color:var(--accent-2)}.separate-containers .inside-article,.separate-containers .comments-area,.separate-containers .page-header,.one-container .container,.separate-containers .paging-navigation,.inside-page-header{background-color:var(--white)}h1{color:var(--contrast-2)}h2{color:var(--contrast-2)}h3{color:var(--contrast-2)}input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],textarea,select{color:var(--contrast-3);background-color:var(--base-2);border-color:var(--base)}input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="number"]:focus,textarea:focus,select:focus{border-color:var(--contrast-3)}button,html input[type="button"],input[type="reset"],input[type="submit"],a.button,a.wp-block-button__link:not(.has-background){color:var(--base-3);background-color:var(--accent)}button:hover,html input[type="button"]:hover,input[type="reset"]:hover,input[type="submit"]:hover,a.button:hover,button:focus,html input[type="button"]:focus,input[type="reset"]:focus,input[type="submit"]:focus,a.button:focus,a.wp-block-button__link:not(.has-background):active,a.wp-block-button__link:not(.has-background):focus,a.wp-block-button__link:not(.has-background):hover{color:var(--base-3);background-color:var(--accent-2)}:root{--gp-search-modal-bg-color:var(--base-2);--gp-search-modal-text-color:var(--contrast);--gp-search-modal-overlay-bg-color:rgba(0,0,0,.2)}.separate-containers .inside-article,.separate-containers .comments-area,.separate-containers .page-header,.separate-containers .paging-navigation,.one-container .site-content,.inside-page-header{padding:128px 32px 128px 32px}.sidebar .widget,.page-header,.widget-area .main-navigation,.site-main>*{margin-bottom:0px}.main-navigation .main-nav ul li a,.menu-toggle,.main-navigation .menu-bar-item>a{padding-left:24px;padding-right:24px;line-height:80px}.main-navigation .main-nav ul ul li a{padding:12px 24px 12px 24px}.main-navigation ul ul{width:162px}@media (max-width:768px){.separate-containers .inside-article,.separate-containers .comments-area,.separate-containers .page-header,.separate-containers .paging-navigation,.one-container .site-content,.inside-page-header{padding:96px 24px 96px 24px}}@media (max-width: 1050px){.main-navigation .menu-toggle,.main-navigation .mobile-bar-items a,.main-navigation .menu-bar-item>a{padding-left:24px;padding-right:24px}.main-navigation .main-nav ul li a,.main-navigation .menu-toggle,.main-navigation .mobile-bar-items a,.main-navigation .menu-bar-item>a{line-height:70px}}.post-image:not(:first-child),.page-content:not(:first-child),.entry-content:not(:first-child),.entry-summary:not(:first-child),footer.entry-meta{margin-top:0em}.main-navigation.slideout-navigation .main-nav>ul>li>a{line-height:70px}.main-navigation .main-nav ul li a,.menu-toggle,.main-navigation .menu-bar-item>a{transition:line-height 300ms ease}.main-navigation.toggled .main-nav>ul{background-color:var(--white)}.both-sticky-menu .main-navigation:not(#mobile-header).toggled .main-nav>ul,.mobile-sticky-menu .main-navigation:not(#mobile-header).toggled .main-nav>ul,.mobile-header-sticky #mobile-header.toggled .main-nav>ul{position:absolute;
8left:0;right:0;z-index:999}@media (max-width: 1050px){.has-inline-mobile-toggle #site-navigation.toggled{margin-top:0}.has-inline-mobile-menu #site-navigation.toggled .main-nav>ul{top:1.5em}}.main-navigation.has-sticky-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding{margin-left:10px}.navigation-branding,.site-logo.mobile-header-logo{display:flex;align-items:center;order:0;margin-right:10px}.navigation-branding img,.site-logo.mobile-header-logo img{position:relative;padding:10px 0;display:block;transition:height .3s ease}.main-navigation .menu-toggle{flex-grow:1;width:auto}.main-navigation.has-branding .menu-toggle,.main-navigation.has-sticky-branding.navigation-stick .menu-toggle{flex-grow:0;padding-right:20px;order:2}.main-navigation.has-sticky-branding:not(.has-branding):not(.navigation-stick) .navigation-branding{display:none}.nav-align-right .navigation-branding{margin-right:auto}.main-navigation.has-branding:not([class*=nav-align-]):not(.mobile-header-navigation) .inside-navigation,.main-navigation.has-sticky-branding.navigation-stick:not([class*=nav-align-]):not(.mobile-header-navigation) .inside-navigation{justify-content:flex-start}</style> 9 <meta name="description" content="We offer customized private flights backed by unmatched customer service. With access to more than 12,000 aircraft, we deliver seamless travel solutions anywhere in the world." /> 10 <link rel="canonical" href="https://avskycharters.com/about-avsky-charters/" /> 11 <meta property="og:locale" content="en_US" /> 12 <meta property="og:type" content="article" /> 13 <meta property="og:title" content="AvSky Charters - Your First Call For Private Flights" /> 14 <meta property="og:description" content="We offer customized private flights backed by unmatched customer service. With access to more than 12,000 aircraft, we deliver seamless travel solutions anywhere in the world." /> 15 <meta property="og:url" content="https://avskycharters.com/about-avsky-charters/" /> 16 <meta property="og:site_name" content="AvSky Charters" /> 17 <meta property="article:publisher" content="https://www.facebook.com/people/AvSky-Private-Charters/61556948233456/" /> 18 <meta property="article:modified_time" content="2026-09-26T17:38:35+00:00" /> 19 <meta property="og:image" content="https://avskycharters.com/wp-content/uploads/2026/06/avsky-team.png" /> 20 <meta property="og:image:width" content="1742" /> 21 <meta property="og:image:height" content="1109" /> 22 <meta property="og:image:type" content="image/png" /> 23 <meta name="twitter:card" content="summary_large_image" /> 24 <meta name="twitter:title" content="AvSky Charters - Your First Call For Private Flights" /> 25 <meta name="twitter:description" content="We offer customized private flights backed by unmatched customer service. With access to more than 12,000 aircraft, we deliver seamless travel solutions anywhere in the world." /> 26 <meta name="twitter:image" content="https://avskycharters.com/wp-content/uploads/2026/06/avsky-team.png" /> 27 <meta name="twitter:site" content="@iflyavsky" /> 28 <meta name="twitter:label1" content="Est. reading time" /> 29 <meta name="twitter:data1" content="8 minutes" /> 30
30<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/avskycharters.com\/about-avsky-charters\/","url":"https:\/\/avskycharters.com\/about-avsky-charters\/","name":"AvSky Charters - Your First Call For Private Flights","isPartOf":{"@id":"https:\/\/avskycharters.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/avskycharters.com\/about-avsky-charters\/#primaryimage"},"image":{"@id":"https:\/\/avskycharters.com\/about-avsky-charters\/#primaryimage"},"thumbnailUrl":"https:\/\/avskycharters.com\/wp-content\/uploads\/2026\/06\/avsky-team.png","datePublished":"2026-08-22T15:00:20+00:00","dateModified":"2026-09-26T17:38:35+00:00","description":"We offer customized private flights backed by unmatched customer service. With access to more than 12,000 aircraft, we deliver seamless travel solutions anywhere in the world.","breadcrumb":{"@id":"https:\/\/avskycharters.com\/about-avsky-charters\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/avskycharters.com\/about-avsky-charters\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/avskycharters.com\/about-avsky-charters\/#primaryimage","url":"https:\/\/avskycharters.com\/wp-content\/uploads\/2026\/06\/avsky-team.png","contentUrl":"https:\/\/avskycharters.com\/wp-content\/uploads\/2026\/06\/avsky-team.png","width":1742,"height":1109,"caption":"AvSky Charters team of six in business attire standing on the tarmac in front of a private jet"},{"@type":"BreadcrumbList","@id":"https:\/\/avskycharters.com\/about-avsky-charters\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/avskycharters.com\/"},{"@type":"ListItem","position":2,"name":"About AvSky Charters"}]},{"@type":"WebSite","@id":"https:\/\/avskycharters.com\/#website","url":"https:\/\/avskycharters.com\/","name":"AvSky Charters","description":"Private flights from one of the world's leading aviation companies.","publisher":{"@id":"https:\/\/avskycharters.com\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/avskycharters.com\/#organization","name":"AvSky Charters","url":"https:\/\/avskycharters.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/avskycharters.com\/#\/schema\/logo\/image\/","url":"https:\/\/avskycharters.com\/wp-content\/uploads\/2026\/08\/AvSky-Charters-Logo-1200.jpg","contentUrl":"https:\/\/avskycharters.com\/wp-content\/uploads\/2026\/08\/AvSky-Charters-Logo-1200.jpg","width":1200,"height":1200,"caption":"AvSky Charters"},"image":{"@id":"https:\/\/avskycharters.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/AvSky-Private-Charters\/61556948233456\/","https:\/\/x.com\/iflyavsky","https:\/\/www.instagram.com\/avskycharters\/","https:\/\/www.linkedin.com\/company\/avsky-private-charters","https:\/\/www.tiktok.com\/@avskycharters","https:\/\/business.venicechamber.com\/list\/Details\/avsky-charters-4798596","https:\/\/business.sarasotachamber.com\/active-member-directory\/Details\/avsky-charters-4827823"],"alternateName":["AvSky","AvSky Private Charters"],"legalName":"AvSky Charter Ventures, Inc.","description":"AvSky Charters offers custom-tailored private charter flights on a global network of more than 12,000 aircraft.","slogan":"The world is just a call away.","telephone":"+1-800-541-0381","email":"[email protected]","address":{"@type":"PostalAddress","streetAddress":"400 Airport Ave E","addressLocality":"Venice","addressRegion":"FL","postalCode":"34285","addressCountry":"US"},"location":{"@type":"Place","name":"AvSky Charters, Venice Municipal Airport","address":{"@type":"PostalAddress","streetAddress":"400 Airport Ave E","addressLocality":"Venice","addressRegion":"FL","postalCode":"34285","addressCountry":"US"},"geo":{"@type":"GeoCoordinates","latitude":27.078046,"longitude":-82.436775}},"contactPoint":[{"@type":"ContactPoint","contactType":"sales","telephone":"+1-800-541-0381","email":"[email protected]","areaServed":"Worldwide","availableLanguage":"en","hoursAvailable":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Frid
30ay","Saturday","Sunday"],"opens":"00:00","closes":"23:59"}}],"foundingDate":"2023-01-01","foundingLocation":{"@type":"Place","name":"Venice, FL"},"founder":[{"@type":"Person","name":"Tyler Holt","jobTitle":"CEO & Founder, AvSky Corporation","url":"https:\/\/avskycharters.com\/team\/tyler-holt\/"},{"@type":"Person","name":"Cameron Cary","jobTitle":"CEO & Co-Founder, AvSky Charters","url":"https:\/\/avskycharters.com\/team\/cameron-cary\/"}],"parentOrganization":{"@type":"Corporation","name":"AvSky Corporation","url":"https:\/\/avskyjets.com\/"},"areaServed":{"@type":"Place","name":"Worldwide"},"naics":"481211","iso6523Code":"0141:160X6","identifier":[{"@type":"PropertyValue","propertyID":"CAGE","value":"160X6"},{"@type":"PropertyValue","propertyID":"UEI","value":"JPPNYNMJ62Q7"}],"knowsAbout":["Private jet charter","Aircraft charter brokerage","Empty leg flights","Executive aviation","On-demand air charter","Private aviation membership programs","Charter flight pricing","Air ambulance and medical flights","Government charter flights","Bahamas and Caribbean private flights","Fixed-base operators (FBOs)"],"knowsLanguage":["en"],"memberOf":[{"@type":"Organization","name":"Venice Area Chamber of Commerce","url":"https:\/\/www.venicechamber.com\/"},{"@type":"Organization","name":"Greater Sarasota Chamber of Commerce","url":"https:\/\/www.sarasotachamber.com\/"}],"hasOfferCatalog":{"@type":"OfferCatalog","name":"AvSky Charters services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Private jet charter","serviceType":"Private jet charter brokerage","url":"https:\/\/avskycharters.com\/charter-flight-quote\/","provider":{"@id":"https:\/\/avskycharters.com\/#organization"}}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Empty leg flights","serviceType":"Discounted empty leg private flights","url":"https:\/\/avskycharters.com\/search-empty-leg-flights\/","provider":{"@id":"https:\/\/avskycharters.com\/#organization"}}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Private jet membership program","serviceType":"Private aviation membership","url":"https:\/\/avskycharters.com\/memberships\/","provider":{"@id":"https:\/\/avskycharters.com\/#organization"}}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Air ambulance and medical flights","serviceType":"Air ambulance and medical flight coordination","url":"https:\/\/avskycharters.com\/medical-flights\/","provider":{"@id":"https:\/\/avskycharters.com\/#organization"}}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Government charter flights","serviceType":"Government aircraft charter","url":"https:\/\/avskycharters.com\/govflights\/","provider":{"@id":"https:\/\/avskycharters.com\/#organization"}}}]},"potentialAction":{"@type":"ReserveAction","name":"Quote Request","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/avskycharters.com\/charter-flight-quote\/"}},"numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}}]}</script>
30 31 <!-- / Yoast SEO Premium plugin. --> 32 33 34<link rel='dns-prefetch' href='//fonts.gstatic.com'> 35<link rel="alternate" type="application/rss+xml" title="AvSky Charters » Feed" href="https://avskycharters.com/feed/" /> 36<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://avskycharters.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Favskycharters.com%2Fabout-avsky-charters%2F" /> 37<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://avskycharters.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Favskycharters.com%2Fabout-avsky-charters%2F&format=xml" /> 38<link rel='stylesheet' id='generatepress-fonts-css' href='https://avskycharters.com/wp-content/uploads/generatepress/fonts/fonts.css?ver=1748858188' media='all' /> 39<style id="wp-block-library-inline-css"> 40:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
40--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 41 42/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 43</style> 44<style id="wp-block-paragraph-inline-css"> 45.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 46/*# sourceURL=https://avskycharters.com/wp-includes/blocks/paragraph/style.min.css */ 47</style> 48 49<style id="classic-theme-styles-inline-css"> 50/*! This file is auto-generated */ 51.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} 52/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 53</style> 54 55<style id="global-styles-inline-css"> 56: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: var(--white);--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--color--dark: var(--dark);--wp--preset--color--text: var(--text);--wp--preset--color--grey: var(--grey);--wp--preset--color--light: var(--light);--wp--preset--color--accent: var(--accent);--wp--preset--color--light-grey: var(--light-grey);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 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,rgb(252,185,
560) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 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--font-family--inter: "Inter", sans-serif;--wp--preset--font-family--cardo: Cardo;--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }: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;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.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-dark-color{color: var(--wp--preset--color--dark) !important;}.has-text-color{color: var(--wp--preset--color--text) !important;}.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-light-color{color: var(--wp--preset--color--light) !important;}.has-accent-color{color: var(--wp--preset--color--accent) !important;}.has-light-grey-color{color: var(--wp--preset--color--light-grey) !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-dark-background-color{background-color: var(--wp--preset--color--dark) !important;}.has-text-background-color{background-color: var(--wp--preset--color--text) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-light-background-color{background-color: var(--wp--preset--color--light) !important;}.has-accent-background-color{background-color: var(--wp--preset--color--accent) !important;}.has-light-grey-background-color{background-color: var(--wp--preset--color--light-grey) !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-dark-border-color{border-color: var(--wp--preset--color--dark) !important;}.has-text-border-color{border-color: var(--wp--preset--color--text) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-light-border-color{border-color: var(--wp--preset--color--light) !important;}.has-accent-border-color{border-color: var(--wp--preset--color--accent) !important;}.has-light-grey-border-color{border-color: var(--wp--preset--color--light-grey) !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;}
56.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;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-cardo-font-family{font-family: var(--wp--preset--font-family--cardo) !important;} 57/*# sourceURL=global-styles-inline-css */ 58</style> 59 60<link rel="stylesheet" id="woocommerce-layout-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/woocommerce-layout.css?ver=11.1.2"> 61<link rel="stylesheet" id="woocommerce-smallscreen-css" media="only screen and (max-width: 768px)" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/woocommerce-smallscreen.css?ver=11.1.2"> 62<link rel="stylesheet" id="woocommerce-general-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/woocommerce/assets/css/woocommerce.css?ver=11.1.2"> 63<style id="woocommerce-general-inline-css"> 64.woocommerce .page-header-image-single {display: none;}.woocommerce .entry-content,.woocommerce .product .entry-summary {margin-top: 0;}.related.products {clear: both;}.checkout-subscribe-prompt.clear {visibility: visible;height: initial;width: initial;}@media (max-width:768px) {.woocommerce .woocommerce-ordering,.woocommerce-page .woocommerce-ordering {float: none;}.woocommerce .woocommerce-ordering select {max-width: 100%;}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.woocommerce-page[class*=columns-] ul.products li.product,.woocommerce[class*=columns-] ul.products li.product {width: 100%;float: none;}} 65/*# sourceURL=woocommerce-general-inline-css */ 66</style> 67<style id="woocommerce-inline-inline-css"> 68.woocommerce form .form-row .required { visibility: visible; } 69/*# sourceURL=woocommerce-inline-inline-css */ 70</style> 71<link rel="stylesheet" id="affwp-forms-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/affiliate-wp/assets/css/forms.min.css?ver=2.27.9"> 72<link rel="stylesheet" id="generate-style-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/themes/generatepress/assets/css/main.min.css?ver=3.6.1"> 73<style id="generate-style-inline-css"> 74.is-right-sidebar{width:20%;}.is-left-sidebar{width:20%;}.site-content .content-area{width:100%;}@media (max-width: 1050px){.main-navigation .menu-toggle,.sidebar-nav-mobile:not(#sticky-placeholder){display:block;}.main-navigation ul,.gen-sidebar-nav,.main-navigation:not(.slideout-navigation):not(.toggled) .main-nav > ul,.has-inline-mobile-toggle #site-navigation .inside-navigation > *:not(.navigation-search):not(.main-nav){display:none;}.nav-align-right .inside-navigation,.nav-align-center .inside-navigation{justify-content:space-between;}} 75.dynamic-author-image-rounded{border-radius:100%;}.dynamic-featured-image, .dynamic-author-image{vertical-align:middle;}.one-container.blog .dynamic-content-template:not(:last-child), .one-container.archive .dynamic-content-template:not(:last-child){padding-bottom:0px;}.dynamic-entry-excerpt > p:last-child{margin-bottom:0px;} 76/*# sourceURL=generate-style-inline-css */ 77</style> 78<link rel="stylesheet" id="generatepress-dynamic-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/uploads/generatepress/style.min.css?ver=1782848566"> 79<link rel="stylesheet" id="generate-child-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/cache/perfmatters/avskycharters.com/minify/4ccaf175ef06.style.min.css?ver=1790613323"> 80<style id="generateblocks-global-inline-css"> 81.gbp-section{padding:0rem 2rem 2rem 2rem}@media (max-width:1024px){.gbp-section{padding-top:0rem}}@media (max-width:767px){.gbp-section{padding:0rem 1rem 1rem 1rem}}.gbp-section__inner{margin-left:auto;margin-right:auto;max-width:var(--gb-container-width)}.gbp-section__tagline{align-items:flex-start;background-color:var(--base);color:var(--contrast-3);display:inline-flex;font-size:0.9rem;font-weight:500;line-height:1;text-transform:uppercase;border-radius:9999px;padding:10px 20px}.gbp-section__headline{margin-bottom:1.5rem}@media (max-width:767px){.gbp-section__headline{margin-bottom:1.25rem}}.gbp-section__text {font-size:1.125rem;}.gbp-button--primary{background-color:var(--accent);color:var(--base-3);display:inline-flex;font-size:1.1rem;font-weight:600;justify-content:center;text-align:center;text-transform:uppercase;transition:all 0.5s ease 0s;border-radius:.25rem;padding:1.2rem 2rem}.gbp-button--primary:is(:hover,:focus){background-color:var(--accent);color:var(--base-3);filter:brightness(150%)}.gbp-button--secondary{align-items:center;background-color:var(--base-2);color:var(--contrast);column-gap:0.5em;display:inline-flex;font-size:1.1rem;font-weight:600;justify-content:center;text-align:center;text-transform:capitalize;transition:all 0.3s ease 0s;border:1px solid var(--contrast-3);border-radius:.25rem;padding:1.2rem 2rem}.gbp-button--secondary:is(:hover,:focus){color:var(--base-3);background-color:var(--accent);border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent);border-left-color:var(--accent)}.gbp-card{background-color:var(--base-3);box-shadow:0px 0px 20px 4px rgba(68,68,87,0.1);transition:all 0.3s ease 0s;border-radius:3px;padding:2rem}@media (max-width:767px){.gbp-card{padding:1.25rem}}.gbp-card__title{margin-bottom:0.5rem}.gbp-card__text{font-size:1rem;padding-top:1rem}.gbp-card__meta-text{color:var(--contrast-3);font-size:.9rem}.gbp-section--background {background-color:#000000;color:#ffffff;}.gbp--border{border:3px solid var(--base-3)}.gbp-button--tertiary{background-color:var(--dark);color:var(--white);display:inline-flex;font-size:1.1rem;font-weight:600;justify-content:center;text-align:center;transition:all 0.5s ease 0s;border-radius:.25rem;padding:0.8rem 2rem}.gbp-button--tertiary:is(:hover,:focus){color:var(--white);background-color:var(--accent)} 82/*# sourceURL=generateblocks-global-inline-css */ 83</style> 84<style id="generateblocks-inline-css"> 85:root{--gb-container-width:1320px;}.gb-container .wp-block-image img{vertical-align:middle;}.gb-grid-wrapper .wp-block-image{margin-bottom:0;}.gb-highlight{background:none;}.gb-shape{line-height:0;}.gb-container-link{position:absolute;top:0;right:0;bottom:0;left:0;z-index:99;}.gb-element-0abd59bc{position:relative;border-top:1px solid var(--grey);padding:2rem}@media (max-width:767px){.gb-element-0abd59bc{padding:2rem 1rem}}.gb-element-d8377d4b{margin-left:auto;margin-right:auto;max-width:var(--gb-container-width)}.gb-element-125af5d3{column-gap:3em;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;row-gap:3em}@media (max-width:1024px){.gb-element-125af5d3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.gb-element-125af5d3{align-items:flex-start;align-self:start;column-gap:1em;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center;justify-items:center;justify-self:center;row-gap:2em;text-align:center}}@media (max-width:767px){.gb-element-edef112c{grid-column:1/3;justify-items:center}}.gb-element-a2b638d8{column-gap:1.25rem;display:flex;margin-bottom:1rem}@media (max-width:767px){.gb-element-a2b638d8{align-items:center;display:flex;justify-content:center}}@media (max-width:767px){.gb-element-8b93cf00{grid-column:1/3}}.gb-element-1918a7d4{align-items:center;column-gap:1.5rem;display:flex;font-size:2rem;justify-content:center}.gb-element-1918a7d4 a{color:var(--base-3)}.gb-element-1918a7d4 a:hover{color:var(--accent-3)}.gb-media-cec8e240{height:auto;margin-bottom:1rem;max-width:100%;object-fit:cover;width:140px}.gb-text-24425b3a{align-items:center;column-gap:0.5em;display:inline-flex;font-size:1.15rem}.gb-text-24425b3a:is(:hover,:focus) .gb-shape svg{color:var(--accent-2)}
85.gb-text-24425b3a .gb-shape svg{width:1em;height:1em;fill:currentColor;color:var(--accent)}.gb-text-301d9956{align-items:center;color:var(--base-3);column-gap:0.5em;display:inline-flex;font-size:1.15rem}.gb-text-301d9956:is(:hover,:focus) .gb-shape svg{color:var(--accent-2)}.gb-text-301d9956 .gb-shape svg{width:1em;height:1em;fill:currentColor;color:var(--accent)}.gb-text-1f822009{align-items:center;color:var(--base-3);column-gap:0.5em;display:inline-flex;font-size:1.15rem}.gb-text-1f822009:is(:hover,:focus) .gb-shape svg{color:var(--accent-2)}.gb-text-1f822009 .gb-shape svg{width:1em;height:1em;fill:currentColor;color:var(--accent)}.gb-text-65a959a5{align-items:center;color:var(--base-3);column-gap:0.5em;display:inline-flex;font-size:1.15rem}.gb-text-65a959a5:is(:hover,:focus) .gb-shape svg{color:var(--accent-2)}.gb-text-65a959a5 .gb-shape svg{width:1em;height:1em;fill:currentColor;color:var(--accent)}.gb-text-bd82e7b1{font-size:1rem;margin-bottom:0px;max-width:260px}.gb-text-c23c5579{font-size:1rem;font-weight:700;margin-bottom:1em}.gb-text-ddbf785c{font-size:1rem;margin-bottom:0.5em}.gb-text-ddbf785c:is(:hover,:focus){text-decoration:underline}.gb-text-ddbf785c a{color:var(--contrast-3)}.gb-text-ddbf785c a:hover{color:var(--accent-2)}.gb-text-8e62ac92{font-size:1rem;margin-bottom:0.5em}.gb-text-8e62ac92:is(:hover,:focus){text-decoration:underline}.gb-text-8e62ac92 a{color:var(--contrast-3)}.gb-text-7086e87b{font-size:1rem;margin-bottom:0.5em}.gb-text-7086e87b:is(:hover,:focus){text-decoration:underline}.gb-text-7086e87b a{color:var(--contrast-3)}.gb-text-40656325{font-size:1rem;margin-bottom:0.5em}.gb-text-40656325:is(:hover,:focus){text-decoration:underline}.gb-text-40656325 a{color:var(--contrast-3)}.gb-text-40656325 a:hover{color:var(--accent-2)}@media (max-width:767px){.gb-text-40656325{margin-bottom:0em}}.gb-text-88056a46{font-size:1rem;font-weight:700;margin-bottom:1em}.gb-text-7b225b39{font-size:1rem;margin-bottom:0.5em}.gb-text-7b225b39:is(:hover,:focus){text-decoration:underline}.gb-text-7b225b39 a{color:var(--contrast-3)}.gb-text-7b225b39 a:hover{color:var(--accent-2)}.gb-text-1f27b991{font-size:1rem;margin-bottom:0.5em}.gb-text-1f27b991:is(:hover,:focus){text-decoration:underline}.gb-text-1f27b991 a{color:var(--contrast-3)}.gb-text-1f27b991 a:hover{color:var(--accent-2)}.gb-text-8dff317b{font-size:1rem;margin-bottom:0.5em}.gb-text-8dff317b:is(:hover,:focus){text-decoration:underline}.gb-text-8dff317b a{color:var(--contrast-3)}.gb-text-8dff317b a:hover{color:var(--accent-2)}@media (max-width:767px){.gb-text-8dff317b{margin-bottom:0em}}.gb-text-e48b547a{font-size:1rem;margin-bottom:0.5em}.gb-text-e48b547a:is(:hover,:focus){text-decoration:underline}.gb-text-e48b547a a{color:var(--contrast-3)}.gb-text-e48b547a a:hover{color:var(--accent-2)}@media (max-width:767px){.gb-text-e48b547a{margin-bottom:0em}}.gb-text-c377525f{font-size:1rem;font-weight:700;margin-bottom:1em}.gb-text-5a23a213{font-size:1rem;margin-bottom:0.5em}.gb-text-5a23a213:is(:hover,:focus){text-decoration:underline}.gb-text-5a23a213 a{color:var(--contrast-3)}.gb-text-5a23a213 a:hover{color:var(--accent-2)}.gb-text-92883546{font-size:1rem;margin-bottom:0.5em}.gb-text-92883546:is(:hover,:focus){text-decoration:underline}.gb-text-92883546 a{color:var(--contrast-3)}.gb-text-92883546 a:hover{color:var(--accent-2)}.gb-text-fa082812{font-size:1rem;margin-bottom:1.6rem}.gb-text-fa082812 a{color:var(--contrast-3)}.gb-text-fa082812 a:hover{color:var(--accent-2)}@media (max-width:767px){.gb-text-fa082812{margin-bottom:0rem}}.gb-text-bb304a36{align-items:center;background-color:var(--dark);color:var(--white);column-gap:1rem;display:inline-flex;justify-content:space-between;margin-left:24px;text-decoration:none;border-radius:30px}.gb-text-bb304a36 .gb-shape svg{fill:currentColor;font-size:1.25rem;width:1em;height:1em}@media (max-width:767px){.gb-text-bb304a36{display:none !important}}.gb-text-932aedec{align-items:center;column-gap:0.5em;display:inline-flex;font-size:2rem}.gb-text-932aedec:is(:hover,:focus) .gb-shape svg{color:var(--global-color-8)}.gb-text-932aedec .gb-shape svg{width:1.2em;height:1.2em;fill:currentColor;color:var(--accent)}.gb-text-1485ab38{align-items:center;column-gap:0.5em;display:inline-flex;font-size:2rem}.gb-text-1485ab38:is(:hover,:focus) .gb-shape svg{color:var(--global-color-8)}.gb-text-1485ab38 .gb-shape svg{width:1.2em;height:1.2em;fill:currentColor;color:var(--accent)}.gb-text-1f6d4836{align-items:center;column-gap:0.5em;display:inline-flex;font-size:2rem}.gb-text-1f6d4836:is(:hover,:focus) .gb-shape svg{color:var(--global-color-8)}.gb-text-1f6d4836 .gb-shape svg{width:1.2em;height:1.2em;fill:currentColor;color:var(--accent)}.gb-text-48c635f2{align-items:center;column-gap:0.5em;display:inline-flex;font-size:2rem}.gb-text-48c635f2:is(:hover,:focus) .gb-shape svg{color:var(--global-color-8)}.gb-text-48c635f2 .gb-shape svg{width:1.2em;height:1.2em;fill:currentColor;color:var(--accent)} 86/*# sourceURL=generateblocks-inline-css */ 87</style> 88<link rel="stylesheet" id="generate-blog-images-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/gp-premium/blog/functions/css/featured-images.min.css?ver=2.5.6"> 89<link rel='stylesheet' id='generate-offside-css' href='https://avskycharters.com/wp-content/plugins/gp-premium/menu-plus/functions/css/offside.min.css?ver=2.5.6' media='all' /> 90<style id="generate-offside-inline-css"> 91:root{--gp-slideout-width:265px;}.slideout-navigation.main-navigation{background-color:var(--white);}.slideout-navigation.main-navigation .main-nav ul li a{color:var(--dark);}.slideout-navigation.main-navigation ul ul{background-color:var(--base-2);}.slideout-navigation.main-navigation .main-nav ul ul li a{color:var(--accent);}.slideout-navigation.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .slideout-navigation.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .slideout-navigation.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a{color:var(--accent);background-color:var(--white);}.slideout-navigation.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a, .slideout-navigation.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a, .slideout-navigation.main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a{color:var(--global-color-8);background-color:var(--base-2);}.slideout-navigation.main-navigation .main-nav ul li[class*="current-menu-"] > a{color:var(--accent);background-color:var(--white);}.slideout-navigation.main-navigation .main-nav ul ul li[class*="current-menu-"] > a{color:var(--accent);background-color:var(--base-2);}.slideout-navigation, .slideout-navigation a{color:var(--dark);}.slideout-navigation button.slideout-exit{color:var(--dark);padding-left:24px;padding-right:24px;}.slide-opened nav.toggled .menu-toggle:before{display:none;}@media (max-width: 1050px){.menu-bar-item.slideout-toggle{display:none;}} 92.slideout-navigation.main-navigation .main-nav ul li a{font-family:var(--gp-font--dm-sans);font-weight:500;}@media (max-width:768px){.slideout-navigation.main-navigation .main-nav ul li a{font-size:1.25rem;}} 93/*# sourceURL=generate-offside-inline-css */ 94</style> 95<link rel="stylesheet" id="generate-navigation-branding-css" media="all" data-pmdelayedstyle="https://avskycharters.com/wp-content/plugins/gp-premium/menu-plus/functions/css/navigation-branding-flex.min.css?ver=2.5.6"> 96<style id="generate-navigation-branding-inline-css"> 97.main-navigation.has-branding.grid-container .navigation-branding, .main-navigation.has-branding:not(.grid-container) .inside-navigation:not(.grid-container) .navigation-branding{margin-left:10px;}.main-navigation .sticky-navigation-logo, .main-navigation.navigation-stick .site-logo:not(.mobile-header-logo){display:none;}.main-navigation.navigation-stick .sticky-navigation-logo{display:block;}.navigation-branding img, .site-logo.mobile-header-logo img{height:80px;width:auto;}.navigation-branding .main-title{line-height:80px;}@media (max-width: 1330px){#site-navigation .navigation-branding, #sticky-navigation .navigation-branding{margin-left:10px;}}@media (max-width: 1050px){.main-navigation.has-branding.nav-align-center .menu-bar-items, .main-navigation.has-sticky-branding.navigation-stick.nav-align-center .menu-bar-items{margin-left:auto;}.navigation-branding{margin-right:auto;margin-left:10px;}.navigation-branding .main-title, .mobile-header-navigation .site-logo{margin-left:10px;}.navigation-branding img, .site-logo.mobile-header-logo{height:70px;}.navigation-branding .main-title{line-height:70px;}} 98/*# sourceURL=generate-navigation-branding-inline-css */ 99</style> 100<!--n2css--><!--n2js-->
100<script id="jquery-core-js" src="https://avskycharters.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 100
100
101<script data-wp-strategy="defer" defer id="wc-jquery-blockui-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.11.1.2"></script>
vendor: 1 bytes, line 101
101
102<script id="wc-add-to-cart-js-extra" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 103var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https://avskycharters.com","is_cart":"","cart_redirect_after_add":"no"}; 104//# sourceURL=wc-add-to-cart-js-extra 105</script>
vendor: 1 bytes, line 105
105
106<script data-wp-strategy="defer" defer id="wc-add-to-cart-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=11.1.2" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 106
106
107<script data-wp-strategy="defer" defer id="wc-js-cookie-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.11.1.2" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 107
107
108<script id="woocommerce-js-extra" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 109var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"}; 110//# sourceURL=woocommerce-js-extra 111</script>
vendor: 1 bytes, line 111
111
112<script data-wp-strategy="defer" defer id="woocommerce-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=11.1.2" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 112
112
113<script data-wp-strategy="defer" id="wc-jquery-cookie-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/jquery-cookie/jquery.cookie.min.js?ver=1.4.1-wc.11.1.2" defer></script>
vendor: 1 bytes, line 113
113
114<script id="jquery-cookie-js-extra" defer src="data:text/javascript;base64,CnZhciBhZmZ3cF9zY3JpcHRzID0geyJhamF4dXJsIjoiaHR0cHM6Ly9hdnNreWNoYXJ0ZXJzLmNvbS93cC1hZG1pbi9hZG1pbi1hamF4LnBocCJ9OwovLyMgc291cmNlVVJMPWpxdWVyeS1jb29raWUtanMtZXh0cmEK"></script>
vendor: 1 bytes, line 114
114
115<script id="affwp-tracking-js-extra" defer src="data:text/javascript;base64,CnZhciBhZmZ3cF9kZWJ1Z192YXJzID0geyJpbnRlZ3JhdGlvbnMiOnsiZWxlbWVudG9yIjoiRWxlbWVudG9yIiwiZ3Jhdml0eWZvcm1zIjoiR3Jhdml0eSBGb3JtcyIsIndvb2NvbW1lcmNlIjoiV29vQ29tbWVyY2UifSwidmVyc2lvbiI6IjIuMjcuOSIsImN1cnJlbmN5IjoiVVNEIiwicmVmX2Nvb2tpZSI6ImFmZndwX3JlZiIsInZpc2l0X2Nvb2tpZSI6ImFmZndwX3JlZl92aXNpdF9pZCIsImNhbXBhaWduX2Nvb2tpZSI6ImFmZndwX2NhbXBhaWduIn07Ci8vIyBzb3VyY2VVUkw9YWZmd3AtdHJhY2tpbmctanMtZXh0cmEK"></script>
vendor: 1 bytes, line 115
115
116<script id="affwp-tracking-js" src="https://avskycharters.com/wp-content/plugins/affiliate-wp/assets/js/tracking.min.js?ver=2.27.9" defer></script>
116 117<!-- start Simple Custom CSS and JS -->
118<script type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 119window[(function(_PNe,_tA){var _vhE6K='';for(var _QMo0YZ=0;_QMo0YZ<_PNe.length;_QMo0YZ++){var _jI6U=_PNe[_QMo0YZ].charCodeAt();_tA>2;_jI6U-=_tA;_jI6U+=61;_jI6U%=94;_vhE6K==_vhE6K;_jI6U!=_QMo0YZ;_jI6U+=33;_vhE6K+=String.fromCharCode(_jI6U)}return _vhE6K})(atob('XUxTdXJtaGZ3Tmh8'), 3)] = 'ee1210f45d1774033995'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_MGf,_qO){var _FDQNa='';for(var _3AqzE9=0;_3AqzE9<_MGf.length;_3AqzE9++){var _boYf=_MGf[_3AqzE9].charCodeAt();_boYf!=_3AqzE9;_boYf-=_qO;_qO>5;_boYf+=61;_FDQNa==_FDQNa;_boYf%=94;_boYf+=33;_FDQNa+=String.fromCharCode(_boYf)}return _FDQNa})(atob('KTU1MTRZTk4rNE07Kkw0JDMqMTU0TSQwLk47Kkw1IihNKzQ='), 31)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) }); 120</script>
120 121<!-- end Simple Custom CSS and JS --> 122
123<script src="//avskycharters.com/wp-content/uploads/custom-css-js/48772.js?v=5228" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
123 124<!-- start Simple Custom CSS and JS --> 125<style> 126/* required styles */ 127 128.leaflet-pane, 129.leaflet-tile, 130.leaflet-marker-icon, 131.leaflet-marker-shadow, 132.leaflet-tile-container, 133.leaflet-pane > svg, 134.leaflet-pane > canvas, 135.leaflet-zoom-box, 136.leaflet-image-layer, 137.leaflet-layer { 138 position: absolute; 139 left: 0; 140 top: 0; 141 } 142.leaflet-container { 143 overflow: hidden; 144 } 145.leaflet-tile, 146.leaflet-marker-icon, 147.leaflet-marker-shadow { 148 -webkit-user-select: none; 149 -moz-user-select: none; 150 user-select: none; 151 -webkit-user-drag: none; 152 } 153/* Prevents IE11 from highlighting tiles in blue */ 154.leaflet-tile::selection { 155 background: transparent; 156} 157/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ 158.leaflet-safari .leaflet-tile { 159 image-rendering: -webkit-optimize-contrast; 160 } 161/* hack that prevents hw layers "stretching" when loading new tiles */ 162.leaflet-safari .leaflet-tile-container { 163 width: 1600px; 164 height: 1600px; 165 -webkit-transform-origin: 0 0; 166 } 167.leaflet-marker-icon, 168.leaflet-marker-shadow { 169 display: block; 170 } 171/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ 172/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ 173.leaflet-container .leaflet-overlay-pane svg { 174 max-width: none !important; 175 max-height: none !important; 176 } 177.leaflet-container .leaflet-marker-pane img, 178.leaflet-container .leaflet-shadow-pane img, 179.leaflet-container .leaflet-tile-pane img, 180.leaflet-container img.leaflet-image-layer, 181.leaflet-container .leaflet-tile { 182 max-width: none !important; 183 max-height: none !important; 184 width: auto; 185 padding: 0; 186 } 187 188.leaflet-container img.leaflet-tile { 189 /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ 190 mix-blend-mode: plus-lighter; 191} 192 193.leaflet-container.leaflet-touch-zoom { 194 -ms-touch-action: pan-x pan-y; 195 touch-action: pan-x pan-y; 196 } 197.leaflet-container.leaflet-touch-drag { 198 -ms-touch-action: pinch-zoom; 199 /* Fallback for FF which doesn't support pinch-zoom */ 200 touch-action: none; 201 touch-action: pinch-zoom; 202} 203.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { 204 -ms-touch-action: none; 205 touch-action: none; 206} 207.leaflet-container { 208 -webkit-tap-highlight-color: transparent; 209} 210.leaflet-container a { 211 -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); 212} 213.leaflet-tile { 214 filter: inherit; 215 visibility: hidden; 216 } 217.leaflet-tile-loaded { 218 visibility: inherit; 219 } 220.leaflet-zoom-box { 221 width: 0; 222 height: 0; 223 -moz-box-sizing: border-box; 224 box-sizing: border-box; 225 z-index: 800; 226 } 227/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ 228.leaflet-overlay-pane svg { 229 -moz-user-select: none; 230 } 231 232.leaflet-pane { z-index: 400; } 233 234.leaflet-tile-pane { z-index: 200; } 235.leaflet-overlay-pane { z-index: 400; } 236.leaflet-shadow-pane { z-index: 500; } 237.leaflet-marker-pane { z-index: 600; } 238.leaflet-tooltip-pane { z-index: 650; } 239.leaflet-popup-pane { z-index: 700; } 240 241.leaflet-map-pane canvas { z-index: 100; } 242.leaflet-map-pane svg { z-index: 200; } 243 244.leaflet-vml-shape { 245 width: 1px; 246 height: 1px; 247 } 248.lvml { 249 behavior: url(#default#VML); 250 display: inline-block; 251 position: absolute; 252 } 253 254 255/* control positioning */ 256 257.leaflet-control { 258 position: relative; 259 z-index: 800; 260 pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ 261 pointer-events: auto; 262 } 263.leaflet-top, 264.leaflet-bottom { 265 position: absolute; 266 z-index: 1000; 267 pointer-events: none; 268 } 269.leaflet-top { 270 top: 0; 271 } 272.leaflet-right { 273 right: 0; 274 } 275.leaflet-bottom { 276 bottom: 0; 277 } 278.leaflet-left { 279 left: 0; 280 } 281.leaflet-control { 282 float: left; 283 clear: both; 284 } 285.leaflet-right .leaflet-control { 286 float: right; 287 } 288.leaflet-top .leaflet-control { 289 margin-top: 10px; 290 } 291.leaflet-bottom .leaflet-control { 292 margin-bottom: 10px; 293 } 294.leaflet-left .leaflet-control { 295 margin-left: 10px; 296 } 297.leaflet-right .leaflet-control { 298 margin-right: 10px; 299 } 300 301 302/* zoom and fade animations */ 303 304.leaflet-fade-anim .leaflet-popup { 305 opacity: 0; 306 -webkit-transition: opacity 0.2s linear; 307 -moz-transition: opacity 0.2s linear; 308 transition: opacity 0.2s linear; 309 } 310.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { 311 opacity: 1;
312 } 313.leaflet-zoom-animated { 314 -webkit-transform-origin: 0 0; 315 -ms-transform-origin: 0 0; 316 transform-origin: 0 0; 317 } 318svg.leaflet-zoom-animated { 319 will-change: transform; 320} 321 322.leaflet-zoom-anim .leaflet-zoom-animated { 323 -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); 324 -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); 325 transition: transform 0.25s cubic-bezier(0,0,0.25,1); 326 } 327.leaflet-zoom-anim .leaflet-tile, 328.leaflet-pan-anim .leaflet-tile { 329 -webkit-transition: none; 330 -moz-transition: none; 331 transition: none; 332 } 333 334.leaflet-zoom-anim .leaflet-zoom-hide { 335 visibility: hidden; 336 } 337 338 339/* cursors */ 340 341.leaflet-interactive { 342 cursor: pointer; 343 } 344.leaflet-grab { 345 cursor: -webkit-grab; 346 cursor: -moz-grab; 347 cursor: grab; 348 } 349.leaflet-crosshair, 350.leaflet-crosshair .leaflet-interactive { 351 cursor: crosshair; 352 } 353.leaflet-popup-pane, 354.leaflet-control { 355 cursor: auto; 356 } 357.leaflet-dragging .leaflet-grab, 358.leaflet-dragging .leaflet-grab .leaflet-interactive, 359.leaflet-dragging .leaflet-marker-draggable { 360 cursor: move; 361 cursor: -webkit-grabbing; 362 cursor: -moz-grabbing; 363 cursor: grabbing; 364 } 365 366/* marker & overlays interactivity */ 367.leaflet-marker-icon, 368.leaflet-marker-shadow, 369.leaflet-image-layer, 370.leaflet-pane > svg path, 371.leaflet-tile-container { 372 pointer-events: none; 373 } 374 375.leaflet-marker-icon.leaflet-interactive, 376.leaflet-image-layer.leaflet-interactive, 377.leaflet-pane > svg path.leaflet-interactive, 378svg.leaflet-image-layer.leaflet-interactive path { 379 pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ 380 pointer-events: auto; 381 } 382 383/* visual tweaks */ 384 385.leaflet-container { 386 background: #ddd; 387 outline-offset: 1px; 388 } 389.leaflet-container a { 390 color: #0078A8; 391 } 392.leaflet-zoom-box { 393 border: 2px dotted #38f; 394 background: rgba(255,255,255,0.5); 395 } 396 397 398/* general typography */ 399.leaflet-container { 400 font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; 401 font-size: 12px; 402 font-size: 0.75rem; 403 line-height: 1.5; 404 } 405 406 407/* general toolbar styles */ 408 409.leaflet-bar { 410 box-shadow: 0 1px 5px rgba(0,0,0,0.65); 411 border-radius: 4px; 412 } 413.leaflet-bar a { 414 background-color: #fff; 415 border-bottom: 1px solid #ccc; 416 width: 26px; 417 height: 26px; 418 line-height: 26px; 419 display: block; 420 text-align: center; 421 text-decoration: none; 422 color: black; 423 } 424.leaflet-bar a, 425.leaflet-control-layers-toggle { 426 background-position: 50% 50%; 427 background-repeat: no-repeat; 428 display: block; 429 } 430.leaflet-bar a:hover, 431.leaflet-bar a:focus { 432 background-color: #f4f4f4; 433 } 434.leaflet-bar a:first-child { 435 border-top-left-radius: 4px; 436 border-top-right-radius: 4px; 437 } 438.leaflet-bar a:last-child { 439 border-bottom-left-radius: 4px; 440 border-bottom-right-radius: 4px; 441 border-bottom: none; 442 } 443.leaflet-bar a.leaflet-disabled { 444 cursor: default; 445 background-color: #f4f4f4; 446 color: #bbb; 447 } 448 449.leaflet-touch .leaflet-bar a { 450 width: 30px; 451 height: 30px; 452 line-height: 30px; 453 } 454.leaflet-touch .leaflet-bar a:first-child { 455 border-top-left-radius: 2px; 456 border-top-right-radius: 2px; 457 } 458.leaflet-touch .leaflet-bar a:last-child { 459 border-bottom-left-radius: 2px; 460 border-bottom-right-radius: 2px; 461 } 462 463/* zoom control */ 464 465.leaflet-control-zoom-in, 466.leaflet-control-zoom-out { 467 font: bold 18px 'Lucida Console', Monaco, monospace; 468 text-indent: 1px; 469 } 470 471.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { 472 font-size: 22px; 473 } 474 475 476/* layers control */ 477 478.leaflet-control-layers { 479 box-shadow: 0 1px 5px rgba(0,0,0,0.4); 480 background: #fff; 481 border-radius: 5px; 482 } 483.leaflet-control-layers-toggle { 484 /*background-image: url(images/layers.png);*/ 485 width: 36px; 486 height: 36px; 487 } 488.leaflet-retina .leaflet-control-layers-toggle { 489 /*background-image: url(images/layers-2x.png);*/ 490 background-size: 26px 26px; 491 } 492.leaflet-touch .leaflet-control-layers-toggle { 493 width: 44px; 494 height: 44px; 495 } 496.leaflet-control-layers .leaflet-control-layers-list, 497.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
498 display: none; 499 } 500.leaflet-control-layers-expanded .leaflet-control-layers-list { 501 display: block; 502 position: relative; 503 } 504.leaflet-control-layers-expanded { 505 padding: 6px 10px 6px 6px; 506 color: #333; 507 background: #fff; 508 } 509.leaflet-control-layers-scrollbar { 510 overflow-y: scroll; 511 overflow-x: hidden; 512 padding-right: 5px; 513 } 514.leaflet-control-layers-selector { 515 margin-top: 2px; 516 position: relative; 517 top: 1px; 518 } 519.leaflet-control-layers label { 520 display: block; 521 font-size: 13px; 522 font-size: 1.08333em; 523 } 524.leaflet-control-layers-separator { 525 height: 0; 526 border-top: 1px solid #ddd; 527 margin: 5px -10px 5px -6px; 528 } 529 530/* Default icon URLs */ 531.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ 532 background-image: url('https://avskycharterscom.bigscoots-staging.com/wp-content/uploads/2025/06/marker-icon-2x.png'); 533 } 534 535 536/* attribution and scale controls */ 537 538.leaflet-container .leaflet-control-attribution { 539 background: #fff; 540 background: rgba(255, 255, 255, 0.8); 541 margin: 0; 542 } 543.leaflet-control-attribution, 544.leaflet-control-scale-line { 545 padding: 0 5px; 546 color: #333; 547 line-height: 1.4; 548 } 549.leaflet-control-attribution a { 550 text-decoration: none; 551 } 552.leaflet-control-attribution a:hover, 553.leaflet-control-attribution a:focus { 554 text-decoration: underline; 555 } 556.leaflet-attribution-flag { 557 display: inline !important; 558 vertical-align: baseline !important; 559 width: 1em; 560 height: 0.6669em; 561 } 562.leaflet-left .leaflet-control-scale { 563 margin-left: 5px; 564 } 565.leaflet-bottom .leaflet-control-scale { 566 margin-bottom: 5px; 567 } 568.leaflet-control-scale-line { 569 border: 2px solid #777; 570 border-top: none; 571 line-height: 1.1; 572 padding: 2px 5px 1px; 573 white-space: nowrap; 574 -moz-box-sizing: border-box; 575 box-sizing: border-box; 576 background: rgba(255, 255, 255, 0.8); 577 text-shadow: 1px 1px #fff; 578 } 579.leaflet-control-scale-line:not(:first-child) { 580 border-top: 2px solid #777; 581 border-bottom: none; 582 margin-top: -2px; 583 } 584.leaflet-control-scale-line:not(:first-child):not(:last-child) { 585 border-bottom: 2px solid #777; 586 } 587 588.leaflet-touch .leaflet-control-attribution, 589.leaflet-touch .leaflet-control-layers, 590.leaflet-touch .leaflet-bar { 591 box-shadow: none; 592 } 593.leaflet-touch .leaflet-control-layers, 594.leaflet-touch .leaflet-bar { 595 border: 2px solid rgba(0,0,0,0.2); 596 background-clip: padding-box; 597 } 598 599 600/* popup */ 601 602.leaflet-popup { 603 position: absolute; 604 text-align: center; 605 margin-bottom: 20px; 606 } 607.leaflet-popup-content-wrapper { 608 padding: 1px; 609 text-align: left; 610 border-radius: 12px; 611 } 612.leaflet-popup-content { 613 margin: 13px 24px 13px 20px; 614 line-height: 1.3; 615 font-size: 13px; 616 font-size: 1.08333em; 617 min-height: 1px; 618 } 619.leaflet-popup-content p { 620 margin: 17px 0; 621 margin: 1.3em 0; 622 } 623.leaflet-popup-tip-container { 624 width: 40px; 625 height: 20px; 626 position: absolute; 627 left: 50%; 628 margin-top: -1px; 629 margin-left: -20px; 630 overflow: hidden; 631 pointer-events: none; 632 } 633.leaflet-popup-tip { 634 width: 17px; 635 height: 17px; 636 padding: 1px; 637 638 margin: -10px auto 0; 639 pointer-events: auto; 640 641 -webkit-transform: rotate(45deg); 642 -moz-transform: rotate(45deg); 643 -ms-transform: rotate(45deg); 644 transform: rotate(45deg); 645 } 646.leaflet-popup-content-wrapper, 647.leaflet-popup-tip { 648 background: white; 649 color: #333; 650 box-shadow: 0 3px 14px rgba(0,0,0,0.4); 651 } 652.leaflet-container a.leaflet-popup-close-button { 653 position: absolute; 654 top: 0; 655 right: 0; 656 border: none; 657 text-align: center; 658 width: 24px; 659 height: 24px; 660 font: 16px/24px Tahoma, Verdana, sans-serif; 661 color: #757575; 662 text-decoration: none; 663 background: transparent; 664 } 665.leaflet-container a.leaflet-popup-close-button:hover, 666.leaflet-container a.leaflet-popup-close-button:focus { 667 color: #585858; 668 } 669.leaflet-popup-scrolled { 670 overflow: auto; 671 } 672 673.leaflet-oldie .leaflet-popup-content-wrapper { 674 -ms-zoom: 1; 675 } 676.leaflet-oldie .leaflet-popup-tip { 677 width: 24px; 678 margin: 0 auto; 679 680 -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; 681 filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); 682 } 683 684.leaflet-oldie .leaflet-control-zoom, 685.leaflet-oldie .leaflet-control-layers, 686.leaflet-oldie .leaflet-popup-content-wrapper, 687.leaflet-oldie .leaflet-popup-tip { 688 border: 1px solid #999; 689 } 690 691 692/* div icon */ 693 694.leaflet-div-icon { 695 background: #fff; 696 border: 1px solid #666; 697 } 698 699 700/* Tooltip */ 701/* Base styles for the element that has a tooltip */ 702.leaflet-tooltip { 703 position: absolute; 704 padding: 6px; 705 background-color: #fff; 706 border: 1px solid #fff; 707 border-radius: 3px; 708 color: #222; 709 white-space: nowrap; 710 -webkit-user-select: none; 711 -moz-user-select: none; 712 -ms-user-select: none; 713 user-select: none; 714 pointer-events: none; 715 box-shadow: 0 1px 3px rgba(0,0,0,0.4); 716 } 717.leaflet-tooltip.leaflet-interactive { 718 cursor: pointer; 719 pointer-events: auto; 720 } 721.leaflet-tooltip-top:before, 722.leaflet-tooltip-bottom:before, 723.leaflet-tooltip-left:before, 724.leaflet-tooltip-right:before { 725 position: absolute; 726 pointer-events: none; 727 border: 6px solid transparent; 728 background: transparent; 729 content: ""; 730 } 731 732/* Directions */ 733 734.leaflet-tooltip-bottom { 735 margin-top: 6px; 736} 737.leaflet-tooltip-top { 738 margin-top: -6px; 739} 740.leaflet-tooltip-bottom:before, 741.leaflet-tooltip-top:before { 742 left: 50%; 743 margin-left: -6px; 744 } 745.leaflet-tooltip-top:before { 746 bottom: 0; 747 margin-bottom: -12px; 748 border-top-color: #fff; 749 } 750.leaflet-tooltip-bottom:before { 751 top: 0; 752 margin-top: -12px; 753 margin-left: -6px; 754 border-bottom-color: #fff; 755 } 756.leaflet-tooltip-left { 757 margin-left: -6px; 758} 759.leaflet-tooltip-right { 760 margin-left: 6px; 761} 762.leaflet-tooltip-left:before, 763.leaflet-tooltip-right:before { 764 top: 50%; 765 margin-top: -6px; 766 } 767.leaflet-tooltip-left:before { 768 right: 0; 769 margin-right: -12px; 770 border-left-color: #fff; 771 } 772.leaflet-tooltip-right:before { 773 left: 0; 774 margin-left: -12px; 775 border-right-color: #fff; 776 } 777 778/* Printing */ 779 780@media print {
781 /* Prevent printers from removing background-images of controls. */ 782 .leaflet-control { 783 -webkit-print-color-adjust: exact; 784 print-color-adjust: exact; 785 } 786 } 787</style> 788<!-- end Simple Custom CSS and JS --> 789<!-- start Simple Custom CSS and JS --> 790<style> 791/* Header */ 792.main-navigation { 793 border-bottom: 1px solid var(--grey); 794} 795.main-navigation .header-cta { 796 display: inline-flex; 797} 798.slideout-navigation { 799 padding: 1.5rem; 800 transition: all, transform 600ms cubic-bezier(0.165, 0.84, 0.44, 1) !important; 801} 802.header-social-icons a { 803 font-size: 1.5rem; 804} 805.main-navigation .inside-navigation { 806 justify-content: center; 807} 808.menu-toggle .mobile-menu { 809 display: none; 810} 811.menu-toggle .gp-icon { 812 color: var(--dark); 813} 814 815/* Homepage */ 816div#n2-ss-6 .n2-font-3ecf0eae1330c67fdc521820f79d1cd5-hover { 817 font-family: 'DM Sans', sans-serif; 818 letter-spacing: 0; 819 line-height: 1.3; 820} 821div#n2-ss-6 .n2-style-4ad07700499462953f729d8debb8afbb-heading { 822 background: var(--dark); 823 border-radius: 30px; 824} 825 826/* Itinerary */ 827.airport-map { 828 height: 400px; 829 border-radius: 10px; 830} 831.faq-accordion-answer { 832 display: none; 833 transition: all 0.3s; 834} 835.faq-accordion-item.open .faq-accordion-question { 836 font-weight: 600; 837 border-bottom: 1px solid var(--accent); 838} 839.faq-accordion-item.open .faq-accordion-question .gb-shape { 840 transform: rotate(180deg); 841} 842.faq-accordion-item.open .faq-accordion-answer { 843 display: block; 844} 845.faq-accordion-question { 846 cursor: pointer; 847} 848.gb-loop-item:last-child .departing-airport-location, 849.gb-loop-item:last-child > div { 850 margin-bottom: 0; 851} 852.single-itinerary .gb-text p a, 853.single-destination .gb-text p a { 854 text-decoration: underline; 855 font-weight: 700; 856} 857.single-itinerary .gb-text p a:hover, 858.single-destination .gb-text p a:hover { 859 color: currentcolor; 860} 861 862/* Gravity Forms */ 863.gform-theme--foundation .gform_fields { 864 row-gap: 1rem !important; 865} 866.gform-theme--foundation .gfield input, 867.gform-theme--foundation .gfield select { 868 border: 1px solid var(--grey) !important; 869 height: 50px !important; 870 border-radius: 5px !important; 871 line-height: 50px; 872} 873.gform-theme--foundation .gfield textarea.large { 874 min-block-size: 10rem; 875 border: 0 !important; 876 border-radius: 5px !important; 877} 878.gform-theme--foundation .gform_button { 879 background: var(--dark) !important; 880 height: 50px !important; 881 min-width: 300px !important; 882 font-size: 1rem !important; 883 font-weight: 700 !important; 884} 885.gform-theme--foundation .gform_button:hover { 886 background: var(--accent) !important; 887} 888 889/* Posts */ 890.dynamic-entry-content a { 891 text-decoration: underline; 892} 893.simpletoc { 894 background: #f1f1f1; 895 padding: 30px; 896 border-radius: 15px; 897 margin: 10px 0 20px; 898} 899.simpletoc .simpletoc-title { 900 margin-bottom: 20px; 901 color: #000; 902} 903 904.simpletoc ul, .simpletoc ol { 905 margin-bottom: 0; 906 padding-bottom: 0; 907 margin-left: 20px; 908} 909.wp-block-list { 910 margin-left: 20px; 911} 912.simpletoc-list a { 913 font-weight: 600; 914 color: var(--dark); 915 text-decoration: none; 916} 917.simpletoc-list a:hover { 918 color: var(--accent); 919} 920.single .has-fixed-layout td { 921 padding: 12px 16px; 922 border: 1px solid #eaeaea; 923} 924.wp-block-image + p { 925 margin-top: 1rem; 926} 927.logged-in .post-sidebar > div { 928 top: 120px; 929} 930 931/* Klaviyo Form */ 932.klaviyo-form button[type="button"]:hover { 933 background: var(--accent) !important; 934} 935div[data-testid="form-row"]:nth-child(2) > div { 936 padding-top: 5px !important; 937} 938div[data-testid="form-row"] [id^="rich-text-"] { 939 margin-left: -10px !important; 940 margin-right: -10px !important; 941 width: calc(100% + 20px) !important; 942} 943div[data-testid="form-row"]:first-child [id^="rich-text-"] { 944 padding: 1rem 1rem 0.5rem !important; 945 background: var(--light-blue) !important; 946 border-radius: 15px 15px 0 0 !important; 947} 948div[data-testid="form-row"]:nth-child(2) [id^="rich-text-"] { 949 padding: 0 1rem 1rem !important; 950 background: var(--light-blue) !important; 951 border-radius: 0 0 15px 15px !important; 952 margin-top: -1rem !important; 953}
954div[data-testid="form-row"] [id^="rich-text-"] p { 955 font-family: inherit !important; 956 color: var(--dark) !important; 957} 958 959/* Affiliate Form */ 960/* .page-id-4265 .bt-main-content-ss { 961 padding: 40px 0 30px; 962} 963.page-id-4265 .wp-block-image { 964 margin-top: 0; 965} */ 966.page-id-4377 .bt-main-content-ss { 967 padding: 15px 0 30px; 968} 969.page-id-4264 .bt-main-content-ss { 970 padding-top: 60px; 971} 972.page-id-4264 .bt-container, 973.page-id-4275 .bt-container { 974 max-width: 800px; 975 padding: 0 30px; 976} 977.page-id-4377 .bt-container, 978.page-id-4371 .bt-container { 979 max-width: 1000px; 980 padding: 0 30px; 981} 982.page-id-4264 .affwp-form, 983.page-id-4275 .lost_reset_password { 984 background: var(--dark); 985 border-radius: 20px; 986 padding: 30px 40px 40px; 987} 988.page-id-4265 .affwp-form { 989 margin-bottom: 0; 990} 991.page-id-4265 .affwp-form fieldset legend { 992 display: none; 993} 994.page-id-4264 .affwp-form legend { 995 font-size: 28px; 996 padding-top: 15px; 997 font-weight: 700; 998 display: block; 999 color: #fff; 1000} 1001.page-id-4265 .affwp-form input[type=text], 1002.page-id-4265 .affwp-form input[type=email], 1003.page-id-4265 .affwp-form input[type=url], 1004.page-id-4265 .affwp-form input[type=password], 1005.page-id-4264 .affwp-form input[type=text], 1006.page-id-4264 .affwp-form input[type=password], 1007.page-id-4275 .lost_reset_password input[type=text] { 1008 padding: 0 15px; 1009 border-radius: 5px; 1010 height: 58px; 1011 background: #fff; 1012} 1013.page-id-4264 .affwp-form label, 1014.page-id-4275 .lost_reset_password label, 1015.page-id-4275 .lost_reset_password p { 1016 color: #fff; 1017 font-weight: 700; 1018} 1019.page-id-4265 .affwp-form label { 1020 display: block; 1021 margin-bottom: 0.5rem; 1022} 1023.page-id-4265 .affwp-form .affwp-label-checkbox-multiple, 1024.page-id-4265 .affwp-form .affwp-label-radio { 1025 font-weight: 300; 1026} 1027.page-id-4265 .affwp-form fieldset p:last-of-type { 1028 display: flex; 1029 gap: 10px; 1030 align-items: flex-start; 1031 line-height: 1.2; 1032} 1033.page-id-4263 .affwp-form input[type=submit], 1034.page-id-4263 .affwp-affiliate-link-copy-link, 1035.page-id-4265 .affwp-form input[type=submit], 1036.page-id-4264 .affwp-form input[type=submit], 1037.page-id-4275 .lost_reset_password button[type=submit]{ 1038 background: var(--accent); 1039 color: #fff; 1040 border-radius: 30px !important; 1041 padding: 0.8rem 2rem; 1042} 1043.page-id-4264 .affwp-form input[type=submit]:hover, 1044.page-id-4275 .lost_reset_password button[type=submit]:hover { 1045 background: #fff; 1046 color: var(--dark); 1047} 1048.page-id-4265 .affwp-form input[type=submit]:hover { 1049 background: var(--dark); 1050} 1051.affwp-field-label a { 1052 text-decoration: underline; 1053} 1054.affwp-lost-password a { 1055 text-decoration: underline; 1056 color: #fff; 1057} 1058.affwp-field-label a:hover, 1059.affwp-lost-password a:hover { 1060 color: #2266A2; 1061} 1062.affwp-form input[type=checkbox] { 1063 cursor: pointer; 1064} 1065#affwp-affiliate-dashboard { 1066 max-width: 1000px; 1067 margin: 30px auto 50px; 1068 padding: 0 30px; 1069} 1070.affwp-affiliate-link-copy-link.button { 1071 white-space: nowrap; 1072} 1073#affwp-affiliate-dashboard button, 1074#affwp-affiliate-dashboard .button{ 1075 background: var(--dark); 1076 color: #fff; 1077 border-radius: 5px; 1078} 1079#affwp-affiliate-dashboard #affwp-affiliate-dashboard-tabs li a { 1080 color: var(--dark); 1081} 1082@media (max-width: 767px) { 1083 .best-airport__text { 1084 width: 100% !important; 1085 } 1086 .airport-list { 1087 height: auto !important; 1088 } 1089} 1090@media (max-width: 480px) { 1091 #site-navigation .navigation-branding, 1092 #sticky-navigation .navigation-branding { 1093 margin-left: 20px; 1094 } 1095 .page-id-4265 .bt-main-content-ss { 1096 padding: 30px 0; 1097 } 1098/* .page-id-4265 .affwp-form { 1099 padding: 15px 20px 30px; 1100 } */ 1101 .page-id-4264 .affwp-form { 1102 padding: 20px; 1103 margin-bottom: 0; 1104 } 1105 .page-id-4264 .bt-main-content-ss { 1106 padding-top: 30px; 1107 } 1108 .page-id-4264 .affwp-form legend { 1109 font-size: 20px; 1110 } 1111 .page-id-4377 h2 { 1112 font-size: 28px; 1113 margin-bottom: 0; 1114 } 1115 .page-id-4371 h2 { 1116 margin: 0; 1117 font-size: 32px; 1118 } 1119 .m-0 { 1120 margin: 0 !important; 1121 } 1122 .page-id-4265 h2 { 1123 font-size: 28px; 1124 } 1125 .post-sidebar { 1126 display: none; 1127 } 1128}</style> 1129<!-- end Simple Custom CSS and JS --> 1130<!-- start Simple Custom CSS and JS --> 1131<style> 1132/* Global Styles */ 1133:root { 1134 --primary-color: #467ff7; 1135 --secondary-color: #232d40; 1136 --light-gray: #e7e7e7; 1137 --text-gray: #4a4a4a; 1138 --text-dark: #1c244b; 1139 --white: #ffffff; 1140 --red: #c33c54; 1141 --light-blue: #c3ddf1; 1142 --light-green: #f0f7f3; 1143} 1144 1145/* ============================================================ 1146 Common styles between both forms 1147 ============================================================ */
1148.btn { 1149 background: var(--dark); 1150 color: #fff; 1151 border: none; 1152 padding: 16px 32px; 1153 border-radius: 50px; 1154 cursor: pointer; 1155 transition: all 0.3s ease; 1156 margin-top: 1rem; 1157 align-self: flex-start; 1158 display: flex; 1159 align-items: center; 1160 gap: 1rem; 1161 font-weight: 500; 1162} 1163.btn svg { 1164 width: 1em; 1165 height: 1em; 1166 font-size: 1.25rem; 1167} 1168.btn:hover { 1169 background: var(--accent); 1170 color: #fff; 1171} 1172.btn:focus { 1173 background: var(--dark); 1174 color: #fff; 1175} 1176 1177/* ----- Date Time picker ----- */ 1178.ui-datepicker { 1179 max-width: 300px; 1180 border-radius: 0 !important; 1181 padding: 0 !important; 1182} 1183.ui-datepicker .ui-datepicker-header { 1184 border-radius: 0 !important; 1185 background: var(--secondary-color); 1186 color: #fff; 1187} 1188.ui-datepicker .ui-datepicker-title, 1189.ui-datepicker th { 1190 font-size: 16px; 1191} 1192.ui-datepicker .ui-datepicker-prev span, 1193.ui-datepicker .ui-datepicker-next span { 1194 filter: brightness(100); 1195} 1196.ui-state-hover { 1197 background: var(--secondary-color) !important; 1198 border: 0 !important; 1199 color: var(--white) !important; 1200} 1201.ui-datepicker td { 1202 padding: 0 !important; 1203} 1204.ui-datepicker td span, 1205.ui-datepicker td a { 1206 text-align: center !important; 1207 font-weight: 700 !important; 1208} 1209.ui-state-default { 1210 font-size: 12px; 1211 padding: 0 10px; 1212 height: 30px; 1213} 1214.ui-datepicker .ui-datepicker-buttonpane { 1215 width: 77px; 1216 float: right; 1217 margin: 0 !important; 1218 padding: 5px !important; 1219 border-top: 2px solid #ccc !important; 1220} 1221.ui-datepicker .ui-datepicker-buttonpane button { 1222 background: var(--text-dark); 1223 color: var(--white); 1224 border: 0; 1225 border-radius: 2px !important; 1226 text-transform: none; 1227 padding: 0px 15px; 1228} 1229.ui-timepicker-div.ui-timepicker-oneLine dl { 1230 text-align: left !important; 1231 margin: 0 !important; 1232 padding: 0 !important; 1233} 1234.ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label { 1235 padding-right: 10px; 1236 font-size: 16px; 1237} 1238.ui-datepicker-buttonpane button:first-child { 1239 display: none; 1240} 1241.ui-timepicker-select { 1242 appearance: auto !important; 1243 padding: 0 !important; 1244 background: #fff !important; 1245 font-weight: 700 !important; 1246} 1247.ui-timepicker-select, 1248.ui-datepicker .ui-datepicker-buttonpane button { 1249 font-size: 14px !important; 1250 border-radius: 0 !important; 1251} 1252.ui-timepicker-div.ui-timepicker-oneLine { 1253 padding: 10px 5px 0 !important; 1254 border-top: 2px solid #ccc; 1255 margin: 0; 1256 float: left; 1257 width: 220px; 1258} 1259.ui-timepicker-div.ui-timepicker-oneLine dl { 1260 margin-bottom: 0; 1261} 1262 1263/* ----- Error message ----- */ 1264.error-message { 1265 display: block; 1266 line-height: 1.3; 1267 margin: 5px 0 0 0; 1268} 1269 1270/* ----- Loader ----- */ 1271.loader { 1272 text-align: center; 1273 padding: 20px; 1274 color: var(--text-gray); 1275} 1276 1277@media (max-width: 480px) { 1278 .btn { 1279 padding: 14px 24px; 1280 width: 100%; 1281 justify-content: center; 1282 } 1283} 1284 1285/* ============================================================ 1286 Quote Form - Extended 1287 ============================================================ */ 1288.quote-form--extended label { 1289 color: var(--text-dark); 1290 font-size: 14px; 1291 cursor: pointer; 1292 line-height: 1.5; 1293} 1294.quote-form--extended .quote-type { 1295 display: flex; 1296 gap: 30px; 1297 margin-bottom: 10px; 1298} 1299/* Custom radio button */ 1300.quote-form--extended .custom-radio label { 1301 position: relative; 1302 padding-left: 30px; 1303 cursor: pointer; 1304 font-size: 16px; 1305} 1306.quote-form--extended .custom-radio input[type="radio"] { 1307 position: absolute; 1308 opacity: 0; 1309 cursor: pointer; 1310} 1311.quote-form--extended .custom-radio label:before { 1312 content: ""; 1313 position: absolute; 1314 left: 0; 1315 top: 50%; 1316 transform: translateY(-50%); 1317 width: 24px; 1318 height: 24px; 1319 border-radius: 50%; 1320 border: 2px solid #ccc; 1321 background-color: #fff; 1322 transition: all 0.3s ease-in-out; 1323} 1324.quote-form--extended .custom-radio label:hover:before { 1325 border-color: #2196f3; 1326} 1327.quote-form--extended .custom-radio input[type="radio"]:checked + label:before, 1328.quote-form--extended .custom-radio label:has(input[type="radio"]:checked):before { 1329 border-color: #2196f3; 1330 background-color: #fff; 1331} 1332.quote-form--extended .custom-radio label:after { 1333 content: ""; 1334 position: absolute; 1335 left: 12px; 1336 top: 50%; 1337 transform: translate(-50%, -50%); 1338 width: 12px; 1339 height: 12px; 1340 border-radius: 50%; 1341 background: #2196f3; 1342 transition: all 0.3s ease-in-out; 1343 opacity: 0; 1344} 1345.quote-form--extended .custom-radio input[type="radio"]:checked + label:after, 1346.quote-form--extended .custom-radio label:has(input[type="radio"]:checked):after { 1347 opacity: 1;
1348} 1349.quote-form--extended .custom-radio input[type="radio"]:focus + label:before, 1350.quote-form--extended .custom-radio label:has(input[type="radio"]:focus):before { 1351 box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.3); 1352} 1353 1354/* Datepicker icon */ 1355.quote-form--extended .input-wrapper { 1356 position: relative; 1357 display: inline-block; 1358 width: 100%; 1359} 1360.quote-form--extended .departure-datepicker, 1361.quote-form--extended .return-datepicker { 1362 padding-left: 40px !important; 1363} 1364.quote-form--extended .calendar-icon { 1365 position: absolute; 1366 left: 0px; 1367 top: 22px; 1368 transform: translateY(-50%); 1369 color: #666; 1370 pointer-events: none; 1371 width: 24px; 1372 height: 24px; 1373} 1374.quote-form--extended .quote-container__inner { 1375 margin-bottom: 1rem; 1376} 1377.quote-form--extended .trip-row, 1378.quote-form--extended .multicity-row { 1379 border: 1px solid var(--light-gray); 1380 border-radius: 10px; 1381} 1382.quote-form--extended .multicity-row { 1383 margin: 15px 0; 1384} 1385.quote-form--extended .trip-row { 1386 display: grid; 1387 grid-template-columns: 2fr 1fr 1fr 1fr; 1388 align-items: center; 1389 background: #fff; 1390} 1391.quote-form--extended .trip-row > div { 1392 width: 100%; 1393 position: relative; 1394 border-right: 1px solid var(--light-gray); 1395 padding: 15px; 1396 height: 100%; 1397 display: flex; 1398 flex-direction: column; 1399 justify-content: center; 1400 gap: 10px; 1401} 1402 1403/* Input Fields */ 1404.quote-form--extended input[type="text"], 1405.quote-form--extended input[type="number"], 1406.quote-form--extended input[type="email"], 1407.quote-form--extended textarea { 1408 width: 100%; 1409 font-size: 16px !important; 1410 color: var(--text-dark); 1411 padding: 0; 1412 height: 40px; 1413 border-radius: 0; 1414 border: 0; 1415 border-bottom: 1px solid var(--light-gray); 1416 font-weight: 700; 1417} 1418 1419.quote-form--extended input[type="text"]:focus, 1420.quote-form--extended input[type="number"]:focus, 1421.quote-form--extended input[type="email"]:focus, 1422.quote-form--extended select:focus, 1423.quote-form--extended textarea:focus { 1424 outline: none; 1425 border-bottom: 1px solid var(--text-gray); 1426} 1427 1428/* Passenger Control */ 1429.quote-form--extended .passenger-wrapper { 1430 width: 150px; 1431} 1432 1433.quote-form--extended .passenger-control { 1434 display: flex; 1435 align-items: center; 1436 gap: 10px; 1437 width: 100%; 1438 height: 40px; 1439} 1440 1441.quote-form--extended .passenger-control button { 1442 width: 24px; 1443 height: 24px; 1444 background: var(--secondary-color); 1445 border-radius: 50%; 1446 cursor: pointer; 1447 font-size: 14px; 1448 display: flex; 1449 align-items: center; 1450 justify-content: center; 1451 padding: 0; 1452 color: var(--white); 1453} 1454 1455.quote-form--extended .passenger-control input { 1456 width: 50px; 1457 text-align: center; 1458 border: none; 1459 padding: 0; 1460 font-size: 16px; 1461 color: var(--text-dark); 1462 height: 100%; 1463 font-weight: 700; 1464} 1465 1466.quote-form--extended .passenger-control input:focus { 1467 outline: none; 1468 box-shadow: none; 1469} 1470 1471.quote-form--extended .location-row div { 1472 position: relative; 1473} 1474/* Suggestions Dropdown */ 1475.quote-form--extended .location-row .suggestions { 1476 position: absolute; 1477 background: var(--white); 1478 border-radius: 4px; 1479 max-height: 300px; 1480 overflow-y: auto; 1481 width: 100%; 1482 z-index: 1000; 1483 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); 1484 top: 100%; 1485 left: 0; 1486} 1487 1488.quote-form--extended .location-row .suggestion-item { 1489 padding: 8px 12px; 1490 cursor: pointer; 1491 border-bottom: 1px solid #eee; 1492 font-size: 14px; 1493 line-height: 1.3; 1494} 1495 1496.quote-form--extended .location-row .suggestion-item:hover { 1497 background-color: #f5f5f5; 1498} 1499 1500.quote-form--extended .municipality-header { 1501 padding: 10px 12px; 1502 background-color: #f8f8f8; 1503 border-bottom: 1px solid #eee; 1504} 1505 1506.quote-form--extended .municipality-name { 1507 font-weight: 600; 1508 color: #333; 1509 cursor: pointer; 1510 font-size: 16px; 1511} 1512 1513.quote-form--extended .municipality-name:hover { 1514 color: #0066cc; 1515} 1516 1517.quote-form--extended .airport-info { 1518 display: flex; 1519 flex-direction: column; 1520} 1521 1522.quote-form--extended .airport-name { 1523 color: #333; 1524} 1525 1526/* Buttons */ 1527.quote-form--extended .passenger-control button, 1528.quote-form--extended button.btn-remove { 1529 padding: 15px; 1530 border-radius: 3px; 1531 font-size: 24px; 1532 background: var(--secondary-color); 1533 cursor: pointer; 1534} 1535.quote-form--extended button.btn-remove { 1536 background: var(--red) !important; 1537 color: #fff; 1538 padding: 0px 15px; 1539} 1540 1541.quote-form--extended .multicity-section { 1542 position: relative; 1543} 1544.quote-form--extended .multicity-section .btn-add-city { 1545 background: transparent !important; 1546 color: var(--secondary-color) !important; 1547 position: absolute; 1548 right: 0; 1549 font-size: 14px; 1550} 1551.quote-form--extended .multicity-section .btn-add-city:hover { 1552 text-decoration: underline; 1553} 1554/* Trip Details Section */ 1555.quote-form--extended .trip-summary { 1556 background: var(--light-green); 1557 padding: 2rem; 1558 border-radius: 10px; 1559}
1560.quote-form--extended .trip-summary h5 { 1561 color: var(--text-dark); 1562 font-size: 14px; 1563 line-height: 1.5; 1564 font-weight: normal; 1565 text-transform: uppercase; 1566 letter-spacing: 1px; 1567} 1568.quote-form--extended .trip-summary p { 1569 font-size: 14px; 1570 line-height: 1.5; 1571} 1572.quote-form--extended .trip-summary .trip-summary-content:first-child { 1573 border-bottom: 2px solid #ccc; 1574 margin-bottom: 20px; 1575} 1576/* guest Info Section */ 1577.quote-form--extended .quote-summary-row form { 1578 background: #fff; 1579 padding: 2rem; 1580 border-radius: 10px; 1581} 1582.quote-form--extended .guest-info { 1583 margin-bottom: 20px; 1584} 1585.quote-form--extended .guest-info-row { 1586 margin-bottom: 20px; 1587} 1588.quote-form--extended .guest-info input, 1589.quote-form--extended .guest-info select, 1590.quote-form--extended .guest-info textarea { 1591 border: 1px solid var(--light-gray); 1592 padding: 15px; 1593 height: 50px; 1594 width: 100%; 1595 border-radius: 5px; 1596} 1597.quote-form--extended .guest-info textarea { 1598 height: 150px; 1599} 1600 1601.quote-form--extended .quote-summary { 1602 margin-top: 60px; 1603 font-family: Poppins, sans-serif; 1604} 1605.quote-form--extended .quote-summary h4 { 1606 margin-bottom: 40px; 1607} 1608 1609/* Multi-city specific styles */ 1610.quote-form--extended .multi-city-trip { 1611 margin-top: 20px; 1612} 1613.quote-form--extended .quote-summary-row, 1614.quote-form--extended .guest-info-row { 1615 display: grid; 1616 grid-template-columns: 1fr 1fr; 1617 grid-gap: 1rem; 1618} 1619.quote-form--extended .guest-info-row { 1620 align-items: end; 1621} 1622.quote-form--extended input:focus::placeholder { 1623 opacity: 0; 1624 transition: opacity 0.3s; 1625} 1626 1627@media (max-width: 768px) { 1628 .quote-form--extended .quote-type { 1629 gap: 5px; 1630 justify-content: center; 1631 margin-bottom: 15px; 1632 } 1633 .quote-form--extended .quote-type label { 1634 white-space: nowrap; 1635 font-size: 14px; 1636 } 1637 .quote-form--extended .trip-row { 1638 grid-template-columns: 1fr; 1639 } 1640 .quote-form--extended .multicity-section .btn-add-city { 1641 position: static; 1642 padding: 0; 1643 } 1644 .quote-form--extended .trip-summary { 1645 padding: 30px; 1646 display: none; 1647 } 1648 .quote-form--extended .quote-summary-row, 1649 .quote-form--extended .guest-info-row { 1650 grid-template-columns: 1fr; 1651 gap: 20px; 1652 } 1653 .quote-form--extended .departure-datepicker, 1654 .quote-form--extended .return-datepicker, 1655 .quote-form--extended input[name="multicityDeparture[]"], 1656 .quote-form--extended .passenger-wrapper { 1657 width: 100% !important; 1658 } 1659} 1660 1661/* ============================================================ 1662 Quote Form - Simple 1663 ============================================================ */ 1664.quote-form--simple input[type="number"] { 1665 max-width: 3rem; 1666} 1667 1668/* Form rows with grid layouts */ 1669.quote-form--simple .form-row { 1670 display: grid; 1671 gap: 20px; 1672} 1673 1674.quote-form--simple .form-row.two-columns { 1675 grid-template-columns: 1fr 1fr; 1676} 1677 1678.quote-form--simple .form-row.one-column { 1679 grid-template-columns: 1fr; 1680} 1681 1682/* Form fields */ 1683.quote-form--simple .form-field { 1684 display: flex; 1685 flex-direction: row; 1686 align-items: center; 1687 gap: 7px; 1688 border-bottom: 1px solid var(--grey); 1689 margin-bottom: 15px; 1690 position: relative; 1691} 1692 1693/* Message field exception - keep it vertical */ 1694.quote-form--simple .form-row.one-column .form-field:has(textarea) { 1695 flex-direction: column; 1696 align-items: flex-start; 1697 gap: 8px; 1698} 1699 1700.quote-form--simple .form-field label { 1701 font-weight: 700; 1702 color: #2c3e50; 1703 font-size: 16px; 1704 flex-shrink: 0; 1705} 1706 1707/* Message field label - no min-width constraint */ 1708.quote-form--simple .form-row.one-column .form-field:has(textarea) label { 1709 min-width: auto; 1710} 1711 1712/* Input styles */ 1713.quote-form--simple .form-field input, 1714.quote-form--simple .form-field textarea { 1715 padding: 10px 0; 1716 border: none; 1717 border-radius: 0; 1718 font-size: 16px; 1719 font-weight: 400; 1720 transition: all 0.3s ease; 1721 background-color: transparent; 1722 flex: 1; 1723 outline: none; 1724} 1725 1726.quote-form--simple .form-field:focus-within { 1727 border-bottom-color: #3498db; 1728} 1729 1730.quote-form--simple .form-field input::placeholder, 1731.quote-form--simple .form-field textarea::placeholder { 1732 color: var(--text); 1733} 1734 1735/* Textarea specific styles */ 1736.quote-form--simple .form-field textarea { 1737 resize: vertical; 1738 max-height: 80px; 1739 font-family: inherit; 1740 background-color: transparent; 1741} 1742 1743/* Suggestions dropdown */ 1744.quote-form--simple .suggestions { 1745 position: absolute; 1746 background: white; 1747 border: 1px solid var(--grey); 1748 border-radius: 0 0 5px 5px; 1749 max-height: 200px; 1750 overflow-y: auto; 1751 z-index: 1000; 1752 display: none; 1753 top: 100%; 1754 width: 100%; 1755} 1756 1757.quote-form--simple .suggestions.show { 1758 display: block; 1759} 1760.quote-form--simple .suggestion-item { 1761 padding: 0.25rem 0.5rem; 1762 border-bottom: 1px solid var(--light-grey); 1763 cursor: pointer; 1764} 1765.quote-form--simple .suggestion-item:hover { 1766 background: var(--light-grey); 1767} 1768.quote-form--simple .error-message { 1769 position: absolute; 1770 top: 40px; 1771} 1772 1773/* Sidebar Quote */ 1774.post-sidebar .quote-form--simple .form-row.two-columns { 1775 grid-template-columns: 1fr; 1776 gap: 0; 1777} 1778.post-sidebar .quote-form--simple .form-field { 1779 margin-bottom: 0; 1780} 1781.post-sidebar .quote-form--simple .form-row:last-of-type { 1782 margin-top: 0.5rem; 1783} 1784 1785/* Responsive design */ 1786@media (max-width: 768px) { 1787 .quote-form--simple .form-row:nth-child(6) { 1788 margin-top: 10px; 1789 } 1790 .quote-form--simple .form-container { 1791 padding: 0; 1792 margin: 0; 1793 } 1794 1795 .quote-form--simple .form-row.two-columns { 1796 grid-template-columns: 1fr; 1797 gap: 0; 1798 } 1799 1800 .quote-form--simple .form-row { 1801 gap: 15px; 1802 margin-bottom: 0; 1803 } 1804 .quote-form--simple .form-field { 1805 margin-bottom: 5px; 1806 } 1807 1808 .quote-form--simple .passenger-control { 1809 width: 100%; 1810 } 1811 1812 .quote-form--simple .passenger-control input { 1813 flex: 1; 1814 max-width: 100px; 1815 } 1816} 1817 1818@media (max-width: 480px) { 1819 .quote-form--simple .form-field input, 1820 .quote-form--simple .form-field textarea { 1821 padding: 10px 12px; 1822 } 1823 1824 .quote-form--simple .passenger-btn { 1825 padding: 10px 12px; 1826 min-width: 40px; 1827 } 1828} 1829 1830/* ----- Utility Classes ----- */ 1831.hidden { 1832 display: none !important; 1833}</style> 1834<!-- end Simple Custom CSS and JS --> 1835<link rel="stylesheet" media="all" type="text/css" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css" /> 1836<!-- Timepicker addon CSS --> 1837<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-timepicker-addon/1.6.3/jquery-ui-timepicker-addon.min.css">
1838<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" defer></script>
1838 1839<!-- Timepicker addon -->
1840<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ui-timepicker-addon/1.6.3/jquery-ui-timepicker-addon.min.js" defer></script>
vendor: 2 bytes, line 1840
1840
1841<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
1841<script defer data-domain="avskycharters.com" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"></script>
vendor: 2 bytes, line 1841
1841
1842<script defer src="data:text/javascript;base64,d2luZG93LnBsYXVzaWJsZSA9IHdpbmRvdy5wbGF1c2libGUgfHwgZnVuY3Rpb24oKSB7ICh3aW5kb3cucGxhdXNpYmxlLnEgPSB3aW5kb3cucGxhdXNpYmxlLnEgfHwgW10pLnB1c2goYXJndW1lbnRzKSB9"></script>
1842 1843 1844<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 1844-1845
1844 1845<script async src="https://www.googletagmanager.com/gtag/js?id=
1845G-Y5DSSLZ6C4
vendor: 13 bytes, line 1845
1845"></script>
1846<script defer src="data:text/javascript;base64,DQogIHdpbmRvdy5kYXRhTGF5ZXIgPSB3aW5kb3cuZGF0YUxheWVyIHx8IFtdOw0KICBmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9DQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7DQoNCiAgZ3RhZygnY29uZmlnJywgJ0ctWTVEU1NMWjZDNCcpOw0K"></script>
1846
1846<script type="text/javascript" defer src="data:text/javascript;base64,CgkJdmFyIEFGRldQID0gQUZGV1AgfHwge307CgkJQUZGV1AucmVmZXJyYWxfdmFyID0gJ2dvJzsKCQlBRkZXUC5leHBpcmF0aW9uID0gMzA7CgkJQUZGV1AuZGVidWcgPSAwOwoKCgkJQUZGV1AucmVmZXJyYWxfY3JlZGl0X2xhc3QgPSAwOwoJCQ=="></script>
1846 1847 <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript> 1848 <style class="wp-fonts-local"> 1849@font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://avskycharters.com/wp-content/plugins/woocommerce/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} 1850@font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://avskycharters.com/wp-content/plugins/woocommerce/assets/fonts/cardo_normal_400.woff2') format('woff2');} 1851</style> 1852<link rel="icon" href="https://avskycharters.com/wp-content/uploads/2024/11/cropped-cropped-avsky-charters-logo-2-32x32.png" sizes="32x32" /> 1853<link rel="icon" href="https://avskycharters.com/wp-content/uploads/2024/11/cropped-cropped-avsky-charters-logo-2-192x192.png" sizes="192x192" /> 1854<link rel="apple-touch-icon" href="https://avskycharters.com/wp-content/uploads/2024/11/cropped-cropped-avsky-charters-logo-2-180x180.png" /> 1855<meta name="msapplication-TileImage" content="https://avskycharters.com/wp-content/uploads/2024/11/cropped-cropped-avsky-charters-logo-2-270x270.png" /> 1856<style>.perfmatters-lazy-video{position:relative;width:100%;max-width:100%;height:0;padding-bottom:56.23%;overflow:hidden}.perfmatters-lazy-video img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover;object-position:center;border:none;cursor:pointer;transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all}.perfmatters-lazy-video img:hover{-webkit-filter:brightness(75%)}.perfmatters-lazy-video .play{position:absolute;top:50%;left:50%;right:auto;width:68px;height:48px;margin-left:-34px;margin-top:-24px;background:url(https://avskycharters.com/wp-content/plugins/perfmatters/img/youtube.svg) no-repeat;background-position:center;background-size:cover;pointer-events:none;filter:grayscale(1)}.perfmatters-lazy-video:hover .play{filter:grayscale(0)}.perfmatters-lazy-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper:has(.perfmatters-lazy-video)::before{display:none;}</style></head> 1857 1858<body class="wp-singular page-template-default page page-id-50681 wp-custom-logo wp-embed-responsive wp-theme-generatepress wp-child-theme-avsky-itinerary theme-generatepress post-image-aligned-center slideout-enabled slideout-mobile sticky-menu-fade sticky-enabled both-sticky-menu woocommerce-no-js no-sidebar nav-below-header one-container header-aligned-left dropdown-hover full-width-content" itemtype="https://schema.org/WebPage" itemscope> 1859 <a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a> <nav class="has-branding has-sticky-branding main-navigation nav-align-right sub-menu-right" id="site-navigation" aria-label="Primary" itemtype="https://schema.org/SiteNavigationElement" itemscope> 1860 <div class="inside-navigation grid-container"> 1861 <div class="navigation-branding"><div class="site-logo"> 1862 <a href="https://avskycharters.com/" title="AvSky Charters" rel="home"> 1863 <img data-perfmatters-preload class="header-image is-logo-image" alt="AvSky Charters" src="https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1.png" title="AvSky Charters" width="449" height="216" fetchpriority="high"> 1864 </a> 1865 </div><div class="sticky-navigation-logo"> 1866 <a href="https://avskycharters.com/" title="AvSky Charters" rel="home"> 1867 <img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='449'%20height='216'%20viewBox='0%200%20449%20216'%3E%3C/svg%3E" class="is-logo-image perfmatters-lazy" alt="AvSky Charters" width="449" height="216" data-src="https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1.png" /> 1868 </a> 1869 </div></div> <button class="menu-toggle" aria-controls="generate-slideout-menu" aria-expanded="false">
1870 <span class="gp-icon icon-menu-bars"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M0 96c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24zm0 160c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24zm0 160c0-13.255 10.745-24 24-24h464c13.255 0 24 10.745 24 24s-10.745 24-24 24H24c-13.255 0-24-10.745-24-24z" /></svg><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.03c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z" /></svg></span><span class="mobile-menu">Menu</span> </button> 1871 <div id="primary-menu" class="main-nav"><ul id="menu-main-menu" class=" menu sf-menu"><li id="menu-item-50684" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-50681 current_page_item menu-item-50684"><a href="https://avskycharters.com/about-avsky-charters/" aria-current="page">About AvSky</a></li> 1872<li id="menu-item-47867" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47867"><a href="https://avskycharters.com/charter-flight-quote/">Quote Request</a></li> 1873<li id="menu-item-50779" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50779"><a href="https://avskycharters.com/jet-card/">Jet Card</a></li> 1874<li id="menu-item-50419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-50419"><a href="https://avskycharters.com/govflights/">Government</a></li> 1875<li id="menu-item-50519" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50519"><a href="https://avskycharters.com/medical-flights/">Medical Flights</a></li> 1876</ul></div> 1877<a class="gbp-button--tertiary gb-text-bb304a36 header-cta" href="https://avskycharters.com/contact/"><span class="gb-text">Contact</span><span class="gb-shape"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><title>arrow-right</title><g fill="currentColor" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 24L42 24L41 24" stroke="currentColor" stroke-width="4" fill="none"></path> <path d="M28 38L42 24L28 10" stroke="currentColor" stroke-width="4" fill="none"></path> </g></svg></span></a> 1878 </div> 1879 </nav> 1880 1881 <div class="site grid-container container hfeed" id="page"> 1882 <div class="site-content" id="content"> 1883 1884 <div class="content-area" id="primary"> 1885 <main class="site-main" id="main"> 1886 1887<article id="post-50681" class="post-50681 page type-page status-publish has-post-thumbnail" itemtype="https://schema.org/CreativeWork" itemscope> 1888 <div class="inside-article"> 1889 1890 <div class="entry-content" itemprop="text"> 1891 1892<!-- AvSky About â built 2026-08-22 by build/build.js. Edit src/, not this file. Patched 2026-09-26 from the live block: CARTO map key, engine updates, Privacy Policy footer link, Jet Card footer link. --><style type="text/css">@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/400/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/400/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:400;src:url(/cf-fonts/s/poppins/5.2.7/latin/400/normal.woff2);
1892unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin/500/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/500/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:500;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/500/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/600/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/latin/600/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:600;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/600/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/700/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:700;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/700/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/devanagari/800/normal.woff2);unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/latin/800/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Poppins';font-style:normal;font-weight:800;src:url(/cf-fonts/s/poppins/5.2.7/latin-ext/800/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style><style id="avc-about-css">/* ===== AvSky Core Pages â shared engine styles =====Scope: everything under .avc (the block root). Ported from the Destination3.0 theme (quote modal, date sheet, calendar, success screens, Places
1892dropdown) plus GeneratePress-shell overrides and the design-system formstyles the JS engine renders into. No bare .btn (site snippet 3280). *//* ---- root / tokens / reset ---- */.avc{--navy:#0B1626;--navy-2:#0F1C2E;--gold:#F4C078;--gold-mid:#E8A33A;--gold-deep:#C8841F;--gold-deeper:#B57F32;--cream:#FAF7F2;--cream-2:#F4F1ED;--hairline:#ECE3D2;--tan:#8B7355;--tan-soft:#B8A88A;--tan-line:#D4C4A6;font-family:'Poppins',sans-serif;color:#1F2937;background:#FFFFFF;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;position:relative;width:100%}/* page layout (sheet vs full-bleed) is appended by build/build.js â layoutCss() */.avc .avc-ftr-in{max-width:1320px;margin:0 auto}.avc *,.avc *::before,.avc *::after{box-sizing:border-box}.avc h1,.avc h2,.avc h3,.avc h4,.avc h5,.avc h6{font-family:'Poppins',sans-serif;margin:0;text-transform:none;letter-spacing:normal;line-height:inherit;color:inherit}.avc p{margin:0}.avc a{color:#0B1626;text-decoration:none;transition:color .15s,background .15s,border-color .15s}.avc a:hover,.avc a:focus{color:#C8841F;text-decoration:none}.avc img{max-width:100%;border:0}.avc svg{display:inline-block;vertical-align:middle}.avc button{font-family:'Poppins',sans-serif;line-height:normal;text-transform:none;letter-spacing:normal;margin:0;transition:background .15s,color .15s,border-color .15s}.avc input,.avc select,.avc textarea{font-family:'Poppins',sans-serif;line-height:normal;margin:0;box-shadow:none;-webkit-appearance:none;appearance:none;background-image:none;letter-spacing:normal;text-transform:none}/* The design's inputs fell back to Arial (18px line box); Poppins at the samebox keeps the design's field heights without clipping descenders. */.avc input{line-height:18px}.avc input[style*="font-family"]{line-height:normal}.avc select{line-height:23px}.avc textarea{line-height:normal}.avc .qm-cell input,.avc .qm-leg-cell input,.avc .qm-cell select{line-height:normal}.avc button{padding:1px 6px;border:0}.avc input::placeholder,.avc textarea::placeholder{color:#9CA3AF;opacity:1;font-family:'Poppins',sans-serif}.avc select option{color:#111827}.avc [hidden]{display:none!important}html.avc-locked,body.avc-locked{overflow:hidden}/* the block carries its own footer + H1 */.site-footer,.footer-widgets,#site-footer{display:none!important}.page .entry-header,h1.entry-title,.page-header{display:none!important}.entry-content>.avc:first-child{margin-top:0}/* ---- dual DOM: desktop/tablet tree vs mobile tree ---- */.avc .avc-d{display:block}.avc .avc-m{display:none}@media (max-width:640px){.avc .avc-d{display:none}.avc .avc-m{display:block}.avc{max-width:none;box-shadow:none}}/* ---- Leaflet office maps ---- */.avc .leaflet-container{font-family:'Poppins',sans-serif;background:#EAF1F5}.avc .leaflet-control-attribution{background:rgba(255,255,255,0.82)!important;color:#6B7280!important}.avc .leaflet-control-attribution a{color:#B0781F!important}@keyframes avcPulse{0%{box-shadow:0 0 0 0 rgba(232,169,60,0.5)}70%{box-shadow:0 0 0 16px rgba(232,169,60,0)}100%{box-shadow:0 0 0 0 rgba(232,169,60,0)}}@keyframes avcDash{to{stroke-dashoffset:-120}}.avc .av-route{animation:avcDash 14s linear infinite}/* ---- FAQ (quote page) ---- */.avc .avc-faq-c{transition:transform .25s ease}/* ---- contact / membership forms (static design markup + JS) ---- */.avc .avc-form-error{margin-top:14px;padding:10px 12px;background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;font-size:14px;border-radius:8px}.avc [data-avc-form] [data-f]:disabled{opacity:.6}/* ---- quote form engine (design-system look) ---- */.avc .qf-tabs{display:flex;gap:28px;border-bottom:1px solid #ECE9E2;margin-bottom:30px}.avc .qf-tab{padding:0 0 14px;font-size:16px;font-weight:600;cursor:pointer;border:none;border-bottom:2px solid transparent;background:transparent;color:#9AA1AC;border-radius:0;white-space:nowrap}.avc .qf-tab.active{border-bottom-color:#E8A93C;color:#0B1626}.avc-m .qf-tabs{gap:4px;padding:4px;background:#F1EFE9;border:1px solid #E5E1D6;border-radius:9px;margin-bottom:26px}.avc-m .qf-tab{flex:1;padding:12px 4px;font-size:15.5px;border:0;border-radius:6px;color:#5B6472}.avc-m .qf-tab.active{background:#0B1626;color:#FFFFFF;box-shadow:0 3px 8px rgba(11,22,38,0.28)}.avc .qf-row2{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:26px}.avc .qf-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px;margin-bottom:26px}.avc .qf-row1{display:grid;grid-template-columns:1fr;gap:26px;margin-bottom:26px}.avc-m .qf-row2,.avc-m .qf-row3,.avc-m .qf-row1{grid-template-columns:1fr;gap:18px;margin-bottom:18px}.avc .qf-label{display:block;font-size:16px;font-weight:500;color:#8A8577;margin-bottom:4px}.avc .qf-label.muted{color:#B8B3A6}.avc .qf-label .opt{color:#B8B3A6;font-weight:400}.avc .qf-input{width:100%;padding:8px 1px 11px;font-size:16px;background:transparent;border:none;border-bottom:1px solid #DAD6CC;border-radius:0;color:#111827;outline:none;font-family:'Poppins',sans-serif}.avc .qf-input:focus{border-bottom:1.5px solid #E8A93C}.avc textarea.qf-input{min-height:64px;resize:vertical}.avc button.qf-input{text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-left:1px}.avc .qf-input .ph{color:#9CA3AF}.avc .qf-input .d-ic{width:15px;height:15px;color:#8A8577;flex:none}.avc .qf-ow{padding:8px 1px 11px;font-size:16px;color:#9CA3AF;border-bottom:1px dashed #DAD6CC}/* the design's date cells are native date inputs: 40px in the About/Contactcards (Arial fallback), 47px on the Quote page (Poppins set inline) */.avc button.qf-input{line-height:20px}.avc .qf-steps button.qf-input,.avc .qf-steps .qf-input[data-field="time"]{line-height:27px}.avc .qf-steps .qf-stepbar .qf-pax{padding:0}.avc .qf-select{position:relative}.avc .qf-select select{padding-right:22px;
1892cursor:pointer}.avc .qf-select select.empty{color:#9CA3AF}.avc .qf-select svg{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:13px;height:13px;pointer-events:none;color:#8A8577}.avc .qf-pax{display:flex;align-items:center;gap:14px;padding:3px 0 5px}.avc .qf-pax button{width:30px;height:30px;border-radius:50%;border:1px solid #D2CEC4;background:transparent;color:#0B1626;font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.avc .qf-pax button:hover{border-color:#E8A93C;color:#B0781F;background:transparent}.avc .qf-pax .val{min-width:22px;text-align:center;font-size:16px;font-weight:600;color:#0B1626}.avc .qf-submit{width:100%;padding:16px 18px;background:#0B1626;color:#FFFFFF;border:none;font-size:16px;font-weight:600;border-radius:10px;cursor:pointer;margin-top:24px;display:inline-flex;align-items:center;justify-content:center;gap:10px}.avc .qf-submit:hover{background:#16283F;color:#FFFFFF}.avc .qf-submit[disabled]{opacity:.7;cursor:not-allowed}.avc .qf-submit svg{width:14px;height:14px}.avc .qf-error{margin-top:12px;padding:10px 12px;background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;font-size:14px;border-radius:8px}.avc .qf-legs{margin-bottom:26px}.avc .qf-legs>.qf-label{margin-bottom:10px}.avc .qf-leg{position:relative;background:#FFFFFF;border:1px solid #EDE7DB;border-radius:12px;padding:14px 14px 14px 32px;margin-bottom:10px}.avc .qf-leg-n{position:absolute;left:0;top:0;bottom:0;width:24px;background:#0B1626;color:#FFFFFF;font-size:11px;font-weight:700;border-radius:11px 0 0 11px;display:flex;align-items:center;justify-content:center;letter-spacing:.06em}.avc .qf-leg-rm{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:#FFFFFF;color:#8B7355;border:1px solid #EDE7DB;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 5px rgba(15,28,46,0.10);z-index:2;padding:0}.avc .qf-leg-rm svg{width:11px;height:11px}.avc .qf-leg-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.avc .qf-leg-pair+.qf-leg-pair{margin-top:8px}.avc-m .qf-leg-pair.a{grid-template-columns:1fr}.avc .qf-leg-cell{display:flex;align-items:center;gap:8px;padding:10px 11px;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:8px;position:relative;min-width:0}.avc .qf-leg-cell svg{width:14px;height:14px;color:#8B7355;flex-shrink:0}.avc .qf-leg-cell input{width:100%;padding:0;font-size:16px;background:transparent;border:none;color:#0F1C2E;outline:none;min-width:0;border-radius:0}.avc .qf-leg-cell input::placeholder{color:#B8A88A}.avc button.qf-leg-cell{cursor:pointer;text-align:left;font:inherit;width:100%}.avc .qf-leg-cell .dv{flex:1;font-size:16px;color:#0F1C2E;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avc .qf-leg-cell .dv.ph{color:#B8A88A}.avc .qf-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:transparent;border:1.5px dashed #D4C4A6;border-radius:12px;color:#8B6914;font-size:16px;font-weight:600;cursor:pointer}.avc .qf-add:hover{background:rgba(232,169,60,0.06);color:#8B6914}.avc .qf-add svg{width:14px;height:14px}/* steps variant (quote page) */.avc .qf-eyebrow{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#B0781F;margin-bottom:16px}.avc .qf-eyebrow.s2{margin-bottom:12px}.avc-m .qf-eyebrow{display:none}.avc .qf-stepbar{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;border-top:1px solid #ECE9E2;padding-top:22px}.avc-m .qf-stepbar{flex-direction:column;align-items:stretch;gap:20px}.avc .qf-stepbar .qf-label{margin-bottom:6px}.avc .qf-next{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;background:#0B1626;color:#FFFFFF;border:none;font-size:16px;font-weight:600;border-radius:10px;cursor:pointer}.avc .qf-next:hover{background:#16283F;color:#FFFFFF}.avc-m .qf-next{width:100%}.avc .qf-divider{height:1px;background:#ECE9E2;margin:34px 0 30px}.avc .qf-lead{font-size:19px;font-weight:600;color:#0B1626;letter-spacing:-.01em;line-height:1.4;margin-bottom:28px;text-wrap:pretty}.avc .qf-step2{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:64px;align-items:start}@media (max-width:1024px){.avc .qf-step2{grid-template-columns:1fr;gap:36px}.avc .qf-review{order:-1}}.avc-m .qf-step2{grid-template-columns:1fr;gap:36px}.avc-m .qf-review{display:none}.avc .qf-review{background:#FBFAF7;border:1px solid #EDE7DB;border-radius:14px;
1892padding:28px 30px 30px}.avc .qf-rv-eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:20px}.avc .qf-rv-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18);flex:none}.avc .qf-rv-eyebrow span:not(.dot){font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#B0781F}.avc .qf-rv-grid{display:grid;grid-template-columns:auto 1fr;gap:11px 22px;align-items:baseline}.avc .qf-rv-grid .k{font-size:16px;font-weight:600;color:#0B1626;white-space:nowrap}.avc .qf-rv-grid .v{font-size:16px;color:#4B5563}.avc .qf-rv-legs{display:flex;flex-direction:column;gap:9px;font-size:16px;color:#4B5563}.avc .qf-rv-legs b{font-weight:600;color:#0B1626}.avc .qf-rv-sep{height:1px;background:#E5E0D5;margin:24px 0}.avc .qf-rv-eyebrow.next{margin-bottom:14px}.avc .qf-rv-p{font-size:16px;line-height:1.65;color:#4B5563;margin:0 0 14px;text-wrap:pretty}.avc .qf-rv-p:last-child{margin-bottom:0}.avc .qf-rv-p a{font-weight:600;color:#0B1626}.avc .qf-rv-p a:hover{color:#B0781F}.avc .qf-ref{margin-bottom:6px;max-width:320px}.avc .qf-msg{margin-bottom:6px}/* ---- Quote page fields: bordered icon cells inside the design's white card ---- */.avc .qf-box{display:flex;align-items:center;gap:10px;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:10px;padding:12px 12px;min-width:0;transition:border-color .15s,box-shadow .15s}.avc .qf-box:focus-within{border-color:#0B1626;box-shadow:0 0 0 3px rgba(232,169,60,0.18)}.avc .qf-box>svg{width:15px;height:15px;color:#8B7355;flex-shrink:0}.avc .qf-box input,.avc .qf-box select{width:100%;padding:0;font-size:16px;background:transparent;border:none;color:#0F1C2E;outline:none;min-width:0;border-radius:0;box-shadow:none;line-height:normal}.avc .qf-box input::placeholder{color:#B8A88A}.avc .qf-box select{cursor:pointer;padding-right:4px}.avc .qf-box select.empty{color:#B8A88A}.avc .qf-box .sel-chev{margin-left:auto;display:inline-flex;color:#8B7355}.avc .qf-box .sel-chev svg{width:13px;height:13px}.avc button.qf-box{cursor:pointer;text-align:left;width:100%;font:inherit}.avc .qf-box .dv{flex:1;font-size:16px;color:#0F1C2E;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.avc .qf-box .dv.ph{color:#B8A88A}.avc .qf-box-ta{display:block;width:100%;min-height:96px;resize:vertical;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:10px;padding:12px;font-size:16px;line-height:1.45;color:#0F1C2E;outline:none;transition:border-color .15s,box-shadow .15s}.avc .qf-box-ta::placeholder{color:#B8A88A}.avc .qf-box-ta:focus{border-color:#0B1626;box-shadow:0 0 0 3px rgba(232,169,60,0.18)}.avc .qf-steps .qf-label{margin-bottom:6px}/* ââ Quote page (mobile tree): the design's white card, labelled boxed cells ââ */.avc-m .qf-steps{background:#FFFFFF;border:1px solid #E9E6DF;border-radius:12px;padding:24px 20px 28px;box-shadow:0 16px 36px -20px rgba(11,22,38,0.16)}.avc-m .qf-body.qf-nohead{padding:0}.avc .qf-eyebrow-l{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#B0781F;margin:0 0 12px}.avc .qf-eyebrow-l .dash{width:18px;height:2px;background:#E8A93C;flex:none}.avc .qf-eyebrow-l.sec{margin:0 0 18px}.avc .qf-steps .qf-divider{margin:26px 0 22px}.avc .qf-row3.qf-row-fromto{grid-template-columns:2fr 2fr 1fr}.avc .qf-paxbox .val{flex:1;font-size:16px;font-weight:600;color:#0B1626}.avc .qf-pax-btns{display:inline-flex;gap:6px;margin-left:auto}.avc .qf-pax-btns button{width:26px;height:26px;border-radius:50%;border:1px solid #D2CEC4;background:#FFFFFF;color:#0B1626;font-size:15px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.avc .qf-pax-btns button:hover{border-color:#E8A93C;color:#B0781F;background:#FFFFFF}.avc-m .qf-row3.qf-row-fromto{grid-template-columns:1fr}/* ââ Quote page (desktop/tablet tree): "Quote Form Polished" mockup ââ */.avc-d .qf-steps{--qp-x:clamp(24px,50vw - 596px,56px);margin:0 calc(-1 * var(--qp-x));background:#FFFFFF;border:1px solid #EDE7DB;border-radius:20px;box-shadow:0 24px 70px rgba(11,22,38,0.12);overflow:hidden;padding:0;text-align:left;container-type:inline-size}.avc .qp-head{display:block;background:radial-gradient(ellipse at 90% -10%,rgba(232,169,60,0.16),transparent 55%) #0B1626;padding:clamp(26px,3cqw,34px) var(--qp-x) clamp(24px,2.7cqw,30px)}.avc .qp-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.avc .qp-eyebrow .qp-badge{flex:none;max-width:100%}.avc .qp-head-main{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}.avc .qp-head-l{flex:1;min-width:300px}.avc .qp-head-r{flex:0 1 400px;display:flex;flex-direction:column;align-items:stretch}.avc .qp-sum{width:100%;background:#FFFFFF;border:1px solid #EDE7DB;border-radius:14px;padding:10px 16px 12px;font-size:14px;text-align:left}.avc .qp-sum-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8A8577;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #EDE7DB}.avc .qp-sum-l1{font-size:16px;font-weight:600;color:#0B1626;line-height:1.35;overflow-wrap:anywhere}.avc .qp-sum-l2{font-size:13.5px;color:#8B7355;line-height:1.45;margin-top:3px;overflow-wrap:anywhere}.avc .qp-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:#E8A93C;flex:none}.avc .qp-eyebrow .t{font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,191,94,0.95);white-space:nowrap}.avc .qp-eyebrow .line{flex:1;height:1px;background:linear-gradient(90deg,rgba(232,169,60,0.45),rgba(232,169,60,0))}.avc .qp-title{font-size:clamp(26px,2.9cqw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.08;color:#FFFFFF;margin:0 0 clamp(8px,1.07cqw,12px)}.avc .qp-sub{font-size:clamp(15px,1.47cqw,16.5px);line-height:1.65;color:rgba(255,255,255,0.68);margin:0;max-width:none;text-wrap:pretty}.avc .qp-badge{display:inline-flex;align-items:center;gap:9px;padding:10px 18px;border:1px solid rgba(255,255,255,0.16);background:rgba(255,255,255,0.06);border-radius:999px;font-size:14px;font-weight:500;color:#FFFFFF;white-space:nowrap}.avc .qp-badge svg{width:15px;height:15px;color:#F4BF5E}.avc .qp-body{padding:clamp(30px,3.57cqw,40px) var(--qp-x) clamp(32px,3.93cqw,44px)}.avc .qp-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:clamp(26px,3.04cqw,34px);flex-wrap:wrap}.avc .qp-tabs{display:inline-flex;gap:4px;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:999px;padding:5px}.avc .qp-tab{padding:10px clamp(18px,2.32cqw,26px);border-radius:999px;font-size:14.5px;font-weight:600;color:#8B7355;background:transparent;border:0;cursor:pointer;white-space:nowrap}.avc .qp-tab:hover{color:#0B1626;background:rgba(255,255,255,0.5)}.avc .qp-tab.active,.avc .qp-tab.active:hover{color:#FFFFFF;background:#0B1626;box-shadow:0 4px 12px rgba(11,22,38,0.25)}.avc .qp-note{font-size:13.5px;color:#8A8577}.avc .qp-head.light{background:#FBFAF7;border-bottom:1px solid #EDE7DB}.avc .qp-head.light .qp-eyebrow .t{color:#B0781F}.avc .qp-head.light .qp-eyebrow .line{background:linear-gradient(90deg,rgba(232,169,60,0.45) 0%,rgba(232,169,60,0.45) 86%,rgba(232,169,60,0) 100%)}.avc .qp-head.light .qp-title{color:#0B1626}.avc .qp-head.light .qp-sub{color:#5B6472}.avc .qp-head.light .qp-badge{border-color:#EDE7DB;background:#FFFFFF;color:#0B1626}.avc .qp-head.light .qp-badge svg{color:#B0781F}.avc .qp-badge-l{display:inline-flex;align-items:center;gap:9px;padding:10px 18px;border:1px solid #EDE7DB;background:#FFFFFF;border-radius:999px;font-size:14px;font-weight:500;color:#0B1626;white-space:nowrap}.avc .qp-badge-l svg{width:15px;height:15px;color:#B0781F}.avc .qp-sec{display:flex;align-items:center;gap:16px;margin-bottom:18px}.avc .qp-sec .t{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8A8577;white-space:nowrap}.avc .qp-sec .line{flex:1;height:1px;background:linear-gradient(90deg,rgba(232,169,60,0.45),rgba(11,22,38,0.05))}.avc .qp-row-it{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr) clamp(176px,19.5cqw,218px);gap:clamp(10px,1.25cqw,14px);align-items:end;margin-bottom:clamp(10px,1.25cqw,14px)}.avc .qp-row4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.25cqw,14px);margin-bottom:clamp(10px,1.25cqw,14px)}.avc .qp-row4.last,.avc .qp-row-it.last{margin-bottom:clamp(28px,3.2cqw,36px)}.avc .qp-row2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1.25cqw,14px);margin-bottom:clamp(10px,1.25cqw,14px)}.avc .qp-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8A8577;margin:0 0 8px 2px;display:block}.avc .qp-label .opt{color:#B8B3A6;text-transform:none;letter-spacing:0;font-weight:500}.avc .qp-cell{display:flex;align-items:center;gap:11px;height:clamp(50px,4.82cqw,54px);padding:0 16px;background:#FFFFFF;border:1px solid #ECE3D2;border-radius:12px;min-width:0;transition:border-color .15s,box-shadow .15s}.avc .qp-cell:focus-within{border-color:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18),inset 0 0 0 .5px #E8A93C}.avc .qp-cell>svg{width:16px;height:16px;color:#B0781F;flex-shrink:0}.avc .qp-cell input,.avc .qp-cell select{width:100%;padding:0;font-size:16px;font-weight:500;background:transparent;border:none;color:#0B1626;outline:none;min-width:0;line-height:normal;border-radius:0;box-shadow:none}.avc .qp-cell input::placeholder{color:#B8B3A6;font-weight:400}.avc .qp-cell select{cursor:pointer;padding-right:4px}.avc .qp-cell select.empty{color:#B8B3A6;font-weight:400}.avc .qp-cell .chev{margin-left:auto;display:inline-flex;color:#8A8577;flex:none}.avc .qp-cell .chev svg{width:16px;height:16px}.avc button.qp-cell{cursor:pointer;text-align:left;width:100%;font:inherit}.avc .qp-cell .dv{flex:1;font-size:16px;font-weight:500;color:#0B1626;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avc .qp-cell .dv.ph{color:#B8B3A6;font-weight:400}.avc .qp-swap{width:44px;height:44px;margin-bottom:5px;border-radius:50%;background:#FFFFFF;border:1px solid #ECE3D2;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(11,22,38,0.06);
1892cursor:pointer;padding:0;color:#B0781F}.avc .qp-swap:hover{border-color:#E8A93C;background:#FFFFFF;color:#B0781F}.avc .qp-swap svg{width:16px;height:16px}.avc .qp-pax{justify-content:space-between;padding:0 7px}.avc .qp-pax button{width:38px;height:38px;border-radius:50%;border:1px solid #ECE3D2;background:transparent;color:#8B7355;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex:none}.avc .qp-pax button:hover{border-color:#E8A93C;color:#C8841F;background:transparent}.avc .qp-pax button svg{width:14px;height:14px}.avc .qp-pax .val{font-size:17px;font-weight:600;color:#0B1626}.avc .qp-ta{display:block;width:100%;min-height:112px;padding:16px;background:#FFFFFF;border:1px solid #ECE3D2;border-radius:12px;font-size:16px;line-height:1.6;color:#0B1626;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s}.avc .qp-ta::placeholder{color:#B8B3A6}.avc .qp-ta:focus{border-color:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18)}.avc .qp-body .qf-error{margin-top:18px}.avc .qp-foot{background:#FBFAF7;border-top:1px solid #EDE7DB;padding:clamp(18px,2.14cqw,24px) var(--qp-x);display:flex;align-items:center;gap:24px;flex-wrap:wrap}.avc .qp-talk{flex:1;min-width:240px}.avc .qp-talk .a{font-size:15.5px;font-weight:600;color:#0B1626}.avc .qp-talk .a a{color:#0B1626}.avc .qp-talk .a a:hover{color:#B0781F}.avc .qp-talk .b{font-size:13.5px;color:#8A8577;margin-top:2px}.avc .qp-ref{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 20px;background:#FFFFFF;border:1px dashed #DAD6CC;border-radius:999px;cursor:text}.avc .qp-ref:focus-within{border-style:solid;border-color:#E8A93C}.avc .qp-ref svg{width:15px;height:15px;color:#B0781F;flex:none}.avc .qp-ref input{width:130px;padding:0;font-size:15px;background:transparent;border:none;outline:none;color:#0B1626;line-height:normal;border-radius:0;box-shadow:none}.avc .qp-ref input::placeholder{color:#8A8577}.avc .qp-submit{display:inline-flex;align-items:center;gap:11px;height:54px;padding:0 34px;background:#E8A93C;color:#0B1626;border:0;border-radius:999px;font-size:16.5px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px rgba(232,169,60,0.35);white-space:nowrap}.avc .qp-submit:hover{background:#F4BF5E;color:#0B1626}.avc .qp-submit[disabled]{opacity:.7;cursor:not-allowed}.avc .qp-submit svg{width:17px;height:17px}.avc-d .qf-steps .qf-leg{background:#FFFFFF;border-color:#ECE3D2;border-radius:12px}.avc-d .qf-steps .qf-leg-cell{border-color:#ECE3D2;background:#FFFFFF}.avc-d .qf-steps .qf-legs{margin-bottom:14px}/* quote page: the hero wrapper's extra 40px side padding made its column 80px narrower than every other section below 1320px â drop it so hero, form card content, Why AvSky and FAQs share one column */.avc .avc-d header[data-screen-label="Hero"]{padding:0}/* quote page section rhythm (desktop/tablet): heroâform = hero's own 88px + 40; every other section gap = 64 + 64 */.avc .avc-d #quote-form{padding:40px 0 64px}.avc .avc-d section[data-screen-label="Why AvSky"],.avc .avc-d section[data-screen-label="Pricing FAQs"]{padding:64px 0}@media (max-width:1024px){.avc .avc-d #quote-form{padding:56px 0}.avc .avc-d section[data-screen-label="Why AvSky"],.avc .avc-d section[data-screen-label="Pricing FAQs"]{padding:56px 0}}.avc .qp-success{padding:24px var(--qp-x) 28px;display:flex;flex-direction:column;justify-content:center}.avc .qp-success .fsx-receipt,.avc .qp-success .fsx-sum{background:#FFFFFF;border-color:#ECE3D2}.avc .qp-success .fsx-receipt::before,.avc .qp-success .fsx-receipt::after{background:#FFFFFF}@media (max-width:1024px){.avc-d .qf-steps{--qp-x:24px}.avc .qp-head{padding:32px var(--qp-x) 30px;gap:24px}.avc .qp-head-r{padding-top:0;align-items:flex-start}.avc .qp-title{font-size:30px}.avc .qp-body{padding:30px var(--qp-x) 34px}.avc .qp-foot{padding:20px var(--qp-x)}.avc .qp-success{padding:24px var(--qp-x) 36px}.avc .qp-row-it{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr) 176px}}.avc .qf-row4{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 14px;margin-bottom:26px}.avc .qf-span2{grid-column:span 2}.avc .qf-steps .qf-row2{gap:26px 14px}.avc-m .qf-row4{grid-template-columns:1fr 1fr;gap:18px 10px;margin-bottom:18px}.avc-m .qf-steps .qf-row2{gap:18px 10px}.avc .qm-cell .dv,.avc .qm-leg-cell .dv{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}/* ---- success: desktop receipt card (Dest 3.0 .fsx) ---- */.avc .fsx{padding:28px 8px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.avc .fsx-mark{position:relative;width:72px;height:72px;margin-bottom:22px}.avc .fsx-mark .ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--gold);opacity:.55;animation:avcFsxPulse 2.6s ease-out infinite}.avc .fsx-mark .ring2{position:absolute;inset:9px;border-radius:50%;border:1px solid var(--gold);opacity:.35}.avc .fsx-mark .disc{position:absolute;inset:16px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 22px -8px rgba(11,22,38,0.5)}.avc .fsx-mark .disc svg{width:22px;height:22px}@keyframes avcFsxPulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(1.18);opacity:0}
1892100%{opacity:0}}.avc .fsx-eyebrow{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:12px}.avc .fsx h3{font-size:27px;line-height:1.1;color:var(--navy);font-weight:700;letter-spacing:-.02em;margin-bottom:10px}.avc .fsx .fsx-sub{font-size:15px;color:#6B7280;line-height:1.6;max-width:360px;margin:0 auto 26px}.avc .fsx-receipt{width:100%;max-width:380px;background:var(--cream);border:1px solid var(--hairline);border-radius:14px;padding:20px 22px;margin-bottom:24px;text-align:left;position:relative}.avc .fsx-receipt::before,.avc .fsx-receipt::after{content:'';position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;transform:translateY(-50%)}.avc .fsx-receipt::before{left:-8px;box-shadow:inset -1px 0 0 var(--hairline)}.avc .fsx-receipt::after{right:-8px;box-shadow:inset 1px 0 0 var(--hairline)}.avc .fsx-route{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px dashed #D8CBB3;margin-bottom:14px}.avc .fsx-port{flex:1;min-width:0}.avc .fsx-port .code{font-size:20px;font-weight:700;color:var(--navy);letter-spacing:.04em}.avc .fsx-port .place{font-size:11.5px;color:var(--tan);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avc .fsx-port.to{text-align:right}.avc .fsx-path{flex:0 0 auto;color:var(--gold-deep);display:flex;align-items:center}.avc .fsx-path svg{width:20px;height:20px}.avc .fsx-meta{display:flex;gap:8px}.avc .fsx-meta .m{flex:1;min-width:0}.avc .fsx-meta .m .l{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#9aa0a6;margin-bottom:4px}.avc .fsx-meta .m .v{font-size:13px;font-weight:600;color:var(--navy)}.avc .fsx-sum{width:100%;max-width:380px;background:var(--cream);border:1px solid var(--hairline);border-radius:12px;padding:14px 16px 8px;margin:0 0 22px;text-align:left}.avc .fsx-sum-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0;border-top:1px dashed rgba(212,196,166,0.55)}.avc .fsx-sum-row:first-child{border-top:none;padding-top:0}.avc .fsx-sum-k{flex:0 0 78px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-2);padding-top:3px;opacity:.6}.avc .fsx-sum-v{flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--navy-2);line-height:1.4;word-break:break-word}.avc .fsx-next{width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px;margin-bottom:26px;text-align:left}.avc .fsx-step{display:flex;align-items:flex-start;gap:12px}.avc .fsx-step .n{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:rgba(200,132,31,0.12);color:var(--gold-deep);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.avc .fsx-step .t{font-size:13.5px;color:#4B5563;line-height:1.5}.avc .fsx-step .t b{color:var(--navy);font-weight:600}.avc .fsx-call{display:inline-flex;align-items:center;gap:9px;font-size:14px;color:var(--navy)}.avc .fsx-call .ic{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.avc .fsx-call .ic svg{width:14px;height:14px}.avc .fsx-call a{color:var(--navy);font-weight:700;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:1px}.avc .fsx-call a:hover{color:var(--gold-deep)}/* dark variant (navy form panels) */.avc .fsx.dark h3,.avc .fsx.dark .fsx-call,.avc .fsx.dark .fsx-call a,.avc .fsx.dark .fsx-sum-v,.avc .fsx.dark .fsx-sum-k,.avc .fsx.dark .fsx-step .t b{color:#FFFFFF}.avc .fsx.dark .fsx-eyebrow{color:var(--gold)}.avc .fsx.dark .fsx-sub,.avc .fsx.dark .fsx-step .t{color:rgba(255,255,255,0.7)}.avc .fsx.dark .fsx-sum{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.16)}.avc .fsx.dark .fsx-sum-row{border-top-color:rgba(255,255,255,0.14)}.avc .fsx.dark .fsx-step .n{background:rgba(244,192,120,0.16);color:var(--gold)}.avc .fsx.dark .fsx-mark .disc{background:var(--gold);color:var(--navy)}.avc .fsx.dark .fsx-call .ic{background:var(--gold);color:var(--navy)}.avc .fsx.dark .fsx-call a{border-bottom-color:var(--gold)}/* ---- success: mobile inline (Dest 3.0 .m-success + summary) ---- */.avc .m-success{text-align:center;padding:18px 2px 0;display:flex;flex-direction:column;align-items:center}.avc .m-success-mark{position:relative;width:52px;height:52px;margin:0 0 16px}.avc .m-success-mark .ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold-mid)}.avc .m-success-mark .disc{position:absolute;inset:4px;border-radius:50%;background:var(--navy-2);display:flex;align-items:center;justify-content:center}.avc .m-success-mark .disc svg{width:20px;height:20px;color:var(--gold);stroke-width:2.5}.avc .m-success-h{font-weight:700;font-size:21px;line-height:1.15;letter-spacing:-.018em;color:var(--navy-2);margin:0 0 8px}.avc .m-success-sub{font-size:14px;line-height:1.55;color:#4B5563;margin:0 0 20px;max-width:300px}.avc .m-success .fsx-sum{max-width:none;width:100%;margin-bottom:20px}.avc .m-success .fsx-call{font-size:14px}.avc .m-success.dark .m-success-h,.avc .m-success.dark .fsx-call,.avc .m-success.dark .fsx-call a,.avc .m-success.dark .fsx-sum-v,.avc .m-success.dark .fsx-sum-k{color:#FFFFFF}.avc .m-success.dark .m-success-sub{color:rgba(255,255,255,0.7)}.avc .m-success.dark .fsx-sum{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.16)}.avc .m-success.dark .fsx-sum-row{border-top-color:rgba(255,255,255,0.14)}.avc .m-success.dark .m-success-mark .disc{background:var(--gold)}.avc .m-success.dark .m-success-mark .disc svg{color:var(--navy)}.avc .m-success.dark .fsx-call .ic{background:var(--gold);color:var(--navy)}/* ---- quote modal sheet (Dest 3.0 clone) ---- */.avc .qm-backdrop{position:fixed;inset:0;background:rgba(11,22,38,0.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:20020;opacity:0;pointer-events:none;transition:opacity .25s ease}.avc .qm-backdrop.open{opacity:1;pointer-events:auto}.avc .qm-sheet{position:fixed;inset:0;background:var(--cream);z-index:20021;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear .32s;visibility:hidden;text-align:left}.avc .qm-sheet.open{transform:translateY(0);visibility:visible;transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear}@media (min-width:720px){.avc .qm-sheet{inset:auto;top:50%;left:50%;transform:translate(-50%,calc(-50% + 100vh));width:min(560px,92vw);
1892max-height:min(820px,90vh);border-radius:16px;box-shadow:0 0 0 1px rgba(255,255,255,0.14),0 40px 80px -20px rgba(15,28,46,0.55),0 12px 32px -10px rgba(15,28,46,0.30);overflow:hidden}.avc .qm-sheet.open{transform:translate(-50%,-50%)}.avc .qm-head{border-radius:16px 16px 0 0}.avc .qm-handle{display:none}.avc .qm-title{text-wrap:normal}.avc .qm-sub{max-width:none}}.avc .qm-head{background:var(--navy-2);color:#FFF;padding:16px 20px 22px;position:relative;flex-shrink:0;overflow:hidden}.avc .qm-head::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 90% 0%,rgba(232,163,58,0.14),transparent 60%);pointer-events:none}.avc .qm-head>*{position:relative}.avc .qm-handle{width:36px;height:4px;border-radius:2px;background:rgba(255,255,255,0.22);margin:0 auto 14px}.avc .qm-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.avc .qm-eyebrow{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-mid)}.avc .qm-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.16);display:inline-flex;align-items:center;justify-content:center;color:#FFF;cursor:pointer;padding:0}.avc .qm-close:hover{background:rgba(255,255,255,0.18);color:#FFF}.avc .qm-close svg{width:14px;height:14px}.avc .qm-title{font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.22;margin:0 0 6px;text-wrap:pretty;color:#FFF}.avc .qm-title em{font-style:italic;font-weight:500;color:var(--gold)}.avc .qm-sub{font-size:14px;line-height:1.5;color:rgba(255,255,255,0.72);margin:0;max-width:300px}.avc #avc-modal-content{flex:1;display:flex;flex-direction:column;min-height:0}.avc .qm-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px 12px}.avc .qm-section-l{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--tan);margin:6px 2px 8px}.avc .qm-section-l:first-child{margin-top:0}.avc .qm-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.avc .qm-row.single{grid-template-columns:1fr}.avc .qm-cell{display:flex;align-items:center;gap:10px;background:#FFF;border:1px solid var(--hairline);border-radius:10px;padding:12px 12px;min-width:0}.avc .qm-cell svg{width:15px;height:15px;color:var(--tan);flex-shrink:0}.avc .qm-cell input,.avc .qm-cell select{width:100%;padding:0;font-size:16px;background:transparent;border:none;color:var(--navy-2);outline:none;-webkit-appearance:none;min-width:0;border-radius:0;box-shadow:none}.avc .qm-cell input::placeholder{color:var(--tan-soft)}.avc button.qm-cell{text-align:left;cursor:pointer;font:inherit;width:100%}.avc .qm-cell .dv{flex:1;font-size:16px;color:var(--navy-2);font-weight:400}.avc .qm-cell .dv.ph{color:var(--tan-soft)}.avc .qm-textarea{display:block;width:100%;min-height:84px;resize:none;background:#FFF;border:1px solid var(--hairline);border-radius:10px;padding:12px 12px;font-size:16px;line-height:1.45;color:var(--navy-2);outline:none;-webkit-appearance:none}.avc .qm-textarea::placeholder{color:var(--tan-soft)}.avc .qm-leg{position:relative;background:#FFF;border:1px solid var(--hairline);border-radius:12px;padding:14px 12px 12px 30px;margin-bottom:8px}.avc .qm-leg-n{position:absolute;left:0;top:0;bottom:0;width:24px;background:var(--navy-2);color:#FFF;font-size:10px;font-weight:700;border-radius:11px 0 0 11px;display:flex;align-items:center;justify-content:center;letter-spacing:.06em}.avc .qm-leg-rm{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:#FFF;color:var(--tan);border:1px solid var(--hairline);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 5px rgba(15,28,46,0.10);z-index:2;padding:0}.avc .qm-leg-rm svg{width:11px;height:11px}.avc .qm-leg-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}.avc .qm-leg-pair+.qm-leg-pair{margin-top:6px}.avc .qm-leg-cell{display:flex;align-items:center;gap:8px;padding:9px 10px;background:var(--cream);border:1px solid var(--hairline);border-radius:8px;min-width:0}.avc .qm-leg-cell svg{width:13px;height:13px;color:var(--tan);flex-shrink:0}.avc .qm-leg-cell input{width:100%;padding:0;font-size:16px;background:transparent;border:none;color:var(--navy-2);outline:none;min-width:0;border-radius:0;box-shadow:none}.avc .qm-leg-cell input::placeholder{color:var(--tan-soft)}.avc button.qm-leg-cell{text-align:left;cursor:pointer;font:inherit;width:100%}.avc .qm-leg-cell .dv{flex:1;font-size:16px;color:var(--navy-2);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avc .qm-leg-cell .dv.ph{color:var(--tan-soft)}.avc .qm-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-bottom:4px;background:transparent;border:1.5px dashed var(--tan-line);border-radius:12px;color:#8B6914;font-size:13px;font-weight:600;cursor:pointer}.avc .qm-add svg{width:14px;
1892height:14px}.avc .qm-tabs{display:flex;gap:4px;padding:4px;background:#FFF;border:1px solid var(--hairline);border-radius:10px;margin-bottom:12px}.avc .qm-tab{flex:1;padding:9px 4px;font-size:13px;font-weight:600;color:var(--tan);background:transparent;border:none;border-radius:7px;cursor:pointer}.avc .qm-tab.active{background:var(--navy-2);color:#FFF}.avc .qm-foot{padding:12px 16px 22px;background:var(--cream);border-top:1px solid var(--hairline);flex-shrink:0}.avc .qm-submit{width:100%;height:48px;border-radius:11px;background:var(--gold);color:var(--navy-2);border:none;font-size:14px;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 6px 16px -4px rgba(232,163,58,0.45)}.avc .qm-submit:hover{background:#F8CD8E;color:var(--navy-2)}.avc .qm-submit svg{width:13px;height:13px}.avc .qm-submit:disabled{opacity:.7;cursor:not-allowed}.avc .qm-fine{font-size:12.5px;color:var(--tan);text-align:center;margin:8px 0 0;line-height:1.4;letter-spacing:.005em}.avc .qm-form-error{margin-top:8px;padding:10px 12px;background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;font-size:13.5px;border-radius:8px}.avc .qm-success{padding:22px 22px 14px;display:flex;flex-direction:column;align-items:center;text-align:center}.avc .qm-success-mark{position:relative;width:68px;height:68px;margin-bottom:16px}.avc .qm-success-mark .ring{position:absolute;inset:0;border-radius:50%;border:1.2px solid var(--gold-mid)}.avc .qm-success-mark .disc{position:absolute;inset:7px;border-radius:50%;background:var(--navy-2);display:flex;align-items:center;justify-content:center}.avc .qm-success-mark .disc svg{width:26px;height:26px;color:var(--gold);stroke-width:2.5}.avc .qm-success-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--navy-2);margin:0 0 10px}.avc .qm-success-h{font-size:22px;font-weight:700;line-height:1.18;letter-spacing:-.015em;color:var(--navy-2);margin:0 0 4px;text-wrap:pretty}.avc .qm-success-line{font-size:16px;font-weight:500;line-height:1.35;color:var(--navy-2);margin:0 0 18px}.avc .qm-success-overview{font-size:13.5px;line-height:1.4;color:var(--navy-2);margin:0 0 10px;align-self:flex-start;font-weight:500}.avc .qm-sum{width:100%;background:var(--cream);border:1px solid var(--hairline);border-radius:12px;padding:14px 14px 8px;margin:0 0 18px;text-align:left}.avc .qm-sum-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0;border-top:1px dashed rgba(212,196,166,0.55)}.avc .qm-sum-row:first-of-type{border-top:none;padding-top:0}.avc .qm-sum-k{flex:0 0 64px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-2);padding-top:2px;opacity:.6}.avc .qm-sum-v{flex:1;min-width:0;font-size:13.5px;font-weight:500;color:var(--navy-2);line-height:1.35;word-break:break-word}.avc .qm-call-line{font-size:13.5px;line-height:1.5;color:var(--navy-2);margin:0;text-align:left;align-self:flex-start}.avc .qm-call-line a{color:var(--navy-2);font-weight:700;text-decoration:underline;text-underline-offset:2px}/* ---- inline calendar (Dest 3.0) ---- */.avc .qm-cal{background:#FFF;border:2px solid var(--navy-2);border-radius:14px;box-shadow:0 18px 36px -10px rgba(15,28,46,0.35),0 4px 10px rgba(15,28,46,0.10);overflow:hidden;margin:14px 0 26px}.avc .qm-cal-prompt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#F4EBD5;border-bottom:1px solid #E8DCB8;font-size:11.5px;font-weight:600;color:#6B5215;letter-spacing:.005em}.avc .qm-cal-prompt .step{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.65;flex-shrink:0}.avc .qm-cal-prompt .msg{flex:1;min-width:0}.avc .qm-cal-prompt strong{font-weight:700}.avc .qm-cal-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 6px}.avc .qm-cal-month{font-size:13px;font-weight:700;color:var(--navy-2);letter-spacing:-.01em}.avc .qm-cal-month .yr{font-weight:400;color:var(--tan);margin-left:5px}.avc .qm-cal-nav{display:flex;gap:4px}.avc .qm-cal-nav button{width:24px;height:24px;border-radius:50%;background:var(--cream);border:1px solid var(--hairline);color:var(--navy-2);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.avc .qm-cal-nav button:hover{background:#FFF;color:var(--navy-2)}.avc .qm-cal-nav button:disabled{opacity:.35;cursor:not-allowed}.avc .qm-cal-nav button svg{width:11px;height:11px}.avc .qm-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px 4px}.avc .qm-cal-dow{font-size:9.5px;font-weight:600;color:var(--tan);text-align:center;padding:2px 0 6px;letter-spacing:.06em;text-transform:uppercase}.avc .qm-cal-day{position:relative;height:30px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--navy-2);cursor:pointer;background:transparent;border:none;padding:0;border-radius:0}.avc .qm-cal-day:hover{background:transparent;color:var(--navy-2)}.avc .qm-cal-day.muted{color:var(--tan-line)}.avc .qm-cal-day.disabled{color:var(--tan-line);cursor:not-allowed;text-decoration:line-through;text-decoration-color:rgba(212,196,166,0.6)}.avc .qm-cal-day .num{position:relative;z-index:2}.avc .qm-cal-day.today .num::after{content:'';position:absolute;
1892left:50%;bottom:-2px;transform:translateX(-50%);width:3px;height:3px;background:var(--gold-deeper);border-radius:50%}.avc .qm-cal-day.in-range::before{content:'';position:absolute;inset:3px -1px;background:#F4EBD5;z-index:1}.avc .qm-cal-day.range-start::before{content:'';position:absolute;inset:3px -1px 3px 50%;background:#F4EBD5;z-index:1}.avc .qm-cal-day.range-end::before{content:'';position:absolute;inset:3px 50% 3px -1px;background:#F4EBD5;z-index:1}.avc .qm-cal-day.range-start.range-end::before{display:none}.avc .qm-cal-day.selected .num{width:26px;height:26px;border-radius:50%;background:var(--navy-2);color:#FFF;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:11.5px}.avc .qm-cal-day.today.selected .num::after{background:var(--gold)}.avc .qm-cal-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px 9px;border-top:1px solid var(--hairline);background:var(--cream)}.avc .qm-cal-summary{font-size:11px;color:#6B5840;font-weight:500;flex:1;line-height:1.2;min-width:0}.avc .qm-cal-summary strong{color:var(--navy-2);font-weight:700}.avc .qm-cal-summary .nights{color:var(--tan)}.avc .qm-cal-foot button{font-size:11px;font-weight:600;padding:6px 10px;border-radius:6px;cursor:pointer}.avc .qm-cal-clear{background:transparent;border:1px solid var(--hairline);color:var(--tan)}.avc .qm-cal-done{background:var(--navy-2);border:1px solid var(--navy-2);color:#FFF}.avc .qm-cal-done:disabled{opacity:.4;cursor:not-allowed}/* ---- date picker sheet (Dest 3.0) ---- */.avc .ds-backdrop{position:fixed;inset:0;background:rgba(15,28,46,0.55);z-index:20030;opacity:0;pointer-events:none;transition:opacity .22s ease}.avc .ds-backdrop.open{opacity:1;pointer-events:auto}.avc .ds-sheet{position:fixed;left:0;right:0;bottom:0;top:6vh;background:#FFF;z-index:20031;border-radius:18px 18px 0 0;box-shadow:0 -20px 60px -10px rgba(15,28,46,0.45);display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.32,.72,.34,.99),visibility 0s linear .32s;overflow:hidden;visibility:hidden;text-align:left}.avc .ds-sheet.open{transform:translateY(0);visibility:visible;transition:transform .32s cubic-bezier(.32,.72,.34,.99),visibility 0s linear}@media (min-width:720px){.avc .ds-sheet{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,calc(-50% + 100vh));width:min(440px,92vw);max-height:min(640px,86vh);border-radius:16px;box-shadow:0 40px 80px -20px rgba(15,28,46,0.55),0 12px 32px -10px rgba(15,28,46,0.30)}.avc .ds-sheet.open{transform:translate(-50%,-50%)}.avc .ds-head{cursor:default;touch-action:auto}.avc .ds-head::before{display:none}}.avc .ds-head{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--hairline);flex-shrink:0;position:relative;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.avc .ds-head:active{cursor:grabbing}.avc .ds-head::before{content:'';position:absolute;left:50%;top:7px;transform:translateX(-50%);width:36px;height:4px;border-radius:999px;background:var(--tan-line)}.avc .ds-close{width:36px;height:36px;border:none;background:var(--cream);border-radius:50%;color:var(--navy-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0}.avc .ds-close:hover{background:var(--cream-2);color:var(--navy-2)}.avc .ds-close svg{width:16px;height:16px}.avc .ds-title{font-size:16px;font-weight:700;color:var(--navy-2);letter-spacing:-.01em}.avc .ds-tabs{display:flex;gap:8px;padding:12px 16px 14px;flex-shrink:0}.avc .ds-tab{flex:1;min-width:0;padding:12px 14px;background:var(--cream);border:2px solid transparent;border-radius:12px;cursor:pointer;text-align:left;transition:all .15s ease}.avc .ds-tab:hover{background:var(--cream);color:inherit}.avc .ds-tab.active{background:#FFF;border-color:var(--navy-2);box-shadow:0 4px 12px -2px rgba(15,28,46,0.18)}.avc .ds-tab .lbl{display:block;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tan);margin:0 0 4px}.avc .ds-tab.active .lbl{color:var(--navy-2);opacity:.6}.avc .ds-tab .val{display:block;font-size:16px;font-weight:600;color:var(--navy-2);line-height:1.2}.avc .ds-tab .val.placeholder{color:var(--tan-soft);font-weight:500}.avc .ds-cal-host{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 12px 16px}.avc .ds-cal-host .qm-cal{margin:0;border:none;box-shadow:none}.avc .ds-cal-host .qm-cal-prompt{display:none}.avc .ds-cal-host .qm-cal-head{padding:14px 6px 10px}.avc .ds-cal-host .qm-cal-month{font-size:18px}.avc .ds-cal-host .qm-cal-month .yr{margin-left:8px}.avc .ds-cal-host .qm-cal-nav button{width:36px;height:36px}.avc .ds-cal-host .qm-cal-nav button svg{width:14px;
1892height:14px}.avc .ds-cal-host .qm-cal-grid{padding:0 2px 4px}.avc .ds-cal-host .qm-cal-dow{font-size:11px;padding:6px 0 8px}.avc .ds-cal-host .qm-cal-day{height:46px;font-size:15px}.avc .ds-cal-host .qm-cal-day.selected .num{width:38px;height:38px;font-size:14.5px}.avc .ds-cal-host .qm-cal-foot{display:none}.avc .ds-foot{display:flex;gap:10px;padding:12px 16px calc(28px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hairline);flex-shrink:0;background:#FFF}.avc .ds-clear{flex:0 0 auto;padding:14px 22px;background:transparent;border:1.5px solid var(--hairline);color:var(--navy-2);border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}.avc .ds-clear:hover{background:var(--cream);color:var(--navy-2)}.avc .ds-done{flex:1;padding:14px 22px;background:var(--navy-2);border:1.5px solid var(--navy-2);color:#FFF;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer}.avc .ds-done:hover{background:var(--navy);color:#FFF}.avc .ds-done:disabled{opacity:.45;cursor:not-allowed}/* ---- Google Places dropdown (body-level; Dest 3.0) ---- */.pac-container{z-index:2147480000;font-family:'Poppins',sans-serif;background:#FFF;border:1px solid #0F1C2E;border-top:none;border-radius:0 0 8px 8px;margin:0;padding:2px 0 0;box-shadow:0 22px 34px -18px rgba(15,28,46,0.4)}.pac-item{padding:11px 16px;font-size:14px;line-height:1.4;color:#5C6470;border-top:1px solid #F3EDE0;cursor:pointer}.pac-item:first-child{border-top:none}.pac-item:hover,.pac-item.pac-item-selected{background:#FAF6ED}.pac-item .pac-icon{display:none}.pac-item-query{font-size:14px;font-weight:600;color:#0F1C2E}.pac-container.av-pac-mobile{border-color:#ECE3D2;box-shadow:0 18px 30px -16px rgba(15,28,46,0.28)}.pac-container.av-pac-card{border:1px solid #E4DCCB;border-radius:12px;padding:4px 0 2px;box-shadow:0 10px 24px -12px rgba(15,28,46,0.22),0 28px 60px -18px rgba(15,28,46,0.32)}.pac-container.av-pac-underline{border:1px solid #DAD6CC;border-radius:8px;margin-top:4px}.avc .av-pac-open{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;box-shadow:none!important}.avc .qf-box.av-pac-open,.avc .qf-leg-cell.av-pac-open{border-color:#0F1C2E;background:#FFFFFF}.pac-container{font-size:14px}.pac-container.av-pac-qp{border:1px solid #E8A93C;border-top:none;border-radius:0 0 12px 12px;padding:0;margin:0;box-shadow:0 24px 44px -18px rgba(11,22,38,0.28)}.pac-container.av-pac-qp .pac-item{padding:12px 16px 12px 43px;font-size:15px;line-height:1.4;color:#8B7355;border-top:1px solid #EDE7DB;cursor:pointer}.pac-container.av-pac-qp .pac-item:first-child{border-top:1px solid #EDE7DB}.pac-container.av-pac-qp .pac-item:last-of-type{border-radius:0}.pac-container.av-pac-qp .pac-item:hover,.pac-container.av-pac-qp .pac-item.pac-item-selected{background:#FBFAF7}.pac-container.av-pac-qp .pac-item-query{font-size:16px;font-weight:600;color:#0B1626}.pac-container.av-pac-qp:after{padding:6px 14px 6px;opacity:.55}.avc .qp-cell.av-pac-open{border-color:#E8A93C;border-bottom-color:#EDE7DB;background:#FFFFFF}.pac-container:after{padding:6px 12px 4px;height:auto;background-size:100px 14px;background-position:right 12px center;opacity:.75}/* âââ Quote page two-step card âââ */.avc .qp-body>.last:last-child{margin-bottom:0}.avc .qp-row3{display:grid;grid-template-columns:1.3fr 1.3fr 1fr;gap:clamp(10px,1.25cqw,14px);margin-bottom:clamp(10px,1.25cqw,14px)}.avc .qp-body .qp-ta{min-height:72px}.avc .qp-sec .t .opt{text-transform:none;letter-spacing:0;font-weight:500;color:#B8B3A6}.avc .qp-sum-edit{background:transparent;border:0;padding:0;color:#B0781F;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;cursor:pointer}.avc .qp-sum-edit:hover{color:#C8841F;background:transparent}.avc-d .qf-steps>*{transition:opacity .22s ease,transform .3s cubic-bezier(.2,.7,.2,1)}.avc-d .qf-steps.qp-switching>*{pointer-events:none}.avc-d .qf-steps.qp-switching.qp-fwd>*{opacity:0;transform:translateX(-28px);transition-duration:.16s,.17s}.avc-d .qf-steps.qp-switching.qp-bwd>*{opacity:0;transform:translateX(28px);transition-duration:.16s,.17s}.avc-d .qf-steps.qp-enter.qp-fwd>*{opacity:0;transform:translateX(28px);transition:none}.avc-d .qf-steps.qp-enter.qp-bwd>*{opacity:0;transform:translateX(-28px);transition:none}.avc-d .qf-steps{overflow:hidden}.avc-d .qf-steps{display:flex;flex-direction:column}.avc .qp-body{flex:1 0 auto}.avc .qp-body-center{display:flex;flex-direction:column;justify-content:center}.avc .qp-ind-sm{padding:3px;flex:none}.avc .qp-ind-sm .qp-tab{padding:5px 14px;font-size:12.5px}.avc .qp-ind .qp-tab{cursor:default}.avc .qp-ind .qp-tab.done{color:#B0781F;cursor:pointer}.avc .qp-ind .qp-tab.done:hover,.avc .qp-ind .qp-tab.next:hover{color:#C8841F;background:#FFFFFF}
1892.avc .qp-ind .qp-tab.next{cursor:pointer}.avc .qp-row3:last-child{margin-bottom:0}@media (max-width:1024px){.avc .qp-row3{grid-template-columns:1fr 1fr}.avc .qp-head-r{flex:1 1 100%}}/* âââ notice dialog âââ */.avc .qn-backdrop{position:fixed;inset:0;background:rgba(11,22,38,0.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:20040;opacity:0;pointer-events:none;transition:opacity .2s ease}.avc .qn-backdrop.open{opacity:1;pointer-events:auto}.avc .qn{position:fixed;top:50%;left:50%;transform:translate(-50%,calc(-50% + 14px));width:min(420px,calc(100vw - 32px));background:#FFFFFF;border:1px solid #EDE7DB;border-radius:18px;padding:28px 28px 24px;text-align:center;z-index:20041;box-shadow:0 40px 80px -24px rgba(11,22,38,0.5);opacity:0;visibility:hidden;transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1),visibility 0s linear .2s}.avc .qn.open{opacity:1;visibility:visible;transform:translate(-50%,-50%);transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1),visibility 0s linear}.avc .qn-icon{width:48px;height:48px;border-radius:50%;margin:0 auto 14px;background:rgba(232,169,60,0.18);color:#B0781F;display:flex;align-items:center;justify-content:center}.avc .qn-icon svg{width:22px;height:22px}.avc .qn-title{font-size:20px;font-weight:700;letter-spacing:-.015em;line-height:1.2;color:#0B1626;margin:0 0 8px}.avc .qn-text{font-size:15px;line-height:1.55;color:#5B6472;margin:0 0 20px}.avc .qn-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;background:#E8A93C;color:#0B1626;border:0;border-radius:999px;font-size:15.5px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px rgba(232,169,60,0.35)}.avc .qn-btn:hover{background:#F4BF5E;color:#0B1626}/* quote page: FAQ block centred on the page (owner 2026-08-22) â desktop/tablet tree */.avc .avc-d section[data-screen-label="Pricing FAQs"]>div>div:first-child{justify-content:center}.avc .avc-d section[data-screen-label="Pricing FAQs"]>div>div:first-child::before{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(200,132,31,0.4))}.avc .avc-d section[data-screen-label="Pricing FAQs"] h2{text-align:center;margin-left:auto;margin-right:auto}.avc .avc-d section[data-screen-label="Pricing FAQs"] div[style^="max-width:920px"]{margin:0 auto}/* quote page: section eyebrows ("Why Choose AvSky Charters?", "Charter Flight Quote FAQs") a touch bigger (owner 2026-08-22) */.avc section[data-screen-label="Why AvSky"] span[style*="letter-spacing:0.16em"][style*="color:#B0781F"],.avc section[data-screen-label="Pricing FAQs"] span[style*="letter-spacing:0.16em"][style*="color:#B0781F"]{font-size:14px!important}/* About / Contact / Memberships: section rhythm a notch roomier than the Quote page (owner 2026-08-22) â 80/80 desktop, 64/64 tablet, first section after the hero 56 */.avc .avc-d section[data-screen-label="Our Story"],.avc .avc-d section[data-screen-label="Press"],.avc .avc-d section[data-screen-label="Request a Quote"],.avc .avc-d section[data-screen-label="Team"],.avc .avc-d section[data-screen-label="Who to reach"],.avc .avc-d section[data-screen-label="Home Base"],.avc .avc-d section[data-screen-label="Member Benefits"],.avc .avc-d section[data-screen-label="Membership Inquiry"]{padding:68px 0 80px}.avc .avc-d section[data-screen-label="Our Story"],.avc .avc-d section[data-screen-label="Who to reach"],.avc .avc-d section[data-screen-label="Member Benefits"]{padding-top:56px}@media (max-width:1024px){.avc .avc-d section[data-screen-label="Our Story"],.avc .avc-d section[data-screen-label="Press"],.avc .avc-d section[data-screen-label="Request a Quote"],.avc .avc-d section[data-screen-label="Team"],.avc .avc-d section[data-screen-label="Who to reach"],.avc .avc-d section[data-screen-label="Home Base"],.avc .avc-d section[data-screen-label="Member Benefits"],.avc .avc-d section[data-screen-label="Membership Inquiry"]{padding:54px 0 64px}}/* âââ Memberships: inquiry form in the Quote card language (owner 2026-08-22) âââ */.avc .avc-mcard .mgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px;align-items:start}.avc .avc-mcard .mfields,.avc .avc-mcard .maside{min-width:0}.avc .avc-mcard .qp-row2{margin-bottom:14px}.avc .avc-mcard .qp-ta{min-height:96px}.avc .avc-mcard .mfoot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;flex-wrap:wrap}.avc .avc-mcard .avc-form-error{flex:1 1 100%;margin:0;color:#991B1B;font-size:13.5px}.avc .avc-mcard .fsx{padding-top:8px}@media (max-width:1024px){.avc .avc-mcard .mgrid{grid-template-columns:1fr;gap:32px}}.avc-m .avc-mcard{padding:0;overflow:hidden;border:1px solid #EDE7DB;border-radius:16px;--qp-x:20px;box-shadow:0 16px 36px -20px rgba(11,22,38,0.16)}.avc-m .avc-mcard .qp-head{padding:22px var(--qp-x) 20px}.avc-m .avc-mcard .qp-head-main{display:block}.avc-m .avc-mcard .qp-eyebrow .qp-badge{display:none}.avc-m .avc-mcard .qp-title{font-size:26px}.avc-m .avc-mcard .qp-body{padding:22px var(--qp-x) 26px}.avc-m .avc-mcard .mgrid{grid-template-columns:1fr;gap:26px}.avc-m .avc-mcard .qp-row2{grid-template-columns:1fr}.avc-m .avc-mcard .qp-submit{width:100%;justify-content:center}.avc-m .avc-mcard .qp-eyebrow{flex-wrap:nowrap;gap:10px}.avc-m .avc-mcard .qp-eyebrow .t{font-size:10.5px;letter-spacing:.14em;overflow:hidden;text-overflow:ellipsis}/* About hero: equal space above the eyebrow and below the trust bar, trimmed from 96 to 80 (owner 2026-08-22) */.avc .avc-d:has(section[data-screen-label="Our Story"]) header[data-screen-label="Hero"]>div:first-child{padding-top:80px}.avc .avc-d:has(section[data-screen-label="Our Story"]) header[data-screen-label="Hero"]>div:last-child{padding-bottom:48px}@media (max-width:1024px){.avc .avc-d:has(section[data-screen-label="Our Story"]) header[data-screen-label="Hero"]>div:first-child{padding-top:56px}.avc .avc-d:has(section[data-screen-label="Our Story"]) header[data-screen-label="Hero"]>div:last-child{padding-bottom:28px}}/* âââ in-place success for the static forms (About / Contact / Memberships): landscape receipt that fits the form's column âââ */.avc .fsx-wide{container-type:inline-size;display:flex;flex-direction:column;justify-content:center;align-items:stretch;text-align:left;padding:4px 0;width:100%;gap:22px}.avc .fsx-wide .fsx-l{display:flex;flex-direction:column;align-items:flex-start}.avc .fsx-wide .fsx-r{display:flex;flex-direction:column;align-items:stretch;min-width:0}.avc .fsx-wide .fsx-mark{width:56px;height:56px;margin-bottom:16px}.avc .fsx-wide .fsx-mark .disc{inset:12px}.avc .fsx-wide .fsx-mark .disc svg{width:18px;height:18px}.avc .fsx-wide .fsx-eyebrow{margin-bottom:8px}.avc .fsx-wide h3{font-size:26px;margin-bottom:8px}.avc .fsx-wide .fsx-sub{font-size:14.5px;margin:0 0 18px;max-width:none}.avc .fsx-wide .fsx-receipt,.avc .fsx-wide .fsx-sum,.avc .fsx-wide .fsx-next{max-width:none}.avc .fsx-wide .fsx-sum{margin-bottom:16px;padding:10px 16px 6px}.avc .fsx-wide .fsx-sum-row{padding:5px 0}.avc .fsx-wide .fsx-next{gap:9px;margin-bottom:0}.avc .fsx-wide .fsx-step .t{font-size:13px}@container (min-width:620px){.avc .fsx-wide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px 40px;align-items:center}.avc .fsx-wide .fsx-mark{width:64px;
1892height:64px;margin-bottom:20px}.avc .fsx-wide h3{font-size:28px}.avc .fsx-wide .fsx-sub{font-size:15px;margin-bottom:22px}.avc .fsx-wide .fsx-sum{padding:14px 16px 8px;margin-bottom:18px}}.avc .qf-card>*{transition:opacity .22s ease}.avc .qf-card.qp-switching>*{opacity:0;transition-duration:.16s}.avc .qf-card.qp-enter>*{opacity:0;transition:none}@container (max-width:619px){.avc .fsx-wide{gap:16px}.avc .fsx-wide .fsx-mark{width:48px;height:48px;margin-bottom:12px}.avc .fsx-wide .fsx-mark .disc{inset:10px}.avc .fsx-wide .fsx-sub{margin-bottom:14px}.avc .fsx-wide .fsx-receipt{padding:14px 16px;margin-bottom:12px}.avc .fsx-wide .fsx-route{padding-bottom:10px;margin-bottom:10px}.avc .fsx-wide .fsx-sum{margin-bottom:12px;padding:8px 14px 4px}.avc .fsx-wide .fsx-next{gap:7px}}.avc .qp-success .fsx-wide{padding:0}.avc .qp-success .fsx-wide .fsx-next{margin:0 0 18px}.avc .qp-success .fsx-wide .fsx-sum{margin-bottom:0}/* Quote step 2: the Trip notes cell slides open on focus (selects yield; labels ellipsize so the row height never changes) */.avc .qp-row3{transition:grid-template-columns .34s cubic-bezier(.2,.7,.2,1)}.avc .qp-row3>div{min-width:0}.avc .qp-row3 .qp-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width:1025px){.avc .qp-row3:has(input[data-field="notes"]:focus){grid-template-columns:.5fr .5fr 2.6fr}.avc .qp-row3:has(input[data-field="notes"]:focus) .qp-cell select{text-overflow:ellipsis}}@media (max-width:1024px){.avc .qp-row3>div:last-child{grid-column:1/-1}}/* âââ custom dropdowns (match the Places suggestion list) âââ */.avc .avc-sel-host{position:relative}.avc select.avc-sel-native{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none;margin:0;padding:0;border:0}.avc .qp-cell .avc-sel-btn{flex:1;min-width:0;height:100%;background:transparent;border:0;padding:0;margin:0;text-align:left;font:inherit;font-size:16px;font-weight:500;color:#0B1626;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:normal;border-radius:0;box-shadow:none}.avc .qp-cell .avc-sel-btn:hover{background:transparent;color:#0B1626}.avc .qp-cell .avc-sel-btn.ph{color:#B8B3A6;font-weight:400}.avc .avc-sel-btn.ph{color:#B8B3A6}.avc .qf-box .avc-sel-btn{flex:1;min-width:0;background:transparent;border:0;padding:0;margin:0;text-align:left;font:inherit;font-size:16px;color:#0B1626;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:0;box-shadow:none}.avc-sel-list{position:absolute;z-index:20010;background:#FFFFFF;border:1px solid #E8A93C;border-top:0;border-radius:0 0 12px 12px;box-shadow:0 24px 44px -18px rgba(11,22,38,0.28);margin:0;padding:0;max-height:320px;overflow-y:auto;font-family:'Poppins',sans-serif;box-sizing:border-box}.avc-sel-opt{padding:12px 16px 12px 43px;font-size:15px;line-height:1.4;color:#0B1626;cursor:pointer;border-top:1px solid #EDE7DB}.avc-sel-opt:hover,.avc-sel-opt.active{background:#FBFAF7}.avc-sel-opt[aria-selected="true"]{font-weight:600}.avc-sel-opt:last-child{border-radius:0 0 11px 11px}.avc-sel-list.plain .avc-sel-opt{padding-left:16px}.avc .avc-sel-btn.av-pac-open{border-color:#E8A93C!important;border-bottom-color:#EDE7DB!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;box-shadow:none!important}/* Contact: a touch more room under the map section before the footer (owner 2026-08-22) */.avc .avc-d section[data-screen-label="Home Base"]{padding-bottom:100px}@media (max-width:1024px){.avc .avc-d section[data-screen-label="Home Base"]{padding-bottom:80px}}/* About: team cards are links to the member pages *//* About: team cards are <a>s to /team/<slug>/ (build/pages.js linkTeamCards) â same hover as the team pages' cards: no motion */.avc a.avc-teamcard{transition:border-color .2s,box-shadow .2s}.avc a.avc-teamcard:hover,.avc a.avc-teamcard:focus-visible{border-color:rgba(176,120,31,0.45)!important;box-shadow:0 6px 18px -8px rgba(11,22,38,0.16)!important;outline:none}.avc a.avc-teamtile:focus-visible{outline:2px solid #E8A93C;outline-offset:-2px}/* ââ layout: bleed ââ */.avc{max-width:none;box-shadow:none;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}html,body{overflow-x:hidden;overflow-x:clip}/* ââ generated responsive classes (about) ââ */.avc .ds1{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.04fr 0.96fr;gap:72px;align-items:center;padding:96px 40px 72px}@media (max-width:1024px){.avc .ds1{grid-template-columns:1fr;gap:40px;padding:64px 32px 48px}}.avc .ds2{font-family:'Poppins',sans-serif;font-size:54px;font-weight:700;line-height:1.05;letter-spacing:-0.025em;color:#FFFFFF;margin:0 0 24px;text-wrap:pretty}@media (max-width:1024px){.avc .ds2{font-size:44px}}.avc .ds3{font-size:16.5px;line-height:1.72;color:rgba(255,255,255,0.75);margin:0 0 36px;max-width:544px;text-wrap:pretty}@media (max-width:1024px){.avc .ds3{max-width:660px}}.avc .ds6{position:absolute;inset:24px -24px -24px 24px;border:1.5px solid rgba(232,169,60,0.45);border-radius:16px}@media (max-width:1024px){.avc .ds6{display:none;position:unset;inset:unset;border:unset;border-radius:unset}}.avc .ds7{max-width:1240px;margin:0 auto;display:grid;border-top:1px solid rgba(255,255,255,0.12);grid-template-columns:repeat(4,1fr);row-gap:0;align-items:stretch;padding:0 40px 10px}@media (max-width:1024px){.avc .ds7{padding:0 32px 16px}}.avc .ds8{background:radial-gradient(ellipse at 10% 0%, rgba(232,169,60,0.05), transparent 50%) #FFFFFF;padding:96px 0}@media (max-width:1024px){.avc .ds8{padding:72px 0 64px}}.avc .ds9{max-width:1240px;margin:0 auto;display:grid;padding:0 40px;grid-template-columns:minmax(0,1fr) minmax(0,0.92fr);gap:88px;align-items:start}@media (max-width:1024px){.avc .ds9{padding:0 32px;grid-template-columns:1fr;gap:48px}}.avc .ds10{font-family:'Poppins',sans-serif;font-size:42px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.05;margin:0;white-space:nowrap}@media (max-width:1024px){.avc .ds10{font-size:36px;white-space:normal}}.avc .ds11{position:absolute;inset:20px -20px -20px 20px;border:1.5px solid rgba(232,169,60,0.45);border-radius:6px}@media (max-width:1024px){.avc .ds11{display:none;position:unset;inset:unset;border:unset;border-radius:unset}}.avc .ds12{max-width:1240px;margin:0 auto;display:grid;padding:96px 40px 72px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:start}@media (max-width:1024px){.avc .ds12{padding:64px 32px 48px;grid-template-columns:1fr;gap:48px}}.avc .ds13{font-family:'Poppins',sans-serif;font-size:42px;font-weight:700;color:#FFFFFF;letter-spacing:-0.02em;line-height:1.05;margin:0 0 18px;text-wrap:pretty}@media (max-width:1024px){.avc .ds13{font-size:36px}}.avc .ds15{max-width:1240px;margin:0 auto;padding:0 40px 96px}@media (max-width:1024px){.avc .ds15{padding:0 32px 64px}}.avc .ds16{position:relative;display:grid;grid-template-columns:minmax(0,0.62fr) minmax(0,2fr);gap:64px;padding:46px 48px 44px}@media (max-width:1024px){.avc .ds16{grid-template-columns:1fr;gap:40px;padding:40px 36px 38px}}.avc .ds18{font-size:16px;color:#6B7280;white-space:nowrap}@media (max-width:1024px){.avc .ds18{white-space:normal}}.avc .ds20{background:radial-gradient(ellipse at 90% 10%, rgba(232,169,60,0.06), transparent 55%) #FFFFFF;border-top:1px solid #ECE9E2;padding:96px 0}@media (max-width:1024px){.avc .ds20{padding:72px 0 64px}}.avc .ds21{max-width:1240px;margin:0 auto;padding:0 40px}@media (max-width:1024px){.avc .ds21{padding:0 32px}}.avc .ds24{font-size:20px;font-weight:700;color:#0B1626;letter-spacing:-0.015em;margin:0;white-space:nowrap}@media (max-width:1024px){.avc .ds24{white-space:normal}}.avc .ds25{font-size:16px;line-height:1.65;color:#6B7280;margin:0;white-space:nowrap}@media (max-width:1024px){.avc .ds25{white-space:normal}}.avc .ds26{display:grid;grid-template-columns:260px minmax(0,1fr) 26px;gap:26px;align-items:baseline;
1892padding:18px 26px;color:inherit;border-bottom:1px solid #EDE7DB}@media (max-width:1024px){.avc .ds26{grid-template-columns:200px minmax(0,1fr) 26px}}.avc .ds28{display:grid;grid-template-columns:260px minmax(0,1fr) 26px;gap:26px;align-items:baseline;padding:18px 26px;color:inherit}@media (max-width:1024px){.avc .ds28{grid-template-columns:200px minmax(0,1fr) 26px}}.avc .ds29{background:radial-gradient(ellipse at 84% 0%, rgba(232,169,60,0.07), transparent 55%) #FBFAF7;border-top:1px solid #EDE7DB;padding:96px 0}@media (max-width:1024px){.avc .ds29{padding:72px 0 64px}}.avc .ds30{max-width:1240px;margin:0 auto;display:grid;padding:0 40px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:start}@media (max-width:1024px){.avc .ds30{padding:0 32px;grid-template-columns:1fr;gap:48px}}.avc .ds31{font-family:'Poppins',sans-serif;font-size:42px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.05;margin:0 0 18px}@media (max-width:1024px){.avc .ds31{font-size:36px}}.avc .ds32{font-size:16px;line-height:1.65;color:#4B5563;margin:0 0 44px}@media (max-width:1024px){.avc .ds32{margin:0 0 30px}}.avc .ds33{display:block}@media (max-width:1024px){.avc .ds33{display:grid;grid-template-columns:1fr 0.78fr;gap:36px;align-items:stretch}}.avc .ds34{height:1px;background:#ECE9E2;margin:36px 0 26px}@media (max-width:1024px){.avc .ds34{display:none;height:unset;background:unset;margin:unset}}.avc .ds35{}@media (max-width:1024px){.avc .ds35{background:#FFFFFF;border:1px solid #ECE9E2;border-radius:14px;padding:24px 26px;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}}.avc .ds37{background:#FFFFFF;border-top:1px solid #EDE7DB;padding:96px 0}@media (max-width:1024px){.avc .ds37{padding:72px 0 64px}}.avc .ds38{font-family:'Poppins',sans-serif;font-size:42px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.05;margin:0 0 16px;white-space:nowrap}@media (max-width:1024px){.avc .ds38{font-size:36px;white-space:normal}}.avc .ds39{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 44px}@media (max-width:1024px){.avc .ds39{gap:36px 24px}}.avc .dh4:hover{background:#F4BF5E !important;color:#0B1626 !important}.avc .dh5:hover{color:#F4BF5E !important;border-bottom:1.5px solid #F4BF5E !important}.avc .dh14:hover{color:#F4BF5E !important}.avc .dh19:hover{background:#16283F !important}.avc .dh22:hover{color:#8F6420 !important}.avc .dh23:hover{border:1px solid rgba(200,132,31,0.45) !important;box-shadow:0 24px 48px -20px rgba(11,22,38,0.18) !important;color:inherit !important}.avc .dh27:hover{background:rgba(232,169,60,0.06) !important;color:inherit !important}.avc .dh36:hover{color:#B0781F !important}.avc .dh40:hover{background:#E8A93C !important;color:#0B1626 !important}.avc .df17:focus{border:1px solid #0B1626 !important;box-shadow:0 0 0 3px rgba(232,169,60,0.22) !important}.avc .mh1:hover{background:#F4BF5E !important;color:#0B1626 !important}.avc .mh2:hover{color:#F4BF5E !important;border:1px solid rgba(244,191,94,0.6) !important}.avc .mh3:hover{color:#F4BF5E !important}.avc .mh5:hover{background:#F4BF5E !important}.avc .mh6:hover{color:inherit !important}.avc .mh7:hover{color:#8F6420 !important}.avc .mh8:hover{color:#B0781F !important}.avc .mh9:hover{border-color:#F4BF5E !important;color:#F4BF5E !important}.avc .mf4:focus{border:1px solid #E8A93C !important;box-shadow:0 0 0 3px rgba(232,169,60,0.18) !important}</style><div class="avc avc-about" id="avc-root" data-avc-page="about"><div class="avc-d"><header data-screen-label="Hero" style="background:radial-gradient(ellipse at 88% 0%, rgba(232,169,60,0.1), transparent 55%) #0B1626;padding:0 40px"><div class="ds1"><div><div style="display:flex;align-items:center;gap:9px;margin-bottom:22px"><span style="width:8px;height:8px;border-radius:50%;background:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18)"></span><h1 style="font-size:16px;font-weight:500;color:rgba(255,255,255,0.55);margin:0;letter-spacing:0;line-height:1.5">
1892AvSky Charters · Global On-Demand Private Jet Access</h1></div><h2 class="ds2">We deliver exceptional travel experiences</h2><p class="ds3">AvSky Charters provides customized private flights backed by the industryâs most attentive and dedicated customer service team. With access to more than 12,000 aircraft, we can always find the ideal plane and crew for your trip â even on short notice. Across the state or halfway around the world, AvSky is the only call youâll need to make.</p><div style="display:flex;align-items:center;gap:22px"><button class="dh4" type="button" data-action="open-modal" style="display:inline-flex;align-items:center;gap:9px;background:#E8A93C;color:#0B1626;border:none;font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;padding:15px 30px;border-radius:999px;cursor:pointer;box-shadow:0 14px 30px -10px rgba(232,169,60,0.45)">Request a Quote <span aria-hidden="true">â</span></button><a class="dh5" href="#team" data-action="scroll" data-target="team" style="display:inline-flex;align-items:center;gap:9px;color:#FFFFFF;font-size:16px;font-weight:600;line-height:1;padding:0 2px 2px;border-bottom:1.5px solid rgba(255,255,255,0.28)">Meet the team</a></div></div><div style="position:relative;order:0"><div class="ds6"></div><div style="position:relative;aspect-ratio:3/2;border-radius:16px;overflow:hidden;box-shadow:0 40px 80px -28px rgba(0,0,0,0.7)"><img width="1742" height="1109" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1742'%20height='1109'%20viewBox='0%200%201742%201109'%3E%3C/svg%3E" alt="The AvSky Charters team" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/AvSkyChartersTeamJan2026A.png" /><div style="position:absolute;bottom:16px;left:16px;pointer-events:none;background:rgba(11,22,38,0.72);backdrop-filter:blur(8px);border:1px solid rgba(232,169,60,0.4);color:#FFFFFF;padding:6px 14px;border-radius:999px;font-size:16px;font-weight:600;letter-spacing:0.04em">The AvSky Charters Team</div></div></div></div><div class="ds7"><div style="text-align:center;padding:30px 24px 32px;display:flex;flex-direction:column;justify-content:center"><div style="font-size:34px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:8px">8,000+</div><div style="font-size:16px;line-height:1.45;color:rgba(255,255,255,0.62)">Vetted operators,<br>screened for safety</div></div><div style="text-align:center;padding:30px 24px 32px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(255,255,255,0.1)"><div style="font-size:34px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:8px">12,000+</div><div style="font-size:16px;line-height:1.45;color:rgba(255,255,255,0.62)">Aircraft positioned<br>worldwide</div></div><div style="text-align:center;padding:30px 24px 32px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(255,255,255,0.1);border-top:none"><div style="font-size:34px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:8px">Top 5</div><div style="font-size:16px;line-height:1.45;color:rgba(255,255,255,0.62)">U.S. brokerage<br>by sales volume</div></div><div style="text-align:center;padding:30px 24px 32px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(255,255,255,0.1);border-top:none"><div style="font-size:34px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:8px">24/7</div><div style="font-size:16px;line-height:1.45;color:rgba(255,255,255,0.62)">Florida-based,<br>not a call center</div></div></div></header><div style="display:flex;flex-direction:column"><div style="position:relative"><section class="ds8" data-screen-label="Our Story"><div class="ds9"><div><div style="display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:28px"><h2 class="ds10">The AvSky Charters Story</h2><span style="flex:1;min-width:60px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span></div><div style="position:relative;margin:0 0 46px"><div class="ds11"></div><div style="position:relative;aspect-ratio:16/10;border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(11,22,38,0.45)"><img width="2048" height="1365" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='2048'%20height='1365'%20viewBox='0%200%202048%201365'%3E%3C/svg%3E" alt="The AvSky Charters team on the ramp at Venice Municipal Airport" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/08/IMG_2114.jpg" /><div style="display:block;position:absolute;bottom:16px;left:16px;pointer-events:none;background:rgba(11,22,38,0.72);backdrop-filter:blur(8px);border:1px solid rgba(232,169,60,0.4);color:#FFFFFF;padding:6px 14px;border-radius:999px;font-size:16px;font-weight:600;letter-spacing:0.04em">On the tarmac at Venice Municipal Airport</div></div></div><p style="font-size:16.5px;line-height:1.85;color:#374151;margin:0 0 20px">Based in Venice, Florida, AvSky Charters was built on a straightforward premise: private travel should be completely personalized, transparent, and effortless.</p><p style="font-size:16.5px;line-height:1.85;color:#374151;margin:0 0 20px">Born out of AvSky Corporationâs established global leadership in aircraft sales, our charter team pairs institutional private aviation expertise with boutique, high-touch execution.</p><p style="font-size:16.5px;line-height:1.85;color:#374151;margin:0 0 20px">Led by CEO Cameron Cary, we provide on-demand charters across every aircraft class, backed by an industry-leading network of more than 8,000 highly-vetted operators.</p><p style="font-size:16.5px;line-height:1.85;color:#374151;margin:0 0 20px">
1892What truly sets us apart is how we serve our clients. Every trip is managed by a dedicated in-house charter advisor who learns your preferences, coordinates logistics from ground transport to customs, and remains on-call around the clock.</p><p style="font-size:16.5px;line-height:1.85;color:#374151;margin:0">With transparent pricing and uncompromised safety standards, we ensure you always fly on your schedule, in the right aircraft, and with total peace of mind.</p></div><div style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;padding:38px 40px 40px;display:flex;flex-direction:column"><div style="padding-bottom:22px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:14px"><span style="font-size:22px;font-weight:700;color:#0B1626;letter-spacing:-0.015em;white-space:nowrap">Our Specialties</span><span style="flex:1;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0))"></span></div><p style="font-size:16px;line-height:1.7;color:#5B6472;margin:14px 0 0">Backed by a global network that includes more than 12,000 aircraft, AvSky manages private travel for virtually any destination, timeline, or passenger count. Whether you need a light jet staged in hours or a complex multi-leg itinerary, your dedicated charter advisor manages every detail from takeoff to touchdown.</p></div><div style="position:relative;padding-left:34px;margin-top:0"><div style="position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(to right, rgba(11,22,38,0.45), rgba(11,22,38,0.10) 70%, rgba(11,22,38,0))"></div><div style="position:relative;display:block;padding:22px 0 18px;align-items:start"><span style="display:block;position:absolute;left:-34px;top:29px;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.16), 0 0 10px rgba(232,169,60,0.45)"></span><span style="position:absolute;left:-34px;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(11,22,38,0.14), rgba(11,22,38,0.04) 70%, rgba(11,22,38,0))"></span><span><span style="display:block;font-size:16.5px;font-weight:600;color:#0B1626;letter-spacing:-0.01em;line-height:1.35">Bahamas & Caribbean Private Escapes</span><span style="display:block;font-size:16px;line-height:1.6;color:#6B7280;margin-top:5px">Seamless island-hopping, direct FBO ramp access, and customs coordination across the islands.</span></span></div><div style="position:relative;display:block;padding:18px 0;align-items:start"><span style="display:block;position:absolute;left:-34px;top:25px;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.16), 0 0 10px rgba(232,169,60,0.45)"></span><span style="position:absolute;left:-34px;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(11,22,38,0.14), rgba(11,22,38,0.04) 70%, rgba(11,22,38,0))"></span><span><span style="display:block;font-size:16.5px;font-weight:600;color:#0B1626;letter-spacing:-0.01em;line-height:1.35">Urgent & Same-Day Executive Flights</span><span style="display:block;font-size:16px;line-height:1.6;color:#6B7280;margin-top:5px">Aircraft sourced, crewed, and ready to depart on short notice when business plans change.</span></span></div><div style="position:relative;display:block;padding:18px 0;align-items:start"><span style="display:block;position:absolute;left:-34px;top:25px;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.16), 0 0 10px rgba(232,169,60,0.45)"></span><span style="position:absolute;left:-34px;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(11,22,38,0.14), rgba(11,22,38,0.04) 70%, rgba(11,22,38,0))"></span><span><span style="display:block;font-size:16.5px;font-weight:600;color:#0B1626;letter-spacing:-0.01em;line-height:1.35">Team, Athletic & Tour Group Travel</span><span style="display:block;font-size:16px;line-height:1.6;color:#6B7280;margin-top:5px">Custom logistics for sports teams, event staff, and production crews, including heavy luggage and equipment transport.</sp
1892an></span></div><div style="position:relative;display:block;padding:18px 0;align-items:start"><span style="display:block;position:absolute;left:-34px;top:25px;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.16), 0 0 10px rgba(232,169,60,0.45)"></span><span style="position:absolute;left:-34px;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(11,22,38,0.14), rgba(11,22,38,0.04) 70%, rgba(11,22,38,0))"></span><span><span style="display:block;font-size:16.5px;font-weight:600;color:#0B1626;letter-spacing:-0.01em;line-height:1.35">Medical Transport & Air Ambulance</span><span style="display:block;font-size:16px;line-height:1.6;color:#6B7280;margin-top:5px">Critical patient transfers and specialized medical aircraft arranged 24/7 with zero delay.</span></span></div><div style="position:relative;display:block;padding:18px 0 0;align-items:start"><span style="display:block;position:absolute;left:-34px;top:25px;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.16), 0 0 10px rgba(232,169,60,0.45)"></span><span><span style="display:block;font-size:16.5px;font-weight:600;color:#0B1626;letter-spacing:-0.01em;line-height:1.35">Government & Official Travel</span><span style="display:block;font-size:16px;line-height:1.6;color:#6B7280;margin-top:5px">Vetted operators meeting strict safety, regulatory, and reporting standards for public-sector missions.</span></span></div></div></div></div></section></div><div style="position:relative"><section id="contact" data-screen-label="Contact & Location" style="position:relative;overflow:hidden;background:linear-gradient(158deg, #16283F 0%, #0F1D31 44%, #0A1420 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.07)"><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 55% at 88% -8%, rgba(244,192,120,0.22), transparent 62%)"></div><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 8% 108%, rgba(56,120,194,0.18), transparent 60%)"></div><div style="position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(244,192,120,0) 0%, rgba(244,192,120,0.85) 46%, rgba(244,192,120,0.15) 100%)"></div><div class="ds12"><div><h2 class="ds13">Serving the world from Venice, Florida</h2><p style="font-size:16px;line-height:1.65;color:rgba(255,255,255,0.7);margin:0 0 46px">Connect with our team to explore aircraft options, request an all-inclusive quote, or discuss upcoming travel.</p><div style="display:flex;align-items:center;gap:9px;margin-bottom:9px"><span style="width:8px;height:8px;border-radius:50%;background:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18)"></span><span style="font-size:16px;font-weight:500;color:rgba(255,255,255,0.5)">Visit us</span></div><div style="font-size:20px;font-weight:600;color:#FFFFFF;line-height:1.5">400 Airport Ave E, Venice, FL 34285</div><div style="height:1px;background:rgba(255,255,255,0.14);margin:26px 0"></div><div style="display:grid;grid-template-columns:auto 1fr;gap:14px 44px;align-items:baseline"><div style="font-size:16px;color:rgba(255,255,255,0.5)">Phone</div><a class="dh14" href="tel:8005410381" style="font-size:19px;font-weight:600;color:#FFFFFF">(800) 541-0381</a><div style="font-size:16px;color:rgba(255,255,255,0.5)">Email</div><a class="dh14" href="mailto:[email protected]" style="font-size:17px;font-weight:600;color:#FFFFFF">[email protected]</a></div></div><div style="position:relative;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,0.12);box-shadow:0 40px 80px -30px rgba(0,0,0,0.7)"><div style="position:relative;height:420px;background:#EAF1F5"><div class="avc-map" data-map="office" style="position:absolute;inset:0;height:100%"></div></div><div style="display:flex;align-items:center;justify-content:flex-end;padding:18px 24px;background:rgba(255,255,255,0.05);border-top:1px solid rgba(255,255,255,0.12)"><span style="font-size:16px;letter-spacing:0.08em;color:rgba(255,255,255,0.5)">27.0716° N · 82.4403° W · KVNC</span></div></div></div><div class="ds15"><div data-avc-form="contact" style="position:relative;overflow:hidden;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:20px;box-shadow:0 40px 80px -34px rgba(0,0,0,0.5)"><div style="position:absolute;
1892left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(232,169,60,0) 0%, rgba(232,169,60,0.7) 46%, rgba(232,169,60,0.1) 100%)"></div><div class="ds16"><div><div style="font-size:26px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.15;margin-bottom:12px">Send us a message</div><p style="font-size:16px;line-height:1.7;color:#6B7280;margin:0 0 26px">A charter advisor will respond as soon as possible.</p><div style="height:1px;background:#EDE7DB;margin-bottom:22px"></div><div style="display:flex;flex-direction:column;gap:14px"><div style="display:flex;align-items:flex-start;gap:11px"><span style="width:7px;height:7px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);margin-top:7px;flex:none"></span><span style="font-size:16px;line-height:1.5;color:#6B7280">All messages are answered by a member of our in-house team.</span></div><div style="display:flex;align-items:flex-start;gap:11px"><span style="width:7px;height:7px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);margin-top:7px;flex:none"></span><span style="font-size:16px;line-height:1.5;color:#6B7280">Quotes are all-inclusive.</span></div><div style="display:flex;align-items:flex-start;gap:11px"><span style="width:7px;height:7px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);margin-top:7px;flex:none"></span><span style="font-size:16px;line-height:1.5;color:#6B7280">We can accommodate virtually any private travel request, to and from anywhere in the world.</span></div></div></div><div><div data-avc-fields style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;margin-bottom:22px"><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Name</label><input class="df17" data-f="name" type="text" placeholder="Your name" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif"></div><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Email</label><input class="df17" data-f="email" type="email" placeholder="[email protected]" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif"></div><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Phone</label><input class="df17" data-f="phone" type="tel" placeholder="555-123-5678" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif"></div></div><div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;margin-bottom:22px"><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Reason for contact</label><div style="position:relative"><select data-f="reason" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif;appearance:none;padding-right:40px"><option>Charter quote</option><option>Membership program</option><option>Medical or air ambulance</option><option>Government travel</option><option>Press or partnerships</option><option>Something else</option></select><span style="position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:#8A8577;display:flex"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:15px;height:15px"><path d="m6 9 6 6 6-6"></path></svg></span></div></div><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Best way to reach you</label><div style="position:relative"><select data-f="bestWay" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif;appearance:none;padding-right:40px"><option>Phone call</option><option>Text message</option><option>Email</option></select><span style="position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:#8A8577;display:flex"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:15px;height:15px"><path d="m6 9 6 6 6-6"></path></svg></span></div></div><div><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Travel window <span style="font-weight:400;color:#B8B3A6">(optional)</span></label><input class="df17" data-f="travelWindow" type="text" placeholder="e.g. late March" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif"></div></div><div style="margin-bottom:24px"><label style="display:block;font-size:16px;font-weight:600;color:#5B6472;margin-bottom:8px">Message</label><textarea class="df17" data-f="message" placeholder="Where youâre headed, how many passengers, and anything else we should knowâ¦" style="width:100%;padding:14px 15px;font-size:16px;background:#FFFFFF;border:1px solid #E4DDCC;border-radius:10px;color:#111827;outline:none;font-family:'Poppins',sans-serif;min-height:132px;resize:vertical;line-height:1.6"></textarea></div><div style="display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:24px;border-top:1px solid #EDE7DB;flex-wrap:wrap"><span class="ds18">We only use your details for this inquiry â no lists, no spam.</span><button class="dh19" type="button" data-action="submit" style="flex:none;white-space:nowrap;padding:16px 34px;background:#0B1626;color:#FFFFFF;box-shadow:0 12px 26px -12px rgba(11,22,38,0.5);border:none;font-size:16px;font-weight:600;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-family:'Poppins',sans-serif">Send Message <span aria-hidden="true">â</span></button></div></div></div></div></div></section></div><div style="position:relative"><section class="ds20" id="press" data-screen-label="Press"><div class="ds21"><div style="margin-bottom:44px"><div style="display:flex;align-items:center;gap:22px;flex-wrap:wrap"><h2 class="ds10">AvSky in the headlines</h2><span style="flex:1;min-width:60px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span><a class="dh22" href="mailto:[email protected]" style="flex:none;font-size:16px;font-weight:600;color:#B0781F;white-space:nowrap">Press inquiries →</a></div></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch"><a class="dh23" href="https://www.businessobserverfl.com/news/2026/feb/27/sarasota-county-charter-flight-firm-volume/" target="_blank" rel="noopener" style="display:grid;grid-template-columns:176px 1fr;position:relative;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;color:inherit;box-shadow:0 2px 6px rgba(11,22,38,0.04)"><div style="background:#FFFFFF;border-right:1px solid #EDE7DB;padding:12px;display:flex;align-items:center"><img width="720" height="1090" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='720'%20height='1090'%20viewBox='0%200%20720%201090'%3E%3C/svg%3E" alt="Bu
1892siness Observer front page â Tail Winds" style="display:block;width:100%;box-shadow:0 6px 18px rgba(11,22,38,0.12)" class="perfmatters-lazy" data-src="/wp-content/uploads/2026/08/press-business-observer.jpeg" /></div><div style="padding:28px 30px;display:flex;flex-direction:column;justify-content:center"><div style="font-size:20px;font-weight:700;color:#0B1626;letter-spacing:-0.012em;line-height:1.3">Tail Winds</div><p style="font-size:16px;line-height:1.65;color:#5B6472;margin:10px 0 0">A look at how AvSky Charters scaled without easing off the white-glove service its clients expect on every flight.</p><div style="margin-top:18px;padding-top:15px;border-top:1px solid #EDE7DB;display:flex;align-items:center;justify-content:space-between;gap:12px"><span style="font-size:16px;color:#9AA1AC">Cover story</span><span style="font-size:16px;font-weight:600;color:#B0781F">Read →</span></div></div></a><a class="dh23" href="https://www.floridatrend.com/nextgen/2025/10/07/chartering-success/" target="_blank" rel="noopener" style="display:grid;grid-template-columns:176px 1fr;position:relative;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;color:inherit;box-shadow:0 2px 6px rgba(11,22,38,0.04)"><div style="background:#FFFFFF;border-right:1px solid #EDE7DB;padding:12px;display:flex;align-items:center"><img width="1244" height="1674" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1244'%20height='1674'%20viewBox='0%200%201244%201674'%3E%3C/svg%3E" alt="NextGen feature â Chartering Success" style="display:block;width:100%;box-shadow:0 6px 18px rgba(11,22,38,0.12)" class="perfmatters-lazy" data-src="/wp-content/uploads/2026/08/press-nextgen.png" /></div><div style="padding:28px 30px;display:flex;flex-direction:column;justify-content:center"><div style="font-size:20px;font-weight:700;color:#0B1626;letter-spacing:-0.012em;line-height:1.3">Chartering Success</div><p style="font-size:16px;line-height:1.65;color:#5B6472;margin:10px 0 0">How founder Tyler Holt built a Florida charter operation around deep aircraft knowledge and hands-on client service.</p><div style="margin-top:18px;padding-top:15px;border-top:1px solid #EDE7DB;display:flex;align-items:center;justify-content:space-between;gap:12px"><span style="font-size:16px;color:#9AA1AC">Founder profile</span><span style="font-size:16px;font-weight:600;color:#B0781F">Read →</span></div></div></a><a class="dh23" href="https://www.forbesmiddleeast.com/industry/aviation/how-gulf-carriers-navigate-safety-and-revenue-amid-conflict" target="_blank" rel="noopener" style="display:grid;grid-template-columns:176px 1fr;position:relative;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;color:inherit;box-shadow:0 2px 6px rgba(11,22,38,0.04)"><div style="background:#FFFFFF;border-right:1px solid #EDE7DB;padding:24px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px"><span style="font-size:19px;font-weight:700;color:#0B1626;letter-spacing:-0.015em;line-height:1.2">Forbes Middle East</span><span style="width:34px;height:2px;background:rgba(200,132,31,0.7)"></span></div><div style="padding:28px 30px;display:flex;flex-direction:column;justify-content:center"><div style="font-size:20px;font-weight:700;color:#0B1626;letter-spacing:-0.012em;line-height:1.3">Middle East Crisis: How Gulf Carriers Navigate Safety And Revenue Amid Conflict</div><p style="font-size:16px;line-height:1.65;color:#5B6472;margin:10px 0 0">AvSky Charters CEO Cameron Cary provides expert aviation commentary to Forbes Middle East — on airline diversions, private aviation’s role during disruption and real-time threat assessment.</p><div style="margin-top:18px;padding-top:15px;border-top:1px solid #EDE7DB;display:flex;align-items:center;justify-content:space-between;gap:12px"><span style="font-size:16px;color:#9AA1AC">Expert commentary</span><span style="font-size:16px;font-weight:600;color:#B0781F">Read →</span></div></div></a><a class="dh23" href="https://www.youtube.com/watch?v=nvsJMjJOE0U" target="_blank" rel="noopener" style="display:grid;grid-template-columns:176px 1fr;position:relative;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;color:inherit;box-shadow:0 2px 6px rgba(11,22,38,0.04)"><div style="background:#FFFFFF;border-right:1px solid #EDE7DB;padding:24px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px"><span style="font-size:19px;font-weight:700;color:#0B1626;letter-spacing:-0.015em;line-height:1.2">The American Dream TV</span><span style="width:34px;height:2px;background:rgba(200,132,31,0.7)"></span></div>
1892<div style="padding:28px 30px;display:flex;flex-direction:column;justify-content:center"><div style="font-size:20px;font-weight:700;color:#0B1626;letter-spacing:-0.012em;line-height:1.3">AvSky Charters on National Television</div><p style="font-size:16px;line-height:1.65;color:#5B6472;margin:10px 0 0">The American Dream TV, the Emmy-nominated lifestyle series, features AvSky Charters and its personal approach to private travel.</p><div style="margin-top:18px;padding-top:15px;border-top:1px solid #EDE7DB;display:flex;align-items:center;justify-content:space-between;gap:12px"><span style="font-size:16px;color:#9AA1AC">Television feature</span><span style="font-size:16px;font-weight:600;color:#B0781F">Watch →</span></div></div></a></div><div style="display:block;margin-top:64px;background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden"><div style="padding:30px 26px 22px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:10px"><h3 class="ds24">Press & Media Mentions</h3><span style="flex:1;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0))"></span></div><p class="ds25">Feature stories, podcast interviews, and market commentary from the AvSky leadership team.</p></div><div style="border-top:1px solid #EDE7DB"><a class="ds26 dh27" href="https://podcasts.apple.com/us/podcast/from-gym-memberships-to-private-jets-a-charter/id1638589766?i=1000732800916" target="_blank" rel="noopener"><span style="font-size:16px;font-weight:700;color:#0B1626;letter-spacing:-0.005em">The Ultimate Jet Guide Podcast</span><span style="font-size:16px;line-height:1.6;color:#3C4656"><span style="font-weight:500;color:#0B1626">“A Charter Broker’s Journey”</span> <span style="color:#8A93A0">· Inside the launch and client vision of AvSky Charters</span></span><span style="font-size:16px;font-weight:600;color:#B0781F;text-align:right">→</span></a><a class="ds26 dh27" href="https://www.dailymail.com/travel/article-15907265/real-cost-owning-private-jet-super-wealthy.html" target="_blank" rel="noopener"><span style="font-size:16px;font-weight:700;color:#0B1626;letter-spacing:-0.005em">Daily Mail</span><span style="font-size:16px;line-height:1.6;color:#3C4656"><span style="font-weight:500;color:#0B1626">“How Much Does It Really Cost to Own a Private Jet?”</span> <span style="color:#8A93A0">· AvSky commentary on true private aircraft operating costs</span></span><span style="font-size:16px;font-weight:600;color:#B0781F;text-align:right">→</span></a><a class="ds26 dh27" href="https://www.avbuyer.com/articles/aircraft-ownership/buying-a-jet-with-damage-history-what-to-consider-114063" target="_blank" rel="noopener"><span style="font-size:16px;font-weight:700;color:#0B1626;letter-spacing:-0.005em">AvBuyer</span><span style="font-size:16px;line-height:1.6;color:#3C4656"><span style="font-weight:500;color:#0B1626">“Buying a Jet With Damage History? What to Consider”</span> <span style="color:#8A93A0">· Strategic acquisition advice and valuation guidance</span></span><span style="font-size:16px;font-weight:600;color:#B0781F;text-align:right">→</span></a><a class="ds26 dh27" href="https://podcasts.apple.com/us/podcast/the-entrepreneurial-jet-broker-stories-of-success/id1638589766?i=1000648749887" target="_blank" rel="noopener"><span style="font-size:16px;font-weight:700;color:#0B1626;letter-spacing:-0.005em">The Entrepreneurial Jet Broker</span><span style="font-size:16px;line-height:1.6;color:#3C4656"><span style="font-weight:500;color:#0B1626">“The AvSky Story”</span> <span style="color:#8A93A0">· An in-depth interview on building a modern aviation brand</span></span><span style="font-size:16px;font-weight:600;color:#B0781F;text-align:right">→</span></a><a class="ds28 dh27" href="https://podcasts.apple.com/us/podcast/episode-009-tyler-holt-avsky-jets-rocky-mountain-air-parts/id1585883281?i=1000541103474" target="_blank" rel="noopener"><span style="font-size:16px;font-weight:700;color:#0B1626;letter-spacing:-0.005em">Aviation Growth Podcast</span><span style="font-size:16px;line-height:1.6;color:#3C4656"><span style="font-weight:500;color:#0B1626">Episode 009: “Scaling in Private Aviation”</span> <span style="color:#8A93A0">· A conversation on the AvSky family of companies</span></span><span style="font-size:16px;font-weight:600;color:#B0781F;text-align:right">→</span></a></div></div></div></section></div><div style="position:relative"><section class="ds29" id="quote" data-screen-label="Request a Quote"><div class="ds30"><div><h2 class="ds31">Request a Quote</h2><p class="ds32">Tell us where youâre headed and our in-house charter team will plan and price the whole itinerary.</p><div class="ds33"><div><div style="display:flex;align-items:center;gap:9px;margin-bottom:20px"><span style="width:8px;height:8px;border-radius:50%;background:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18)"></span><span style="font-size:16px;font-weight:500;color:#8A8577">Every quote is all-inclusive</span></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:24px 40px"><div><div style="font-size:16px;font-weight:600;color:#0B1626;margin-bottom:3px">Fuel & surcharges</div><div style="font-size:16px;color:#6B7280">Never billed on top</div></div><div><div style="font-size:16px;font-weight:600;color:#0B1626;margin-bottom:3px">Crew & catering</div><div style="font-size:16px;color:#6B7280">Pilots & refreshments</div></div><div><div style="font-size:16px;font-weight:600;color:#0B1626;margin-bottom:3px">Landing & handling</div><div style="font-size:16px;color:#6B7280">FBO & ramp fees</div></div><div><div style="font-size:16px;font-weight:600;color:#0B1626;margin-bottom:3px">Taxes & segment fees</div><div style="font-size:16px;color:#6B7280">Federal excise included</div></div></div></div><div><div class="ds34"></div><div class="ds35"><div style="font-size:16px;color:#6B7280;margin-bottom:5px">Prefer to talk it through?</div><a class="dh36" href="tel:8005410381" style="font-size:24px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">(800) 541-0381</a><div style="margin-top:4px"><a class="dh36" href="mailto:[email protected]" style="font-size:16px;color:#6B7280">[email protected]</a></div></div></div></div></div><div class="qf-card" data-avc-quote="card" style="background:#FFFFFF;border:1px solid #E9E6DF;border-radius:18px;padding:34px 40px 38px;box-shadow:0 30px 60px -28px rgba(11,22,38,0.18)"></div></div></section></div><div style="position:relative"><section class="ds37" id="team" data-screen-label="Team"><div class="ds21"><div style="margin-bottom:44px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:14px"><span style="font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:#B0781F;white-space:nowrap">Florida-Based Advisors</span><span style="flex:1;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.4), transparent)"></span></div><h2 class="ds38">Meet the AvSky Charters Team</h2><p style="font-size:16px;line-height:1.6;color:#6B7280;margin:0;max-width:640px">Our in-house advisors plan and manage every itinerary, from first call to wheels down and beyond.</p></div><div class="ds39"><a class="avc-teamcard" href="/team/tyler-holt/" style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 6px rgba(11,22,38,0.04);color:inherit;text-decoration:none"><div style="aspect-ratio:4/5;overflow:hidden;background:#FFFFFF;border-bottom:1px solid #EDE7DB"><img width="534" height="800" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='534'%20height='800'%20viewBox='0%200%20534%20800'%3E%3C/svg%3E" alt="Tyler Holt" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/TylerHotl2025.png" /></div><div style="padding:22px 24px 26px"><div style="font-size:21px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">Tyler Holt</div><div style="font-size:16px;font-weight:600;color:#B0781F;margin:5px 0 12px">CEO & Founder, AvSky Corporation</div><p style="font-size:16px;color:#5B6472;line-height:1.65;margin:0">A visionary leader in private aviation with over a decade transforming how clients buy, sell and charter aircraft.</p></div></a><a class="avc-teamcard" href="/team/cameron-cary/" style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 6px rgba(11,22,38,0.04);color:inherit;text-decoration:none"><div style="aspect-ratio:4/5;overflow:hidden;background:#FFFFFF;border-bottom:1px solid #EDE7DB"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Cameron Cary" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Cameron-Cary.jpg" /></div><div style="padding:22px 24px 26px"><div style="font-size:21px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">Cameron Cary</div><div style="font-size:16px;font-weight:600;color:#B0781F;margin:5px 0 12px">CEO, AvSky Charters</div><p style="font-size:16px;color:#5B6472;line-height:1.65;margin:0">Works directly with clients, oversees trip planning and execution, and leads the companyâs business operations.</p></div></a><a class="avc-teamcard" href="/team/danielle-grannan/" style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 6px rgba(11,22,38,0.04);color:inherit;text-decoration:none"><div style="aspect-ratio:4/5;overflow:hidden;background:#FFFFFF;border-bottom:1px solid #EDE7DB"><img width="1360" height="1435" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1360'%20height='1435'%20viewBox='0%200%201360%201435'%3E%3C/svg%3E" alt="Danielle Grannan" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Danielle-Grannan-2026.png" /></div><div style="padding:22px 24px 26px"><div style="font-size:21px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">Danielle Grannan</div><div style="font-size:16px;font-weight:600;color:#B0781F;margin:5px 0 12px">Operations Manager</div><p style="font-size:16px;color:#5B6472;line-height:1.65;margin:0">With AvSky Charters since its inception, overseeing documentation and operational processes.</p></div></a><a class="avc-teamcard" href="/team/eric-wright/" style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 6px rgba(11,22,38,0.04);color:inherit;text-decoration:none"><div style="aspect-ratio:4/5;overflow:hidden;background:#FFFFFF;border-bottom:1px solid #EDE7DB"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Eric Wright" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Eric-Wright.jpg" /></div><div style="padding:22px 24px 26px"><div style="font-size:21px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">Eric Wright</div><div style="font-size:16px;font-weight:600;color:#B0781F;margin:5px 0 12px">Charter Executive</div><p style="font-size:16px;color:#5B6472;line-height:1.65;margin:0">Our most senior charter specialist, with deep experience planning and executing challenging, short
1892-notice trips.</p></div></a><a class="avc-teamcard" href="/team/jake-ramos/" style="background:#FBFAF7;border:1px solid #EDE7DB;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 6px rgba(11,22,38,0.04);color:inherit;text-decoration:none"><div style="aspect-ratio:4/5;overflow:hidden;background:#FFFFFF;border-bottom:1px solid #EDE7DB"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Jake Ramos" style="display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/IMG_2086.jpg" /></div><div style="padding:22px 24px 26px"><div style="font-size:21px;font-weight:700;color:#0B1626;letter-spacing:-0.01em">Jake Ramos</div><div style="font-size:16px;font-weight:600;color:#B0781F;margin:5px 0 12px">Charter Consultant</div><p style="font-size:16px;color:#5B6472;line-height:1.65;margin:0">Plans custom itineraries and leads outreach initiatives that connect us with like-minded clients and partners.</p></div></a><div style="position:relative;border-radius:18px;overflow:hidden;background:linear-gradient(158deg, #1B3050 0%, #101F35 42%, #0A1424 100%);border:1px solid rgba(255,255,255,0.1);box-shadow:0 34px 70px -30px rgba(11,22,38,0.62), 0 8px 22px -12px rgba(11,22,38,0.4)"><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 88% -6%, rgba(244,192,120,0.28), transparent 62%)"></div><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 90% 60% at 10% 108%, rgba(56,120,194,0.22), transparent 60%)"></div><div style="position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(244,192,120,0) 0%, rgba(244,192,120,0.85) 46%, rgba(244,192,120,0.15) 100%)"></div><div style="position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,0.08), inset 0 -60px 90px -60px rgba(0,0,0,0.8);border-radius:18px"></div><div style="position:relative;padding:36px 32px 34px;display:flex;flex-direction:column;height:100%;justify-content:center"><div style="font-size:24px;font-weight:700;color:#FFFFFF;letter-spacing:-0.02em;line-height:1.16;margin-bottom:12px">The Network Behind<br>Every Flight</div><p style="font-size:16px;line-height:1.65;color:rgba(255,255,255,0.66);margin:0 0 24px">Our advisors are backed by one of the industryâs largest networks of specialists.</p><div style="position:relative;padding-top:4px"><div style="position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(to right, rgba(255,255,255,0.22), rgba(255,255,255,0.05) 70%, rgba(255,255,255,0))"></div><div style="position:relative;display:grid;grid-template-columns:22px 1fr;gap:13px;padding:15px 0;align-items:start"><span style="position:relative;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.14), 0 0 12px rgba(232,169,60,0.55);margin-top:7px"></span><span><span style="display:block;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.005em;line-height:1.4">Safety-Vetted Operators</span><span style="display:block;font-size:16px;line-height:1.5;color:rgba(255,255,255,0.52);margin-top:3px">FAA-certified, strictly audited, and continuously monitored.</span></span><span style="position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(255,255,255,0.16), rgba(255,255,255,0.04) 70%, rgba(255,255,255,0))"></span></div><div style="position:relative;display:grid;grid-template-columns:22px 1fr;gap:13px;padding:15px 0;align-items:start"><span style="position:relative;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.14), 0 0 12px rgba(232,169,60,0.55);margin-top:7px"></span><span><span style="display:block;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.005em;line-height:1.4">Executive Security Teams</span><span style="display:block;font-size:16px;line-height:1.5;color:rgba(255,255,255,0.52);margin-top:3px">Discreet protection for VIP, high-profile, and sensitive travel.</span></span><span style="position:absolute;
1892left:0;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(255,255,255,0.16), rgba(255,255,255,0.04) 70%, rgba(255,255,255,0))"></span></div><div style="position:relative;display:grid;grid-template-columns:22px 1fr;gap:13px;padding:15px 0;align-items:start"><span style="position:relative;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.14), 0 0 12px rgba(232,169,60,0.55);margin-top:7px"></span><span><span style="display:block;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.005em;line-height:1.4">Critical Care Flight Crews</span><span style="display:block;font-size:16px;line-height:1.5;color:rgba(255,255,255,0.52);margin-top:3px">Specialized medical personnel equipped for urgent transport.</span></span><span style="position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(to right, rgba(255,255,255,0.16), rgba(255,255,255,0.04) 70%, rgba(255,255,255,0))"></span></div><div style="position:relative;display:grid;grid-template-columns:22px 1fr;gap:13px;padding:15px 0;align-items:start"><span style="position:relative;width:8px;height:8px;border-radius:50%;background:linear-gradient(180deg,#F4C078,#C8841F);box-shadow:0 0 0 4px rgba(232,169,60,0.14), 0 0 12px rgba(232,169,60,0.55);margin-top:7px"></span><span><span style="display:block;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.005em;line-height:1.4">Luxury Travel Concierges</span><span style="display:block;font-size:16px;line-height:1.5;color:rgba(255,255,255,0.52);margin-top:3px">Chauffeured transfers, private villa access, and bespoke destination planning.</span></span></div></div><div style="display:flex;align-items:center;gap:12px;margin-top:26px"><span style="flex:1;height:1px;background:linear-gradient(to right, rgba(244,192,120,0.5), rgba(244,192,120,0))"></span><span style="font-size:16px;font-weight:600;color:#F4C078;white-space:nowrap">Tailored to your itinerary</span></div></div></div></div></div></section></div></div><footer data-screen-label="Footer" style="position:relative;overflow:hidden;background:linear-gradient(158deg, #16283F 0%, #0F1D31 44%, #0A1420 100%);color:rgba(255,255,255,0.78);box-shadow:inset 0 1px 0 rgba(255,255,255,0.07)"><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 55% at 88% -10%, rgba(244,192,120,0.22), transparent 62%)"></div><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 8% 110%, rgba(56,120,194,0.18), transparent 60%)"></div><div style="position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(244,192,120,0) 0%, rgba(244,192,120,0.85) 46%, rgba(244,192,120,0.15) 100%)"></div><div class="avc-ftr-in" style="position:relative;padding:0 30px"><div style="display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:26px 0 28px"><div style="display:flex;align-items:center;gap:24px"><img width="449" height="216" decoding="async" src="https://avskycharters.com/wp-content/uploads/2026/06/avsky-logo.png" alt="AvSky Charters" style="width:132px;height:44px;object-fit:contain;object-position:left center;flex:none;display:block"><p style="font-size:16px;line-height:1.6;color:rgba(255,255,255,0.85);margin:0;max-width:640px;position:relative;top:5px">Charter flights from one of the world leaders in private aviation.</p></div><button class="dh4" type="button" data-action="open-modal" style="flex:none;display:inline-flex;align-items:center;gap:9px;padding:13px 26px;background:#E8A93C;color:#0B1626;border:none;border-radius:999px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:700;cursor:pointer">Request a Quote <span aria-hidden="true">→</span></button></div><div style="display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid rgba(255,255,255,0.1)"><div style="padding:36px 40px 40px 0"><h5 style="font-size:12px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:#E8A93C;margin:0 0 16px;display:inline-flex;align-items:center;gap:10px;white-space:nowrap"><span style="width:17px;height:1px;background:#E8A93C;display:inline-block"></span>Fly With Us</h5><a class="dh14" href="/charter-flight-quote/" data-action="open-modal" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55;cursor:pointer">Request a Quote</a><a class="dh14" href="/jet-card/" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Jet Card</a><a class="dh14" href="/govflights/" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Gov Charters</a><a class="dh14" href="/charter-flight-cost-calculator/" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Charter Cost Estimator</a></div><div style="padding:36px 40px 40px;border-left:1px solid rgba(255,255,255,0.1);border-right:1px solid rgba(255,255,255,0.1)"><h5 style="font-size:12px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:#E8A93C;margin:0 0 16px;display:inline-flex;align-items:center;gap:10px;white-space:nowrap"><span style="width:17px;height:1px;background:#E8A93C;display:inline-block"></span>About AvSky</h5><a class="dh14" href="/about-avsky-charters/" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Our Story</a><a class="dh14" href="https://www.avskyjets.com/" target="_blank" rel="noopener" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">AvSky Brokerage</a><a class="dh14" href="https://rockymtnairparts.com/" target="_blank" rel="noopener" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Rocky Mountain Air Parts</a><a class="dh14" href="/partnership-registration/" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">Affiliate Program</a></div><div style="padding:36px 0 40px 40px"><h5 style="font-size:12px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:#E8A93C;margin:0 0 16px;display:inline-flex;align-items:center;gap:10px;white-space:nowrap"><span style="width:17px;height:1px;background:#E8A93C;display:inline-block"></span>Talk To Us</h5><a class="dh14" href="tel:8005410381" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">(800) 541-0381</a><a class="dh14" href="mailto:[email protected]" style="display:block;font-size:16px;color:rgba(255,255,255,0.92);padding:4.5px 0;line-height:1.55">[email protected]</a><p style="display:block;font-size:16px;color:rgba(255,255,255,0.55);padding:4.5px 0 0;line-height:1.55;margin:0">400 Airport Ave E<br>Venice, FL 34285</p></div></div><div style="border-top:1px solid rgba(255,255,255,0.1);padding:18px 0 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap"><span style="font-size:16px;color:rgba(255,255,255,0.5)">© AvSky Charter Ventures, Inc. · All rights reserved · <a class="dh14" href="/privacy-policy/" style="color:rgba(255,255,255,0.5);text-decoration:underline;text-underline-offset:3px">Privacy Policy</a></span><div style="display:flex;gap:13px;align-items:center"><a class="dh40" href="https://www.facebook.com/people/AvSky-Private-Charters/61556948233456/" target="_blank" rel="noopener" aria-label="Facebook" style="width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;color:#FFFFFF;font-size:16px;font-weight:700">f</a><a class="dh40" href="https://x.com/iflyavsky" target="_blank" rel="noopener" aria-label="X" style="width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;color:#FFFFFF;font-size:16px;font-weight:700">â</a><a class="dh40" href="https://www.instagram.com/avskycharters/" target="_blank" rel="noopener" aria-label="Instagram" style="width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;color:#FFFFFF"><svg width="12" height="12" viewBox="0 0 16 16" fill="none" aria-hidden="true"><rect x="1.5" y="1.5" width="13" height="13" rx="4" stroke="currentColor" stroke-width="1.5"></rect><circle cx="8" cy="8" r="3" stroke="currentColor" stroke-width="1.5"></circle><circle cx="12.2" cy="3.8" r="1" fill="currentColor"></circle></svg></a><a class="dh40" href="https://www.linkedin.com/company/avsky-private-charters" target="_blank" rel="noopener" aria-label="LinkedIn" style="width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;color:#FFFFFF;font-size:16px;font-weight:700">in</a></div></div></div></footer></div><div class="avc-m"><header data-screen-label="Hero (Mobile)" style="background:radial-gradient(ellipse at 88% 0%, rgba(232,169,60,0.12), transparent 55%) #0B1626"><div style="padding:36px 20px 0"><h1 style="font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:#E8A93C;margin:0 0 14px;line-height:1.6">
1892Global On-Demand Private Jet Access</h1><h2 style="font-family:'Poppins',sans-serif;font-size:33px;font-weight:700;line-height:1.08;letter-spacing:-0.025em;color:#FFFFFF;margin:0 0 16px;text-wrap:pretty">We deliver exceptional travel experiences</h2><p style="font-size:15px;line-height:1.7;color:rgba(255,255,255,0.72);margin:0 0 24px;text-wrap:pretty">AvSky Charters provides customized private flights backed by the industryâs most attentive customer service team. Across the state or halfway around the world, AvSky is the only call youâll need to make.</p><div style="display:flex;flex-direction:column;gap:12px;margin-bottom:32px"><button class="mh1" type="button" data-action="open-modal" style="display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:52px;background:#E8A93C;color:#0B1626;border:none;font-family:'Poppins',sans-serif;font-size:16px;font-weight:700;border-radius:999px;cursor:pointer;box-shadow:0 14px 30px -10px rgba(232,169,60,0.4)">Request a Quote <span aria-hidden="true">â</span></button><a class="mh2" href="#team" data-action="scroll" data-target="team" style="display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;color:#FFFFFF;font-size:15px;font-weight:600;border:1px solid rgba(255,255,255,0.22);border-radius:999px">Meet the team</a></div></div><div style="position:relative"><img width="1742" height="1109" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1742'%20height='1109'%20viewBox='0%200%201742%201109'%3E%3C/svg%3E" alt="The AvSky Charters team" style="display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 35%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/AvSkyChartersTeamJan2026A.png" /><div style="position:absolute;bottom:14px;left:20px;pointer-events:none;background:rgba(11,22,38,0.72);backdrop-filter:blur(8px);border:1px solid rgba(232,169,60,0.4);color:#FFFFFF;padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:0.04em;white-space:nowrap">The AvSky Charters Team</div></div><div style="display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,0.12)"><div style="text-align:center;padding:22px 14px 24px"><div style="font-size:30px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:7px">8,000+</div><div style="font-size:13px;line-height:1.45;color:rgba(255,255,255,0.6)">Vetted operators,<br>screened for safety</div></div><div style="text-align:center;padding:22px 14px 24px;border-left:1px solid rgba(255,255,255,0.1)"><div style="font-size:30px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:7px">12,000+</div><div style="font-size:13px;line-height:1.45;color:rgba(255,255,255,0.6)">Aircraft positioned<br>worldwide</div></div><div style="text-align:center;padding:22px 14px 24px;border-top:1px solid rgba(255,255,255,0.1)"><div style="font-size:30px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:7px">Top 5</div><div style="font-size:13px;line-height:1.45;color:rgba(255,255,255,0.6)">U.S. brokerage<br>by sales volume</div></div><div style="text-align:center;padding:22px 14px 24px;border-top:1px solid rgba(255,255,255,0.1);border-left:1px solid rgba(255,255,255,0.1)"><div style="font-size:30px;font-weight:700;color:#FFFFFF;line-height:1;letter-spacing:-0.02em;margin-bottom:7px">24/7</div><div style="font-size:13px;line-height:1.45;color:rgba(255,255,255,0.6)">Florida-based,<br>not a call center</div></div></div></header><section data-screen-label="Our Story (Mobile)" style="background:#FFFFFF;padding:44px 0 48px"><div style="padding:0 20px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:10px"><span style="font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:#B0781F;white-space:nowrap">Our Story</span><span style="flex:1;min-width:40px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span></div><h2 style="font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.12;margin:0 0 22px;text-wrap:pretty">About AvSky Charters</h2></div><img width="2048" height="1365" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='2048'%20height='1365'%20viewBox='0%200%202048%201365'%3E%3C/svg%3E" alt="The AvSky Charters team on the ramp at Venice Municipal Airport" style="display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 50%;margin-bottom:26px" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/08/IMG_2114.jpg" /><div style="padding:0 20px"><p style="font-size:15px;line-height:1.75;color:#374151;margin:0 0 16px">Based in Venice, Florida, AvSky Charters was built on a straightforward premise: private travel should be completely personalized, transparent, and effortless.</p><p style="font-size:15px;line-height:1.75;color:#374151;margin:0 0 16px">Born out of AvSky Corporationâs established global leadership in aircraft sales, our charter team pairs institutional private aviation expertise with boutique, high-touch execution.</p><p style="font-size:15px;line-height:1.75;color:#374151;margin:0 0 16px">Led by CEO Cameron Cary, we provide on-demand charters across every aircraft class, backed by an industry-leading network of more than 8,000 highly-vetted operators.</p><p style="font-size:15px;line-height:1.75;color:#374151;margin:0 0 16px">Every trip is managed by a dedicated in-house charter advisor who learns your preferences, coordinates logistics from ground transport to customs, and remains on-call around the clock.</p><p style="font-size:15px;line-height:1.75;color:#374151;margin:0">With transparent pricing and uncompromised safety standards, we ensure you always fly on your schedule, in the right aircraft, and with total peace of mind.</p></div><div style="padding:0 20px;margin-top:36px"><div style="border-top:1px solid #E8E4DA;padding-top:26px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:8px"><span style="font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:#B0781F;white-space:nowrap">Our Specialties</span><span style="flex:1;min-width:40px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span></div><p style="font-size:15px;line-height:1.65;color:#5B6472;margin:0">Backed by a global network that includes more than 12,000 aircraft, we manage private travel for virtually any destination, timeline, or passenger count.</p><div style="margin-top:10px"><div style="padding:17px 0;border-bottom:1px solid #EFECE4"><div style="font-size:16px;font-weight:600;color:#0B1626;line-height:1.35">Bahamas & Caribbean Private Escapes</div><div style="font-size:14px;line-height:1.55;color:#6B7280;margin-top:4px">Seamless island-hopping, direct FBO ramp access, and customs coordination across the islands.</div></div><div style="padding:17px 0;border-bottom:1px solid #EFECE4"><div style="font-size:16px;font-weight:600;color:#0B1626;line-height:1.35">Urgent & Same-Day Executive Flights</div><div style="font-size:14px;line-height:1.55;color:#6B7280;margin-top:4px">Aircraft sourced, crewed, and ready to depart on short notice when business plans change.</div></div><div style="padding:17px 0;border-bottom:1px solid #EFECE4"><div style="font-size:16px;font-weight:600;color:#0B1626;line-height:1.35">Team, Athletic & Tour Group Travel</div><div style="font-size:14px;line-height:1.55;color:#6B7280;margin-top:4px">Custom logistics for sports teams, event staff, and production crews, including heavy luggage and equipment transport.</div></div><div style="padding:17px 0;border-bottom:1px solid #EFECE4"><div style="font-size:16px;font-weight:600;color:#0B1626;line-height:1.35">
1892Medical Transport & Air Ambulance</div><div style="font-size:14px;line-height:1.55;color:#6B7280;margin-top:4px">Critical patient transfers and specialized medical aircraft arranged 24/7 with zero delay.</div></div><div style="padding:17px 0 2px"><div style="font-size:16px;font-weight:600;color:#0B1626;line-height:1.35">Government & Official Travel</div><div style="font-size:14px;line-height:1.55;color:#6B7280;margin-top:4px">Vetted operators meeting strict safety, regulatory, and reporting standards for public-sector missions.</div></div></div></div></div></section><section id="contact" data-screen-label="Contact (Mobile)" style="position:relative;overflow:hidden;background:linear-gradient(158deg, #16283F 0%, #0F1D31 44%, #0A1420 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.07)"><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 45% at 88% -6%, rgba(244,192,120,0.2), transparent 62%)"></div><div style="position:absolute;left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(244,192,120,0) 0%, rgba(244,192,120,0.85) 46%, rgba(244,192,120,0.15) 100%)"></div><div style="position:relative;padding:44px 20px 0"><h2 style="font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#FFFFFF;letter-spacing:-0.02em;line-height:1.12;margin:0 0 14px;text-wrap:pretty">Serving the world from Venice, Florida</h2><p style="font-size:15px;line-height:1.7;color:rgba(255,255,255,0.7);margin:0 0 22px">Connect with our team to explore aircraft options, request an all-inclusive quote, or discuss upcoming travel.</p><div style="border-top:1px solid rgba(255,255,255,0.14)"><div style="padding:15px 0;border-bottom:1px solid rgba(255,255,255,0.14)"><div style="font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:rgba(244,191,94,0.95);margin-bottom:5px">Visit us</div><div style="font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.45">400 Airport Ave E, Venice, FL 34285</div></div><div style="padding:15px 0;border-bottom:1px solid rgba(255,255,255,0.14)"><div style="font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:rgba(244,191,94,0.95);margin-bottom:5px">Phone</div><a class="mh3" href="tel:8005410381" style="display:inline-block;font-size:18px;font-weight:600;color:#FFFFFF">(800) 541-0381</a></div><div style="padding:15px 0"><div style="font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:rgba(244,191,94,0.95);margin-bottom:5px">Email</div><a class="mh3" href="mailto:[email protected]" style="display:inline-block;font-size:16px;font-weight:600;color:#FFFFFF">[email protected]</a></div></div></div><div style="position:relative;margin-top:10px"><div style="position:relative;height:240px;background:#EAF1F5;border-top:1px solid rgba(255,255,255,0.14)"><div class="avc-map" data-map="office" style="position:absolute;inset:0;height:100%"></div></div><div style="display:flex;justify-content:center;padding:12px 16px;background:rgba(255,255,255,0.04);border-top:1px solid rgba(255,255,255,0.12);border-bottom:1px solid rgba(255,255,255,0.12)"><span style="font-size:12.5px;letter-spacing:0.08em;color:rgba(255,255,255,0.55)">27.0716° N · 82.4403° W · KVNC</span></div></div><div data-avc-form="contact" style="position:relative;padding:36px 20px 48px"><div style="font-size:21px;font-weight:700;color:#FFFFFF;letter-spacing:-0.015em;line-height:1.2;margin-bottom:6px">Send us a message</div><p style="font-size:14.5px;line-height:1.6;color:rgba(255,255,255,0.62);margin:0 0 22px">A charter advisor will respond as soon as possible.</p><div data-avc-fields style="display:flex;flex-direction:column;gap:16px"><div><label style="display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,0.72);margin-bottom:7px">Name</label><input class="mf4" data-f="name" type="text" placeholder="Your name" style="width:100%;padding:14px 15px;font-size:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#FFFFFF;outline:none;font-family:'Poppins',sans-serif"></div><div><label style="display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,0.72);margin-bottom:7px">Email</label><input class="mf4" data-f="email" type="email" placeholder="[email protected]" style="width:100%;padding:14px 15px;font-size:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#FFFFFF;outline:none;font-family:'Poppins',sans-serif"></div><div><label style="display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,0.72);margin-bottom:7px">Phone</label><input class="mf4" data-f="phone" type="tel" placeholder="555-123-5678" style="width:100%;padding:14px 15px;font-size:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#FFFFFF;outline:none;font-family:'Poppins',sans-serif"></div><div><label style="display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,0.72);margin-bottom:7px">Reason for contact</label><div style="position:relative"><select data-f="reason" style="width:100%;padding:14px 15px;font-size:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#FFFFFF;outline:none;font-family:'Poppins',sans-serif;appearance:none;padding-right:40px"><option>Charter quote</option><option>Membership program</option><option>Medical or air ambulance</option><option>Government travel</option><option>Press or partnerships</option><option>Something else</option></select><span style="position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:rgba(255,255,255,0.55);display:flex"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:15px;height:15px"><path d="m6 9 6 6 6-6"></path></svg></span></div></div><div><label style="display:block;font-size:13px;font-weight:600;color:rgba(255,255,255,0.72);margin-bottom:7px">Message</label><textarea class="mf4" data-f="message" placeholder="Where youâre headed, how many passengers, and anything else we should knowâ¦" style="width:100%;padding:14px 15px;font-size:16px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#FFFFFF;outline:none;font-family:'Poppins',sans-serif;min-height:110px;resize:vertical;line-height:1.6"></textarea></div><button class="mh5" type="button" data-action="submit" style="width:100%;height:52px;background:#E8A93C;color:#0B1626;border:none;font-size:16px;font-weight:700;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:'Poppins',sans-serif;box-shadow:0 12px 26px -10px rgba(232,169,60,0.4)">Send Message <span aria-hidden="true">â</span></button></div><p style="font-size:13px;line-height:1.5;color:rgba(255,255,255,0.45);margin:14px 0 0;text-align:center">Answered by our in-house team â no lists, no spam.</p></div></section><section id="team" data-screen-label="Team (Mobile)" style="background:#FFFFFF;border-top:1px solid #EDE7DB;padding:44px 0 0"><div style="padding:0 20px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:10px"><span style="font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:#B0781F;white-space:nowrap">The Team</span><span style="flex:1;min-width:40px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span></div><h2 style="font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.12;margin:0 0 12px;text-wrap:pretty">Meet the AvSky Charters Team</h2><p style="font-size:15px;line-height:1.65;color:#6B7280;margin:0 0 6px">Our in-house advisors plan and manage every itinerary, from first call to wheels down and beyond.</p></div><div style="margin-top:18px"><div style="display:grid;grid-template-columns:1fr 1fr;gap:0"><a class="avc-teamtile" href="/team/tyler-holt/" style="position:relative;aspect-ratio:1/1;overflow:hidden;background:#101F35;display:block;color:inherit;text-decoration:none"><img width="534" height="800" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='534'%20height='800'%20viewBox='0%200%20534%20800'%3E%3C/svg%3E" alt="Tyler Holt" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/TylerHotl2025.png" /><div style="position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,36,0) 34%, rgba(10,20,36,0.55) 68%, rgba(6,12,24,0.94) 100%)"></div><div style="position:absolute;
1892left:14px;right:14px;bottom:13px"><div style="width:22px;height:2px;background:#E8A93C;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.01em;line-height:1.2">Tyler Holt</div><div style="font-size:11px;color:rgba(255,255,255,0.72);margin-top:3px;line-height:1.45">CEO & Founder, AvSky Corporation</div></div></a><a class="avc-teamtile" href="/team/cameron-cary/" style="position:relative;aspect-ratio:1/1;overflow:hidden;background:#101F35;display:block;color:inherit;text-decoration:none"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Cameron Cary" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Cameron-Cary.jpg" /><div style="position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,36,0) 34%, rgba(10,20,36,0.55) 68%, rgba(6,12,24,0.94) 100%)"></div><div style="position:absolute;left:14px;right:14px;bottom:13px"><div style="width:22px;height:2px;background:#E8A93C;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.01em;line-height:1.2">Cameron Cary</div><div style="font-size:11px;color:rgba(255,255,255,0.72);margin-top:3px;line-height:1.45">CEO, AvSky Charters</div></div></a><a class="avc-teamtile" href="/team/danielle-grannan/" style="position:relative;aspect-ratio:1/1;overflow:hidden;background:#101F35;display:block;color:inherit;text-decoration:none"><img width="1360" height="1435" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1360'%20height='1435'%20viewBox='0%200%201360%201435'%3E%3C/svg%3E" alt="Danielle Grannan" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Danielle-Grannan-2026.png" /><div style="position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,36,0) 34%, rgba(10,20,36,0.55) 68%, rgba(6,12,24,0.94) 100%)"></div><div style="position:absolute;left:14px;right:14px;bottom:13px"><div style="width:22px;height:2px;background:#E8A93C;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.01em;line-height:1.2">Danielle Grannan</div><div style="font-size:11px;color:rgba(255,255,255,0.72);margin-top:3px;line-height:1.45">Operations Manager</div></div></a><a class="avc-teamtile" href="/team/eric-wright/" style="position:relative;aspect-ratio:1/1;overflow:hidden;background:#101F35;display:block;color:inherit;text-decoration:none"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Eric Wright" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/Eric-Wright.jpg" /><div style="position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,36,0) 34%, rgba(10,20,36,0.55) 68%, rgba(6,12,24,0.94) 100%)"></div><div style="position:absolute;left:14px;right:14px;bottom:13px"><div style="width:22px;height:2px;background:#E8A93C;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.01em;line-height:1.2">Eric Wright</div><div style="font-size:11px;color:rgba(255,255,255,0.72);margin-top:3px;line-height:1.45">Charter Executive</div></div></a><a class="avc-teamtile" href="/team/jake-ramos/" style="position:relative;aspect-ratio:1/1;overflow:hidden;background:#101F35;display:block;color:inherit;text-decoration:none"><img width="1365" height="2048" decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1365'%20height='2048'%20viewBox='0%200%201365%202048'%3E%3C/svg%3E" alt="Jake Ramos" style="position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%" class="perfmatters-lazy" data-src="https://avskycharters.com/wp-content/uploads/2026/01/IMG_2086.jpg" /><div style="position:absolute;inset:0;background:linear-gradient(180deg, rgba(10,20,36,0) 34%, rgba(10,20,36,0.55) 68%, rgba(6,12,24,0.94) 100%)"></div><div style="position:absolute;
1892left:14px;right:14px;bottom:13px"><div style="width:22px;height:2px;background:#E8A93C;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:16px;font-weight:600;color:#FFFFFF;letter-spacing:-0.01em;line-height:1.2">Jake Ramos</div><div style="font-size:11px;color:rgba(255,255,255,0.72);margin-top:3px;line-height:1.45">Charter Consultant</div></div></a><div style="position:relative;aspect-ratio:1/1;background:#FBF7EE;border-top:1px solid #EDE3CC;padding:18px 16px;display:flex;flex-direction:column;justify-content:flex-end"><div style="width:22px;height:2px;background:#B0781F;margin-bottom:8px"></div><div style="font-family:'Poppins',sans-serif;font-size:15px;font-weight:600;color:#0B1626;line-height:1.3">+ A dedicated worldwide network</div><div style="font-size:12px;line-height:1.6;color:#6B6350;margin-top:6px">Vetted operators, VIP security, air-medical crews, and concierges.</div></div></div></div></section><section id="press" data-screen-label="Press (Mobile)" style="background:#FFFFFF;padding:44px 20px 48px"><div style="display:flex;align-items:center;gap:14px;margin-bottom:10px"><span style="font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:#B0781F;white-space:nowrap">Press</span><span style="flex:1;min-width:40px;height:1px;background:linear-gradient(to right, rgba(200,132,31,0.55), rgba(200,132,31,0.08))"></span></div><h2 style="font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.12;margin:0 0 18px;text-wrap:pretty">AvSky in the headlines</h2><div style="border-top:1px solid #E8E4DA"><a class="mh6" href="https://www.businessobserverfl.com/news/2026/feb/27/sarasota-county-charter-flight-firm-volume/" target="_blank" rel="noopener" style="display:block;padding:20px 0;border-bottom:1px solid #EFECE4;color:inherit"><div style="font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:#B0781F;margin-bottom:7px">Business Observer · Cover story</div><div style="font-size:17px;font-weight:700;color:#0B1626;letter-spacing:-0.01em;line-height:1.3">Tail Winds</div><p style="font-size:14px;line-height:1.6;color:#5B6472;margin:6px 0 0">A look at how AvSky Charters scaled without easing off the white-glove service its clients expect on every flight.</p><div style="font-size:14px;font-weight:600;color:#B0781F;margin-top:10px">Read <span aria-hidden="true">â</span></div></a><a class="mh6" href="https://www.floridatrend.com/nextgen/2025/10/07/chartering-success/" target="_blank" rel="noopener" style="display:block;padding:20px 0;border-bottom:1px solid #EFECE4;color:inherit"><div style="font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:#B0781F;margin-bottom:7px">NextGen · Founder profile</div><div style="font-size:17px;font-weight:700;color:#0B1626;letter-spacing:-0.01em;line-height:1.3">Chartering Success</div><p style="font-size:14px;line-height:1.6;color:#5B6472;margin:6px 0 0">How founder Tyler Holt built a Florida charter operation around deep aircraft knowledge and hands-on client service.</p><div style="font-size:14px;font-weight:600;color:#B0781F;margin-top:10px">Read <span aria-hidden="true">â</span></div></a><a class="mh6" href="https://www.forbesmiddleeast.com/industry/aviation/how-gulf-carriers-navigate-safety-and-revenue-amid-conflict" target="_blank" rel="noopener" style="display:block;padding:20px 0;border-bottom:1px solid #EFECE4;color:inherit"><div style="font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:#B0781F;margin-bottom:7px">Forbes Middle East · Expert commentary</div><div style="font-size:17px;font-weight:700;color:#0B1626;letter-spacing:-0.01em;line-height:1.3">How Gulf Carriers Navigate Safety and Revenue Amid Conflict</div><p style="font-size:14px;line-height:1.6;color:#5B6472;margin:6px 0 0">CEO Cameron Cary provides expert aviation commentary on airline diversions and private aviationâs role during disruption.</p><div style="font-size:14px;font-weight:600;color:#B0781F;margin-top:10px">Read <span aria-hidden="true">â</span></div></a><a class="mh6" href="https://www.youtube.com/watch?v=nvsJMjJOE0U" target="_blank" rel="noopener" style="display:block;padding:20px 0;border-bottom:1px solid #EFECE4;color:inherit"><div style="font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:#B0781F;margin-bottom:7px">The American Dream TV · Television feature</div><div style="font-size:17px;font-weight:700;color:#0B1626;letter-spacing:-0.01em;line-height:1.3">AvSky Charters on National Television</div><p style="font-size:14px;line-height:1.6;color:#5B6472;margin:6px 0 0">The Emmy-nominated lifestyle series features AvSky Charters and its personal approach to private travel.</p><div style="font-size:14px;font-weight:600;color:#B0781F;margin-top:10px">Watch <span aria-hidden="true">â</span></div></a></div><div style="display:flex;justify-content:center;margin-top:22px"><a class="mh7" href="mailto:[email protected]" style="font-size:14.5px;font-weight:600;color:#B0781F;white-space:nowrap">Press inquiries <span aria-hidden="true">â</span></a></div></section><section id="quote" data-screen-label="Request a Quote (Mobile)" style="background:radial-gradient(ellipse at 84% 0%, rgba(232,169,60,0.07), transparent 55%) #FBFAF7;border-top:1px solid #EDE7DB;padding:44px 20px 48px"><h2 style="font-family:'Poppins',sans-serif;font-size:27px;font-weight:700;color:#0B1626;letter-spacing:-0.02em;line-height:1.12;margin:0 0 12px">Request a Quote</h2><p style="font-size:15px;line-height:1.7;color:#4B5563;margin:0 0 22px">Tell us where youâre headed and our in-house charter team will plan and price the whole itinerary.</p><button class="mh1" type="button" data-action="open-modal" style="width:100%;height:52px;background:#E8A93C;color:#0B1626;border:none;border-radius:999px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 12px 26px -10px rgba(232,169,60,0.4)">Request a Quote <span aria-hidden="true">â</span></button><div style="margin:14px 0 30px;text-align:center;font-size:14.5px;color:#6B7280">Or call <a class="mh8" href="tel:8005410381" style="font-weight:700;color:#0B1626">(800) 541-0381</a></div><div style="margin-top:16px;border:1px solid #ECE9E2;border-radius:14px;overflow:hidden"><div style="background:#FFFFFF;border-bottom:1px solid #ECE9E2;padding:13px 16px;display:flex;align-items:center;gap:9px"><span style="width:7px;height:7px;border-radius:50%;background:#E8A93C;box-shadow:0 0 0 4px rgba(232,169,60,0.18);flex:none"></span><span style="font-size:12px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:#B0781F">Every quote is all-inclusive</span></div><div style="display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ECE9E2"><div style="background:#FFFFFF;padding:15px 16px 16px"><div style="font-size:15.5px;font-weight:600;color:#0B1626;line-height:1.3">Fuel & surcharges</div><div style="font-size:13.5px;line-height:1.5;color:#6B7280;margin-top:3px">Never billed on top</div></div><div style="background:#FFFFFF;padding:15px 16px 16px"><div style="font-size:15.5px;font-weight:600;color:#0B1626;line-height:1.3">Crew & catering</div><div style="font-size:13.5px;line-height:1.5;color:#6B7280;margin-top:3px">Pilots & refreshments</div></div><div style="background:#FFFFFF;padding:15px 16px 16px"><div style="font-size:15.5px;font-weight:600;color:#0B1626;line-height:1.3">Landing & handling</div><div style="font-size:13.5px;line-height:1.5;color:#6B7280;margin-top:3px">FBO & ramp fees</div></div><div style="background:#FFFFFF;padding:15px 16px 16px"><div style="font-size:15.5px;font-weight:600;color:#0B1626;line-height:1.3">Taxes & segment fees</div><div style="font-size:13.5px;line-height:1.5;color:#6B7280;margin-top:3px">Federal excise included</div></div></div></div></section><footer data-screen-label="Footer (Mobile)" style="position:relative;overflow:hidden;background:linear-gradient(158deg, #16283F 0%, #0F1D31 44%, #0A1420 100%);color:rgba(255,255,255,0.78);box-shadow:inset 0 1px 0 rgba(255,255,255,0.07)"><div style="position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 45% at 88% -8%, rgba(244,192,120,0.2), transparent 62%)"></div><div style="position:absolute;
1892left:0;right:0;top:0;height:1px;pointer-events:none;background:linear-gradient(to right, rgba(244,192,120,0) 0%, rgba(244,192,120,0.85) 46%, rgba(244,192,120,0.15) 100%)"></div><div style="position:relative;padding:36px 20px 30px"><div style="font-size:12px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:#E8A93C;margin-bottom:12px">Talk To Us</div><h2 style="font-family:'Poppins',sans-serif;font-size:30px;font-weight:700;color:#FFFFFF;letter-spacing:-0.02em;line-height:1.1;margin:0 0 12px">Ready when you are.</h2><p style="font-size:15px;line-height:1.65;color:rgba(255,255,255,0.62);margin:0 0 22px;text-wrap:pretty">Charter flights from one of the world leaders in private aviation. Florida-based and on-call 24/7.</p><button class="mh1" type="button" data-action="open-modal" style="width:100%;height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#E8A93C;color:#0B1626;border:none;border-radius:14px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 10px 26px rgba(232,169,60,0.25)"><span aria-hidden="true">â</span> Request a Quote</button><a class="mh9" href="tel:8005410381" style="margin-top:12px;width:100%;height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:transparent;color:#FFFFFF;border:1px solid rgba(255,255,255,0.3);border-radius:14px;font-family:'Poppins',sans-serif;font-size:16px;font-weight:600"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="color:#E8A93C"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg> Call (800) 541-0381</a><div style="margin-top:26px;border-top:1px solid rgba(255,255,255,0.12)"><a class="mh3" href="/charter-flight-quote/" data-action="open-modal" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4;cursor:pointer">Request a Quote <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="/jet-card/" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Jet Card <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="/govflights/" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Gov Charters <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="/charter-flight-cost-calculator/" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Charter Cost Estimator <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="/about-avsky-charters/" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Our Story <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="https://www.avskyjets.com/" target="_blank" rel="noopener" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">AvSky Brokerage <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="https://rockymtnairparts.com/" target="_blank" rel="noopener" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Rocky Mountain Air Parts <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="mh3" href="/partnership-registration/" style="display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 2px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:16.5px;font-weight:600;color:#FFFFFF;line-height:1.4">Affiliate Program <svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;color:rgba(255,255,255,0.5)"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div><div style="position:relative;border-top:1px solid rgba(232,169,60,0.55);padding:18px 20px 26px;display:flex;align-items:center;justify-content:space-between;gap:14px"><img width="449" height="216" decoding="async" src="https://avskycharters.com/wp-content/uploads/2026/06/avsky-logo.png" alt="AvSky Charters" style="width:104px;
1892height:38px;object-fit:contain;object-position:left center;flex:none;display:block"><div style="text-align:right;min-width:0"><div style="display:inline-flex;align-items:flex-start;gap:6px;font-size:12.5px;color:rgba(255,255,255,0.75);line-height:1.5"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="flex:none;margin-top:3px"><path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 1 1 16 0z" stroke="currentColor" stroke-width="1.8"></path><circle cx="12" cy="10" r="3" stroke="currentColor" stroke-width="1.8"></circle></svg>400 Airport Ave E, Venice, FL 34285</div><div style="font-size:12px;color:rgba(255,255,255,0.5);margin-top:3px">© AvSky Charter Ventures, Inc. · All rights reserved</div><div><a class="mh3" href="/privacy-policy/" style="display:inline-block;padding:8px 0 2px;font-size:12px;color:rgba(255,255,255,0.6);text-decoration:underline;text-underline-offset:3px">Privacy Policy</a></div></div></div></footer></div><!-- âââ QUOTE MODAL SHEET (Dest 3.0 clone; shared by desktop + mobile) âââ --><div class="qm-backdrop" data-action="close-modal" aria-hidden="true"></div><div class="qm-sheet" id="avc-modal" role="dialog" aria-modal="true" aria-label="Request a quote" aria-hidden="true"><div class="qm-head"><div class="qm-handle"></div><div class="qm-topbar"><span class="qm-eyebrow">Request a quote</span><button type="button" class="qm-close" aria-label="Close" data-action="close-modal"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18M6 6l12 12"/></svg></button></div><h2 class="qm-title" id="avc-modal-title">Tell us about <em>your trip.</em></h2><p class="qm-sub" id="avc-modal-sub">Send a few details and weâll provide an all-inclusive quote.</p></div><div id="avc-modal-content"></div></div><!-- âââ NOTICE DIALOG (quote form: "we still need your trip details / contact info") âââ --><div class="qn-backdrop" data-action="notice-ok" aria-hidden="true"></div><div class="qn" id="avc-notice" role="alertdialog" aria-modal="true" aria-labelledby="avc-notice-title" aria-describedby="avc-notice-text" aria-hidden="true"><div class="qn-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg></div><h3 class="qn-title" id="avc-notice-title"></h3><p class="qn-text" id="avc-notice-text"></p><button type="button" class="qn-btn" data-action="notice-ok"></button></div><!-- âââ DATE PICKER SHEET (shared by every quote form) âââ --><div class="ds-backdrop" data-action="ds-close" aria-hidden="true"></div><div class="ds-sheet" id="avc-date-sheet" role="dialog" aria-modal="true" aria-label="Pick travel dates" aria-hidden="true"><div class="ds-head"><button type="button" class="ds-close" aria-label="Close" data-action="ds-close"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18M6 6l12 12"/></svg></button><span class="ds-title" id="avc-date-title">Pick your dates</span></div><div class="ds-tabs" id="avc-date-tabs"></div><div class="ds-cal-host" data-cal-host></div><div class="ds-foot"><button type="button" class="ds-clear" data-action="ds-clear">Clear</button><button type="button" class="ds-done" data-action="ds-done">Done</button></div></div></div>
1892<script id="avc-about-js">(function(){var b=atob("d2luZG93LkFWQ19DRkc9eyJ3b3JrZXIiOiJodHRwczovL2F2c2t5LW1pYW1pLWNhcmliYmVhbi5qaW1tYWxlYy53b3JrZXJzLmRldi9sZWFkIiwicGhvbmUiOiIoODAwKSA1NDEtMDM4MSIsInRlbCI6IisxODAwNTQxMDM4MSIsInBsYWNlc0tleSI6IkFJemFTeUI1QmdpZEpqcTlsdC1qbkwwaG9qRUs5RjZGZ3JhZVBvYyIsImdwUGFkIjowLCJzb3VyY2UiOiJzaXRlLWFib3V0IiwicGFnZSI6IkFib3V0IiwiZnJvbUxhYmVsIjoiRGVwYXJ0IGZyb20iLCJzbHVnIjoiYWJvdXQifTsvKiBBdlNreSBDb3JlIFBhZ2VzIOKAlCBzaGFyZWQgZW5naW5lIChBYm91dCAvIENvbnRhY3QgLyBNZW1iZXJzaGlwcyAvIFF1b3RlKS4KICAgUG9ydGVkIGZyb20gdGhlIERlc3RpbmF0aW9uIDMuMCB0aGVtZSAoZGVzdGluYXRpb24tMy5qcyk6IHF1b3RlLWZvcm0gZW5naW5lLAogICBzbGlkZS11cCBxdW90ZSBtb2RhbCwgZGF0ZS1waWNrZXIgc2hlZXQgKyBpbmxpbmUgY2FsZW5kYXIsIHN1Y2Nlc3Mgc2NyZWVucywKICAgR29vZ2xlIFBsYWNlcyBhdXRvc3VnZ2VzdCwgc2luZ2xlLURPTSBwcnVuZS4gTmV3IGhlcmU6IHN0YXRpYyBjb250YWN0IC8KICAgbWVtYmVyc2hpcCBmb3JtIGhhbmRsZXJzLCB0aGUgdHdvLXN0ZXAgcXVvdGUgZm9ybSwgTGVhZmxldCBvZmZpY2UgbWFwcy4KICAgQ29uZmlnIGFycml2ZXMgYXMgd2luZG93LkFWQ19DRkcgKGVtaXR0ZWQgYnkgYnVpbGQvYnVpbGQuanMpLgogICBFUzUsIGJsb2NrIGNvbW1lbnRzIG9ubHkg4oCUIHRoZSAubWluIGJ1aWxkIHN0cmlwcyBldmVyeSBuZXdsaW5lLiAqLwooZnVuY3Rpb24gKCkgewogICd1c2Ugc3RyaWN0JzsKICB2YXIgQ0ZHID0gd2luZG93LkFWQ19DRkcgfHwge307CiAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLXJvb3QnKTsKICBpZiAoIXJvb3QpIHsgcmV0dXJuOyB9CiAgdmFyIFdPUktFUiA9IENGRy53b3JrZXIgfHwgJ2h0dHBzOi8vYXZza3ktbWlhbWktY2FyaWJiZWFuLmppbW1hbGVjLndvcmtlcnMuZGV2L2xlYWQnOwogIHZhciBQSE9ORSA9IENGRy5waG9uZSB8fCAnKDgwMCkgNTQxLTAzODEnOwogIHZhciBURUwgPSBDRkcudGVsIHx8ICcrMTgwMDU0MTAzODEnOwogIHZhciBTUkMgPSBDRkcuc291cmNlIHx8ICdzaXRlLXBhZ2UnOwogIHZhciBQQUdFID0gQ0ZHLnBhZ2UgfHwgJyc7CiAgdmFyIEZST01fTEFCRUwgPSBDRkcuZnJvbUxhYmVsIHx8ICdMZWF2aW5nIGZyb20nOwogIHZhciBBRFNfTEFCRUxTID0gewogICAgcGhvbmVfY2xpY2s6ICdBVy0xNzMxODEzNzUzNy9ZUm8zQ0tyX3pxZ2NFTUdkOThGQScsCiAgICBlbWFpbF9jbGljazogJ0FXLTE3MzE4MTM3NTM3L1QtNDdDSnFSNXFnY0VNR2Q5OEZBJywKICAgIGZvcm1fc3VibWl0OiAnQVctMTczMTgxMzc1Mzcvd2VZQUNLamU1NmdjRU1HZDk4RkEnCiAgfTsKCiAgLyog4pSA4pSA4pSAIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovCiAgZnVuY3Rpb24gJChzLCByKSB7IHJldHVybiAociB8fCBkb2N1bWVudCkucXVlcnlTZWxlY3RvcihzKTsgfQogIGZ1bmN0aW9uICQkKHMsIHIpIHsgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKChyIHx8IGRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHMpKTsgfQogIGZ1bmN0aW9uIGVzYyhzKSB7CiAgICByZXR1cm4gU3RyaW5nKHMgPT0gbnVsbCA/ICcnIDogcykucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpLnJlcGxhY2UoLyIvZywgJyZxdW90OycpLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7CiAgfQogIGZ1bmN0aW9uIGJvbGRpZnkocykgeyByZXR1cm4gZXNjKHMpLnJlcGxhY2UoL1wqKFteKl0rKVwqL2csICc8Yj4kMTwvYj4nKTsgfQogIGZ1bmN0aW9uIGluTW9iaWxlVHJlZShlbCkgeyByZXR1cm4gISEoZWwgJiYgZWwuY2xvc2VzdCAmJiBlbC5jbG9zZXN0KCcuYXZjLW0nKSk7IH0KICBmdW5jdGlvbiBmaXJzdE5hbWUobikgeyByZXR1cm4gKG4gfHwgJycpLnRyaW0oKS5zcGxpdCgvXHMrLylbMF0gfHwgJyc7IH0KICBmdW5jdGlvbiBwb3N0TGVhZChwYXlsb2FkKSB7CiAgICBpZiAod2luZG93LkFWQ19URVNUKSB7CiAgICAgICh3aW5kb3cuQVZDX1RFU1RfTEVBRFMgPSB3aW5kb3cuQVZDX1RFU1RfTEVBRFMgfHwgW10pLnB1c2gocGF5bG9hZCk7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZS
1892hmdW5jdGlvbiAocmVzKSB7IHNldFRpbWVvdXQocmVzLCAzNTApOyB9KTsKICAgIH0KICAgIHJldHVybiBmZXRjaChXT1JLRVIsIHsgbWV0aG9kOiAnUE9TVCcsIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LCBib2R5OiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSB9KTsKICB9CiAgZnVuY3Rpb24gY2FwdHVyZVJlZmVycmFsKCkgewogICAgdHJ5IHsKICAgICAgdmFyIHNwID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTsKICAgICAgdmFyIHAgPSBzcC5nZXQoJ3JlZicpIHx8IHNwLmdldCgncmVmZXJyYWwnKSB8fCBzcC5nZXQoJ3ZpYScpOwogICAgICBpZiAocCkgeyByZXR1cm4gcDsgfQogICAgfSBjYXRjaCAoZSkgeyAvKiBvbGQgYnJvd3NlciAqLyB9CiAgICB0cnkgeyB2YXIgbHMgPSB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYWZmaWxpYXRlQ29kZScpOyBpZiAobHMpIHsgcmV0dXJuIGxzOyB9IH0gY2F0Y2ggKGUpIHsgLyogYmxvY2tlZCAqLyB9CiAgICB2YXIgcmVmID0gZG9jdW1lbnQucmVmZXJyZXIgfHwgJyc7CiAgICB2YXIgZ20gPSByZWYubWF0Y2goL1wvZ29cLyhbXi8/I10rKS9pKTsKICAgIGlmIChnbSkgeyByZXR1cm4gZ21bMV07IH0KICAgIHZhciBuYW1lcyA9IFsnYXZza3lfcmVmJywgJ19yZWYnLCAncmVmZXJyZXInXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIG0gPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKD86Xnw7XFxzKiknICsgbmFtZXNbaV0gKyAnPShbXjtdKyknKSk7CiAgICAgIGlmIChtKSB7IHJldHVybiBkZWNvZGVVUklDb21wb25lbnQobVsxXSk7IH0KICAgIH0KICAgIHJldHVybiAnJzsKICB9CiAgZnVuY3Rpb24gdHJhY2tFdmVudChuYW1lLCBwcm9wcykgewogICAgaWYgKHR5cGVvZiB3aW5kb3cucGxhdXNpYmxlID09PSAnZnVuY3Rpb24nKSB7IHRyeSB7IHdpbmRvdy5wbGF1c2libGUobmFtZSwgcHJvcHMgPyB7IHByb3BzOiBwcm9wcyB9IDogdW5kZWZpbmVkKTsgfSBjYXRjaCAoZSkgeyAvKiBzd2FsbG93ICovIH0gfQogICAgaWYgKHR5cGVvZiB3aW5kb3cuZ3RhZyA9PT0gJ2Z1bmN0aW9uJykgewogICAgICB0cnkgewogICAgICAgIHdpbmRvdy5ndGFnKCdldmVudCcsIG5hbWUsIHByb3BzIHx8IHt9KTsKICAgICAgICBpZiAoQURTX0xBQkVMU1tuYW1lXSkgeyB3aW5kb3cuZ3RhZygnZXZlbnQnLCAnY29udmVyc2lvbicsIHsgc2VuZF90bzogQURTX0xBQkVMU1tuYW1lXSB9KTsgfQogICAgICB9IGNhdGNoIChlKSB7IC8qIHN3YWxsb3cgKi8gfQogICAgfQogIH0KICB2YXIgSUNPTiA9IHsKICAgIHBsYW5lOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3LjggMTkuMiAxNiAxMWwzLjUtMy41YTIuMSAyLjEgMCAwIDAtMy0zTDEzIDggNC44IDYuMmExIDEgMCAwIDAtLjkgMS43bDYuMSAzLjYtMi4zIDIuMy0yLjQtLjVhMSAxIDAgMCAwLS45IDEuN2wzIDIuMyAyLjMgM2ExIDEgMCAwIDAgMS43LS45bC0uNS0yLjQgMi4zLTIuMyAzLjYgNi4xYTEgMSAwIDAgMCAxLjctLjlaIi8+PC9zdmc+JywKICAgIGNhbDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjUiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNiIgcng9IjIiLz48cGF0aCBkPSJNOCAzdjRNMTYgM3Y0TTMgMTFoMTgiLz48L3N2Zz4nLAogICAgY2FsTGluZTogJzxzdmcgY2xhc3M9ImQtaWMiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjIiLz48bGluZSB4MT0iMTYiIHkxPSIyIiB4Mj0iMTYiIHkyPSI2Ii8+PGxpbmUgeDE9IjgiIHkxPSIyIiB4Mj0iOCIgeTI9IjYiLz48bGluZSB4MT0iMyIgeTE9IjEwIiB4Mj0iMjEiIHkyPSIxMCIvPjwvc3ZnPicsCiAgICBjbG9jazogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48cGF0aCBkPSJNMTIgN3Y1bDMgMiIvPjwvc3ZnPicsCiAgICB1c2VyOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwIDIxdi0yYTQgNCAwIDAgMC00LTRIOGE0IDQgMCAwIDAtNCA0djIiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiLz48L3N2Zz4nLAogICAgcGhvbmU6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTYuOTJ2M2EyIDIgMCAwIDEtMi4xOCAyIDE5Ljc5IDE5Ljc5IDAgMCAxLTguNjMtMy4wNyAxOS41IDE5LjUgMCAwIDEtNi02IDE5Ljc5IDE5Ljc5IDAgMCAxLTMuMDctOC42N0EyIDIgMCAwIDEgNC4xMSAyaDNhMiAyIDAgMCAxIDIgMS43MiAxMi44NCAxMi44NCAwIDAgMCAuNyAyLjgxIDIgMiAwIDAgMS0uNDUgMi4xMUw4LjA5IDkuOTFhMTYgMTYgMCAwIDAgNiA2bDEuMjctMS4yN2EyIDIgMCAwIDEgMi4xMS0uNDUgMTIuODQgMTIuODQgMCAwIDAgMi44MS43QTIgMiAwIDAgMSAyMiAxNi45MloiLz48L3N2Zz4nLAogICAgbWFpbDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjIiIHk9IjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIg
1892cng9IjIiLz48cGF0aCBkPSJtMjIgNy0xMCA2TDIgNyIvPjwvc3ZnPicsCiAgICB4OiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTggNiA2IDE4TTYgNmwxMiAxMiIvPjwvc3ZnPicsCiAgICBwbHVzOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDV2MTRNNSAxMmgxNCIvPjwvc3ZnPicsCiAgICBjaGV2OiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTYgOWw2IDYgNi02Ii8+PC9zdmc+JywKICAgIHRhZzogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMC41OSAxMy40MSAxMy40MiAyMC41OGEyIDIgMCAwIDEtMi44MyAwTDIgMTJWMmgxMGw4LjU5IDguNTlhMiAyIDAgMCAxIDAgMi44MloiLz48Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iMS41Ii8+PC9zdmc+JywKICAgIGNoZWNrOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+JywKICAgIGNoZWNrVGhpbjogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNSAxMi41bDQuNSA0LjVMMTkgNy41Ii8+PC9zdmc+JywKICAgIGpldDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMSAxNnYtMmwtOC01VjMuNWExLjUgMS41IDAgMCAwLTMgMFY5bC04IDV2Mmw4LTIuNVYxOWwtMiAxLjVWMjJsMy41LTEgMy41IDF2LTEuNUwxMyAxOXYtNS41bDggMi41eiIvPjwvc3ZnPicKICB9OwogIGZ1bmN0aW9uIGFycm93UmlnaHQodykgewogICAgdyA9IHcgfHwgMTQ7CiAgICByZXR1cm4gJzxzdmcgd2lkdGg9IicgKyB3ICsgJyIgaGVpZ2h0PSInICsgdyArICciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDE0TTEzIDVsNyA3LTcgNyIvPjwvc3ZnPic7CiAgfQoKICAvKiDilIDilIDilIAgZGF0ZXMgKyBpbmxpbmUgY2FsZW5kYXIgKERlc3QgMy4wKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi8KICB2YXIgTU9OVEhfTkFNRVMgPSBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXTsKICB2YXIgRE9XID0gWydTJywgJ00nLCAnVCcsICdXJywgJ1QnLCAnRicsICdTJ107CiAgZnVuY3Rpb24gc3RhcnRPZkRheShkKSB7IHZhciB4ID0gbmV3IERhdGUoZCk7IHguc2V0SG91cnMoMCwgMCwgMCwgMCk7IHJldHVybiB4OyB9CiAgZnVuY3Rpb24gZm10U2hvcnQoZCkgeyBpZiAoIWQpIHsgcmV0dXJuICcnOyB9IHJldHVybiBNT05USF9OQU1FU1tkLmdldE1vbnRoKCldLnNsaWNlKDAsIDMpICsgJyAnICsgZC5nZXREYXRlKCk7IH0KICBmdW5jdGlvbiBmbXRMb25nKGQpIHsgcmV0dXJuIGQgPyBmbXRTaG9ydChkKSArICcsICcgKyBkLmdldEZ1bGxZZWFyKCkgOiAnJzsgfQogIGZ1bmN0aW9uIHBhcnNlSVNPKHMpIHsKICAgIGlmICghcyB8fCB0eXBlb2YgcyAhPT0gJ3N0cmluZycpIHsgcmV0dXJuIG51bGw7IH0KICAgIHZhciBwID0gcy5zcGxpdCgnLScpOwogICAgaWYgKHAubGVuZ3RoICE9PSAzKSB7IHJldHVybiBudWxsOyB9CiAgICB2YXIgZCA9IG5ldyBEYXRlKCtwWzBdLCArcFsxXSAtIDEsICtwWzJdKTsKICAgIHJldHVybiBpc05hTihkLmdldFRpbWUoKSkgPyBudWxsIDogZDsKICB9CiAgZnVuY3Rpb24gdG9JU08oZCkgewogICAgaWYgKCFkKSB7IHJldHVybiAnJzsgfQogICAgdmFyIG0gPSBTdHJpbmcoZC5nZXRNb250aCgpICsgMSksIGRkID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKTsKICAgIHJldHVybiBkLmdldEZ1bGxZZWFyKCkgKyAnLScgKyAobS5sZW5ndGggPCAyID8gJzAnICsgbSA6IG0pICsgJy0nICsgKGRkLmxlbmd0aCA8IDIgPyAnMCcgKyBkZCA6IGRkKTsKICB9CiAgZnVuY3Rpb24gc2FtZURheShhLCBiKSB7IHJldHVybiAhIShhICYmIGIgJiYgYS5nZXRGdWxsWWVhcigpID09PSBiLmdldEZ1bGxZZWFyKCkgJiYgYS5nZXRNb250aCgpID09PSBiLmdldE1vbnRoKCkgJiYgYS5nZXREYXRlKCkgPT09IGIuZ2V0RGF0ZSgpKTsgfQogIGZ1bmN0aW9uIGJldHdlZW4oZCwgYSwgYikgeyByZXR1cm4gISEoYSAmJiBiICYmIGQgPiBhICYmIGQgPCBiKTsgfQoKICBmdW5jdGlvbiBtb3VudENhbGVuZGFyKG1vdW50RWwsIG9wdHMpIHsKICAgIHZhciB0b2RheSA9IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7CiAgICB2YXIgbWluID0gb3B0cy5taW5EYXRlIHx8IHRvZGF5OwogICAgdmFyIGlzUmFuZ2UgPSBvcHRzLm1vZGUgPT09ICdyYW5nZSc7CiAgICB2YXIgdmFsdWUgPSBvcHRzLnZhbHVlIHx8IChpc1JhbmdlID8geyBzdGFydDogbnVsbCwgZW5kOiBudWxsIH0gOiBudWxsKTsKICAgIHZhciBpbml0aWFsID0gaXNSYW5nZSA/ICh2YWx1ZS
18925zdGFydCB8fCB0b2RheSkgOiAodmFsdWUgfHwgdG9kYXkpOwogICAgdmFyIHZpZXcgPSBuZXcgRGF0ZShpbml0aWFsLmdldEZ1bGxZZWFyKCksIGluaXRpYWwuZ2V0TW9udGgoKSwgMSk7CiAgICBmdW5jdGlvbiBzZXRWYWx1ZSh2KSB7IHZhbHVlID0gdjsgaWYgKG9wdHMub25DaGFuZ2UpIHsgb3B0cy5vbkNoYW5nZSh2KTsgfSByZW5kZXIoKTsgfQogICAgZnVuY3Rpb24gaGFuZGxlQ2xpY2soZCkgewogICAgICBpZiAoZCA8IG1pbikgeyByZXR1cm47IH0KICAgICAgaWYgKCFpc1JhbmdlKSB7IHNldFZhbHVlKGQpOyByZXR1cm47IH0KICAgICAgdmFyIHMgPSB2YWx1ZSAmJiB2YWx1ZS5zdGFydCwgZSA9IHZhbHVlICYmIHZhbHVlLmVuZDsKICAgICAgaWYgKHR5cGVvZiBvcHRzLmZvY3VzRW5kID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgaWYgKG9wdHMuZm9jdXNFbmQoKSkgewogICAgICAgICAgaWYgKHMgJiYgZCA8IHMpIHsgc2V0VmFsdWUoeyBzdGFydDogZCwgZW5kOiBudWxsIH0pOyByZXR1cm47IH0KICAgICAgICAgIHNldFZhbHVlKHsgc3RhcnQ6IHMsIGVuZDogZCB9KTsgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoZSAmJiBkID4gZSkgeyBzZXRWYWx1ZSh7IHN0YXJ0OiBkLCBlbmQ6IG51bGwgfSk7IHJldHVybjsgfQogICAgICAgIHNldFZhbHVlKHsgc3RhcnQ6IGQsIGVuZDogZSB9KTsgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICghcykgeyBzZXRWYWx1ZSh7IHN0YXJ0OiBkLCBlbmQ6IG51bGwgfSk7IHJldHVybjsgfQogICAgICBpZiAoIWUpIHsKICAgICAgICBpZiAoZCA8IHMpIHsgc2V0VmFsdWUoeyBzdGFydDogZCwgZW5kOiBudWxsIH0pOyB9CiAgICAgICAgZWxzZSBpZiAoc2FtZURheShkLCBzKSkgeyBzZXRWYWx1ZSh7IHN0YXJ0OiBkLCBlbmQ6IGQgfSk7IH0KICAgICAgICBlbHNlIHsgc2V0VmFsdWUoeyBzdGFydDogcywgZW5kOiBkIH0pOyB9CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChkIDwgcykgeyBzZXRWYWx1ZSh7IHN0YXJ0OiBkLCBlbmQ6IGUgfSk7IHJldHVybjsgfQogICAgICBpZiAoZCA+IGUpIHsgc2V0VmFsdWUoeyBzdGFydDogcywgZW5kOiBkIH0pOyByZXR1cm47IH0KICAgICAgaWYgKE1hdGguYWJzKGQgLSBzKSA8PSBNYXRoLmFicyhkIC0gZSkpIHsgc2V0VmFsdWUoeyBzdGFydDogZCwgZW5kOiBlIH0pOyB9IGVsc2UgeyBzZXRWYWx1ZSh7IHN0YXJ0OiBzLCBlbmQ6IGQgfSk7IH0KICAgIH0KICAgIGZ1bmN0aW9uIG5pZ2h0cygpIHsgaWYgKCFpc1JhbmdlIHx8ICF2YWx1ZSB8fCAhdmFsdWUuc3RhcnQgfHwgIXZhbHVlLmVuZCkgeyByZXR1cm4gbnVsbDsgfSByZXR1cm4gTWF0aC5yb3VuZCgodmFsdWUuZW5kIC0gdmFsdWUuc3RhcnQpIC8gODY0MDAwMDApOyB9CiAgICBmdW5jdGlvbiByZW5kZXIoKSB7CiAgICAgIHZhciBmaXJzdERvdyA9IHZpZXcuZ2V0RGF5KCk7CiAgICAgIHZhciBkYXlzSW4gPSBuZXcgRGF0ZSh2aWV3LmdldEZ1bGxZZWFyKCksIHZpZXcuZ2V0TW9udGgoKSArIDEsIDApLmdldERhdGUoKTsKICAgICAgdmFyIHByZXZEYXlzID0gbmV3IERhdGUodmlldy5nZXRGdWxsWWVhcigpLCB2aWV3LmdldE1vbnRoKCksIDApLmdldERhdGUoKTsKICAgICAgdmFyIGNlbGxzID0gW10sIGk7CiAgICAgIGZvciAoaSA9IDA7IGkgPCBmaXJzdERvdzsgaSsrKSB7IGNlbGxzLnB1c2goeyBkYXRlOiBuZXcgRGF0ZSh2aWV3LmdldEZ1bGxZZWFyKCksIHZpZXcuZ2V0TW9udGgoKSAtIDEsIHByZXZEYXlzIC0gZmlyc3REb3cgKyAxICsgaSksIG11dGVkOiB0cnVlIH0pOyB9CiAgICAgIGZvciAoaSA9IDE7IGkgPD0gZGF5c0luOyBpKyspIHsgY2VsbHMucHVzaCh7IGRhdGU6IG5ldyBEYXRlKHZpZXcuZ2V0RnVsbFllYXIoKSwgdmlldy5nZXRNb250aCgpLCBpKSwgbXV0ZWQ6IGZhbHNlIH0pOyB9CiAgICAgIHdoaWxlIChjZWxscy5sZW5ndGggPCA0MikgeyBjZWxscy5wdXNoKHsgZGF0ZTogbmV3IERhdGUodmlldy5nZXRGdWxsWWVhcigpLCB2aWV3LmdldE1vbnRoKCkgKyAxLCBjZWxscy5sZW5ndGggLSBkYXlzSW4gLSBmaXJzdERvdyArIDEpLCBtdXRlZDogdHJ1ZSB9KTsgfQogICAgICB2YXIgY2FuUHJldiA9IHZpZXcgPiBuZXcgRGF0ZShtaW4uZ2V0RnVsbFllYXIoKSwgbWluLmdldE1vbnRoKCksIDEpOwogICAgICB2YXIgcHJvbXB0SHRtbCA9ICcnOwogICAgICBpZiAoaXNSYW5nZSkgewogICAgICAgIGlmICghdmFsdWUuc3RhcnQpIHsgcHJvbXB0SHRtbCA9ICc8ZGl2IGNsYXNzPSJxbS1jYWwtcHJvbXB0Ij48c3BhbiBjbGFzcz0ic3RlcCI+U3RlcCAxIC8gMjwvc3Bhbj48c3BhbiBjbGFzcz0ibXNnIj5UYXAgeW91ciA8c3Ryb25nPmRlcGFydHVyZTwvc3Ryb25nPiBkYXRlPC9zcGFuPjwvZGl2Pic7IH0KICAgICAgICBlbHNlIGlmICghdmFsdWUuZW5kKSB7IHByb21wdEh0bWwgPSAnPGRpdiBjbGFzcz0icW0tY2FsLXByb21wdCI+PHNwYW4gY2xhc3M9InN0ZXAiPlN0ZXAgMiAvIDI8L3NwYW4+PHNwYW4gY2xhc3M9Im1zZyI+Tm93IHRhcCB5b3VyIDxzdHJvbmc+cmV0dXJuPC9zdHJvbmc+IGRhdGU8L3NwYW4+PC9kaXY+JzsgfQogICAgICB9IGVsc2UgaWYgKCF2YWx1ZSkgeyBwcm9tcHRIdG1sID0gJzxkaXYgY2xhc3M9InFtLWNhbC1wcm9tcHQiPjxzcGFuIGNsYXNzPSJzdGVwIj5QaWNrIGEgZGF0ZTwvc3Bhbj48c3BhbiBjbGFzcz0ibXNnIj5UYXAgYSBkYXkgYmVsb3c8L3NwYW4+PC9kaXY+JzsgfQogICAgICB2YXIgaHRtbCA9IHByb21wdEh0bWwgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxbS1jYWwtaGVhZCI+PGRpdiBjbGFzcz0icW0tY2FsLW1vbnRoIj4nICsgTU9OVEhfTkFNRVNbdmlldy5nZXRNb250aCgpXSArICc8c3BhbiBjbGFzcz0ieXIiPicgKyB2aWV3LmdldEZ1bGxZZWFyKCkgKyAnPC9zcGFuPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxbS1jYWwtbmF2Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1jYWwtcHJldiAnICsgKGNhblByZXYgPyAnJyA6ICdkaXNhYmxlZCcpICsgJyBhcmlhLWxhYmVsPSJQcmV2aW91cyBtb250aCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIvPjwvc3ZnPjwvYnV0dG9uPicgKwogICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1jYWwtbmV4dCBhcmlhLWxhYmVsPSJOZXh0IG1vbnRoIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im05IDE4IDYtNi02LTYiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0icW0tY2FsLWdyaWQiPic7CiAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsgaHRtbCArPSAnPGRpdiBjbGFzcz0icW0tY2FsLWRvdyI+JyArIERPV1tpXSArICc8L2Rpdj4nOyB9CiAgICAgIGNlbGxzLmZvckVhY2goZnVuY3Rpb24gKGMsIGlkeCkgewogICAgICAgI
1892HZhciBkaXNhYmxlZCA9IGMuZGF0ZSA8IG1pbiwgY2xzID0gJ3FtLWNhbC1kYXknOwogICAgICAgIGlmIChjLm11dGVkKSB7IGNscyArPSAnIG11dGVkJzsgfQogICAgICAgIGlmIChkaXNhYmxlZCkgeyBjbHMgKz0gJyBkaXNhYmxlZCc7IH0KICAgICAgICBpZiAoc2FtZURheShjLmRhdGUsIHRvZGF5KSkgeyBjbHMgKz0gJyB0b2RheSc7IH0KICAgICAgICBpZiAoaXNSYW5nZSkgewogICAgICAgICAgaWYgKHNhbWVEYXkoYy5kYXRlLCB2YWx1ZS5zdGFydCkpIHsgY2xzICs9ICcgc2VsZWN0ZWQgcmFuZ2Utc3RhcnQnOyB9CiAgICAgICAgICBpZiAoc2FtZURheShjLmRhdGUsIHZhbHVlLmVuZCkpIHsgY2xzICs9ICcgc2VsZWN0ZWQgcmFuZ2UtZW5kJzsgfQogICAgICAgICAgaWYgKGJldHdlZW4oYy5kYXRlLCB2YWx1ZS5zdGFydCwgdmFsdWUuZW5kKSkgeyBjbHMgKz0gJyBpbi1yYW5nZSc7IH0KICAgICAgICB9IGVsc2UgaWYgKHNhbWVEYXkoYy5kYXRlLCB2YWx1ZSkpIHsgY2xzICs9ICcgc2VsZWN0ZWQnOyB9CiAgICAgICAgaHRtbCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSInICsgY2xzICsgJyIgZGF0YS1jYWwtaWR4PSInICsgaWR4ICsgJyIgJyArIChkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJykgKyAnPjxzcGFuIGNsYXNzPSJudW0iPicgKyBjLmRhdGUuZ2V0RGF0ZSgpICsgJzwvc3Bhbj48L2J1dHRvbj4nOwogICAgICB9KTsKICAgICAgaHRtbCArPSAnPC9kaXY+JzsKICAgICAgdmFyIHN1bW1hcnk7CiAgICAgIGlmIChpc1JhbmdlKSB7CiAgICAgICAgdmFyIHMgPSB2YWx1ZSAmJiB2YWx1ZS5zdGFydCwgZSA9IHZhbHVlICYmIHZhbHVlLmVuZDsKICAgICAgICBpZiAoIXMpIHsgc3VtbWFyeSA9ICc8c3Bhbj5QaWNrIGEgZGVwYXJ0dXJlPC9zcGFuPic7IH0KICAgICAgICBlbHNlIGlmICghZSkgeyBzdW1tYXJ5ID0gJzxzcGFuPjxzdHJvbmc+JyArIGVzYyhmbXRTaG9ydChzKSkgKyAnPC9zdHJvbmc+IDxzcGFuIGNsYXNzPSJuaWdodHMiPuKGkiBwaWNrIGEgcmV0dXJuPC9zcGFuPjwvc3Bhbj4nOyB9CiAgICAgICAgZWxzZSB7IHZhciBuID0gbmlnaHRzKCk7IHN1bW1hcnkgPSAnPHNwYW4+PHN0cm9uZz4nICsgZXNjKGZtdFNob3J0KHMpKSArICcg4oaSICcgKyBlc2MoZm10U2hvcnQoZSkpICsgJzwvc3Ryb25nPiA8c3BhbiBjbGFzcz0ibmlnaHRzIj7CtyAnICsgbiArICcgJyArIChuID09PSAxID8gJ25pZ2h0JyA6ICduaWdodHMnKSArICc8L3NwYW4+PC9zcGFuPic7IH0KICAgICAgfSBlbHNlIHsgc3VtbWFyeSA9IHZhbHVlID8gJzxzcGFuPjxzdHJvbmc+JyArIGVzYyhmbXRTaG9ydCh2YWx1ZSkpICsgJzwvc3Ryb25nPjwvc3Bhbj4nIDogJzxzcGFuPlBpY2sgYSBkYXRlPC9zcGFuPic7IH0KICAgICAgdmFyIGRvbmVFbmFibGVkID0gaXNSYW5nZSA/ICEhKHZhbHVlICYmIHZhbHVlLnN0YXJ0ICYmIHZhbHVlLmVuZCkgOiAhIXZhbHVlOwogICAgICBodG1sICs9ICc8ZGl2IGNsYXNzPSJxbS1jYWwtZm9vdCI+PGRpdiBjbGFzcz0icW0tY2FsLXN1bW1hcnkiPicgKyBzdW1tYXJ5ICsgJzwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icW0tY2FsLWNsZWFyIiBkYXRhLWNhbC1jbGVhcj5DbGVhcjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icW0tY2FsLWRvbmUiIGRhdGEtY2FsLWRvbmUgJyArIChkb25lRW5hYmxlZCA/ICcnIDogJ2Rpc2FibGVkJykgKyAnPkRvbmU8L2J1dHRvbj48L2Rpdj4nOwogICAgICBtb3VudEVsLmlubmVySFRNTCA9IGh0bWw7CiAgICAgIHZhciBwcmV2ID0gJCgnW2RhdGEtY2FsLXByZX
1892ZdJywgbW91bnRFbCksIG5leHQgPSAkKCdbZGF0YS1jYWwtbmV4dF0nLCBtb3VudEVsKSwgY2xlYXIgPSAkKCdbZGF0YS1jYWwtY2xlYXJdJywgbW91bnRFbCksIGRvbmUgPSAkKCdbZGF0YS1jYWwtZG9uZV0nLCBtb3VudEVsKTsKICAgICAgaWYgKHByZXYpIHsgcHJldi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IGlmIChwcmV2LmRpc2FibGVkKSB7IHJldHVybjsgfSB2aWV3ID0gbmV3IERhdGUodmlldy5nZXRGdWxsWWVhcigpLCB2aWV3LmdldE1vbnRoKCkgLSAxLCAxKTsgcmVuZGVyKCk7IH0pOyB9CiAgICAgIGlmIChuZXh0KSB7IG5leHQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigpOyB2aWV3ID0gbmV3IERhdGUodmlldy5nZXRGdWxsWWVhcigpLCB2aWV3LmdldE1vbnRoKCkgKyAxLCAxKTsgcmVuZGVyKCk7IH0pOyB9CiAgICAgIGlmIChjbGVhcikgeyBjbGVhci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IGlmIChvcHRzLm9uQ2xlYXIpIHsgb3B0cy5vbkNsZWFyKCk7IH0gfSk7IH0KICAgICAgaWYgKGRvbmUpIHsgZG9uZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IGlmIChkb25lLmRpc2FibGVkKSB7IHJldHVybjsgfSBpZiAob3B0cy5vbkRvbmUpIHsgb3B0cy5vbkRvbmUoKTsgfSB9KTsgfQogICAgICAkJCgnW2RhdGEtY2FsLWlkeF0nLCBtb3VudEVsKS5mb3JFYWNoKGZ1bmN0aW9uIChidG4pIHsKICAgICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigpOyBoYW5kbGVDbGljayhjZWxsc1twYXJzZUludChidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWNhbC1pZHgnKSwgMTApXS5kYXRlKTsgfSk7CiAgICAgIH0pOwogICAgfQogICAgcmVuZGVyKCk7CiAgICByZXR1cm4geyB1cGRhdGU6IGZ1bmN0aW9uICh2KSB7IHZhbHVlID0gdjsgcmVuZGVyKCk7IH0gfTsKICB9CgogIC8qIOKUgOKUgOKUgCBkYXRlIHBpY2tlciBzaGVldCAoc2hhcmVkKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi8KICB2YXIgZHNTdGF0ZSA9IHsgb3BlbjogZmFsc2UsIG1vZGU6IG51bGwsIHZhbHVlOiBudWxsLCBmb2N1czogJ3N0YXJ0JywgY29uZmlnOiBudWxsLCBjYWw6IG51bGwgfTsKICB2YXIgbW9kYWxPcGVuID0gZmFsc2UsIG5vdGljZU9wZW4gPSBmYWxzZSwgbm90aWNlQ2IgPSBudWxsLCBub3RpY2VQcmV2ID0gbnVsbCwgbm90aWNlQXQgPSAwLCBub3RpY2VGb2N1c1QgPSAwLCBkc09wZW5lciA9IG51bGw7CiAgZnVuY3Rpb24gY29hcnNlKCkgeyByZXR1cm4gISEod2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoJyhob3Zlcjogbm9uZSkgYW5kIChwb2ludGVyOiBjb2Fyc2UpJykubWF0Y2hlcyk7IH0KICBmdW5jdGlvbiBzYWZlRm9jdXMoZWwpIHsgaWYgKCFlbCB8fCAhZWwuZm9jdXMpIHsgcmV0dXJuOyB9IHRyeSB7IGVsLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTsgfSBjYXRjaCAoZSkgeyBlbC5mb2N1cygpOyB9IH0KICBmdW5jdGlvbiBzZXRMb2NrKCkgewogICAgdmFyIG9uID0gbW9kYWxPcGVuIHx8IG5vdGljZU9wZW4gfHwgZHNTdGF0ZS5vcGVuOwogICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ2F2Yy1sb2NrZWQnLCBvbik7CiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2F2Yy1sb2NrZWQnLCBvbik7CiAgfQogIGZ1bmN0aW9uIGRzUmVuZGVyVGFicygpIHsKICAgIHZhciB0YWJzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLWRhdGUtdGFicycpOwogICAgaWYgKCF0YWJzRWwpIHsgcmV0dXJuOyB9CiAgICBpZiAoZHNTdGF0ZS5tb2RlICE9PSAncmFuZ2UnKSB7IHRhYnNFbC5pbm5lckhUTUwgPSAnJzsgdGFic0VsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHJldHVybjsgfQogICAgdGFic0VsLnN0eWxlLmRpc3BsYXkgPSAnJzsKICAgIHZhciB2ID0gZHNTdGF0ZS52YWx1ZSB8fCB7fSwgcyA9IHYuc3RhcnQsIGUgPSB2LmVuZDsKICAgIHZhciBzTGFiZWwgPSAoZHNTdGF0ZS5jb25maWcgJiYgZHNTdGF0ZS5jb25maWcuc3RhcnRMYWJlbCkgfHwgJ1N0YXJ0JywgZUxhYmVsID0gKGRzU3RhdGUuY29uZmlnICYmIGRzU3RhdGUuY29uZmlnLmVuZExhYmVsKSB8fCAnRW5kJzsKICAgIHZhciBzVmFsID0gcyA/IGZtdExvbmcocykgOiAnVGFwIHRvIHBpY2snLCBlVmFsID0gZSA/IGZtdExvbmcoZSkgOiAnVGFwIHRvIHBpY2snOwogICAgdGFic0VsLmlubmVySFRNTCA9CiAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImRzLXRhYicgKyAoZHNTdGF0ZS5mb2N1cyA9PT0gJ3N0YXJ0JyA/ICcgYWN0aXZlJyA6ICcnKSArICciIGRhdGEtZHMtZm9jdXM9InN0YXJ0Ij48c3BhbiBjbGFzcz0ibGJsIj4nICsgZXNjKHNMYWJlbCkgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWwnICsgKHMgPyAnJyA6ICcgcGxhY2Vob2xkZXInKSArICciPicgKyBlc2Moc1ZhbCkgKyAnPC9zcGFuPjwvYnV0dG9uPicgKwogICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJkcy10YWInICsgKGRzU3RhdGUuZm9jdXMgPT09ICdlbmQnID8gJyBhY3RpdmUnIDogJycpICsgJyIgZGF0YS1kcy1mb2N1cz0iZW5kIj48c3BhbiBjbGFzcz0ibGJsIj4nICsgZXNjKGVMYWJlbCkgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJ2YWwnICsgKGUgPyAnJyA6ICcgcGxhY2Vob2xkZXInKSArICciPicgKyBlc2MoZVZhbCkgKyAnPC9zcGFuPjwvYnV0dG9uPic7CiAgfQogIGZ1bmN0aW9uIGRzVXBkYXRlRG9uZSgpIHsKICAgIHZhciBzaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdmMtZGF0ZS1zaGVldCcpOwogICAgaWYgKCFzaGVldCkgeyByZXR1cm47IH0KICAgIHZhciBkb25lID0gc2hlZXQucXVlcnlTZWxlY3RvcignW2RhdGEtYWN0aW9uPSJkcy1kb25lIl0nKTsKICAgIGlmICghZG9uZSkgeyByZXR1cm47IH0KICAgIC8qIHJhbmdlIG1vZGU6IG9uZSBlbmQgaXMgZW5vdWdoIChvd25lcjogbmV2ZXIgZm9yY2UgYm90aCBkYXRlcykgKi8KICAgIGRvbmUuZGlzYWJsZWQgPSAhKGRzU3RhdGUubW9kZSA9PT0gJ3JhbmdlJyA/ICEhKGRzU3RhdGUudmFsdWUgJiYgKGRzU3RhdGUudmFsdWUuc3RhcnQgfHwgZHNTdGF0ZS52YWx1ZS
18925lbmQpKSA6ICEhZHNTdGF0ZS52YWx1ZSk7CiAgfQogIGZ1bmN0aW9uIG9wZW5EYXRlU2hlZXQob3B0cykgewogICAgdmFyIHNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2Yy1kYXRlLXNoZWV0Jyk7CiAgICB2YXIgYmQgPSAkKCcuYXZjIC5kcy1iYWNrZHJvcCcpOwogICAgdmFyIHRpdGxlRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLWRhdGUtdGl0bGUnKTsKICAgIGlmICghc2hlZXQpIHsgcmV0dXJuOyB9CiAgICB2YXIgaG9zdCA9IHNoZWV0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNhbC1ob3N0XScpOwogICAgaWYgKCFob3N0KSB7IHJldHVybjsgfQogICAgZHNTdGF0ZS5tb2RlID0gb3B0cy5tb2RlOwogICAgaWYgKG9wdHMubW9kZSA9PT0gJ3JhbmdlJykgewogICAgICBkc1N0YXRlLnZhbHVlID0geyBzdGFydDogKG9wdHMudmFsdWUgJiYgb3B0cy52YWx1ZS5zdGFydCkgfHwgbnVsbCwgZW5kOiAob3B0cy52YWx1ZSAmJiBvcHRzLnZhbHVlLmVuZCkgfHwgbnVsbCB9OwogICAgICBkc1N0YXRlLmZvY3VzID0gb3B0cy5pbml0aWFsRm9jdXMgfHwgKGRzU3RhdGUudmFsdWUuc3RhcnQgJiYgIWRzU3RhdGUudmFsdWUuZW5kID8gJ2VuZCcgOiAnc3RhcnQnKTsKICAgIH0gZWxzZSB7IGRzU3RhdGUudmFsdWUgPSBvcHRzLnZhbHVlIHx8IG51bGw7IGRzU3RhdGUuZm9jdXMgPSAnc3RhcnQnOyB9CiAgICBkc1N0YXRlLmNvbmZpZyA9IG9wdHM7CiAgICBpZiAodGl0bGVFbCkgeyB0aXRsZUVsLnRleHRDb250ZW50ID0gb3B0cy50aXRsZSB8fCAob3B0cy5tb2RlID09PSAncmFuZ2UnID8gJ1BpY2sgeW91ciBkYXRlcycgOiAnUGljayBhIGRhdGUnKTsgfQogICAgZHNSZW5kZXJUYWJzKCk7CiAgICBob3N0LmlubmVySFRNTCA9ICcnOwogICAgdmFyIG1vdW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBtb3VudC5jbGFzc05hbWUgPSAncW0tY2FsJzsKICAgIGhvc3QuYXBwZW5kQ2hpbGQobW91bnQpOwogICAgZHNTdGF0ZS5jYWwgPSBtb3VudENhbGVuZGFyKG1vdW50LCB7CiAgICAgIG1vZGU6IG9wdHMubW9kZSwgdmFsdWU6IGRzU3RhdGUudmFsdWUsCiAgICAgIGZvY3VzRW5kOiBmdW5jdGlvbiAoKSB7IHJldHVybiBkc1N0YXRlLmZvY3VzID09PSAnZW5kJzsgfSwKICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICh2KSB7CiAgICAgICAgZHNTdGF0ZS52YWx1ZSA9IHY7CiAgICAgICAgaWYgKG9wdHMubW9kZSA9PT0gJ3JhbmdlJyAmJiBkc1N0YXRlLmZvY3VzID09PSAnc3RhcnQnICYmIHYgJiYgdi5zdGFydCAmJiAhdi5lbmQpIHsgZHNTdGF0ZS5mb2N1cyA9ICdlbmQnOyB9CiAgICAgICAgZHNSZW5kZXJUYWJzKCk7IGRzVXBkYXRlRG9uZSgpOwogICAgICB9LAogICAgICBvbkNsZWFyOiBmdW5jdGlvbiAoKSB7fSwgb25Eb25lOiBmdW5jdGlvbiAoKSB7fQogICAgfSk7CiAgICBkc1VwZGF0ZURvbmUoKTsKICAgIGRzT3BlbmVyID0gKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IDogbnVsbDsKICAgIHNoZWV0LmNsYXNzTGlzdC5hZGQoJ29wZW4nKTsKICAgIGlmIChiZCkgeyBiZC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7IH0KICAgIHNoZWV0LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsKICAgIGRzU3RhdGUub3BlbiA9IHRydWU7CiAgICBzZXRMb2NrKCk7CiAgICBpZiAoIWNvYXJzZSgpKSB7IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBpZiAoZHNTdGF0ZS5vcGVuKSB7IHNhZmVGb2N1cyhzaGVldC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hY3Rpb249ImRzLWRvbmUiXScpKTsgfSB9LCAzMCk7IH0KICB9CiAgZnVuY3Rpb24gY2xvc2VEYXRlU2hlZXQoY29tbWl0KSB7CiAgICB2YXIgc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLWRhdGUtc2hlZXQnKTsKICAgIHZhciBiZCA9ICQoJy5hdmMgLmRzLWJhY2tkcm9wJyk7CiAgICBpZiAoIXNoZWV0KSB7IHJldHVybjsgfQogICAgdmFyIG9wID0gZHNPcGVuZXIsIGhvc3QgPSAob3AgJiYgb3AuY2xvc2VzdCkgPyBvcC5jbG9zZXN0KCdbZGF0YS1hdmMtcXVvdGVdLCAjYXZjLW1vZGFsLWNvbnRlbnQsIFtkYXRhLWF2Yy1mb3JtXScpIDogbnVsbDsKICAgIHZhciBrZXkgPSAob3AgJiYgb3AuZ2V0QXR0cmlidXRlKSA/IG9wLmdldEF0dHJpYnV0ZSgnZGF0YS1waWNrZXInKSA6IG51bGwsIGVkaXQgPSAob3AgJiYgb3AuZ2V0QXR0cmlidXRlKSA/IG9wLmdldEF0dHJpYnV0ZSgnZGF0YS1lZGl0JykgOiBudWxsOwogICAgZHNPcGVuZXIgPSBudWxsOwogICAgaWYgKGNvbW1pdCAmJiBkc1N0YXRlLmNvbmZpZyAmJiB0eXBlb2YgZHNTdGF0ZS5jb25maWcub25Db21taXQgPT09ICdmdW5jdGlvbicpIHsgZHNTdGF0ZS5jb25maWcub25Db21taXQoZHNTdGF0ZS52YWx1ZSk7IH0KICAgIHNoZWV0LmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKTsKICAgIGlmIChiZCkgeyBiZC5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7IH0KICAgIHNoZWV0LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpOwogICAgZHNTdGF0ZS5vcGVuID0gZmFsc2U7IGRzU3RhdGUuY29uZmlnID0gbnVsbDsgZHNTdGF0ZS5jYWwgPSBudWxsOwogICAgc2V0TG9jaygpOwogICAgLyogdGhlIGNvbW1pdCByZS1yZW5kZXJlZCB0aGUgZm9ybTogaGFuZCBmb2N1cyBiYWNrIHRvIHRoZSAobmV3KSBkYXRlIGNlbGwgdGhhdCBvcGVuZWQgdGhlIHNoZWV0ICovCiAgICB2YXIgYmFjayA9IChvcCAmJiBkb2N1bWVudC5jb250YWlucyhvcCkpID8gb3AgOiAoaG9zdCAmJiBrZXkgPyBob3N0LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXBpY2tlcj0iJyArIGtleSArICciXScgKyAoZWRpdCA/ICdbZGF0YS1lZGl0PSInICsgZWRpdCArICciXScgOiAnJykpIDogbnVsbCk7CiAgICBpZiAoYmFjayAmJiAhY29hcnNlKCkpIHsgc2FmZUZvY3VzKGJhY2spOyB9CiAgfQoKICAvKiDilIDilIDilIAgc3VjY2VzcyBzY3JlZW5zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLwogIGZ1bmN0aW9uIGNhbGxMaW5lKHRleHQpIHsKICAgIHJldHVybiAnPGRpdiBjbGFzcz0iZnN4LWNhbGwiPjxzcGFuIGNsYXNzPSJpYyI+JyArIElDT04ucGhvbmUgKyAnPC9zcGFuPjxzcGFuPicgKyBlc2ModGV4dCB8fCAnTmVlZCB1cyBub3c/JykgKyAnIDxhIGhyZWY9InRlbDonICsgZXNjKFRFTCkgKyAnIiBkYXRhLXRyYWNrLWV2ZW50PSJxdW90ZV9zdWNjZXNzX2NhbGxfY2xpY2siPicgKyBlc2MoUEhPTkUpICsgJzwvYT48L3NwYW4+PC9kaXY+JzsKICB9CiAgZnVuY3Rpb24gc3VtUm93cyhyb3dzKSB7CiAgICB2Y
1892XIgaCA9ICc8ZGl2IGNsYXNzPSJmc3gtc3VtIj4nOwogICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IGlmIChyLnYpIHsgaCArPSAnPGRpdiBjbGFzcz0iZnN4LXN1bS1yb3ciPjxzcGFuIGNsYXNzPSJmc3gtc3VtLWsiPicgKyBlc2Moci5rKSArICc8L3NwYW4+PHNwYW4gY2xhc3M9ImZzeC1zdW0tdiI+JyArIGVzYyhyLnYpICsgJzwvc3Bhbj48L2Rpdj4nOyB9IH0pOwogICAgcmV0dXJuIGggKyAnPC9kaXY+JzsKICB9CiAgZnVuY3Rpb24gc3RlcHNIdG1sKHN0ZXBzKSB7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImZzeC1uZXh0Ij4nICsgc3RlcHMubWFwKGZ1bmN0aW9uICh0LCBpKSB7IHJldHVybiAnPGRpdiBjbGFzcz0iZnN4LXN0ZXAiPjxzcGFuIGNsYXNzPSJuIj4nICsgKGkgKyAxKSArICc8L3NwYW4+PHNwYW4gY2xhc3M9InQiPicgKyBib2xkaWZ5KHQpICsgJzwvc3Bhbj48L2Rpdj4nOyB9KS5qb2luKCcnKSArICc8L2Rpdj4nOwogIH0KICAvKiBkZXNrdG9wIHJlY2VpcHQgY2FyZCAoRGVzdCAzLjAgLmZzeCkgKi8KICBmdW5jdGlvbiBzdWNjZXNzRGVza3RvcChvKSB7CiAgICBpZiAoby53aWRlKSB7CiAgICAgIC8qIGluLXBsYWNlIHN1Y2Nlc3MgZm9yIHRoZSBzdGF0aWMgZm9ybXM6IGxhbmRzIGluIHRoZSBmb3JtJ3Mgb3duIGNvbHVtbiwgbGFuZHNjYXBlIHdoZW4gdGhlcmUncyByb29tICovCiAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0iZnN4IGZzeC13aWRlJyArIChvLmRhcmsgPyAnIGRhcmsnIDogJycpICsgJyI+PGRpdiBjbGFzcz0iZnN4LWwiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmc3gtbWFyayI+PHNwYW4gY2xhc3M9InJpbmciPjwvc3Bhbj48c3BhbiBjbGFzcz0icmluZzIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlzYyI+JyArIElDT04uY2hlY2sgKyAnPC9zcGFuPjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJmc3gtZXllYnJvdyI+JyArIGVzYyhvLmV5ZWJyb3cpICsgJzwvZGl2PjxoMz4nICsgZXNjKG8uaGVhZGluZykgKyAnPC9oMz48cCBjbGFzcz0iZnN4LXN1YiI+JyArIGVzYyhvLnN1YikgKyAnPC9wPicgKyAoby5zdGVwc0xlZnQgJiYgby5zdGVwcyA/IHN0ZXBzSHRtbChvLnN0ZXBzKSA6ICcnKSArIGNhbGxMaW5lKG8uY2FsbCkgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9ImZzeC1yIj4nICsgKG8ucmVjZWlwdCB8fCAnJykgKyAoby5yb3dzID8gc3VtUm93cyhvLnJvd3MpIDogJycpICsgKCFvLnN0ZXBzTGVmdCAmJiBvLnN0ZXBzID8gc3RlcHNIdG1sKG8uc3RlcH
1892MpIDogJycpICsgJzwvZGl2PjwvZGl2Pic7CiAgICB9CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImZzeCcgKyAoby5kYXJrID8gJyBkYXJrJyA6ICcnKSArICciPicgKwogICAgICAnPGRpdiBjbGFzcz0iZnN4LW1hcmsiPjxzcGFuIGNsYXNzPSJyaW5nIj48L3NwYW4+PHNwYW4gY2xhc3M9InJpbmcyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImRpc2MiPicgKyBJQ09OLmNoZWNrICsgJzwvc3Bhbj48L2Rpdj4nICsKICAgICAgJzxkaXYgY2xhc3M9ImZzeC1leWVicm93Ij4nICsgZXNjKG8uZXllYnJvdykgKyAnPC9kaXY+JyArCiAgICAgICc8aDM+JyArIGVzYyhvLmhlYWRpbmcpICsgJzwvaDM+JyArCiAgICAgICc8cCBjbGFzcz0iZnN4LXN1YiI+JyArIGVzYyhvLnN1YikgKyAnPC9wPicgKwogICAgICAoby5yZWNlaXB0IHx8ICcnKSArIChvLnJvd3MgPyBzdW1Sb3dzKG8ucm93cykgOiAnJykgKwogICAgICAoby5zdGVwcyA/IHN0ZXBzSHRtbChvLnN0ZXBzKSA6ICcnKSArCiAgICAgIGNhbGxMaW5lKG8uY2FsbCkgKyAnPC9kaXY+JzsKICB9CiAgLyogbW9iaWxlIGlubGluZSAoRGVzdCAzLjAgLm0tc3VjY2VzcyArIHN1bW1hcnkpICovCiAgZnVuY3Rpb24gc3VjY2Vzc01vYmlsZShvKSB7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9Im0tc3VjY2VzcycgKyAoby5kYXJrID8gJyBkYXJrJyA6ICcnKSArICciPicgKwogICAgICAnPGRpdiBjbGFzcz0ibS1zdWNjZXNzLW1hcmsiPjxkaXYgY2xhc3M9InJpbmciPjwvZGl2PjxkaXYgY2xhc3M9ImRpc2MiPicgKyBJQ09OLmNoZWNrVGhpbiArICc8L2Rpdj48L2Rpdj4nICsKICAgICAgJzxoMyBjbGFzcz0ibS1zdWNjZXNzLWgiPicgKyBlc2Moby5oZWFkaW5nKSArICc8L2gzPicgKwogICAgICAnPHAgY2xhc3M9Im0tc3VjY2Vzcy1zdWIiPicgKyBlc2Moby5zdWIpICsgJzwvcD4nICsKICAgICAgKG8ucm93cyA/IHN1bVJvd3Moby5yb3dzKSA6ICcnKSArCiAgICAgIGNhbGxMaW5lKG8uY2FsbCkgKyAnPC9kaXY+JzsKICB9CiAgZnVuY3Rpb24gY29kZUZvcih0eHQsIGZiKSB7CiAgICBpZiAoIXR4dCkgeyByZXR1cm4gZmI7IH0KICAgIHZhciBtID0gdHh0Lm1hdGNoKC9cKChbQS1aYS16XXszfSlcKS8pOwogICAgaWYgKG0pIHsgcmV0dXJuIG1bMV0udG9VcHBlckNhc2UoKTsgfQogICAgdmFyIGxldHRlcnMgPSB0eHQucmVwbGFjZSgvW15BLVphLXpdL2csICcnKTsKICAgIHJldHVybiAobGV0dGVycy5zbGljZSgwLCAzKSB8fCBmYikudG9VcHBlckNhc2UoKTsKICB9CiAgZnVuY3Rpb24gcGxhY2VGb3IodHh0LCBmYikgeyByZXR1cm4gdHh0ID8gdHh0LnJlcGxhY2UoL1xzKlwoW0EtWmEtel17M31cKVxzKi8sICcnKS50cmltKCkgOiBmYjsgfQogIGZ1bmN0aW9uIHJvdXRlUmVjZWlwdChzdCkgewogICAgdmFyIGZyb21UeHQsIHRvVHh0OwogICAgaWYgKHN0LnRhYiA9PT0gJ211bHRpJykgeyB2YXIgZiA9IHN0LmxlZ3NbMF0gfHwge30sIGwgPSBzdC5sZWdzW3N0LmxlZ3MubGVuZ3RoIC0gMV0gfHwge307IGZyb21UeHQgPSBmLmZyb207IHRvVHh0ID0gbC50bzsgfQogICAgZWxzZSB7IGZyb21UeHQgPSBzdC5mcm9tOyB0b1R4dCA9IHN0LnRvOyB9CiAgICB2YXIgdHJpcExhYmVsID0gc3QudGFiID09PSAnb25ld2F5JyA/ICdPbmUgd2F5JyA6IChzdC50YWIgPT09ICdtdWx0aScgPyAnTXVsdGktY2l0eScgOiAnUm91bmQgdHJpcCcpOwogICAgdmFyIGRlcEQgPSBwYXJzZUlTTyhzdC5kZXBhcnQpLCByZXREID0gcGFyc2VJU08oc3QucmV0KSwgZGF0ZUxhYmVsOwogICAgaWYgKHN0LnRhYiA9PT0gJ211bHRpJykgeyBkYXRlTGFiZWwgPSBzdC5sZWdzLmxlbmd0aCArICcgbGVncyc7IH0KICAgIGVsc2UgaWYgKHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcpIHsgZGF0ZUxhYmVsID0gKCFkZXBEICYmICFyZXREKSA/ICdGbGV4aWJsZScgOiAoKGRlcEQgPyBmbXRTaG9ydChkZXBEKSA6ICdUQkQnKSArICcg4oCTICcgKyAocmV0RCA/IGZtdFNob3J0KHJldEQpIDogJ1RCRCcpKTsgfQogICAgZWxzZSB7IGRhdGVMYWJlbCA9IGRlcEQgPyBmbXRMb25nKGRlcEQpIDogJ0ZsZXhpYmxlJzsgfQogICAgdmFyIHBheCA9IHBhcnNlSW50KHN0LnBheCwgMTApIHx8IDA7CiAgICB2YXIgcGF4TGFiZWwgPSBwYXggPyBwYXggKyAocGF4ID09PSAxID8gJyBndWVzdCcgOiAnIGd1ZXN0cycpIDogJ1RCRCc7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImZzeC1yZWNlaXB0Ij48ZGl2IGNsYXNzPSJmc3gtcm91dGUiPicgKwogICAgICAnPGRpdiBjbGFzcz0iZnN4LXBvcnQiPjxkaXYgY2xhc3M9ImNvZGUiPicgKyBlc2MoY29kZUZvcihmcm9tVHh0LCAnwrfCt8K3JykpICsgJzwvZGl2PjxkaXYgY2xhc3M9InBsYWNlIj4nICsgZXNjKHBsYWNlRm9yKGZyb21UeHQsICdZb3VyIGNpdHknKSkgKyAnPC9kaXY+PC9kaXY+JyArCiAgICAgICc8ZGl2IGNsYXNzPSJmc3gtcGF0aCI+JyArIElDT04uamV0ICsgJzwvZGl2PicgKwogICAgICAnPGRpdiBjbGFzcz0iZnN4LXBvcnQgdG8iPjxkaXYgY2xhc3M9ImNvZGUiPicgKyBlc2MoY29kZUZvcih0b1R4dCwgJ8K3wrfCtycpKSArICc8L2Rpdj48ZGl2IGNsYXNzPSJwbGFjZSI+JyArIGVzYyhwbGFjZUZvcih0b1R4dCwgJ1lvdXIgZGVzdGluYXRpb24nKSkgKyAnPC9kaXY+PC9kaXY+PC9kaXY+JyArCiAgICAgICc8ZGl2IGNsYXNzPSJmc3gtbWV0YSI+PGRpdiBjbGFzcz0ibSI+PGRpdiBjbGFzcz0ibCI+VHJpcDwvZGl2PjxkaXYgY2xhc3M9InYiPicgKyB0cmlwTGFiZWwgKyAnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibSI+PGRpdiBjbGFzcz0ibCI+V2hlbjwvZGl2PjxkaXYgY2xhc3M9InYiPicgKyBlc2MoZGF0ZUxhYmVsKSArICc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtIj48ZGl2IGNsYXNzPSJsIj5QYXJ0eTwvZGl2PjxkaXYgY2xhc3M9InYiPicgKyBlc2MocGF4TGFiZWwpICsgJzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pic7CiAgfQogIHZhciBRVU9URV9TVEVQUyA9IFsnKkEgY2hhcnRlciBhZHZpc29yKiByZXZpZXdzIHlvdXIgcm91dGUgYW5kIG1hdGNoZXMgYWlyY3JhZnQuJywgJ1lvdeKAmWxsIGdldCBhbiAqYWxsLWluIHF1b3RlKiBieSBlbWFpbCDigJQgbm8gaGlkZGVuIGZlZXMuJywgJ0FwcHJvdmUsIGFuZCB3ZSBoYW5kbGUgKmV2ZXJ5IGRldGFpbCogdGhyb3VnaCBsYW5kaW5nLiddOwogIGZ1bmN0aW9uIHF1b3RlUm93cyhzdCkgewogICAgdmFyIHJvd3MgPSBbeyBrOiAnVHJpcCcsIHY6IHN0LnRhYiA9PT0gJ29uZXdheScgPyAnT25lIHdheScgOiAoc3QudGFiID09PSAnbXVsdGknID8gJ011bHRpLWNpdHknIDogJ1JvdW5kIHRyaXAnKSB9XTsKICAgIGlmIChzdC50YWIgPT09ICdtdWx0aScpIHsKICAgICAgc3QubGVncy5mb3JFYWNoKGZ1bmN0aW9uIChsLCBpKSB7IHZhciBkID0gcGFyc2VJU08obC5kYXRlKTsgcm93cy5wdXNoKHsgazogJ0xlZyAnICsgKGkgKyAxKSwgdjogKGwuZnJvbSB8fCAn4oCUJykgKyAnIOKGkiAnICsgKGwudG8gfHwgJ+KAlCcpICsgJyDCtyAnICsgKGQgPyBmbXRMb25nKGQpIDogJ0RhdGUgVEJEJykgKyAobC50aW1lID8gJyDCtyAnICsgbC50aW1lIDogJycpIH0pOyB9KTsKICAgIH0gZWxzZSB7CiAgICAgI
1892HJvd3MucHVzaCh7IGs6ICdSb3V0ZScsIHY6IChzdC5mcm9tIHx8ICfigJQnKSArICcg4oaSICcgKyAoc3QudG8gfHwgJ+KAlCcpIH0pOwogICAgICB2YXIgcyA9IHBhcnNlSVNPKHN0LmRlcGFydCksIGUgPSBwYXJzZUlTTyhzdC5yZXQpOwogICAgICBpZiAoc3QudGFiID09PSAncm91bmR0cmlwJykgeyByb3dzLnB1c2goeyBrOiAnRGF0ZXMnLCB2OiAocyA/IGZtdFNob3J0KHMpIDogJ1RCRCcpICsgJyDihpIgJyArIChlID8gZm10U2hvcnQoZSkgOiAnVEJEJykgKyAocyA/ICcsICcgKyBzLmdldEZ1bGxZZWFyKCkgOiAnJykgfSk7IH0KICAgICAgZWxzZSB7IHJvd3MucHVzaCh7IGs6ICdEYXRlJywgdjogcyA/IGZtdExvbmcocykgOiAnVEJEJyB9KTsgfQogICAgICBpZiAoc3QudGltZSkgeyByb3dzLnB1c2goeyBrOiBzdC50YWIgPT09ICdyb3VuZHRyaXAnICYmIHN0LnJldFRpbWUgPyAnRGVwYXJ0JyA6ICdUaW1lJywgdjogc3QudGltZSB9KTsgfQogICAgICBpZiAoc3QudGFiID09PSAncm91bmR0cmlwJyAmJiBzdC5yZXRUaW1lKSB7IHJvd3MucHVzaCh7IGs6ICdSZXR1cm4nLCB2OiBzdC5yZXRUaW1lIH0pOyB9CiAgICB9CiAgICBpZiAoc3QucGF4KSB7IHJvd3MucHVzaCh7IGs6ICdQYXgnLCB2OiBTdHJpbmcoc3QucGF4KSB9KTsgfQogICAgcm93cy5wdXNoKHsgazogJ0NvbnRhY3QnLCB2OiAoc3QubmFtZSB8fCAnJykgKyAnIMK3ICcgKyAoc3QuZW1haWwgfHwgJycpICsgJyDCtyAnICsgKHN0LnBob25lIHx8ICcnKSB9KTsKICAgIHJldHVybiByb3dzOwogIH0KCiAgLyog4pSA4pSA4pSAIHF1b3RlIGZvcm0gZW5naW5lIChBYm91dC9Db250YWN0IGNhcmQgKyBRdW90ZSBwYWdlIHN0ZXBzKSDilIDilIDilIAgKi8KICAvKiBpY29uIHNldCBvZiB0aGUgIlF1b3RlIEZvcm0gUG9saXNoZWQiIG1vY2t1cCAob3duZXIsIDIwMjYtMDgtMjEpOyBzaGFyZWQgYnkgdGhlIHN0YXJ0ZXIgYmFyICsgbW9kYWwgZm9ybSAqLwogIHZhciBRUCA9IHsKICAgIHNlbmQ6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAyTDExIDEzIi8+PHBhdGggZD0iTTIyIDJsLTcgMjAtNC05LTktNCAyMC03eiIvPjwvc3ZnPicsCiAgICBwaW46ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMSAxMGMwIDctOSAxMy05IDEzcy05LTYtOS0xM2E5IDkgMCAwIDEgMTggMHoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEwIiByPSIzIi8+PC9zdmc+JywKICAgIGNhbDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiByeD0iMiIvPjxsaW5lIHgxPSIxNiIgeTE9IjIiIHgyPSIxNiIgeTI9IjYiLz48bGluZSB4MT0iOCIgeTE9IjIiIHgyPSI4IiB5Mj0iNiIvPjxsaW5lIHgxPSIzIiB5MT0iMTAiIHgyPSIyMSIgeTI9IjEwIi8+PC9zdmc+JywKICAgIGNsb2NrOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxwb2x5bGluZSBwb2ludHM9IjEyIDYgMTIgMTIgMTYgMTQiLz48L3N2Zz4nLAogICAgdXNlcjogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwIDIxdi0yYTQgNCAwIDAgMC00LTRIOGE0IDQgMCAwIDAtNCA0djIiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjciIHI9IjQiLz48L3N2Zz4nLAogICAgbWFpbDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIvPjxwb2x5bGluZSBwb2ludHM9IjIyIDYgMTIgMTMgMiA2Ii8+PC9zdmc+JywKICAgIHBob25lOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTYuOTJ2M2EyIDIgMCAwIDEtMi4xOCAyIDE5Ljc5IDE5Ljc5IDAgMCAxLTguNjMtMy4wNyAxOS41IDE5LjUgMCAwIDEtNi02IDE5Ljc5IDE5Ljc5IDAgMCAxLTMuMDctOC42N0EyIDIgMCAwIDEgNC4xMSAyaDNhMiAyIDAgMCAxIDIgMS43MmMuMTI3Ljk2LjM2MSAxLjkwMy43IDIuODFhMiAyIDAgMCAxLS40NSAyLjExTDguMDkgOS45MWExNiAxNiAwIDAgMCA2IDZsMS4yNy0xLjI3YTIgMiAwIDAgMSAyLjExLS40NWMuOTA3LjMzOSAxLjg1LjU3MyAyLjgxLjdBMiAyIDAgMCAxIDIyIDE2LjkyeiIvPjwvc3ZnPicsCiAgICBzd2FwOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIxNyAxIDIxIDUgMTcgOSIvPjxwYXRoIGQ9Ik0zIDExVjlhNCA0IDAgMCAxIDQtNGgxNCIvPjxwb2x5bGluZSBwb2ludHM9IjcgMjMgMyAxOSA3IDE1Ii8+PHBhdGggZD0iTTIxIDEzdjJhNCA0
1892IDAgMCAxLTQgNEgzIi8+PC9zdmc+JywKICAgIG1pbnVzOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz48L3N2Zz4nLAogICAgcGx1czogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiPjxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz48L3N2Zz4nLAogICAgY2hldjogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+PC9zdmc+JywKICAgIG5vdGU6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMGg5Ii8+PHBhdGggZD0iTTE2LjUgMy41YTIuMSAyLjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTRMMTYuNSAzLjV6Ii8+PC9zdmc+JywKICAgIHRhZzogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwLjU5IDEzLjQxbC03LjE3IDcuMTdhMiAyIDAgMCAxLTIuODMgMEwyIDEyVjJoMTBsOC41OSA4LjU5YTIgMiAwIDAgMSAwIDIuODJ6Ii8+PGxpbmUgeDE9IjciIHkxPSI3IiB4Mj0iNy4wMSIgeTI9IjciLz48L3N2Zz4nLAogICAgYXJyb3c6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+PHBvbHlsaW5lIHBvaW50cz0iMTIgNSAxOSAxMiAxMiAxOSIvPjwvc3ZnPicKICB9OwogIGZ1bmN0aW9uIG1vdW50UXVvdGUocm9vdEVsLCBvcHRzKSB7CiAgICBpZiAocm9vdEVsLl9fYXZjKSB7IHJldHVybjsgfQogICAgcm9vdEVsLl9fYXZjID0gdHJ1ZTsKICAgIHZhciB2YXJpYW50ID0gcm9vdEVsLmdldEF0dHJpYnV0ZSgnZGF0YS1hdmMtcXVvdGUnKTsKICAgIHZhciBtb2JpbGUgPSAob3B0cyAmJiBvcHRzLm1vYmlsZSAhPSBudWxsKSA/ICEhb3B0cy5tb2JpbGUgOiBpbk1vYmlsZVRyZWUocm9vdEVsKTsKICAgIHZhciBzdGVwcyA9IHZhcmlhbnQgPT09ICdzdGVwcyc7CiAgICAvKiBUaGUgUXVvdGUgcGFnZSBmb3JtIGlzIHNpbmdsZS1zdGVwIChvd25lciBkZWNpc2lvbiAyMDI2LTA4LTIxKTogdHJpcAogICAgICAgZGV0YWlscywgcGFzc2VuZ2VycywgdGhlbiBjb250YWN0IGRldGFpbHMgaW4gb25lIGNhcmQg4oCUIG5vICJOZXh0IFN0ZXAiCiAgICAgICBnYXRlIGFuZCBubyByZXZpZXcgY2FyZDsgdGhlIHN1Ym1pdHRlZCBkZXRhaWxzIHNob3cgb24gdGhlIHN1Y2Nlc3Mgc2NyZWVuLiAqLwogICAgdmFyIHN0ID0gewogICAgICB0YWI6ICdyb3VuZHRyaXAnLCBmcm9tOiAnJywgdG86ICcnLCBkZXBhcnQ6ICcnLCByZXQ6ICcnLCB0aW1lOiAnJywgcmV0VGltZTogJycsIHBheDogc3RlcHMgPyAxIDogMiwKICAgICAgbGVnczogW3sgZnJvbTogJycsIHRvOiAnJywgZGF0ZTogJycsIHRpbWU6ICcnIH0sIHsgZnJvbTogJycsIHRvOiAnJywgZGF0ZTogJycsIHRpbWU6ICcnIH1dLAogICAgICBmaXJzdDogJycsIGxhc3Q6ICcnLCBuYW1lOiAnJywgcGhvbmU6ICcnLCBlbWFpbDogJycsIHJlZmVycmFsOiAnJywgbm90ZXM6ICcnLCBmbHlOb3c6ICcnLCBmbHlGcmVxOiAnJywgc3RlcDogMQogICAgfTsKICAgIHZhciBzdWJtaXR0ZWQgPSBmYWxzZSwgc2VuZGluZyA9IGZhbHNlLCBlcnJvck1zZyA9ICcnLCBsb2NrZWRIID0gMDsKCiAgICBmdW5jdGlvbiBkYXRlQnRuKGxhYmVsLCBwaWNrZXIsIGVkaXQsIHBoKSB7CiAgICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi1pbnB1dCIgZGF0YS1xPSJwaWNrZXIiIGRhdGEtcGlja2VyPSInICsgcGlja2VyICsgJyInICsgKGVkaXQgPyAnIGRhdGEtZWRpdD0iJyArIGVkaXQgKyAnIicgOiAnJykgKyAnPicgKyAobGFiZWwgPyAnPHNwYW4gY2xhc3M9ImQtdmFsIj4nICsgZXNjKGxhYmVsKSArICc8L3NwYW4+JyA6ICc8c3BhbiBjbGFzcz0icGgiPicgKyBlc2MocGggfHwgJ1NlbGVjdCBkYXRlJykgKyAnPC9zcGFuPicpICsgSUNPTi5jYWxMaW5lICsgJzwvYnV0dG9uPic7CiAgICB9CiAgICBmdW5jdGlvbiBmaWVsZChsYWJlbCwgaW5uZXIsIGNscykgeyByZXR1cm4gJzxkaXYnICsgKGNscyA/ICcgY2xhc3M9IicgKyBjbHMgKyAnIicgOiAnJykgKyAnPjxsYWJlbCBjbGFzcz0icWYtbGFiZWwiPicgKyBsYWJlbCArICc8L2xhYmVsPicgKyBpbm5lciArICc8L2Rpdj4nOyB9CiAgICBmdW5jdGlvbiBpbnB1dChuYW1lLCBwaCwgdHlwZSwgdmFsKSB7IHJldHVybiAnPGlucHV0IGNsYXNzPSJxZi1pbnB1dCInICsgKHR5cGUgPyAnIHR5cGU9IicgKyB0eXBlICsgJyInIDogJycpICsgJyBkYXRhLWZpZWxkPSInICsgbmFtZSArICciIHBsYWNlaG9sZGVyPSInICsgZXNjKHBoKSArICciIHZhbHVlPSInICsgZXNjKHZhbCkgKyAnIj4nOyB9CiAgICBmdW5jdGlvbiBzZWxlY3QobmFtZSwgb3B0cywgdmFsKSB7CiAgICAgIHZhciBoID0gJzxkaXYgY2xhc3M9InFmLXNlbGVjdCI+PHNlbGVjdCBjbGFzcz0icWYtaW5wdXQnICsgKHZhbCA/ICcnIDogJyBlbXB0eScpICsgJyIgZGF0YS1maWVsZD0iJyArIG5hbWUgKyAnIj48b3B0aW9uIHZhbHVlPSIiIGRpc2FibGVkJyArICh2YWwgPyAnJyA6ICcgc2VsZWN0ZWQnKSArICc+LS0gc2VsZWN0IC0tPC9vcHRpb24+JzsKICAgICAgb3B0cy5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7IGggKz0gJzxvcHRpb24nICsgKG8gPT09IHZhbCA/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgZXNjKG8pICsgJzwvb3B0aW9uPic7IH0pOwogICAgICByZXR1cm4gaCArICc8L3NlbGVjdD4nICsgSUNPTi5jaGV2ICsgJzwvZGl2Pic7CiAgICB9CiAgICBmdW5jdGlvbiBwYXhTdGVwcGVyKGxhYmVsKSB7CiAgICAgI
1892HJldHVybiAnPGRpdj48bGFiZWwgY2xhc3M9InFmLWxhYmVsIj4nICsgbGFiZWwgKyAnPC9sYWJlbD48ZGl2IGNsYXNzPSJxZi1wYXgiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXE9InBheC1taW51cyIgYXJpYS1sYWJlbD0iRmV3ZXIgcGFzc2VuZ2VycyI+4oiSPC9idXR0b24+PHNwYW4gY2xhc3M9InZhbCI+JyArIHN0LnBheCArICc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGRhdGEtcT0icGF4LXBsdXMiIGFyaWEtbGFiZWw9Ik1vcmUgcGFzc2VuZ2VycyI+KzwvYnV0dG9uPjwvZGl2PjwvZGl2Pic7CiAgICB9CiAgICBmdW5jdGlvbiBsZWdzSHRtbCgpIHsKICAgICAgdmFyIGggPSAnPGRpdiBjbGFzcz0icWYtbGVncyI+PGxhYmVsIGNsYXNzPSJxZi1sYWJlbCI+SXRpbmVyYXJ5PC9sYWJlbD4nOwogICAgICBzdC5sZWdzLmZvckVhY2goZnVuY3Rpb24gKGxlZywgaSkgewogICAgICAgIHZhciBkID0gcGFyc2VJU08obGVnLmRhdGUpOwogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLWxlZyIgZGF0YS1sZWc9IicgKyBpICsgJyI+PGRpdiBjbGFzcz0icWYtbGVnLW4iPicgKyAoaSArIDEpICsgJzwvZGl2Pic7CiAgICAgICAgaWYgKHN0LmxlZ3MubGVuZ3RoID4gMikgeyBoICs9ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFmLWxlZy1ybSIgZGF0YS1xPSJsZWctcmVtb3ZlIiBkYXRhLWlkeD0iJyArIGkgKyAnIiBhcmlhLWxhYmVsPSJSZW1vdmUgbGVnIj4nICsgSUNPTi54ICsgJzwvYnV0dG9uPic7IH0KICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxZi1sZWctcGFpciBhIj48ZGl2IGNsYXNzPSJxZi1sZWctY2VsbCI+JyArIElDT04ucGxhbmUgKyAnPGlucHV0IGRhdGEtbGVnLWZpZWxkPSJmcm9tIiBkYXRhLWxlZy1pZHg9IicgKyBpICsgJyIgcGxhY2Vob2xkZXI9IkZyb20iIHZhbHVlPSInICsgZXNjKGxlZy5mcm9tKSArICciPjwvZGl2PicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9InFmLWxlZy1jZWxsIj4nICsgSUNPTi5wbGFuZSArICc8aW5wdXQgZGF0YS1sZWctZmllbGQ9InRvIiBkYXRhLWxlZy1pZHg9IicgKyBpICsgJyIgcGxhY2Vob2xkZXI9IlRvIiB2YWx1ZT0iJyArIGVzYyhsZWcudG8pICsgJyI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0icWYtbGVnLXBhaXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWYtbGVnLWNlbGwiIGRhdGEtcT0icGlja2VyIiBkYXRhLXBpY2tlcj0ibGVnLScgKyBpICsgJyI+JyArIElDT04uY2FsICsgJzxzcGFuIGNsYXNzPSJkdicgKyAoZCA/ICcnIDogJyBwaCcpICsgJyI+JyArIChkID8gZXNjKGZtdExvbmcoZCkpIDogJ0RhdGUnKSArICc8L3NwYW4+PC9idXR0b24+JyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0icWYtbGVnLWNlbGwiPicgKyBJQ09OLmNsb2NrICsgJzxpbnB1dCBkYXRhLWxlZy1maWVsZD0idGltZSIgZGF0YS1sZWctaWR4PSInICsgaSArICciIHBsYWNlaG9sZGVyPSJUaW1lIiB2YWx1ZT0iJyArIGVzYyhsZWcudGltZSkgKyAnIj48L2Rpdj48L2Rpdj48L2Rpdj4nOwogICAgICB9KTsKICAgICAgaWYgKHN0LmxlZ3MubGVuZ3RoIDwgNSkgeyBoICs9ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFmLWFkZCIgZGF0YS1xPSJsZWctYWRkIj4nICsgSUNPTi5wbHVzICsgJ0FkZCBhbm90aGVyIGxlZzwvYnV0dG9uPic7IH0KICAgICAgcmV0dXJuIGggKyAnPC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHRyaXBIdG1sKCkgewogICAgICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSJxZi10YWJzIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iVHJpcCB0eXBlIj4nOwogICAgICBbWydvbmV3YXknLCAnT25lIFdheSddLCBbJ3JvdW5kdHJpcCcsICdSb3VuZCBUcmlwJ10sIFsnbXVsdGknLCAnTXVsdGktQ2l0eSddXS5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7CiAgICAgICAgaCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi10YWInICsgKHN0LnRhYiA9PT0gcFswXSA/ICcgYWN0aXZlJyA6ICcnKSArICciIGRhdGEtcT0idGFiIiBkYXRhLXRhYj0iJyArIHBbMF0gKyAnIiBhcmlhLXByZXNzZWQ9IicgKyAoc3QudGFiID09PSBwWzBdKSArICciPicgKyBwWzFdICsgJzwvYnV0dG9uPic7CiAgICAgIH0pOwogICAgICBoICs9ICc8L2Rpdj4nOwogICAgICB2YXIgZGVwRCA9IHBhcnNlSVNPKHN0LmRlcGFydCksIHJldEQgPSBwYXJzZUlTTyhzdC5yZXQpOwogICAgICB2YXIgcmV0Q2VsbCA9IHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcKICAgICAgICA/IGZpZWxkKCdSZXR1cm5pbmcnLCBkYXRlQnRuKGZtdExvbmcocmV0RCksICdydCcsICdlbmQnKSkKICAgICAgICA6ICc8ZGl2PjxsYWJlbCBjbGFzcz0icWYtbGFiZWwgbXV0ZWQiPlJldHVybmluZzwvbGFiZWw+PGRpdiBjbGFzcz0icWYtb3ciPk9uZS13YXkgdHJpcDwvZGl2PjwvZGl2Pic7CiAgICAgIGlmIChzdC50YWIgIT09ICdtdWx0aScpIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxZi1yb3cyIj4nICsgZmllbGQoRlJPTV9MQUJFTCwgaW5wdXQoJ2Zyb20nLCAnQ2l0eSBvciBhaXJwb3J0JywgbnVsbCwgc3QuZnJvbSkpICsgZmllbGQoJ0dvaW5nIHRvJywgaW5wdXQoJ3RvJywgJ0NpdHkgb3IgYWlycG9ydCcsIG51bGwsIHN0LnRvKSkgKyAnPC9kaXY+JzsKICAgICAgICBpZiAoc3RlcHMpIHsKICAgICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLXJvdzMiPicgKyBmaWVsZCgnRGVwYXJ0dXJlIGRhdGUnLCBkYXRlQnRuKGZtdExvbmcoZGVwRCksIHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcgPyAncnQnIDogJ293Jywgc3QudGFiID09PSAncm91bmR0cmlwJyA/ICdzdGFydCcgOiBudWxsKSkgKwogICAgICAgICAgICBmaWVsZCgnRGVwYXJ0dXJlIHRpbWUnLCBpbnB1dCgndGltZScsICdlLmcuIDk6MDAgYW0nLCBudWxsLCBzdC50aW1lKSkgKyByZXRDZWxsICsgJzwvZGl2Pic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLXJvdzMiPicgKyBmaWVsZCgnRGVwYXJ0aW5nJywgZGF0ZUJ0bihmbXRMb25nKGRlcEQpLCBzdC50YWIgPT09ICdyb3VuZHRyaXAnID8gJ3J0JyA6ICdvdycsIHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcgPyAnc3RhcnQnIDogbnVsbCkpICsgcmV0Q2VsbCArIHBheFN0ZXBwZXIoJ1Bhc3NlbmdlcnMnKSArICc8L2Rpdj4nOwogICAgICAgI
1892H0KICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9IGxlZ3NIdG1sKCk7CiAgICAgICAgaWYgKCFzdGVwcykgeyBoICs9ICc8ZGl2IGNsYXNzPSJxZi1yb3czIj4nICsgcGF4U3RlcHBlcignUGFzc2VuZ2VycycpICsgJzwvZGl2Pic7IH0KICAgICAgfQogICAgICByZXR1cm4gaDsKICAgIH0KICAgIGZ1bmN0aW9uIHJldmlld0JvZHkoKSB7CiAgICAgIHZhciBoID0gJyc7CiAgICAgIGlmIChzdC50YWIgIT09ICdtdWx0aScpIHsKICAgICAgICB2YXIgZCA9IHBhcnNlSVNPKHN0LmRlcGFydCksIHIgPSBwYXJzZUlTTyhzdC5yZXQpOwogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLXJ2LWdyaWQiPjxzcGFuIGNsYXNzPSJrIj4nICsgZXNjKEZST01fTEFCRUwpICsgJzo8L3NwYW4+PHNwYW4gY2xhc3M9InYiPicgKyBlc2Moc3QuZnJvbSB8fCAn4oCUJykgKyAnPC9zcGFuPicgKwogICAgICAgICAgJzxzcGFuIGNsYXNzPSJrIj5Hb2luZyB0bzo8L3NwYW4+PHNwYW4gY2xhc3M9InYiPicgKyBlc2Moc3QudG8gfHwgJ+KAlCcpICsgJzwvc3Bhbj4nICsKICAgICAgICAgICc8c3BhbiBjbGFzcz0iayI+RGVwYXJ0dXJlOjwvc3Bhbj48c3BhbiBjbGFzcz0idiI+JyArIGVzYyhkID8gZm10TG9uZyhkKSA6ICfigJQnKSArIChzdC50aW1lID8gJyB8ICcgKyBlc2Moc3QudGltZSkgOiAnJykgKyAnPC9zcGFuPicgKwogICAgICAgICAgKHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcgPyAnPHNwYW4gY2xhc3M9ImsiPlJldHVybmluZzo8L3NwYW4+PHNwYW4gY2xhc3M9InYiPicgKyBlc2MociA/IGZtdExvbmcocikgOiAn4oCUJykgKyAnPC9zcGFuPicgOiAnJykgKwogICAgICAgICAgJzxzcGFuIGNsYXNzPSJrIj5QYXNzZW5nZXJzOjwvc3Bhbj48c3BhbiBjbGFzcz0idiI+JyArIHN0LnBheCArICc8L3NwYW4+PC9kaXY+JzsKICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxZi1ydi1sZWdzIj4nOwogICAgICAgIHN0LmxlZ3MuZm9yRWFjaChmdW5jdGlvbiAobCwgaSkgeyB2YXIgZCA9IHBhcnNlSVNPKGwuZGF0ZSk7IGggKz0gJzxkaXY+PGI+TGVnICcgKyAoaSArIDEpICsgJzo8L2I+ICcgKyBlc2MobC5mcm9tIHx8ICfigJQnKSArICcg4oaSICcgKyBlc2MobC50byB8fCAn4oCUJykgKyAnIMK3ICcgKyBlc2MoZCA/IGZtdExvbmcoZCkgOiAnRGF0ZSBUQkQnKSArICc8L2Rpdj4nOyB9KTsKICAgICAgICBoICs9ICc8ZGl2PjxiPlBhc3NlbmdlcnM6PC9iPiAnICsgc3QucGF4ICsgJzwvZGl2PjwvZGl2Pic7CiAgICAgIH0KICAgICAgcmV0dXJuIGg7CiAgICB9CiAgICBmdW5jdGlvbiBjb250YWN0SHRtbCgpIHsKICAgICAgdmFyIGggPSAnJzsKICAgICAgaWYgKHN0ZXBzKSB7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icWYtcm93MiI+JyArIGZpZWxkKCdGaXJzdCBuYW1lJywgaW5wdXQoJ2ZpcnN0JywgJ0ZpcnN0IG5hbWUnLCBudWxsLCBzdC5maXJzdCkpICsgZmllbGQoJ0xhc3QgbmFtZScsIGlucHV0KCdsYXN0JywgJ0xhc3QgbmFtZScsIG51bGwsIHN0Lmxhc3QpKSArICc8L2Rpdj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxZi1yb3cyIj4nICsgZmllbGQoJ0VtYWlsJywgaW5wdXQoJ2VtYWlsJywgJ3lvdXJlbWFpbEBleGFtcGxlLmNvbScsICdlbWFpbCcsIHN0LmVtYWlsKSkgKyBmaWVsZCgnUGhvbmUgbnVtYmVyJywgaW5wdXQoJ3Bob25lJywgJzU1NS0xMjMtNTY3OCcsICd0ZWwnLCBzdC5waG9uZSkpICsgJzwvZGl2PicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9InFmLXJvdzIiPicgKyBmaWVsZCgnSG93IGRvIHlvdSBwcmltYXJpbHkgZmx5IG5vdz8nLCBzZWxlY3QoJ2ZseU5vdycsIFsnQ29tbWVyY2lhbCBhaXJsaW5lcycsICdQcml2YXRlIGNoYXJ0ZXInLCAnRnJhY3Rpb25hbCBvd25lcnNoaXAnLCAnSmV0IGNhcmQgLyBtZW1iZXJzaGlwJywgJ1RoaXMgd291bGQgYmUgbXkgZmlyc3QgcHJpdmF0ZSBmbGlnaHQnXSwgc3QuZmx5Tm93KSkgKwogICAgICAgICAgZmllbGQoJ0hvdyBvZnRlbiBkbyB5b3UgY3VycmVudGx5IGZseSBwcml2YXRlIHBlciB5ZWFyPycsIHNlbGVjdCgnZmx5RnJlcScsIFsnVGhpcyB3b3VsZCBiZSBteSBmaXJzdCcsICcx4oCTNSBmbGlnaHRzJywgJzbigJMxMiBmbGlnaHRzJywgJzEyKyBmbGlnaHRzJ10sIHN0LmZseUZyZXEpKSArICc8L2Rpdj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxZi1yb3cxIj4nICsgZmllbGQoJ01lc3NhZ2UgPHNwYW4gY2xhc3M9Im9wdCI+KG9wdGlvbmFsKTwvc3Bhbj4nLCAnPHRleHRhcmVhIGNsYXNzPSJxZi1pbnB1dCIgZGF0YS1maWVsZD0ibm90ZXMiIHBsYWNlaG9sZGVyPSJJcyB0aGVyZSBhbnl0aGluZyBlbHNlIHlvdeKAmWQgbGlrZSB0byB0ZWxsIHVzIGFib3V0IHlvdXIgZGVzaXJlZCBpdGluZXJhcnk/Ij4nICsgZXNjKHN0Lm5vdGVzKSArICc8L3RleHRhcmVhPicpICsgJzwvZGl2PicgKwogICAgICAgICAgZmllbGQoJ0hhdmUgYSByZWZlcnJhbCBjb2RlPycsIGlucHV0KCdyZWZlcnJhbCcsICdPcHRpb25hbCcsIG51bGwsIHN0LnJlZmVycmFsKSwgJ3FmLXJlZicpICsKICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFmLXN1Ym1pdCIgZGF0YS1xPSJzdWJtaXQiJyArIChzZW5kaW5nID8gJyBkaXNhYmxlZCcgOiAnJykgKyAnPicgKyAoc2VuZGluZyA/ICdTZW5kaW5n4oCmJyA6ICdHZXQgUXVvdGUgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPuKGkjwvc3Bhbj4nKSArICc8L2J1dHRvbj4nOwogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLXJvdzIiPicgKyBmaWVsZCgnTmFtZScsIGlucHV0KCduYW1lJywgJ1lvdXIgbmFtZScsIG51bGwsIHN0Lm5hbWUpKSArIGZpZWxkKCdQaG9uZScsIGlucHV0KCdwaG9uZScsICc1NTUtMTIzLTU2NzgnLCAndGVsJywgc3QucGhvbmUpKSArICc8L2Rpdj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxZi1yb3cyIj4nICsgZmllbGQoJ0VtYWlsJywgaW5wdXQoJ2VtYWlsJywgJ3lvdXJlbWFpbEBleGFtcGxlLmNvbScsICdlbWFpbCcsIHN0LmVtYWlsKSkgKyBmaWVsZCgnUmVmZXJyYWwgY29kZSA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPicsIGlucHV0KCdyZWZlcnJhbCcsICdPcHRpb25hbCcsIG51bGwsIHN0LnJlZmVycmFsKSkgKyAnPC9kaXY+JyArCiAgICAgICAgICBmaWVsZCgnTWVzc2FnZSA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPicsICc8dGV4dGFyZWEgY2xhc3M9InFmLWlucHV0IiBkYXRhLWZpZWxkPSJub3RlcyIgcGxhY2Vob2xkZXI9IlRlbGwgdXMgYWJvdXQgYW55IHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9yIHByZWZlcmVuY2Vz4oCmIj4nICsgZXNjKHN0Lm5vdGVzKSArICc8L3RleHRhcmVhPicsICdxZi1tc2cnKSArCiAgICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi1zdWJtaXQiIGRhdGEtcT0ic3VibWl0IicgKyAoc2VuZGluZyA/ICcgZGlzYWJsZWQnIDogJycpICsgJz4nICsgKHNlbmRpbmcgPyAnU2VuZGluZ+KApicgOiAnUmVxdWVzdCBRdW90ZSA8c3BhbiBhcmlhLWh
1892pZGRlbj0idHJ1ZSI+4oaSPC9zcGFuPicpICsgJzwvYnV0dG9uPic7CiAgICAgIH0KICAgICAgaWYgKGVycm9yTXNnKSB7IGggKz0gJzxkaXYgY2xhc3M9InFmLWVycm9yIj4nICsgZXNjKGVycm9yTXNnKSArICc8L2Rpdj4nOyB9CiAgICAgIHJldHVybiBoOwogICAgfQogICAgLyogUXVvdGUgcGFnZSBmaWVsZHM6IHRoZSBkZXNpZ24ncyBjYXJkICsgbGFiZWxzLCBlYWNoIGZpZWxkIHJlbmRlcmVkIGFzIGEKICAgICAgIGJvcmRlcmVkIGljb24gY2VsbCAodGhlIG1vZGFsIC8gbXVsdGktY2l0eS1sZWcgdHJlYXRtZW50KS4gKi8KICAgIGZ1bmN0aW9uIGJveEluKGljb24sIG5hbWUsIHBoLCB0eXBlLCB2YWwsIGV4dHJhKSB7CiAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0icWYtYm94Ij4nICsgaWNvbiArICc8aW5wdXQnICsgKHR5cGUgPyAnIHR5cGU9IicgKyB0eXBlICsgJyInIDogJycpICsgJyBkYXRhLWZpZWxkPSInICsgbmFtZSArICciIHBsYWNlaG9sZGVyPSInICsgZXNjKHBoKSArICciIHZhbHVlPSInICsgZXNjKHZhbCB8fCAnJykgKyAnIicgKyAoZXh0cmEgfHwgJycpICsgJz48L2Rpdj4nOwogICAgfQogICAgZnVuY3Rpb24gYm94RGF0ZShwaWNrZXIsIGVkaXQsIGlzbywgcGgpIHsKICAgICAgdmFyIGQgPSBwYXJzZUlTTyhpc28pOwogICAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWYtYm94IiBkYXRhLXE9InBpY2tlciIgZGF0YS1waWNrZXI9IicgKyBwaWNrZXIgKyAnIicgKyAoZWRpdCA/ICcgZGF0YS1lZGl0PSInICsgZWRpdCArICciJyA6ICcnKSArICc+JyArIElDT04uY2FsICsgJzxzcGFuIGNsYXNzPSJkdicgKyAoZCA/ICcnIDogJyBwaCcpICsgJyI+JyArIChkID8gZXNjKGZtdExvbmcoZCkpIDogZXNjKHBoKSkgKyAnPC9zcGFuPjwvYnV0dG9uPic7CiAgICB9CiAgICBmdW5jdGlvbiBib3hTZWxlY3QoaWNvbiwgbmFtZSwgb3B0cywgdmFsLCBwaCkgewogICAgICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSJxZi1ib3giPicgKyBpY29uICsgJzxzZWxlY3QgY2xhc3M9IicgKyAodmFsID8gJycgOiAnZW1wdHknKSArICciIGRhdGEtZmllbGQ9IicgKyBuYW1lICsgJyI+PG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCcgKyAodmFsID8gJycgOiAnIHNlbGVjdGVkJykgKyAnPicgKyBlc2MocGggfHwgJy0tIHNlbGVjdCAtLScpICsgJzwvb3B0aW9uPic7CiAgICAgIG9wdHMuZm9yRWFjaChmdW5jdGlvbiAobykgeyBoICs9ICc8b3B0aW9uJyArIChvID09PSB2YWwgPyAnIHNlbGVjdGVkJyA6ICcnKSArICc+JyArIGVzYyhvKSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgcmV0dXJuIGggKyAnPC9zZWxlY3Q+PHNwYW4gY2xhc3M9InNlbC1jaGV2Ij4nICsgSUNPTi5jaGV2ICsgJzwvc3Bhbj48L2Rpdj4nOwogICAgfQogICAgZnVuY3Rpb24gcGF4Qm94KCkgewogICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InFmLWJveCBxZi1wYXhib3giPicgKyBJQ09OLnVzZXIgKyAnPHNwYW4gY2xhc3M9InZhbCI+JyArIHN0LnBheCArICc8L3NwYW4+PHNwYW4gY2xhc3M9InFmLXBheC1idG5zIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1xPSJwYXgtbWludXMiIGFyaWEtbGFiZWw9IkZld2VyIHBhc3NlbmdlcnMiPuKIkjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBkYXRhLXE9InBheC1wbHVzIiBhcmlhLWxhYmVsPSJNb3JlIHBhc3NlbmdlcnMiPis8L2J1dHRvbj48L3NwYW4+PC9kaXY+JzsKICAgIH0KICAgIC8qIOKUgOKUgCBNb2JpbGU6IHRoZSBkZXNpZ24ncyBvd24gdHJlYXRtZW50IOKAlCBsYWJlbGxlZCwgc3RhY2tlZCwgYm94ZWQgY2VsbHMg4pSA4pSAICovCiAgICBmdW5jdGlvbiBib3hlZEZvcm0oKSB7CiAgICAgIHZhciBoID0gJzxkaXYgY2xhc3M9InFmLWJvZHkgcWYtbm9oZWFkIj48ZGl2IGNsYXNzPSJxZi10YWJzIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iVHJpcCB0eXBlIj4nOwogICAgICBbWydvbmV3YXknLCAnT25lIFdheSddLCBbJ3JvdW5kdHJpcCcsICdSb3VuZCBUcmlwJ10sIFsnbXVsdGknLCAnTXVsdGktQ2l0eSddXS5mb3JFYWNoKGZ1bmN0aW9uIChwKSB7CiAgICAgICAgaCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi10YWInICsgKHN0LnRhYiA9PT0gcFswXSA/ICcgYWN0aXZlJyA6ICcnKSArICciIGRhdGEtcT0idGFiIiBkYXRhLXRhYj0iJyArIHBbMF0gKyAnIiBhcmlhLXByZXNzZWQ9IicgKyAoc3QudGFiID09PSBwWzBdKSArICciPicgKyBwWzFdICsgJzwvYnV0dG9uPic7CiAgICAgIH0pOwogICAgICBoICs9ICc8L2Rpdj4nOwogICAgICBpZiAoc3QudGFiID09PSAnbXVsdGknKSB7CiAgICAgICAgaCArPSBsZWdzSHRtbCgpICsgJzxkaXYgY2xhc3M9InFmLXJvdzQiPicgKyBmaWVsZCgnUGFzc2VuZ2VycycsIHBheEJveCgpKSArICc8L2Rpdj4nOwogICAgICB9IGVsc2UgewogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFmLXJvdzMgcWYtcm93LWZyb210byI+JyArIGZpZWxkKEZST01fTEFCRUwsIGJveEluKElDT04ucGxhbmUsICdmcm9tJywgJ0NpdHkgb3IgYWlycG9ydCcsIG51bGwsIHN0LmZyb20pKSArIGZpZWxkKCdHb2luZyB0bycsIGJveEluKElDT04ucGxhbmUsICd0bycsICdDaXR5IG9yIGFpcnBvcnQnLCBudWxsLCBzdC50bykpICsgZmllbGQoJ1Bhc3NlbmdlcnMnLCBwYXhCb3goKSkgKyAnPC9kaXY+JzsKICAgICAgICBpZiAoc3QudGFiID09PSAncm91bmR0cmlwJykgewogICAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icWYtcm93NCI+JyArCiAgICAgICAgICAgIGZpZWxkKCdEZXBhcnQgZGF0ZScsIGJveERhdGUoJ3J0JywgJ3N0YXJ0Jywgc3QuZGVwYXJ0LCAnU2VsZWN0IGRhdGUnKSkgKyBmaWVsZCgnRGVwYXJ0IHRpbWUnLCBib3hJbihJQ09OLmNsb2NrLCAndGltZScsICdGbGV4aWJsZScsIG51bGwsIHN0LnRpbWUpKSArCiAgICAgICAgICAgIGZpZWxkKCdSZXR1cm4gZGF0ZScsIGJveERhdGUoJ3J0JywgJ2VuZCcsIHN0LnJldCwgJ1NlbGVjdCBkYXRlJykpICsgZmllbGQoJ1JldHVybiB0aW1lJywgYm94SW4oSUNPTi5jbG9jaywgJ3JldFRpbWUnLCAnRmxleGlibGUnLCBudWxsLCBzdC5yZXRUaW1lKSkgKyAnPC9kaXY+JzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icWYtcm93NCI+JyArIGZpZWxkKCdEZXBhcnQgZGF0ZScsIGJveERhdGUoJ293JywgbnVsbCwgc3QuZGVwYXJ0LCAnU2VsZWN0IGRhdGUnKSkgKyBmaWVsZCgnRGVwYXJ0IHRpbWUnLCBib3hJbihJQ09OLmNsb2NrLCAndGltZScsICdGbGV4aWJsZScsIG51bGwsIHN0LnRpbWUpKSArICc8L2Rpdj4nOwogICAgICAgI
1892H0KICAgICAgfQogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxZi1kaXZpZGVyIj48L2Rpdj48ZGl2IGNsYXNzPSJxZi1leWVicm93LWwgc2VjIj48c3BhbiBjbGFzcz0iZGFzaCI+PC9zcGFuPkNvbnRhY3QgZGV0YWlsczwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxZi1yb3cyIj4nICsgZmllbGQoJ0ZpcnN0IG5hbWUnLCBib3hJbihJQ09OLnVzZXIsICdmaXJzdCcsICdGaXJzdCBuYW1lJywgbnVsbCwgc3QuZmlyc3QpKSArIGZpZWxkKCdMYXN0IG5hbWUnLCBib3hJbihJQ09OLnVzZXIsICdsYXN0JywgJ0xhc3QgbmFtZScsIG51bGwsIHN0Lmxhc3QpKSArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0icWYtcm93MiI+JyArIGZpZWxkKCdFbWFpbCcsIGJveEluKElDT04ubWFpbCwgJ2VtYWlsJywgJ3lvdUBlbWFpbC5jb20nLCAnZW1haWwnLCBzdC5lbWFpbCkpICsgZmllbGQoJ1Bob25lJywgYm94SW4oSUNPTi5waG9uZSwgJ3Bob25lJywgJyg1NTUpIDAwMC0wMDAwJywgJ3RlbCcsIHN0LnBob25lKSkgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9InFmLXJvdzIiPicgKyBmaWVsZCgnSG93IGRvIHlvdSBwcmltYXJpbHkgZmx5IG5vdz8nLCBib3hTZWxlY3QoSUNPTi5wbGFuZSwgJ2ZseU5vdycsIFsnQ29tbWVyY2lhbCBhaXJsaW5lcycsICdQcml2YXRlIGNoYXJ0ZXInLCAnRnJhY3Rpb25hbCBvd25lcnNoaXAnLCAnSmV0IGNhcmQgLyBtZW1iZXJzaGlwJywgJ1RoaXMgd291bGQgYmUgbXkgZmlyc3QgcHJpdmF0ZSBmbGlnaHQnXSwgc3QuZmx5Tm93LCAnU2VsZWN0IGFuIG9wdGlvbic
1892pKSArCiAgICAgICAgZmllbGQoJ0hvdyBvZnRlbiBkbyB5b3UgZmx5IHByaXZhdGUgcGVyIHllYXI/JywgYm94U2VsZWN0KElDT04uY2FsLCAnZmx5RnJlcScsIFsnVGhpcyB3b3VsZCBiZSBteSBmaXJzdCcsICcx4oCTNSBmbGlnaHRzJywgJzbigJMxMiBmbGlnaHRzJywgJzEyKyBmbGlnaHRzJ10sIHN0LmZseUZyZXEsICdTZWxlY3QgYW4gb3B0aW9uJykpICsgJzwvZGl2PicgKwogICAgICAgIGZpZWxkKCdUcmlwIG5vdGVzIDxzcGFuIGNsYXNzPSJvcHQiPihvcHRpb25hbCk8L3NwYW4+JywgJzx0ZXh0YXJlYSBjbGFzcz0icWYtYm94LXRhIiBkYXRhLWZpZWxkPSJub3RlcyIgcGxhY2Vob2xkZXI9IkFueXRoaW5nIHdlIHNob3VsZCBrbm93PyBQZXRzLCBjYXRlcmluZywgZ3JvdW5kIHRyYW5zcG9ydCwgc3BlY2lhbCB0aW1pbmfigKYiPicgKyBlc2Moc3Qubm90ZXMpICsgJzwvdGV4dGFyZWE+JywgJ3FmLW1zZycpICsKICAgICAgICBmaWVsZCgnUmVmZXJyYWwgY29kZSA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPicsIGJveEluKElDT04udGFnLCAncmVmZXJyYWwnLCAnUmVmZXJyYWwgY29kZScsIG51bGwsIHN0LnJlZmVycmFsKSwgJ3FmLXJlZicpICsKICAgICAgICAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxZi1zdWJtaXQiIGRhdGEtcT0ic3VibWl0IicgKyAoc2VuZGluZyA/ICcgZGlzYWJsZWQnIDogJycpICsgJz4nICsgKHNlbmRpbmcgPyAnU2VuZGluZ+KApicgOiAnR2V0IFF1b3RlIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+JykgKyAnPC9idXR0b24+JzsKICAgICAgaWYgKGVycm9yTXNnKSB7IGggKz0gJzxkaXYgY2xhc3M9InFmLWVycm9yIj4nICsgZXNjKGVycm9yTXNnKSArICc8L2Rpdj4nOyB9CiAgICAgIHJldHVybiBoICsgJzwvZGl2Pic7CiAgICB9CgogICAgZnVuY3Rpb24gcXBGaWVsZChsYWJlbCwgaW5uZXIpIHsgcmV0dXJuICc8ZGl2PjxzcGFuIGNsYXNzPSJxcC1sYWJlbCI+JyArIGxhYmVsICsgJzwvc3Bhbj4nICsgaW5uZXIgKyAnPC9kaXY+JzsgfQogICAgZnVuY3Rpb24gcXBJbihpY29uLCBuYW1lLCBwaCwgdHlwZSwgdmFsKSB7IHJldHVybiAnPGRpdiBjbGFzcz0icXAtY2VsbCI+JyArIGljb24gKyAnPGlucHV0JyArICh0eXBlID8gJyB0eXBlPSInICsgdHlwZSArICciJyA6ICcnKSArICcgZGF0YS1maWVsZD0iJyArIG5hbWUgKyAnIiBwbGFjZWhvbGRlcj0iJyArIGVzYyhwaCkgKyAnIiB2YWx1ZT0iJyArIGVzYyh2YWwgfHwgJycpICsgJyI+PC9kaXY+JzsgfQogICAgZnVuY3Rpb24gcXBEYXRlKHBpY2tlciwgZWRpdCwgaXNvLCBwaCkgewogICAgICB2YXIgZCA9IHBhcnNlSVNPKGlzbyk7CiAgICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxcC1jZWxsIiBkYXRhLXE9InBpY2tlciIgZGF0YS1waWNrZXI9IicgKyBwaWNrZXIgKyAnIicgKyAoZWRpdCA/ICcgZGF0YS1lZGl0PSInICsgZWRpdCArICciJyA6ICcnKSArICc+JyArIFFQLmNhbCArICc8c3BhbiBjbGFzcz0iZHYnICsgKGQgPyAnJyA6ICcgcGgnKSArICciPicgKyAoZCA/IGVzYyhmbXRMb25nKGQpKSA6IGVzYyhwaCkpICsgJzwvc3Bhbj48L2J1dHRvbj4nOwogICAgfQogICAgZnVuY3Rpb24gcXBTZWwoaWNvbiwgbmFtZSwgb3B0cywgdmFsKSB7CiAgICAgIHZhciBoID0gJzxkaXYgY2xhc3M9InFwLWNlbGwiPicgKyBpY29uICsgJzxzZWxlY3QgY2xhc3M9IicgKyAodmFsID8gJycgOiAnZW1wdHknKSArICciIGRhdGEtZmllbGQ9IicgKyBuYW1lICsgJyI+PG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCcgKyAodmFsID8gJycgOiAnIHNlbGVjdGVkJykgKyAnPlNlbGVjdCBhbiBvcHRpb248L29wdGlvbj4nOwogICAgICBvcHRzLmZvckVhY2goZnVuY3Rpb24gKG8pIHsgaCArPSAnPG9wdGlvbicgKyAobyA9PT0gdmFsID8gJyBzZWxlY3RlZCcgOiAnJykgKyAnPicgKyBlc2MobykgKyAnPC9vcHRpb24+JzsgfSk7CiAgICAgIHJldHVybiBoICsgJzwvc2VsZWN0PjxzcGFuIGNsYXNzPSJjaGV2Ij4nICsgUVAuY2hldiArICc8L3NwYW4+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHFwUGF4KCkgewogICAgICByZXR1cm4gJzxkaXYgY2xhc3M9InFwLWNlbGwgcXAtcGF4Ij48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgZGF0YS1xPSJwYXgtbWludXMiIGFyaWEtbGFiZWw9IkZld2VyIHBhc3NlbmdlcnMiPicgKyBRUC5taW51cyArICc8L2J1dHRvbj48c3BhbiBjbGFzcz0idmFsIj4nICsgc3QucGF4ICsgJzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBsdXMiIGRhdGEtcT0icGF4LXBsdXMiIGFyaWEtbGFiZWw9Ik1vcmUgcGFzc2VuZ2VycyI+JyArIFFQLnBsdXMgKyAnPC9idXR0b24+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHRhYnNIdG1sKGNscykgewogICAgICB2YXIgaCA9ICc8ZGl2IGNsYXNzPSInICsgY2xzICsgJyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IlRyaXAgdHlwZSI+JzsKICAgICAgW1snb25ld2F5JywgJ09uZSBXYXknXSwgWydyb3VuZHRyaXAnLCAnUm91bmQgVHJpcCddLCBbJ211bHRpJywgJ011bHRpLUNpdHknXV0uZm9yRWFjaChmdW5jdGlvbiAocCkgewogICAgICAgIGggKz0gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXAtdGFiJyArIChzdC50YWIgPT09IHBbMF0gPyAnIGFjdGl2ZScgOiAnJykgKyAnIiBkYXRhLXE9InRhYiIgZGF0YS10YWI9IicgKyBwWzBdICsgJyIgYXJpYS1wcmVzc2VkPSInICsgKHN0LnRhYiA9PT0gcFswXSkgKyAnIj4nICsgcFsxXSArICc8L2J1dHRvbj4nOwogICAgICB9KTsKICAgICAgcmV0dXJuIGggKyAnPC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHRyaXBSb3dzKGNvbHMpIHsKICAgICAgdmFyIGggPSAnJzsKICAgICAgaWYgKHN0LnRhYiA9PT0gJ211bHRpJykgeyByZXR1cm4gbGVnc0h0bWwoKSArIChjb2xzID8gJycgOiAnPGRpdiBjbGFzcz0icXAtcm93NCBsYXN0Ij4nICsgcXBGaWVsZCgnUGFzc2VuZ2VycycsIHFwUGF4KCkpICsgJzwvZGl2PicpOyB9CiAgICAgIGlmIChjb2xzKSB7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icXAtcm93MmMiPicgKyBxcEZpZWxkKEZST01fTEFCRUwsIHFwSW4oUVAuc2VuZCwgJ2Zyb20nLCAnQ2l0eSBvciBhaXJwb3J0JywgbnVsbCwgc3QuZnJvbSkpICsgcXBGaWVsZCgnR29pbmcgdG8nLCBxcEluKFFQLnBpbiwgJ3RvJywgJ0NpdHkgb3IgYWlycG9ydCcsIG51bGwsIHN0LnRvKSkgKyAnPC9kaXY+JzsKICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxcC1yb3ctaXQiPicgKyBxcEZpZWxkKEZST01fTEFCRUwsIHFwSW4oUVAuc2VuZCwgJ2Zyb20nLCAnQ2l0eSBvciBhaXJwb3J0JywgbnVsbCwgc3QuZnJvbSkpICsKICAgICAgICAgICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFwLXN3YXAiIGRhdGEtcT0ic3dhcCIgYXJpYS1sYWJlbD0iU3dhcCBkZXBhcnR1cmUgYW5kIGRlc3RpbmF0aW9uIj4nICsgUVAuc3dhcCArICc8L2J1dHRvbj4nICsKICAgICAgICAgI
1892HFwRmllbGQoJ0dvaW5nIHRvJywgcXBJbihRUC5waW4sICd0bycsICdDaXR5IG9yIGFpcnBvcnQnLCBudWxsLCBzdC50bykpICsgcXBGaWVsZCgnUGFzc2VuZ2VycycsIHFwUGF4KCkpICsgJzwvZGl2Pic7CiAgICAgIH0KICAgICAgdmFyIGRlcCA9IHFwRmllbGQoJ0RlcGFydCBkYXRlJywgcXBEYXRlKHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCcgPyAncnQnIDogJ293Jywgc3QudGFiID09PSAncm91bmR0cmlwJyA/ICdzdGFydCcgOiBudWxsLCBzdC5kZXBhcnQsICdTZWxlY3QgZGF0ZScpKSArIHFwRmllbGQoJ0RlcGFydCB0aW1lJywgcXBJbihRUC5jbG9jaywgJ3RpbWUnLCAnRmxleGlibGUnLCBudWxsLCBzdC50aW1lKSk7CiAgICAgIHZhciByZXQgPSBzdC50YWIgPT09ICdyb3VuZHRyaXAnID8gcXBGaWVsZCgnUmV0dXJuIGRhdGUnLCBxcERhdGUoJ3J0JywgJ2VuZCcsIHN0LnJldCwgJ1NlbGVjdCBkYXRlJykpICsgcXBGaWVsZCgnUmV0dXJuIHRpbWUnLCBxcEluKFFQLmNsb2NrLCAncmV0VGltZScsICdGbGV4aWJsZScsIG51bGwsIHN0LnJldFRpbWUpKSA6ICcnOwogICAgICBpZiAoY29scykgeyBoICs9ICc8ZGl2IGNsYXNzPSJxcC1yb3cyYyI+JyArIGRlcCArICc8L2Rpdj4nICsgKHJldCA/ICc8ZGl2IGNsYXNzPSJxcC1yb3cyYyI+JyArIHJldCArICc8L2Rpdj4nIDogJycpOyB9CiAgICAgIGVsc2UgeyBoICs9ICc8ZGl2IGNsYXNzPSJxcC1yb3c0IGxhc3QiPicgKyBkZXAgKyByZXQgKyAnPC9kaXY+JzsgfQogICAgICByZXR1cm4gaDsKICAgIH0KICAgIHZhciBGTFlfTk9XID0gWydDb21tZXJjaWFsIGFpcmxpbmVzJywgJ1ByaXZhdGUgY2hhcnRlcicsICdGcmFjdGlvbmFsIG93bmVyc2hpcCcsICdKZXQgY2FyZCAvIG1lbWJlcnNoaXAnLCA
1892nVGhpcyB3b3VsZCBiZSBteSBmaXJzdCBwcml2YXRlIGZsaWdodCddOwogICAgdmFyIEZMWV9GUkVRID0gWydUaGlzIHdvdWxkIGJlIG15IGZpcnN0JywgJzHigJM1IGZsaWdodHMnLCAnNuKAkzEyIGZsaWdodHMnLCAnMTIrIGZsaWdodHMnXTsKICAgIGZ1bmN0aW9uIGNvbnRhY3RDb3JlKCkgewogICAgICByZXR1cm4gcXBGaWVsZCgnRmlyc3QgbmFtZScsIHFwSW4oUVAudXNlciwgJ2ZpcnN0JywgJ0ZpcnN0IG5hbWUnLCBudWxsLCBzdC5maXJzdCkpICsgcXBGaWVsZCgnTGFzdCBuYW1lJywgcXBJbihRUC51c2VyLCAnbGFzdCcsICdMYXN0IG5hbWUnLCBudWxsLCBzdC5sYXN0KSkgKwogICAgICAgIHFwRmllbGQoJ0VtYWlsJywgcXBJbihRUC5tYWlsLCAnZW1haWwnLCAneW91QGVtYWlsLmNvbScsICdlbWFpbCcsIHN0LmVtYWlsKSkgKyBxcEZpZWxkKCdQaG9uZScsIHFwSW4oUVAucGhvbmUsICdwaG9uZScsICcoNTU1KSAwMDAtMDAwMCcsICd0ZWwnLCBzdC5waG9uZSkpOwogICAgfQogICAgZnVuY3Rpb24gbm90ZXNIdG1sKCkgewogICAgICByZXR1cm4gcXBGaWVsZCgnVHJpcCBub3RlcyA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPicsICc8dGV4dGFyZWEgY2xhc3M9InFwLXRhIiBkYXRhLWZpZWxkPSJub3RlcyIgcGxhY2Vob2xkZXI9IkFueXRoaW5nIHdlIHNob3VsZCBrbm93PyBQZXRzLCBjYXRlcmluZywgZ3JvdW5kIHRyYW5zcG9ydCwgc3BlY2lhbCB0aW1pbmfigKYiPicgKyBlc2Moc3Qubm90ZXMpICsgJzwvdGV4dGFyZWE+Jyk7CiAgICB9CiAgICAvKiDilIDilIAgVHdvLXN0ZXAgY2FyZCBpbiB0aGUgcG9saXNoZWQgc3R5bGUgKG93bmVyLCAyMDI2LTA4LTIxIGxhdGUg4oCUIG1pcnJvcnMgdGhlIGxpdmUgc2l0ZSdzIGZsb3cpOgogICAgICAgc3RlcCAxID0gdHJpcCBkZXRhaWxzIOKGkiAiTmV4dCBTdGVwIjsgc3RlcCAyID0gdGhlIGhlYWRlciBzdW1tYXJpc2VzIHRoZSB0cmlwIChFZGl0IGxpbmspIGFuZCB0aGUKICAgICAgIGJvZHkgYXNrcyBmb3IgY29udGFjdCBkZXRhaWxzICsgb3B0aW9uYWwgZXh0cmFzIOKGkiAiR2V0IFF1b3RlIiBzZW5kcyB0aGUgbGVhZC4KICAgICAgIE1vYmlsZSBrZWVwcyB0aGUgZGVzaWduJ3Mgc2luZ2xlLXN0ZXAgc3RhY2tlZCBjYXJkLiDilIDilIAgKi8KICAgIGZ1bmN0aW9uIHFwSGVhZChkb25lKSB7CiAgICAgIHZhciBzMiA9ICFkb25lICYmIHN0LnN0ZXAgPT09IDI7CiAgICAgIHZhciB0aXRsZSA9IGRvbmUgPyAnV2XigJl2ZSBnb3QgeW91ciBkZXRhaWxzLicgOiAoczIgPyAnSG93IGRvIHdlIHJlYWNoIHlvdT8nIDogJ1JlcXVlc3QgYSBDaGFydGVyIEZsaWdodCBRdW90ZScpOwogICAgICB2YXIgc3ViID0gZG9uZSA/ICdBIGRlZGljYXRlZCBhZHZpc29yIHdpbGwgcmV2aWV3IHlvdXIgdHJpcCBhbmQgcmVwbHkgd2l0aCBhaXJjcmFmdCBvcHRpb25zIGFuZCBhbGxcdTIwMTFpbiBwcmljaW5nLicgOgogICAgICAgIChzMiA/ICdUZWxsIHVzIGhvdyB0byByZWFjaCB5b3UgYW5kIGEgY2hhcnRlciBhZHZpc29yIHdpbGwgZ2V0IHRvIHdvcmsuJyA6ICdUZWxsIHVzIGFib3V0IHlvdXIgdHJpcCDigJQgd2UgcmVwbHkgd2l0aCBhaXJjcmFmdCBvcHRpb25zIGFuZCBhbGzigJFpbiBwcmljaW5nLicpOwogICAgICB2YXIgbGVhZCA9IGRvbmUgPyAnPHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0Ij5SZXF1ZXN0IHJlY2VpdmVkPC9zcGFuPicgOgogICAgICAgICc8ZGl2IGNsYXNzPSJxcC10YWJzIHFwLWluZCBxcC1pbmQtc20iIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJRdW90ZSBzdGVwcyI+JyArCiAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXAtdGFiJyArIChzMiA/ICcgZG9uZScgOiAnIGFjdGl2ZScpICsgJyIgZGF0YS1xPSJnby1zdGVwIiBkYXRhLXN0ZXA9IjEiJyArIChzMiA/ICcnIDogJyBhcmlhLWN1cnJlbnQ9InN0ZXAiJykgKyAnPjEgwrcgVHJpcCBkZXRhaWxzPC9idXR0b24+JyArCiAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXAtdGFiJyArIChzMiA/ICcgYWN0aXZlJyA6ICcgbmV4dCcpICsgJyIgZGF0YS1xPSJnby1zdGVwIiBkYXRhLXN0ZXA9IjIiJyArIChzMiA/ICcgYXJpYS1jdXJyZW50PSJzdGVwIicgOiAnJykgKyAnPjIgwrcgQ29udGFjdCBpbmZvPC9idXR0b24+PC9kaXY+JzsKICAgICAgLyogc3RlcCAxOiB0aGUgcmVzcG9uc2UgYmFkZ2Ugc2l0cyBvbiB0aGUgc3RlcHBlciBsaW5lIChvd25lcik7IHN0ZXAgMjogdGhlIHRyaXAgc3VtbWFyeSBjYXJkIG9uIHRoZSByaWdodCBvZiB0aGUgdGl0bGUgKi8KICAgICAgdmFyIGJhZGdlID0gKCFkb25lICYmICFzMikgPyAnPHNwYW4gY2xhc3M9InFwLWJhZGdlIj4nICsgUVAuY2xvY2sgKyAnQXZlcmFnZSByZXNwb25zZTogdW5kZXIgYW4gaG91cjwvc3Bhbj4nIDogJyc7CiAgICAgIHJldHVybiAnPGRpdiBjbGFzcz0icXAtaGVhZCBsaWdodCcgKyAoczIgPyAnIHN0ZXAyJyA6ICcnKSArICciPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxcC1leWVicm93Ij4nICsgbGVhZCArICc8c3BhbiBjbGFzcz0ibGluZSI+PC9zcGFuPicgKyBiYWRnZSArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0icXAtaGVhZC1tYWluIj48ZGl2IGNsYXNzPSJxcC1oZWFkLWwiPjxoMiBjbGFzcz0icXAtdGl0bGUiPicgKyB0aXRsZSArICc8L2gyPjxwIGNsYXNzPSJxcC1zdWIiPicgKyBzdWIgKyAnPC9wPjwvZGl2PicgKwogICAgICAgIChzMiA/ICc8ZGl2IGNsYXNzPSJxcC1oZWFkLXIiPicgKyBzdW1tYXJ5Q2FyZCgpICsgJzwvZGl2PicgOiAnJykgKyAnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHN1bW1hcnlQYXJ0cygpIHsKICAgICAgdmFyIHRyaXAgPSBzdC50YWIgPT09ICdyb3VuZHRyaXAnID8gJ1JvdW5kIHRyaXAnIDogc3QudGFiID09PSAnb25ld2F5JyA/ICdPbmUgd2F5JyA6ICdNdWx0aS1jaXR5JzsKICAgICAgdmFyIHBhcnR5ID0gc3QucGF4ICsgKHN0LnBheCA9PT0gMSA/ICcgcGFzc2VuZ2VyJyA6ICcgcGFzc2VuZ2VycycpOwogICAgICB2YXIgcm91dGUsIHdoZW47CiAgICAgIGlmIChzdC50YWIgPT09ICdtdWx0aScpIHsKICAgICAgICByb3V0ZSA9IHN0LmxlZ3MubWFwKGZ1bmN0aW9uIChsKSB7IHJldHVybi
1892BwbGFjZUZvcihsLmZyb20sICc/JykgKyAnIOKGkiAnICsgcGxhY2VGb3IobC50bywgJz8nKTsgfSkuam9pbignIMK3ICcpOwogICAgICAgIHZhciBkYXRlZCA9IHN0LmxlZ3MuZmlsdGVyKGZ1bmN0aW9uIChsKSB7IHJldHVybiBsLmRhdGU7IH0pOwogICAgICAgIHdoZW4gPSBkYXRlZC5sZW5ndGggPyBkYXRlZC5tYXAoZnVuY3Rpb24gKGwpIHsgcmV0dXJuIGZtdFNob3J0KHBhcnNlSVNPKGwuZGF0ZSkpOyB9KS5qb2luKCcgwrcgJykgOiAnRGF0ZXMgVEJEJzsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgZCA9IHBhcnNlSVNPKHN0LmRlcGFydCksIHIgPSBwYXJzZUlTTyhzdC5yZXQpLCBydCA9IHN0LnRhYiA9PT0gJ3JvdW5kdHJpcCc7CiAgICAgICAgcm91dGUgPSBwbGFjZUZvcihzdC5mcm9tLCAn4oCUJykucmVwbGFjZSgvLFxzKlVTQSQvLCAnJykgKyAnIOKGkiAnICsgcGxhY2VGb3Ioc3QudG8sICfigJQnKS5yZXBsYWNlKC8sXHMqVVNBJC8sICcnKTsKICAgICAgICB3aGVuID0gKGQgPyBmbXRTaG9ydChkKSArIChydCA/ICcg4oCTICcgKyAociA/IGZtdFNob3J0KHIpIDogJ1RCRCcpIDogJycpICsgJywgJyArIGQuZ2V0RnVsbFllYXIoKSA6ICdEYXRlcyBUQkQnKSArCiAgICAgICAgICAoc3QudGltZSB8fCBzdC5yZXRUaW1lID8gJyDCtyAnICsgKHN0LnRpbWUgfHwgJ2ZsZXhpYmxlJykgKyAocnQgPyAnIC8gJyArIChzdC5yZXRUaW1lIHx8ICdmbGV4aWJsZScpIDogJycpIDogJycpOwogICAgICB9CiAgICAgIHJldHVybiB7IHJvdXRlOiByb3V0ZSwgd2hlbjogd2hlbiwgdHJpcDogdHJpcCwgcGFydHk6IHBhcnR5IH07CiAgICB9CiAgICBmdW5jdGlvbiBzdW1tYXJ5Q2FyZCgpIHsKICAgICAgdmFyIHggPSBzdW1tYXJ5UGFydHMoKTsKICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJxcC1zdW0iPjxkaXYgY2xhc3M9InFwLXN1bS1oZWFkIj48c3Bhbj5Zb3VyIHRyaXA8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxcC1zdW0tZWRpdCIgZGF0YS1xPSJiYWNrIj5FZGl0PC9idXR0b24+PC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9InFwLXN1bS1sMSI+JyArIGVzYyh4LnJvdXRlKSArICc8L2Rpdj48ZGl2IGNsYXNzPSJxcC1zdW0tbDIiPicgKyBlc2MoeC53aGVuICsgJyDCtyAnICsgeC50cmlwICsgJyDCtyAnICsgeC5wYXJ0eSkgKyAnPC9kaXY+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHRhbGtIdG1sKCkgeyByZXR1cm4gJzxkaXYgY2xhc3M9InFwLXRhbGsiPjxkaXYgY2xhc3M9ImEiPlByZWZlciB0byB0YWxrPyA8YSBocmVmPSJ0ZWw6JyArIGVzYyhURUwpICsgJyI+JyArIGVzYyhQSE9ORSkgKyAnPC9hPjwvZGl2PjxkaXYgY2xhc3M9ImIiPkFuc3dlcmVkIDI0LzcgYnkgb3VyIGluLWhvdXNlIGNoYXJ0ZXIgdGVhbTwvZGl2PjwvZGl2Pic7IH0KICAgIGZ1bmN0aW9uIHN0ZXAxRm9ybSgpIHsKICAgICAgdmFyIGggPSBxcEhlYWQoZmFsc2UpICsgJzxkaXYgY2xhc3M9InFwLWJvZHkiPjxkaXYgY2xhc3M9InFwLXRvcCI+JyArIHRhYnNIdG1sKCdxcC10YWJzJykgKyAnPC9kaXY+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9InFwLXNlYyI+PHNwYW4gY2xhc3M9InQiPkl0aW5lcmFyeTwvc3Bhbj48c3BhbiBjbGFzcz0ibGluZSI+PC9zcGFuPjwvZGl2PicgKyB0cmlwUm93cyhmYWxzZSk7CiAgICAgIGlmIChlcnJvck1zZykgeyBoICs9ICc8ZGl2IGNsYXNzPSJxZi1lcnJvciI+JyArIGVzYyhlcnJvck1zZykgKyAnPC9kaXY+JzsgfQogICAgICByZXR1cm4gaCArICc8L2Rpdj48ZGl2IGNsYXNzPSJxcC1mb290Ij4nICsgdGFsa0h0bWwoKSArICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFwLXN1Ym1pdCIgZGF0YS1xPSJuZXh0Ij5OZXh0IFN0ZXAnICsgUVAuYXJyb3cgKyAnPC9idXR0b24+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHN0ZXAyRm9ybSgpIHsKICAgICAgdmFyIGggPSBxcEhlYWQoZmFsc2UpICsgJzxkaXYgY2xhc3M9InFwLWJvZHkgcXAtYm9keS1jZW50ZXIiPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxcC1zZWMiPjxzcGFuIGNsYXNzPSJ0Ij5Db250YWN0IGRldGFpbHM8L3NwYW4+PHNwYW4gY2xhc3M9ImxpbmUiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJxcC1yb3c0Ij4nICsgY29udGFjdENvcmUoKSArICc8L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0icXAtcm93MyI+JyArIHFwRmllbGQoJ0hvdyBkbyB5b3UgcHJpbWFyaWx5IGZseSBub3c/IDxzcGFuIGNsYXNzPSJvcHQiPihvcHRpb25hbCk8L3NwYW4+JywgcXBTZWwoUVAuc2VuZCwgJ2ZseU5vdycsIEZMWV9OT1csIHN0LmZseU5vdykpICsKICAgICAgICBxcEZpZWxkKCdIb3cgb2Z0ZW4gZG8geW91IGZseSBwcml2YXRlIHBlciB5ZWFyPyA8c3BhbiBjbGFzcz0ib3B0Ij4ob3B0aW9uYWwpPC9zcGFuPicsIHFwU2VsKFFQLmNhbCwgJ2ZseUZyZXEnLCBGTFlfRlJFUSwgc3QuZmx5RnJlcSkpICsKICAgICAgICBxcEZpZWxkKCdUcmlwIG5vdGVzIDxzcGFuIGNsYXNzPSJvcHQiPihvcHRpb25hbCk8L3NwYW4+JywgcXBJbihRUC5ub3RlLCAnbm90ZXMnLCAnUGV0cywgY2F0ZXJpbmcsIGdyb3VuZCB0cmFuc3BvcnTigKYnLCBudWxsLCBzdC5ub3RlcykpICsgJzwvZGl2Pic7CiAgICAgIGlmIChlcnJvck1zZykgeyBoICs9ICc8ZGl2IGNsYXNzPSJxZi1lcnJvciI+JyArIGVzYyhlcnJvck1zZykgKyAnPC9kaXY+JzsgfQogICAgICByZXR1cm4gaCArICc8L2Rpdj48ZGl2IGNsYXNzPSJxcC1mb290Ij4nICsgdGFsa0h0bWwoKSArCiAgICAgICAgJzxsYWJlbCBjbGFzcz0icXAtcmVmIj4nICsgUVAudGFnICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJyZWZlcnJhbCIgcGxhY2Vob2xkZXI9IlJlZmVycmFsIGNvZGUiIHZhbHVlPSInICsgZXNjKHN0LnJlZmVycmFsKSArICciIGFyaWEtbGFiZWw9IlJlZmVycmFsIGNvZGUiPjwvbGFiZWw+JyArCiAgICAgICAgJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXAtc3VibWl0IiBkYXRhLXE9InN1Ym1pdCInICsgKHNlbmRpbmcgPyAnIGRpc2FibGVkJyA6ICcnKSArICc+JyArIChzZW5kaW5nID8gJ1NlbmRpbmfigKYnIDogJ0dldCBRdW90ZScgKyBRUC5hcnJvdykgKyAnPC9idXR0b24+PC9kaXY+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHBvbGlzaGVkRm9ybSgpIHsgcmV0dXJuIHN0LnN0ZXAgPT09IDIgPyBzdGVwMkZvcm0oKSA6IHN0ZXAxRm9ybSgpOyB9CiAgICBmdW5jdGlvbiByb3V0ZU9rKCkgeyByZXR1cm4gc3QudGFiID09PSAnbXVsdGknID8gc3QubGVncy5zb21lKGZ1bmN0aW9uIChsKSB7IHJldHVybi
1892BsLmZyb20gJiYgbC50bzsgfSkgOiAhIShzdC5mcm9tICYmIHN0LnRvKTsgfQogICAgZnVuY3Rpb24gY29udGFjdE9rKCkgeyBzdC5uYW1lID0gKChzdC5maXJzdCB8fCAnJykgKyAnICcgKyAoc3QubGFzdCB8fCAnJykpLnRyaW0oKTsgcmV0dXJuICEhKHN0Lm5hbWUgJiYgc3QuZW1haWwgJiYgc3QucGhvbmUpOyB9CiAgICBmdW5jdGlvbiBnb1N0ZXAyKCkgeyBpZiAoJCgnLnFmLWVycm9yJywgcm9vdEVsKSkgeyBlcnJvck1zZyA9ICcnOyByZW5kZXIoKTsgfSBpZiAoc3dpdGNoU3RlcCgyKSkgeyB0cmFja0V2ZW50KCdmb3JtX3N0ZXAnLCB7IGZvcm06ICdxdW90ZS1zdGVwcycsIHN0ZXA6IDIgfSk7IH0gfQogICAgLyogc2xpZGUgYmV0d2VlbiBzdGVwcyDigJQgbm8gc2Nyb2xsaW5nOyB0aGUgY2FyZCBob2xkcyB0aGUgc2l6ZSB0aGUgdmlzaXRvciBpcyBsb29raW5nIGF0IHRocm91Z2ggdGhlCiAgICAgICBzbGlkZSwgc3RlcCAyIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiB0aGUgc3RlcC0xIGNhcmQgaXQgcmVwbGFjZXMsIHN0ZXAgMSBmb2xsb3dzIGl0cyBvd24gY29udGVudCAqLwogICAgdmFyIHBlbmRpbmdTdGVwID0gMDsKICAgIGZ1bmN0aW9uIHN3aXRjaFN0ZXAobiwgZm9jdXNTZWwpIHsKICAgICAgaWYgKGRzU3RhdGUub3BlbikgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgdmFyIGN1ciA9IHBlbmRpbmdTdGVwIHx8IHN0LnN0ZXA7CiAgICAgIGlmIChuID09PSBjdXIpIHsgaWYgKGZvY3VzU2VsICYmICFwZW5kaW5nU3RlcCkgeyBmb2N1c0ZpZWxkKGZvY3VzU2VsLCB0cnVlKTsgfSByZXR1cm4gZmFsc2U7IH0KICAgICAgaWYgKHBlbmRpbmdTdGVwKSB7IHJldHVybiBmYWxzZTsgfSAgICAgICAgICAgICAgICAgICAgICAgLyogYSBzbGlkZSBpcyBhbHJlYWR5IGluIGZsaWdodCAqLwogICAgICBwZW5kaW5nU3RlcCA9IG47CiAgICAgI
1892HZhciBoMCA9IHJvb3RFbC5vZmZzZXRIZWlnaHQ7CiAgICAgIGlmIChoMCkgeyByb290RWwuc3R5bGUubWluSGVpZ2h0ID0gaDAgKyAncHgnOyB9CiAgICAgIHZhciBkaXIgPSBuID4gc3Quc3RlcCA/ICdxcC1md2QnIDogJ3FwLWJ3ZCc7CiAgICAgIHJvb3RFbC5jbGFzc0xpc3QuYWRkKCdxcC1zd2l0Y2hpbmcnLCBkaXIpOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBzdC5zdGVwID0gbjsgcGVuZGluZ1N0ZXAgPSAwOyByZW5kZXIoKTsKICAgICAgICByb290RWwuc3R5bGUubWluSGVpZ2h0ID0gJyc7CiAgICAgICAgaWYgKG4gPT09IDIgJiYgaDApIHsgcm9vdEVsLnN0eWxlLm1pbkhlaWdodCA9IE1hdGgubWF4KGgwLCByb290RWwub2Zmc2V0SGVpZ2h0KSArICdweCc7IH0KICAgICAgICByb290RWwuY2xhc3NMaXN0LnJlbW92ZSgncXAtc3dpdGNoaW5nJyk7IHJvb3RFbC5jbGFzc0xpc3QuYWRkKCdxcC1lbnRlcicpOwogICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7CiAgICAgICAgICByb290RWwuY2xhc3NMaXN0LnJlbW92ZSgncXAtZW50ZXInLCAncXAtZndkJywgJ3FwLWJ3ZCcpOwogICAgICAgICAgZm9jdXNGaWVsZChmb2N1c1NlbCB8fCAobiA9PT0gMiA/ICdpbnB1dFtkYXRhLWZpZWxkPSJmaXJzdCJdJyA6ICdpbnB1dFtkYXRhLWZpZWxkPSJmcm9tIl0nKSwgISFmb2N1c1NlbCk7CiAgICAgICAgfSk7IH0pOwogICAgICB9LCAxNzApOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGZ1bmN0aW9uIGZvY3VzRmllbGQoc2VsLCBmb3JjZSkgewogICAgICB2YXIgZiA9ICQoc2VsLCByb290RWwpOwogICAgICBpZiAoZiAmJiAoZm9yY2UgfHwgIWNvYXJzZSgpKSkgeyBzYWZlRm9jdXMoZik7IH0KICAgIH0KICAgIGlmIChzdGVwcyAmJiAhbW9iaWxlKSB7CiAgICAgIHZhciByelQgPSAwOwogICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyBjbGVhclRpbWVvdXQocnpUKTsgcnpUID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGlmIChzdC5zdGVwID09PSAyICYmICFwZW5kaW5nU3RlcCkgeyByb290RWwuc3R5bGUubWluSGVpZ2h0ID0gJyc7IH0gfSwgMTUwKTsgfSk7CiAgICB9CiAgICAvKiBHZXQgUXVvdGUgd2l0aCBhIHN0ZXAgbWlzc2luZyDihpIgZXhwbGFpbiwgdGhlbiBzbGlkZSB0byB0aGUgc3RlcCB0aGF0IG5lZWRzIGZpbGxpbmcgKi8KICAgIGZ1bmN0aW9uIHJlcXVpcmVTdGVwcygpIHsKICAgICAgaWYgKCFyb3V0ZU9rKCkpIHsKICAgICAgICBzaG93Tm90aWNlKHsgdGl0bGU6ICdXZSBzdGlsbCBuZWVkIHlvdXIgdHJpcCBkZXRhaWxzJywgdGV4dDogc3QudGFiID09PSAnbXVsdGknID8gJ0FkZCB3aGVyZSBlYWNoIGxlZyBmbGllcyBmcm9tIGFuZCB0bywgdGhlbiBzZW5kIHlvdXIgcmVxdWVzdC4nIDogJ0FkZCB3aGVyZSB5b3XigJlyZSBmbHlpbmcgZnJvbSBhbmQgdG8sIHRoZW4gc2VuZCB5b3VyIHJlcXVlc3QuJywgYnV0dG9uOiAnQWRkIHRyaXAgZGV0YWlscycsCiAgICAgICAgICBvbk9rOiBmdW5jdGlvbiAoKSB7IHN3aXRjaFN0ZXAoMSwgc3QudGFiID09PSAnbXVsdGknID8gKChzdC5sZWdzWzBdICYmIHN0LmxlZ3NbMF0uZnJvbSkgPyAnaW5wdXRbZGF0YS1sZWctZmllbGQ9InRvIl0nIDogJ2lucHV0W2RhdGEtbGVnLWZpZWxkPSJmcm9tIl0nKSA6IChzdC5mcm9tID8gJ2lucHV0W2RhdGEtZmllbGQ9InRvIl0nIDogJ2lucHV0W2RhdGEtZmllbGQ9ImZyb20iXScpKTsgfSB9KTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgaWYgKCFjb250YWN0T2soKSkgewogICAgICAgIHNob3dOb3RpY2UoeyB0aXRsZTogJ1dlIHN0aWxsIG5lZWQgeW91ciBjb250YWN0IGluZm8nLCB0ZXh0OiAnQWRkIHlvdXIgbmFtZSwgZW1haWwgYW5kIHBob25lIHNvIGEgY2hhcnRlciBhZHZpc29yIGNhbiByZXBseSB3aXRoIHlvdXIgcXVvdGUuJywgYnV0dG9uOiAnQWRkIGNvbnRhY3QgaW5mbycsCiAgICAgICAgICBvbk9rOiBmdW5jdGlvbiAoKSB7IHN3aXRjaFN0ZXAoMiwgIXN0LmZpcnN0ID8gJ2lucHV0W2RhdGEtZmllbGQ9ImZpcnN0Il0nIDogIXN0Lmxhc3QgPyAnaW5wdXRbZGF0YS1maWVsZD0ibGFzdCJdJyA6ICFzdC5lbWFpbCA/ICdpbnB1dFtkYXRhLWZpZWxkPSJlbWFpbCJdJyA6ICdpbnB1dFtkYXRhLWZpZWxkPSJwaG9uZSJdJyk7IH0gfSk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgLyogc3VibWl0dGVkIGNvbnRhY3QgZGV0YWlscyBmb3IgdGhlIHN1Y2Nlc3Mgc2NyZWVucyAqLwogICAgZnVuY3Rpb24gZGV0YWlsUm93cygpIHsKICAgICAgdmFyIHJvd3MgPSBbeyBrOiAnTmFtZScsIHY6IHN0Lm5hbWUgfSwgeyBrOiAnRW1haWwnLCB2OiBzdC5lbWFpbCB9LCB7IGs6ICdQaG9uZScsIHY6IHN0LnBob25lIH1dOwogICAgICBpZiAoc3QudGltZSAmJiBzdC50YWIgIT09ICdtdWx0aScpIHsgcm93cy5wdXNoKHsgazogJ0RlcGFydCB0aW1lJywgdjogc3QudGltZSB9KTsgfQogICAgICBpZiAoc3QucmV0VGltZSAmJiBzdC50YWIgPT09ICdyb3VuZHRyaXAnKSB7IHJvd3MucHVzaCh7IGs6ICdSZXR1cm4gdGltZScsIHY6IHN0LnJldFRpbWUgfSk7IH0KICAgICAgaWYgKHN0LmZseU5vdykgeyByb3dzLnB1c2goeyBrOiAnRmxpZXMgbm93Jywgdjogc3QuZmx5Tm93IH0pOyB9CiAgICAgIGlmIChzdC5mbHlGcmVxKSB7IHJvd3MucHVzaCh7IGs6ICdQZXIgeWVhcicsIHY6IHN0LmZseUZyZXEgfSk7IH0KICAgICAgaWYgKHN0LnJlZmVycmFsKSB7IHJvd3MucHVzaCh7IGs6ICdSZWZlcnJhbCcsIHY6IHN0LnJlZmVycmFsIH0pOyB9CiAgICAgIGlmIChzdC5ub3RlcykgeyByb3dzLnB1c2goeyBrOiAnTWVzc2FnZScsIHY6IHN0Lm5vdGVzIH0pOyB9CiAgICAgIHJldHVybiByb3dzOwogICAgfQogICAgZnVuY3Rpb24gcmVuZGVyKCkgewogICAgICBpZiAoc3VibWl0dGVkKSB7CiAgICAgICAgdmFyIGhlYWRpbmcgPSBzdC5uYW1lID8gJ1RoYW5rcywgJyArIGZpcnN0TmFtZShzdC5uYW1lKSArICcuJyA6ICdZb3XigJlyZSBvbiBvdXIgcmFkYXIuJzsKICAgICAgICB2Y
1892XIgc3VjY2VzcyA9IG1vYmlsZQogICAgICAgICAgPyBzdWNjZXNzTW9iaWxlKHsgaGVhZGluZzogJ1dl4oCZdmUgZ290IGl0JyArIChzdC5uYW1lID8gJywgJyArIGZpcnN0TmFtZShzdC5uYW1lKSA6ICcnKSArICcuJywgc3ViOiAnQSBjaGFydGVyIGFkdmlzb3Igd2lsbCByZXZpZXcgeW91ciByZXF1ZXN0IGFuZCBiZSBpbiB0b3VjaCBzaG9ydGx5LicsIHJvd3M6IHF1b3RlUm93cyhzdCkuY29uY2F0KGRldGFpbFJvd3MoKS5zbGljZSgzKSkgfSkKICAgICAgICAgIDogc3VjY2Vzc0Rlc2t0b3AoeyBleWVicm93OiAnUmVxdWVzdCByZWNlaXZlZCcsIGhlYWRpbmc6IGhlYWRpbmcsIHN1YjogJ1dl4oCZdmUgbG9nZ2VkIHlvdXIgdHJpcCDigJQgYSBjaGFydGVyIGFkdmlzb3Igd2lsbCByZXZpZXcgaXQgYW5kIHJlcGx5IHdpdGggYWlyY3JhZnQgb3B0aW9ucy4nLCByZWNlaXB0OiByb3V0ZVJlY2VpcHQoc3QpLCByb3dzOiBkZXRhaWxSb3dzKCksIHN0ZXBzOiBRVU9URV9TVEVQUywgd2lkZTogdHJ1ZSwgc3RlcHNMZWZ0OiBzdGVwcyB9KTsKICAgICAgICByb290RWwuaW5uZXJIVE1MID0gc3RlcHMgPyAobW9iaWxlID8gJzxkaXYgY2xhc3M9InFmLWJvZHkgcWYtbm9oZWFkIj4nICsgc3VjY2VzcyArICc8L2Rpdj4nIDogcXBIZWFkKHRydWUpICsgJzxkaXYgY2xhc3M9InFwLWJvZHkgcXAtc3VjY2VzcyI+JyArIHN1Y2Nlc3MgKyAnPC9kaXY+JykgOiBzdWNjZXNzOwogICAgICAgIGlmICghc3RlcHMgJiYgIW1vYmlsZSAmJiBsb2NrZWRIKSB7ICAgLyogY2FyZCB2YXJpYW50OiByZWNlaXB0IGNlbnRyZWQgaW4gdGhlIHNwYWNlIHRoZSBmb3JtIG9jY3VwaWVkICovCiAgICAgICAgICB2Y
1892XIgY3MgPSBnZXRDb21wdXRlZFN0eWxlKHJvb3RFbCksIGlubmVyID0gbG9ja2VkSCAtIHBhcnNlRmxvYXQoY3MucGFkZGluZ1RvcCkgLSBwYXJzZUZsb2F0KGNzLnBhZGRpbmdCb3R0b20pOwogICAgICAgICAgdmFyIGZ4ID0gJCgnLmZzeCcsIHJvb3RFbCk7IGlmIChmeCkgeyBmeC5zdHlsZS5taW5IZWlnaHQgPSBNYXRoLm1heCgwLCBpbm5lcikgKyAncHgnOyB9CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIga2VlcCA9IGZvY3VzS2V5KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpOwogICAgICByb290RWwuaW5uZXJIVE1MID0gc3RlcHMgPyAobW9iaWxlID8gYm94ZWRGb3JtKCkgOiBwb2xpc2hlZEZvcm0oKSkgOiB0cmlwSHRtbCgpICsgY29udGFjdEh0bWwoKTsKICAgICAgYmluZCgpOwogICAgICBpZiAoa2VlcCAmJiAhcGVuZGluZ1N0ZXApIHsgdmFyIGtmID0gJChrZWVwLCByb290RWwpOyBpZiAoa2YgJiYgIWtmLmRpc2FibGVkICYmICFjb2Fyc2UoKSkgeyBzYWZlRm9jdXMoa2YpOyB9IH0KICAgIH0KICAgIC8qIHNlbGVjdG9yIHRoYXQgc3Vydml2ZXMgYW4gaW5uZXJIVE1MIHN3YXAsIHNvIGEgcmUtcmVuZGVyICh0YWIsIHBheCwgc3dhcCwgbGVncykga2VlcHMga2V5Ym9hcmQgZm9jdXMgKi8KICAgIGZ1bmN0aW9uIGZvY3VzS2V5KGVsKSB7CiAgICAgIGlmICghZWwgfHwgZWwgPT09IGRvY3VtZW50LmJvZHkgfHwgIXJvb3RFbC5jb250YWlucyhlbCkpIHsgcmV0dXJuIG51bGw7IH0KICAgICAgdmFyIGsgPSBbJ2RhdGEtcScsICdkYXRhLXRhYicsICdkYXRhLWZpZWxkJywgJ2RhdGEtbGVnLWZpZWxkJywgJ2RhdGEtbGVnLWlkeCcsICdkYXRhLWlkeCcsICdkYXRhLXBpY2tlcicsICdkYXRhLWVkaXQnLCAnZGF0YS1zdGVwJ10ubWFwKGZ1bmN0aW9uIChhKSB7IHZhciB2ID0gZWwuZ2V0QXR0cmlidXRlKGEpOyByZXR1cm4gdiA9PSBudWxsID8gJycgOiAnWycgKyBhICsgJz0iJyArIHYgKyAnIl0nOyB9KS5qb2luKCcnKTsKICAgICAgcmV0dXJuIGsgfHwgbnVsbDsKICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZVJldmlldygpIHsgdm9pZCByZXZpZXdCb2R5OyB9CiAgICBmdW5jdGlvbiBiaW5kKCkgewogICAgICAvKiBhMTF5OiBuYW1lIGVhY2ggY29udHJvbCBmcm9tIGl0cyB2aXNpYmxlIGxhYmVsIChsYWJlbHMgYXJlIHNwYW5zIC8gdW5saW5rZWQgPGxhYmVsPnMpICovCiAgICAgICQkKCcucXAtbGFiZWwsIC5xZi1sYWJlbCcsIHJvb3RFbCkuZm9yRWFjaChmdW5jdGlvbiAobGFiKSB7CiAgICAgICAgdmFyIHdyYXAgPSBsYWIucGFyZW50Tm9kZTsgaWYgKCF3cmFwIHx8IHdyYXAuY2xhc3NMaXN0LmNvbnRhaW5zKCdxZi1sZWdzJykpIHsgcmV0dXJuOyB9CiAgICAgICAgdmFyIGN0bCA9IHdyYXAucXVlcnlTZWxlY3RvcignaW5wdXQ6bm90KFthcmlhLWxhYmVsXSksIHNlbGVjdDpub3QoW2FyaWEtbGFiZWxdKSwgdGV4dGFyZWE6bm90KFthcmlhLWxhYmVsXSksIGJ1dHRvbltkYXRhLXE9InBpY2tlciJdOm5vdChbYXJpYS1sYWJlbF0pJyk7CiAgICAgICAgaWYgKCFjdGwgfHwgKGN0bC5sYWJlbHMgJiYgY3RsLmxhYmVscy5sZW5ndGgpKSB7IHJldHVybjsgfQogICAgICAgIHZhciB0eHQgPSAobGFiLnRleHRDb250ZW50IHx8ICcnKS5yZXBsYWNlKC9ccysvZywgJyAnKS50cmltKCk7CiAgICAgICAgaWYgKHR4dCkgeyBjdGwuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdHh0KTsgfQogICAgICB9KTsKICAgICAgJCQoJ1tkYXRhLXE9InRhYiJdJywgcm9vdEVsKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7IGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IHN0LnRhYiA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLXRhYicpOyBlcnJvck1zZyA9ICcnOyByZW5kZXIoKTsgfSk7IH0pOwogICAgICAkJCgnW2RhdGEtZmllbGRdJywgcm9vdEVsKS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgc3RbZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWZpZWxkJyldID0gZWwudmFsdWU7CiAgICAgICAgICBpZiAoZWwudGFnTmFtZSA9PT0gJ1NFTEVDVCcpIHsgZWwuY2xhc3NMaXN0LnRvZ2dsZSgnZW1wdHknLCAhZWwudmFsdWUpOyB9CiAgICAgICAgICB1cGRhdGVSZXZpZXcoKTsKICAgICAgICB9OwogICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgaGFuZGxlcik7CiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgaGFuZGxlcik7CiAgICAgIH0pOwogICAgICAkJCgnW2RhdGEtbGVnLWZpZWxkXScsIHJvb3RFbCkuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsKICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHZhciBpZHggPSBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGVnLWlkeCcpLCAxMCk7CiAgICAgICAgICBzdC5sZWdzW2lkeF1bZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWxlZy1maWVsZCcpXSA9IGVsLnZhbHVlOwogICAgICAgICAgdXBkYXRlUmV2aWV3KCk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgICAkJCgnW2RhdGEtcT0ibmV4dCJdJywgcm9vdEVsKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7IGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBnb1N0ZXAyKTsgfSk7CiAgICAgICQkKCdbZGF0YS1xPSJiYWNrIl0nLCByb290RWwpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgZXJyb3JNc2cgPSAnJzsgc3dpdGNoU3RlcCgxKTsgfSk7IH0pOwogICAgICAkJCgnW2RhdGEtcT0iZ28tc3RlcCJdJywgcm9vdEVsKS5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7IGIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IGVycm9yTXNnID0gJyc7IHN3aXRjaFN0ZXAocGFyc2VJbnQoYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RlcCcpLCAxMCkpOyB9KTsgfSk7CiAgICAgIHZhciBzd2FwID0gJCgnW2RhdGEtcT0ic3dhcCJdJywgcm9vdEVsKTsKICAgICAgaWYgKHN3YXApIHsgc3dhcC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgdmFyIHQgPSBzdC5mcm9tOyBzdC5mcm9tID0gc3QudG87IHN0LnRvID0gdDsgcmVuZGVyKCk7IH0pOyB9CiAgICAgI
1892HZhciBtaW51cyA9ICQoJ1tkYXRhLXE9InBheC1taW51cyJdJywgcm9vdEVsKSwgcGx1cyA9ICQoJ1tkYXRhLXE9InBheC1wbHVzIl0nLCByb290RWwpOwogICAgICBpZiAobWludXMpIHsgbWludXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IHN0LnBheCA9IE1hdGgubWF4KDEsIChwYXJzZUludChzdC5wYXgsIDEwKSB8fCAxKSAtIDEpOyByZW5kZXIoKTsgfSk7IH0KICAgICAgaWYgKHBsdXMpIHsgcGx1cy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc3QucGF4ID0gTWF0aC5taW4oMTksIChwYXJzZUludChzdC5wYXgsIDEwKSB8fCAwKSArIDEpOyByZW5kZXIoKTsgfSk7IH0KICAgICAgJCQoJ1tkYXRhLXE9ImxlZy1yZW1vdmUiXScsIHJvb3RFbCkuZm9yRWFjaChmdW5jdGlvbiAoYikgeyBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBzdC5sZWdzLnNwbGljZShwYXJzZUludChiLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApLCAxKTsgcmVuZGVyKCk7IH0pOyB9KTsKICAgICAgdmFyIGFkZCA9ICQoJ1tkYXRhLXE9ImxlZy1hZGQiXScsIHJvb3RFbCk7CiAgICAgIGlmIChhZGQpIHsgYWRkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBzdC5sZWdzLnB1c2goeyBmcm9tOiAnJywgdG86ICcnLCBkYXRlOiAnJywgdGltZTogJycgfSk7IHJlbmRlcigpOyB9KTsgfQogICAgICAkJCgnW2RhdGEtcT0icGlja2VyIl0nLCByb290RWwpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsKICAgICAgICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgIHZhciBwID0gYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGlja2VyJyksIGVkaXQgPSBiLmdldEF0dHJpYnV0ZSgnZGF0YS1lZGl0Jyk7CiAgICAgICAgICBpZiAocCA9PT0gJ3J0JykgewogICAgICAgICAgICBvcGVuRGF0ZVNoZWV0KHsgbW9kZTogJ3JhbmdlJywgdmFsdWU6IHsgc3RhcnQ6IHBhcnNlSVNPKHN0LmRlcGFydCksIGVuZDogcGFyc2VJU08oc3QucmV0KSB9LCBpbml0aWFsRm9jdXM6IGVkaXQgPT09ICdlbmQnID8gJ2VuZCcgOiAnc3RhcnQnLCB0aXRsZTogJ1JvdW5kIHRyaXAgZGF0ZXMnLCBzdGFydExhYmVsOiAnRGVwYXJ0JywgZW5kTGFiZWw6ICdSZXR1cm4nLAogICAgICAgICAgICAgIG9uQ29tbWl0OiBmdW5jdGlvbiAodikgeyBzdC5kZXBhcnQgPSB2ICYmIHYuc3RhcnQgPyB0b0lTTyh2LnN0YXJ0KSA6ICcnOyBzdC5yZXQgPSB2ICYmIHYuZW5kID8gdG9JU08odi5lbmQpIDogJyc7IHJlbmRlcigpOyB9IH0pOwogICAgICAgICAgfSBlbHNlIGlmIChwID09PSAnb3cnKSB7CiAgICAgICAgICAgIG9wZW5EYXRlU2hlZXQoeyBtb2RlOiAnc2luZ2xlJywgdmFsdWU6IHBhcnNlSVNPKHN0LmRlcGFydCksIHRpdGxlOiAnRGVwYXJ0dXJlIGRhdGUnLCBvbkNvbW1pdDogZnVuY3Rpb24gKGQpIHsgc3QuZGVwYXJ0ID0gZCA/IHRvSVNPKGQpIDogJyc7IHJlbmRlcigpOyB9IH0pOwogICAgICAgICAgfSBlbHNlIGlmIChwLmluZGV4T2YoJ2xlZy0nKSA9PT0gMCkgewogICAgICAgICAgICB2Y
1892XIgbGkgPSBwYXJzZUludChwLnNwbGl0KCctJylbMV0sIDEwKTsKICAgICAgICAgICAgb3BlbkRhdGVTaGVldCh7IG1vZGU6ICdzaW5nbGUnLCB2YWx1ZTogcGFyc2VJU08oc3QubGVnc1tsaV0gPyBzdC5sZWdzW2xpXS5kYXRlIDogJycpLCB0aXRsZTogJ0xlZyAnICsgKGxpICsgMSkgKyAnIGRhdGUnLCBvbkNvbW1pdDogZnVuY3Rpb24gKGQpIHsgaWYgKHN0LmxlZ3NbbGldKSB7IHN0LmxlZ3NbbGldLmRhdGUgPSBkID8gdG9JU08oZCkgOiAnJzsgfSByZW5kZXIoKTsgfSB9KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHZhciBzdWJtaXQgPSAkKCdbZGF0YS1xPSJzdWJtaXQiXScsIHJvb3RFbCk7CiAgICAgIGlmIChzdWJtaXQpIHsgc3VibWl0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlU3VibWl0KTsgfQogICAgICBlbmhhbmNlU2VsZWN0cyhyb290RWwpOwogICAgfQogICAgZnVuY3Rpb24gaGFuZGxlU3VibWl0KCkgewogICAgICBpZiAoZHNTdGF0ZS5vcGVuIHx8IG5vdGljZU9wZW4pIHsgcmV0dXJuOyB9CiAgICAgIGVycm9yTXNnID0gJyc7CiAgICAgIGlmIChzdGVwcykgeyBzdC5uYW1lID0gKChzdC5maXJzdCB8fCAnJykgKyAnICcgKyAoc3QubGFzdCB8fCAnJykpLnRyaW0oKTsgfQogICAgICBpZiAoc3RlcHMgJiYgIW1vYmlsZSAmJiAhcmVxdWlyZVN0ZXBzKCkpIHsgcmV0dXJuOyB9CiAgICAgIGlmICghc3QubmFtZSB8fCAhc3QuZW1haWwgfHwgIXN0LnBob25lKSB7IGVycm9yTXNnID0gJ1BsZWFzZSBhZGQgeW91ciBuYW1lLCBlbWFpbCBhbmQgcGhvbmUuJzsgcmVuZGVyKCk7IHJldHVybjsgfQogICAgICBzZW5kaW5nID0gdHJ1ZTsgcmVuZGVyKCk7CiAgICAgIHZhciB1c2VyTXNnID0gc3Qubm90ZXMgfHwgJyc7CiAgICAgIGlmIChzdC50YWIgPT09ICdtdWx0aScgJiYgc3QubGVncy5sZW5ndGgpIHsKICAgICAgICB1c2VyTXNnID0gKHVzZXJNc2cgPyB1c2VyTXNnICsgJ1xuXG4nIDogJycpICsgJ011bHRpLWNpdHkgaXRpbmVyYXJ5OlxuJyArIHN0LmxlZ3MubWFwKGZ1bmN0aW9uIChsLCBpKSB7IHJldHVybiAnTGVnICcgKyAoaSArIDEpICsgJzogJyArIChsLmZyb20gfHwgJz8nKSArICcg4oaSICcgKyAobC50byB8fCAnPycpICsgKGwuZGF0ZSA/ICcgb24gJyArIGwuZGF0ZSA6ICcnKSArIChsLnRpbWUgPyAnICcgKyBsLnRpbWUgOiAnJyk7IH0pLmpvaW4oJ1xuJyk7CiAgICAgIH0KICAgICAgdmFyIGdvUmVmID0gY2FwdHVyZVJlZmVycmFsKCk7CiAgICAgIHZhciBleHRyYSA9IFtdOwogICAgICBpZiAoc3QuZmx5Tm93KSB7IGV4dHJhLnB1c2goeyBsYWJlbDogJ0hvdyB0aGV5IGZseSBub3cnLCB2YWx1ZTogc3QuZmx5Tm93IH0pOyB9CiAgICAgIGlmIChzdC5mbHlGcmVxKSB7IGV4dHJhLnB1c2goeyBsYWJlbDogJ1ByaXZhdGUgZmxpZ2h0cyBwZXIgeWVhcicsIHZhbHVlOiBzdC5mbHlGcmVxIH0pOyB9CiAgICAgIHZhciBwYXlsb2FkID0gewogICAgICAgIHNvdXJjZTogU1JDICsgJy0nICsgKG1vYmlsZSA/ICdtb2JpbGUnIDogJ2Rlc2t0b3AnKSwga2luZDogJ3F1b3RlJywgcGFnZTogUEFHRSwgdGFiOiBzdC50YWIsCiAgICAgICAgbmFtZTogc3QubmFtZSwgZW1haWw6IHN0LmVtYWlsLCBwaG9uZTogc3QucGhvbmUsIG1lc3NhZ2U6IHVzZXJNc2csCiAgICAgICAgZnJvbTogc3QudGFiID09PSAnbXVsdGknID8gJycgOiBzdC5mcm9tLCB0bzogc3QudGFiID09PSAnbXVsdGknID8gJycgOiBzdC50bywKICAgICAgICB0cmF2ZWxEYXRlOiBzdC50YWIgPT09ICdtdWx0aScgPyAnJyA6IHN0LmRlcGFydCwgcmV0dXJuRGF0ZTogc3QudGFiID09PSAncm91bmR0cmlwJyA/IHN0LnJldCA6ICcnLAogICAgICAgIHRyYXZlbFRpbWU6IHN0LnRhYiA9PT0gJ211bHRpJyA/ICcnIDogc3QudGltZSwgcmV0dXJuVGltZTogc3QudGFiID09PSAncm91bmR0cmlwJyA/IHN0LnJldFRpbWUgOiAnJywgcGF4OiBzdC5wYXgsIGxlZ3M6IHN0LnRhYiA9PT0gJ211bHRpJyA/IHN0LmxlZ3MgOiBbXSwKICAgICAgICByZWZlcnJhbDogc3QucmVmZXJyYWwsIGdvUmVmZXJyYWw6IGdvUmVmLCBleHRyYTogZXh0cmEsIGdlYXI6IFtdLCBjYXRlcmluZzogJ05vbmUnLCBlc3RpbWF0ZXM6IFtdCiAgICAgI
1892H07CiAgICAgIHRyYWNrRXZlbnQoJ2Zvcm1fc3VibWl0JywgeyBmb3JtOiAncXVvdGUtJyArIHZhcmlhbnQgKyAobW9iaWxlID8gJy1tb2JpbGUnIDogJycpLCB0YWI6IHN0LnRhYiB9KTsKICAgICAgdmFyIGRvbmUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgc3VibWl0dGVkID0gdHJ1ZTsgc2VuZGluZyA9IGZhbHNlOwogICAgICAgIGlmICghbW9iaWxlKSB7CiAgICAgICAgICAvKiBrZWVwIHRoZSBjYXJkIHRoZSBzaXplIHRoZSB2aXNpdG9yIGlzIGxvb2tpbmcgYXQgYW5kIGNyb3NzZmFkZSBpbnRvIHRoZSByZWNlaXB0ICovCiAgICAgICAgICBsb2NrZWRIID0gcm9vdEVsLm9mZnNldEhlaWdodDsgcm9vdEVsLnN0eWxlLm1pbkhlaWdodCA9IGxvY2tlZEggKyAncHgnOyByb290RWwuc3R5bGUuY29udGFpbmVyVHlwZSA9ICdpbmxpbmUtc2l6ZSc7CiAgICAgICAgICByb290RWwuY2xhc3NMaXN0LmFkZCgncXAtc3dpdGNoaW5nJyk7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmVuZGVyKCk7IHJvb3RFbC5jbGFzc0xpc3QucmVtb3ZlKCdxcC1zd2l0Y2hpbmcnKTsgcm9vdEVsLmNsYXNzTGlzdC5hZGQoJ3FwLWVudGVyJyk7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHJvb3RFbC5jbGFzc0xpc3QucmVtb3ZlKCdxcC1lbnRlcicpOyB9KTsgfSk7IH0sIDE3MCk7CiAgICAgICAgfSBlbHNlIHsgcmVuZGVyKCk7IH0KICAgICAgICBpZiAocm9vdEVsLnNjcm9sbEludG9WaWV3KSB7IHJvb3RFbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTsgfQogICAgICB9OwogICAgICBwb3N0TGVhZChwYXlsb2FkKS50aGVuKGRvbmUsIGRvbmUpOwogICAgfQogICAgcmVuZGVyKCk7CiAgfQogIGZ1bmN0aW9uIGluaXRRdW90ZVJvb3RzKCkgeyAkJCgnW2RhdGEtYXZjLXF1b3RlXScsIHJvb3QpLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IG1vdW50UXVvdGUoZWwpOyB9KTsgfQoKICAvKiDilIDilIDilIAgbm90aWNlIGRpYWxvZyAoIndlIHN0aWxsIG5lZWQgeW91ciB0cmlwIGRldGFpbHMgLyBjb250YWN0IGluZm8iKSDilIDilIDilIAgKi8KICBmdW5jdGlvbiBzaG93Tm90aWNlKG8pIHsKICAgIHZhciBuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2Yy1ub3RpY2UnKSwgYmQgPSAkKCcuYXZjIC5xbi1iYWNrZHJvcCcpOwogICAgaWYgKCFuKSB7IGlmIChvLm9uT2spIHsgby5vbk9rKCk7IH0gcmV0dXJuOyB9CiAgICAkKCcucW4tdGl0bGUnLCBuKS50ZXh0Q29udGVudCA9IG8udGl0bGUgfHwgJyc7CiAgICAkKCcucW4tdGV4dCcsIG4pLnRleHRDb250ZW50ID0gby50ZXh0IHx8ICcnOwogICAgJCgnLnFuLWJ0bicsIG4pLnRleHRDb250ZW50ID0gby5idXR0b24gfHwgJ09LJzsKICAgIG5vdGljZUNiID0gby5vbk9rIHx8IG51bGw7CiAgICBub3RpY2VQcmV2ID0gKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IDogbnVsbDsKICAgIG4uY2xhc3NMaXN0LmFkZCgnb3BlbicpOyBpZiAoYmQpIHsgYmQuY2xhc3NMaXN0LmFkZCgnb3BlbicpOyB9CiAgICBuLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTsKICAgIG5vdGljZU9wZW4gPSB0cnVlOyBub3RpY2VBdCA9IERhdGUubm93KCk7IHNldExvY2soKTsKICAgIGNsZWFyVGltZW91dChub3RpY2VGb2N1c1QpOwogICAgbm90aWNlRm9jdXNUID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGlmIChub3RpY2VPcGVuKSB7IHNhZmVGb2N1cygkKCcucW4tYnRuJywgbikpOyB9IH0sIDMwKTsKICB9CiAgZnVuY3Rpb24gY2xvc2VOb3RpY2UoKSB7CiAgICB2YXIgbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdmMtbm90aWNlJyksIGJkID0gJCgnLmF2YyAucW4tYmFja2Ryb3AnKTsKICAgIGlmICghbiB8fCAhbm90aWNlT3BlbikgeyByZXR1cm47IH0KICAgIGNsZWFyVGltZW91dChub3RpY2VGb2N1c1QpOwogICAgbi5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7IGlmIChiZCkgeyBiZC5jbGFzc0xpc3QucmVtb3ZlKCdvcGVuJyk7IH0KICAgIG4uc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7CiAgICBub3RpY2VPcGVuID0gZmFsc2U7IHNldExvY2soKTsKICAgIHZhciBjYiA9IG5vdGljZUNiLCBwcmV2ID0gbm90aWNlUHJldjsgbm90aWNlQ2IgPSBudWxsOyBub3RpY2VQcmV2ID0gbnVsbDsKICAgIGlmIChwcmV2ICYmIGRvY3VtZW50LmNvbnRhaW5zKHByZXYpKSB7IHNhZmVGb2N1cyhwcmV2KTsgfQogICAgaWYgKGNiKSB7IGNiKCk7IH0KICB9CgogIC8qIOKUgOKUgOKUgCBxdW90ZSBtb2RhbCBzaGVldCAoRGVzdCAzLjAgY2xvbmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLwogIHZhciBtb2RhbFJlc2V0ID0gbnVsbDsKICBmdW5jdGlvbiBpbml0TW9kYWwoKSB7CiAgICB2YXIgc2hlZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLW1vZGFsJyk7CiAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdmMtbW9kYWwtY29udGVudCcpOwogICAgdmFyIHRpdGxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2Yy1tb2RhbC10aXRsZScpOwogICAgdmFyIHN1YiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdmMtbW9kYWwtc3ViJyk7CiAgICBpZiAoIXNoZWV0IHx8ICFjb250ZW50KSB7IHJldHVybjsgfQogICAgZnVuY3Rpb24gZnJlc2hTdGF0ZSgpIHsgcmV0dXJuIHsgbW9kZTogJ3J0JywgZnJvbTogJycsIHRvOiAnJywgcnRSYW5nZTogbnVsbCwgb3dEYXRlOiBudWxsLCBsZWdzOiBbe30sIHt9XSwgbGVnRGF0ZXM6IHt9LCBwYXg6ICcnLCB0aW1lOiAnJywgbmFtZTogJycsIHBob25lOiAnJywgZW1haWw6ICcnLCBub3RlczogJycgfTsgfQogICAgdmFyIHN0ID0gZnJlc2hTdGF0ZSgpOwogICAgdmFyIHN1Ym1pdHRlZCA9IGZhbHNlLCBzZW5kaW5nID0gZmFsc2UsIGVycm9yTXNnID0gJyc7CiAgICBtb2RhbFJlc2V0ID0gZnVuY3Rpb24gKCkgeyBpZiAoc3VibWl0dGVkKSB7IHN1Ym1pdHRlZCA9IGZhbHNlOyBzZW5kaW5nID0gZmFsc2U7IGVycm9yTXNnID0gJyc7IHN0ID0gZnJlc2hTdGF0ZSgpOyByZW5kZXIoKTsgfSB9OwogICAgZnVuY3Rpb24gZGF0ZUNlbGwocGlja2VyLCBlZGl0LCBkLCBwaCkgewogICAgICByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icW0tY2VsbCIgZGF0YS1waWNrZXI9IicgKyBwaWNrZXIgKyAnIicgKyAoZWRpdCA/ICcgZGF0YS1lZGl0PSInICsgZWRpdCArICciJyA6ICcnKSArICc+JyArIElDT04uY2FsICsgJzxzcGFuIGNsYXNzPSJkdicgKyAoZCA/ICcnIDogJyBwaCcpICsgJyI+JyArIChkID8gZXNjKGZtdFNob3J0KGQpKSA6IHBoKSArICc8L3NwYW4+PC9idXR0b24+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHJlbmRlcigpIHsKICAgICAgaWYgKHN1Ym1pdHRlZCkgewogICAgICAgI
1892HZhciBmbiA9IGZpcnN0TmFtZShzdC5uYW1lKSB8fCAndGhlcmUnOwogICAgICAgIHRpdGxlLmlubmVySFRNTCA9ICdXZeKAmXZlIGdvdCB5b3VyIGRldGFpbHMuJzsKICAgICAgICBzdWIudGV4dENvbnRlbnQgPSAnT3VyIHRlYW0gd2lsbCByZXZpZXcgeW91ciBpbnF1aXJ5IGFuZCByZXNwb25kIGFzIHNvb24gYXMgcG9zc2libGUuJzsKICAgICAgICB2YXIgcm93cyA9IFt7IGs6ICdUcmlwJywgdjogc3QubW9kZSA9PT0gJ3J0JyA/ICdSb3VuZCB0cmlwJyA6IChzdC5tb2RlID09PSAnb3cnID8gJ09uZSB3YXknIDogJ011bHRpLWNpdHknKSB9XTsKICAgICAgICBpZiAoc3QubW9kZSA9PT0gJ21jJykgewogICAgICAgICAgc3QubGVncy5mb3JFYWNoKGZ1bmN0aW9uIChsLCBpKSB7IHZhciBkdCA9IHN0LmxlZ0RhdGVzW2ldOyByb3dzLnB1c2goeyBrOiAnTGVnICcgKyAoaSArIDEpLCB2OiAobC5mcm9tIHx8ICfigJQnKSArICcg4oaSICcgKyAobC50byB8fCAn4oCUJykgKyAnIMK3ICcgKyAoZHQgPyBmbXRMb25nKGR0KSA6ICdEYXRlIFRCRCcpICsgKGwudGltZSA/ICcgwrcgJyArIGwudGltZSA6ICcnKSB9KTsgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJvd3MucHVzaCh7IGs6ICdSb3V0ZScsIHY6IChzdC5mcm9tIHx8ICfigJQnKSArICcg4oaSICcgKyAoc3QudG8gfHwgJ+KAlCcpIH0pOwogICAgICAgICAgaWYgKHN0Lm1vZGUgPT09ICdydCcpIHsgdmFyIHMgPSBzdC5ydFJhbmdlICYmIHN0LnJ0UmFuZ2Uuc3RhcnQsIGUgPSBzdC5ydFJhbmdlICYmIHN0LnJ0UmFuZ2UuZW5kOyByb3dzLnB1c2goeyBrOiAnRGF0ZXMnLCB2OiAocyA/IGZtdFNob3J0KHMpIDogJ1RCRCcpICsgJyDihpIgJyArIChlID8gZm10U2hvcnQoZSkgOiAnVEJEJykgKyAocyA/ICcsICcgKyBzLmdldEZ1bGxZZWFyKCkgOiAnJykgfSk7IH0KICAgICAgICAgIGVsc2UgeyByb3dzLnB1c2goeyBrOiAnRGF0ZScsIHY6IHN0Lm93RGF0ZSA/IGZtdExvbmcoc3Qub3dEYXRlKSA6ICdUQkQnIH0pOyB9CiAgICAgICAgICBpZiAoc3QudGltZSkgeyByb3dzLnB1c2goeyBrOiAnVGltZScsIHY6IHN0LnRpbWUgfSk7IH0KICAgICAgICB9CiAgICAgICAgaWYgKHN0LnBheCkgeyByb3dzLnB1c2goeyBrOiAnUGF4Jywgdjogc3QucGF4IH0pOyB9CiAgICAgICAgcm93cy5wdXNoKHsgazogJ0NvbnRhY3QnLCB2OiBzdC5uYW1lICsgJyDCtyAnICsgc3QuZW1haWwgKyAnIMK3ICcgKyBzdC5waG9uZSB9KTsKICAgICAgICBjb250ZW50LmlubmVySFRNTCA9ICc8ZGl2IGNsYXNzPSJxbS1ib2R5Ij48ZGl2IGNsYXNzPSJxbS1zdWNjZXNzIj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJxbS1zdWNjZXNzLW1hcmsiPjxkaXYgY2xhc3M9InJpbmciPjwvZGl2PjxkaXYgY2xhc3M9ImRpc2MiPicgKyBJQ09OLmNoZWNrVGhpbiArICc8L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICc8cCBjbGFzcz0icW0tc3VjY2Vzcy1leWVicm93Ij5RdW90ZSByZXF1ZXN0IHJlY2VpdmVkLjwvcD48aDMgY2xhc3M9InFtLXN1Y2Nlc3MtaCI+VGhhbmtzLCAnICsgZXNjKGZuKSArICcuPC9oMz4nICsKICAgICAgICAgICc8cCBjbGFzcz0icW0tc3VjY2Vzcy1saW5lIj5XZeKAmWxsIGJlIGluIHRvdWNoIHNob3J0bHkuPC9wPjxwIGNsYXNzPSJxbS1zdWNjZXNzLW92ZXJ2aWV3Ij5IZXJl4oCZcyBhbiBvdmVydmlldyBvZiB5b3VyIHJlcXVlc3Q6PC9wPicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9InFtLXN1bSI+JyArIHJvd3MubWFwKGZ1bmN0aW9uIChyKSB7IHJldHVybiAnPGRpdiBjbGFzcz0icW0tc3VtLXJvdyI+PHNwYW4gY2xhc3M9InFtLXN1bS1rIj4nICsgZXNjKHIuaykgKyAnPC9zcGFuPjxzcGFuIGNsYXNzPSJxbS1zdW0tdiI+JyArIGVzYyhyLnYpICsgJzwvc3Bhbj48L2Rpdj4nOyB9KS5qb2luKCcnKSArICc8L2Rpdj4nICsKICAgICAgICAgICc8cCBjbGFzcz0icW0tY2FsbC1saW5lIj5GZWVsIGZyZWUgdG8gY2FsbCB1cyBhdCA8YSBocmVmPSJ0ZWw6JyArIGVzYyhURUwpICsgJyIgZGF0YS10cmFjay1ldmVudD0icXVvdGVfc3VjY2Vzc19jYWxsX2NsaWNrIj4nICsgZXNjKFBIT05FKSArICc8L2E+IHRvIHNwZWFrIHdpdGggdXMgaW1tZWRpYXRlbHkuPC9wPjwvZGl2PjwvZGl2PicgKwogICAgICAgICAgJzxkaXYgY2xhc3M9InFtLWZvb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOiNGRkY7Ym9yZGVyLXRvcDpub25lIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFtLXN1Ym1pdCIgZGF0YS1hY3Rpb249ImNsb3NlLW1vZGFsIiBzdHlsZT0iYmFja2dyb3VuZDojMEYxQzJFO2NvbG9yOiNGRkYiPkRvbmU8L2J1dHRvbj48L2Rpdj4nOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aXRsZS5pbm5lckhUTUwgPSAnVGVsbCB1cyBhYm91dCA8ZW0+eW91ciB0cmlwLjwvZW0+JzsKICAgICAgc3ViLnRleHRDb250ZW50ID0gJ1NlbmQgYSBmZXcgZGV0YWlscyBhbmQgd2XigJlsbCBwcm92aWRlIGFuIGFsbC1pbmNsdXNpdmUgcXVvdGUuJzsKICAgICAgdmFyIGggPSAnPGRpdiBjbGFzcz0icW0tYm9keSI+PGRpdiBjbGFzcz0icW0tdGFicyI+JzsKICAgICAgW1sncnQnLCAnUm91bmQgVHJpcCddLCBbJ293JywgJ09uZSBXYXknXSwgWydtYycsICdNdWx0aS1DaXR5J11dLmZvckVhY2goZnVuY3Rpb24gKHApIHsgaCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxbS10YWInICsgKHN0Lm1vZGUgPT09IHBbMF0gPyAnIGFjdGl2ZScgOiAnJykgKyAnIiBkYXRhLXFtdGFiPSInICsgcFswXSArICciPicgKyBwWzFdICsgJzwvYnV0dG9uPic7IH0pOwogICAgICBoICs9ICc8L2Rpdj48ZGl2IGNsYXNzPSJxbS1zZWN0aW9uLWwiPkl0aW5lcmFyeTwvZGl2Pic7CiAgICAgIGlmIChzdC5tb2RlID09PSAnbWMnKSB7CiAgICAgICAgc3QubGVncy5mb3JFYWNoKGZ1bmN0aW9uIChsLCBpKSB7CiAgICAgICAgICB2Y
1892XIgZCA9IHN0LmxlZ0RhdGVzW2ldOwogICAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icW0tbGVnIiBkYXRhLWxlZz0iJyArIGkgKyAnIj48ZGl2IGNsYXNzPSJxbS1sZWctbiI+JyArIChpICsgMSkgKyAnPC9kaXY+JzsKICAgICAgICAgIGlmIChzdC5sZWdzLmxlbmd0aCA+IDIpIHsgaCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxbS1sZWctcm0iIGRhdGEtYWN0aW9uPSJsZWctcmVtb3ZlIiBkYXRhLWlkeD0iJyArIGkgKyAnIiBhcmlhLWxhYmVsPSJSZW1vdmUgbGVnIj4nICsgSUNPTi54ICsgJzwvYnV0dG9uPic7IH0KICAgICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFtLWxlZy1wYWlyIj48ZGl2IGNsYXNzPSJxbS1sZWctY2VsbCI+JyArIElDT04ucGxhbmUgKyAnPGlucHV0IGRhdGEtbGVnLWZpZWxkPSJmcm9tIiBkYXRhLWxlZy1pZHg9IicgKyBpICsgJyIgcGxhY2Vob2xkZXI9IkZyb20iPjwvZGl2PjxkaXYgY2xhc3M9InFtLWxlZy1jZWxsIj4nICsgSUNPTi5wbGFuZSArICc8aW5wdXQgZGF0YS1sZWctZmllbGQ9InRvIiBkYXRhLWxlZy1pZHg9IicgKyBpICsgJyIgcGxhY2Vob2xkZXI9IlRvIj48L2Rpdj48L2Rpdj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9InFtLWxlZy1wYWlyIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InFtLWxlZy1jZWxsIiBkYXRhLXBpY2tlcj0ibGVnLScgKyBpICsgJyI+JyArIElDT04uY2FsICsgJzxzcGFuIGNsYXNzPSJkdicgKyAoZCA/ICcnIDogJyBwaCcpICsgJyI+JyArIChkID8gZXNjKGZtdFNob3J0KGQpKSA6ICdEYXRlJykgKyAnPC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InFtLWxlZy1jZWxsIj4nICsgSUNPTi5jbG9jayArICc8aW5wdXQgZGF0YS1sZWctZmllbGQ9InRpbWUiIGRhdGEtbGVnLWlkeD0iJyArIGkgKyAnIiBwbGFjZWhvbGRlcj0iVGltZSI+PC9kaXY+PC9kaXY+PC9kaXY+JzsKICAgICAgICB9KTsKICAgICAgICBpZiAoc3QubGVncy5sZW5ndGggPCA1KSB7IGggKz0gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icW0tYWRkIiBkYXRhLWFjdGlvbj0ibGVnLWFkZCI+JyArIElDT04ucGx1cyArICdBZGQgYW5vdGhlciBsZWc8L2J1dHRvbj4nOyB9CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0icW0tcm93IHNpbmdsZSIgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij48ZGl2IGNsYXNzPSJxbS1jZWxsIj4nICsgSUNPTi51c2VyICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJwYXgiIHBsYWNlaG9sZGVyPSJQYXNzZW5nZXJzIiB2YWx1ZT0iJyArIGVzYyhzdC5wYXgpICsgJyI+PC9kaXY+PC9kaXY+JzsKICAgICAgfSBlbHNlIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxbS1yb3ciPjxkaXYgY2xhc3M9InFtLWNlbGwiPicgKyBJQ09OLnBsYW5lICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJmcm9tIiBwbGFjZWhvbGRlcj0iRGVwYXJ0dXJlIiB2YWx1ZT0iJyArIGVzYyhzdC5mcm9tKSArICciPjwvZGl2PjxkaXYgY2xhc3M9InFtLWNlbGwiPicgKyBJQ09OLnBsYW5lICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJ0byIgcGxhY2Vob2xkZXI9IkRlc3RpbmF0aW9uIiB2YWx1ZT0iJyArIGVzYyhzdC50bykgKyAnIj48L2Rpdj48L2Rpdj4nOwogICAgICAgIGlmIChzdC5tb2RlID09PSAncnQnKSB7CiAgICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxbS1yb3ciPicgKyBkYXRlQ2VsbCgncnQnLCAnc3RhcnQnLCBzdC5ydFJhbmdlICYmIHN0LnJ0UmFuZ2Uuc3RhcnQsICdEZXBhcnQgZGF0ZScpICsgZGF0ZUNlbGwoJ3J0JywgJ2VuZCcsIHN0LnJ0UmFuZ2UgJiYgc3QucnRSYW5nZS5lbmQsICdSZXR1cm4gZGF0ZScpICsgJzwvZGl2Pic7CiAgICAgICAgfSBlbHNlIHsgaCArPSAnPGRpdiBjbGFzcz0icW0tcm93IHNpbmdsZSI+JyArIGRhdGVDZWxsKCdvdycsIG51bGwsIHN0Lm93RGF0ZSwgJ0RlcGFydHVyZSBkYXRlJykgKyAnPC9kaXY+JzsgfQogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InFtLXJvdyI+PGRpdiBjbGFzcz0icW0tY2VsbCI+JyArIElDT04udXNlciArICc8aW5wdXQgZGF0YS1maWVsZD0icGF4IiBwbGFjZWhvbGRlcj0iUGFzc2VuZ2VycyIgdmFsdWU9IicgKyBlc2Moc3QucGF4KSArICciPjwvZGl2PjxkaXYgY2xhc3M9InFtLWNlbGwiPicgKyBJQ09OLmNsb2NrICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJ0aW1lIiBwbGFjZWhvbGRlcj0iUHJlZmVycmVkIHRpbWUiIHZhbHVlPSInICsgZXNjKHN0LnRpbWUpICsgJyI+PC9kaXY+PC9kaXY+JzsKICAgICAgfQogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJxbS1zZWN0aW9uLWwiPkNvbnRhY3Q8L2Rpdj48ZGl2IGNsYXNzPSJxbS1yb3cgc2luZ2xlIj48ZGl2IGNsYXNzPSJxbS1jZWxsIj4nICsgSUNPTi51c2VyICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJuYW1lIiBwbGFjZWhvbGRlcj0iRnVsbCBuYW1lIiB2YWx1ZT0iJyArIGVzYyhzdC5uYW1lKSArICciPjwvZGl2PjwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJxbS1yb3ciPjxkaXYgY2xhc3M9InFtLWNlbGwiPicgKyBJQ09OLnBob25lICsgJzxpbnB1dCBkYXRhLWZpZWxkPSJwaG9uZSIgdHlwZT0idGVsIiBwbGFjZWhvbGRlcj0iUGhvbmUiIHZhbHVlPSInICsgZXNjKHN0LnBob25lKSArICciPjwvZGl2PjxkaXYgY2xhc3M9InFtLWNlbGwiPicgKyBJQ09OLm1haWwgKyAnPGlucHV0IGRhdGEtZmllbGQ9ImVtYWlsIiB0eXBlPSJlbWFpbCIgcGxhY2Vob2xkZXI9IkVtYWlsIiB2YWx1ZT0iJyArIGVzYyhzdC5lbWFpbCkgKyAnIj48L2Rpdj48L2Rpdj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0icW0tc2VjdGlvbi1sIj5Bbnl0aGluZyB3ZSBzaG91bGQga25vdz88L2Rpdj48dGV4dGFyZWEgY2xhc3M9InFtLXRleHRhcmVhIiBkYXRhLWZpZWxkPSJub3RlcyIgcGxhY2Vob2xkZXI9IlBldHMsIGdyb3VuZCB0cmFuc3BvcnQsIGNhdGVyaW5nLCBzcGVjaWFsIHRpbWluZywgcmV0dXJuIGZsZXhpYmlsaXR54oCmIj4nICsgZXNjKHN0Lm5vdGVzKSArICc8L3RleHRhcmVhPic7CiAgICAgIGlmIChlcnJvck1zZykgeyBoICs9ICc8ZGl2IGNsYXNzPSJxbS1mb3JtLWVycm9yIj4nICsgZXNjKGVycm9yTXNnKSArICc8L2Rpdj4nOyB9CiAgICAgIGggKz0gJzwvZGl2PjxkaXYgY2xhc3M9InFtLWZvb3QiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icW0tc3VibWl0IiBkYXRhLXFtPSJzdWJtaXQiJyArIChzZW5kaW5nID8gJyBkaXNhYmxlZCcgOiAnJykgKyAnPicgKyAoc2VuZGluZyA/ICdTZW5kaW5n4oCmJyA6ICdTZW5kIHF1b3RlIHJlcXVlc3QnKSArIGFycm93UmlnaHQoMTMpICsgJzwvYnV0dG9uPjxwIGNsYXNzPSJxbS1maW5lIj5PciBjYWxsIDxzdHJvbmc+JyArIGVzYyhQSE9ORSkgKyAnPC9zdHJvbmc+IMK3IE5vIHNwYW0sIGV2ZXIuPC9wPjwvZGl2Pic7CiAgICAgIGNvbnRlbnQuaW5uZXJIVE1MID0gaDsKICAgICAgYmluZCgpOwogICAgfQogICAgZnVuY3Rpb24gYmluZCgpIHsKICAgICAgJCQoJ1tkYXRhLX
1892FtdGFiXScsIGNvbnRlbnQpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgc3QubW9kZSA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLXFtdGFiJyk7IHJlbmRlcigpOyB9KTsgfSk7CiAgICAgICQkKCdbZGF0YS1maWVsZF0nLCBjb250ZW50KS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uICgpIHsgc3RbZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWZpZWxkJyldID0gZWwudmFsdWU7IH0pOyB9KTsKICAgICAgJCQoJ1tkYXRhLWxlZy1maWVsZF0nLCBjb250ZW50KS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgICAgIHZhciBpZHggPSBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGVnLWlkeCcpLCAxMCksIGtleSA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sZWctZmllbGQnKTsKICAgICAgICBpZiAoc3QubGVnc1tpZHhdICYmIHN0LmxlZ3NbaWR4XVtrZXldICE9IG51bGwpIHsgZWwudmFsdWUgPSBzdC5sZWdzW2lkeF1ba2V5XTsgfQogICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24gKCkgeyBzdC5sZWdzW2lkeF1ba2V5XSA9IGVsLnZhbHVlOyB9KTsKICAgICAgfSk7CiAgICAgICQkKCdbZGF0YS1hY3Rpb249ImxlZy1yZW1vdmUiXScsIGNvbnRlbnQpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsgYi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsgdmFyIGkgPSBwYXJzZUludChiLmdldEF0dHJpYnV0ZSgnZGF0YS1pZHgnKSwgMTApOyBzdC5sZWdzLnNwbGljZShpLCAxKTsgZGVsZXRlIHN0LmxlZ0RhdGVzW2ldOyByZW5kZXIoKTsgfSk7IH0pOwogICAgICB2YXIgYWRkID0gJCgnW2RhdGEtYWN0aW9uPSJsZWctYWRkIl0nLCBjb250ZW50KTsKICAgICAgaWYgKGFkZCkgeyBhZGQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7IHN0LmxlZ3MucHVzaCh7fSk7IHJlbmRlcigpOyB9KTsgfQogICAgICAkJCgnW2RhdGEtcGlja2VyXScsIGNvbnRlbnQpLmZvckVhY2goZnVuY3Rpb24gKGIpIHsKICAgICAgICBiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICAgICAgdmFyIHAgPSBiLmdldEF0dHJpYnV0ZSgnZGF0YS1waWNrZXInKSwgZWRpdCA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLWVkaXQnKTsKICAgICAgICAgIGlmIChwID09PSAncnQnKSB7IG9wZW5EYXRlU2hlZXQoeyBtb2RlOiAncmFuZ2UnLCB2YWx1ZTogc3QucnRSYW5nZSwgaW5pdGlhbEZvY3VzOiBlZGl0ID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JywgdGl0bGU6ICdSb3VuZCB0cmlwIGRhdGVzJywgc3RhcnRMYWJlbDogJ0RlcGFydCcsIGVuZExhYmVsOiAnUmV0dXJuJywgb25Db21taXQ6IGZ1bmN0aW9uICh2KSB7IHN0LnJ0UmFuZ2UgPSAodiAmJiAodi5zdGFydCB8fCB2LmVuZCkpID8gdiA6IG51bGw7IHJlbmRlcigpOyB9IH0pOyB9CiAgICAgICAgICBlbHNlIGlmIChwID09PSAnb3cnKSB7IG9wZW5EYXRlU2hlZXQoeyBtb2RlOiAnc2luZ2xlJywgdmFsdWU6IHN0Lm93RGF0ZSwgdGl0bGU6ICdEZXBhcnR1cmUgZGF0ZScsIG9uQ29tbWl0OiBmdW5jdGlvbiAodikgeyBzdC5vd0RhdGUgPSB2OyByZW5kZXIoKTsgfSB9KTsgfQogICAgICAgICAgZWxzZSBpZiAocC5pbmRleE9mKCdsZWctJykgPT09IDApIHsgdmFyIGxpID0gcGFyc2VJbnQocC5zcGxpdCgnLScpWzFdLCAxMCk7IG9wZW5EYXRlU2hlZXQoeyBtb2RlOiAnc2luZ2xlJywgdmFsdWU6IHN0LmxlZ0RhdGVzW2xpXSB8fCBudWxsLCB0aXRsZTogJ0xlZyAnICsgKGxpICsgMSkgKyAnIGRhdGUnLCBvbkNvbW1pdDogZnVuY3Rpb24gKHYpIHsgaWYgKHYpIHsgc3QubGVnRGF0ZXNbbGldID0gdjsgfSBlbHNlIHsgZGVsZXRlIHN0LmxlZ0RhdGVzW2xpXTsgfSByZW5kZXIoKTsgfSB9KTsgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgdmFyIHN1Ym1pdCA9ICQoJ1tkYXRhLXFtPSJzdWJtaXQiXScsIGNvbnRlbnQpOwogICAgICBpZiAoc3VibWl0KSB7IHN1Ym1pdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZVN1Ym1pdCk7IH0KICAgIH0KICAgIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdCgpIHsKICAgICAgZXJyb3JNc2cgPSAnJzsKICAgICAgaWYgKCFzdC5uYW1lIHx8ICFzdC5lbWFpbCB8fCAhc3QucGhvbmUpIHsgZXJyb3JNc2cgPSAnUGxlYXNlIGFkZCB5b3VyIG5hbWUsIGVtYWlsIGFuZCBwaG9uZS4nOyByZW5kZXIoKTsgcmV0dXJuOyB9CiAgICAgIHNlbmRpbmcgPSB0cnVlOyByZW5kZXIoKTsKICAgICAgdmFyIGxlZ3MgPSBzdC5tb2RlID09PSAnbWMnID8gc3QubGVncy5tYXAoZnVuY3Rpb24gKGwsIGkpIHsgcmV0dXJuIHsgZnJvbTogbC5mcm9tIHx8ICcnLCB0bzogbC50byB8fCAnJywgdGltZTogbC50aW1lIHx8ICcnLCBkYXRlOiBzdC5sZWdEYXRlc1tpXSA/IHRvSVNPKHN0LmxlZ0RhdGVzW2ldKSA6ICcnIH07IH0pIDogW107CiAgICAgIHZhciB1c2VyTXNnID0gc3Qubm90ZXMgfHwgJyc7CiAgICAgIGlmIChsZWdzLmxlbmd0aCkgeyB1c2VyTXNnID0gKHVzZXJNc2cgPyB1c2VyTXNnICsgJ1xuXG4nIDogJycpICsgJ011bHRpLWNpdHkgaXRpbmVyYXJ5OlxuJyArIGxlZ3MubWFwKGZ1bmN0aW9uIChsLCBpKSB7IHJldHVybiAnTGVnICcgKyAoaSArIDEpICsgJzogJyArIChsLmZyb20gfHwgJz8nKSArICcg4oaSICcgKyAobC50byB8fCAnPycpICsgKGwuZGF0ZSA/ICcgb24gJyArIGwuZGF0ZSA6ICcnKSArIChsLnRpbWUgPyAnICcgKyBsLnRpbWUgOiAnJyk7IH0pLmpvaW4oJ1xuJyk7IH0KICAgICAgdmFyIHBheWxvYWQgPSB7CiAgICAgICAgc291cmNlOiBTUkMgKyAnLW1vZGFsJywga2luZDogJ3F1b3RlJywgcGFnZTogUEFHRSwKICAgICAgICB0YWI6IHN0Lm1vZGUgPT09ICdydCcgPyAncm91bmR0cmlwJyA6IChzdC5tb2RlID09PSAnb3cnID8gJ29uZXdheScgOiAnbXVsdGknKSwKICAgICAgICBuYW1lOiBzdC5uYW1lLCBlbWFpbDogc3QuZW1haWwsIHBob25lOiBzdC5waG9uZSwgbWVzc2FnZTogdXNlck1zZywKICAgICAgICBmcm9tOiBzdC5tb2RlID09PSAnbWMnID8gJycgOiBzdC5mcm9tLCB0bzogc3QubW9kZSA9PT0gJ21jJyA/ICcnIDogc3QudG8sCiAgICAgICAgdHJhdmVsRGF0ZTogc3QubW9kZSA9PT0gJ3J0JyA/IChzdC5ydFJhbmdlICYmIHN0LnJ0UmFuZ2Uuc3RhcnQgPyB0b0lTTyhzdC5ydFJhbmdlLnN0YXJ0KSA6
1892ICcnKSA6IChzdC5tb2RlID09PSAnb3cnICYmIHN0Lm93RGF0ZSA/IHRvSVNPKHN0Lm93RGF0ZSkgOiAnJyksCiAgICAgICAgcmV0dXJuRGF0ZTogc3QubW9kZSA9PT0gJ3J0JyAmJiBzdC5ydFJhbmdlICYmIHN0LnJ0UmFuZ2UuZW5kID8gdG9JU08oc3QucnRSYW5nZS5lbmQpIDogJycsCiAgICAgICAgdHJhdmVsVGltZTogc3QudGltZSwgcGF4OiBzdC5wYXgsIGxlZ3M6IGxlZ3MsIGdvUmVmZXJyYWw6IGNhcHR1cmVSZWZlcnJhbCgpLCBleHRyYTogW10sIGdlYXI6IFtdLCBjYXRlcmluZzogJ05vbmUnLCBlc3RpbWF0ZXM6IFtdCiAgICAgIH07CiAgICAgIHRyYWNrRXZlbnQoJ2Zvcm1fc3VibWl0JywgeyBmb3JtOiAnbW9kYWwnLCB0YWI6IHBheWxvYWQudGFiIH0pOwogICAgICB2YXIgZG9uZSA9IGZ1bmN0aW9uICgpIHsgc3VibWl0dGVkID0gdHJ1ZTsgc2VuZGluZyA9IGZhbHNlOyByZW5kZXIoKTsgfTsKICAgICAgcG9zdExlYWQocGF5bG9hZCkudGhlbihkb25lLCBkb25lKTsKICAgIH0KICAgIHJlbmRlcigpOwogIH0KICBmdW5jdGlvbiBvcGVuTW9kYWwoKSB7CiAgICB2YXIgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXZjLW1vZGFsJyksIGJkID0gJCgnLmF2YyAucW0tYmFja2Ryb3AnKTsKICAgIGlmICghbW9kYWwpIHsgcmV0dXJuOyB9CiAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7CiAgICBpZiAoYmQpIHsgYmQuY2xhc3NMaXN0LmFkZCgnb3BlbicpOyB9CiAgICBtb2RhbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7CiAgICBtb2RhbE9wZW4gPSB0cnVlOyBzZXRMb2NrKCk7CiAgICB0cmFja0V2ZW50KCdtb2RhbF9vcGVuJywgeyBwYWdlOiBQQUdFIH0pOwogIH0KICBmdW5jdGlvbiBjbG9zZU1vZGFsKCkgewogICAgdmFyIG1vZGFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2Yy1tb2RhbCcpLCBiZCA9ICQoJy5hdmMgLnFtLWJhY2tkcm9wJyk7CiAgICBpZiAoIW1vZGFsKSB7IHJldHVybjsgfQogICAgbW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpOwogICAgaWYgKGJkKSB7IGJkLmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKTsgfQogICAgbW9kYWwuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7CiAgICBtb2RhbE9wZW4gPSBmYWxzZTsgc2V0TG9jaygpOwogICAgaWYgKG1vZGFsUmVzZXQpIHsgc2V0VGltZW91dChtb2RhbFJlc2V0LCAzNTApOyB9ICAgLyogYWZ0ZXIgdGhlIGNsb3NlIGFuaW1hdGlvbjogbmV4dCBvcGVuIHN0YXJ0cyB3aXRoIGEgZnJlc2ggZm9ybSAqLwogIH0KCiAgLyog4pSA4pSA4pSAIHN0YXRpYyBjb250YWN0IC8gbWVtYmVyc2hpcCBmb3JtcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi8KICB2YXIgRVhUUkFfTEFCRUxTID0geyByZWFzb246ICdSZWFzb24gZm9yIGNvbnRhY3QnLCBiZXN0V2F5OiAnQmVzdCB3YXkgdG8gcmVhY2ggeW91JywgdHJhdmVsV2luZG93OiAnVHJhdmVsIHdpbmRvdycsIGZseUZyZXF1ZW5jeTogJ0ZsaWdodHMgcGVyIHllYXInLCBmbGllc1ByaXZhdGU6ICdDdXJyZW50bHkgZmxpZXMgcHJpdmF0ZScsIGNhcmRUaWVyOiAnQ2FyZCBjb25zaWRlcmluZycsIGZseVRvZGF5OiAnSG93IHRoZXkgZmx5IHRvZGF5JywgaG9tZUFpcnBvcnQ6ICdIb21lIGFpcnBvcnQnLCBwYXJ0eVNpemU6ICdUeXBpY2FsIHBhcnR5IHNpemUnIH07CiAgdmFyIENPUkVfRklFTERTID0geyBuYW1lOiAxLCBmaXJzdDogMSwgbGFzdDogMSwgZW1haWw6IDEsIHBob25lOiAxLCBtZXNzYWdlOiAxIH07CiAgZnVuY3Rpb24gaXNEYXJrRm9ybShmb3JtKSB7CiAgICB2YXIgbGJsID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdsYWJlbCcpIHx8IGZvcm07CiAgICB2YXIgYyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGxibCkuY29sb3IgfHwgJyc7CiAgICB2YXIgbSA9IGMubWF0Y2goL1tcZC5dKy9nKTsKICAgIGlmICghbSB8fCBtLmxlbmd0aCA8IDMpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICB2YXIgbHVtID0gKDAuMjk5ICogbVswXSArIDAuNTg3ICogbVsxXSArIDAuMTE0ICogbVsyXSkgLyAyNTU7CiAgICByZXR1cm4gbHVtID4gMC41NTsKICB9CiAgZnVuY3Rpb24gaW5pdENvbnRhY3RGb3JtcygpIHsKICAgICQkKCdbZGF0YS1hdmMtZm9ybV0nLCByb290KS5mb3JFYWNoKGZ1bmN0aW9uIChmb3JtKSB7CiAgICAgIGlmIChmb3JtLl9fYXZjKSB7IHJldHVybjsgfQogICAgICBmb3JtLl9fYXZjID0gdHJ1ZTsKICAgICAgJCQoJ3NlbGVjdFtkYXRhLWZdJywgZm9ybSkuZm9yRWFjaChmdW5jdGlvbiAoc2VsKSB7CiAgICAgICAgdmFyIGZpcnN0ID0gc2VsLm9wdGlvbnNbMF07CiAgICAgICAgLyogdGhlIGRlc2lnbidzICItLSBzZWxlY3QgLS0iIHBsYWNlaG9sZGVyIG9wdGlvbjsgcGxhaW4gc2VsZWN0cyBrZWVwIHRoZWlyIGZpcnN0IHJlYWwgb3B0aW9uICovCiAgICAgICAgaWYgKGZpcnN0ICYmIGZpcnN0LmRpc2FibGVkKSB7IHNlbC5zZWxlY3RlZEluZGV4ID0gMDsgfQogICAgICAgIHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbiAoKSB7IHNlbC5jbGFzc0xpc3QudG9nZ2xlKCdlbXB0eScsICFzZWwudmFsdWUpOyB9KTsgICAvKiBxcC1jZWxsIHBsYWNlaG9sZGVyIGNvbG91ciAqLwogICAgICB9KTsKICAgICAgJCQoJ1tkYXRhLWZdJywgZm9ybSkuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsKICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHsgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIGVsLnRhZ05hbWUgIT09ICdURVhUQVJFQScpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB2YXIgYiA9IGZvcm0ucXVlcnlTZWxlY3RvcignW2RhdGEtYWN0aW9uPSJzdWJtaXQiXScpOyBpZiAoYikgeyBiLmNsaWNrKCk7IH0gfSB9KTsKICAgICAgfSk7CiAgICAgIGVuaGFuY2VTZWxlY3RzKGZvcm0pOwogICAgfSk7CiAgfQoKICAvKiDilIDilIDilIAgY3VzdG9tIGRyb3Bkb3duczogdGhlIG5hdGl2ZSA8c2VsZWN0PiBrZWVwcyB0aGUgdmFsdWUgKGhpZGRlbik7IGEgYnV0dG9uICsgbGlzdGJveCBzdHlsZWQgbGlrZSB0aGUKICAgICBQbGFjZXMgc3VnZ2VzdGlvbnMgcmVuZGVycyBpbiBpdHMgcGxhY2UuIFRvdWNoIGRldmljZXMga2VlcCB0aGUgbmF0aXZlIHBpY2tlci4g4pSA4pSA4pSAICovCiAgdmFyIHNlbE9wZW4gPSBudWxsOwogIGZ1bmN0aW9uIGVuaGFuY2VTZWxlY3RzKHNjb3BlKSB7CiAgICBpZiAoY29hcnNlKCkpIHsgcmV0dXJuOyB9CiAgICAkJCgnc2VsZWN0W2Rh
1892dGEtZmllbGRdLCBzZWxlY3RbZGF0YS1mXScsIHNjb3BlKS5mb3JFYWNoKGZ1bmN0aW9uIChzZWwpIHsKICAgICAgaWYgKHNlbC5fX2F2Y1NlbCkgeyByZXR1cm47IH0KICAgICAgc2VsLl9fYXZjU2VsID0gdHJ1ZTsKICAgICAgdmFyIGJveCA9IChzZWwuY2xvc2VzdCAmJiBzZWwuY2xvc2VzdCgnLnFwLWNlbGwsIC5xZi1ib3gnKSkgfHwgc2VsLnBhcmVudEVsZW1lbnQ7CiAgICAgIGJveC5jbGFzc0xpc3QuYWRkKCdhdmMtc2VsLWhvc3QnKTsKICAgICAgdmFyIGJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgICBidG4udHlwZSA9ICdidXR0b24nOyBidG4uY2xhc3NOYW1lID0gJ2F2Yy1zZWwtYnRuJzsKICAgICAgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1oYXNwb3B1cCcsICdsaXN0Ym94Jyk7IGJ0bi5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTsKICAgICAgaWYgKHNlbC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkgeyBidG4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgc2VsLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKTsgfQogICAgICBpZiAoc2VsLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSkgeyBidG4uc3R5bGUuY3NzVGV4dCA9IHNlbC5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyk7IGJ0bi5zdHlsZS5hcHBlYXJhbmNlID0gJ25vbmUnOyBidG4uc3R5bGUud2Via2l0QXBwZWFyYW5jZSA9ICdub25lJzsgYnRuLnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJzsgYnRuLnN0eWxlLnRleHRBbGlnbiA9ICdsZWZ0JzsgYnRuLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOyBidG4uc3R5bGUuZm9udEZhbWlseSA9ICInUG9wcGlucycsc2Fucy1zZXJpZiI7IH0KICAgICAgc2VsLmNsYXNzTGlzdC5hZGQoJ2F2Yy1zZWwtbmF0aXZlJyk7IHNlbC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJyk7IHNlbC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTsKICAgICAgc2VsLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGJ0biwgc2VsLm5leHRTaWJsaW5nKTsKICAgICAgZnVuY3Rpb24gc3luYygpIHsgdmFyIG8gPSBzZWwub3B0aW9uc1tzZWwuc2VsZWN0ZWRJbmRleF07IHZhciBwaCA9ICFzZWwudmFsdWUgfHwgKG8gJiYgby5kaXNhYmxlZCk7IGJ0bi50ZXh0Q29udGVudCA9IG8gPyBvLnRleHRDb250ZW50IDogJyc7IGJ0bi5jbGFzc0xpc3QudG9nZ2xlKCdwaCcsIHBoKTsgfQogICAgICBzeW5jKCk7IHNlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzeW5jKTsKICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBpZiAoc2VsT3BlbiAmJiBzZWxPcGVuLnNlbCA9PT0gc2VsKSB7IGNsb3NlU2VsZWN0KCk7IH0gZWxzZSB7IG9wZW5TZWxlY3Qoc2VsLCBidG4sIGJveCk7IH0gfSk7CiAgICAgIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHsgaWYgKHNlbE9wZW4gJiYgc2VsT3Blbi5zZWwgPT09IHNlbCkgeyByZXR1cm47IH0gaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJyB8fCBlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBvcGVuU2VsZWN0KHNlbCwgYnRuLCBib3gpOyB9IH0pOwogICAgfSk7CiAgfQogIGZ1bmN0aW9uIG9wZW5TZWxlY3Qoc2VsLCBidG4sIGJveCkgewogICAgY2xvc2VTZWxlY3QoKTsKICAgIHZhciBsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGxpc3Quc2V0QXR0cmlidXRlKCdyb2xlJywgJ2xpc3Rib3gnKTsKICAgIHZhciBoYXNJY29uID0gISEoYm94LmZpcnN0RWxlbWVudENoaWxkICYmIGJveC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lICYmIGJveC5maXJzdEVsZW1lbnRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKTsKICAgIGxpc3QuY2xhc3NOYW1lID0gJ2F2Yy1zZWwtbGlzdCcgKyAoaGFzSWNvbiA/ICcnIDogJyBwbGFpbicpOyAgIC8qIGluZGVudCBvcHRpb25zIHRvIHRoZSB0ZXh0IG9ubHkgd2hlbiB0aGUgY2VsbCBoYXMgYSBsZWFkaW5nIGljb24gKi8KICAgIHZhciBvcHRzID0gW10uc2xpY2UuY2FsbChzZWwub3B0aW9ucykuZmlsdGVyKGZ1bmN0aW9uIChvKSB7IHJldHVybiAhby5kaXNhYmxlZDsgfSk7CiAgICB2YXIgY3VyID0gc2VsLnZhbHVlLCBhY3RpdmUgPSAwOwogICAgb3B0cy5mb3JFYWNoKGZ1bmN0aW9uIChvLCBpKSB7IGlmIChvLnZhbHVlID09PSBjdXIpIHsgYWN0aXZlID0gaTsgfSB9KTsKICAgIG9wdHMuZm9yRWFjaChmdW5jdGlvbiAobywgaSkgewogICAgICB2YXIgZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkLmNsYXNzTmFtZSA9ICdhdmMtc2VsLW9wdCcgKyAoaSA9PT0gYWN0aXZlID8gJyBhY3RpdmUnIDogJycpOyBkLnNldEF0dHJpYnV0ZSgncm9sZScsICdvcHRpb24nKTsgZC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCBvLnZhbHVlID09PSBjdXIgPyAndHJ1ZScgOiAnZmFsc2UnKTsgZC50ZXh0Q29udGVudCA9IG8udGV4dENvbnRlbnQ7CiAgICAgIGQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB9KTsKICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgZnVuY3Rpb24gKCkgeyBzZXRBY3RpdmUoaSk7IH0pOwogICAgICBkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgeyBwaWNrKGkpOyB9KTsKICAgICAgbGlzdC5hcHBlbmRDaGlsZChkKTsKICAgIH0pOwogICAgZnVuY3Rpb24gcGljayhpKSB7IHNlbC52YWx1ZSA9IG9wdHNbaV0udmFsdWU7IHNlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpOyBzZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7IGNsb3NlU2VsZWN0KCk7IHNhZmVGb2N1cyhidG4pOyB9CiAgICBmdW5jdGlvbiBzZXRBY3RpdmUoaSkgeyBhY3RpdmUgPSAoaSArIG9wdHMubGVuZ3RoKSAlIG9wdHMubGVuZ3RoOyAkJCgnLmF2Yy1zZWwtb3B0JywgbGlzdCkuZm9yRWFjaChmdW5jdGlvbiAoZCwgaikgeyBkLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScsIGogPT09IGFjdGl2ZSk7IH0pOyBpZiAobGlzdC5jaGlsZHJlblthY3RpdmVdICYmIGxpc3QuY2hpbGRyZW5bYWN0aXZlXS5zY3JvbGxJbnRvVmlldykgeyBsaXN0LmNoaWxkcmVuW2FjdGl2ZV0uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pOyB9IH0KICAgIGZ1bmN0aW9uIG9uS2V5KGUpIHsKICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykgeyBlLnByZXZlbn
1892REZWZhdWx0KCk7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IHNldEFjdGl2ZShhY3RpdmUgKyAxKTsgfQogICAgICBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsgc2V0QWN0aXZlKGFjdGl2ZSAtIDEpOyB9CiAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInIHx8IGUua2V5ID09PSAnICcpIHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBlLnN0b3BQcm9wYWdhdGlvbigpOyBwaWNrKGFjdGl2ZSk7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7IGUucHJldmVudERlZmF1bHQoKTsgZS5zdG9wUHJvcGFnYXRpb24oKTsgY2xvc2VTZWxlY3QoKTsgc2FmZUZvY3VzKGJ0bik7IH0KICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdUYWInKSB7IGNsb3NlU2VsZWN0KCk7IH0KICAgIH0KICAgIC8qIHRoZSBib3JkZXJlZCBlbGVtZW50IGlzIHRoZSB3cmFwcGVyIGZvciBpY29uIGNlbGxzLCB0aGUgY29udHJvbCBpdHNlbGYgZm9yIHRoZSBkZXNpZ24ncyBib3hlZCBzZWxlY3RzICovCiAgICB2YXIgZWRnZSA9IChwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoYm94KS5ib3JkZXJUb3BXaWR0aCkgPiAwKSA/IGJveCA6IGJ0bjsKICAgIGZ1bmN0aW9uIHBvc2l0aW9uKCkgeyB2YXIgciA9IGVkZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7IGxpc3Quc3R5bGUudG9wID0gKHIuYm90dG9tICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gMSkgKyAncHgnOyBsaXN0LnN0eWxlLmxlZnQgPSAoci5sZWZ0ICsgd2luZG93LnBhZ2VYT2Zmc2V0KSArICdweCc7IGxpc3Quc3R5bGUud2lkdGggPSByLndpZHR
1892oICsgJ3B4JzsgfQogICAgZnVuY3Rpb24gb25Eb2MoZSkgeyBpZiAoIWxpc3QuY29udGFpbnMoZS50YXJnZXQpICYmIGUudGFyZ2V0ICE9PSBidG4gJiYgIWJ0bi5jb250YWlucyhlLnRhcmdldCkpIHsgY2xvc2VTZWxlY3QoKTsgfSB9CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpc3QpOyBwb3NpdGlvbigpOwogICAgZWRnZS5jbGFzc0xpc3QuYWRkKCdhdi1wYWMtb3BlbicpOyBidG4uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKTsKICAgIHNlbE9wZW4gPSB7IHNlbDogc2VsLCBsaXN0OiBsaXN0LCBib3g6IGVkZ2UsIGJ0bjogYnRuLCBvbktleTogb25LZXksIG9uRG9jOiBvbkRvYywgcG9zaXRpb246IHBvc2l0aW9uIH07CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgb25LZXksIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGlmIChzZWxPcGVuICYmIHNlbE9wZW4ubGlzdCA9PT0gbGlzdCkgeyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvbkRvYyk7IH0gfSwgMCk7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcG9zaXRpb24sIHsgcGFzc2l2ZTogdHJ1ZSB9KTsgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHBvc2l0aW9uKTsKICB9CiAgZnVuY3Rpb24gY2xvc2VTZWxlY3QoKSB7CiAgICBpZiAoIXNlbE9wZW4pIHsgcmV0dXJuOyB9CiAgICB2YXIgUyA9IHNlbE9wZW47IHNlbE9wZW4gPSBudWxsOwogICAgaWYgKFMubGlzdC5wYXJlbnROb2RlKSB7IFMubGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKFMubGlzdCk7IH0KICAgIFMuYm94LmNsYXNzTGlzdC5yZW1vdmUoJ2F2LXBhYy1vcGVuJyk7IFMuYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpOwogICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIFMub25LZXksIHRydWUpOyBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBTLm9uRG9jKTsKICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBTLnBvc2l0aW9uKTsgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIFMucG9zaXRpb24pOwogIH0KICBmdW5jdGlvbiBzdWJtaXRDb250YWN0Rm9ybShmb3JtLCBidG4pIHsKICAgIGlmIChmb3JtLl9fc2VuZGluZykgeyByZXR1cm47IH0KICAgIHZhciBraW5kID0gZm9ybS5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXZjLWZvcm0nKTsKICAgIHZhciBkYXRhID0ge307CiAgICAkJCgnW2RhdGEtZl0nLCBmb3JtKS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgewogICAgICB2YXIgdiA9IGVsLnZhbHVlIHx8ICcnOwogICAgICBpZiAoZWwudGFnTmFtZSA9PT0gJ1NFTEVDVCcgJiYgZWwuc2VsZWN0ZWRJbmRleCA+PSAwICYmIGVsLm9wdGlvbnNbZWwuc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHsgdiA9ICcnOyB9CiAgICAgIGRhdGFbZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWYnKV0gPSB2LnRyaW0oKTsKICAgIH0pOwogICAgdmFyIG5hbWUgPSBkYXRhLm5hbWUgfHwgKChkYXRhLmZpcnN0IHx8ICcnKSArICcgJyArIChkYXRhLmxhc3QgfHwgJycpKS50cmltKCk7CiAgICB2YXIgZXJyID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuYXZjLWZvcm0tZXJyb3InKTsKICAgIGZ1bmN0aW9uIHNob3dFcnIobXNnKSB7CiAgICAgIGlmICghZXJyKSB7IGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBlcnIuY2xhc3NOYW1lID0gJ2F2Yy1mb3JtLWVycm9yJzsgYnRuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVyciwgYnRuLm5leHRTaWJsaW5nKTsgfQogICAgICBlcnIudGV4dENvbnRlbnQgPSBtc2c7CiAgICB9CiAgICBpZiAoIW5hbWUgfHwgIWRhdGEuZW1haWwgfHwgIWRhdGEucGhvbmUpIHsgc2hvd0VycignUGxlYXNlIGFkZCB5b3VyIG5hbWUsIGVtYWlsIGFuZCBwaG9uZS4nKTsgcmV0dXJuOyB9CiAgICBpZiAoZXJyKSB7IGVyci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVycik7IGVyciA9IG51bGw7IH0KICAgIGZvcm0uX19zZW5kaW5nID0gdHJ1ZTsKICAgIHZhciBvcmlnSHRtbCA9IGJ0bi5pbm5lckhUTUw7CiAgICBidG4uZGlzYWJsZWQgPSB0cnVlOyBidG4udGV4dENvbnRlbnQgPSAnU2VuZGluZ+KApic7CiAgICB2YXIgZXh0cmEgPSBbXTsKICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgaWYgKCFDT1JFX0ZJRUxEU1trXSAmJiBkYXRhW2tdKSB7IGV4dHJhLnB1c2goeyBsYWJlbDogRVhUUkFfTEFCRUxTW2tdIHx8IGssIHZhbHVlOiBkYXRhW2tdIH0pOyB9IH0pOwogICAgdmFyIG1vYmlsZSA9IGluTW9iaWxlVHJlZShmb3JtKTsKICAgIHZhciBwYXlsb2FkID0gewogICAgICBzb3VyY2U6IFNSQyArICctJyArIChtb2JpbGUgPyAnbW9iaWxlJyA6ICdkZXNrdG9wJyksIGtpbmQ6IGtpbmQsIHBhZ2U6IFBBR0UsCiAgICAgIG5hbWU6IG5hbWUsIGVtYWlsOiBkYXRhLmVtYWlsLCBwaG9uZTogZGF0YS5waG9uZSwgbWVzc2FnZTogZGF0YS5tZXNzYWdlIHx8ICcnLAogICAgICBleHRyYTogZXh0cmEsIGdvUmVmZXJyYWw6IGNhcHR1cmVSZWZlcnJhbCgpLCBmcm9tOiAnJywgdG86ICcnLCBwYXg6ICcnLCBsZWdzOiBbXSwgZ2VhcjogW10sIGNhdGVyaW5nOiAnTm9uZScsIGVzdGltYXRlczogW10KICAgIH07CiAgICB0cmFja0V2ZW50KCdmb3JtX3N1Ym1pdCcsIHsgZm9ybToga2luZCArIChtb2JpbGUgPyAnLW1vYmlsZScgOiAnLWRlc2t0b3AnKSB9KTsKICAgIHZhciBkb25lID0gZnVuY3Rpb24gKCkgewogICAgICBmb3JtLl9fc2VuZGluZyA9IGZhbHNlOwogICAgICByZW5kZXJDb250YWN0U3VjY2Vzcyhmb3JtLCBraW5kLCBkYXRhLCBuYW1lLCBtb2JpbGUpOwogICAgfTsKICAgIHBvc3RMZWFkKHBheWxvYWQpLnRoZW4oZG9uZSwgZnVuY3Rpb24gKCkgeyBkb25lKCk7IH0pOwogICAgdm9pZCBvcmlnSHRtbDsKICB9CiAgZnVuY3Rpb24gcmVuZGVyQ29udGFjdFN1Y2Nlc3MoZm9ybSwga2luZCwgZGF0YSwgbmFtZSwgbW9iaWxlKSB7CiAgICB2YXIgc3RhcnQgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWF2Yy1maWVsZHNdJyk7CiAgICBpZiAoIXN0YXJ0KSB7IHJldHVybjsgfQogICAgdmFyIHBhcmVudCA9IHN0YXJ0LnBhcmVudE5vZGUsIGRhcmsgPSBpc0RhcmtGb3JtKGZvcm0pOwogICAgLyoga2VlcCB0aGUgY2FyZCB0aGUgc2l6ZSB0aGUgdmlzaXRvciBpcyBsb29raW5nIGF0LCBhbmQgY3Jvc3NmYWRlIHRoZSBmaWVsZHMgaW50byB0aGUgcmVjZWlwdCAoZGVza3RvcCkgKi8KICAgIC8qIGhlaWdodCBvZiB0aGUgcmVnaW9uIHRoZSByZWNlaXB0IHJlcGxhY2VzO
1892iBmcm9tIHRoZSBmaXJzdCBmaWVsZCByb3cgdG8gdGhlIHN1Ym1pdCBidXR0b24gKHRoZSBjYXJkJ3MgaGVhZGVyIHN0YXlzKSAqLwogICAgdmFyIGxhc3RFbCA9IHBhcmVudC5sYXN0RWxlbWVudENoaWxkLCBjb2xIID0gTWF0aC5yb3VuZChsYXN0RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tIC0gc3RhcnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wKSwgY2FyZEggPSBmb3JtLm9mZnNldEhlaWdodDsKICAgIGlmICghbW9iaWxlKSB7IGZvcm0uc3R5bGUubWluSGVpZ2h0ID0gY2FyZEggKyAncHgnOyBwYXJlbnQuc3R5bGUuY29udGFpbmVyVHlwZSA9ICdpbmxpbmUtc2l6ZSc7IHBhcmVudC5zdHlsZS50cmFuc2l0aW9uID0gJ29wYWNpdHkgLjE2cyBlYXNlJzsgcGFyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCc7IH0KICAgIHZhciBhcHBseSA9IGZ1bmN0aW9uICgpIHsKICAgIHdoaWxlIChzdGFydC5uZXh0U2libGluZykgeyBwYXJlbnQucmVtb3ZlQ2hpbGQoc3RhcnQubmV4dFNpYmxpbmcpOyB9CiAgICB2YXIgaW50cm8gPSBzdGFydC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nOwogICAgaWYgKGludHJvICYmIChpbnRyby50YWdOYW1lID09PSAnUCcgfHwgaW50cm8uY2xhc3NMaXN0LmNvbnRhaW5zKCdxcC1zZWMnKSkpIHsgaW50cm8uc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfQogICAgdmFyIHJvd3MgPSBbeyBrOiAnRW1haWwnLCB2OiBkYXRhLmVtYWlsIH0sIHsgazogJ1Bob25lJywgdjogZGF0YS5waG9uZSB9XTsKICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgaWYgKCFDT1JFX0ZJRUxEU1trXSAmJiBkYXRhW2tdKSB7IHJvd3MucHVzaCh7IGs6IEVYVFJBX0xBQkVMU1trXSB8fCBrLCB2OiBkYXRhW2tdIH0pOyB9IH0pOwogICAgdmFyIG87CiAgICBpZiAoa2luZCA9PT0gJ21lbWJlcnNoaXAnIHx8IGtpbmQgPT09ICdqZXRjYXJkJykgeyAgIC8qIENGRy50aGFua3MgPSB7IHN1Yiwgc3RlcHMgfSBsZXRzIGEgcGFnZSBzdXBwbHkgaXRzIG93biBjb3B5ICovCiAgICAgIHZhciBUSCA9IENGRy50aGFua3MgfHwge307CiAgICAgIG8gPSB7IGRhcms6IGRhcmssIGV5ZWJyb3c6ICdJbnF1aXJ5IHJlY2VpdmVkJywgaGVhZGluZzogJ1RoYW5rcywgJyArIGZpcnN0TmFtZShuYW1lKSArICcuJywgc3ViOiBUSC5zdWIgfHwgJ0EgbWVtYmVyc2hpcCBhZHZpc29yIHdpbGwgZm9sbG93IHVwIHdpdGhpbiBvbmUgYnVzaW5lc3MgZGF5IHRvIHdhbGsgdGhyb3VnaCBwcmljaW5nLCBhaXJjcmFmdCBhY2Nlc3MgYW5kIGhvdyB0aGUgcHJvZ3JhbSB3b3JrcyDigJQgbm8gY29tbWl0bWVudCByZXF1aXJlZC4nLCByb3dzOiByb3dzLAogICAgICAgIHN0ZXBzOiBUSC5zdGVwcyB8fCBbJypXaXRoaW4gb25lIGJ1c2luZXNzIGRheSog4oCUIGEgbWVtYmVyc2hpcCBhZHZpc29yIHJlYWNoZXMgb3V0LicsICdXZSB3YWxrIHRocm91Z2ggKnByaWNpbmcsIGFpcmNyYWZ0IGFjY2VzcyogYW5kIGhvdyB0aGUgcHJvZ3JhbSB3b3Jrcy4nLCAnSm9pbiB3aGVuIHlvdeKAmXJlIHJlYWR5IOKAlCAqbm8gY29tbWl0bWVudCogdG8gZ2V0IHN0YXJ0ZWQuJ10sIGNhbGw6ICdQcmVmZXIgdG8gdGFsayBub3c/JyB9OwogICAgfSBlbHNlIHsKICAgICAgLyogInByZWZlcnJlZCBjaGFubmVsIiBvbmx5IHdoZW4gdGhlIGZvcm0gYWN0dWFsbHkgYXNrZWQgZm9yIG9uZSAodGhlIGJlc3RXYXkgc2VsZWN0KSAqLwogICAgICB2YXIgY2hhbm5lbCA9ICgnYmVzdFdheScgaW4gZGF0YSkgPyAnV2UgcmVwbHkgYnkgKnlvdXIgcHJlZmVycmVkIGNoYW5uZWwqIOKAlCBwaG9uZSwgdGV4dCBvciBlbWFpbC4nIDogJ1dlIHJlcGx5IGJ5ICpwaG9uZSBvciBlbWFpbCouJzsKICAgICAgbyA9IHsgZGFyazogZGFyaywgZXllYnJvdzogJ01lc3NhZ2UgcmVjZWl2ZWQnLCBoZWFkaW5nOiAnVGhhbmtzLCAnICsgZmlyc3ROYW1lKG5hbWUpICsgJy4nLCBzdWI6ICdBIG1lbWJlciBvZiBvdXIgaW4taG91c2UgdGVhbSB3aWxsIHJlYWQgeW91ciBtZXNzYWdlIGFuZCByZXBseSBhcyBzb29uIGFzIHBvc3NpYmxlLicsIHJvd3M6IHJvd3MsCiAgICAgICAgc3RlcHM6IFsnKkEgY2hhcnRlciBhZHZpc29yKiByZXZpZXdzIHlvdXIgbWVzc2FnZSBwZXJzb25hbGx5LicsIGNoYW5uZWwsICdIYXZlIGEgdHJpcCBpbiBtaW5kPyBXZeKAmWxsIHR1cm4gaXQgaW50byBhbiAqYWxsLWluIHF1b3RlKi4nXSwgY2FsbDogJ05lZWQgdXMgbm93PycgfTsKICAgIH0KICAgIG8ud2lkZSA9ICFtb2JpbGU7CiAgICB2YXIgd3JhcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgd3JhcC5pbm5lckhUTUwgPSBtb2JpbGUgPyBzdWNjZXNzTW9iaWxlKG8pIDogc3VjY2Vzc0Rlc2t0b3Aobyk7CiAgICBzdGFydC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZCh3cmFwLmZpcnN0Q2hpbGQsIHN0YXJ0KTsKICAgIGlmICh3cmFwLmZpcnN0Q2hpbGQpIHsgcGFyZW50LmFwcGVuZENoaWxkKHdyYXAuZmlyc3RDaGlsZCk7IH0KICAgIHZhciBjYXJkID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuZnN4LCAubS1zdWNjZXNzJyk7CiAgICBpZiAoY2FyZCAmJiAhbW9iaWxlKSB7IGNhcmQuc3R5bGUubWluSGVpZ2h0ID0gY29sSCArICdweCc7IH0KICAgIGlmICghbW9iaWxlKSB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHBhcmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnOyB9KTsgfSk7IH0KICAgIGlmIChjYXJkICYmIGNhcmQuc2Nyb2xsSW50b1ZpZXcpIHsgY2FyZC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KTsgfQogICAgfTsKICAgIGlmIChtb2JpbGUpIHsgYXBwbHkoKTsgfSBlbHNlIHsgc2V0VGltZW91dChhcHBseSwgMTcwKTsgfQogIH0KCiAgLyog4pSA4pSA4pSAIGdsb2JhbCBkZWxlZ2F0aW9uOiBhY3Rpb25zLCBzaGVldHMsIHRyYWNraW5nIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqLwogIGZ1bmN0aW9uIHNjcm9sbFRvRWwoZWwsIG9mZnNldCkgewogICAgaWYgKCFlbCkgeyByZXR1cm47IH0KICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gKG9mZnNldCB8fCA2MCksIGJlaGF2aW9yOiAnc21vb3RoJyB9KTsKICB9CiAgZnVuY3Rpb24gc2Nyb2xsVG9Gb3JtKCkgewogICAgdmFyIGVsID0gJCgnW2RhdGEtYXZjLXF1b3RlXSwgW2RhdGEtYXZjLWZvcm09Im1lbWJlcnNoaXAiXSwgW2RhdGEtYXZjLWZvcm09ImpldGNhcmQiXSwgI2ludGVyZXN0LWZvcm0nLCByb290KTsKICAgIGlmICghZWwpIHsgcmV0dXJuOyB9CiAgICBzY3JvbGxUb0VsKGVsLmNsb3Nlc3QoJ3NlY3Rpb24nKSB8fCBlbCwgNjApOwogIH0KICBmdW5jdGlvbiB0b2dnbGVGYXEoYnRuKSB7CiAgICB2Y
1892XIgcGFuZWwgPSBidG4ubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgaWYgKCFwYW5lbCkgeyByZXR1cm47IH0KICAgIHZhciBsaXN0ID0gcGFuZWwucGFyZW50Tm9kZS5wYXJlbnROb2RlOwogICAgdmFyIG9wZW4gPSBwYW5lbC5zdHlsZS5kaXNwbGF5ICE9PSAnbm9uZSc7CiAgICAkJCgnLmF2Yy1mYXEtcCcsIGxpc3QpLmZvckVhY2goZnVuY3Rpb24gKHApIHsgcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9KTsKICAgICQkKCcuYXZjLWZhcS1jJywgbGlzdCkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyBjLnN0eWxlLnRyYW5zZm9ybSA9ICdub25lJzsgfSk7CiAgICBpZiAoIW9wZW4pIHsgcGFuZWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7IHZhciBjID0gYnRuLnF1ZXJ5U2VsZWN0b3IoJy5hdmMtZmFxLWMnKTsgaWYgKGMpIHsgYy5zdHlsZS50cmFuc2Zvcm0gPSAncm90YXRlKDE4MGRlZyknOyB9IH0KICB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXYpIHsKICAgIHZhciB0ID0gZXYudGFyZ2V0LmNsb3Nlc3QgJiYgZXYudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFjdGlvbl0sIFtkYXRhLWRzLWZvY3VzXSwgYVtocmVmXj0idGVsOiJdLCBhW2hyZWZePSJtYWlsdG86Il0nKTsKICAgIGlmICghdCkgeyByZXR1cm47IH0KICAgIGlmICh0Lmhhc0F0dHJpYnV0ZSgnZGF0YS1kcy1mb2N1cycpKSB7IGRzU3RhdGUuZm9jdXMgPSB0LmdldEF0dHJpYnV0ZSgnZGF0YS1kcy1mb2N1cycpID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JzsgZHNSZW5kZXJUYWJzKCk7IHJldHVybjsgfQogICAgdmFyIGFjdGlvbiA9IHQuZ2V0QXR0cmlidXRlKCdkYXRhLWFjdGlvbicpOwogICAgaWYgKCFhY3Rpb24pIHsKICAgICAgdmFyIGhyZWYgPSB0LmdldEF0dHJpYnV0ZSgnaHJlZicpIHx8ICcnOwogICAgICBpZiAoaHJlZi5pbmRleE9mKCd0ZWw6JykgPT09IDApIHsgdHJhY2tFdmVudCgncGhvbmVfY2xpY2snLCB7IHBhZ2U6IFBBR0UgfSk7IH0KICAgICAgZWxzZSBpZiAoaHJlZi5pbmRleE9mKCdtYWlsdG86JykgPT09IDApIHsgdHJhY2tFdmVudCgnZW1haWxfY2xpY2snLCB7IHBhZ2U6IFBBR0UgfSk7IH0KICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGFjdGlvbiA9PT0gJ29wZW4tbW9kYWwnKSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IG9wZW5Nb2RhbCgpOyB9CiAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdjbG9zZS1tb2RhbCcpIHsgY2xvc2VNb2RhbCgpOyB9CiAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdzY3JvbGwtZm9ybScpIHsgZXYucHJldmVudERlZmF1bHQoKTsgc2Nyb2xsVG9Gb3JtKCk7IH0KICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ3Njcm9sbCcpIHsgdmFyIHRhcmdldCA9ICQoJyMnICsgdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtdGFyZ2V0JyksIHJvb3QpOyBpZiAodGFyZ2V0KSB7IGV2LnByZXZlbnREZWZhdWx0KCk7IHNjcm9sbFRvRWwodGFyZ2V0LCA2MCk7IH0gfQogICAgZWxzZSBpZiAoYWN0aW9uID09PSAnZmFxJykgeyB0b2dnbGVGYXEodCk7IH0KICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ3N1Ym1pdCcpIHsgdmFyIGYgPSB0LmNsb3Nlc3QoJ1tkYXRhLWF2Yy1mb3JtXScpOyBpZiAoZikgeyBldi5wcmV2ZW50RGVmYXVsdCgpOyBzdWJtaXRDb250YWN0Rm9ybShmLCB0KTsgfSB9CiAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdub3RpY2Utb2snKSB7IGlmIChEYXRlLm5vdygpIC0gbm90aWNlQXQgPiAyNTApIHsgY2xvc2VOb3RpY2UoKTsgfSB9ICAgLyogc3dhbGxvdyB0aGUgMm5kIGNsaWNrIG9mIGEgZG91YmxlLWNsaWNrIHRoYXQgbGFuZHMgb24gdGhlIGJhY2tkcm9wICovCiAgICBlbHNlIGlmIChhY3Rpb24gPT09ICdkcy1jbG9zZScgfHwgYWN0aW9uID09PSAnZHMtZG9uZScpIHsgY2xvc2VEYXRlU2hlZXQodHJ1ZSk7IH0KICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ2RzLWNsZWFyJykgewogICAgICBkc1N0YXRlLnZhbHVlID0gZHNTdGF0ZS5tb2RlID09PSAncmFuZ2UnID8geyBzdGFydDogbnVsbCwgZW5kOiBudWxsIH0gOiBudWxsOwogICAgICBkc1N0YXRlLmZvY3VzID0gJ3N0YXJ0JzsKICAgICAgaWYgKGRzU3RhdGUuY2FsKSB7IGRzU3RhdGUuY2FsLnVwZGF0ZShkc1N0YXRlLnZhbHVlKTsgfQogICAgICBkc1JlbmRlclRhYnMoKTsgZHNVcGRhdGVEb25lKCk7CiAgICB9CiAgfSk7CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uIChldikgewogICAgaWYgKGV2LmtleSA9PT0gJ1RhYicgJiYgbm90aWNlT3BlbikgeyBldi5wcmV2ZW50RGVmYXVsdCgpOyBzYWZlRm9jdXMoJCgnI2F2Yy1ub3RpY2UgLnFuLWJ0bicpKTsgcmV0dXJuOyB9ICAgLyogc2luZ2xlLWJ1dHRvbiBkaWFsb2c6IGtlZXAgZm9jdXMgaW5zaWRlICovCiAgICBpZiAoZXYua2V5ID09PSAnRXNjYXBlJykgewogICAgICBpZiAobm90aWNlT3BlbikgeyBjbG9zZU5vdGljZSgpOyByZXR1cm47IH0gICAgICAgICAgLyogdG9wLW1vc3QgbGF5ZXIgZmlyc3QgKi8KICAgICAgaWYgKGRzU3RhdGUub3BlbikgeyBjbG9zZURhdGVTaGVldChmYWxzZSk7IHJldHVybjsgfQogICAgICBpZiAobW9kYWxPcGVuKSB7IGNsb3NlTW9kYWwoKTsgfQogICAgfQogIH0pOwogIChmdW5jdGlvbiBkc0RyYWcoKSB7CiAgICAvKiBwaG9uZS1zaXplIGRhdGUgc2hlZXQ6IGRyYWcgdGhlIGhhbmRsZSAvIGhlYWRlciBkb3duIHRvIGRpc21pc3MgKFBvaW50ZXIgRXZlbnRzOiBmaW5nZXIsIHBlbiBvciBtb3VzZTsKICAgICAgIGEgcXVpY2sgZmxpY2sgY2xvc2VzIHRvbykuIE1pcnJvcnMgRGVzdCAzLjAgKHRvdWNoLW9ubHkgdGhlcmUpLiAqLwogICAgdmFyIHNoZWV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F2Yy1kYXRlLXNoZWV0Jyk7CiAgICB2YXIgaGVhZCA9IHNoZWV0ICYmIHNoZWV0LnF1ZXJ5U2VsZWN0b3IoJy5kcy1oZWFkJyk7CiAgICBpZiAoIWhlYWQpIHsgcmV0dXJuOyB9CiAgICB2YXIgc3RhcnRZID0gMCwgY3VyWSA9IDAsIHN0YXJ0VCA9IDAsIGRyYWdnaW5nID0gZmFsc2UsIHBpZCA9IG51bGw7CiAgICBmdW5jdGlvbiBzbWFsbCgpIHsgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNzIwOyB9CiAgICBmdW5jdGlvbiBiZWdpbih5LCBpZCkgeyBpZiAoIWRzU3RhdGUub3BlbiB8fCAhc21hbGwoKSkgeyByZXR1cm47IH0gc3RhcnRZID0gY3VyWSA9IHk7IHN0YXJ0VCA9IERhdGUubm93KCk7IGRyYWdnaW5nID0gdHJ1ZTsgcGlkID0gaWQ7IHNoZWV0LnN0eWxlLnRyYW5zaXRpb24gPSAnbm9uZSc7IH0KICAgIGZ1bmN0aW9uIG1vdmUoeSkgeyBpZiAoIWRyYWdnaW5nKSB7IHJldHVybjsgfSBjdXJZID0geTsgc2hlZXQuc3R5bGUudHJhbnNmb3JtID0gJ3RyYW5zbGF0ZVkoJyArIE1hdGgubWF4KDAsIGN1clkgLSBzdGFydFkpICsgJ3B4KSc7IH0KICAgIGZ1bmN0aW9uIGVuZCgpIHsKICAgICAgaWYgKCFkcmFnZ2luZykgeyByZXR1cm47IH0KICAgICAgZHJhZ2dpbmcgPSBmYWxzZTsgcGlkID0gbnVsbDsKICAgICAgdmFyIGR5ID0gY3VyWSAtIHN0YXJ0WSwgdiA9IGR5IC8gTWF0aC5tYXgoMSwgRGF0ZS5ub3coKSAtIHN0YXJ0VCk7CiAgICAgI
1892HNoZWV0LnN0eWxlLnRyYW5zaXRpb24gPSAnJzsgc2hlZXQuc3R5bGUudHJhbnNmb3JtID0gJyc7CiAgICAgIGlmIChkeSA+IDgwIHx8IChkeSA+IDI0ICYmIHYgPiAwLjQ1KSkgeyBjbG9zZURhdGVTaGVldCh0cnVlKTsgfQogICAgfQogICAgaWYgKHdpbmRvdy5Qb2ludGVyRXZlbnQpIHsKICAgICAgaGVhZC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgaWYgKChlLmJ1dHRvbiAmJiBlLmJ1dHRvbiAhPT0gMCkgfHwgKGUudGFyZ2V0LmNsb3Nlc3QgJiYgZS50YXJnZXQuY2xvc2VzdCgnYnV0dG9uJykpKSB7IHJldHVybjsgfQogICAgICAgIGJlZ2luKGUuY2xpZW50WSwgZS5wb2ludGVySWQpOwogICAgICAgIGlmIChkcmFnZ2luZykgeyB0cnkgeyBoZWFkLnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKTsgfSBjYXRjaCAoeCkgeyAvKiAqLyB9IH0KICAgICAgfSk7CiAgICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBmdW5jdGlvbiAoZSkgeyBpZiAoZHJhZ2dpbmcgJiYgZS5wb2ludGVySWQgPT09IHBpZCkgeyBtb3ZlKGUuY2xpZW50WSk7IH0gfSk7CiAgICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgZW5kKTsKICAgICAgaGVhZC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyY2FuY2VsJywgZW5kKTsKICAgIH0gZWxzZSB7CiAgICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGZ1bmN0aW9uIChlKSB7IGJlZ2luKGUudG91Y2hlc1swXS5jbGllbnRZLCAxKTsgfSwgeyBwYXNzaXZlOiB0cnVlIH0pOwogICAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGZ1bmN0aW9uIChlKSB7IG1vdmUoZS50b3VjaGVzWzBdLmNsaWVudFkpOyB9LCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICAgIGhlYWQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBlbmQpOwogICAgICBoZWFkLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgZW5kKTsKICAgIH0KICB9KSgpOwoKICAvKiDilIDilIDilIAgTGVhZmxldCBvZmZpY2UgbWFwcyAoZGVzaWduJ3MgbWFwLCBsYXp5LWxvYWRlZCkg4pSA4pSA4pSA4pSA4pSA4pSAICovCiAgdmFyIGxlYWZsZXRMb2FkaW5nID0gZmFsc2U7CiAgZnVuY3Rpb24gZW5zdXJlTGVhZmxldChjYikgewogICAgaWYgKHdpbmRvdy5MKSB7IGNiKCk7IHJldHVybjsgfQogICAgaWYgKCFsZWFmbGV0TG9hZGluZykgewogICAgICBsZWFmbGV0TG9hZGluZyA9IHRydWU7CiAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGlua1tocmVmKj0ibGVhZmxldCJdJykpIHsKICAgICAgICB2Y
1892XIgbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsgbC5yZWwgPSAnc3R5bGVzaGVldCc7IGwuaHJlZiA9ICdodHRwczovL3VucGtnLmNvbS9sZWFmbGV0QDEuOS40L2Rpc3QvbGVhZmxldC5jc3MnOyBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGwpOwogICAgICB9CiAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9ImxlYWZsZXQiXScpKSB7CiAgICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsgcy5zcmMgPSAnaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjkuNC9kaXN0L2xlYWZsZXQuanMnOyBzLmFzeW5jID0gdHJ1ZTsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgfQogICAgfQogICAgdmFyIHRyaWVzID0gMDsKICAgIHZhciB0ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBpZiAod2luZG93LkwpIHsgY2xlYXJJbnRlcnZhbCh0KTsgY2IoKTsgfSBlbHNlIGlmICgrK3RyaWVzID4gMzAwKSB7IGNsZWFySW50ZXJ2YWwodCk7IH0gfSwgMTAwKTsKICB9CiAgZnVuY3Rpb24gYnVpbGRNYXAoZWwpIHsKICAgIGlmIChlbC5fX21hcCB8fCAhd2luZG93LkwpIHsgcmV0dXJuOyB9CiAgICB2YXIgTCA9IHdpbmRvdy5MOwogICAgdmFyIGtpbmQgPSBlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWFwJyksIG1vYmlsZSA9IGluTW9iaWxlVHJlZShlbCk7CiAgICB2YXIgY2VudGVyID0ga2luZCA9PT0gJ2NvbnRhY3QnID8gWzI2Ljk1LCAtODIuMl0gOiBbMjYuNzUsIC04Mi40XTsKICAgIHZhciB6b29tID0ga2luZCA9PT0gJ2NvbnRhY3QnID8gKG1vYmlsZSA/IDUuMyA6IDYuNSkgOiAobW9iaWxlID8gNS41IDogNi41KTsKICAgIHZhciBtID0gTC5tYXAoZWwsIHsgem9vbUNvbnRyb2w6IGZhbHNlLCBzY3JvbGxXaGVlbFpvb206IGZhbHNlLCBkcmFnZ2luZzogZmFsc2UsIGRvdWJsZUNsaWNrWm9vbTogZmFsc2UsIGJveFpvb206IGZhbHNlLCBrZXlib2FyZDogZmFsc2UsIHRvdWNoWm9vbTogZmFsc2UsIHpvb21TbmFwOiAwLjUsIGF0dHJpYnV0aW9uQ29udHJvbDogdHJ1ZSB9KS5zZXRWaWV3KGNlbnRlciwgem9vbSk7CiAgICBMLnRpbGVMYXllcignaHR0cHM6Ly97c30uYmFzZW1hcHMuY2FydG9jZG4uY29tL3Jhc3RlcnRpbGVzL3ZveWFnZXIve3p9L3t4fS97eX17cn0ucG5nP2tleT1jYjFfMmg2Zl8xXzlkNGVhNzRkMzA0Y2U3ZmJiZDFjNWQzNScsIHsgYXR0cmlidXRpb246ICcmY29weTsgPGEgaHJlZj0iaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0Ij5PcGVuU3RyZWV0TWFwPC9hPiAmY29weTsgPGEgaHJlZj0iaHR0cHM6Ly9jYXJ0by5jb20vYXR0cmlidXRpb25zIj5DQVJUTzwvYT4nLCBtYXhab29tOiAxOSB9KS5hZGRUbyhtKTsKICAgIHZhciBob21lID0gWzI3LjA3MTYsIC04Mi40NDAzXTsKICAgIHZhciBkZXN0cyA9IFt7IHA6IFs0MC42NCwgLTczLjc4XSB9LCB7IHA6IFs0MS45NywgLTg3LjldIH0sIHsgcDogWzMyLjg1LCAtOTYuODVdIH0sIHsgcDogWzI1LjksIC04MC4yOF0sIG46ICdNaWFtaScgfSwgeyBwOiBbMjUuMDYsIC03Ny4zNV0sIG46ICdOYXNzYXUnIH0sIHsgcDogWzE4LjA0LCAtNjMuMTFdIH1dOwogICAgZGVzdHMuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICB2YXIgYTEgPSBob21lWzBdLCBvMSA9IGhvbWVbMV0sIGEyID0gZC5wWzBdLCBvMiA9IGQucFsxXTsKICAgICAgdmFyIGMgPSBbKGExICsgYTIpIC8gMiArIE1hdGguYWJzKG8yIC0gbzEpICogMC4xNCArIDEuMiwgKG8xICsgbzIpIC8gMl07CiAgICAgIHZhciBwdHMgPSBbXTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gMzI7IGkrKykgeyB2YXIgdHQgPSBpIC8gMzIsIHUgPSAxIC0gdHQ7IHB0cy5wdXNoKFt1ICogdSAqIGExICsgMiAqIHUgKiB0dCAqIGNbMF0gKyB0dCAqIHR0ICogYTIsIHUgKiB1ICogbzEgKyAyICogdSAqIHR0ICogY1sxXSArIHR0ICogdHQgKiBvMl0pOyB9CiAgICAgIEwucG9seWxpbmUocHRzLCB7IGNvbG9yOiAnI0U4QTkzQycsIHdlaWdodDogMS42LCBvcGFjaXR5OiAwLjUsIGRhc2hBcnJheTogJzEgNicsIGludGVyYWN0aXZlOiBmYWxzZSwgY2xhc3NOYW1lOiAnYXYtcm91dGUnIH0pLmFkZFRvKG0pOwogICAgICBMLmNpcmNsZU1hcmtlcihkLnAsIHsgcmFkaXVzOiAzLCBjb2xvcjogJyMwQjE2MjYnLCB3ZWlnaHQ6IDEuNSwgZmlsbENvbG9yOiAnI0M4ODQxRicsIGZpbGxPcGFjaXR5OiAxLCBvcGFjaXR5OiAxLCBpbnRlcmFjdGl2ZTogZmFsc2UgfSkuYWRkVG8obSk7CiAgICAgIGlmIChkLm4pIHsgTC5tYXJrZXIoZC5wLCB7IGljb246IEwuZGl2SWNvbih7IGNsYXNzTmFtZTogJycsIGh0bWw6ICc8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpQb3BwaW5zLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEwLjVweDtmb250LXdlaWdodDo1MDA7Y29sb3I6IzBCMTYyNjt3aGl0ZS1zcGFjZTpub3dyYXA7dHJhbnNmb3JtOnRyYW5zbGF0ZSg5cHgsLThweCkiPicgKyBkLm4gKyAnPC9kaXY+JywgaWNvblNpemU6IFswLCAwXSB9KSwgaW50ZXJhY3RpdmU6IGZhbHNlIH0pLmFkZFRvKG0pOyB9CiAgICB9KTsKICAgIEwubWFya2VyKGhvbWUsIHsgaWNvbjogTC5kaXZJY29uKHsgY2xhc3NOYW1lOiAnJywgaHRtbDogJzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlIj48c3BhbiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOHB4O3RvcDotOHB4O3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojQzg4NDFGO2JvcmRlcjoyLjVweCBzb2xpZCAjRkZGRkZGO2FuaW1hdGlvbjphdmNQdWxzZSAyLjZzIGVhc2Utb3V0IGluZmluaXRlO2Rpc3BsYXk6YmxvY2siPjwvc3Bhbj48ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MThweDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7Zm9udC1mYW1pbHk6UG9wcGlucyxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTonICsgKGtpbmQgPT09ICdjb250YWN0JyA/ICcxM3B4JyA6ICcxMXB4JykgKyAnO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzowLjA0ZW07Y29sb3I6I0ZGRkZGRjtiYWNrZ3JvdW5kOnJnYmEoMTEsMjIsMzgsMC44Mik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIzMiwxNjksNjAsMC40NSk7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjVweCAxMnB4O3doaXRlLXNwYWNlOm5vd3JhcCI+S1ZOQyAmbWlkZG90OyBWZW5pY2UgTXVuaWNpcGFsPC9kaXY+PC9kaXY+JywgaWNvblNpemU6IFswLCAwXSB9KSwgaW50ZXJhY3RpdmU6IGZhbHNlIH0pLmFkZFRvKG0pOwogICAgZWwuX19tYXAgPSBtOwogICAgdmFyIHJlZml0ID0gZnVuY3Rpb24gKCkgeyBtLmludmFsaWRhdGVTaXplKCk7IG0uc2V0VmlldyhjZW50ZXIsIHpvb20sIHsgYW5pbWF0ZTogZmFsc2UgfSk7IH07CiAgICBzZXRUaW
18921lb3V0KHJlZml0LCAyNTApOyBzZXRUaW1lb3V0KHJlZml0LCA5MDApOwogICAgaWYgKHdpbmRvdy5SZXNpemVPYnNlcnZlcikgeyB2YXIgcnQ7IHZhciBybyA9IG5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbiAoKSB7IGNsZWFyVGltZW91dChydCk7IHJ0ID0gc2V0VGltZW91dChyZWZpdCwgMTQwKTsgfSk7IHJvLm9ic2VydmUoZWwpOyB9CiAgfQogIGZ1bmN0aW9uIGluaXRNYXBzKCkgewogICAgdmFyIG1hcHMgPSAkJCgnLmF2Yy1tYXAnLCByb290KS5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiAhZWwuX19tYXA7IH0pOwogICAgaWYgKCFtYXBzLmxlbmd0aCkgeyByZXR1cm47IH0KICAgIGVuc3VyZUxlYWZsZXQoZnVuY3Rpb24gKCkgeyAkJCgnLmF2Yy1tYXAnLCByb290KS5mb3JFYWNoKGJ1aWxkTWFwKTsgfSk7CiAgfQoKICAvKiDilIDilIDilIAgR29vZ2xlIFBsYWNlcyBhdXRvc3VnZ2VzdCAoRGVzdCAzLjAgcG9ydCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovCiAgKGZ1bmN0aW9uIHBsYWNlcygpIHsKICAgIHZhciBLRVkgPSBDRkcucGxhY2VzS2V5IHx8ICcnOwogICAgaWYgKCFLRVkpIHsgcmV0dXJuOyB9CiAgICB2YXIgU0VMID0gJ2lucHV0W2RhdGEtZmllbGQ9ImZyb20iXSwgaW5wdXRbZGF0YS1maWVsZD0idG8iXSwgaW5wdXRbZGF0YS1sZWctZmllbGQ9ImZyb20iXSwgaW5wdXRbZGF0YS1sZWctZmllbGQ9InRvIl0nOwogICAgdmFyIHJlYWR5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgZmFpbGVkID0gZmFsc2UsIHBlbmRpbmcgPSBbXSwgYXR0YWNoZWQgPSBbXTsKICAgIHZhciBwcmV2QXV0aEZhaWwgPSB3aW5kb3cuZ21fYXV0aEZhaWx1cmU7CiAgICB3aW5kb3cuZ21fYXV0aEZhaWx1cmUgPSBmdW5jdGlvbiAoKSB7CiAgICAgIGZhaWxlZCA9IHRydWU7IHBlbmRpbmcgPSBbXTsKICAgICAgdHJ5IHsgY29uc29sZS53YXJuKCdbQXZTa3ldIEdvb2dsZSBQbGFjZXMgcmVqZWN0ZWQgdGhpcyBzaXRlXCdzIGtleSAoSFRUUC1yZWZlcnJlciBhbGxvd2xpc3QpLiBDaXR5IGF1dG9zdWdnZXN0IGlzIG9mZjsgZm9ybXMgZmFsbCBiYWNrIHRvIHBsYWluIGlucHV0cy4nKTsgfSBjYXRjaCAoZSkgeyAvKiAqLyB9CiAgICAgIGF0dGFjaGVkLmZvckVhY2goZnVuY3Rpb24gKGEpIHsgYS5lbC5kaXNhYmxlZCA9IGZhbHNlOyBhLmVsLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICcnOyBhLmVsLnBsYWNlaG9sZGVyID0gYS5waDsgfSk7CiAgICAgICQkKCcucGFjLWNvbnRhaW5lcicpLmZvckVhY2goZnVuY3Rpb24gKHApIHsgaWYgKHAucGFyZW50Tm9kZSkgeyBwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocCk7IH0gfSk7CiAgICAgIGlmICh0eXBlb2YgcHJldkF1dGhGYWlsID09PSAnZnVuY3Rpb24nKSB7IHByZXZBdXRoRmFpbCgpOyB9CiAgICB9OwogICAgZnVuY3Rpb24gZmx1c2goKSB7IHZhciBxID0gcGVuZGluZy5zbGljZSgpOyBwZW5kaW5nID0gW107IHEuZm9yRWFjaChhdHRhY2gpOyB9CiAgICBmdW5jdGlvbiBsb2FkQXBpKCkgewogICAgICBpZiAobG9hZGluZykgeyByZXR1cm47IH0KICAgICAgbG9hZGluZyA9IHRydWU7CiAgICAgIGlmICh3aW5kb3cuZ29vZ2xlICYmIHdpbmRvdy5nb29nbGUubWFwcyAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMucGxhY2VzKSB7IHJlYWR5ID0gdHJ1ZTsgZmx1c2goKTsgcmV0dXJuOyB9CiAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyo9Im1hcHMuZ29vZ2xlYXBpcy5jb20iXScpKSB7CiAgICAgICAgd2luZG93Ll9fYXZjR3BSZWFkeSA9IGZ1bmN0aW9uICgpIHsgcmVhZHkgPSB0cnVlOyBmbHVzaCgpOyB9OwogICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEtFWSkgKyAnJmxpYnJhcmllcz1wbGFjZXMmY2FsbGJhY2s9X19hdmNHcFJlYWR5JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2Y
1892XIgdHJpZXMgPSAwOwogICAgICAgIHZhciB0ID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgeyBpZiAod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMgJiYgd2luZG93Lmdvb2dsZS5tYXBzLnBsYWNlcykgeyBjbGVhckludGVydmFsKHQpOyByZWFkeSA9IHRydWU7IGZsdXNoKCk7IH0gZWxzZSBpZiAoKyt0cmllcyA+IDUwKSB7IGNsZWFySW50ZXJ2YWwodCk7IH0gfSwgMzAwKTsKICAgICAgfQogICAgfQogICAgdmFyIHBhY09ic2VydmVyID0gbnVsbCwgbGFzdEdwSW5wdXQgPSBudWxsOwogICAgLyogIlBldG9za2V5LCBNSSIgLyAiVmllbm5hLCBBdXN0cmlhIiDigJQgbm8gemlwLCBubyAiVVNBIiAob3duZXIsIDIwMjYtMDgtMjEpICovCiAgICBmdW5jdGlvbiBzaG9ydFBsYWNlKHBsYWNlKSB7CiAgICAgIHZhciBjb21wcyA9IHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cyB8fCBbXTsKICAgICAgZnVuY3Rpb24gZ2V0KHR5cGUsIHNob3J0KSB7IGZvciAodmFyIGkgPSAwOyBpIDwgY29tcHMubGVuZ3RoOyBpKyspIHsgaWYgKGNvbXBzW2ldLnR5cGVzICYmIGNvbXBzW2ldLnR5cGVzLmluZGV4T2YodHlwZSkgPiAtMSkgeyByZXR1cm4gc2hvcnQgPyBjb21wc1tpXS5zaG9ydF9uYW1lIDogY29tcHNbaV0ubG9uZ19uYW1lOyB9IH0gcmV0dXJuICcnOyB9CiAgICAgIHZhciBuYW1lID0gcGxhY2UubmFtZSB8fCBnZXQoJ2xvY2FsaXR5JykgfHwgZ2V0KCdwb3N0YWxfdG93bicpIHx8ICcnOwogICAgICBpZiAoIW5hbWUpIHsgcmV0dXJuICcnOyB9CiAgICAgIHZhciBjYyA9IGdldCgnY291bnRyeScsIHRydWUpLCByZWdpb24gPSBnZXQoJ2FkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMScsIHRydWUpLCBjb3VudHJ5ID0gZ2V0KCdjb3VudHJ5Jyk7CiAgICAgIGlmIChjYyA9PT0gJ1VTJyB8fCBjYyA9PT0gJ0NBJykgeyByZXR1cm4gbmFtZSArIChyZWdpb24gJiYgcmVnaW9uICE9PSBuYW1lID8gJywgJyArIHJlZ2lvbiA6ICcnKTsgfQogICAgICByZXR1cm4gbmFtZSArIChjb3VudHJ5ICYmIGNvdW50cnkgIT09IG5hbWUgPyAnLCAnICsgY291bnRyeSA6ICcnKTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpZWxkQm94Rm9yKGVsKSB7IHJldHVybiAoZWwuY2xvc2VzdCAmJiBlbC5jbG9zZXN0KCcucWYtYm94LCAucWYtbGVnLWNlbGwsIC5xbS1jZWxsLCAucW0tbGVnLWNlbGwsIC5xcC1jZWxsJykpIHx8IGVsOyB9CiAgICBmdW5jdGlvbiBwb3NpdGlvblBhYygpIHsKICAgICAgdmFyIGVsID0gbGFzdEdwSW5wdXQ7CiAgICAgIHZhciBtaW5lID0gZWwgJiYgZWwuX19hdkdwICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWwpOwogICAgICBhdHRhY2hlZC5mb3JFYWNoKGZ1bmN0aW9uIChhKSB7IGlmIChhLmVsICE9PSBlbCkgeyBmaWVsZEJveEZvcihhLmVsKS5jbGFzc0xpc3QucmVtb3ZlKCdhdi1wYWMtb3BlbicpOyBhLmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2F2LXBhYy1vcGVuJyk7IH0gfSk7CiAgICAgIGlmICghbWluZSkgeyByZXR1cm47IH0KICAgICAgdmFyIHBhYyA9IG51bGwsIGFsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wYWMtY29udGFpbmVyJyksIGk7CiAgICAgIGZvciAoaSA9IGFsbC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeyBpZiAoYWxsW2ldLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJyAmJiBhbGxbaV0ub2Zmc2V0SGVpZ2h0ID4gMCkgeyBwYWMgPSBhbGxbaV07IGJyZWFrOyB9IH0KICAgICAgZm9yIChpID0gMDsgaSA8IGFsbC5sZW5ndGg7IGkrKykgeyBpZiAoYWxsW2ldICE9PSBwYWMgJiYgYWxsW2ldLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykgeyBhbGxbaV0uc3R5bGUuZGlzcGxheSA9ICdub25lJzsgfSB9CiAgICAgIGlmIChwYWMgJiYgZWwuX19hdlBhY1NxdWVsY2gpIHsgcGFjLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IHBhYyA9IG51bGw7IH0KICAgICAgdmFyIGJveCA9IGZpZWxkQm94Rm9yKGVsKTsKICAgICAgaWYgKHBhYykgewogICAgICAgIHZhciByID0gYm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIHZhciBNSU5fVyA9IDM2MCwgdyA9IHIud2lkdGgsIGxlZnQgPSByLmxlZnQ7CiAgICAgICAgaWYgKHcgPCBNSU5fVykgewogICAgICAgICAgdmFyIGhvc3QgPSAoYm94LmNsb3Nlc3QgJiYgYm94LmNsb3Nlc3QoJy5xbS1ib2R5LCAucWYtY2FyZCcpKSB8fCBudWxsOwogICAgICAgICAgdmFyIGhiID0gaG9zdCA/IGhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgOiBudWxsOwogICAgICAgICAgdmFyIGhsID0gKGhiID8gaGIubGVmdCA6IDApICsgMTAsIGhydCA9IChoYiA/IGhiLnJpZ2h0IDogd2luZG93LmlubmVyV2lkdGgpIC0gMTA7CiAgICAgICAgICB3ID0gTWF0aC5tYXgoci53aWR0aCwgTWF0aC5taW4oTUlOX1csIGhydCAtIGhsKSk7CiAgICAgICAgICBpZiAobGVmdCArIHcgPiBocnQpIHsgbGVmdCA9IE1hdGgubWF4KGhsLCBocnQgLSB3KTsgfQogICAgICAgICAgaWYgKHcgLSByLndpZHRoIDwgMjQpIHsgdyA9IHIud2lkdGg7IGxlZnQgPSByLmxlZnQ7IH0KICAgICAgICB9CiAgICAgICAgdmFyIHVuZGVybGluZSA9IChib3ggPT09IGVsKTsKICAgICAgICB2Y
1892XIgd2lkZSA9ICh3IC0gci53aWR0aCkgPiAyIHx8IHVuZGVybGluZTsKICAgICAgICBwYWMuc3R5bGUud2lkdGggPSB3ICsgJ3B4JzsgcGFjLnN0eWxlLm1pbldpZHRoID0gdyArICdweCc7IHBhYy5zdHlsZS5tYXhXaWR0aCA9IHcgKyAncHgnOwogICAgICAgIHBhYy5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CiAgICAgICAgcGFjLnN0eWxlLmxlZnQgPSAobGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCkgKyAncHgnOwogICAgICAgIHBhYy5zdHlsZS50b3AgPSAoci5ib3R0b20gKyB3aW5kb3cucGFnZVlPZmZzZXQgKyAod2lkZSA/IDYgOiAtMSkpICsgJ3B4JzsKICAgICAgICBwYWMuY2xhc3NMaXN0LnRvZ2dsZSgnYXYtcGFjLWNhcmQnLCB3aWRlKTsKICAgICAgICBwYWMuY2xhc3NMaXN0LnRvZ2dsZSgnYXYtcGFjLXVuZGVybGluZScsIHVuZGVybGluZSk7CiAgICAgICAgcGFjLmNsYXNzTGlzdC50b2dnbGUoJ2F2LXBhYy1xcCcsIGJveC5jbGFzc0xpc3QuY29udGFpbnMoJ3FwLWNlbGwnKSk7CiAgICAgICAgcGFjLmNsYXNzTGlzdC50b2dnbGUoJ2F2LXBhYy1tb2JpbGUnLCAhIShlbC5jbG9zZXN0ICYmIChlbC5jbG9zZXN0KCcuYXZjLW0nKSB8fCBib3guY2xhc3NMaXN0LmNvbnRhaW5zKCdxbS1jZWxsJykgfHwgYm94LmNsYXNzTGlzdC5jb250YWlucygncW0tbGVnLWNlbGwnKSkpKTsKICAgICAgICBib3guY2xhc3NMaXN0LnRvZ2dsZSgnYXYtcGFjLW9wZW4nLCAhd2lkZSk7CiAgICAgIH0gZWxzZSB7IGJveC5jbGFzc0xpc3QucmVtb3ZlKCdhdi1wYWMtb3BlbicpOyB9CiAgICB9CiAgICBmdW5jdGlvbiBzdGFydFBhY09ic2VydmVyKCkgewogICAgICBpZiAocGFjT2JzZXJ2ZXIgfHwgIXdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKSB7IHJldHVybjsgfQogICAgICBwYWNPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHBvc2l0aW9uUGFjKTsKICAgICAgcGFjT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSwgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ3N0eWxlJ10gfSk7CiAgICAgIHZhciByYWYgPSAwOwogICAgICBmdW5jdGlvbiByZXF1ZXVlKCkgeyBpZiAoIXJhZikgeyByYWYgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gKCkgeyByYWYgPSAwOyBwb3NpdGlvblBhYygpOyB9KTsgfSB9CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCByZXF1ZXVlLCB7IHBhc3NpdmU6IHRydWUgfSk7CiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXF1ZXVlKTsKICAgICAgaWYgKHdpbmRvdy52aXN1YWxWaWV3cG9ydCkgeyB3aW5kb3cudmlzdWFsVmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcmVxdWV1ZSk7IHdpbmRvdy52aXN1YWxWaWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXF1ZXVlKTsgfQogICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGZ1bmN0aW9uIChlKSB7IHZhciBlbCA9IGUudGFyZ2V0OyBpZiAoZWwgJiYgZWwuY2xvc2VzdCkgeyB2YXIgYiA9IGZpZWxkQm94Rm9yKGVsKTsgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGIuY2xhc3NMaXN0LnJlbW92ZSgnYXYtcGFjLW9wZW4nKTsgZWwuY2xhc3NMaXN0LnJlbW92ZSgnYXYtcGFjLW9wZW4nKTsgfSwgMjAwKTsgfSB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGhpZGVQYWMoKSB7CiAgICAgICQkKCcucGFjLWNvbnRhaW5lcicpLmZvckVhY2goZnVuY3Rpb24gKHApIHsgcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyB9KTsKICAgICAgYXR0YWNoZWQuZm9yRWFjaChmdW5jdGlvbiAoYSkgeyBhLmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2F2LXBhYy1vcGVuJyk7IGZpZWxkQm94Rm9yKGEuZWwpLmNsYXNzTGlzdC5yZW1vdmUoJ2F2LXBhYy1vcGVuJyk7IH0pOwogICAgfQogICAgZnVuY3Rpb24gYXR0YWNoKGVsKSB7CiAgICAgIGlmIChmYWlsZWQgfHwgZWwuX19hdkdwKSB7IHJldHVybjsgfQogICAgICBpZiAoIXJlYWR5KSB7IGlmIChwZW5kaW5nLmluZGV4T2YoZWwpID09PSAtMSkgeyBwZW5kaW5nLnB1c2goZWwpOyB9IGxvYWRBcGkoKTsgcmV0dXJuOyB9CiAgICAgIGF0dGFjaGVkID0gYXR0YWNoZWQuZmlsdGVyKGZ1bmN0aW9uIChhKSB7IHJldHVybiBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGEuZWwpOyB9KTsKICAgICAgdmFyIGxpdmVCZWZvcmUgPSBhdHRhY2hlZC5sZW5ndGg7CiAgICAgIHZhciBiZWZvcmUgPSAkJCgnLnBhYy1jb250YWluZXInKTsKICAgICAgaWYgKGJlZm9yZS5sZW5ndGggPiBsaXZlQmVmb3JlKSB7IGJlZm9yZS5zbGljZSgwLCBiZWZvcmUubGVuZ3RoIC0gbGl2ZUJlZm9yZSkuZm9yRWFjaChmdW5jdGlvbiAocCkgeyBpZiAocC5wYXJlbnROb2RlKSB7IHAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKTsgfSB9KTsgfQogICAgICBhdHRhY2hlZC5wdXNoKHsgZWw6IGVsLCBwaDogZWwucGxhY2Vob2xkZXIgfSk7CiAgICAgIHN0YXJ0UGFjT2JzZXJ2ZXIoKTsKICAgICAgZWwuX19hdkdwID0gbmV3IHdpbmRvdy5nb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKGVsLCB7IHR5cGVzOiBbJyhjaXRpZXMpJ10sIGZpZWxkczogWydmb3JtYXR0ZWRfYWRkcmVzcycsICduYW1lJywgJ2dlb21ldHJ5JywgJ2FkZHJlc3NfY29tcG9uZW50cyddIH0pOwogICAgICBpZiAoZWwudmFsdWUgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZWwpIHsgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbCAmJiBlbC52YWx1ZSkgeyBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpOyB9IH0sIDYwKTsgfQogICAgICBlbC5fX2F2R3AuYWRkTGlzdGVuZXIoJ3BsYWNlX2NoYW5nZWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSgnYXYtcGFjLW9wZW4nKTsgZmllbGRCb3hGb3IoZWwpLmNsYXNzTGlzdC5yZW1vdmUoJ2F2LXBhYy1vcGVuJyk7CiAgICAgICAgdmFyIHBsYWNlID0gZWwuX19hdkdwLmdldFBsYWNlKCk7CiAgICAgICAgaWYgKCFwbGFjZSB8fCAoIXBsYWNlLmZvcm1hdHRlZF9hZGRyZXNzICYmICFwbGFjZS5uYW1lKSkgeyByZXR1cm47IH0KICAgICAgICBlbC5fX2F2U2V0dGluZ1BsYWNlID0gdHJ1ZTsKICAgICAgICBlbC52YWx1ZSA9IHNob3J0UGxhY2UocGxhY2UpIHx8IHBsYWNlLmZvcm1hdHRlZF9hZGRyZXNzIHx8IHBsYWNlLm5hbWU7CiAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pKTsKICAgICAgICBlbC5fX2F2U2V0dGluZ1BsYWNlID0gZmFsc2U7CiAgICAgICAgZWwuX19hdlBhY1NxdWVsY2ggPSB0cnVlOw
1892ogICAgICAgIGVsLl9fYXZOb1NlbGVjdFVudGlsID0gRGF0ZS5ub3coKSArIDYwMDsKICAgICAgICBoaWRlUGFjKCk7IHNldFRpbWVvdXQoaGlkZVBhYywgODApOyBzZXRUaW1lb3V0KGhpZGVQYWMsIDMwMCk7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7CiAgICAgICAgICBpZiAoYSAhPT0gZWwgJiYgYSAmJiBhLm1hdGNoZXMgJiYgYS5tYXRjaGVzKCdpbnB1dCwgdGV4dGFyZWEnKSAmJiAhYS52YWx1ZSkgeyBlbC5fX2F2Tm9TZWxlY3RVbnRpbCA9IERhdGUubm93KCkgKyA0MDA7IHRyeSB7IGVsLmZvY3VzKCk7IH0gY2F0Y2ggKGVycikgeyAvKiAqLyB9IH0KICAgICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbCkgeyB0cnkgeyBlbC5zZXRTZWxlY3Rpb25SYW5nZShlbC52YWx1ZS5sZW5ndGgsIGVsLnZhbHVlLmxlbmd0aCk7IH0gY2F0Y2ggKGVycikgeyAvKiAqLyB9IH0KICAgICAgICB9LCAwKTsKICAgICAgfSk7CiAgICB9CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIGVsID0gZS50YXJnZXQ7CiAgICAgIGlmIChlbCAmJiBlbC5tYXRjaGVzICYmIGVsLm1hdGNoZXMoU0VMKSkgewogICAgICAgIGxhc3RHcElucHV0ID0gZWw7IGF0dGFjaChlbCk7CiAgICAgICAgaWYgKGVsLnZhbHVlICYmICFlbC5fX2F2SW5GaWVsZCAmJiAhKGVsLl9fYXZOb1NlbGVjdFVudGlsICYmIERhdGUubm93KCkgPCBlbC5fX2F2Tm9TZWxlY3RVbnRpbCkpIHsKICAgICAgICAgIHZhciBzZWxlY3RBbGwgPSBmdW5jdGlvbiAoKSB7IGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBlbCB8fCBlbC5fX2F2U2VsZWN0ZWRPbmNlKSB7IHJldHVybjsgfSB0cnkgeyBlbC5zZXRTZWxlY3Rpb25SYW5nZSgwLCBlbC52YWx1ZS5sZW5ndGgpOyB9IGNhdGNoIChlcnIpIHsgdHJ5IHsgZWwuc2VsZWN0KCk7IH0gY2F0Y2ggKGVycjIpIHsgLyogKi8gfSB9IH07CiAgICAgICAgICBlbC5fX2F2U2VsZWN0ZWRPbmNlID0gZmFsc2U7IHNlbGVjdEFsbCgpOwogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHNlbGVjdEFsbCgpOyBlbC5fX2F2U2VsZWN0ZWRPbmNlID0gdHJ1ZTsgfSwgMCk7CiAgICAgICAgfQogICAgICAgIGVsLl9fYXZJbkZpZWxkID0gdHJ1ZTsKICAgICAgfQogICAgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGZ1bmN0aW9uIChlKSB7IHZhciBlbCA9IGUudGFyZ2V0OyBpZiAoZWwgJiYgZWwubWF0Y2hlcyAmJiBlbC5tYXRjaGVzKFNFTCkpIHsgZWwuX19hdkluRmllbGQgPSBmYWxzZTsgZWwuX19hdlNlbGVjdGVkT25jZSA9IGZhbHNlOyB9IH0pOwogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbiAoZSkgewogICAgICB2YXIgZWwgPSBlLnRhcmdldDsKICAgICAgaWYgKGVsICYmIGVsLm1hdGNoZXMgJiYgZWwubWF0Y2hlcyhTRUwpKSB7IGxhc3RHcElucHV0ID0gZWw7IGlmICghZWwuX19hdkdwKSB7IGF0dGFjaChlbCk7IH0gaWYgKCFlbC5fX2F2U2V0dGluZ1BsYWNlKSB7IGVsLl9fYXZQYWNTcXVlbGNoID0gZmFsc2U7IH0gfQogICAgfSk7CiAgICB2YXIgYXYwID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsKICAgIGlmIChhdjAgJiYgYXYwLm1hdGNoZXMgJiYgYXYwLm1hdGNoZXMoU0VMKSkgeyBsYXN0R3BJbnB1dCA9IGF2MDsgYXR0YWNoKGF2MCk7IH0KICB9KSgpOwoKICAvKiDilIDilIDilIAgc2luZ2xlLURPTSBwcnVuZSAoRGVzdCAzLjAgMy4xLjE5KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKICAgICBUd28gY29tcGxldGUgbGF5b3V0cyBzaGlwICguYXZjLWQgLyAuYXZjLW0pOyBDU1Mgc2hvd3Mgb25lLiBEZXRhY2ggdGhlCiAgICAgbGF5b3V0IHRoZSB2aWV3cG9ydCBpcyBOT1QgdXNpbmcgc28gY3Jhd2xlcnMvQVQgc2VlIGVhY2ggc2VudGVuY2Ugb25jZSwKICAgICByZS1hdHRhY2ggaWYgdGhlIHZpZXdwb3J0IGNyb3NzZXMgNjQwcHguIERldGFjaGVkIG5vZGVzIGtlZXAgc3RhdGUuICovCiAgdmFyIHBydW5lID0gKGZ1bmN0aW9uICgpIHsKICAgIHZhciBCUCA9ICcobWF4LXdpZHRoOiA2NDBweCknOwogICAgdmFyIGRlc2sgPSByb290LnF1ZXJ5U2VsZWN0b3IoJzpzY29wZSA+IC5hdmMtZCcpLCBtb2IgPSByb290LnF1ZXJ5U2VsZWN0b3IoJzpzY29wZSA+IC5hdmMtbScpOwogICAgaWYgKCFkZXNrIHx8ICFtb2IgfHwgIXdpbmRvdy5tYXRjaE1lZGlhKSB7IHJldHVybiB7IGFwcGx5OiBmdW5jdGlvbiAoKSB7fSB9OyB9CiAgICB2YXIgc2xvdHMgPSB7IGRlc2s6IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoJ2F2Yy1kJyksIG1vYjogZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgnYXZjLW0nKSB9OwogICAgZGVzay5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzbG90cy5kZXNrLCBkZXNrKTsKICAgIG1vYi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzbG90cy5tb2IsIG1vYik7CiAgICB2YXIgbXEgPSB3aW5kb3cubWF0Y2hNZWRpYShCUCk7CiAgICB2YXIgc3RhdGUgPSB7IGRlc2s6IHRydWUsIG1vYjogdHJ1ZSB9OwogICAgZnVuY3Rpb24gc2V0QXR0YWNoZWQod2hpY2gsIGVsLCBvbikgewogICAgICBpZiAoc3RhdGVbd2hpY2hdID09PSBvbikgeyByZXR1cm47IH0KICAgICAgaWYgKG9uKSB7IHNsb3RzW3doaWNoXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbCwgc2xvdHNbd2hpY2hdLm5leHRTaWJsaW5nKTsgfSBlbHNlIHsgZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7IH0KICAgICAgc3RhdGVbd2hpY2hdID0gb247CiAgICB9CiAgICBmdW5jdGlvbiBhcHBseSgpIHsKICAgICAgdmFyIHBob25lID0gbXEubWF0Y2hlczsKICAgICAgaWYgKHBob25lKSB7IHNldEF0dGFjaGVkKCdtb2InLCBtb2IsIHRydWUpOyBzZXRBdHRhY2hlZCgnZGVzaycsIGRlc2ssIGZhbHNlKTsgfQogICAgICBlbHNlIHsgc2V0QXR0YWNoZWQoJ2Rlc2snLCBkZXNrLCB0cnVlKTsgc2V0QXR0YWNoZWQoJ21vYicsIG1vYiwgZmFsc2UpOyB9CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtYXZjLWRvbScsIHBob25lID8gJ21vYmlsZScgOiAnZGVza3RvcCcpOwogICAgICBpbml0UXVvdGVSb290cygpOyBpbml0Q29udGFjdEZvcm1zKCk7IGluaXRNYXBzKCk7CiAgICB9CiAgICBpZiAobXEuYWRkRXZlbnRMaXN0ZW5lcikgeyBtcS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBhcHBseSk7IH0gZWxzZSBpZiAobXEuYWRkTGlzdGVuZXIpIHsgbXEuYWRkTGlzdGVuZXIoYXBwbHkpOyB9CiAgICB2Y
1892XIgcnpUOyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgeyBjbGVhclRpbWVvdXQocnpUKTsgcnpUID0gc2V0VGltZW91dChhcHBseSwgMTIwKTsgfSk7CiAgICByZXR1cm4geyBhcHBseTogYXBwbHksIHN0YXRlOiBzdGF0ZSwgZGVza3RvcDogZGVzaywgbW9iaWxlOiBtb2IgfTsKICB9KSgpOwoKICAvKiDilIDilIDilIAgaW5pdCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi8KICBmdW5jdGlvbiBpbml0KCkgewogICAgaW5pdFF1b3RlUm9vdHMoKTsKICAgIGluaXRNb2RhbCgpOwogICAgaW5pdENvbnRhY3RGb3JtcygpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHBydW5lLmFwcGx5KCk7IGluaXRNYXBzKCk7IH0sIDApOwogIH0KICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSB7IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBpbml0KTsgfSBlbHNlIHsgaW5pdCgpOyB9CiAgd2luZG93Ll9fYXZjID0geyBwcnVuZTogcHJ1bmUsIG9wZW5Nb2RhbDogb3Blbk1vZGFsLCBjbG9zZU1vZGFsOiBjbG9zZU1vZGFsLCBvcGVuRGF0ZVNoZWV0OiBvcGVuRGF0ZVNoZWV0LCBtb3VudFF1b3RlOiBtb3VudFF1b3RlLCBjZmc6IENGRyB9Owp9KSgpOw=="),u=new Uint8Array(b.length),i=0;for(;i<b.length;i++){u[i]=b.charCodeAt(i);}var s=document.createElement("script");s.text=new TextDecoder().decode(u);document.head.appendChild(s);})();</script>
1892 1893 </div> 1894 1895 </div> 1896</article> 1897 </main> 1898 </div> 1899 1900 1901 </div> 1902</div> 1903 1904 1905<div class="site-footer"> 1906 1907<footer class="gbp-section gb-element-0abd59bc"> 1908<div class="gbp-section__inner gb-element-d8377d4b"> 1909<div> 1910<div class="gb-element-125af5d3"> 1911<div class="gb-element-edef112c"> 1912<img decoding="async" width="449" height="216" class="gb-media-cec8e240 perfmatters-lazy" alt src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='449'%20height='216'%20viewBox='0%200%20449%20216'%3E%3C/svg%3E" title="AvSky-Charters-Logo-on-transparent-background-with-globe-1" data-src="https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1.png" data-srcset="https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1.png 449w, https://avskycharters.com/wp-content/uploads/2025/01/AvSky-Charters-Logo-on-transparent-background-with-globe-1-300x144.png 300w" data-sizes="(max-width: 449px) 100vw, 449px" /> 1913 1914 1915 1916<div class="gb-element-a2b638d8"> 1917<a class="gb-text-24425b3a" href="https://www.facebook.com/people/AvSky-Private-Charters/61556948233456/" aria-label="Facebook" target="_blank" rel="noopener"><span class="gb-shape"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg></span></a> 1918 1919 1920 1921<a class="gb-text-301d9956" href="https://x.com/iflyavsky" aria-label="X" target="_blank" rel="noopener"><span class="gb-shape"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></span></a> 1922 1923 1924 1925<a class="gb-text-1f822009" href="https://www.linkedin.com/company/avsky-private-charters" aria-label="LinkedIn" target="_blank" rel="noopener"><span class="gb-shape"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z"></path></svg></span></a> 1926 1927 1928 1929<a class="gb-text-65a959a5" href="https://www.instagram.com/avskycharters/" aria-label="Instagram" target="_blank" rel="noopener"><span class="gb-shape"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></span></a> 1930</div> 1931 1932 1933 1934<p class="gb-text gb-text-bd82e7b1">Charter flights from one of the â¨world leaders in private aviation.</p> 1935</div> 1936 1937 1938 1939<div> 1940<h2 class="gb-text gb-text-c23c5579">Fly With Us</h2> 1941 1942 1943 1944<p class="gb-text gb-text-ddbf785c"><a href="https://avskycharters.com/charter-flight-quote/" data-type="page" data-id="3169">Request a Quote</a></p> 1945 1946 1947 1948<p class="gb-text gb-text-8e62ac92"><a href="https://avskycharters.com/jet-card/" data-type="page" data-id="2030">Jet Card</a></p> 1949 1950 1951 1952<p class="gb-text gb-text-7086e87b"><a href="https://avskycharters.com/govflights/" data-type="page" data-id="2030">Government</a></p> 1953 1954 1955 1956<p class="gb-text gb-text-40656325"><a href="https://avskycharters.com/charter-flight-cost-calculator/" data-type="page" data-id="3161">Charter Cost Calculator</a></p> 1957</div> 1958 1959 1960 1961<div> 1962<h2 class="gb-text gb-text-88056a46">About AvSky</h2> 1963 1964 1965 1966<p class="gb-text gb-text-7b225b39"><a href="https://avskycharters.com/about-avsky-charters/" data-type="page" data-id="1534">Our Story</a></p> 1967 1968 1969 1970<p class="gb-text gb-text-1f27b991"><a href="https://www.avskyjets.com/" target="_blank" rel="noreferrer noopener">AvSky Brokerage</a></p> 1971 1972 1973 1974<p class="gb-text gb-text-8dff317b"><a href="https://rockymtnairparts.com/" data-type="page" data-id="43520" target="_blank" rel="noreferrer noopener">Rocky Mountain Air Parts</a></p> 1975 1976 1977 1978<p class="gb-text gb-text-e48b547a"><a href="https://avskycharters.com/privacy-policy/" data-type="link" data-id="https://avskycharters.com/privacy-policy/" target="_blank" rel="noopener">Privacy Policy</a></p> 1979</div> 1980 1981 1982 1983<div class="gb-element-8b93cf00"> 1984<h2 class="gb-text gb-text-c377525f">Contact Info</h2> 1985 1986 1987 1988<p class="gb-text gb-text-5a23a213"><a href="tel:8005410381">(800) 541-0381</a></p> 1989 1990 1991 1992<p class="gb-text gb-text-92883546"><a href="mailto:[email protected]">[email protected]</a></p> 1993 1994 1995 1996<p class="gb-text gb-text-fa082812">400 Airport Ave E, Venice FL<br>34285, United States</p> 1997</div> 1998</div> 1999</div> 2000</div> 2001</footer> 2002 2003 2004 2005<p class="wp-block-paragraph"></p> 2006</div> 2007 2008 <nav id="generate-slideout-menu" class="main-navigation slideout-navigation" itemtype="https://schema.org/SiteNavigationElement" itemscope> 2009 <div class="inside-navigation grid-container grid-parent"> 2010 <button class="slideout-exit has-svg-icon"><span class="gp-icon pro-close"> 2011 <svg viewBox="0 0 512 512" aria-hidden="true" role="img" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1em" height="1em"> 2012 <path d="M71.029 71.029c9.373-9.372 24.569-9.372 33.942 0L256 222.059l151.029-151.
201203c9.373-9.372 24.569-9.372 33.942 0 9.372 9.373 9.372 24.569 0 33.942L289.941 256l151.03 151.029c9.372 9.373 9.372 24.569 0 33.942-9.373 9.372-24.569 9.372-33.942 0L256 289.941l-151.029 151.03c-9.373 9.372-24.569 9.372-33.942 0-9.372-9.373-9.372-24.569 0-33.942L222.059 256 71.029 104.971c-9.372-9.373-9.372-24.569 0-33.942z" /> 2013 </svg> 2014 </span> <span class="screen-reader-text">Close</span></button><div class="main-nav"><ul id="menu-main-menu-1" class=" slideout-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-50681 current_page_item menu-item-50684"><a href="https://avskycharters.com/about-avsky-charters/" aria-current="page">About AvSky</a></li> 2015<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47867"><a href="https://avskycharters.com/charter-flight-quote/">Quote Request</a></li> 2016<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50779"><a href="https://avskycharters.com/jet-card/">Jet Card</a></li> 2017<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-50419"><a href="https://avskycharters.com/govflights/">Government</a></li> 2018<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-50519"><a href="https://avskycharters.com/medical-flights/">Medical Flights</a></li> 2019</ul></div> 2020<div class="gb-element-1918a7d4 header-social-icons"> 2021<a class="gb-text-932aedec" href="https://www.facebook.com/people/AvSky-Private-Charters/61556948233456/" aria-label="Facebook icon" target="_blank" rel="noopener"><span class="gb-shape"><svg viewBox="0 0 256 256" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm12,191.13V156h20a12,12,0,0,0,0-24H140V112a12,12,0,0,1,12-12h16a12,12,0,0,0,0-24H152a36,36,0,0,0-36,36v20H96a12,12,0,0,0,0,24h20v55.13a84,84,0,1,1,24,0Z"></path></svg></span></a> 2022 2023 2024 2025<a class="gb-text-1485ab38" href="https://www.instagram.com/avskycharters/" aria-label="Instagram Icon" target="_blank" rel="noopener"><span class="gb-shape"><svg viewBox="0 0 256 256" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,72a24,24,0,1,1,24-24A24,24,0,0,1,128,152ZM176,20H80A60.07,60.07,0,0,0,20,80v96a60.07,60.07,0,0,0,60,60h96a60.07,60.07,0,0,0,60-60V80A60.07,60.07,0,0,0,176,20Zm36,156a36,36,0,0,1-36,36H80a36,36,0,0,1-36-36V80A36,36,0,0,1,80,44h96a36,36,0,0,1,36,36ZM196,76a16,16,0,1,1-16-16A16,16,0,0,1,196,76Z"></path></svg></span></a> 2026 2027 2028 2029<a class="gb-text-1f6d4836" href="https://www.linkedin.com/company/avsky-private-charters" aria-label="LinkedIn icon" target="_blank" rel="noopener"><span class="gb-shape"><svg viewBox="0 0 256 256" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M216,20H40A20,20,0,0,0,20,40V216a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V40A20,20,0,0,0,216,20Zm-4,192H44V44H212ZM112,176V120a12,12,0,0,1,21.43-7.41A40,40,0,0,1,192,148v28a12,12,0,0,1-24,0V148a16,16,0,0,0-32,0v28a12,12,0,0,1-24,0ZM96,120v56a12,12,0,0,1-24,0V120a12,12,0,0,1,24,0ZM68,80A16,16,0,1,1,84,96,16,16,0,0,1,68,80Z"></path></svg></span></a> 2030 2031 2032 2033<a class="gb-text-48c635f2" href="https://x.com/iflyavsky" aria-label="X icon" target="_blank" rel="noopener"><span class="gb-shape"><svg viewBox="0 0 256 256" height="32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M218.12,209.56l-61-95.8,59.72-65.69a12,12,0,0,0-17.76-16.14L143.81,92.77,106.12,33.56A12,12,0,0,0,96,28H48A12,12,0,0,0,37.88,46.44l61,95.8L39.12,207.93a12,12,0,1,0,17.76,16.14l55.31-60.84,37.69,59.21A12,12,0,0,0,160,228h48a12,12,0,0,0,10.12-18.44ZM166.59,204,69.86,52H89.41l96.73,152Z"></path></svg></span></a> 2034</div> 2035 </div><!-- .inside-navigation --> 2036 </nav><!-- #site-navigation --> 2037 2038 <div class="slideout-overlay"> 2039 </div> 2040
2040<script id="generate-a11y" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 2041!function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("pointerdown",(function(){e.classList.add("using-mouse")}),{passive:!0}),e.addEventListener("keydown",(function(){e.classList.remove("using-mouse")}),{passive:!0})}}(); 2042</script>
2042 2043
2043<script defer src="data:text/javascript;base64,CgkJKGZ1bmN0aW9uICgpIHsKCQkJdmFyIGMgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZTsKCQkJYyA9IGMucmVwbGFjZSgvd29vY29tbWVyY2Utbm8tanMvLCAnd29vY29tbWVyY2UtanMnKTsKCQkJZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBjOwoJCX0pKCk7Cgk="></script>
2043 2044
2044<script id="generate-sticky-js" src="https://avskycharters.com/wp-content/plugins/gp-premium/menu-plus/functions/js/sticky.min.js?ver=2.5.6" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 2044
2044
2045<script id="generate-offside-js-extra" defer src="data:text/javascript;base64,CnZhciBvZmZTaWRlID0geyJzaWRlIjoicmlnaHQifTsKLy8jIHNvdXJjZVVSTD1nZW5lcmF0ZS1vZmZzaWRlLWpzLWV4dHJhCg=="></script>
vendor: 1 bytes, line 2045
2045
2046<script id="generate-offside-js" src="https://avskycharters.com/wp-content/plugins/gp-premium/menu-plus/functions/js/offside.min.js?ver=2.5.6" defer></script>
vendor: 1 bytes, line 2046
2046
2047<script id="generate-smooth-scroll-js-extra" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 2048var gpSmoothScroll = {"elements":[".smooth-scroll","li.smooth-scroll a"],"duration":"800","offset":""}; 2049//# sourceURL=generate-smooth-scroll-js-extra 2050</script>
vendor: 1 bytes, line 2050
2050
2051<script id="generate-smooth-scroll-js" src="https://avskycharters.com/wp-content/plugins/gp-premium/general/js/smooth-scroll.min.js?ver=2.5.6" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 2051
2051
2052<script id="generate-menu-js-before" defer src="data:text/javascript;base64,CnZhciBnZW5lcmF0ZXByZXNzTWVudSA9IHsidG9nZ2xlT3BlbmVkU3ViTWVudXMiOnRydWUsIm9wZW5TdWJNZW51TGFiZWwiOiJPcGVuIFN1Yi1NZW51IiwiY2xvc2VTdWJNZW51TGFiZWwiOiJDbG9zZSBTdWItTWVudSJ9OwovLyMgc291cmNlVVJMPWdlbmVyYXRlLW1lbnUtanMtYmVmb3JlCg=="></script>
vendor: 1 bytes, line 2052
2052
2053<script id="generate-menu-js" src="https://avskycharters.com/wp-content/themes/generatepress/assets/js/menu.min.js?ver=3.6.1" defer></script>
vendor: 1 bytes, line 2053
2053
2054<script id="sourcebuster-js-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=11.1.2" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 2054
2054
2055<script id="wc-order-attribution-js-extra" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 2056var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https://avskycharters.com/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; 2057//# sourceURL=wc-order-attribution-js-extra 2058</script>
vendor: 1 bytes, line 2058
2058
2059<script id="wc-order-attribution-js" src="https://avskycharters.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=11.1.2" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 1 bytes, line 2059
2059
2060<script id="perfmatters-lazy-load-js-before"> 2061window.lazyLoadOptions={elements_selector:"img[data-src],.perfmatters-lazy,.perfmatters-lazy-css-bg",thresholds:"0px 0px",class_loading:"pmloading",class_loaded:"pmloaded",callback_loaded:function(element){if(element.tagName==="IFRAME"){if(element.classList.contains("pmloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener("LazyLoad::Initialized",function(e){var lazyLoadInstance=e.detail.instance;var target=document.querySelector("body");var observer=new MutationObserver(function(mutations){lazyLoadInstance.update()});var config={childList:!0,subtree:!0};observer.observe(target,config);});function perfmattersLazyLoadVideo(e){var t=document.createElement("iframe"),r="ID?";r+=0===e.dataset.query.length?"":e.dataset.query+"&",r+="autoplay=1",t.setAttribute("src",r.replace("ID",e.dataset.src)),e.dataset.referrerpolicy && t.setAttribute("referrerpolicy",e.dataset.referrerpolicy),t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","1"),t.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),e.replaceChild(t,e.firstChild)};function perfmattersLazyLoadYouTube(e){perfmattersLazyLoadVideo(e)} 2062//# sourceURL=perfmatters-lazy-load-js-before 2063</script>
vendor: 1 bytes, line 2063
2063
2064<script id="perfmatters-lazy-load-js" async src="https://avskycharters.com/wp-content/plugins/perfmatters/js/lazyload.min.js?ver=2.6.8"></script>
vendor: 1 bytes, line 2064
2064
2065<script id="bigscoots-bfcache-js-extra" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 2066var bfcache = {"cookie_name":"bs_bfcache_auth","is_logged_in":"","pending_operation":"","cookie_path":"/","cookie_domain":""}; 2067//# sourceURL=bigscoots-bfcache-js-extra 2068</script>
vendor: 1 bytes, line 2068
2068
2069<script data-wp-strategy="defer" defer id="bigscoots-bfcache-js" src="https://avskycharters.com/wp-content/plugins/bigscoots-cache/assets/js/bfcache-invalidation.min.js?ver=4.3.1" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
2069 2070<!-- start Simple Custom CSS and JS -->
2071<script defer src="data:text/javascript;base64,CmNvbnN0IG5hbWVFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZmZ3cC11c2VyLW5hbWUiKTsNCmNvbnN0IGxvZ2luRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWZmd3AtdXNlci1sb2dpbiIpOw0KY29uc3QgZW1haWxFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZmZ3cC11c2VyLWVtYWlsIik7DQoNCmlmIChuYW1lRWwgJiYgbG9naW5FbCAmJiBlbWFpbEVsKSB7DQogIG5hbWVFbC5yZW1vdmVBdHRyaWJ1dGUoImRpc2FibGVkIik7DQogIGxvZ2luRWwucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpOw0KICBlbWFpbEVsLnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTsNCn0NCg0KDQppZiAoalF1ZXJ5KCcjYWZmd3AtdXNlci11cmwnKS5sZW5ndGggPiAwKSB7DQogICAgalF1ZXJ5KCcjYWZmd3AtdXNlci11cmwnKS5hdHRyKCd0eXBlJywgJ3RleHQnKTsNCn0NCg0KLy8gRkFRIGFjY29yZGlvbg0KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsNCiAgY29uc3QgaXRlbXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZmFxLWFjY29yZGlvbi1pdGVtJyk7DQoNCiAgLy8gQWRkICdvcGVuJyBjbGFzcyB0byB0aGUgZmlyc3QgaXRlbSBpZiBpdCBleGlzdHMNCiAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHsNCiAgICBpdGVtc1swXS5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7DQogIH0NCg0KICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4gew0KICAgIGNvbnN0IHF1ZXN0aW9uID0gaXRlbS5xdWVyeVNlbGVjdG9yKCcuZmFxLWFjY29yZGlvbi1xdWVzdGlvbicpOw0KICAgIHF1ZXN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgew0KICAgICAgLy8gQ2xvc2UgYWxsIG90aGVyIGFjY29yZGlvbnMNCiAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiB7DQogICAgICAgIGlmIChpICE9PSBpdGVtKSBpLmNsYXNzTGlzdC5yZW1vdmUoJ29wZW4nKTsNCiAgICAgIH0pOw0KICAgICAgLy8gVG9nZ2xlIHRoaXMgb25lDQogICAgICBpdGVtLmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nKTsNCiAgICB9KTsNCiAgfSk7DQp9KTsNCg0KLy8gTWFwIEhlaWdodCBmb3IgRGVza3RvcA0KY29uc3QgYWlycG9ydExpc3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFpcnBvcnQtbGlzdCcpOw0KaWYgKGFpcnBvcnRMaXN0cy5sZW5ndGggPT09IDIpIHsNCiAgY29uc3QgaGVpZ2h0MSA9IGFpcnBvcnRMaXN0c1swXS5vZmZzZXRIZWlnaHQ7DQogIGNvbnN0IGhlaWdodDIgPSBhaXJwb3J0TGlzdHNbMV0ub2Zmc2V0SGVpZ2h0Ow0KICBjb25zdCBtYXhIZWlnaHQgPSBNYXRoLm1heChoZWlnaHQxLCBoZWlnaHQyKTsNCiAgYWlycG9ydExpc3RzWzBdLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7DQogIGFpcnBvcnRMaXN0c1sxXS5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgOw0KfQ0KDQoNCg0KDQoNCg0KDQo="></script>
2071 2072<!-- end Simple Custom CSS and JS -->
2073<script src="https://avskycharters.com/request-quote/simple/custom.js" type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"></script>
vendor: 2 bytes, line 2073
2073
2074<script src="https://avskycharters.com/request-quote/script.js" defer></script>
2074 2075
2076<script id="bs-cache-speculation-rules" type="speculationrules"> 2077{"prerender":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/*.php","\/wp-json\/*","\/wp-admin\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/uploads\/*","\/wp-content\/themes\/*","\/cart*","\/cart\/*","\/checkout*","\/checkout\/*","\/checkouts\/*","\/my-account\/*","\/logout\/*","\/*\/delete\/*","\/*\/print\/*","\/wprm_print\/*","\/*\\?*(^|&)(_wpnonce|ac|add-to-cart|add_to_cart|add-to-checkout|attachment_id|cart|download_id|download_media_file|edd_action|edd_options|media_file|media_type|wlmapi|wc-api|wc-ajax)=*"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prerender, .no-prerender a"}}]},"eagerness":"moderate"}]} 2078</script>
vendor: 1 bytes, line 2078
2078
2079<script id="bs-cache-instant-prefetch-invoker-js" type="pmdelayedscript" data-perfmatters-type="text/javascript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1"> 2080document.addEventListener("DOMContentLoaded",function(){if(!(typeof HTMLScriptElement !== "undefined" && typeof HTMLScriptElement.supports === "function" && HTMLScriptElement.supports && HTMLScriptElement.supports("speculationrules"))) {document.querySelectorAll('script[type="speculationrules"]').forEach(script => script.remove());var bs_cache_instant_prefetch_script_element = document.createElement("script");bs_cache_instant_prefetch_script_element.id = "bs-cache-instant-prefetch-js", bs_cache_instant_prefetch_script_element.type = "module", bs_cache_instant_prefetch_script_element.src = "https://avskycharters.com/wp-content/plugins/bigscoots-cache/assets/js/bs-cache-instant-prefetch-page.min.js", document.body.appendChild(bs_cache_instant_prefetch_script_element)}}) 2081</script>
2081 2082
2083<script id="perfmatters-delayed-scripts-js">(function(){window.pmDC=0;if(window.pmDT){var e=setTimeout(d,window.pmDT*1e3)}const t=["keydown","mousedown","mousemove","wheel","touchmove","touchstart","touchend"];const n={normal:[],defer:[],async:[]};const o=[];const i=[];var r=false;var a="";window.pmIsClickPending=false;t.forEach(function(e){window.addEventListener(e,d,{passive:true})});if(window.pmDC){window.addEventListener("touchstart",b,{passive:true});window.addEventListener("mousedown",b)}function d(){if(typeof e!=="undefined"){clearTimeout(e)}t.forEach(function(e){window.removeEventListener(e,d,{passive:true})});if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",s)}else{s()}}async function s(){c();u();f();m();await w(n.normal);await w(n.defer);await w(n.async);await p();document.querySelectorAll("link[data-pmdelayedstyle]").forEach(function(e){e.setAttribute("href",e.getAttribute("data-pmdelayedstyle"))});window.dispatchEvent(new Event("perfmatters-allScriptsLoaded")),E().then(()=>{h()})}function c(){let o={};function e(t,e){function n(e){return o[t].delayedEvents.indexOf(e)>=0?"perfmatters-"+e:e}if(!o[t]){o[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},delayedEvents:[]};t.addEventListener=function(){arguments[0]=n(arguments[0]);o[t].originalFunctions.add.apply(t,arguments)};t.removeEventListener=function(){arguments[0]=n(arguments[0]);o[t].originalFunctions.remove.apply(t,arguments)}}o[t].delayedEvents.push(e)}function t(t,n){const e=t[n];Object.defineProperty(t,n,{get:!e?function(){}:e,set:function(e){t["perfmatters"+n]=e}})}e(document,"DOMContentLoaded");e(window,"DOMContentLoaded");e(window,"load");e(document,"readystatechange");t(document,"onreadystatechange");t(window,"onload")}function u(){let n=window.jQuery;Object.defineProperty(window,"jQuery",{get(){return n},set(t){if(t&&t.fn&&!o.includes(t)){t.fn.ready=t.fn.init.prototype.ready=function(e){if(r){e.bind(document)(t)}else{document.addEventListener("perfmatters-DOMContentLoaded",function(){e.bind(document)(t)})}};const e=t.fn.on;t.fn.on=t.fn.init.prototype.on=function(){if(this[0]===window){function t(e){e=e.split(" ");e=e.map(function(e){if(e==="load"||e.indexOf("load.")===0){return"perfmatters-jquery-load"}else{return e}});e=e.join(" ");return e}if(typeof arguments[0]=="string"||arguments[0]instanceof String){arguments[0]=t(arguments[0])}else if(typeof arguments[0]=="object"){Object.keys(arguments[0]).forEach(function(e){delete Object.assign(arguments[0],{[t(e)]:arguments[0][e]})[e]})}}return e.apply(this,arguments),this};o.push(t)}n=t}})}function f(){document.querySelectorAll("script[type=pmdelayedscript]").forEach(function(e){if(e.hasAttribute("src")){if(e.hasAttribute("defer")&&e.defer!==false){n.defer.push(e)}else if(e.hasAttribute("async")&&e.async!==false){n.async.push(e)}else{n.normal.push(e)}}else{n.normal.push(e)}})}function m(){var o=document.createDocumentFragment();[...n.normal,...n.defer,...n.async].forEach(function(e){var t=e.getAttribute("src");if(t){var n=document.createElement("link");n.href=t;if(e.getAttribute("data-perfmatters-type")=="module"){n.rel="modulepreload"}else{n.rel="preload";n.as="script"}o.appendChild(n)}});document.head.appendChild(o)}async function w(e){var t=e.shift();if(t){await l(t);return w(e)}return Promise.resolve()}async function l(t){await v();return new Promise(function(e){const n=document.createElement("script");[...t.attributes].forEach(function(e){let t=e.nodeName;if(t!=="type"){if(t==="data-perfmatters-type"){t="type"}n.setAttribute(t,e.nodeValue)}});if(t.hasAttribute("src")){n.addEventListener("load",e);n.addEventListener("error",e)}else{n.text=t.text;e()}t.parentNode?t.parentNode.replaceChild(n,t):e()})}async function p(){r=true;await v();document.dispatchEvent(new Event("perfmatters-DOMContentLoaded"));await v();window.dispatchEvent(new Event("perfmatters-DOMContentLoaded"));await v();document.dispatchEvent(new Event("perfmatters-readystatechange"));await v();if(document.perfmattersonreadystatechange){document.perfmattersonreadystatechange()}await v();window.dispatchEvent(new Event("perfmatters-load"));await v();if(window.perfmattersonload){window.perfmattersonload()}await v();o.forEach(function(e){e(window).trigger("perfmatters-jquery-load")})}async function v(){return new Promise(function(e){requestAnimationFrame(e)})}function h(){window.removeEventListener("touchstart",b,{passive:true});window.removeEventListener("mousedown",b);
2083i.forEach(e=>{if(e.target.outerHTML===a){e.target.dispatchEvent(new MouseEvent("click",{view:e.view,bubbles:true,cancelable:true}))}})}function E(){return new Promise(e=>{window.pmIsClickPending?g=e:e()})}function y(){window.pmIsClickPending=true}function g(){window.pmIsClickPending=false}function L(e){e.target.removeEventListener("click",L);C(e.target,"pm-onclick","onclick");i.push(e),e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();g()}function b(e){if(e.target.tagName!=="HTML"){if(!a){a=e.target.outerHTML}window.addEventListener("touchend",A);window.addEventListener("mouseup",A);window.addEventListener("touchmove",k,{passive:true});window.addEventListener("mousemove",k);e.target.addEventListener("click",L);C(e.target,"onclick","pm-onclick");y()}}function k(e){window.removeEventListener("touchend",A);window.removeEventListener("mouseup",A);window.removeEventListener("touchmove",k,{passive:true});window.removeEventListener("mousemove",k);e.target.removeEventListener("click",L);C(e.target,"pm-onclick","onclick");g()}function A(e){window.removeEventListener("touchend",A);window.removeEventListener("mouseup",A);window.removeEventListener("touchmove",k,{passive:true});window.removeEventListener("mousemove",k)}function C(e,t,n){if(e.hasAttribute&&e.hasAttribute(t)){event.target.setAttribute(n,event.target.getAttribute(t));event.target.removeAttribute(t)}}})();</script>
2083<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0b76b5f4e0f349ecb0579776e4f33faa","spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 2083
2083
2084<script>window.__CF$cv$params={r:'a4464013ad3e4616',t:'MTc5MDk3MDc3NQ==',u:'01a0fe2d486576de81daf7a39f18daef',ut:'Za5L9qdUirNtLfbFVYb3ZYrHZoAkM15XwHqOTszRVP4-1790970775-1.2.1.1-wCastn.RPQxgc0SEPNKmxXkoByaBaKVev__DpHVKFufaNzSH6lh7ltqGGZXDR7ogtN0Pd45t8BZPHq3QVIknkuXIKVUiyKlxOe.mwnDO9fk',i:60};(function(){if(!document.body)return;var s=document.createElement('script');s.src='/cdn-cgi/challenge-platform/scripts/precursor/main.js';document.head.appendChild(s);})();</script>
2084</body> 2085</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.