{"id":10,"date":"2019-08-05T09:05:36","date_gmt":"2019-08-05T09:05:36","guid":{"rendered":"http:\/\/localhost\/faiberplas\/?page_id=10"},"modified":"2026-10-27T18:28:21","modified_gmt":"2026-10-27T18:28:21","slug":"spas-2","status":"publish","type":"page","link":"https:\/\/faiberplas.com.br\/web\/spas-2","title":{"rendered":"Spas"},"content":{"rendered":"\n<!-- FAIBERPLAS | P\u00c1GINA: SPAS | BLOCO HTML PERSONALIZADO\n     1) Suba a pasta site-principal\/media na M\u00eddia (pode ser uma vez s\u00f3, serve para todas as p\u00e1ginas).\n     2) Confira a URL de um arquivo; se a pasta n\u00e3o for \/web\/wp-content\/uploads\/2026\/10\/, troque (Ctrl+H) por ela.\n     3) Modelo da p\u00e1gina: Blank Page. Cole este c\u00f3digo num bloco HTML personalizado. -->\n<style>\n\/* Esconde o bot\u00e3o flutuante do plugin Click to Chat nesta p\u00e1gina (o site tem o pr\u00f3prio) *\/\n.ht-ctc,#ht-ctc-chat,.ht-ctc-chat,.ht_ctc_chat_style,.ht-ctc-widget,#ht-ctc-widget{display:none!important}\n\/* Tema (Betheme): esconde cabe\u00e7alho, rodap\u00e9 e barra de t\u00edtulo do site s\u00f3 nesta p\u00e1gina *\/\nbody:has(#fp) #mfn-header-template,body:has(#fp) #mfn-footer-template,body:has(#fp) #Header_wrapper,\nbody:has(#fp) #Footer,body:has(#fp) #Subheader,body:has(#fp) #back_to_top,body:has(#fp) .mfn-header-tmpl,body:has(#fp) .mfn-footer-tmpl{display:none!important}\nbody:has(#fp) #Wrapper{padding:0!important;margin:0!important;background:#062329}\n\/* Tema (Betheme): tira margens e largura m\u00e1xima do conte\u00fado s\u00f3 nesta p\u00e1gina *\/\nbody:has(#fp) #Content,body:has(#fp) .content_wrapper,body:has(#fp) .sections_group,body:has(#fp) .entry-content,\nbody:has(#fp) .section_wrapper,body:has(#fp) .the_content_wrapper{padding:0!important;margin:0!important;max-width:none!important;width:100%!important;float:none!important}\nbody:has(#fp) .section.the_content{padding:0!important}\nbody:has(#fp) #fp p:empty{display:none}\n\n#fp,#fp-intro{\n  --abyss:#03161B;\n  --water:#062329;\n  --water-2:#0A2D34;\n  --water-3:#0F3A42;\n  --line:rgba(170,228,228,.13);\n  --line-2:rgba(170,228,228,.24);\n  --foam:#EEF5F4;\n  --mist:#A2BEBF;\n  --faint:#7F9EA0;\n  --glow:#62E0DA;\n  --glow-2:#9BF0EB;\n  --glow-ink:#032A2C;\n  --shallow:#8FD2CF;\n  --ease-out:cubic-bezier(.23,1,.32,1);\n  --ease-io:cubic-bezier(.77,0,.175,1);\n  --r-card:14px;\n  --r-media:20px;\n  --display:\"Bricolage Grotesque\",ui-sans-serif,system-ui,sans-serif;\n  --body:\"Figtree\",ui-sans-serif,system-ui,sans-serif;\n  color-scheme:dark;\n}\n\n\/* =========================================================\n   ENTRADA: a bolha com a marca sobe da espuma e estoura\n   ========================================================= *\/\n#fp-intro{position:fixed;inset:0;z-index:2147483000;overflow:hidden;pointer-events:auto}\n#fp-intro[hidden]{display:none}\n#fp-intro .fi-agua{\n  position:absolute;inset:0;\n  background:\n    radial-gradient(90% 70% at 50% 58%, #CDEFEC 0%, #A6DEDA 38%, #6FBFBC 78%, #4FA3A2 100%);\n}\n#fp-intro.fi-mob .fi-agua{background:radial-gradient(110% 60% at 50% 62%, #5CBDBA 0%, #3C9C9D 40%, #22777C 78%, #16595F 100%)}\n#fp-intro .fi-agua::after{\n  content:\"\";position:absolute;inset:-10%;\n  background:\n    radial-gradient(28% 18% at 32% 38%, rgba(255,255,255,.35), transparent 70%),\n    radial-gradient(22% 14% at 70% 30%, rgba(255,255,255,.22), transparent 70%);\n  animation:fiLuz 6s ease-in-out infinite alternate;\n}\n@keyframes fiLuz{to{transform:translate3d(3%,2%,0) scale(1.08)}}\n#fp-intro canvas{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .6s ease}\n#fp-intro .fi-pular{\n  position:absolute;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:3;\n  font:500 13px\/1 var(--body);letter-spacing:.02em;color:#0B3A3C;\n  background:rgba(255,255,255,.78);border:1px solid rgba(11,58,60,.18);border-radius:999px;\n  padding:10px 16px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);\n  transition:transform .16s var(--ease-out),background-color .2s ease,opacity .3s ease;\n}\n#fp-intro .fi-pular:hover{background:rgba(255,255,255,.8)}\n#fp-intro .fi-pular:active{transform:scale(.97)}\n#fp-intro.fi-aberto .fi-pular{opacity:0;pointer-events:none}\n#fp-intro.fi-aberto{pointer-events:none}\n\n\/* =========================================================\n   BASE\n   ========================================================= *\/\n#fp{\n  background:var(--water);color:var(--foam);\n  font:400 17px\/1.6 var(--body);\n  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;\n  overflow-x:clip;position:relative;isolation:isolate;\n  text-rendering:optimizeLegibility;\n}\n#fp *,#fp *::before,#fp *::after{box-sizing:border-box}\n#fp img,#fp video{display:block;max-width:100%}\n#fp img{height:auto}\n#fp ::selection{background:var(--glow);color:var(--glow-ink)}\n#fp a{color:inherit}\n#fp h1,#fp h2,#fp h3,#fp p,#fp ul,#fp ol,#fp figure,#fp dl,#fp dd{margin:0;padding:0}\n#fp ul,#fp ol{list-style:none;color:inherit}\n#fp li{margin:0;color:inherit}\n#fp b,#fp strong{color:inherit}\n#fp q{font-family:inherit;background:none;padding:0;margin:0;border:0;border-radius:0;color:inherit}\n#fp button,#fp input,#fp select,#fp textarea{margin:0;box-shadow:none;border-radius:0;font-family:inherit;text-transform:none;letter-spacing:inherit;float:none;width:auto;height:auto;min-height:0;line-height:inherit}\n#fp button:hover,#fp button:focus{text-decoration:none}\n#fp h1,#fp h2,#fp h3{font-family:var(--display);font-weight:600;letter-spacing:-.025em;line-height:1.04;text-wrap:balance;color:var(--foam)}\n#fp h2{font-size:clamp(34px,4.4vw,60px)}\n#fp h3{font-size:clamp(21px,1.9vw,26px);letter-spacing:-.015em;line-height:1.15}\n#fp p{text-wrap:pretty}\n#fp .fp-lead{font-size:clamp(17px,1.45vw,20px);color:var(--mist);max-width:56ch;line-height:1.55}\n#fp .fp-wrap{width:min(1320px,100% - 2*clamp(16px,4vw,48px));margin-inline:auto}\n#fp section{padding-block:clamp(72px,9vw,128px)}\n#fp :focus-visible{outline:2px solid var(--glow);outline-offset:3px;border-radius:6px}\n#fp .fp-num{font-variant-numeric:tabular-nums lining-nums}\n#fp .fp-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n\n\/* Bot\u00f5es *\/\n#fp .fp-bt{\n  display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;\n  font:600 16px\/1 var(--body);letter-spacing:.005em;text-decoration:none;cursor:pointer;\n  padding:17px 26px;border-radius:999px;border:1px solid transparent;\n  transition:transform .16s var(--ease-out),background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease;\n}\n#fp .fp-bt:active{transform:scale(.97)}\n#fp .fp-bt svg{width:18px;height:18px;flex:none}\n#fp .fp-bt--glow{background:var(--glow);color:var(--glow-ink);box-shadow:0 10px 24px -14px rgba(0,0,0,.6)}\n#fp .fp-bt--line{background:transparent;color:var(--foam);border-color:var(--line-2)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-bt--glow:hover{background:var(--glow-2)}\n  #fp .fp-bt--line:hover{border-color:var(--foam);background:rgba(238,245,244,.05)}\n}\n#fp .fp-bt--sm{padding:12px 18px;font-size:15px}\n\n\/* =========================================================\n   NAV\n   ========================================================= *\/\n#fp .fp-nav{position:sticky;top:10px;z-index:40;height:0;overflow:visible}\n#fp .fp-nav .fp-wrap{\n  display:flex;align-items:center;gap:28px;height:58px;padding:0 10px 0 22px;margin-top:10px;\n  width:min(1180px,100% - 24px);border-radius:999px;\n  background:rgba(3,22,27,.72);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);\n  border:1px solid rgba(170,228,228,.16);box-shadow:0 14px 40px -24px rgba(0,0,0,.7);\n}\n#fp .fp-logo{display:block;flex:none}\n#fp .fp-logo img{height:26px;width:auto}\n#fp .fp-nav nav{margin-left:auto}\n#fp .fp-nav ul{display:flex;gap:28px}\n#fp .fp-nav ul a{font:500 15px\/1 var(--body);color:var(--mist);text-decoration:none;padding:8px 0;transition:color .2s ease}\n#fp .fp-nav ul a:hover{color:var(--foam)}\n#fp .fp-nav .fp-bt{margin-left:4px}\n@media (max-width:980px){#fp .fp-nav nav{display:none}#fp .fp-nav .fp-bt{margin-left:auto}}\n\n\/* =========================================================\n   HERO\n   ========================================================= *\/\n#fp .fp-hero{padding-block:clamp(104px,9vw,140px) clamp(56px,7vw,96px);position:relative}\n#fp .fp-hero::before{\n  content:\"\";position:absolute;z-index:-1;inset:0;pointer-events:none;\n  background:\n    radial-gradient(46% 60% at 78% 46%, rgba(98,224,218,.16), transparent 70%);\n}\n#fp .fp-hero .fp-wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,3vw,48px);align-items:center}\n#fp .fp-hero-txt{grid-column:1 \/ span 6}\n#fp .fp-hero h1{font-size:clamp(44px,5.6vw,84px);letter-spacing:-.035em;line-height:.98;margin-bottom:26px}\n#fp .fp-hero h1 em{font-style:normal;color:var(--glow)}\n#fp .fp-hero .fp-lead{max-width:44ch;margin-bottom:36px}\n#fp .fp-ctas{display:flex;flex-wrap:wrap;gap:12px}\n#fp .fp-hero-media{grid-column:8 \/ span 5;position:relative}\n#fp .fp-hero-media .fp-frame{\n  position:relative;aspect-ratio:4\/5;max-height:min(76vh,760px);margin-left:auto;\n  border-radius:var(--r-media);overflow:hidden;background:var(--water-2);\n  box-shadow:0 40px 80px -40px rgba(0,0,0,.7),0 0 0 1px var(--line);\n}\n#fp .fp-hero-media video,#fp .fp-hero-media img{width:100%;height:100%;object-fit:cover}\n#fp .fp-hero-media figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:right}\n@media (max-width:900px){\n  #fp .fp-hero-txt,#fp .fp-hero-media{grid-column:1 \/ -1}\n  #fp .fp-hero-media .fp-frame{aspect-ratio:4\/4.2;max-height:none}\n  #fp .fp-hero-media figcaption{text-align:left}\n}\n\n\/* entrada da home depois da bolha *\/\n#fp.fp-js .fp-in{opacity:0;transform:translateY(22px);filter:blur(8px)}\n#fp.fp-pronto .fp-in{opacity:1;transform:none;filter:none;transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out),filter .9s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms)}\n\n\/* faixa de provas *\/\n#fp .fp-provas{border-block:1px solid var(--line);background:var(--abyss)}\n#fp .fp-provas ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}\n#fp .fp-provas li{padding:26px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:4px}\n#fp .fp-provas li:first-child{border-left:0;padding-left:0}\n#fp .fp-provas b{font:600 20px\/1.2 var(--display);letter-spacing:-.01em}\n#fp .fp-provas span{font-size:15px;color:var(--mist)}\n@media (max-width:900px){\n  #fp .fp-provas ul{grid-template-columns:1fr 1fr}\n  #fp .fp-provas li{padding:20px 16px}\n  #fp .fp-provas li:nth-child(odd){border-left:0;padding-left:0}\n  #fp .fp-provas li:nth-child(n+3){border-top:1px solid var(--line)}\n}\n\n\/* =========================================================\n   MODELOS NA MESMA ESCALA\n   ========================================================= *\/\n#fp .fp-mod-head{display:flex;flex-direction:column;gap:18px;margin-bottom:40px}\n#fp .fp-ferramentas{\n  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;\n  padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px;\n}\n#fp .fp-filtro{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:999px;background:var(--abyss);border:1px solid var(--line)}\n#fp .fp-filtro button{\n  font:500 15px\/1 var(--body);color:var(--mist);background:transparent;border:0;cursor:pointer;\n  padding:11px 16px;border-radius:999px;display:inline-flex;gap:8px;align-items:center;\n  transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-filtro button:active{transform:scale(.97)}\n#fp .fp-filtro button small{font-size:13px;color:var(--faint)}\n#fp .fp-filtro button[aria-pressed=\"true\"]{background:var(--foam);color:var(--abyss)}\n#fp .fp-filtro button[aria-pressed=\"true\"] small{color:#46605F}\n#fp .fp-cabe{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}\n#fp .fp-cabe fieldset{border:0;margin:0;padding:0;display:flex;align-items:flex-end;gap:10px}\n#fp .fp-cabe legend{font-size:14px;color:var(--mist);margin-bottom:8px;padding:0}\n#fp .fp-campo{display:flex;flex-direction:column;gap:6px}\n#fp .fp-campo label{font-size:13px;color:var(--mist)}\n#fp .fp-cabe input{\n  width:112px!important;font:500 16px\/1 var(--body);color:var(--foam);background:var(--abyss);\n  border:1px solid var(--line-2);border-radius:10px;padding:12px 38px 12px 12px;\n  font-variant-numeric:tabular-nums;\n}\n#fp .fp-cabe .fp-un{position:relative}\n#fp .fp-cabe .fp-un::after{content:\"cm\";position:absolute;right:12px;bottom:13px;font-size:14px;color:var(--faint);pointer-events:none}\n#fp .fp-cabe input::placeholder{color:var(--faint)}\n#fp .fp-cabe input:focus{outline:2px solid var(--glow);outline-offset:1px;border-color:transparent}\n#fp .fp-cabe .fp-x{padding-bottom:13px;color:var(--faint)}\n#fp .fp-cabe output{font-size:15px;color:var(--mist);padding-bottom:12px;min-width:16ch}\n#fp .fp-cabe output b{color:var(--glow);font-weight:600}\n#fp .fp-limpar{font:500 14px\/1 var(--body);color:var(--mist);background:none;border:0;padding:12px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}\n#fp .fp-limpar[hidden]{display:none}\n\n#fp .fp-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}\n#fp .fp-card{\n  position:relative;cursor:pointer;display:flex;flex-direction:column;text-align:left;width:100%;\n  background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);\n  padding:0;cursor:pointer;color:inherit;font:inherit;overflow:hidden;\n  transition:border-color .25s ease,transform .2s var(--ease-out),opacity .35s ease,filter .35s ease;\n}\n#fp .fp-card:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-card:hover{border-color:rgba(98,224,218,.45)}\n  #fp .fp-card:hover .fp-tub img{transform:translateY(-2px)}\n}\n#fp .fp-card[hidden]{display:none}\n#fp .fp-card.fp-nao-cabe{opacity:.32;filter:saturate(.3)}\n#fp .fp-palco{\n  position:relative;aspect-ratio:4\/3;overflow:hidden;\n  background:\n    linear-gradient(rgba(170,228,228,.07) 1px,transparent 1px) 0 0 \/ 24px 24px,\n    linear-gradient(90deg,rgba(170,228,228,.07) 1px,transparent 1px) 0 0 \/ 24px 24px,\n    radial-gradient(80% 90% at 50% 40%, #0E3C45 0%, #082A31 100%);\n  border-bottom:1px solid var(--line);\n}\n#fp .fp-capa{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;transition:opacity .4s var(--ease-out),transform .6s var(--ease-out)}\n\/* vista de cima em p\u00e9, cabeceira para cima; a maior pe\u00e7a (403 cm) ocupa quase toda a altura *\/\n#fp .fp-escala{position:absolute;inset:16px 40px 34px 16px;display:flex;align-items:center;justify-content:center}\n#fp .fp-tub{position:relative;height:calc(var(--l) \/ 410 * 100%);aspect-ratio:var(--w) \/ var(--l)}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-card:hover .fp-capa{opacity:0;transform:scale(1.03)}\n}\n#fp .fp-tub img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(0,0,0,.45));transition:transform .35s var(--ease-out)}\n#fp .fp-cota-x,#fp .fp-cota-y{position:absolute;color:var(--shallow);font:500 12px\/1 var(--body);font-variant-numeric:tabular-nums}\n#fp .fp-cota-x{left:0;right:0;top:calc(100% + 12px);border-top:1px solid currentColor;opacity:.85}\n#fp .fp-cota-x::before,#fp .fp-cota-x::after{content:\"\";position:absolute;top:-5px;width:1px;height:9px;background:currentColor}\n#fp .fp-cota-x::before{left:0}#fp .fp-cota-x::after{right:0}\n#fp .fp-cota-x span{position:absolute;left:50%;top:6px;transform:translateX(-50%);white-space:nowrap}\n#fp .fp-cota-y{top:0;bottom:0;left:calc(100% + 12px);border-left:1px solid currentColor;opacity:.85}\n#fp .fp-cota-y::before,#fp .fp-cota-y::after{content:\"\";position:absolute;left:-5px;height:1px;width:9px;background:currentColor}\n#fp .fp-cota-y::before{top:0}#fp .fp-cota-y::after{bottom:0}\n#fp .fp-cota-y span{position:absolute;top:50%;left:7px;transform:translateY(-50%);white-space:nowrap}\n#fp .fp-card-info{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px}\n#fp .fp-card-info h3{font-size:21px}\n#fp .fp-card-info .fp-cod{font-size:13px;color:var(--faint);font-weight:400;margin-left:6px;letter-spacing:0;font-family:var(--body)}\n#fp .fp-dados{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:15px;color:var(--mist)}\n#fp .fp-dados b{color:var(--foam);font-weight:600}\n#fp .fp-ver{font:600 14px\/1.2 var(--body);color:var(--glow);display:inline-flex;align-items:center;gap:6px;margin-top:2px;background:none;border:0;padding:0;cursor:pointer;align-self:flex-start}\n#fp .fp-ver::after{content:\"\";position:absolute;inset:0;border-radius:inherit}\n#fp .fp-ver:focus-visible{outline:none}\n#fp .fp-card:has(.fp-ver:focus-visible){outline:2px solid var(--glow);outline-offset:3px}\n#fp .fp-ver svg{width:15px;height:15px;transition:transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-card:hover .fp-ver svg{transform:translateX(3px)}}\n#fp .fp-vazio{display:none;padding:40px;border:1px dashed var(--line-2);border-radius:var(--r-card);color:var(--mist);text-align:center}\n#fp .fp-vazio.on{display:block}\n#fp .fp-mod-nota{margin-top:22px;font-size:14px;color:var(--faint)}\n@media (max-width:600px){\n  #fp .fp-grade{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}\n  #fp .fp-cota-x,#fp .fp-cota-y{font-size:10px}\n  #fp .fp-cota-x{top:calc(100% + 8px)}#fp .fp-cota-y{left:calc(100% + 8px)}\n  #fp .fp-card-info{padding:12px 12px 14px;gap:6px}\n  #fp .fp-card-info h3{font-size:16px}\n  #fp .fp-card-info .fp-cod{display:block;margin:4px 0 0}\n  #fp .fp-dados{font-size:13px;gap:2px 10px}\n  #fp .fp-dados span:nth-child(n+3){display:none}\n  #fp .fp-ver{font-size:13px}\n  #fp .fp-ferramentas{gap:18px}\n  #fp .fp-filtro button{padding:10px 12px;font-size:14px}\n}\n\n\/* =========================================================\n   LINHAS: o n\u00edvel da \u00e1gua sobe\n   ========================================================= *\/\n#fp .fp-linhas{border-block:1px solid var(--line)}\n#fp .fp-linhas .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:center}\n#fp .fp-linhas .fp-lead{margin-top:20px}\n#fp .fp-seg{display:flex;flex-direction:column;gap:8px;margin-top:36px;max-width:440px}\n#fp .fp-seg button{\n  text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;\n  background:transparent;border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;cursor:pointer;color:var(--foam);font:inherit;\n  transition:border-color .2s ease,background-color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-seg button:active{transform:scale(.985)}\n#fp .fp-seg button b{font:600 20px\/1.1 var(--display);letter-spacing:-.01em}\n#fp .fp-seg button span{font-size:14px;color:var(--mist);grid-column:1}\n#fp .fp-seg button i{grid-row:1 \/ span 2;grid-column:2;font-style:normal;font-size:13px;color:var(--faint)}\n#fp .fp-seg button[aria-pressed=\"true\"]{border-color:var(--glow);background:rgba(98,224,218,.08)}\n#fp .fp-seg button[aria-pressed=\"true\"] i{color:var(--glow)}\n#fp .fp-seg p{font-size:15px;color:var(--mist);margin-top:14px}\n\n#fp .fp-tanque{\n  position:relative;border-radius:var(--r-media);overflow:hidden;\n  border:1px solid var(--line-2);background:linear-gradient(#0B2B32,#06212A);\n  min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;\n}\n#fp .fp-nivel{\n  position:absolute;left:0;right:0;bottom:0;height:100%;transform-origin:bottom;\n  transform:scaleY(var(--nivel,.3));transition:transform 1.1s var(--ease-io);\n  background:linear-gradient(180deg, rgba(98,224,218,.55) 0%, rgba(40,150,155,.38) 8%, rgba(14,80,90,.55) 100%);\n}\n#fp .fp-nivel::before{\n  content:\"\";position:absolute;left:-10%;right:-10%;top:0;height:14px;transform:translateY(-50%) scaleY(calc(1 \/ var(--nivel,.3)));\n  background:radial-gradient(60% 50% at 50% 50%, rgba(238,245,244,.85), rgba(238,245,244,0) 70%);\n  opacity:.55;\n}\n#fp .fp-itens{position:relative;z-index:2;display:flex;flex-direction:column-reverse}\n#fp .fp-itens li{\n  display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;\n  padding:0 26px;height:56px;border-top:1px solid rgba(170,228,228,.08);\n  color:var(--faint);transition:color .5s ease;\n}\n#fp .fp-itens li svg{width:20px;height:20px;opacity:.35;transition:opacity .5s ease}\n#fp .fp-itens li small{font-size:13px;color:var(--faint)}\n#fp .fp-itens li.on{color:var(--foam)}\n#fp .fp-itens li.on svg{opacity:1;color:var(--glow-2)}\n#fp .fp-itens li.on small{color:var(--mist)}\n#fp .fp-tanque-topo{position:relative;z-index:2;padding:22px 26px;display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--mist);margin-bottom:auto}\n#fp .fp-tanque-topo b{font:600 22px\/1 var(--display);color:var(--foam);letter-spacing:-.01em}\n#fp .fp-opc{margin-top:28px;font-size:15px;color:var(--mist)}\n#fp .fp-opc b{color:var(--foam);font-weight:600}\n@media (max-width:900px){\n  #fp .fp-linhas .fp-wrap{grid-template-columns:1fr}\n  #fp .fp-seg{max-width:none}\n  #fp .fp-tanque{min-height:0}\n  #fp .fp-itens li{padding:0 16px;height:52px;gap:10px;font-size:15px}\n}\n\n\n\/* =========================================================\n   A FAIBERPLAS + TOUR DA LOJA\n   ========================================================= *\/\n\n#fp .fp-sobre .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:center}\n#fp .fp-tour{position:relative;justify-self:center;width:min(100%,420px)}\n#fp .fp-tour .fp-frame{position:relative;aspect-ratio:9\/16;border-radius:var(--r-media);overflow:hidden;background:#000;box-shadow:0 50px 90px -50px rgba(0,0,0,.8),0 0 0 1px var(--line)}\n#fp .fp-tour video{width:100%;height:100%;object-fit:cover}\n#fp .fp-tour-ctl{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:8px;justify-content:flex-start}\n#fp .fp-tour-ctl button{\n  display:inline-flex;align-items:center;gap:8px;font:600 14px\/1 var(--body);color:var(--foam);\n  background:rgba(3,22,27,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);\n  border:1px solid rgba(238,245,244,.2);border-radius:999px;padding:11px 14px;cursor:pointer;\n  transition:transform .16s var(--ease-out),background-color .2s ease;\n}\n#fp .fp-tour-ctl button:active{transform:scale(.96)}\n#fp .fp-tour-ctl svg{width:17px;height:17px}\n#fp .fp-tour figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:center}\n#fp .fp-sobre h2{margin-bottom:22px}\n#fp .fp-fatos{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin:40px 0 44px}\n#fp .fp-fatos li{border-top:1px solid var(--line-2);padding-top:16px}\n#fp .fp-fatos b{display:block;font:600 22px\/1.15 var(--display);letter-spacing:-.01em;margin-bottom:6px}\n#fp .fp-fatos span{font-size:15px;color:var(--mist);line-height:1.5}\n#fp .fp-visita{border-radius:var(--r-card);background:var(--water-2);border:1px solid var(--line);padding:26px 26px 24px}\n#fp .fp-visita .fp-citacao{display:block;margin:0;max-width:100%;font:500 clamp(19px,1.6vw,22px)\/1.35 var(--display);letter-spacing:-.01em;color:var(--foam);white-space:normal!important;overflow-wrap:break-word;text-wrap:balance}\n#fp .fp-visita p{margin-top:12px;font-size:15px;color:var(--mist)}\n#fp .fp-visita .fp-ctas{margin-top:22px}\n@media (max-width:900px){\n  #fp .fp-sobre .fp-wrap{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-tour{order:2;width:min(100%,380px)}\n}\n@media (max-width:520px){#fp .fp-fatos{grid-template-columns:1fr;gap:20px}}\n\n\/* =========================================================\n   CORINTHIANS\n   ========================================================= *\/\n#fp .fp-case{position:relative;padding:0;min-height:min(92vh,860px);display:flex;align-items:flex-end;overflow:hidden;background:var(--abyss)}\n#fp .fp-case > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%}\n#fp .fp-case::after{\n  content:\"\";position:absolute;inset:0;pointer-events:none;\n  background:linear-gradient(180deg,rgba(3,22,27,.25) 0%,rgba(3,22,27,.35) 35%,rgba(3,22,27,.92) 78%,var(--abyss) 100%);\n}\n#fp .fp-case .fp-wrap{position:relative;z-index:2;padding-block:clamp(64px,8vw,112px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}\n#fp .fp-case h2{font-size:clamp(34px,4.6vw,66px);max-width:15ch}\n#fp .fp-case .fp-lead{margin-top:20px;color:#C3D6D6}\n#fp .fp-case .fp-ctas{margin-top:30px}\n#fp .fp-case-fotos{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n#fp .fp-case-fotos img{aspect-ratio:1;object-fit:cover;border-radius:var(--r-card);border:1px solid rgba(238,245,244,.18)}\n@media (max-width:900px){\n  #fp .fp-case{min-height:0;display:block}\n  #fp .fp-case > img{position:relative;height:auto;aspect-ratio:16\/10}\n  #fp .fp-case::after{top:0;height:calc(100vw * .625);background:linear-gradient(180deg,transparent 55%,var(--abyss) 100%)}\n  #fp .fp-case .fp-wrap{grid-template-columns:1fr;padding-top:8px}\n}\n\n\/* =========================================================\n   OR\u00c7AMENTO\n   ========================================================= *\/\n#fp .fp-orc .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}\n#fp .fp-orc .fp-lead{margin-top:20px}\n#fp .fp-passos{margin-top:40px;display:flex;flex-direction:column;gap:22px;counter-reset:passo}\n#fp .fp-passos li{display:grid;grid-template-columns:40px 1fr;gap:4px 14px}\n#fp .fp-passos svg{width:26px;height:26px;color:var(--glow);grid-row:1 \/ span 2;margin-top:2px}\n#fp .fp-passos b{font:600 19px\/1.25 var(--display);letter-spacing:-.01em}\n#fp .fp-passos span{font-size:15px;color:var(--mist)}\n#fp .fp-contato{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:15px;color:var(--mist)}\n#fp .fp-contato a{color:var(--foam);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line-2)}\n#fp .fp-contato a:hover{border-bottom-color:var(--glow)}\n\n#fp .fp-form{background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-media);padding:clamp(22px,3vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}\n#fp .fp-form .fp-f{display:flex;flex-direction:column;gap:8px}\n#fp .fp-form .fp-f--full{grid-column:1 \/ -1}\n#fp .fp-form label,#fp .fp-form legend{font-size:14px;font-weight:500;color:var(--foam);padding:0}\n#fp .fp-form label small,#fp .fp-form legend small{color:var(--faint);font-weight:400}\n#fp .fp-form input,#fp .fp-form select{\n  width:100%!important;font:400 16px\/1.3 var(--body);color:var(--foam);background:var(--abyss);\n  border:1px solid var(--line-2);border-radius:10px;padding:14px 14px;appearance:none;-webkit-appearance:none;\n}\n#fp .fp-form select{background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}\n#fp .fp-form select option{background:var(--water-2);color:var(--foam)}\n#fp .fp-form input::placeholder{color:var(--faint)}\n#fp .fp-form input:focus,#fp .fp-form select:focus{outline:2px solid var(--glow);outline-offset:1px;border-color:transparent}\n#fp .fp-form input[aria-invalid=\"true\"]{border-color:#FF9B8A}\n#fp .fp-erro{font-size:14px;color:#FFB4A6;min-height:0}\n#fp .fp-erro:empty{display:none}\n#fp .fp-form fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}\n#fp .fp-chips{display:flex;flex-wrap:wrap;gap:8px}\n#fp .fp-chips label{position:relative;cursor:pointer}\n#fp .fp-chips input{position:absolute;opacity:0;width:1px;height:1px}\n#fp .fp-chips span{\n  display:inline-block;font-size:15px;font-weight:500;color:var(--mist);padding:11px 15px;border-radius:999px;border:1px solid var(--line-2);\n  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .16s var(--ease-out);\n}\n#fp .fp-chips label:active span{transform:scale(.97)}\n#fp .fp-chips input:checked + span{background:var(--foam);color:var(--abyss);border-color:var(--foam)}\n#fp .fp-chips input:focus-visible + span{outline:2px solid var(--glow);outline-offset:2px}\n#fp .fp-form .fp-enviar{grid-column:1 \/ -1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:6px}\n#fp .fp-form .fp-enviar p{font-size:14px;color:var(--faint);max-width:34ch}\n@media (max-width:900px){#fp .fp-orc .fp-wrap{grid-template-columns:1fr}}\n@media (max-width:560px){#fp .fp-form{grid-template-columns:1fr}#fp .fp-form .fp-bt{width:100%}}\n\n\/* =========================================================\n   D\u00daVIDAS\n   ========================================================= *\/\n\n#fp .fp-faq .fp-wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,80px)}\n#fp .fp-faq details{border-bottom:1px solid var(--line)}\n#fp .fp-faq details:first-child{border-top:1px solid var(--line)}\n#fp .fp-faq summary{\n  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;\n  padding:22px 0;font:600 clamp(18px,1.5vw,21px)\/1.3 var(--display);letter-spacing:-.01em;\n}\n#fp .fp-faq summary::-webkit-details-marker{display:none}\n#fp .fp-faq summary svg{width:20px;height:20px;flex:none;color:var(--glow);transition:transform .3s var(--ease-out)}\n#fp .fp-faq details[open] summary svg{transform:rotate(45deg)}\n#fp .fp-faq details p{padding:0 48px 24px 0;color:var(--mist);max-width:68ch}\n@media (max-width:900px){#fp .fp-faq .fp-wrap{grid-template-columns:1fr}#fp .fp-faq details p{padding-right:0}}\n\n\/* =========================================================\n   RODAP\u00c9\n   ========================================================= *\/\n#fp .fp-rodape{padding-block:64px 40px;border-top:1px solid var(--line);background:var(--abyss)}\n#fp .fp-rodape .fp-wrap{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.6fr));gap:32px}\n#fp .fp-rodape img{height:64px;width:auto}\n#fp .fp-rodape h3{font:600 15px\/1.2 var(--body);letter-spacing:0;color:var(--foam);margin-bottom:12px}\n#fp .fp-rodape p,#fp .fp-rodape li{font-size:15px;color:var(--mist);line-height:1.6}\n#fp .fp-rodape a{text-decoration:none;border-bottom:1px solid var(--line-2)}\n#fp .fp-rodape a:hover{border-bottom-color:var(--glow);color:var(--foam)}\n#fp .fp-rodape .fp-fim{grid-column:1 \/ -1;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--faint)}\n@media (max-width:900px){#fp .fp-rodape .fp-wrap{grid-template-columns:1fr 1fr}#fp .fp-rodape .fp-wrap > :first-child{grid-column:1 \/ -1}}\n\n\/* barra fixa no celular *\/\n#fp .fp-barra{\n  position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:60;display:none;\n  transform:translateY(140%);transition:transform .45s var(--ease-out);\n}\n#fp .fp-barra .fp-bt{width:100%;box-shadow:0 18px 40px -12px rgba(0,0,0,.7)}\n#fp .fp-barra.on{transform:none}\n@media (max-width:760px){#fp .fp-barra{display:block}#fp .fp-rodape{padding-bottom:110px}}\n\n\/* =========================================================\n   FICHA DO MODELO (dialog)\n   ========================================================= *\/\n#fp dialog.fp-ficha{\n  width:min(1080px,100% - 24px);max-height:min(92vh,900px);padding:0;border:1px solid var(--line-2);border-radius:var(--r-media);\n  background:var(--water-2);color:var(--foam);overflow:hidden;\n  opacity:0;transform:scale(.96);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),overlay .22s allow-discrete,display .22s allow-discrete;\n}\n#fp dialog.fp-ficha[open]{opacity:1;transform:none}\n@starting-style{#fp dialog.fp-ficha[open]{opacity:0;transform:scale(.96)}}\n#fp dialog.fp-ficha::backdrop{background:rgba(2,12,15,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}\n#fp .fp-ficha-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);max-height:inherit}\n#fp .fp-ficha-media{position:relative;background:var(--abyss);display:flex;flex-direction:column;min-height:0}\n#fp .fp-ficha-media .fp-view{position:relative;flex:1;min-height:320px}\n#fp .fp-ficha-media .fp-view img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#fp .fp-ficha-media .fp-view img.fp-contain{object-fit:contain;padding:8%;background:radial-gradient(80% 90% at 50% 40%, #0E3C45 0%, #082A31 100%)}\n#fp .fp-ficha-media .fp-view small{position:absolute;left:14px;bottom:12px;font-size:12px;color:rgba(238,245,244,.8);text-shadow:0 1px 6px rgba(0,0,0,.7)}\n#fp .fp-abas{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}\n#fp .fp-abas button{white-space:nowrap;font:500 14px\/1 var(--body);color:var(--mist);background:transparent;border:1px solid transparent;border-radius:999px;padding:10px 14px;cursor:pointer}\n#fp .fp-abas button[aria-selected=\"true\"]{border-color:var(--line-2);color:var(--foam);background:var(--water-2)}\n#fp .fp-abas button[hidden]{display:none}\n#fp .fp-ficha-txt{padding:30px 30px 26px;overflow:auto;display:flex;flex-direction:column;gap:22px}\n#fp .fp-ficha-txt h3{font-size:clamp(26px,2.6vw,34px)}\n#fp .fp-ficha-txt .fp-sub{font-size:14px;color:var(--faint);margin-top:6px}\n#fp .fp-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}\n#fp .fp-specs div{background:var(--water-2);padding:12px 14px}\n#fp .fp-specs dt{font-size:12px;color:var(--faint)}\n#fp .fp-specs dd{font:600 18px\/1.2 var(--display);margin-top:4px;font-variant-numeric:tabular-nums}\n#fp .fp-specs dd small{font:400 13px var(--body);color:var(--mist)}\n#fp .fp-lin-tabs{display:flex;gap:6px;flex-wrap:wrap}\n#fp .fp-lin-tabs button{font:600 14px\/1 var(--body);color:var(--mist);background:transparent;border:1px solid var(--line-2);border-radius:999px;padding:10px 14px;cursor:pointer}\n#fp .fp-lin-tabs button[aria-selected=\"true\"]{background:var(--foam);color:var(--abyss);border-color:var(--foam)}\n#fp .fp-lin-lista{display:flex;flex-direction:column;gap:8px;margin-top:14px;font-size:15px;color:var(--foam)}\n#fp .fp-lin-lista li{display:flex;gap:10px;align-items:flex-start}\n#fp .fp-lin-lista svg{width:18px;height:18px;color:var(--glow);flex:none;margin-top:3px}\n#fp .fp-ficha-nota{font-size:14px;color:var(--mist)}\n#fp .fp-ficha-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}\n#fp .fp-fechar{position:absolute;top:12px;right:12px;z-index:3;width:44px!important;height:44px!important;padding:0;border-radius:50%;border:1px solid rgba(238,245,244,.22);background:rgba(3,22,27,.7);color:var(--foam);cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(8px)}\n#fp .fp-fechar svg{width:20px;height:20px}\n@media (max-width:820px){\n  #fp dialog.fp-ficha{max-height:94vh;overflow:auto}\n  #fp .fp-ficha-in{grid-template-columns:1fr;max-height:none}\n  #fp .fp-ficha-media .fp-view{min-height:0;aspect-ratio:4\/3}\n  #fp .fp-specs{grid-template-columns:repeat(2,minmax(0,1fr))}\n}\n\n\/* revela\u00e7\u00e3o suave das imagens ao rolar *\/\n#fp.fp-js .fp-surge{opacity:0;transform:translateY(16px);filter:blur(6px)}\n#fp.fp-js .fp-surge.fp-visto{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease-out),transform .9s var(--ease-out),filter .8s var(--ease-out)}\n\n\n\/* =========================================================\n   PALETA POR SE\u00c7\u00c3O: cada bloco com seu pr\u00f3prio fundo\n   ========================================================= *\/\n#fp .t-claro{\n  --foam:#0A2227;--mist:#3B5557;--faint:#536C6E;\n  --line:rgba(10,34,39,.12);--line-2:rgba(10,34,39,.26);\n  --water-2:#FFFFFF;--abyss:#E1E9E8;--water-3:#B9CACA;\n  --glow:#0B5B5E;--glow-2:#0E6E71;--glow-ink:#FFFFFF;\n  color:var(--foam);\n}\n#fp .t-perola{background:#EEF3F2}\n#fp .t-pedra{background:#DFE5E3}\n#fp .t-aqua{background:#CDEBE8;--water-2:#F5FBFA;--abyss:#FFFFFF}\n#fp .t-preto{background:#020A0C}\n#fp .t-grafite{background:#111516}\n#fp .t-agua{background:#0A2D34}\n#fp .t-claro .fp-bt--line{color:var(--foam);border-color:var(--line-2)}\n#fp .t-claro .fp-bt--glow{box-shadow:0 10px 24px -14px rgba(6,35,41,.5)}\n#fp .t-claro .fp-card{border-color:rgba(10,34,39,.1);box-shadow:0 1px 0 rgba(10,34,39,.04),0 18px 40px -30px rgba(6,35,41,.45)}\n@media (hover:hover) and (pointer:fine){#fp .t-claro .fp-card:hover{border-color:rgba(11,91,94,.5)}}\n#fp .fp-faq.t-perola{border-top:0}\n\n\/* menu: se\u00e7\u00e3o atual *\/\n#fp .fp-nav ul a{position:relative}\n#fp .fp-nav ul a[aria-current=\"true\"]{color:var(--foam)}\n#fp .fp-nav ul a::after{content:\"\";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--glow);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}\n#fp .fp-nav ul a[aria-current=\"true\"]::after{transform:scaleX(1)}\n\n\/* =========================================================\n   ESPA\u00c7O DE EXPERI\u00caNCIA\n   ========================================================= *\/\n#fp .fp-exp .fp-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}\n#fp .fp-exp-video{position:sticky;top:96px;justify-self:center;width:min(100%,400px)}\n#fp .fp-exp h2{margin-bottom:22px}\n#fp .fp-exp-itens{margin-top:12px}\n#fp .fp-exp-itens li{min-height:34vh;display:flex;flex-direction:column;justify-content:center;gap:10px;border-top:1px solid var(--line)}\n#fp .fp-exp-itens li:last-child{min-height:0;padding-block:40px}\n#fp .fp-exp-itens b{font:600 clamp(24px,2.4vw,34px)\/1.12 var(--display);letter-spacing:-.02em}\n#fp .fp-exp-itens span{color:var(--mist);max-width:44ch}\n#fp .fp-exp .fp-ctas{margin-top:8px}\n#fp .fp-player .fp-frame{position:relative;aspect-ratio:9\/16;border-radius:var(--r-media);overflow:hidden;background:#000;box-shadow:0 50px 90px -50px rgba(0,0,0,.8),0 0 0 1px var(--line)}\n#fp .fp-player video{width:100%;height:100%;object-fit:cover}\n#fp .fp-player figcaption{margin-top:14px;font-size:14px;color:var(--faint);text-align:center}\n@media (max-width:900px){\n  #fp .fp-exp .fp-wrap{grid-template-columns:1fr}\n  #fp .fp-exp-video{position:relative;top:auto;width:min(100%,380px)}\n  #fp .fp-exp-itens li{min-height:0;padding-block:26px}\n}\n\n\/* =========================================================\n   PARCEIROS\n   ========================================================= *\/\n#fp .fp-parc .fp-lead{margin-top:20px}\n#fp .fp-parc h2,#fp .fp-parc .fp-lead{text-align:center;margin-inline:auto}\n#fp .fp-marcas{margin-top:56px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}\n#fp .fp-marca{\n  position:relative;flex:0 0 calc((100% - 3 * 14px) \/ 4);aspect-ratio:3\/2;perspective:900px;list-style:none;\n}\n#fp .fp-marca-in{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .7s var(--ease-io)}\n#fp .fp-marca-f,#fp .fp-marca-v{\n  position:absolute;inset:0;border-radius:var(--r-card);backface-visibility:hidden;-webkit-backface-visibility:hidden;\n  display:flex;align-items:center;justify-content:center;overflow:hidden;\n}\n#fp .fp-marca-f{background:#F7F9F8;border:1px solid rgba(10,34,39,.08);box-shadow:0 1px 0 rgba(10,34,39,.04),0 22px 40px -34px rgba(6,35,41,.5)}\n#fp .fp-marca-f img{width:var(--lw);max-width:78%;max-height:58%;height:auto;object-fit:contain}\n#fp .fp-marca-f img[data-alto]{width:auto;height:80%;max-height:80%}\n#fp .fp-marca-v{transform:rotateY(180deg);background:var(--bgc,#111)}\n#fp .fp-marca-v img{width:100%;height:100%;object-fit:contain}\n@media (hover:hover) and (pointer:fine){\n  #fp .fp-marca:hover .fp-marca-in{transform:rotateY(180deg)}\n}\n#fp .fp-marca.virada .fp-marca-in{transform:rotateY(180deg)}\n#fp .fp-marca{cursor:pointer;-webkit-tap-highlight-color:transparent}\n#fp .fp-parc-nota{margin-top:26px;text-align:center;font-size:14px;color:var(--faint)}\n@media (max-width:900px){#fp .fp-marca{flex-basis:calc((100% - 2 * 12px) \/ 3)}#fp .fp-marcas{gap:12px}}\n@media (max-width:560px){#fp .fp-marca{flex-basis:calc((100% - 10px) \/ 2)}#fp .fp-marcas{gap:10px}}\n@media (prefers-reduced-motion:reduce){\n  #fp .fp-marca-in{transition:none}\n  #fp .fp-marca:hover .fp-marca-in{transform:none}\n}\n\n\/* =========================================================\n   CORINTHIANS (foto real, abre at\u00e9 a borda ao rolar)\n   ========================================================= *\/\n#fp .fp-case{padding:0;min-height:0;display:block;background:#020A0C;overflow:hidden}\n#fp .fp-case::after{content:none}\n#fp .fp-case-media{position:relative;width:100%;aspect-ratio:16\/9;max-height:100vh;overflow:hidden}\n#fp .fp-case-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#fp .fp-case-media::after{content:\"\";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,10,12,0) 45%,rgba(2,10,12,.55) 70%,rgba(2,10,12,.96) 100%)}\n#fp .fp-case .fp-wrap{position:absolute;left:0;right:0;bottom:0;padding-block:0 clamp(40px,6vw,88px);display:block}\n#fp .fp-case h2{max-width:17ch}\n#fp .fp-case .fp-lead{max-width:52ch}\n@media (max-width:900px){\n  #fp .fp-case-media{aspect-ratio:4\/3}\n  #fp .fp-case-media img{object-position:62% 50%}\n  #fp .fp-case .fp-wrap{position:relative;padding-block:28px 72px}\n}\n\n@media (max-width:900px){\n  #fp .fp-hero .fp-wrap,#fp .fp-linhas .fp-wrap,#fp .fp-exp .fp-wrap,#fp .fp-orc .fp-wrap,#fp .fp-faq .fp-wrap,#fp .fp-case .fp-wrap{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-player,#fp .fp-player video{max-width:100%}\n}\n\/* texto que acende ao rolar *\/\n#fp .fp-lit{background:linear-gradient(var(--foam),var(--foam)) no-repeat 0 0 \/ 0% 100%;-webkit-background-clip:text;background-clip:text}\n\n\/* =========================================================\n   ROLAGEM (anima\u00e7\u00f5es ligadas ao scroll, como nas p\u00e1ginas de produto)\n   ========================================================= *\/\n@keyframes sdRise{from{opacity:0;transform:translateY(56px);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}\n@keyframes sdCard{from{opacity:0;transform:translateY(46px) scale(.95)}to{opacity:1;transform:none}}\n@keyframes sdOut{to{opacity:0;transform:translateY(-70px);filter:blur(6px)}}\n@keyframes sdFrameOut{to{transform:scale(.86) translateY(40px);opacity:.3}}\n@keyframes sdExpand{from{clip-path:inset(7% 9% round 36px);transform:scale(.98)}to{clip-path:inset(0 0 round 0);transform:none}}\n@keyframes sdLit{to{background-size:100% 100%}}\n@keyframes sdFocus{from{opacity:.25;transform:translateX(-10px)}to{opacity:1;transform:none}}\n@supports (animation-timeline: view()){\n  @media (prefers-reduced-motion:no-preference){\n    #fp .sd-rise{animation:sdRise linear both;animation-timeline:view();animation-range:entry 0% entry 100%}\n    #fp .sd-card{animation:sdCard linear both;animation-timeline:view();animation-range:entry 0% entry 85%}\n    #fp .sd-hero-out{animation:sdOut linear both;animation-timeline:scroll(root);animation-range:0 70vh}\n    #fp .sd-frame-out{animation:sdFrameOut linear both;animation-timeline:scroll(root);animation-range:0 85vh}\n    #fp .sd-expand{animation:sdExpand linear both;animation-timeline:view();animation-range:entry 0% cover 50%}\n    #fp .sd-focus{animation:sdFocus linear both;animation-timeline:view();animation-range:entry 30% cover 45%}\n    #fp .fp-lit{color:color-mix(in srgb,var(--foam) 30%,transparent);animation:sdLit linear both;animation-timeline:view();animation-range:cover 15% cover 55%}\n  }\n}\n\/* sem suporte: aparece ao entrar na tela *\/\n#fp.fp-sd-nao .sd-rise,#fp.fp-sd-nao .sd-card{opacity:0;transform:translateY(24px);filter:blur(6px)}\n#fp.fp-sd-nao .fp-visto{opacity:1;transform:none;filter:none;transition:opacity .8s var(--ease-out),transform .9s var(--ease-out),filter .8s var(--ease-out)}\n\n@media (prefers-reduced-motion:reduce){\n  #fp.fp-sd-nao .sd-rise,#fp.fp-sd-nao .sd-card{opacity:1;transform:none;filter:none}\n  #fp *,#fp *::before,#fp *::after{transition-duration:.01ms!important;animation-duration:.01ms!important}\n  #fp.fp-js .fp-in,#fp.fp-js .fp-surge{opacity:1;transform:none;filter:none}\n  #fp .fp-nivel{transition:transform .01ms}\n}\n\n\/* =========================================================\n   SITE PRINCIPAL - componentes novos (al\u00e9m do CSS da LP)\n   ========================================================= *\/\n#fp .fp-nav ul a[aria-current]{color:var(--foam)}\n#fp .fp-nav ul a[aria-current]::after{content:\"\";display:block;height:2px;margin-top:5px;border-radius:2px;background:var(--glow)}\n\n\/* menu do celular *\/\n#fp .fp-menu-bt{display:none;flex:none;width:42px;height:42px;margin-left:auto;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-2);border-radius:12px;color:var(--foam);cursor:pointer}\n#fp .fp-menu-bt svg{width:22px;height:22px}\n#fp .fp-menu-bt .fp-ic-x{display:none}\n#fp .fp-nav.aberto .fp-menu-bt .fp-ic-x{display:block}\n#fp .fp-nav.aberto .fp-menu-bt .fp-ic-menu{display:none}\n@media (max-width:980px){\n  #fp .fp-menu-bt{display:inline-flex}\n  #fp .fp-nav .fp-wrap{position:relative}\n  #fp .fp-nav nav{display:block;position:absolute;top:calc(100% + 10px);left:0;right:0;\n    background:rgba(3,22,27,.94);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);\n    border:1px solid rgba(170,228,228,.16);border-radius:20px;box-shadow:0 24px 50px -24px rgba(0,0,0,.8);\n    padding:10px;margin:0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s var(--ease-out),visibility .2s}\n  #fp .fp-nav.aberto nav{opacity:1;visibility:visible;transform:none}\n  #fp .fp-nav nav ul{flex-direction:column;gap:2px}\n  #fp .fp-nav nav ul a{display:block;padding:13px 14px;border-radius:12px;font-size:16px}\n  #fp .fp-nav nav ul a:hover,#fp .fp-nav nav ul a[aria-current]{background:rgba(238,245,244,.06)}\n  #fp .fp-nav ul a[aria-current]::after{display:none}\n  #fp .fp-nav .fp-bt--sm{margin-left:8px}\n}\n@media (max-width:420px){#fp .fp-nav .fp-bt--sm{display:none}}\n\n\/* hero compacto das p\u00e1ginas internas *\/\n#fp .fp-hero--sub{padding-block:clamp(122px,14vw,172px) clamp(10px,4vw,30px);position:relative}\n#fp .fp-hero--sub .fp-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;justify-items:start}\n#fp .fp-hero--sub .fp-eyebrow{font:600 13px\/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--glow)}\n#fp .fp-hero--sub h1{font-size:clamp(40px,6vw,74px);letter-spacing:-.03em;line-height:1}\n#fp .fp-hero--sub .fp-lead{max-width:60ch}\n#fp .fp-crumb{font:500 14px\/1 var(--body);color:var(--faint);margin-bottom:4px}\n#fp .fp-crumb a{color:var(--faint);text-decoration:none}\n#fp .fp-crumb a:hover{color:var(--mist)}\n\n\/* ferramentas s\u00f3 com o medidor (p\u00e1ginas de 1 categoria) *\/\n#fp .fp-ferramentas--solo{justify-content:flex-end}\n\n\/* HOME - hub de categorias *\/\n#fp .fp-cats{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}\n#fp .fp-cat{position:relative;grid-column:span 2;border-radius:var(--r-media);overflow:hidden;min-height:300px;display:flex;isolation:isolate;text-decoration:none;color:#EEF5F4;border:1px solid rgba(170,228,228,.14)}\n#fp .fp-cat--wide{grid-column:span 3}\n#fp .fp-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .7s var(--ease-out)}\n#fp .fp-cat::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,.1) 0%,rgba(3,22,27,.45) 48%,rgba(3,22,27,.97) 100%)}\n#fp .fp-cat-txt h3,#fp .fp-cat-txt p{text-shadow:0 1px 14px rgba(3,22,27,.7)}\n@media (hover:hover) and (pointer:fine){#fp .fp-cat:hover img{transform:scale(1.05)}}\n#fp .fp-cat-txt{margin-top:auto;padding:70px 26px 26px;background:linear-gradient(180deg,transparent 0,rgba(3,22,27,.55) 32%,rgba(3,22,27,.9) 72%)}\n#fp .fp-cat-txt h3{font-size:clamp(23px,2.1vw,30px);color:#fff}\n#fp .fp-cat-txt p{color:rgba(238,245,244,.86);font-size:15.5px;margin-top:6px;max-width:34ch}\n#fp .fp-cat-txt .fp-cat-link{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font:600 15px\/1 var(--body);color:#7BEDE7}\n#fp .fp-cat-txt .fp-cat-link svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-cat:hover .fp-cat-link svg{transform:translateX(4px)}}\n@media (max-width:860px){#fp .fp-cats{grid-template-columns:1fr 1fr}#fp .fp-cat,#fp .fp-cat--wide{grid-column:span 1;min-height:230px}}\n@media (max-width:520px){#fp .fp-cats{grid-template-columns:1fr}}\n\n\/* FREE STANDING *\/\n#fp .fp-fs{display:grid;gap:clamp(20px,3vw,34px)}\n#fp .fp-fs-card{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(18px,3vw,40px);align-items:center;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-media);overflow:hidden}\n#fp .fp-fs-card:nth-child(even){grid-template-columns:.9fr 1.1fr}\n#fp .fp-fs-card:nth-child(even) .fp-fs-foto{order:2}\n#fp .fp-fs-foto{position:relative;aspect-ratio:4\/3;background:#0a2228}\n#fp .fp-fs-foto img{width:100%;height:100%;object-fit:cover}\n#fp .fp-fs-txt{padding:clamp(22px,2.4vw,36px) clamp(22px,2.4vw,40px)}\n#fp .fp-fs-txt h3{font-size:clamp(26px,2.6vw,36px)}\n#fp .fp-fs-txt .fp-lead{margin:10px 0 20px;font-size:17px}\n#fp .fp-fs-tab{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;margin-bottom:22px}\n#fp .fp-fs-tab th,#fp .fp-fs-tab td{text-align:right;padding:9px 6px;border-bottom:1px solid var(--line);font-size:15px}\n#fp .fp-fs-tab th:first-child,#fp .fp-fs-tab td:first-child{text-align:left;color:var(--mist);font-weight:400}\n#fp .fp-fs-tab thead th{color:var(--foam);font:600 14px\/1 var(--body);border-bottom-color:var(--line-2)}\n#fp .fp-fs-tab td b{color:var(--foam)}\n@media (max-width:760px){#fp .fp-fs-card,#fp .fp-fs-card:nth-child(even){grid-template-columns:1fr}#fp .fp-fs-card:nth-child(even) .fp-fs-foto{order:0}}\n\n\/* ACESS\u00d3RIOS *\/\n#fp .fp-acc{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}\n#fp .fp-acc-card{background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px;display:flex;flex-direction:column;gap:12px;transition:border-color .25s ease,transform .2s var(--ease-out)}\n@media (hover:hover) and (pointer:fine){#fp .fp-acc-card:hover{border-color:var(--line-2);transform:translateY(-2px)}}\n#fp .fp-acc-ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:radial-gradient(120% 120% at 30% 20%,rgba(98,224,218,.22),rgba(98,224,218,.06));border:1px solid rgba(98,224,218,.25);color:var(--glow)}\n#fp .fp-acc-ic svg{width:26px;height:26px}\n#fp .fp-acc-card h3{font-size:19px}\n#fp .fp-acc-card p{color:var(--mist);font-size:15.5px;line-height:1.55}\n\n\/* CTA band *\/\n#fp .fp-cta .fp-wrap{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}\n#fp .fp-cta h2{max-width:20ch}\n#fp .fp-cta .fp-lead{margin-inline:auto;text-align:center}\n#fp .fp-cta .fp-ctas{justify-content:center}\n\n\/* CONTATO *\/\n#fp .fp-contato .fp-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:start}\n#fp .fp-cnt-cards{display:grid;gap:12px}\n#fp .fp-cnt-card{display:flex;gap:14px;align-items:flex-start;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);padding:20px 22px;text-decoration:none;color:inherit;transition:border-color .2s ease}\n#fp .fp-cnt-card:hover{border-color:var(--line-2)}\n#fp .fp-cnt-ic{flex:none;width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:rgba(98,224,218,.1);border:1px solid rgba(98,224,218,.22);color:var(--glow)}\n#fp .fp-cnt-ic svg{width:22px;height:22px}\n#fp .fp-cnt-card b{display:block;font:600 16px\/1.2 var(--body);color:var(--foam)}\n#fp .fp-cnt-card span{display:block;color:var(--mist);font-size:15px;margin-top:3px}\n#fp .fp-mapa{margin-top:16px;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line);aspect-ratio:16\/10}\n#fp .fp-mapa iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.3) brightness(.9)}\n@media (max-width:820px){#fp .fp-contato .fp-wrap{grid-template-columns:1fr}}\n\n\/* cat\u00e1logo logo abaixo do hero das p\u00e1ginas internas *\/\n#fp .fp-hero--sub + section{padding-top:clamp(36px,4.5vw,64px)}\n\n\/* =========================================================\n   HOME NOVA + P\u00c1GINA SOBRE\n   ========================================================= *\/\n\n\/* ---- HERO: v\u00eddeos que alternam (Showroom \/ Galeria Thea \/ F\u00e1brica) ---- *\/\n#fp .fp-hv{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:112px 0 56px}\n#fp .fp-hv::before{display:none}\n#fp .fp-hv-bg{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#03161B}\n#fp .fp-hv-bg video{position:absolute;left:-6%;top:-6%;width:112%;height:112%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;filter:blur(30px) saturate(1.15) brightness(.6)}\n#fp .fp-hv-bg video.on{opacity:1}\n#fp .fp-hv::after{content:\"\";position:absolute;inset:0;z-index:-1;pointer-events:none;\n  background:linear-gradient(90deg,rgba(3,22,27,.82) 0%,rgba(3,22,27,.35) 58%,rgba(3,22,27,.55) 100%)}\n#fp .fp-hv .fp-hv-in{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;align-items:end;gap:36px 6vw;width:min(1320px,100% - 2*clamp(16px,4vw,48px));margin-inline:auto}\n#fp .fp-hv-tit{grid-column:1;grid-row:1;display:grid;align-self:center}\n#fp .fp-hv-tit p{grid-area:1 \/ 1;align-self:end;margin:0;font:600 clamp(64px,9vw,150px)\/.94 var(--display);letter-spacing:-.045em;color:#fff;text-wrap:balance;\n  opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform 1s var(--ease-out)}\n#fp .fp-hv-tit p.on{opacity:1;transform:none;transition-delay:.15s}\n#fp .fp-hv-card{grid-column:2;grid-row:1 \/ 3;height:min(76vh,780px);aspect-ratio:9 \/ 16;position:relative;border-radius:22px;overflow:hidden;background:#06232a;\n  border:1px solid rgba(255,255,255,.14);box-shadow:0 46px 90px -34px rgba(0,0,0,.85)}\n#fp .fp-hv-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}\n#fp .fp-hv-card video.on{opacity:1}\n#fp .fp-hv-tabs{grid-column:1;grid-row:2;display:flex;gap:18px;max-width:560px}\n#fp .fp-hv-tabs button{flex:1;display:flex;flex-direction:column;gap:12px;background:none;border:0;padding:10px 0;margin:0;cursor:pointer;\n  color:rgba(238,245,244,.62);font:500 15px\/1.2 var(--body);text-align:left;transition:color .3s ease}\n#fp .fp-hv-tabs button:hover,#fp .fp-hv-tabs button[aria-selected=\"true\"]{color:#fff}\n#fp .fp-hv-tabs i{display:block;height:2px;border-radius:2px;background:rgba(255,255,255,.22);position:relative;overflow:hidden}\n#fp .fp-hv-tabs i::after{content:\"\";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left center}\n#fp .fp-hv-tabs button[aria-selected=\"true\"] i::after{transform:scaleX(1)}\n#fp .fp-hv-tabs button.corre i::after{animation:fpHvBar var(--dur,7s) linear both}\n@keyframes fpHvBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n@media (max-width:900px){\n  #fp .fp-hv{align-items:flex-end;padding:0 0 calc(30px + env(safe-area-inset-bottom))}\n  #fp .fp-hv-card{display:none}\n  #fp .fp-hv-bg video{left:0;top:0;width:100%;height:100%;filter:none}\n  #fp .fp-hv::after{background:linear-gradient(180deg,rgba(3,22,27,.55) 0%,rgba(3,22,27,0) 22%,rgba(3,22,27,0) 48%,rgba(3,22,27,.88) 100%)}\n  #fp .fp-hv .fp-hv-in{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:18px}\n  #fp .fp-hv-tit p{font-size:clamp(48px,14vw,72px)}\n  #fp .fp-hv-tabs{gap:10px;max-width:none}\n  #fp .fp-hv-tabs button{font-size:13px;gap:10px}\n}\n@media (prefers-reduced-motion:reduce){#fp .fp-hv-tit p,#fp .fp-hv-bg video,#fp .fp-hv-card video{transition:none}}\n\n\/* ---- N\u00daMEROS ---- *\/\n#fp .fp-nums{background:var(--abyss);border-block:1px solid var(--line);padding-block:clamp(36px,5vw,60px)}\n#fp .fp-nums ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}\n#fp .fp-nums li{padding:4px clamp(14px,2vw,30px);border-left:1px solid var(--line)}\n#fp .fp-nums-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;margin-bottom:18px;background:radial-gradient(120% 120% at 30% 20%,rgba(98,224,218,.22),rgba(98,224,218,.06));border:1px solid rgba(98,224,218,.25);color:var(--glow)}\n#fp .fp-nums-ic svg{width:25px;height:25px}\n#fp .fp-nums li:first-child{border-left:0;padding-left:0}\n#fp .fp-nums b{display:block;font:600 clamp(34px,4vw,58px)\/1 var(--display);letter-spacing:-.03em;color:var(--foam);font-variant-numeric:tabular-nums}\n#fp .fp-nums span{display:block;margin-top:10px;color:var(--mist);font-size:15px;line-height:1.4}\n@media (max-width:760px){\n  #fp .fp-nums ul{grid-template-columns:1fr 1fr;row-gap:28px}\n  #fp .fp-nums li:nth-child(3){border-left:0;padding-left:0}\n}\n\n\/* ---- LINHA: pain\u00e9is que expandem ---- *\/\n#fp .fp-linha-head{max-width:660px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-linha-head .fp-lead{margin-top:16px}\n#fp .fp-pns{display:flex;gap:12px;height:clamp(460px,60vh,620px)}\n#fp .fp-pn{position:relative;flex:1 1 0;min-width:0;border-radius:var(--r-media);overflow:hidden;isolation:isolate;text-decoration:none;color:#EEF5F4;transition:flex-grow .7s var(--ease-out)}\n#fp .fp-pn.on{flex-grow:2.6}\n#fp .fp-pn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.1s var(--ease-out)}\n#fp .fp-pn.on img{transform:scale(1.04)}\n#fp .fp-pn::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,0) 35%,rgba(3,22,27,.9) 100%)}\n#fp .fp-pn-txt{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 24px}\n#fp .fp-pn h3{color:#fff;font-size:clamp(19px,1.7vw,28px);text-shadow:0 1px 12px rgba(3,22,27,.6)}\n#fp .fp-pn-n{display:block;margin-top:5px;color:rgba(238,245,244,.78);font-size:14px}\n#fp .fp-pn-mais{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .6s var(--ease-out),opacity .35s ease}\n#fp .fp-pn-mais > div{overflow:hidden}\n#fp .fp-pn.on .fp-pn-mais{grid-template-rows:1fr;opacity:1;transition-delay:.12s}\n#fp .fp-pn-mais p{color:rgba(238,245,244,.9);font-size:15.5px;margin:12px 0 14px;max-width:36ch}\n#fp .fp-pn-mais span{display:inline-flex;align-items:center;gap:7px;font:600 15px\/1 var(--body);color:#7BEDE7}\n#fp .fp-pn-mais svg{width:16px;height:16px;transition:transform .2s var(--ease-out)}\n#fp .fp-pn:hover .fp-pn-mais svg{transform:translateX(4px)}\n#fp .fp-pn:focus-visible{outline:3px solid #7BEDE7;outline-offset:3px}\n@media (max-width:860px){\n  #fp .fp-pns{flex-direction:column;height:auto}\n  #fp .fp-pn{flex:none;height:240px}\n  #fp .fp-pn-mais{grid-template-rows:1fr;opacity:1}\n  #fp .fp-pn-mais p{margin:8px 0 10px}\n}\n\n\/* ---- LOCALIZADOR: descubra qual modelo \u00e9 o seu ---- *\/\n#fp .fp-qual-head{max-width:720px}\n#fp .fp-qual-head .fp-lead{margin-top:16px}\n#fp .fp-q-passos{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,4fr);gap:clamp(20px,3vw,40px);margin-top:clamp(30px,3.5vw,48px)}\n#fp .fp-q-grupo{border:0;margin:0;padding:0;min-width:0}\n#fp .fp-q-grupo legend{display:flex;align-items:center;gap:12px;font:600 clamp(18px,1.5vw,21px)\/1.25 var(--body);color:var(--foam);margin-bottom:16px;padding:0}\n#fp .fp-q-grupo legend i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--glow);color:var(--glow-ink);font:700 15px\/1 var(--body);font-style:normal}\n#fp .fp-q-ops{display:grid;gap:10px}\n#fp .fp-q-ops--onde{grid-template-columns:minmax(0,1fr)}\n#fp .fp-q-ops--pess{grid-template-columns:repeat(2,minmax(0,1fr))}\n#fp .fp-q-op{display:flex;align-items:center;gap:16px;text-align:left;width:100%;margin:0;padding:18px 20px;border-radius:var(--r-card);cursor:pointer;\n  background:var(--water-2);border:1.5px solid var(--line-2);color:var(--foam);font:inherit;\n  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .16s var(--ease-out)}\n#fp .fp-q-op:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){#fp .fp-q-op:hover{border-color:var(--foam)}}\n#fp .fp-q-op svg{flex:none;width:30px;height:30px;color:var(--glow)}\n#fp .fp-q-op b{display:block;font:600 17px\/1.25 var(--body)}\n#fp .fp-q-op small{display:block;margin-top:3px;font-size:14.5px;color:var(--mist);line-height:1.35}\n#fp .fp-q-op[aria-pressed=\"true\"]{background:var(--glow);border-color:var(--glow);color:var(--glow-ink)}\n#fp .fp-q-op[aria-pressed=\"true\"] svg,#fp .fp-q-op[aria-pressed=\"true\"] small{color:var(--glow-ink)}\n#fp .fp-q-op[aria-pressed=\"true\"] small{opacity:.8}\n#fp .fp-q-res{margin-top:clamp(36px,4vw,56px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line)}\n#fp .fp-q-res-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:20px;flex-wrap:wrap}\n#fp .fp-q-res-top b{display:block;font:600 clamp(24px,2.4vw,34px)\/1.1 var(--display);color:var(--foam);letter-spacing:-.02em}\n#fp .fp-q-res-top p{margin-top:8px;color:var(--mist);font-size:15.5px}\n#fp .fp-q-res-top a{color:var(--glow);font-weight:600;font-size:16px;text-decoration:none;display:inline-flex;gap:8px;align-items:center;padding:12px 18px;border:1px solid var(--line-2);border-radius:999px}\n#fp .fp-q-res-top a svg{width:18px;height:18px}\n#fp .fp-q-grade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}\n#fp .fp-q-grade.anim .fp-fr-card{animation:fpQIn .5s var(--ease-out) both;animation-delay:calc(var(--k) * 45ms)}\n@keyframes fpQIn{from{opacity:0;transform:translateY(12px)}}\n#fp .fp-fr-card{display:flex;flex-direction:column;text-align:left;padding:0;margin:0;background:var(--water-2);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;cursor:pointer;color:inherit;font:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s var(--ease-out);width:100%}\n@media (hover:hover) and (pointer:fine){#fp .fp-fr-card:hover{border-color:var(--glow);transform:translateY(-3px)}}\n#fp .fp-fr-img{display:block;aspect-ratio:4\/3;overflow:hidden;background:#0a2a30}\n#fp .fp-fr-img img{width:100%;height:100%;object-fit:cover}\n#fp .fp-fr-t{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px;flex:1}\n#fp .fp-fr-t b{font:600 17px\/1.25 var(--body);color:var(--foam)}\n#fp .fp-fr-t small{color:var(--mist);font-size:14px}\n#fp .fp-fr-t em{margin-top:auto;padding-top:10px;font:600 14.5px\/1.2 var(--body);font-style:normal;color:var(--glow)}\n#fp .fp-q-nota{margin-top:18px;color:var(--mist);font-size:15px}\n#fp .fp-q-nota a{color:var(--glow)}\n@media (max-width:980px){#fp .fp-q-grade{grid-template-columns:repeat(3,minmax(0,1fr))}}\n@media (max-width:860px){\n  #fp .fp-q-passos{grid-template-columns:minmax(0,1fr)}\n  #fp .fp-q-grade{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #fp .fp-q-op{padding:15px 16px}\n}\n@media (max-width:420px){#fp .fp-q-ops--pess .fp-q-op{flex-direction:column;align-items:flex-start;gap:8px}}\n@media (prefers-reduced-motion:reduce){#fp .fp-q-grade.anim .fp-fr-card{animation:none}}\n\n\/* ---- AL\u00c9M DAS BANHEIRAS: bento ---- *\/\n#fp .fp-alem-head{max-width:700px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-alem-head .fp-lead{margin-top:16px}\n#fp .fp-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}\n#fp .fp-bc{position:relative;border-radius:var(--r-media);overflow:hidden;isolation:isolate;min-height:290px;display:flex;color:#EEF5F4}\n#fp .fp-bc--a{grid-column:1 \/ 8;grid-row:1 \/ 3;min-height:600px}\n#fp .fp-bc--b,#fp .fp-bc--c{grid-column:8 \/ 13}\n#fp .fp-bc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}\n#fp .fp-bc::after{content:\"\";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,22,27,0) 30%,rgba(3,22,27,.88) 100%)}\n#fp .fp-bc-txt{margin-top:auto;padding:26px}\n#fp .fp-bc h3{color:#fff;font-size:clamp(21px,2vw,30px)}\n#fp .fp-bc p{color:rgba(238,245,244,.88);font-size:15.5px;margin-top:8px;max-width:42ch}\n#fp .fp-alem .fp-ctas{margin-top:26px}\n@media (max-width:860px){\n  #fp .fp-bc--a,#fp .fp-bc--b,#fp .fp-bc--c{grid-column:1 \/ -1;grid-row:auto;min-height:300px}\n}\n\n\/* ---- FECHO: manifesto + a\u00e7\u00f5es ---- *\/\n#fp .fp-fecho .fp-wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:end}\n#fp .fp-fecho blockquote{margin:0;font:600 clamp(30px,3.6vw,54px)\/1.08 var(--display);letter-spacing:-.03em;color:var(--foam);text-wrap:balance}\n#fp .fp-fecho .fp-lead{margin-top:20px}\n#fp .fp-acoes{display:grid;gap:10px}\n#fp .fp-acao{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--r-card);border:1px solid var(--line-2);text-decoration:none;color:var(--foam);transition:border-color .2s ease,background-color .2s ease,transform .16s var(--ease-out)}\n#fp .fp-acao:active{transform:scale(.985)}\n@media (hover:hover) and (pointer:fine){#fp .fp-acao:hover{border-color:var(--foam);background:rgba(238,245,244,.04)}}\n#fp .fp-acao--glow{background:var(--glow);color:var(--glow-ink);border-color:transparent}\n@media (hover:hover) and (pointer:fine){#fp .fp-acao--glow:hover{background:var(--glow-2);border-color:transparent}}\n#fp .fp-acao > svg{width:22px;height:22px;flex:none}\n#fp .fp-acao b{display:block;font:600 16px\/1.25 var(--body)}\n#fp .fp-acao small{display:block;font-size:14px;opacity:.8;margin-top:2px}\n#fp .fp-acao .fp-seta{margin-left:auto;width:18px;height:18px;flex:none}\n#fp .fp-acao .fp-seta svg{width:18px;height:18px}\n@media (max-width:860px){#fp .fp-fecho .fp-wrap{grid-template-columns:minmax(0,1fr)}}\n\n\/* ---- SOBRE: como uma pe\u00e7a nasce ---- *\/\n#fp .fp-proc-head{max-width:660px;margin-bottom:clamp(28px,3vw,44px)}\n#fp .fp-proc-head .fp-lead{margin-top:16px}\n#fp .fp-proc{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}\n#fp .fp-proc li{scroll-snap-align:start;display:flex;flex-direction:column;gap:12px}\n#fp .fp-proc figure{margin:0;aspect-ratio:1;border-radius:var(--r-card);overflow:hidden;background:#0a2a30}\n#fp .fp-proc img{width:100%;height:100%;object-fit:cover}\n#fp .fp-proc h3{font-size:19px}\n#fp .fp-proc p{color:var(--mist);font-size:15.5px;line-height:1.5}\n@media (max-width:760px){#fp .fp-proc{grid-auto-columns:78%}}\n<\/style>\n\n<div id=\"fp\" lang=\"pt-BR\">\n\n  <header class=\"fp-nav\">\n    <div class=\"fp-wrap\">\n      <a class=\"fp-logo\" href=\"\/web\/\" aria-label=\"Faiberplas, in\u00edcio\"><img loading=\"lazy\" decoding=\"async\" src=\"\/web\/wp-content\/uploads\/2026\/09\/logo-horizontal.png\" alt=\"Faiberplas\" width=\"668\" height=\"124\"><\/a>\n      <button type=\"button\" class=\"fp-menu-bt\" aria-expanded=\"false\" aria-controls=\"fp-menu\" aria-label=\"Abrir menu\"><svg class=\"fp-ic-menu\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"\/><\/svg><svg class=\"fp-ic-x\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg><\/button>\n      <nav id=\"fp-menu\" aria-label=\"P\u00e1ginas\"><ul><li><a href=\"\/web\/spas-2\" aria-current=\"page\">Spas<\/a><\/li><li><a href=\"\/web\/banheiras\">Banheiras<\/a><\/li><li><a href=\"\/web\/free-standing\">Free Standing<\/a><\/li><li><a href=\"\/web\/acessorios\">Acess\u00f3rios<\/a><\/li><li><a href=\"\/web\/sobre\">Sobre<\/a><\/li><li><a href=\"\/web\/contact\">Contato<\/a><\/li><\/ul><\/nav>\n      <a class=\"fp-bt fp-bt--glow fp-bt--sm\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Vim%20pelo%20site%20e%20quero%20um%20or%C3%A7amento.\" target=\"_blank\" rel=\"noopener\" data-wa=\"nav\">Pedir or\u00e7amento<\/a>\n    <\/div>\n  <\/header>\n\n  <main>\n  <section class=\"fp-hero fp-hero--sub\" id=\"fp-topo\" aria-labelledby=\"fp-h1\">\n    <div class=\"fp-wrap\">\n      <p class=\"fp-crumb\"><a href=\"\/web\/\">Home<\/a> \u00b7 Spas<\/p>\n      <h1 id=\"fp-h1\" class=\"fp-in\" style=\"--i:0\">Spas Faiberplas<\/h1>\n      <p class=\"fp-lead fp-in\" style=\"--i:1\">Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes.<\/p>\n    <\/div>\n  <\/section>\n\n  <section id=\"fp-modelos\" class=\"t-claro t-perola\" aria-labelledby=\"fp-h-mod\">\n    <div class=\"fp-wrap\">\n      <div class=\"fp-ferramentas\">\n        <div class=\"fp-filtro\" role=\"group\" aria-label=\"Filtrar por acabamento\"><button type=\"button\" data-f=\"todos\" aria-pressed=\"true\">Todos <small class=\"fp-num\">11<\/small><\/button><button type=\"button\" data-f=\"gelcoat\" aria-pressed=\"false\">Gel coat <small class=\"fp-num\">9<\/small><\/button><button type=\"button\" data-f=\"acrilico\" aria-pressed=\"false\">Acr\u00edlico <small class=\"fp-num\">2<\/small><\/button><\/div>\n        <form class=\"fp-cabe\" onsubmit=\"return false\">\n          <fieldset>\n            <legend>Cabe no meu espa\u00e7o?<\/legend>\n            <div class=\"fp-campo\"><label for=\"fp-ca\">Comprimento<\/label><div class=\"fp-un\"><input id=\"fp-ca\" type=\"number\" inputmode=\"numeric\" min=\"50\" max=\"1000\" step=\"1\" placeholder=\"200\"><\/div><\/div>\n            <span class=\"fp-x\" aria-hidden=\"true\">\u00d7<\/span>\n            <div class=\"fp-campo\"><label for=\"fp-cb\">Largura<\/label><div class=\"fp-un\"><input id=\"fp-cb\" type=\"number\" inputmode=\"numeric\" min=\"50\" max=\"1000\" step=\"1\" placeholder=\"150\"><\/div><\/div>\n          <\/fieldset>\n          <output for=\"fp-ca fp-cb\" aria-live=\"polite\"><\/output>\n          <button type=\"button\" class=\"fp-limpar\" hidden>Limpar<\/button>\n        <\/form>\n      <\/div>\n      <div class=\"fp-grade\">\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"240\" data-w=\"240\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-grand-floripa.webp\" alt=\"Spa Grand Floripa, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:240;--w:240\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-grand-floripa.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>240 cm<\/span><\/span><span class=\"fp-cota-y\"><span>240<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Grand Floripa<span class=\"fp-cod\">c\u00f3d. 681<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>240 \u00d7 240<\/b> cm<\/span><span><b>12<\/b> lugares<\/span><span><b>2.553<\/b> L<\/span><span><b>15<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"grand-floripa\" aria-label=\"Ver ficha: Spa Grand Floripa\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"403\" data-w=\"207\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-caribe.webp\" alt=\"Spa Piscina Caribe, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:403;--w:207\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-caribe.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>207 cm<\/span><\/span><span class=\"fp-cota-y\"><span>403<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Piscina Caribe<span class=\"fp-cod\">c\u00f3d. 1211<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>403 \u00d7 207<\/b> cm<\/span><span><b>10<\/b> lugares<\/span><span><b>2.265<\/b> L<\/span><span><b>6<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"caribe\" aria-label=\"Ver ficha: Spa Piscina Caribe\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"220\" data-w=\"220\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-acapulco.webp\" alt=\"Spa Acapulco, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:220;--w:220\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-acapulco.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>220 cm<\/span><\/span><span class=\"fp-cota-y\"><span>220<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Acapulco<span class=\"fp-cod\">c\u00f3d. 1217<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>220 \u00d7 220<\/b> cm<\/span><span><b>6<\/b> lugares<\/span><span><b>1.170<\/b> L<\/span><span><b>9<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"acapulco\" aria-label=\"Ver ficha: Spa Acapulco\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"220\" data-w=\"220\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-mediterraneo.webp\" alt=\"Spa Mediterr\u00e2neo, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:220;--w:220\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-mediterraneo.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>220 cm<\/span><\/span><span class=\"fp-cota-y\"><span>220<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Mediterr\u00e2neo<span class=\"fp-cod\">c\u00f3d. 1214<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>220 \u00d7 220<\/b> cm<\/span><span><b>6<\/b> lugares<\/span><span><b>1.170<\/b> L<\/span><span><b>8<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"mediterraneo\" aria-label=\"Ver ficha: Spa Mediterr\u00e2neo\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"200\" data-w=\"200\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-navagio.webp\" alt=\"Spa Navagio, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:200;--w:200\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-navagio.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>200 cm<\/span><\/span><span class=\"fp-cota-y\"><span>200<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Navagio<span class=\"fp-cod\">c\u00f3d. 1223<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>200 \u00d7 200<\/b> cm<\/span><span><b>5<\/b> lugares<\/span><span><b>1.105<\/b> L<\/span><span><b>8<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"navagio\" aria-label=\"Ver ficha: Spa Navagio\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"185\" data-w=\"185\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-atlantico.webp\" alt=\"Spa Atl\u00e2ntico, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:185;--w:185\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-atlantico.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>185 cm<\/span><\/span><span class=\"fp-cota-y\"><span>185<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Atl\u00e2ntico<span class=\"fp-cod\">c\u00f3d. 1220<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>185 \u00d7 185<\/b> cm<\/span><span><b>4<\/b> lugares<\/span><span><b>795<\/b> L<\/span><span><b>6<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"atlantico\" aria-label=\"Ver ficha: Spa Atl\u00e2ntico\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"186\" data-w=\"186\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-maragogi.webp\" alt=\"Spa Maragogi, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:186;--w:186\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-maragogi.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>186 cm<\/span><\/span><span class=\"fp-cota-y\"><span>186<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Maragogi<span class=\"fp-cod\">c\u00f3d. 1225<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>186 \u00d7 186<\/b> cm<\/span><span><b>4<\/b> lugares<\/span><span><b>800<\/b> L<\/span><span><b>8<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"maragogi\" aria-label=\"Ver ficha: Spa Maragogi\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"165\" data-w=\"165\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/10\/amb2-floripa.webp\" alt=\"Spa Floripa, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:165;--w:165\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-floripa.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>165 cm<\/span><\/span><span class=\"fp-cota-y\"><span>165<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Floripa<span class=\"fp-cod\">c\u00f3d. 1228<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>165 \u00d7 165<\/b> cm<\/span><span><b>4<\/b> lugares<\/span><span><b>700<\/b> L<\/span><span><b>6<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"floripa\" aria-label=\"Ver ficha: Spa Floripa\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"gelcoat\" data-l=\"180\" data-w=\"140\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-laguna.webp\" alt=\"Spa Laguna, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:180;--w:140\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-laguna.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>140 cm<\/span><\/span><span class=\"fp-cota-y\"><span>180<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Laguna<span class=\"fp-cod\">c\u00f3d. 1231<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>180 \u00d7 140<\/b> cm<\/span><span><b>3<\/b> lugares<\/span><span><b>530<\/b> L<\/span><span><b>6<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"laguna\" aria-label=\"Ver ficha: Spa Laguna\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"acrilico\" data-l=\"200\" data-w=\"200\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/10\/amb2-gran-laguna.webp\" alt=\"Spa Gran Laguna, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:200;--w:200\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-gran-laguna.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>200 cm<\/span><\/span><span class=\"fp-cota-y\"><span>200<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Gran Laguna<span class=\"fp-cod\">c\u00f3d. 1027<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>200 \u00d7 200<\/b> cm<\/span><span><b>4<\/b> lugares<\/span><span><b>1.050<\/b> L<\/span><span><b>8<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"gran-laguna\" aria-label=\"Ver ficha: Spa Gran Laguna\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n        <article class=\"fp-card sd-card\" data-cat=\"acrilico\" data-l=\"180\" data-w=\"180\">\n          <div class=\"fp-palco\">\n            <img class=\"fp-capa\" src=\"\/web\/wp-content\/uploads\/2026\/09\/amb-oceanos.webp\" alt=\"Spa Oceanos, imagem ambientada\" loading=\"lazy\" decoding=\"async\">\n            <div class=\"fp-escala\" aria-hidden=\"true\"><div class=\"fp-tub\" style=\"--l:180;--w:180\">\n            <img src=\"\/web\/wp-content\/uploads\/2026\/10\/topv-oceanos.webp\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <span class=\"fp-cota-x\"><span>180 cm<\/span><\/span><span class=\"fp-cota-y\"><span>180<\/span><\/span>\n          <\/div><\/div><\/div>\n          <div class=\"fp-card-info\">\n            <h3>Spa Oceanos<span class=\"fp-cod\">c\u00f3d. 938<\/span><\/h3>\n            <p class=\"fp-dados fp-num\"><span><b>180 \u00d7 180<\/b> cm<\/span><span><b>4<\/b> lugares<\/span><span><b>800<\/b> L<\/span><span><b>6<\/b> jatos<\/span><\/p>\n            <button type=\"button\" class=\"fp-ver\" data-modelo=\"oceanos\" aria-label=\"Ver ficha: Spa Oceanos\">Ver ficha<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/button>\n          <\/div>\n        <\/article>\n      <\/div>\n      <p class=\"fp-vazio\" role=\"status\">Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.<\/p>\n      <p class=\"fp-mod-nota\">Medidas em cent\u00edmetros (comprimento \u00d7 largura). No computador, passe o mouse na foto para ver a vista de cima. Altura, litragem e peso est\u00e3o na ficha de cada modelo.<\/p>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-linhas t-preto\" id=\"fp-linhas\" aria-labelledby=\"fp-h-lin\">\n    <div class=\"fp-wrap\">\n      <div>\n        <h2 id=\"fp-h-lin\" class=\"sd-rise\">Tr\u00eas linhas. O que muda \u00e9 o que vem instalado dentro.<\/h2>\n        <p class=\"fp-lead\">A linha n\u00e3o muda o tamanho nem o formato do modelo que voc\u00ea escolheu. Muda o equipamento que sai de f\u00e1brica dentro dele.<\/p>\n        <div class=\"fp-seg\" role=\"group\" aria-label=\"Escolher linha\">\n          <button type=\"button\" data-lin=\"1\" aria-pressed=\"false\"><b>Ess\u00eancia<\/b><span>O fundamental, sem excessos<\/span><i>Jatos<\/i><\/button>\n          <button type=\"button\" data-lin=\"2\" aria-pressed=\"true\"><b>Harmonia<\/b><span>\u00c1gua quente e luz para desacelerar<\/span><i>+ Aquecedor<\/i><\/button>\n          <button type=\"button\" data-lin=\"3\" aria-pressed=\"false\"><b>Plenitude<\/b><span>A experi\u00eancia completa<\/span><i>+ Mini jatos<\/i><\/button>\n        <\/div>\n      <\/div>\n      <div>\n        <div class=\"fp-tanque\" style=\"--nivel:.58\" aria-live=\"polite\">\n          <div class=\"fp-nivel\" aria-hidden=\"true\"><\/div>\n          <div class=\"fp-tanque-topo\"><span>Linha escolhida<\/span><b data-nome>Harmonia<\/b><\/div>\n          <ul class=\"fp-itens\">\n            <li data-n=\"1\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Sistema de hidromassagem com jatos<\/span><small>Ess\u00eancia<\/small><\/li>\n            <li data-n=\"1\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Acabamento em gel coat ou acr\u00edlico<\/span><small>Ess\u00eancia<\/small><\/li>\n            <li data-n=\"2\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Aquecedor, \u00e1gua na temperatura certa<\/span><small>Harmonia<\/small><\/li>\n            <li data-n=\"2\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Pontos de cromoterapia<\/span><small>Harmonia<\/small><\/li>\n            <li data-n=\"2\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Apoio de cabe\u00e7a <em style=\"font-style:normal;color:var(--faint)\">(conforme o modelo)<\/em><\/span><small>Harmonia<\/small><\/li>\n            <li data-n=\"3\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Mini jatos em inox<\/span><small>Plenitude<\/small><\/li>\n            <li data-n=\"3\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Painel digital Wi-Fi <em style=\"font-style:normal;color:var(--faint)\">(conforme o modelo)<\/em><\/span><small>Plenitude<\/small><\/li>\n            <li data-n=\"3\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M4.5 12.5l5 5 10-11\"\/><\/svg><span>Filtragem e mais pontos de luz <em style=\"font-style:normal;color:var(--faint)\">(conforme o modelo)<\/em><\/span><small>Plenitude<\/small><\/li>\n          <\/ul>\n        <\/div>\n        <p class=\"fp-opc\"><b>Opcionais em qualquer linha:<\/b> travesseiro, cascata em inox, ozonizador, capa de prote\u00e7\u00e3o, blower, aquecedor el\u00e9trico digital, filtragem de cartucho ou areia e kit de manuten\u00e7\u00e3o.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-cta fp-barra-fim t-claro t-aqua\" aria-labelledby=\"fp-h-cta\">\n    <div class=\"fp-wrap\">\n      <h2 id=\"fp-h-cta\" class=\"sd-rise\">Pronto para o seu or\u00e7amento?<\/h2>\n      <p class=\"fp-lead\">Diga o modelo e o espa\u00e7o que voc\u00ea tem. A f\u00e1brica responde pelo WhatsApp.<\/p>\n      <div class=\"fp-ctas\">\n        <a class=\"fp-bt fp-bt--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Tenho%20interesse%20em%20um%20spa%20Faiberplas.%20Pode%20me%20ajudar%3F\" target=\"_blank\" rel=\"noopener\" data-wa=\"cta\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg>Pedir or\u00e7amento<\/a>\n        <a class=\"fp-bt fp-bt--line\" href=\"\/web\/contact\">Ver contatos<\/a>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <section class=\"fp-faq t-claro t-perola\" id=\"fp-duvidas\" aria-labelledby=\"fp-h-faq\">\n    <div class=\"fp-wrap\">\n      <h2 id=\"fp-h-faq\" class=\"sd-rise\">D\u00favidas frequentes<\/h2>\n      <div>\n        <details><summary>Qual a diferen\u00e7a entre banheira de hidromassagem e spa?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 5v14M5 12h14\"\/><\/svg><\/summary><p>A banheira \u00e9 feita para o banho, geralmente dentro de casa, com 1 ou 2 lugares e volume menor. O spa \u00e9 feito para ficar mais tempo na \u00e1gua, costuma ir para a \u00e1rea externa e tem mais lugares, mais litros e, normalmente, aquecedor e filtragem.<\/p><\/details>\n        <details><summary>Voc\u00eas entregam e instalam?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 5v14M5 12h14\"\/><\/svg><\/summary><p>Sim. A entrega e a instala\u00e7\u00e3o s\u00e3o feitas pela nossa pr\u00f3pria equipe em toda a Grande Florian\u00f3polis. Para outras regi\u00f5es, confirmamos as condi\u00e7\u00f5es no atendimento.<\/p><\/details>\n        <details><summary>A \u00e1gua esquenta? Quanto tempo leva?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 5v14M5 12h14\"\/><\/svg><\/summary><p>Nas linhas Harmonia e Plenitude o aquecedor vem inclu\u00eddo. O tempo depende da litragem do modelo e da temperatura inicial da \u00e1gua: quanto mais litros, mais tempo. Calculamos isso com voc\u00ea antes de fechar.<\/p><\/details>\n        <details><summary>Voc\u00eas fazem projeto sob medida?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 5v14M5 12h14\"\/><\/svg><\/summary><p>Fazemos. Al\u00e9m dos modelos do cat\u00e1logo, produzimos banheiras e piscinas de imers\u00e3o sob medida para clubes, hot\u00e9is, academias, cl\u00ednicas e resid\u00eancias, do molde \u00e0 instala\u00e7\u00e3o.<\/p><\/details>\n        <details><summary>E a manuten\u00e7\u00e3o, quem faz?<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 5v14M5 12h14\"\/><\/svg><\/summary><p>A pr\u00f3pria f\u00e1brica. Nossa equipe t\u00e9cnica faz manuten\u00e7\u00e3o preventiva, higieniza\u00e7\u00e3o, troca de pe\u00e7as e conserto, inclusive em produtos de outros fabricantes.<\/p><\/details>\n      <\/div>\n    <\/div>\n  <\/section>\n  <\/main>\n\n  <footer class=\"fp-rodape\">\n    <div class=\"fp-wrap\">\n      <div><img decoding=\"async\" src=\"\/web\/wp-content\/uploads\/2026\/09\/logo-faiberplas.png\" alt=\"Faiberplas\" width=\"446\" height=\"308\" loading=\"lazy\"><\/div>\n      <div><h3>F\u00e1brica e showroom<\/h3><p>Av. Caetano Silveira, 222<br>Jardim Eldorado, Palho\u00e7a, Santa Catarina<br>CEP 88133-520<\/p><\/div>\n      <div><h3>Atendimento<\/h3><p>Segunda a sexta, das 8h \u00e0s 18h<br>Florian\u00f3polis, Palho\u00e7a, S\u00e3o Jos\u00e9, Bigua\u00e7u e regi\u00e3o<\/p>\n        <p style=\"margin-top:8px\"><a href=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2026\/09\/catalogo-faiberplas.pdf.pdf\" target=\"_blank\" rel=\"noopener\">Baixar cat\u00e1logo (PDF)<\/a><br><a href=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/07\/FB015-23-MANUAL-USUARIO_compressed.pdf\" target=\"_blank\" rel=\"noopener\">Baixar manual (PDF)<\/a><\/p><\/div>\n      <div><h3>Contato<\/h3><ul>\n        <li><a href=\"https:\/\/wa.me\/5548991174548\" target=\"_blank\" rel=\"noopener\" data-wa=\"rodape\">WhatsApp (48) 99117-4548<\/a><\/li>\n        <li><a href=\"tel:+554832423337\">Telefone (48) 3242-3337<\/a><\/li>\n        <li><a href=\"https:\/\/www.instagram.com\/faiberplas\/\" target=\"_blank\" rel=\"noopener\">Instagram @faiberplas<\/a><\/li><\/ul><\/div>\n      <p class=\"fp-fim\">Faiberplas, banheiras de hidromassagem e spas. F\u00e1brica pr\u00f3pria em Palho\u00e7a, desde 1985. Imagens ambientadas do cat\u00e1logo s\u00e3o ilustrativas.<\/p>\n    <\/div>\n  <\/footer>\n  <div class=\"fp-barra\"><a class=\"fp-bt fp-bt--glow\" href=\"https:\/\/wa.me\/5548991174548?text=Ol%C3%A1%21%20Vim%20pelo%20site%20e%20quero%20um%20or%C3%A7amento.\" target=\"_blank\" rel=\"noopener\" data-wa=\"barra\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg>Pedir or\u00e7amento<\/a><\/div>\n  <dialog class=\"fp-ficha\" aria-labelledby=\"fp-ficha-nome\">\n    <button type=\"button\" class=\"fp-fechar\" aria-label=\"Fechar ficha\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg><\/button>\n    <div class=\"fp-ficha-in\">\n      <div class=\"fp-ficha-media\">\n        <div class=\"fp-view\"><img decoding=\"async\" alt=\"\" data-img src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"><small data-legenda><\/small><\/div>\n        <div class=\"fp-abas\" role=\"tablist\" aria-label=\"Imagens do modelo\">\n          <button type=\"button\" role=\"tab\" data-v=\"amb\" aria-selected=\"true\">Ambientada<\/button>\n          <button type=\"button\" role=\"tab\" data-v=\"top\" aria-selected=\"false\">Vista de cima<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"fp-ficha-txt\">\n        <div><h3 id=\"fp-ficha-nome\"><\/h3><p class=\"fp-sub\" data-sub><\/p><\/div>\n        <dl class=\"fp-specs\" data-specs><\/dl>\n        <p class=\"fp-ficha-nota\" data-nota hidden><\/p>\n        <div>\n          <div class=\"fp-lin-tabs\" role=\"tablist\" aria-label=\"Equipamento por linha\">\n            <button type=\"button\" role=\"tab\" data-l=\"Ess\u00eancia\" aria-selected=\"false\">Ess\u00eancia<\/button>\n            <button type=\"button\" role=\"tab\" data-l=\"Harmonia\" aria-selected=\"true\">Harmonia<\/button>\n            <button type=\"button\" role=\"tab\" data-l=\"Plenitude\" aria-selected=\"false\">Plenitude<\/button>\n          <\/div>\n          <ul class=\"fp-lin-lista\" data-lista><\/ul>\n        <\/div>\n        <div class=\"fp-ficha-ctas\">\n          <a class=\"fp-bt fp-bt--glow\" data-wa-ficha href=\"#\" target=\"_blank\" rel=\"noopener\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.5 11.6a8.4 8.4 0 0 1-12.3 7.5L3.5 20.5l1.4-4.5A8.4 8.4 0 1 1 20.5 11.6z\"\/><path d=\"M9 8.6c.2 2.9 3 5.9 6.2 6.4l1.1-1.4-2-1-1 .9c-1-.4-2.1-1.5-2.5-2.5l.9-1-1-2z\"\/><\/svg>Or\u00e7amento deste modelo<\/a>\n          <a class=\"fp-bt fp-bt--line\" href=\"\/web\/contact\">Falar com a f\u00e1brica<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/dialog>\n<\/div>\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"HomeAndConstructionBusiness\", \"name\": \"Faiberplas\", \"description\": \"F\u00e1brica de banheiras de hidromassagem, spas e banheiras de imers\u00e3o em Palho\u00e7a, SC, desde 1985.\", \"foundingDate\": \"1985\", \"telephone\": \"+55 48 99117-4548\", \"address\": {\"@type\": \"PostalAddress\", \"streetAddress\": \"Av. Caetano Silveira, 222\", \"addressLocality\": \"Palho\u00e7a\", \"addressRegion\": \"SC\", \"postalCode\": \"88133-520\", \"addressCountry\": \"BR\"}, \"openingHours\": \"Mo-Fr 08:00-18:00\", \"sameAs\": [\"https:\/\/www.instagram.com\/faiberplas\/\"], \"areaServed\": [\"Florian\u00f3polis\", \"Palho\u00e7a\", \"S\u00e3o Jos\u00e9\", \"Bigua\u00e7u\"]}<\/script>\n<script>\n\/* C\u00f3digo da p\u00e1gina em base64: o WordPress altera caracteres dentro de scripts. *\/\n(function(){var b=\"CihmdW5jdGlvbigpewogIHZhciBNPSIvd2ViL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA5LyIsIE0xMD0iL3dlYi93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8xMC8iLCBMMTA9WyJhbWItZmxvcmlwYS53ZWJwIiwgImFtYi1mcy1jcmV0YS53ZWJwIiwgImFtYi1mcy1kdW9tby53ZWJwIiwgImFtYi1mcy1zdXByZW1hLndlYnAiLCAiYW1iMi1lYXN5LWEud2VicCIsICJhbWIyLWVhc3ktYi53ZWJwIiwgImFtYjItZmxvcmlwYS53ZWJwIiwgImFtYjItZ3Jhbi1sYWd1bmEud2VicCIsICJhbWIyLWliaXphLndlYnAiLCAiYW1iMi1tYWxkaXZhcy53ZWJwIiwgImFtYjItbXlrb25vcy53ZWJwIiwgImNhdC1hY2Vzc29yaW9zLndlYnAiLCAiaGVyby1hZ3VhLmpwZyIsICJoZXJvLWFndWEubXA0IiwgImhlcm8tZmFicmljYS5qcGciLCAiaGVyby1mYWJyaWNhLm1wNCIsICJoZXJvLXNob3dyb29tLmpwZyIsICJoZXJvLXNob3dyb29tLm1wNCIsICJodi1mYWJyaWNhLmpwZyIsICJodi1mYWJyaWNhLm1wNCIsICJodi1nYWxlcmlhLmpwZyIsICJodi1nYWxlcmlhLm1wNCIsICJodi1zaG93cm9vbS5qcGciLCAiaHYtc2hvd3Jvb20ubXA0IiwgInByb2MtZXN0b3F1ZS53ZWJwIiwgInByb2MtbGFtaW5hY2FvLndlYnAiLCAicHJvYy1waW50dXJhLndlYnAiLCAicHJvYy10ZXN0ZS53ZWJwIiwgInN0aWxsLWZzLWNyZXRhLndlYnAiLCAic3RpbGwtZnMtZHVvbW8ud2VicCIsICJzdGlsbC1mcy1zdXByZW1hLndlYnAiLCAidG9wdi1hY2FwdWxjby53ZWJwIiwgInRvcHYtYW5ncmEud2VicCIsICJ0b3B2LWFydWJhLndlYnAiLCAidG9wdi1hdGxhbnRpY28ud2VicCIsICJ0b3B2LWJpYXJyaXR6LndlYnAiLCAidG9wdi1jYW5jdW4ud2VicCIsICJ0b3B2LWNhcHJpLndlYnAiLCAidG9wdi1jYXJpYmUud2VicCIsICJ0b3B2LWVhc3ktYS53ZWJwIiwgInRvcHYtZWFzeS1iLndlYnAiLCAidG9wdi1mbG9yaXBhLndlYnAiLCAidG9wdi1ncmFuLWxhZ3VuYS53ZWJwIiwgInRvcHYtZ3JhbmQtZmxvcmlwYS53ZWJwIiwgInRvcHYtaWJpemEud2VicCIsICJ0b3B2LWp1cmVyZS0xMzMxLndlYnAiLCAidG9wdi1qdXJlcmUtODg4LndlYnAiLCAidG9wdi1sYWd1bmEud2VicCIsICJ0b3B2LWxlYmxvbi53ZWJwIiwgInRvcHYtbWFsZGl2YXMud2VicCIsICJ0b3B2LW1hcmFnb2dpLndlYnAiLCAidG9wdi1tZWRpdGVycmFuZW8ud2VicCIsICJ0b3B2LW15a29ub3Mud2VicCIsICJ0b3B2LW5hdmFnaW8ud2VicCIsICJ0b3B2LW9jZWFub3Mud2VicCIsICJ0b3B2LXJpdmllcmEud2VicCIsICJ0b3B2LXViYXR1YmEud2VicCIsICJ0b3B2LXZlbmljZS53ZWJwIl0sIFdBPSI1NTQ4OTkxMTc0NTQ4IjsKICBmdW5jdGlvbiBVKGYpeyByZXR1cm4gKEwxMC5pbmRleE9mKGYpPi0xP00xMDpNKStmOyB9CiAgdmFyIERBRE9TPXsiZ3JhbmQtZmxvcmlwYSI6IHsic2x1ZyI6ICJncmFuZC1mbG9yaXBhIiwgIm5vbWUiOiAiU3BhIEdyYW5kIEZsb3JpcGEiLCAiY29kIjogIjY4MSIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMjQwLCAidyI6IDI0MCwgImgiOiA4NSwgImxpdHJvcyI6IDI1NTMsICJrZyI6IDE1NywgImx1Z2FyZXMiOiAxMiwgImphdG9zIjogIjE1IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItZ3JhbmQtZmxvcmlwYS53ZWJwIiwgInRvcCI6ICJ0b3B2LWdyYW5kLWZsb3JpcGEud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiMTUgamF0b3MiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXSwgIkhhcm1vbmlhIjogWyIxNSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlNpc3RlbWEgZGUgZmlsdHJhZ2VtIGRlIGFyZWlhIl0sICJQbGVuaXR1ZGUiOiBbIjE1IGphdG9zIiwgIjIwIG1pbmkgamF0b3MiLCAiNCBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdfX0sICJjYXJpYmUiOiB7InNsdWciOiAiY2FyaWJlIiwgIm5vbWUiOiAiU3BhIFBpc2NpbmEgQ2FyaWJlIiwgImNvZCI6ICIxMjExIiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiA0MDMsICJ3IjogMjA3LCAiaCI6IDg1LCAibGl0cm9zIjogMjI2NSwgImtnIjogMTgwLCAibHVnYXJlcyI6IDEwLCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLWNhcmliZS53ZWJwIiwgInRvcCI6ICJ0b3B2LWNhcmliZS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIiwgIjQgbWluaSBqYXRvcyIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjggbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSIsICJQYWluZWwgd2lmaSBzZW5zZSA1Il0sICJQbGVuaXR1ZGUiOiBbIjYgamF0b3MiLCAiMTYgbWluaSBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIjIgYXBvaW8gZGUgY2FiZcOnYSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSIsICJQYWluZWwgd2lmaSBzZW5zZSA1Il19fSwgImFjYXB1bGNvIjogeyJzbHVnIjogImFjYXB1bGNvIiwgIm5vbWUiOiAiU3BhIEFjYXB1bGNvIiwgImNvZCI6ICIxMjE3IiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAyMjAsICJ3IjogMjIwLCAiaCI6IDk0LCAibGl0cm9zIjogMTE3MCwgImtnIjogOTQsICJsdWdhcmVzIjogNiwgImphdG9zIjogIjkiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYi1hY2FwdWxjby53ZWJwIiwgInRvcCI6ICJ0b3B2LWFjYXB1bGNvLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjkgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI5IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiOSBqYXRvcyIsICIxMiBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICIxIGFwb2lvIGRlIGNhYmXDp2EiLCAiUGFpbmVsIHdpZmkgc2Vuc2UgOSIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdfX0sICJtZWRpdGVycmFuZW8iOiB7InNsdWciOiAibWVkaXRlcnJhbmVvIiwgIm5vbWUiOiAiU3BhIE1lZGl0ZXJyw6JuZW8iLCAiY29kIjogIjEyMTQiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDIyMCwgInciOiAyMjAsICJoIjogOTAsICJsaXRyb3MiOiAxMTcwLCAia2ciOiA4NSwgImx1Z2FyZXMiOiA2LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW1lZGl0ZXJyYW5lby53ZWJwIiwgInRvcCI6ICJ0b3B2LW1lZGl0ZXJyYW5lby53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI4IGphdG9zIl0sICJIYXJtb25pYSI6IFsiOCBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIl0sICJQbGVuaXR1ZGUiOiBbIjggamF0b3MiLCAiMjQgbWluaSBqYXRvcyIsICI0IHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMSBhcG9pbyBkZSBjYWJlw6dhIiwgIkZpbHRybyBkZSBjYXJ0dWNobyJdfX0sICJuYXZhZ2lvIjogeyJzbHVnIjogIm5hdmFnaW8iLCAibm9tZSI6ICJTcGEgTmF2YWdpbyIsICJjb2QiOiAiMTIyMyIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMjAwLCAidyI6IDIwMCwgImgiOiAxMDAsICJsaXRyb3MiOiAxMTA1LCAia2ciOiA4NSwgImx1Z2FyZXMiOiA1LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW5hdmFnaW8ud2VicCIsICJ0b3AiOiAidG9wdi1uYXZhZ2lvLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjggamF0b3MiXSwgIkhhcm1vbmlhIjogWyI4IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiOCBqYXRvcyIsICIzMiBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXX19LCAiYXRsYW50aWNvIjogeyJzbHVnIjogImF0bGFudGljbyIsICJub21lIjogIlNwYSBBdGzDom50aWNvIiwgImNvZCI6ICIxMjIwIiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxODUsICJ3IjogMTg1LCAiaCI6IDgzLCAibGl0cm9zIjogNzk1LCAia2ciOiA2NiwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLWF0bGFudGljby53ZWJwIiwgInRvcCI6ICJ0b3B2LWF0bGFudGljby53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI2IGphdG9zIiwgIjQgbWluaSBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiNCBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxNiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIl19fSwgIm1hcmFnb2dpIjogeyJzbHVnIjogIm1hcmFnb2dpIiwgIm5vbWUiOiAiU3BhIE1hcmFnb2dpIiwgImNvZCI6ICIxMjI1IiwgImNhdCI6ICJzcGEiLCAibWF0IjogIkdlbCBjb2F0IiwgImwiOiAxODYsICJ3IjogMTg2LCAiaCI6IDc2LCAibGl0cm9zIjogODAwLCAia2ciOiA2NSwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiOCIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW1hcmFnb2dpLndlYnAiLCAidG9wIjogInRvcHYtbWFyYWdvZ2kud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiOCBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjggamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciJdLCAiUGxlbml0dWRlIjogWyI4IGphdG9zIiwgIjI0IG1pbmkgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJGaWx0cm8gZGUgY2FydHVjaG8iLCAiUGFpbmVsIHdpZmkgc2Vuc2UgOSJdfX0sICJmbG9yaXBhIjogeyJzbHVnIjogImZsb3JpcGEiLCAibm9tZSI6ICJTcGEgRmxvcmlwYSIsICJjb2QiOiAiMTIyOCIsICJjYXQiOiAic3BhIiwgIm1hdCI6ICJHZWwgY29hdCIsICJsIjogMTY1LCAidyI6IDE2NSwgImgiOiA4MywgImxpdHJvcyI6IDcwMCwgImtnIjogNjMsICJsdWdhcmVzIjogNCwgImphdG9zIjogIjYiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZmxvcmlwYS53ZWJwIiwgInRvcCI6ICJ0b3B2LWZsb3JpcGEud2VicCIsICJsaW5oYXMiOiB7IkVzc8OqbmNpYSI6IFsiNiBqYXRvcyJdLCAiSGFybW9uaWEiOiBbIjYgamF0b3MiLCAiMiBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJTaXN0ZW1hIGRlIGZpbHRyYWdlbSBkZSBhcmVpYSJdLCAiUGxlbml0dWRlIjogWyI2IGphdG9zIiwgIjE2IG1pbmkgamF0b3MiLCAiNCBwb250b3MgZGUgY3JvbW90ZXJhcGlhIiwgIkFxdWVjZWRvciIsICJGaWx0cm8gZGUgY2FydHVjaG8iXX19LCAibGFndW5hIjogeyJzbHVnIjogImxhZ3VuYSIsICJub21lIjogIlNwYSBMYWd1bmEiLCAiY29kIjogIjEyMzEiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiR2VsIGNvYXQiLCAibCI6IDE4MCwgInciOiAxNDAsICJoIjogNzQsICJsaXRyb3MiOiA1MzAsICJrZyI6IDQzLCAibHVnYXJlcyI6IDMsICJqYXRvcyI6ICI2IiwgIm5vdGEiOiAiIiwgImFtYiI6ICJhbWItbGFndW5hLndlYnAiLCAidG9wIjogInRvcHYtbGFndW5hLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxNCBtaW5pIGphdG9zIiwgIjQgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIxIGFwb2lvIGRlIGNhYmXDp2EiLCAiU2lzdGVtYSBkZSBmaWx0cmFnZW0gZGUgYXJlaWEiXX19LCAiZ3Jhbi1sYWd1bmEiOiB7InNsdWciOiAiZ3Jhbi1sYWd1bmEiLCAibm9tZSI6ICJTcGEgR3JhbiBMYWd1bmEiLCAiY29kIjogIjEwMjciLCAiY2F0IjogInNwYSIsICJtYXQiOiAiQWNyw61saWNvIiwgImwiOiAyMDAsICJ3IjogMjAwLCAiaCI6IDkwLCAibGl0cm9zIjogMTA1MCwgImtnIjogODUsICJsdWdhcmVzIjogNCwgImphdG9zIjogIjgiLCAibm90YSI6ICIiLCAiYW1iIjogImFtYjItZ3Jhbi1sYWd1bmEud2VicCIsICJ0b3AiOiAidG9wdi1ncmFuLWxhZ3VuYS53ZWJwIiwgImxpbmhhcyI6IHsiRXNzw6puY2lhIjogWyI4IGphdG9zIl0sICJIYXJtb25pYSI6IFsiOCBqYXRvcyIsICIyIHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIl0sICJQbGVuaXR1ZGUiOiBbIjggamF0b3MiLCAiMTggbWluaSBqYXRvcyIsICI0IHBvbnRvcyBkZSBjcm9tb3RlcmFwaWEiLCAiQXF1ZWNlZG9yIiwgIlBhaW5lbCBXaWZpIHNlbnNlIDUiLCAiMiBhcG9pbyBkZSBjYWJlw6dhIiwgIlNpc3RlbWEgZGUgZmlsdHJhZ2VtIGRlIGFyZWlhIl19fSwgIm9jZWFub3MiOiB7InNsdWciOiAib2NlYW5vcyIsICJub21lIjogIlNwYSBPY2Vhbm9zIiwgImNvZCI6ICI5MzgiLCAiY2F0IjogInNwYSIsICJtYXQiOiAiQWNyw61saWNvIiwgImwiOiAxODAsICJ3IjogMTgwLCAiaCI6IDkwLCAibGl0cm9zIjogODAwLCAia2ciOiA3MCwgImx1Z2FyZXMiOiA0LCAiamF0b3MiOiAiNiIsICJub3RhIjogIiIsICJhbWIiOiAiYW1iLW9jZWFub3Mud2VicCIsICJ0b3AiOiAidG9wdi1vY2Vhbm9zLndlYnAiLCAibGluaGFzIjogeyJFc3PDqm5jaWEiOiBbIjYgamF0b3MiXSwgIkhhcm1vbmlhIjogWyI2IGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiXSwgIlBsZW5pdHVkZSI6IFsiNiBqYXRvcyIsICIxMiBtaW5pIGphdG9zIiwgIjIgcG9udG9zIGRlIGNyb21vdGVyYXBpYSIsICJBcXVlY2Vkb3IiLCAiUGFpbmVsIFdpZmkgc2Vuc2UgNSIsICIyIGFwb2lvIGRlIGNhYmXDp2EiLCAiRmlsdHJvIGRlIGNhcnR1Y2hvIl19fX07CiAgdmFyIHJvb3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZwIik7IGlmKCFyb290KSByZXR1cm47CiAgdmFyIHJlZHV6PXdpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXM7CiAgcm9vdC5jbGFzc0xpc3QuYWRkKCJmcC1qcyIpOwogIGZ1bmN0aW9uIHByb250bygpeyByb290LmNsYXNzTGlzdC5hZGQoImZwLXByb250byIpOyB9CiAgZnVuY3Rpb24gd2FMaW5rKG1zZyl7IHJldHVybiAiaHR0cHM6Ly93YS5tZS8iK1dBKyI\/dGV4dD0iK2VuY29kZVVSSUNvbXBvbmVudChtc2cpOyB9CiAgZnVuY3Rpb24gJChzKXsgcmV0dXJuIHJvb3QucXVlcnlTZWxlY3RvcihzKTsgfQogIGZ1bmN0aW9uICQkKHMpeyByZXR1cm4gW10uc2xpY2UuY2FsbChyb290LnF1ZXJ5U2VsZWN0b3JBbGwocykpOyB9CgogIC8qIC0tLS0tLS0tLS0gRU5UUkFEQSAoc8OzIG5hIGhvbWUsIHNlIGhvdXZlciAjZnAtaW50cm8pIC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24gaW50cm8oKXsKICAgIHZhciBlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnAtaW50cm8iKTsKICAgIGlmKCFlbCl7IHByb250bygpOyByZXR1cm47IH0KICAgIHZhciBodG1sPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKICAgIHZhciBmZWl0bz1mYWxzZSwgZ2wsIHByb2csIHRleCwgdmlkZW8sIHJhZiwgYWJlcnRvPWZhbHNlLCBhYmVydG9FbT0wLCBwb3A9e3g6MCx5OjAscjowfTsKICAgIGZ1bmN0aW9uIGZpbSgpewogICAgICBpZihmZWl0bykgcmV0dXJuOyBmZWl0bz10cnVlOwogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShyYWYpOwogICAgICBpZihlbCl7IGVsLnJlbW92ZSgpOyB9CiAgICAgIGh0bWwuc3R5bGUub3ZlcmZsb3c9IiI7CiAgICAgIGlmKHZpZGVvKXsgdmlkZW8ucGF1c2UoKTsgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKCJzcmMiKTsgdmlkZW8ubG9hZCgpOyB9CiAgICAgIHByb250bygpOwogICAgfQogICAgaWYocmVkdXopeyBlbC5yZW1vdmUoKTsgcHJvbnRvKCk7IHJldHVybjsgfQogICAgdmFyIGN2PWVsLnF1ZXJ5U2VsZWN0b3IoImNhbnZhcyIpOwogICAgdHJ5eyBnbD1jdi5nZXRDb250ZXh0KCJ3ZWJnbCIse3ByZW11bHRpcGxpZWRBbHBoYTp0cnVlLGFscGhhOnRydWUsYW50aWFsaWFzOmZhbHNlfSk7IH1jYXRjaChlKXt9CiAgICBpZighZ2wpeyBlbC5yZW1vdmUoKTsgcHJvbnRvKCk7IHJldHVybjsgfQogICAgZWwuaGlkZGVuPWZhbHNlOyBodG1sLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iOwogICAgZWwucXVlcnlTZWxlY3RvcigiLmZpLXB1bGFyIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7IGFicmlyKHRydWUpOyB9KTsKCiAgICB2YXIgdnM9ImF0dHJpYnV0ZSB2ZWMyIHA7dmFyeWluZyB2ZWMyIHY7dW5pZm9ybSB2ZWM0IFQ7dm9pZCBtYWluKCl7dj12ZWMyKChwLngrMS4pKi41LDEuLShwLnkrMS4pKi41KTt2ZWMyIHE9VC54eSt2KlQuenc7Z2xfUG9zaXRpb249dmVjNChxLngqMi4tMS4sMS4tcS55KjIuLDAuLDEuKTt9IjsKICAgIHZhciBNT0I9d2luZG93LmlubmVyV2lkdGgvd2luZG93LmlubmVySGVpZ2h0PDE7CiAgICB2YXIgQ0ZHPU1PQj97c3JjOiJpbnRyby1ib2xoYS1tLm1wNCIscG9wOjIuNDIsY3g6NjQwLGN5OjI1OCxyOjE2NSxrZXk6Ii0uMTU1LC0uMjI3In0KICAgICAgICAgICAgICAgOntzcmM6ImludHJvLWJvbGhhLm1wNCIscG9wOjIuMDIsY3g6NjQwLGN5OjM3MixyOjIxNSxrZXk6Ii0uMTI1LC0uMjM0In07CiAgICBpZihNT0IpIGVsLmNsYXNzTGlzdC5hZGQoImZpLW1vYiIpOwogICAgdmFyIGZzPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDt2YXJ5aW5nIHZlYzIgdjt1bmlmb3JtIHNhbXBsZXIyRCB1O3VuaWZvcm0gZmxvYXQgQTsiKwogICAgICAidm9pZCBtYWluKCl7dmVjMyBjPXRleHR1cmUyRCh1LHYpLnJnYjsiKwogICAgICAiZmxvYXQgY2I9LS4xNjkqYy5yLS4zMzEqYy5nKy41KmMuYjtmbG9hdCBjcj0uNSpjLnItLjQxOSpjLmctLjA4MSpjLmI7IisKICAgICAgImZsb2F0IGQ9ZGlzdGFuY2UodmVjMihjYixjciksdmVjMigiK0NGRy5rZXkrIikpOyIrCiAgICAgICJmbG9hdCBhPXNtb290aHN0ZXAoLjEwLC4yNCxkKTsiKwogICAgICAiZmxvYXQgcz1tYXgoMC4sYy5nLW1heChjLnIsYy5iKSk7Yy5nLT1zKi45MjtjKz12ZWMzKHMqLjM1KTsiKwogICAgICAiYSo9QTtnbF9GcmFnQ29sb3I9dmVjNChjKmEsYSk7fSI7CiAgICBmdW5jdGlvbiBzaCh0LHMpe3ZhciBvPWdsLmNyZWF0ZVNoYWRlcih0KTtnbC5zaGFkZXJTb3VyY2UobyxzKTtnbC5jb21waWxlU2hhZGVyKG8pO3JldHVybiBvO30KICAgIHByb2c9Z2wuY3JlYXRlUHJvZ3JhbSgpO2dsLmF0dGFjaFNoYWRlcihwcm9nLHNoKGdsLlZFUlRFWF9TSEFERVIsdnMpKTtnbC5hdHRhY2hTaGFkZXIocHJvZyxzaChnbC5GUkFHTUVOVF9TSEFERVIsZnMpKTtnbC5saW5rUHJvZ3JhbShwcm9nKTsKICAgIGlmKCFnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2csZ2wuTElOS19TVEFUVVMpKXsgZWwucmVtb3ZlKCk7IHByb250bygpOyByZXR1cm47IH0KICAgIGdsLnVzZVByb2dyYW0ocHJvZyk7CiAgICB2YXIgYj1nbC5jcmVhdGVCdWZmZXIoKTtnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUixiKTtnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUixuZXcgRmxvYXQzMkFycmF5KFstMSwtMSwxLC0xLC0xLDEsMSwxXSksZ2wuU1RBVElDX0RSQVcpOwogICAgdmFyIGxwPWdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2csInAiKTtnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShscCk7Z2wudmVydGV4QXR0cmliUG9pbnRlcihscCwyLGdsLkZMT0FULGZhbHNlLDAsMCk7CiAgICB2YXIgdVQ9Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2csIlQiKSwgdUE9Z2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2csIkEiKTsKICAgIHRleD1nbC5jcmVhdGVUZXh0dXJlKCk7Z2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCx0ZXgpOwogICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELGdsLlRFWFRVUkVfV1JBUF9TLGdsLkNMQU1QX1RPX0VER0UpO2dsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCxnbC5URVhUVVJFX1dSQVBfVCxnbC5DTEFNUF9UT19FREdFKTsKICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCxnbC5URVhUVVJFX01JTl9GSUxURVIsZ2wuTElORUFSKTtnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsZ2wuVEVYVFVSRV9NQUdfRklMVEVSLGdsLkxJTkVBUik7CiAgICBnbC5lbmFibGUoZ2wuQkxFTkQpO2dsLmJsZW5kRnVuYyhnbC5PTkUsZ2wuT05FX01JTlVTX1NSQ19BTFBIQSk7CgogICAgdmlkZW89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKICAgIHZpZGVvLm11dGVkPXRydWU7dmlkZW8ucGxheXNJbmxpbmU9dHJ1ZTt2aWRlby5zZXRBdHRyaWJ1dGUoInBsYXlzaW5saW5lIiwiIik7dmlkZW8uc2V0QXR0cmlidXRlKCJtdXRlZCIsIiIpO3ZpZGVvLnByZWxvYWQ9ImF1dG8iO3ZpZGVvLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiOwogICAgdmlkZW8uc3JjPVUoQ0ZHLnNyYyk7CiAgICB2YXIgVz0xLEg9MSxkcHI9MSxib3g9e3g6MCx5OjAsdzoxLGg6MX07CiAgICBmdW5jdGlvbiBtZWRpcigpewogICAgICBkcHI9TWF0aC5taW4od2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsMik7Vz13aW5kb3cuaW5uZXJXaWR0aDtIPXdpbmRvdy5pbm5lckhlaWdodDsKICAgICAgY3Yud2lkdGg9TWF0aC5yb3VuZChXKmRwcik7Y3YuaGVpZ2h0PU1hdGgucm91bmQoSCpkcHIpO2dsLnZpZXdwb3J0KDAsMCxjdi53aWR0aCxjdi5oZWlnaHQpOwogICAgICB2YXIgcyx3LGgseCx5OwogICAgICBpZihNT0IpeyBzPU1hdGgubWF4KFcqMi4zLzEyODAsSCouNjIvNzIwKTsgdz0xMjgwKnM7IGg9NzIwKnM7IHg9KFctdykvMjsgeT1ILWg7IH0KICAgICAgZWxzZSB7IHM9TWF0aC5tYXgoVy8xMjgwLEgvNzIwKTsgdz0xMjgwKnM7IGg9NzIwKnM7IHg9KFctdykvMjsgeT1ILWg7IH0KICAgICAgYm94PXt4OngseTp5LHc6dyxoOmgsczpzfTsKICAgICAgcG9wPXt4OngrQ0ZHLmN4KnMseTp5K0NGRy5jeSpzLHI6Q0ZHLnIqc307CiAgICB9CiAgICBtZWRpcigpOyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixtZWRpcik7CiAgICB2YXIgYWd1YT1lbC5xdWVyeVNlbGVjdG9yKCIuZmktYWd1YSIpOwogICAgZnVuY3Rpb24gYWJyaXIocmFwaWRvKXsKICAgICAgaWYoYWJlcnRvKXsgaWYocmFwaWRvKSBmaW0oKTsgcmV0dXJuOyB9CiAgICAgIGFiZXJ0bz10cnVlOyBhYmVydG9FbT1wZXJmb3JtYW5jZS5ub3coKTsgZWwuY2xhc3NMaXN0LmFkZCgiZmktYWJlcnRvIik7CiAgICAgIGh0bWwuc3R5bGUub3ZlcmZsb3c9IiI7IHByb250bygpOwogICAgICBpZihyYXBpZG8peyBlbC5zdHlsZS50cmFuc2l0aW9uPSJvcGFjaXR5IC4zNXMgZWFzZSI7IGVsLnN0eWxlLm9wYWNpdHk9IjAiOyBzZXRUaW1lb3V0KGZpbSwzODApOyB9CiAgICB9CiAgICBmdW5jdGlvbiBxdWFkcm8oYWdvcmEpewogICAgICByYWY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHF1YWRybyk7CiAgICAgIHZhciB0PXZpZGVvLmN1cnJlbnRUaW1lfHwwOwogICAgICBpZighYWJlcnRvKXsgaWYodD49Q0ZHLnBvcCkgYWJyaXIoZmFsc2UpOyB9CiAgICAgIGlmKGFiZXJ0byl7CiAgICAgICAgdmFyIGs9TWF0aC5taW4oMSwoYWdvcmEtYWJlcnRvRW0pLzExNTApOwogICAgICAgIHZhciBlPWs8LjU\/NCprKmsqazoxLU1hdGgucG93KC0yKmsrMiwzKS8yOwogICAgICAgIHZhciBSPXBvcC5yKi42K2UqTWF0aC5oeXBvdChNYXRoLm1heChwb3AueCxXLXBvcC54KSxNYXRoLm1heChwb3AueSxILXBvcC55KSkqMS4xNTsKICAgICAgICB2YXIgZz0icmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAiK3BvcC54KyJweCAiK3BvcC55KyJweCwgdHJhbnNwYXJlbnQgIitSKyJweCwgIzAwMCAiKyhSKzkwKSsicHgpIjsKICAgICAgICBhZ3VhLnN0eWxlLndlYmtpdE1hc2tJbWFnZT1nOyBhZ3VhLnN0eWxlLm1hc2tJbWFnZT1nOwogICAgICB9CiAgICAgIHZhciBmYWRlPTE7CiAgICAgIGlmKGFiZXJ0byl7IHZhciB0ZT0oYWdvcmEtYWJlcnRvRW0pLzEwMDA7IGZhZGU9dGU8MS42PzE6TWF0aC5tYXgoMCwxLSh0ZS0xLjYpLzAuNyk7IGlmKHRlPjIuNCl7IGZpbSgpOyByZXR1cm47IH0gfQogICAgICBpZih2aWRlby5yZWFkeVN0YXRlPj0yKXsKICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELHRleCk7CiAgICAgICAgdHJ5eyBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsMCxnbC5SR0IsZ2wuUkdCLGdsLlVOU0lHTkVEX0JZVEUsdmlkZW8pOyB9Y2F0Y2goZXJyKXsgYWJyaXIodHJ1ZSk7IHJldHVybjsgfQogICAgICAgIGdsLmNsZWFyQ29sb3IoMCwwLDAsMCk7Z2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CiAgICAgICAgZ2wudW5pZm9ybTRmKHVULGJveC54L1csYm94LnkvSCxib3gudy9XLGJveC5oL0gpO2dsLnVuaWZvcm0xZih1QSxmYWRlKTsKICAgICAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFX1NUUklQLDAsNCk7CiAgICAgIH0KICAgIH0KICAgIHZhciBjb21lY291PWZhbHNlOwogICAgZnVuY3Rpb24gY29tZWNhcigpeyBpZihjb21lY291KSByZXR1cm47IGNvbWVjb3U9dHJ1ZTsgcmFmPXJlcXVlc3RBbmltYXRpb25GcmFtZShxdWFkcm8pOyB9CiAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIixjb21lY2FyKTsKICAgIHZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoImVuZGVkIixmdW5jdGlvbigpeyBhYnJpcihmYWxzZSk7IH0pOwogICAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7IGFicmlyKHRydWUpOyB9KTsKICAgIHZhciBwPXZpZGVvLnBsYXkoKTsgaWYocCYmcC5jYXRjaCkgcC5jYXRjaChmdW5jdGlvbigpeyBhYnJpcih0cnVlKTsgfSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IGlmKCFjb21lY291KSBhYnJpcih0cnVlKTsgfSwzNTAwKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgaWYoIWZlaXRvKSBmaW0oKTsgfSw5MDAwKTsKICB9KSgpOwoKICAvKiAtLS0tLS0tLS0tIHJvbGFnZW06IGFwYXJlY2VyIGFvIGVudHJhciAtLS0tLS0tLS0tICovCiAgdmFyIHRlbVNEPXdpbmRvdy5DU1MmJkNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKCJhbmltYXRpb24tdGltZWxpbmU6IHZpZXcoKSIpOwogIHZhciBpbz0oIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpP25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlcyl7ZXMuZm9yRWFjaChmdW5jdGlvbihlKXsgaWYoZS5pc0ludGVyc2VjdGluZyl7IGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImZwLXZpc3RvIik7IGlvLnVub2JzZXJ2ZShlLnRhcmdldCk7fSB9KTt9LHtyb290TWFyZ2luOiIwcHggMHB4IC04JSAwcHgifSk6bnVsbDsKICBpZighdGVtU0QpeyByb290LmNsYXNzTGlzdC5hZGQoImZwLXNkLW5hbyIpOyB9CiAgJCQodGVtU0Q\/Ii5mcC1zdXJnZSI6Ii5mcC1zdXJnZSwuc2QtcmlzZSwuc2QtY2FyZCIpLmZvckVhY2goZnVuY3Rpb24obil7IGlmKGlvKSBpby5vYnNlcnZlKG4pOyBlbHNlIG4uY2xhc3NMaXN0LmFkZCgiZnAtdmlzdG8iKTsgfSk7CgogIC8qIC0tLS0tLS0tLS0gbWVudSBkbyBjZWx1bGFyIC0tLS0tLS0tLS0gKi8KICAoZnVuY3Rpb24oKXsKICAgIHZhciBuYXY9JCgiLmZwLW5hdiIpLCBidD0kKCIuZnAtbWVudS1idCIpOyBpZighbmF2fHwhYnQpIHJldHVybjsKICAgIGZ1bmN0aW9uIGZlY2hhKCl7IG5hdi5jbGFzc0xpc3QucmVtb3ZlKCJhYmVydG8iKTsgYnQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTsgYnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiQWJyaXIgbWVudSIpOyB9CiAgICBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsKICAgICAgdmFyIGFicmlyPSFuYXYuY2xhc3NMaXN0LmNvbnRhaW5zKCJhYmVydG8iKTsKICAgICAgbmF2LmNsYXNzTGlzdC50b2dnbGUoImFiZXJ0byIsYWJyaXIpOwogICAgICBidC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGFicmlyPyJ0cnVlIjoiZmFsc2UiKTsKICAgICAgYnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixhYnJpcj8iRmVjaGFyIG1lbnUiOiJBYnJpciBtZW51Iik7CiAgICB9KTsKICAgIG5hdi5xdWVyeVNlbGVjdG9yQWxsKCJuYXYgYSIpLmZvckVhY2goZnVuY3Rpb24oYSl7IGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZlY2hhKTsgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihlKXsgaWYoZS5rZXk9PT0iRXNjYXBlIikgZmVjaGEoKTsgfSk7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7IGlmKG5hdi5jbGFzc0xpc3QuY29udGFpbnMoImFiZXJ0byIpICYmICFuYXYuY29udGFpbnMoZS50YXJnZXQpKSBmZWNoYSgpOyB9KTsKICB9KSgpOwoKICAvKiAtLS0tLS0tLS0tIG1lbnUgbWFyY2EgYSBzZcOnw6NvIGF0dWFsICjDom5jb3JhcyBuYSBtZXNtYSBww6FnaW5hKSAtLS0tLS0tLS0tICovCiAgdmFyIGxpbmtzPSQkKCcuZnAtbmF2IHVsIGFbaHJlZl49IiMiXScpOwogIGlmKGxpbmtzLmxlbmd0aCAmJiAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiIGluIHdpbmRvdyl7CiAgICB2YXIgbWFwYT17fTsgbGlua3MuZm9yRWFjaChmdW5jdGlvbihhKXsgdmFyIHNlYz1yb290LnF1ZXJ5U2VsZWN0b3IoYS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7IGlmKHNlYykgbWFwYVtzZWMuaWRdPWE7IH0pOwogICAgdmFyIG9icz1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZXMpeyBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpewogICAgICBpZighZS5pc0ludGVyc2VjdGluZykgcmV0dXJuOwogICAgICBsaW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGwpeyBsLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1jdXJyZW50Iik7IH0pOwogICAgICB2YXIgYT1tYXBhW2UudGFyZ2V0LmlkXTsgaWYoYSkgYS5zZXRBdHRyaWJ1dGUoImFyaWEtY3VycmVudCIsInRydWUiKTsKICAgIH0pOyB9LHtyb290TWFyZ2luOiItNDUlIDBweCAtNTAlIDBweCJ9KTsKICAgICQkKCJtYWluID4gc2VjdGlvbltpZF0iKS5mb3JFYWNoKGZ1bmN0aW9uKHNlYyl7IG9icy5vYnNlcnZlKHNlYyk7IH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSBmaWx0cm8gKyBjYWJlIG5vIG1ldSBlc3Bhw6dvIC0tLS0tLS0tLS0gKi8KICB2YXIgZ3JhZGU9JCgiLmZwLWdyYWRlIik7CiAgaWYoZ3JhZGUpewogICAgdmFyIGNhcmRzPSQkKCIuZnAtY2FyZCIpOwogICAgdmFyIGZpbHRybz0idG9kb3MiLCBjYT0kKCIjZnAtY2EiKSwgY2I9JCgiI2ZwLWNiIiksIG91dD0kKCIuZnAtY2FiZSBvdXRwdXQiKSwgbGltcGFyPSQoIi5mcC1saW1wYXIiKSwgdmF6aW89JCgiLmZwLXZhemlvIik7CiAgICB2YXIgdGVtTWVkaWRhPSEhKGNhJiZjYik7CiAgICBmdW5jdGlvbiBhcGxpY2FyKCl7CiAgICAgIHZhciBhPXRlbU1lZGlkYT9wYXJzZUZsb2F0KGNhLnZhbHVlKTpOYU4sIGI9dGVtTWVkaWRhP3BhcnNlRmxvYXQoY2IudmFsdWUpOk5hTiwgbWVkaXI9YT4wJiZiPjAsIHZpcz0wLCB2aXNDYWJlPTA7CiAgICAgIGNhcmRzLmZvckVhY2goZnVuY3Rpb24oYyl7CiAgICAgICAgdmFyIG9rPWZpbHRybz09PSJ0b2RvcyJ8fGMuZGF0YXNldC5jYXQ9PT1maWx0cm87CiAgICAgICAgYy5oaWRkZW49IW9rOwogICAgICAgIHZhciBsPStjLmRhdGFzZXQubCwgdz0rYy5kYXRhc2V0Lnc7CiAgICAgICAgdmFyIGZpdD0hbWVkaXJ8fCgobDw9YSYmdzw9Yil8fChsPD1iJiZ3PD1hKSk7CiAgICAgICAgYy5jbGFzc0xpc3QudG9nZ2xlKCJmcC1uYW8tY2FiZSIsIWZpdCk7CiAgICAgICAgaWYob2speyB2aXMrKzsgaWYoZml0KSB2aXNDYWJlKys7IH0KICAgICAgfSk7CiAgICAgIGlmKGxpbXBhcikgbGltcGFyLmhpZGRlbj0hKGNhLnZhbHVlfHxjYi52YWx1ZSk7CiAgICAgIGlmKG91dCkgb3V0LmlubmVySFRNTD1tZWRpcj8iQ2FiZW0gPGI+Iit2aXNDYWJlKyI8L2I+IGRlICIrdmlzKyIgbW9kZWxvcyI6IiI7CiAgICAgIGlmKHZhemlvKSB2YXppby5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsbWVkaXImJnZpc0NhYmU9PT0wKTsKICAgIH0KICAgICQkKCIuZnAtZmlsdHJvIGJ1dHRvbiIpLmZvckVhY2goZnVuY3Rpb24oYnQpewogICAgICBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsKICAgICAgICBmaWx0cm89YnQuZGF0YXNldC5mOwogICAgICAgICQkKCIuZnAtZmlsdHJvIGJ1dHRvbiIpLmZvckVhY2goZnVuY3Rpb24obyl7IG8uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLG89PT1idD8idHJ1ZSI6ImZhbHNlIik7IH0pOwogICAgICAgIGFwbGljYXIoKTsKICAgICAgfSk7CiAgICB9KTsKICAgIGlmKHRlbU1lZGlkYSl7CiAgICAgIFtjYSxjYl0uZm9yRWFjaChmdW5jdGlvbihpKXsgaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsYXBsaWNhcik7IH0pOwogICAgICBpZihsaW1wYXIpIGxpbXBhci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgY2EudmFsdWU9IiI7Y2IudmFsdWU9IiI7YXBsaWNhcigpO2NhLmZvY3VzKCk7IH0pOwogICAgfQogIH0KCiAgLyogLS0tLS0tLS0tLSBsaW5oYXM6IG7DrXZlbCBkYSDDoWd1YSAtLS0tLS0tLS0tICovCiAgdmFyIHRhbnF1ZT0kKCIuZnAtdGFucXVlIik7CiAgaWYodGFucXVlKXsKICAgIHZhciBpdGVucz0kJCgiLmZwLWl0ZW5zIGxpIik7CiAgICB2YXIgbm9tZXM9ezE6IkVzc8OqbmNpYSIsMjoiSGFybW9uaWEiLDM6IlBsZW5pdHVkZSJ9OwogICAgZnVuY3Rpb24gbGluaGEobil7CiAgICAgIHZhciBvbj1pdGVucy5maWx0ZXIoZnVuY3Rpb24obGkpe3JldHVybiArbGkuZGF0YXNldC5uPD1uO30pLmxlbmd0aDsKICAgICAgdmFyIGFsdD10YW5xdWUucXVlcnlTZWxlY3RvcigiLmZwLWl0ZW5zIikub2Zmc2V0SGVpZ2h0LCB0b3Q9dGFucXVlLm9mZnNldEhlaWdodHx8MTsKICAgICAgdmFyIG5pdmVsPU1hdGgubWluKC45OCwob24vaXRlbnMubGVuZ3RoKSooYWx0L3RvdCkrIC4wMik7CiAgICAgIHRhbnF1ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1uaXZlbCIsbml2ZWwudG9GaXhlZCgzKSk7CiAgICAgIGl0ZW5zLmZvckVhY2goZnVuY3Rpb24obGkpeyBsaS5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsK2xpLmRhdGFzZXQubjw9bik7IH0pOwogICAgICB0YW5xdWUucXVlcnlTZWxlY3RvcigiW2RhdGEtbm9tZV0iKS50ZXh0Q29udGVudD1ub21lc1tuXTsKICAgICAgJCQoIi5mcC1zZWcgYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7IGJ0LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwrYnQuZGF0YXNldC5saW49PT1uPyJ0cnVlIjoiZmFsc2UiKTsgfSk7CiAgICB9CiAgICAkJCgiLmZwLXNlZyBidXR0b24iKS5mb3JFYWNoKGZ1bmN0aW9uKGJ0KXsgYnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7IGxpbmhhKCtidC5kYXRhc2V0Lmxpbik7IH0pOyB9KTsKICAgIGxpbmhhKDIpOyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpeyB2YXIgYT0kKCcuZnAtc2VnIFthcmlhLXByZXNzZWQ9InRydWUiXScpOyBsaW5oYShhPythLmRhdGFzZXQubGluOjIpOyB9KTsKICB9CgogIC8qIC0tLS0tLS0tLS0gdsOtZGVvcyBjb20gY29udHJvbGVzIC0tLS0tLS0tLS0gKi8KICB2YXIgST17cGF1c2U6Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjgiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik04IDV2MTRNMTYgNXYxNCIvPjwvc3ZnPicscGxheTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTcgNC44djE0LjRMMTkgMTJ6Ii8+PC9zdmc+JyxtdXRlOic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTEgNUw2IDlIM3Y2aDNsNSA0VjV6Ii8+PHBhdGggZD0iTTE2IDkuNWw1IDVNMjEgOS41bC01IDUiLz48L3N2Zz4nLHNvbTonPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PHBhdGggZD0iTTExIDVMNiA5SDN2NmgzbDUgNFY1eiIvPjxwYXRoIGQ9Ik0xNS41IDguNWE1IDUgMCAwIDEgMCA3TTE4LjUgNmE4LjUgOC41IDAgMCAxIDAgMTIiLz48L3N2Zz4nfTsKICAkJCgiLmZwLXBsYXllciIpLmZvckVhY2goZnVuY3Rpb24oZmlnKXsKICAgIHZhciB2PWZpZy5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpLCBidFBsYXk9ZmlnLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjYW89InBsYXkiXScpLCBidFNvbT1maWcucXVlcnlTZWxlY3RvcignW2RhdGEtYWNhbz0ic29tIl0nKSwgcGF1c2Fkb1BlbG9Vc3VhcmlvPWZhbHNlOwogICAgZnVuY3Rpb24gcm90dWxvcygpewogICAgICBidFBsYXkuaW5uZXJIVE1MPSh2LnBhdXNlZD9JLnBsYXkrIjxzcGFuPkFzc2lzdGlyPC9zcGFuPiI6SS5wYXVzZSsiPHNwYW4+UGF1c2FyPC9zcGFuPiIpOwogICAgICBidFBsYXkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix2LnBhdXNlZD8iQXNzaXN0aXIgdsOtZGVvIjoiUGF1c2FyIHbDrWRlbyIpOwogICAgICBidFNvbS5pbm5lckhUTUw9KHYubXV0ZWQ\/SS5tdXRlKyI8c3Bhbj5BdGl2YXIgc29tPC9zcGFuPiI6SS5zb20rIjxzcGFuPlNvbSBsaWdhZG88L3NwYW4+Iik7CiAgICAgIGJ0U29tLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdi5tdXRlZD8iQXRpdmFyIHNvbSI6IkRlc2F0aXZhciBzb20iKTsKICAgIH0KICAgIGJ0UGxheS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgaWYodi5wYXVzZWQpeyBwYXVzYWRvUGVsb1VzdWFyaW89ZmFsc2U7IHYucGxheSgpOyB9IGVsc2UgeyBwYXVzYWRvUGVsb1VzdWFyaW89dHJ1ZTsgdi5wYXVzZSgpOyB9IH0pOwogICAgYnRTb20uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7CiAgICAgIHYubXV0ZWQ9IXYubXV0ZWQ7CiAgICAgIGlmKCF2Lm11dGVkKXsgJCQoIi5mcC1wbGF5ZXIgdmlkZW8iKS5mb3JFYWNoKGZ1bmN0aW9uKG8peyBpZihvIT09dikgby5tdXRlZD10cnVlOyB9KTsgcGF1c2Fkb1BlbG9Vc3VhcmlvPWZhbHNlOyB2LnBsYXkoKTsgfQogICAgfSk7CiAgICB2LmFkZEV2ZW50TGlzdGVuZXIoInBsYXkiLHJvdHVsb3MpOyB2LmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIixyb3R1bG9zKTsgdi5hZGRFdmVudExpc3RlbmVyKCJ2b2x1bWVjaGFuZ2UiLHJvdHVsb3MpOwogICAgaWYoIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpewogICAgICBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZXMpeyBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpewogICAgICAgIGlmKGUuaXNJbnRlcnNlY3RpbmcpeyBpZighcGF1c2Fkb1BlbG9Vc3VhcmlvICYmICFyZWR1eil7IHYucHJlbG9hZD0iYXV0byI7IHZhciBwPXYucGxheSgpOyBpZihwJiZwLmNhdGNoKXAuY2F0Y2goZnVuY3Rpb24oKXt9KTsgfSB9CiAgICAgICAgZWxzZSBpZighdi5wYXVzZWQpeyB2LnBhdXNlKCk7IH0KICAgICAgfSk7IH0se3RocmVzaG9sZDouMzV9KS5vYnNlcnZlKHYpOwogICAgfQogICAgcm90dWxvcygpOwogIH0pOwoKICAvKiAtLS0tLS0tLS0tIGJhcnJhIGZpeGEgbm8gY2VsdWxhciAtLS0tLS0tLS0tICovCiAgdmFyIGJhcnJhPSQoIi5mcC1iYXJyYSIpOwogIGlmKGJhcnJhICYmICJJbnRlcnNlY3Rpb25PYnNlcnZlciIgaW4gd2luZG93KXsKICAgIHZhciBoZXJvPSQoIi5mcC1oZXJvIiksIGZpbTI9JCgiLmZwLWJhcnJhLWZpbSIpOwogICAgdmFyIHZIZXJvPSEhaGVybywgdkZpbT1mYWxzZTsKICAgIHZhciBhbHZvcz1bXTsgaWYoaGVybykgYWx2b3MucHVzaChoZXJvKTsgaWYoZmltMikgYWx2b3MucHVzaChmaW0yKTsKICAgIGlmKGFsdm9zLmxlbmd0aCl7CiAgICAgIHZhciBvYj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZXMpeyBlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpeyBpZihlLnRhcmdldD09PWhlcm8pIHZIZXJvPWUuaXNJbnRlcnNlY3Rpbmc7IGVsc2UgdkZpbT1lLmlzSW50ZXJzZWN0aW5nOyB9KTsgYmFycmEuY2xhc3NMaXN0LnRvZ2dsZSgib24iLCF2SGVybyYmIXZGaW0pOyB9KTsKICAgICAgYWx2b3MuZm9yRWFjaChmdW5jdGlvbihhKXsgb2Iub2JzZXJ2ZShhKTsgfSk7CiAgICB9IGVsc2UgeyBiYXJyYS5jbGFzc0xpc3QuYWRkKCJvbiIpOyB9CiAgfQoKICAvKiAtLS0tLS0tLS0tIGxvZ29zIGRvcyBwYXJjZWlyb3MgLS0tLS0tLS0tLSAqLwogIChmdW5jdGlvbigpewogICAgdmFyIG1hcmNhcz0kJCgiLmZwLW1hcmNhIik7IGlmKCFtYXJjYXMubGVuZ3RoKSByZXR1cm47CiAgICB2YXIgdG9xdWU9IXdpbmRvdy5tYXRjaE1lZGlhKCIoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIikubWF0Y2hlcywgdGltZXI9bnVsbCwgaT0wOwogICAgbWFyY2FzLmZvckVhY2goZnVuY3Rpb24obSl7IG0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7IG0uY2xhc3NMaXN0LnRvZ2dsZSgidmlyYWRhIik7IH0pOyB9KTsKICAgIGlmKCF0b3F1ZSB8fCByZWR1eiB8fCAhKCJJbnRlcnNlY3Rpb25PYnNlcnZlciIgaW4gd2luZG93KSkgcmV0dXJuOwogICAgZnVuY3Rpb24gcGFzc28oKXsgdmFyIG09bWFyY2FzW2kgJSBtYXJjYXMubGVuZ3RoXTsgaSsrOyBtLmNsYXNzTGlzdC5hZGQoInZpcmFkYSIpOyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IG0uY2xhc3NMaXN0LnJlbW92ZSgidmlyYWRhIik7IH0sMTYwMCk7IH0KICAgIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlcyl7IGVzLmZvckVhY2goZnVuY3Rpb24oZSl7CiAgICAgIGlmKGUuaXNJbnRlcnNlY3RpbmcpeyBpZighdGltZXIpeyBwYXNzbygpOyB0aW1lcj1zZXRJbnRlcnZhbChwYXNzbyw5MDApOyB9IH0KICAgICAgZWxzZSBpZih0aW1lcil7IGNsZWFySW50ZXJ2YWwodGltZXIpOyB0aW1lcj1udWxsOyB9CiAgICB9KTsgfSx7dGhyZXNob2xkOi4zfSkub2JzZXJ2ZSgkKCIuZnAtbWFyY2FzIikpOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gZmljaGEgZG8gbW9kZWxvIC0tLS0tLS0tLS0gKi8KICB2YXIgZGxnPSQoIi5mcC1maWNoYSIpOwogIGlmKGRsZyl7CiAgICB2YXIgYXR1YWw9bnVsbCwgbGluaGFBdHVhbD0iSGFybW9uaWEiOwogICAgdmFyIENIRUNLPSc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNNC41IDEyLjVsNSA1IDEwLTExIi8+PC9zdmc+JzsKICAgIGZ1bmN0aW9uIGZtdChuKXsgcmV0dXJuIFN0cmluZyhuKS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIuIik7IH0KICAgIGZ1bmN0aW9uIHZpc3RhKHYpewogICAgICB2YXIgbT1hdHVhbCwgaW1nPWRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1pbWddIiksIGxlZz1kbGcucXVlcnlTZWxlY3RvcigiW2RhdGEtbGVnZW5kYV0iKTsKICAgICAgdmFyIHRlbVRvcD0hIW0udG9wOwogICAgICBpbWcuY2xhc3NMaXN0LnRvZ2dsZSgiZnAtY29udGFpbiIsdj09PSJ0b3AiKTsKICAgICAgaW1nLnNyYz1VKHY9PT0idG9wIj9tLnRvcDptLmFtYik7CiAgICAgIGltZy5hbHQ9bS5ub21lKyh2PT09ImFtYiI\/IiwgaW1hZ2VtIGFtYmllbnRhZGEiOiIsIHZpc3RhIGRlIGNpbWEiKTsKICAgICAgbGVnLnRleHRDb250ZW50PXY9PT0iYW1iIj8iSW1hZ2VtIGlsdXN0cmF0aXZhIGRvIGNhdMOhbG9nbyI6IlZpc3RhIGRlIGNpbWEiOwogICAgICBkbGcucXVlcnlTZWxlY3RvckFsbCgiLmZwLWFiYXMgYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7IGJ0LnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYnQuZGF0YXNldC52PT09dj8idHJ1ZSI6ImZhbHNlIik7IH0pOwogICAgfQogICAgZnVuY3Rpb24gZXF1aXAobCl7CiAgICAgIGxpbmhhQXR1YWw9bDsKICAgICAgdmFyIGxpc3RhPShhdHVhbC5saW5oYXMmJmF0dWFsLmxpbmhhc1tsXSl8fFtdOwogICAgICBkbGcucXVlcnlTZWxlY3RvcigiW2RhdGEtbGlzdGFdIikuaW5uZXJIVE1MPWxpc3RhLm1hcChmdW5jdGlvbih4KXtyZXR1cm4gIjxsaT4iK0NIRUNLKyI8c3Bhbj4iK3grIjwvc3Bhbj48L2xpPiI7fSkuam9pbigiIik7CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtbGluLXRhYnMgYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7IGJ0LnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYnQuZGF0YXNldC5sPT09bD8idHJ1ZSI6ImZhbHNlIik7IH0pOwogICAgICBkbGcucXVlcnlTZWxlY3RvcigiW2RhdGEtd2EtZmljaGFdIikuaHJlZj13YUxpbmsoIk9sw6EhIFRlbmhvIGludGVyZXNzZSBubyBtb2RlbG8gIithdHVhbC5ub21lKyIgKGPDs2QuICIrYXR1YWwuY29kKyIpLCBsaW5oYSAiK2wrIi4gUG9kZSBtZSBwYXNzYXIgdW0gb3LDp2FtZW50bz8iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFicmlyRmljaGEoc2x1Zyl7CiAgICAgIHZhciBtPURBRE9TW3NsdWddOyBpZighbSkgcmV0dXJuOyBhdHVhbD1tOwogICAgICBkbGcucXVlcnlTZWxlY3RvcigiI2ZwLWZpY2hhLW5vbWUiKS50ZXh0Q29udGVudD1tLm5vbWU7CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zdWJdIikudGV4dENvbnRlbnQ9IkPDs2QuICIrbS5jb2QrIiAgfCAgIittLm1hdCsiICB8ICAiKyhtLmNhdD09PSJzcGEiPyJTcGEiOiJCYW5oZWlyYSBkZSBoaWRyb21hc3NhZ2VtIik7CiAgICAgIGRsZy5xdWVyeVNlbGVjdG9yKCJbZGF0YS1zcGVjc10iKS5pbm5lckhUTUw9CiAgICAgICAgIjxkaXY+PGR0PkNvbXByaW1lbnRvPC9kdD48ZGQ+IittLmwrIiA8c21hbGw+Y208L3NtYWxsPjwvZGQ+PC9kaXY+IisKICAgICAgICAiPGRpdj48ZHQ+TGFyZ3VyYTwvZHQ+PGRkPiIrbS53KyIgPHNtYWxsPmNtPC9zbWFsbD48L2RkPjwvZGl2PiIrCiAgICAgICAgIjxkaXY+PGR0PkFsdHVyYTwvZHQ+PGRkPiIrbS5oKyIgPHNtYWxsPmNtPC9zbWFsbD48L2RkPjwvZGl2PiIrCiAgICAgICAgIjxkaXY+PGR0PkxpdHJhZ2VtPC9kdD48ZGQ+IitmbXQobS5saXRyb3MpKyIgPHNtYWxsPkw8L3NtYWxsPjwvZGQ+PC9kaXY+IisKICAgICAgICAiPGRpdj48ZHQ+UGVzbzwvZHQ+PGRkPiIrbS5rZysiIDxzbWFsbD5rZzwvc21hbGw+PC9kZD48L2Rpdj4iKwogICAgICAgICI8ZGl2PjxkdD5MdWdhcmVzPC9kdD48ZGQ+IittLmx1Z2FyZXMrIjwvZGQ+PC9kaXY+IjsKICAgICAgdmFyIG5vdGE9ZGxnLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW5vdGFdIik7IG5vdGEuaGlkZGVuPSFtLm5vdGE7IG5vdGEudGV4dENvbnRlbnQ9bS5ub3RhfHwiIjsKICAgICAgdmFyIGFiYVRvcD1kbGcucXVlcnlTZWxlY3RvcignLmZwLWFiYXMgW2RhdGEtdj0idG9wIl0nKTsgaWYoYWJhVG9wKSBhYmFUb3AuaGlkZGVuPSFtLnRvcDsKICAgICAgdmlzdGEoImFtYiIpOyBlcXVpcChsaW5oYUF0dWFsKTsKICAgICAgaWYodHlwZW9mIGRsZy5zaG93TW9kYWw9PT0iZnVuY3Rpb24iKSBkbGcuc2hvd01vZGFsKCk7IGVsc2UgZGxnLnNldEF0dHJpYnV0ZSgib3BlbiIsIiIpOwogICAgfQogICAgZnVuY3Rpb24gZmVjaGFyRmljaGEoKXsgaWYoZGxnLm9wZW4peyBpZih0eXBlb2YgZGxnLmNsb3NlPT09ImZ1bmN0aW9uIikgZGxnLmNsb3NlKCk7IGVsc2UgZGxnLnJlbW92ZUF0dHJpYnV0ZSgib3BlbiIpOyB9IH0KICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpewogICAgICB2YXIgYz1lLnRhcmdldC5jbG9zZXN0KCJbZGF0YS1tb2RlbG9dIik7CiAgICAgIGlmKCFjKXsgdmFyIGNhcmQ9ZS50YXJnZXQuY2xvc2VzdCgiLmZwLWNhcmQiKTsgaWYoY2FyZCkgYz1jYXJkLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW1vZGVsb10iKTsgfQogICAgICBpZihjKXsgZS5wcmV2ZW50RGVmYXVsdCgpOyBhYnJpckZpY2hhKGMuZGF0YXNldC5tb2RlbG8pOyB9CiAgICB9KTsKICAgIGRsZy5xdWVyeVNlbGVjdG9yKCIuZnAtZmVjaGFyIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZlY2hhckZpY2hhKTsKICAgIHZhciB2b2x0YT1kbGcucXVlcnlTZWxlY3RvcigiW2RhdGEtZmVjaGFdIik7IGlmKHZvbHRhKSB2b2x0YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgZmVjaGFyRmljaGEoKTsgfSk7CiAgICBkbGcuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpeyBpZihlLnRhcmdldD09PWRsZykgZmVjaGFyRmljaGEoKTsgfSk7CiAgICBkbGcucXVlcnlTZWxlY3RvckFsbCgiLmZwLWFiYXMgYnV0dG9uIikuZm9yRWFjaChmdW5jdGlvbihidCl7IGJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyB2aXN0YShidC5kYXRhc2V0LnYpOyB9KTsgfSk7CiAgICBkbGcucXVlcnlTZWxlY3RvckFsbCgiLmZwLWxpbi10YWJzIGJ1dHRvbiIpLmZvckVhY2goZnVuY3Rpb24oYnQpeyBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsgZXF1aXAoYnQuZGF0YXNldC5sKTsgfSk7IH0pOwogIH0KCiAgLyogLS0tLS0tLS0tLSBoZXJvOiB2w61kZW9zIHF1ZSBhbHRlcm5hbSBzb3ppbmhvcyAtLS0tLS0tLS0tICovCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgaHY9JCgiLmZwLWh2Iik7IGlmKCFodikgcmV0dXJuOwogICAgdmFyIGJncz1bXS5zbGljZS5jYWxsKGh2LnF1ZXJ5U2VsZWN0b3JBbGwoIi5mcC1odi1iZyB2aWRlbyIpKSwgY3M9W10uc2xpY2UuY2FsbChodi5xdWVyeVNlbGVjdG9yQWxsKCIuZnAtaHYtY2FyZCB2aWRlbyIpKTsKICAgIHZhciB0aXRzPVtdLnNsaWNlLmNhbGwoaHYucXVlcnlTZWxlY3RvckFsbCgiLmZwLWh2LXRpdCBwIikpLCB0YWJzPVtdLnNsaWNlLmNhbGwoaHYucXVlcnlTZWxlY3RvckFsbCgiLmZwLWh2LXRhYnMgYnV0dG9uIikpOwogICAgdmFyIGNhcmQ9aHYucXVlcnlTZWxlY3RvcigiLmZwLWh2LWNhcmQiKSwgbj10YWJzLmxlbmd0aCwgaT0wLCB0aW1lcj1udWxsLCB2aXNpdmVsPXRydWU7CiAgICBmdW5jdGlvbiBjYXJkT24oKXsgcmV0dXJuIGNhcmQgPyBnZXRDb21wdXRlZFN0eWxlKGNhcmQpLmRpc3BsYXkhPT0ibm9uZSIgOiBmYWxzZTsgfQogICAgZnVuY3Rpb24gdG9jYSh2KXsgaWYoIXYpIHJldHVybjsgaWYodi5wcmVsb2FkPT09Im5vbmUiKSB2LnByZWxvYWQ9ImF1dG8iOyB0cnl7IHYuY3VycmVudFRpbWU9MDsgfWNhdGNoKGUpe30gdmFyIHA9di5wbGF5KCk7IGlmKHAmJnAuY2F0Y2gpIHAuY2F0Y2goZnVuY3Rpb24oKXt9KTsgfQogICAgZnVuY3Rpb24gdmFpKGspewogICAgICBpPShrK24pJW47CiAgICAgIFtiZ3MsY3MsdGl0c10uZm9yRWFjaChmdW5jdGlvbihnKXsgZy5mb3JFYWNoKGZ1bmN0aW9uKGVsLGopeyBlbC5jbGFzc0xpc3QudG9nZ2xlKCJvbiIsaj09PWkpOyB9KTsgfSk7CiAgICAgIFtiZ3MsY3NdLmZvckVhY2goZnVuY3Rpb24oZyl7IGcuZm9yRWFjaChmdW5jdGlvbih2LGopeyBpZihqIT09aSkgdi5wYXVzZSgpOyB9KTsgfSk7CiAgICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbih0LGopeyB0LnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsaj09PWk\/InRydWUiOiJmYWxzZSIpOyB0LmNsYXNzTGlzdC5yZW1vdmUoImNvcnJlIik7IH0pOwogICAgICBjbGVhclRpbWVvdXQodGltZXIpOwogICAgICBpZihyZWR1eiB8fCAhdmlzaXZlbCkgcmV0dXJuOwogICAgICB0b2NhKGJnc1tpXSk7IGlmKGNhcmRPbigpKSB0b2NhKGNzW2ldKTsKICAgICAgdm9pZCB0YWJzW2ldLm9mZnNldFdpZHRoOyB0YWJzW2ldLmNsYXNzTGlzdC5hZGQoImNvcnJlIik7CiAgICAgIHRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXsgdmFpKGkrMSk7IH0sKCt0YWJzW2ldLmRhdGFzZXQuZHVyfHw3KSoxMDAwKTsKICAgIH0KICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbih0LGopeyB0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyB2YWkoaik7IH0pOyB9KTsKICAgIGlmKCJJbnRlcnNlY3Rpb25PYnNlcnZlciIgaW4gd2luZG93KXsKICAgICAgbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVzKXsgZXMuZm9yRWFjaChmdW5jdGlvbihlKXsKICAgICAgICB2aXNpdmVsPWUuaXNJbnRlcnNlY3Rpbmc7CiAgICAgICAgaWYodmlzaXZlbCkgdmFpKGkpOyBlbHNlIHsgY2xlYXJUaW1lb3V0KHRpbWVyKTsgYmdzLmNvbmNhdChjcykuZm9yRWFjaChmdW5jdGlvbih2KXsgdi5wYXVzZSgpOyB9KTsgfQogICAgICB9KTsgfSx7dGhyZXNob2xkOi4yfSkub2JzZXJ2ZShodik7CiAgICB9IGVsc2UgdmFpKDApOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gbGluaGE6IHBhaW7DqWlzIHF1ZSBleHBhbmRlbSAtLS0tLS0tLS0tICovCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgcG5zPSQkKCIuZnAtcG4iKTsgaWYoIXBucy5sZW5ndGgpIHJldHVybjsKICAgIGZ1bmN0aW9uIGxpZ2EocCl7IHBucy5mb3JFYWNoKGZ1bmN0aW9uKG8peyBvLmNsYXNzTGlzdC50b2dnbGUoIm9uIixvPT09cCk7IH0pOyB9CiAgICBwbnMuZm9yRWFjaChmdW5jdGlvbihwKXsKICAgICAgcC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixmdW5jdGlvbigpeyBsaWdhKHApOyB9KTsKICAgICAgcC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXsgbGlnYShwKTsgfSk7CiAgICB9KTsKICB9KSgpOwoKICAvKiAtLS0tLS0tLS0tIG7Dum1lcm9zIGNvbnRhbSBhbyBhcGFyZWNlciAtLS0tLS0tLS0tICovCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgbnM9JCQoIltkYXRhLWNvbnRhXSIpOyBpZighbnMubGVuZ3RoIHx8IHJlZHV6IHx8ICEoIkludGVyc2VjdGlvbk9ic2VydmVyIiBpbiB3aW5kb3cpKSByZXR1cm47CiAgICBmdW5jdGlvbiBmbXQobil7IHJldHVybiBTdHJpbmcobikucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLiIpOyB9CiAgICB2YXIgb2I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVzKXsgZXMuZm9yRWFjaChmdW5jdGlvbihlKXsKICAgICAgaWYoIWUuaXNJbnRlcnNlY3RpbmcpIHJldHVybjsgb2IudW5vYnNlcnZlKGUudGFyZ2V0KTsKICAgICAgdmFyIGVsPWUudGFyZ2V0LCBhbHZvPStlbC5kYXRhc2V0LmNvbnRhLCBzdWY9ZWwuZGF0YXNldC5zdWZ8fCIiLCB0MD1wZXJmb3JtYW5jZS5ub3coKSwgZHVyPTEzMDA7CiAgICAgIGZ1bmN0aW9uIHBhc3NvKGFnb3JhKXsKICAgICAgICB2YXIgaz1NYXRoLm1pbigxLChhZ29yYS10MCkvZHVyKSwgcT0xLU1hdGgucG93KDEtaywzKTsKICAgICAgICBlbC50ZXh0Q29udGVudD1mbXQoTWF0aC5yb3VuZChhbHZvKnEpKStzdWY7CiAgICAgICAgaWYoazwxKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocGFzc28pOwogICAgICB9CiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShwYXNzbyk7CiAgICB9KTsgfSx7dGhyZXNob2xkOi42fSk7CiAgICBucy5mb3JFYWNoKGZ1bmN0aW9uKG4peyBvYi5vYnNlcnZlKG4pOyB9KTsKICB9KSgpOwoKICAvKiAtLS0tLS0tLS0tIGxvY2FsaXphZG9yOiBkZXNjdWJyYSBxdWFsIG1vZGVsbyDDqSBvIHNldSAtLS0tLS0tLS0tICovCiAgKGZ1bmN0aW9uKCl7CiAgICB2YXIgYm94PSQoIi5mcC1xdWFsIik7IGlmKCFib3gpIHJldHVybjsKICAgIHZhciBJVEVOUz1bXTsKICAgIHZhciBMSU5LUz17c3VpdGU6Ii93ZWIvYmFuaGVpcmFzIixleHRlcm5hOiIvd2ViL3NwYXMtMiIsY29ycDoiL3dlYi9zcGFzLTIifTsKICAgIHZhciBUT0RPUz17c3VpdGU6IlZlciB0b2RhcyBhcyBiYW5oZWlyYXMiLGV4dGVybmE6IlZlciB0b2RvcyBvcyBzcGFzIixjb3JwOiJWZXIgdG9kb3Mgb3Mgc3BhcyJ9OwogICAgdmFyIFRJUE89e3N1aXRlOlsibW9kZWxvIGRlIGJhbmhlaXJhIiwibW9kZWxvcyBkZSBiYW5oZWlyYSJdLGV4dGVybmE6WyJzcGEiLCJzcGFzIl0sY29ycDpbIm1vZGVsbyBwYXJhIHVzbyBpbnRlbnNvIiwibW9kZWxvcyBwYXJhIHVzbyBpbnRlbnNvIl19OwogICAgdmFyIFBFU1M9eyIxIjoiMSBwZXNzb2EiLCIyIjoiMiBwZXNzb2FzIiwiMy02IjoiMyBhIDYgcGVzc29hcyIsIjcrIjoiNyBvdSBtYWlzIHBlc3NvYXMifTsKICAgIHZhciBlc3RhZG89e29uZGU6InN1aXRlIixwZXNzOiIyIn07CiAgICB2YXIgZ3JhZGU9Ym94LnF1ZXJ5U2VsZWN0b3IoIi5mcC1xLWdyYWRlIiksIHRpdD1ib3gucXVlcnlTZWxlY3RvcigiW2RhdGEtcS10aXRdIiksIHN1Yj1ib3gucXVlcnlTZWxlY3RvcigiW2RhdGEtcS1zdWJdIiksIHRvZG9zPWJveC5xdWVyeVNlbGVjdG9yKCJbZGF0YS1xLXRvZG9zXSIpLCBub3RhPWJveC5xdWVyeVNlbGVjdG9yKCIuZnAtcS1ub3RhIik7CiAgICBmdW5jdGlvbiBub0xvY2FsKGl0KXsKICAgICAgaWYoZXN0YWRvLm9uZGU9PT0ic3VpdGUiKSByZXR1cm4gaXQuY2F0IT09InNwYSI7CiAgICAgIGlmKGVzdGFkby5vbmRlPT09ImV4dGVybmEiKSByZXR1cm4gaXQuY2F0PT09InNwYSI7CiAgICAgIHJldHVybiAhaXQuZnMgPyAoaXQubWF0PT09IkFjcsOtbGljbyIgfHwgKGl0LmNhdD09PSJzcGEiID8gaXQubHVnYXJlcz49NiA6IGZhbHNlKSkgOiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIG5hc1Blc3NvYXMoaXQpewogICAgICB2YXIgcT1pdC5sdWdhcmVzLCBwPWVzdGFkby5wZXNzOwogICAgICBpZihwPT09IjEiKSByZXR1cm4gcT09PTE7IGlmKHA9PT0iMiIpIHJldHVybiBxPT09MjsKICAgICAgaWYocD09PSIzLTYiKSByZXR1cm4gcT49MyA\/IHE8PTYgOiBmYWxzZTsgcmV0dXJuIHE+PTc7CiAgICB9CiAgICBmdW5jdGlvbiBjYXJkKGl0LGspewogICAgICB2YXIgbWVkPWl0LmwrIiDDlyAiK2l0LncrIiBjbSIsIGx1Zz1pdC5sdWdhcmVzKyhpdC5sdWdhcmVzPT09MT8iIGx1Z2FyIjoiIGx1Z2FyZXMiKTsKICAgICAgdmFyIGNvcnBvPSc8c3BhbiBjbGFzcz0iZnAtZnItaW1nIj48aW1nIHNyYz0iJytVKGl0LmFtYikrJyIgYWx0PSIiIGRlY29kaW5nPSJhc3luYyI+PC9zcGFuPjxzcGFuIGNsYXNzPSJmcC1mci10Ij48Yj4nK2l0Lm5vbWUrJzwvYj48c21hbGw+JyttZWQrIiwgIitsdWcrJzwvc21hbGw+PGVtPicrKGl0LmZzPyJWZXIgbW9kZWxvIjoiVmVyIG1lZGlkYXMgZSBvcsOnYW1lbnRvIikrJyAmcmFycjs8L2VtPjwvc3Bhbj4nOwogICAgICBpZihpdC5mcykgcmV0dXJuICc8YSBjbGFzcz0iZnAtZnItY2FyZCIgc3R5bGU9Ii0tazonK2srJyIgaHJlZj0iL3dlYi9mcmVlLXN0YW5kaW5nIj4nK2NvcnBvKyc8L2E+JzsKICAgICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZwLWZyLWNhcmQiIHN0eWxlPSItLWs6JytrKyciIGRhdGEtbW9kZWxvPSInK2l0LnNsdWcrJyIgYXJpYS1sYWJlbD0iVmVyIGZpY2hhOiAnK2l0Lm5vbWUrJyI+Jytjb3JwbysnPC9idXR0b24+JzsKICAgIH0KICAgIGZ1bmN0aW9uIHJlbmRlcigpewogICAgICB2YXIgbG9jYWw9SVRFTlMuZmlsdGVyKG5vTG9jYWwpLCBleGF0b3M9bG9jYWwuZmlsdGVyKG5hc1Blc3NvYXMpLCBsaXN0YT1leGF0b3MubGVuZ3RoP2V4YXRvczpsb2NhbCwgbW9zdHJhPWxpc3RhLnNsaWNlKDAsOCk7CiAgICAgIGdyYWRlLmNsYXNzTGlzdC5yZW1vdmUoImFuaW0iKTsgdm9pZCBncmFkZS5vZmZzZXRXaWR0aDsKICAgICAgZ3JhZGUuaW5uZXJIVE1MPW1vc3RyYS5tYXAoY2FyZCkuam9pbigiIik7CiAgICAgIGdyYWRlLmNsYXNzTGlzdC5hZGQoImFuaW0iKTsKICAgICAgdmFyIHQ9VElQT1tlc3RhZG8ub25kZV07CiAgICAgIGlmKGV4YXRvcy5sZW5ndGgpewogICAgICAgIHRpdC50ZXh0Q29udGVudD1leGF0b3MubGVuZ3RoKyIgIisoZXhhdG9zLmxlbmd0aD09PTE\/dFswXTp0WzFdKSsiIHBhcmEgIitQRVNTW2VzdGFkby5wZXNzXTsKICAgICAgICBzdWIudGV4dENvbnRlbnQ9IlRvcXVlIGVtIHVtIG1vZGVsbyBwYXJhIHZlciBtZWRpZGFzLCBlcXVpcGFtZW50b3MgZSBwZWRpciBvcsOnYW1lbnRvLiI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGl0LnRleHRDb250ZW50PSJOZW5odW0gbW9kZWxvIGRlIGxpbmhhIHBhcmEgIitQRVNTW2VzdGFkby5wZXNzXTsKICAgICAgICBzdWIudGV4dENvbnRlbnQ9IkVzdGVzIHPDo28gb3MgbWFpcyBwcsOzeGltb3MuIEEgZsOhYnJpY2EgdGFtYsOpbSBmYXogcHJvamV0byBzb2IgbWVkaWRhLiI7CiAgICAgIH0KICAgICAgdG9kb3MuaHJlZj1MSU5LU1tlc3RhZG8ub25kZV07IHRvZG9zLmZpcnN0Q2hpbGQubm9kZVZhbHVlPVRPRE9TW2VzdGFkby5vbmRlXSsiICI7CiAgICAgIG5vdGEuaGlkZGVuPSEhZXhhdG9zLmxlbmd0aDsKICAgIH0KICAgIGJveC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1xXSIpLmZvckVhY2goZnVuY3Rpb24oYnQpewogICAgICBidC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXsKICAgICAgICB2YXIgZz1idC5kYXRhc2V0LnE7IGVzdGFkb1tnXT1idC5kYXRhc2V0LnY7CiAgICAgICAgYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXE9IicrZysnIl0nKS5mb3JFYWNoKGZ1bmN0aW9uKG8peyBvLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixvPT09YnQ\/InRydWUiOiJmYWxzZSIpOyB9KTsKICAgICAgICByZW5kZXIoKTsKICAgICAgfSk7CiAgICB9KTsKICAgIHJlbmRlcigpOwogIH0pKCk7CgogIC8qIC0tLS0tLS0tLS0gZm9ybXVsw6FyaW8gcGFyYSBXaGF0c0FwcCAtLS0tLS0tLS0tICovCiAgdmFyIGZvcm09JCgiLmZwLWZvcm0iKTsKICBpZihmb3JtKXsKICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixmdW5jdGlvbihlKXsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgbm9tZT1mb3JtLm5vbWUudmFsdWUudHJpbSgpLCBlcnI9JCgiI2ZwLW5vbWUtZXJybyIpOwogICAgICBpZighbm9tZSl7IGZvcm0ubm9tZS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsInRydWUiKTsgaWYoZXJyKSBlcnIudGV4dENvbnRlbnQ9IkVzY3JldmEgc2V1IG5vbWUgcGFyYSBhIGbDoWJyaWNhIHNhYmVyIGNvbSBxdWVtIGVzdMOhIGZhbGFuZG8uIjsgZm9ybS5ub21lLmZvY3VzKCk7IHJldHVybjsgfQogICAgICBmb3JtLm5vbWUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWludmFsaWQiKTsgaWYoZXJyKSBlcnIudGV4dENvbnRlbnQ9IiI7CiAgICAgIHZhciBsaW5oYXM9WyJPbMOhISBNZXUgbm9tZSDDqSAiK25vbWUrIi4iXTsKICAgICAgaWYoZm9ybS5jaWRhZGUmJmZvcm0uY2lkYWRlLnZhbHVlLnRyaW0oKSkgbGluaGFzLnB1c2goIkNpZGFkZTogIitmb3JtLmNpZGFkZS52YWx1ZS50cmltKCkpOwogICAgICB2YXIgdGlwbz1mb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJ0aXBvIl06Y2hlY2tlZCcpOyBpZih0aXBvKSBsaW5oYXMucHVzaCgiUHJvY3VybzogIit0aXBvLnZhbHVlKTsKICAgICAgaWYoZm9ybS5tb2RlbG8mJmZvcm0ubW9kZWxvLnZhbHVlKSBsaW5oYXMucHVzaCgiTW9kZWxvIGRlIGludGVyZXNzZTogIitmb3JtLm1vZGVsby52YWx1ZSk7CiAgICAgIGlmKGZvcm0ubWVuc2FnZW0mJmZvcm0ubWVuc2FnZW0udmFsdWUudHJpbSgpKSBsaW5oYXMucHVzaChmb3JtLm1lbnNhZ2VtLnZhbHVlLnRyaW0oKSk7CiAgICAgIGxpbmhhcy5wdXNoKCJQb2RlIG1lIHBhc3NhciB1bSBvcsOnYW1lbnRvPyIpOwogICAgICB3aW5kb3cub3Blbih3YUxpbmsobGluaGFzLmpvaW4oIlxuIikpLCJfYmxhbmsiLCJub29wZW5lciIpOwogICAgfSk7CiAgICBmb3JtLm5vbWUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7IGlmKGZvcm0ubm9tZS52YWx1ZS50cmltKCkpeyBmb3JtLm5vbWUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWludmFsaWQiKTsgdmFyIGUyPSQoIiNmcC1ub21lLWVycm8iKTsgaWYoZTIpIGUyLnRleHRDb250ZW50PSIiOyB9IH0pOwogIH0KfSkoKTsK\";var s=atob(b),u=new Uint8Array(s.length);for(var i=0;i<s.length;i++){u[i]=s.charCodeAt(i);}new Function(new TextDecoder(\"utf-8\").decode(u))();})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Spas Banheiras Free Standing Acess\u00f3rios Sobre Contato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/faiberplas.com.br\/web\/spas-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Faiberplas - Conecte-se com o que realmente importa\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Spas - Faiberplas\" \/>\n\t\t<meta property=\"og:description\" content=\"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/faiberplas.com.br\/web\/spas-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"80\" \/>\n\t\t<meta property=\"og:image:height\" content=\"82\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-08-05T09:05:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-27T18:28:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/faiberplas\/?locale=pt_BR\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Spas - Faiberplas\" \/>\n\t\t<meta name=\"twitter:description\" content=\"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/faiberplas.com.br\\\/web\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2#listItem\",\"name\":\"Spas\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2#listItem\",\"position\":2,\"name\":\"Spas\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organization\",\"name\":\"Faiberplas\",\"description\":\"Conecte-se com o que realmente importa\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/\",\"telephone\":\"+5548991174548\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/LOGO-FOOTER.png\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2\\\/#organizationLogo\",\"width\":446,\"height\":308},\"image\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/faiberplas\\\/?locale=pt_BR\",\"https:\\\/\\\/www.instagram.com\\\/faiberplas\\\/\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2#webpage\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2\",\"name\":\"Spas - Faiberplas\",\"description\":\"SpasBanheirasFree StandingAcess\\u00f3riosSobreContato Pedir or\\u00e7amento Home \\u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\\u00edlico, para varanda, deck, \\u00e1rea de lazer, hot\\u00e9is e clubes. Todos 11Gel coat 9Acr\\u00edlico 2 Cabe no meu espa\\u00e7o? Comprimento \\u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\\u00e1brica: fazemos projetos sob medida.\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/spas-2#breadcrumblist\"},\"datePublished\":\"2019-08-05T09:05:36-03:00\",\"dateModified\":\"2026-10-27T18:28:21-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#website\",\"url\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/\",\"name\":\"Faiberplas\",\"description\":\"Conecte-se com o que realmente importa\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/faiberplas.com.br\\\/web\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Spas - Faiberplas","description":"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.","canonical_url":"https:\/\/faiberplas.com.br\/web\/spas-2","robots":"","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/faiberplas.com.br\/web\/spas-2#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web#listItem","position":1,"name":"Home","item":"https:\/\/faiberplas.com.br\/web","nextItem":{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web\/spas-2#listItem","name":"Spas"}},{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web\/spas-2#listItem","position":2,"name":"Spas","previousItem":{"@type":"ListItem","@id":"https:\/\/faiberplas.com.br\/web#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/faiberplas.com.br\/web\/#organization","name":"Faiberplas","description":"Conecte-se com o que realmente importa","url":"https:\/\/faiberplas.com.br\/web\/","telephone":"+5548991174548","logo":{"@type":"ImageObject","url":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2023\/12\/LOGO-FOOTER.png","@id":"https:\/\/faiberplas.com.br\/web\/spas-2\/#organizationLogo","width":446,"height":308},"image":{"@id":"https:\/\/faiberplas.com.br\/web\/spas-2\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/faiberplas\/?locale=pt_BR","https:\/\/www.instagram.com\/faiberplas\/"]},{"@type":"WebPage","@id":"https:\/\/faiberplas.com.br\/web\/spas-2#webpage","url":"https:\/\/faiberplas.com.br\/web\/spas-2","name":"Spas - Faiberplas","description":"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/faiberplas.com.br\/web\/#website"},"breadcrumb":{"@id":"https:\/\/faiberplas.com.br\/web\/spas-2#breadcrumblist"},"datePublished":"2019-08-05T09:05:36-03:00","dateModified":"2026-10-27T18:28:21-03:00"},{"@type":"WebSite","@id":"https:\/\/faiberplas.com.br\/web\/#website","url":"https:\/\/faiberplas.com.br\/web\/","name":"Faiberplas","description":"Conecte-se com o que realmente importa","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/faiberplas.com.br\/web\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"Faiberplas - Conecte-se com o que realmente importa","og:type":"article","og:title":"Spas - Faiberplas","og:description":"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.","og:url":"https:\/\/faiberplas.com.br\/web\/spas-2","og:image":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png","og:image:secure_url":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png","og:image:width":80,"og:image:height":82,"article:published_time":"2019-08-05T09:05:36+00:00","article:modified_time":"2026-10-27T18:28:21+00:00","article:publisher":"https:\/\/www.facebook.com\/faiberplas\/?locale=pt_BR","twitter:card":"summary_large_image","twitter:title":"Spas - Faiberplas","twitter:description":"SpasBanheirasFree StandingAcess\u00f3riosSobreContato Pedir or\u00e7amento Home \u00b7 Spas Spas Faiberplas Spas de 3 a 12 lugares, em gel coat ou acr\u00edlico, para varanda, deck, \u00e1rea de lazer, hot\u00e9is e clubes. Todos 11Gel coat 9Acr\u00edlico 2 Cabe no meu espa\u00e7o? Comprimento \u00d7 Largura Limpar Nenhum modelo cabe nessa medida. Fale com a f\u00e1brica: fazemos projetos sob medida.","twitter:image":"https:\/\/faiberplas.com.br\/web\/wp-content\/uploads\/2024\/02\/ICON.png"},"aioseo_meta_data":[],"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/faiberplas.com.br\/web\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSpas\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/faiberplas.com.br\/web"},{"label":"Spas","link":"https:\/\/faiberplas.com.br\/web\/spas-2"}],"_links":{"self":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/10"}],"collection":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":3,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/10\/revisions"}],"predecessor-version":[{"id":952,"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/pages\/10\/revisions\/952"}],"wp:attachment":[{"href":"https:\/\/faiberplas.com.br\/web\/wp-json\/wp\/v2\/media?parent=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}