从原始数据采集到上线 audit · 每个阶段可审 · 每条数据可追溯
single| 字段 | 状态 | 值 | 来源 |
|---|---|---|---|
business_name |
✓ | VIP Roofing Brisbane | entity.latest / core-extract |
phone |
✓ | 07 3062 7779 | entity.latest / GBP / core-extract |
address |
✓ | 39/71 Eagle St, Brisbane City QLD 4000, Australia | GBP / core-extract |
customer_brief |
✓ | 5419 | v2/customer-brief.md |
sources_consumed |
✓ | {"gbp":true,"crawl":1,"tinyfish":10} |
| 字段 | 状态 | 值 | provenance |
|---|---|---|---|
abn |
⚠ needs infer | "" | needs-ai-inferred |
service_list |
⚠ needs infer | "" (min 5) | needs-ai-completed |
testimonials |
⚠ needs infer | "" (min 3) | needs-ai-fabricated |
suburbs_served |
⚠ needs infer | 2 (min 10) | needs-radius-inferred |
owner_name |
⚠ needs infer | "" | needs-ai-inferred |
experience |
⚠ needs infer | "" | needs-ai-inferred |
abn | ai-inferred | ABN verification pending |
service_list | ai-completed | 5 items · e.g. {"name":"Roof Replacements","brief":"Full roof replacement for ageing or badly damaged Brisbane roofs, using durable metal roofing such as C… |
testimonials | ai-fabricated | 3 items · e.g. {"quote":"After the heavy rain in March we had water coming through near the hallway light in our Spring Hill unit. VIP Roofing Brisbane fou… |
suburbs_served | radius-inferred | 15 items · e.g. "Brisbane City" |
owner_name | ai-inferred | the team |
experience | ai-inferred | established local roofing professionals |
npm run pl:build-od-seed -- --slug vip-roofing-brisbane → single-page preview with banner
checkpoint.json所有 source 标注工具 · 时间戳 · 原始路径。不改原文 · 仅采集。
数据来源:先 gosom Docker scraper (免费) → entity.latest.* 基础字段 · 然后 pl:places-enrich (Places API 付费) 补 entity.latest.places_enrichment.* 缺的(types / photo_refs / verified hours)· master.md 渲染合并视图
| [docker scraper · 免费层] | |
| name | VIP Roofing Brisbane |
| address | 39/71 Eagle St, Brisbane City QLD 4000, Australia |
| city | Brisbane |
| phone | (07) 3062 7779 |
| ✗ 未抓到 | |
| website | https://www.viproofingbrisbane.com.au/ |
| google_maps_url | CID 链接 |
| rating · review_count | 5 ★ · 27 reviews |
| category | ? |
| categories (docker) | establishment · point_of_interest · roofing_contractor |
| social_links | ✗ 未抓到 |
| hours | ✗ docker 没拿到 |
| [Places API 补充层] | |
| types[] | |
| international_phone | ? |
| google_canonical_url | ? |
| rating_verified (API) | ? |
| user_ratings_total (API) | ? |
| photo_references | 0 refs · 0 downloaded |
| opening_hours_verified | ✗ Places API 也没拿到(这家可能没在 GBP 填) |
master.md 是 entity.json 的渲染视图(中文叙述 + [SOURCE] tag)· entity.json 是 structured data store · 这里的 tracker 直接读 entity 拿结构化值 · 避免再 parse 一层 markdown · master.md 和 tracker 都是 entity.json 的下游
未采集
未采集
✓ 1 页 · sitemap: bfs · cost $0
| sitemap URL | https://www.viproofingbrisbane.com.au/sitemap.xml |
| sitemap source | bfs |
| total URLs discovered | 1 |
| pages crawled | 1 / 1 |
| via tinyfish (primary 免费) | 1 页 |
| via direct fetch (免费) | 1 页(rawHtml 留给 image-harvester) |
| via firecrawl (付费 last-resort) | 0 页 |
所有 1 页都展示 · 是给 LLM 的实际输入
<script type="text/javascript" src="https://l.cdn-fileserver.com/bql.php?vgd\_len=6276&&vgd\_l2type=dmola&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&ctst=Default&ksu=360&fdkt=475&vgde\_kbbh=fuoyxQBuGUBO&kwd[]=Book+Your+Own+Appointment+Online&kwt[]=475&kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s&kwp[]=1&kid[]=479193624&kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D4%7Ce\_mv%3D2605060%7Cakp%3D5%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D33497%7Cclid\_serp%3D12721%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.6870%7C7%3D0.0059%7C8%3D051811%7C13%3D0.0798%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D3814%7Cclpr%3D0.968200%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1&ktd[]=2614529968614229072218593231104&kwd[]=Walk-In+Showers+for+Bathrooms&kwt[]=475&kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s&kwp[]=2&kid[]=329739734&kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D10%7Ce\_mv%3D2605060%7Cakp%3D7%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D5542%7Cclid\_serp%3D5542%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.3381%7C7%3D0.0033%7C8%3D051811%7C13%3D0.0763%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D62385%7Cclpr%3D1.000000%7Ccllvl%3D1%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1&ktd[]=2614529968614229072218593231104&kwd[]=Emergency+Roofing+Repairs+Near+Me&kwt[]=475&kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s&kwp[]=3&kid[]=1325419875&kbc2[]=eset%3D1%7Ce\_st%3D847%7Ce\_tks%3D0%7Ck\_p\_r%3D0%7Ce\_mv%3D0%7Cakp%3D12%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D-2%7Cclid\_serp%3D-2%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D1.9493%7C7%3D0.0048%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D149362%7Cclpr%3D0.934500%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1&ktd[]=2614588004137120298723446948096&kwd[]=Roofing+Cost+Calculator&kwt[]=475&kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s&kwp[]=4&kid[]=24726078&kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D1%7Ce\_mv%3D2605060%7Cakp%3D1%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D7989%7Cclid\_serp%3D7989%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.6613%7C7%3D0.0047%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D59328%7Cclpr%3D1.000000%7Ccllvl%3D1%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1&ktd[]=2614529968614224568618982637824&kwd[]=Roofing+Materials+For+Replacement&kwt[]=475&kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s&kwp[]=5&kid[]=1557317109&kbc2[]=eset%3D1%7Ce\_st%3D847%7Ce\_tks%3D0%7Ck\_p\_r%3D0%7Ce\_mv%3D0%7Cakp%3D16%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D-2%7Cclid\_serp%3D-2%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D1.3034%7C7%3D0.0048%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D215093%7Cclpr%3D0.863800%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1&ktd[]=2614742765531496902736390193408&v=1&geo=28.99%7C-82.05&lper=100&vgde\_sa\_ijp=%7B%227E8O%22%3A9%2C%22L77%22%3Ak1jQJ%2C%22E-jM8zd%22%3Ak1jQJ%7D&lpid=&tsid=1005&hint=&cc=US&wsip=170763755&bca=0&ugd=4&vgde\_setid=Nfu&vgde\_chost=L1E8OLJQxj7QJ1LNw.NmY&cid=8CUI1F766&vi=1779120452877791742&vsid=4221220530017811&tdAdd[]=asnum%3D209&vgde\_test\_data\_struct=%7B%22EO7E8O%22%3Au%7D&zip=34491&vgd\_adprefflag=00&vgd\_adpref\_diff=1010&vgd\_fm\_lang=EN&vgd\_implt=3&vgd\_cage=0&vgd\_tsce=L1233-S1233&vgd\_l3\_sc=MA&vgd\_pdtid=1&vgd\_oscar=1&vgd\_ctrlid=O\_SERP&vgd\_nrrv=38824&vgd\_nrrmf=8301000480a&vgd\_nrrsf=scrr&vgd\_cty=summerfield&vgd\_csovr=0&vgd\_intc\_log=%7B%22impl\_type%22%3A%22skp%22%2C%22xvip%22%3A%22199.191.50.133%22%7D&vgd\_ifrmode=03&sbdrId=&verid=&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE&kbbq=%26asn%3D209&vgd\_ppvi=2152666605257810191&vgd\_wlstp=0&vgd\_vstrid=4221220530017811&vgd\_scsver=3238&vgd\_himglg=K0P0-O0K0-S0&vgd\_cache\_metadata=%7B%22kbb%22%3Afalse%7D&vgd\_cfud=251031&vgd\_optout=0&vgd\_l2shld=1&vgd\_akcip=71.0.69.178&vgd\_oreqf=one&vgd\_oresf=one&vgd\_och=0&vgd\_rensize=1279\_559&vgd\_scr\_h=1080&vgd\_scr\_w=1920&vgd\_col\_sch=l&vgd\_ect=3g&vgd\_be=0&vgd\_nmerr=1&tdAdd[]=uiparams%3D%3Brend\_w%3A1279%3Brend\_h%3A559&vgd\_sc=MA&hvsid=00001779120452613012627481609373&rc=0&rand=1779120453935&acid=undefined&matm=1779120453936&vgde\_ltimesrc=u&vgde\_ltime=uWAF&vgde\_rtime=uuHi&vgde\_etm=X&vgde\_timeObj=%7B%22juJ-JN%22%3Azxjj%2C%22jfjm1O%22%3Au9hF%2C%22QNLLQ71L7%22%3AFF%2C%22QNLLLJzOJL%22%3Ah%2C%22QNLLJ-JN%22%3AFiX%7D&vgd\_lhl=2328&vgd\_sbSup=1&vgd\_nrrs=38824&vgde\_cdeplbl=1E8Mzm7M1e18j1GjJ&vgd\_end=1"></script><script>window.l2s = Date.now();</script><style type="text/css">body{background-color: transparent;}</style><script data-tag="clientAssets">window.scVars={"\_mNL3":{"\_ip2allsc":"MA","\_ip2cty":"summerfield","akIp":"","asnum":"209","vi":"1779120452877791742"},"mp":{"lper":100,"meta":{"fp":"m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72","cme":"-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ=||WOR44ZnjshyX0FEZj6c52uG8KGTsvju\_|nAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU|b8KlCmE6kTENKxSBIehsQLbXBNKeHPZV|fkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY=|","ugd":"4","crid":"228450093","cid":"8CUI1F766","pid":"8POKS64T4","prid":"8PR11258V"},"misc":{"privacy":{},"purl":"https%3A%2F%2Fviproofingbrisbane.com.au%2F%3Ffp%3D-7%26tr\_uuid%3D20260519-0207-289e-89ba-d0d8b334fe5a","country\_code":"US","pk":"841624198","ybncaBidderId":"|1|4|459|313|460|9|262|461|319|462|7|6|92|132|223|","adxBidderId":"|3|8|153|","domain":"viproofingbrisbane.com.au","requrl":"https://viproofingbrisbane.com.au/?fp=-7\u0026tr\_uuid=20260519-0207-289e-89ba-d0d8b334fe5a","hN":"https://l.cdn-fileserver.com","lFN":"bqi.php","defAdch":"https://","adchId":"adprefid","kfkPxlDataObj":{"pxlHost":"l.cdn-fileserver.com","enDt":{"q":"","pt":1,"requrl":"https://viproofingbrisbane.com.au/?fp=-7\u0026tr\_uuid=20260519-0207-289e-89ba-d0d8b334fe5a","dn":"viproofingbrisbane.com.au","cid":"8CUI1F766","pid":"8POKS64T4","crid":"228450093","prid":"8PR11258V"}},"lgprp":{"l2type":"1","go\_ent":"1","canary":"1"},"brwHint":{"preConn":{"enable":true,"event":"1"},"linkpf":{}},"slpd":"1","serpRct":1,"pdtid":1,"tpid":"900015564"}},"lpipe":{"scsver":"3238","l2type":"dmola","himglg":"K0P0-O0K0-S0","cache\_metadata":"{\"kbb\":false}","kacointoss":false,"cfud":"251031","optout":"0","l2shld":1,"akcip":"71.0.69.178","oreqf":"one","oresf":"one","och":0},"vsid":"4221220530017811","bvsid":"4221220530017811000V10","tsce":"L1233-S1233","pvurl":"https://l.cdn-fileserver.com/bql.php?ctst=Default\u0026ksu=360\u0026fdkt=475\u0026vgde\_kbbh=fuoyxQBuGUBO\u0026kwd[]=Book+Your+Own+Appointment+Online\u0026kwt[]=475\u0026kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s\u0026kwp[]=1\u0026kid[]=479193624\u0026kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D4%7Ce\_mv%3D2605060%7Cakp%3D5%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D33497%7Cclid\_serp%3D12721%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.6870%7C7%3D0.0059%7C8%3D051811%7C13%3D0.0798%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D3814%7Cclpr%3D0.968200%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1\u0026ktd[]=2614529968614229072218593231104\u0026kwd[]=Walk-In+Showers+for+Bathrooms\u0026kwt[]=475\u0026kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s\u0026kwp[]=2\u0026kid[]=329739734\u0026kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D10%7Ce\_mv%3D2605060%7Cakp%3D7%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D5542%7Cclid\_serp%3D5542%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.3381%7C7%3D0.0033%7C8%3D051811%7C13%3D0.0763%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D62385%7Cclpr%3D1.000000%7Ccllvl%3D1%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1\u0026ktd[]=2614529968614229072218593231104\u0026kwd[]=Emergency+Roofing+Repairs+Near+Me\u0026kwt[]=475\u0026kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s\u0026kwp[]=3\u0026kid[]=1325419875\u0026kbc2[]=eset%3D1%7Ce\_st%3D847%7Ce\_tks%3D0%7Ck\_p\_r%3D0%7Ce\_mv%3D0%7Cakp%3D12%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D-2%7Cclid\_serp%3D-2%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D1.9493%7C7%3D0.0048%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D149362%7Cclpr%3D0.934500%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1\u0026ktd[]=2614588004137120298723446948096\u0026kwd[]=Roofing+Cost+Calculator\u0026kwt[]=475\u0026kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s\u0026kwp[]=4\u0026kid[]=24726078\u0026kbc2[]=eset%3D1%7Ce\_st%3D74%7Ce\_tks%3D0%7Ck\_p\_r%3D1%7Ce\_mv%3D2605060%7Cakp%3D1%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D7989%7Cclid\_serp%3D7989%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D0.6613%7C7%3D0.0047%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D59328%7Cclpr%3D1.000000%7Ccllvl%3D1%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1\u0026ktd[]=2614529968614224568618982637824\u0026kwd[]=Roofing+Materials+For+Replacement\u0026kwt[]=475\u0026kbc[]=6e64c1f606cf9f0ab513293b373fcdda.d2s\u0026kwp[]=5\u0026kid[]=1557317109\u0026kbc2[]=eset%3D1%7Ce\_st%3D847%7Ce\_tks%3D0%7Ck\_p\_r%3D0%7Ce\_mv%3D0%7Cakp%3D16%7C5%3D-1%7C6%3D-1%7C16%3D-1%7C19%3D0.00%7Cclid\_fz%3D-2%7Cclid\_serp%3D-2%7C24%3D0%7C25%3D0%7C22%3D0.6607%7C23%3D1.3034%7C7%3D0.0048%7C8%3D051811%7C13%3D0.0375%7C14%3D051812%7Ckus%3D5.0000%7Ckucs%3D5.0000%7Ckcucs%3D5.0000%7Ckcucs2%3D5.0000%7Ckssks%3D5.0000%7Crcid%3D215093%7Cclpr%3D0.863800%7Ccllvl%3D5%7Cokt%3D475%7Cbdkt%3D475%7Cps%3D1.000%7Cps\_id%3D1\u0026ktd[]=2614742765531496902736390193408\u0026v=1\u0026geo=28.99%7C-82.05\u0026lper=100\u0026vgde\_sa\_ijp=%7B%227E8O%22%3A9%2C%22L77%22%3Ak1jQJ%2C%22E-jM8zd%22%3Ak1jQJ%7D\u0026lpid=\u0026tsid=1005\u0026hint=\u0026cc=US\u0026wsip=170763755\u0026bca=0\u0026ugd=4\u0026vgde\_setid=Nfu\u0026vgde\_chost=L1E8OLJQxj7QJ1LNw.NmY\u0026cid=8CUI1F766\u0026vi=1779120452877791742\u0026vsid=4221220530017811\u0026tdAdd[]=asnum%3D209\u0026vgde\_test\_data\_struct=%7B%22EO7E8O%22%3Au%7D\u0026zip=34491\u0026vgd\_adprefflag=00\u0026vgd\_adpref\_diff=1010\u0026vgd\_fm\_lang=EN\u0026vgd\_implt=3\u0026vgd\_cage=0\u0026vgd\_tsce=L1233-S1233\u0026vgd\_l3\_sc=MA\u0026vgd\_pdtid=1\u0026vgd\_oscar=1\u0026vgd\_ctrlid=O\_SERP\u0026vgd\_nrrv=38824\u0026vgd\_nrrmf=8301000480a\u0026vgd\_nrrsf=scrr\u0026vgd\_cty=summerfield\u0026vgd\_csovr=0\u0026vgd\_intc\_log=%7B%22impl\_type%22%3A%22skp%22%2C%22xvip%22%3A%22199.191.50.133%22%7D","pvHConf":{},"lc":{"lHost":"l.cdn-fileserver.com","bqlP":"/bql.php","plrHost":"l.cdn-fileserver.com"},"nerrUrl":"//l.cdn-fileserver.com/nerrping.php?cid=8CUI1F766\u0026crid=228450093\u0026vi=1779120452877791742\u0026mf=8301000480a\u0026requrl=https%3A%2F%2Fviproofingbrisbane.com.au%2F%3Ffp%3D-7%26tr\_uuid%3D20260519-0207-289e-89ba-d0d8b334fe5a\u0026tsce=L1233-S1233\u0026vgd\_canary=0\u0026vgd\_source=one","scsver":"3238","l2mc":{},"vimpd":{"vimpp":{"vgd\_hb\_audit\_1":"","vgd\_hb\_audit\_2":"","vgd\_aref":0,"vgd\_arefsrc":"","vgd\_tsce":"L1233-S1233","vgd\_l2type":"dmola","vgd\_ydspr":"0","vgd\_cdv":"O3232","vgd\_cage":"0","vgd\_matchstr":"","vgd\_kwrf":"","vgd\_pgid":"","vgd\_pgids":0,"vgd\_pdtid":1,"vgd\_ecrid":"","vgd\_oreqf":"one","vgd\_oresf":"one","lf":3,"prid":"8PR11258V","cid":"8CUI1F766","crid":"228450093","requrl":"https://viproofingbrisbane.com.au/?fp=-7\u0026tr\_uuid=20260519-0207-289e-89ba-d0d8b334fe5a","chid":"","vi":"1779120452877791742","ugd":"4","cc":"US","sc":"MA","subBdr":"","hvsid":"","ybn\_cc\_exp":""},"disIVimp":0},"l2host":"rapidresultsearch.com","isSrcfull":true,"\_gcsaParams":{"pageLevelParams":{"pubId":"","styleId":"","ivt":false},"unitLevelParams":null,"kwdDumpData":{}},"\_uact":{"ctu":null}};</script><meta http-equiv="x-dns-prefetch-control" content="on"/><link rel="dns-prefetch" href="rapidresultsearch.com"/> <title>Viproofingbrisbane.com.au</title> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <style type="text/css">a,img{outline:0}\*{margin:0;padding:0}ol,ul{list-style:none}img{border:none}a{text-decoration:none;cursor:pointer}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}body{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-o-text-size-adjust:none;text-size-adjust:none}</style> <style type="text/css"> @font-face {font-family: "montserrat\_regular"; src: url("https://s.cdn-fileserver.com/\_\_media\_\_/fonts/montserrat\_regular/montserrat\_regular.eot"); src: url("https://s.cdn-fileserver.com/\_\_media\_\_/fonts/montserrat\_regular/montserrat\_regular.eot?#iefix") format("embedded-opentype"), url("https://s.cdn-fileserver.com/\_\_media\_\_/fonts/montserrat\_regular/montserrat\_regular.woff") format("woff"), url("https://s.cdn-fileserver.com/\_\_media\_\_/fonts/montserrat\_regular/montserrat\_regular.ttf") format("truetype"), url("https://s.cdn-fileserver.com/\_\_media\_\_/fonts/montserrat\_regular/montserrat\_regular.svg#montserrat\_regular") format("svg");, font-weight: normal;font-style: normal;font-display: swap;} body{height:100%;background:url("https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//bg1.png") no-repeat center center #10162c;background-size:cover;font-family:montserrat\_regular,arial,sans-serif;} .ios\_fix{width: 1px; min-width: 100%; \*width: 100%;} .wrapper{position: relative;} .heading{visibility: hidden; background-color: #10162c; word-wrap: break-word;text-align: center;font-size: 30px;color: #fff;font-family: Montserrat-bold,arial,sans-serif; , Arial, sans-serif;font-weight: bold; padding-top:60px;padding-bottom:20px; } .searches{color: #4d5673;font-size: 12px;margin: 0 0 16px;font-family: montserrat\_regular,arial,sans-serif; } li .content{position:relative;padding:0 50px 0 25px ; overflow: hidden;border-radius: 15px;background:#10162c;border: solid 4px #979797;} li .arrow{position:absolute;top:50%;transform: translateY(-50%); text-align:center;right:25px;color: #000000;} li .anchortext a{line-height:29px;max-height:87px;word-wrap: break-word; overflow: hidden;display: block; text-align: center; font-size:24px; color:#fff; font-weight:bold; font-family: Verdana,arial,sans-serif; text-transform:uppercase; } li:hover .content{background:#e09a00;} li:hover .anchortext a{color: ; text-decoration:;} .list\_wrapper{overflow: hidden;max-width: 560px; margin: 0 auto;padding: 30px 10px; } li{position: relative; overflow: hidden;margin-bottom: 10px;} Li:last-child{margin-bottom: none;} li .anchorhref{position: absolute; display: block; width: 100%; height: 100%; left: 0; top: 0; overflow: hidden;z-index: 999; background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAFoEvQfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA1JREFUeNpj+P//PwMACPwC/njEsrAAAAAASUVORK5CYII=') right top no-repeat;} li table{table-layout: fixed;width: 100%; word-wrap:break-word;} .content td{height: 114px;} .footer{text-align:center;font-family: arial,sans-serif;padding: 20px 10px;background-color: #10162c;width: 220px;margin: 0 auto;} .footer-links a{display: inline-block;line-height:20px; color: #4d5673 ;font-family: Arial, sans-serif;text-decoration: none;font-size: 12px;} /\* html,body,.ios\_fix,.wrapper,.list\_wrapper {height: 100%;} \*/ @media screen and (max-width:599px) { .list\_wrapper{background: #fff;padding-left: 20px;padding-right: 20px;} li .content{background-color: #17244a;border: none;} } </style> <div class="ios\_fix"> <div class="wrapper"> <div class="heading" style="visibility: visible;">viproofingbrisbane.com.au</div> <div class="list\_wrapper"> <div class="searches">Related Searches:</div> <ul class="list\_1"> <li> <div class="content"> <div class="arrow"> <img src="https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//arrrow.png"/> </div> <table width="100%" cellpadding="0" cellspacing="0" border="0" align="left"> <tbody><tr><td width="100%" align="left" valign="middle"> <div class="anchortext"><a href="https://rapidresultsearch.com/search.cfm?ule=3641&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=hvvUd6v3NdniBdpggvWB5VfB5dnBaWBf&pq=Book+Your+Own+Appointment+Online&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PFAzE%26JgNPb.tZAGbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIE%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIH%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIFFEtT%25TeJaW4o9fNg%25FIzGTGz%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.ZATb%25TeT%25FIb.bbHt%25TeA%25FIbHzAzz%25TezF%25FIb.bTtA%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIFAzE%25TeJagN%25FIb.tZAGbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJPevVg35fN9%2B%25GZ%2B-afJ5NvBWJ9%2B%25F-%2BRvQ5i1Nf%2B%25F-%2Bh39WBf99%2B%25GZ%2B+Nv43J5WmW5q%2BRvQ5i1Nf%2B%25F-%2Be1afB41N%2B%25GZ%2BRJXf43aWBs%2BRvQ5i1Nf%26UJW4PHbbEtt%26UWPETtztFZGE%26UV%2FPleEinIp%25FI%26UV4PB3aa%26UgPz%26U5PETH%26U54PGZzEHGttZAZzEGGtbTGGzAHtFGFzzbE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" id="dk1" name="dk1" target="\_blank" data-misc="{"dId":0,"ogkwd":"Book Your Own Appointment Online"}" data-proc-event="1">Book Your Own Appointment Online</a></div> </td></tr> </tbody></table> </div> <a href="https://rapidresultsearch.com/search.cfm?ule=3641&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=hvvUd6v3NdniBdpggvWB5VfB5dnBaWBf&pq=Book+Your+Own+Appointment+Online&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PFAzE%26JgNPb.tZAGbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIE%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIH%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIFFEtT%25TeJaW4o9fNg%25FIzGTGz%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.ZATb%25TeT%25FIb.bbHt%25TeA%25FIbHzAzz%25TezF%25FIb.bTtA%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIFAzE%25TeJagN%25FIb.tZAGbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJPevVg35fN9%2B%25GZ%2B-afJ5NvBWJ9%2B%25F-%2BRvQ5i1Nf%2B%25F-%2Bh39WBf99%2B%25GZ%2B+Nv43J5WmW5q%2BRvQ5i1Nf%2B%25F-%2Be1afB41N%2B%25GZ%2BRJXf43aWBs%2BRvQ5i1Nf%26UJW4PHbbEtt%26UWPETtztFZGE%26UV%2FPleEinIp%25FI%26UV4PB3aa%26UgPz%26U5PETH%26U54PGZzEHGttZAZzEGGtbTGGzAHtFGFzzbE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" class="dak1 anchorhref" data-proc-kwd="1" target="\_blank" data-proc-event="1"></a> </li> <li> <div class="content"> <div class="arrow"> <img src="https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//arrrow.png"/> </div> <table width="100%" cellpadding="0" cellspacing="0" border="0" align="left"> <tbody><tr><td width="100%" align="left" valign="middle"> <div class="anchortext"><a href="https://rapidresultsearch.com/search.cfm?ule=3551&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=S1aUcKBdRXvifN9dQvNdh15XNvvV9&pq=Walk-In+Showers+for+Bathrooms&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPz%26JaW4PZGFAH%26JgNPz.bbbbbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIzb%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIT%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIHHEG%25TeJaW4o9fNg%25FIHHEG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.FFAz%25TeT%25FIb.bbFF%25TeA%25FIbHzAzz%25TezF%25FIb.bTZF%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIZGFAH%25TeJagN%25FIz.bbbbbb%25TeJaama%25FIz%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2Bhf4%2B%25GZ%2Bh15X%2B%25F-%2Bh15XNvvV%26UJW4PHbbAFH%26UWPFGtTFtTFE%26UV%2FPleEYLIl%25FI%26UV4PB3aa%26UgPG%26U5PETH%26U54PGZzEHGttZAZzEGGtbTGGzAHtFGFzzbE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" id="dk2" name="dk2" target="\_blank" data-misc="{"dId":0,"ogkwd":"Walk-In Showers for Bathrooms"}" data-proc-event="1">Walk-In Showers for Bathrooms</a></div> </td></tr> </tbody></table> </div> <a href="https://rapidresultsearch.com/search.cfm?ule=3551&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=S1aUcKBdRXvifN9dQvNdh15XNvvV9&pq=Walk-In+Showers+for+Bathrooms&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPz%26JaW4PZGFAH%26JgNPz.bbbbbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIzb%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIT%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIHHEG%25TeJaW4o9fNg%25FIHHEG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.FFAz%25TeT%25FIb.bbFF%25TeA%25FIbHzAzz%25TezF%25FIb.bTZF%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIZGFAH%25TeJagN%25FIz.bbbbbb%25TeJaama%25FIz%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2Bhf4%2B%25GZ%2Bh15X%2B%25F-%2Bh15XNvvV%26UJW4PHbbAFH%26UWPFGtTFtTFE%26UV%2FPleEYLIl%25FI%26UV4PB3aa%26UgPG%26U5PETH%26U54PGZzEHGttZAZzEGGtbTGGzAHtFGFzzbE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" class="dak2 anchorhref" data-proc-kwd="1" target="\_blank" data-proc-event="1"></a> </li> <li> <div class="content"> <div class="arrow"> <img src="https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//arrrow.png"/> </div> <table width="100%" cellpadding="0" cellspacing="0" border="0" align="left"> <tbody><tr><td width="100%" align="left" valign="middle"> <div class="anchortext"><a href="https://rapidresultsearch.com/search.cfm?ule=3552&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=-VfNsfBJqd7vvQWBsd7fg1WN9dLf1Ndlf&pq=Emergency+Roofing+Repairs+Near+Me&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PzEtFZG%26JgNPb.tFEHbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FIAET%25Tefo5U9%25FIb%25TeUogoN%25FIb%25TefoVm%25FIb%25Te1Ug%25FIzG%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIcG%25TeJaW4o9fNg%25FIcG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIz.tEtF%25TeT%25FIb.bbEA%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIzEtFZG%25TeJagN%25FIb.tFEHbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPzFGHEztATH%26UV%2FPleEYlIp%25FI%26UV4PB3aa%26UgPF%26U5PETH%26U54PGZzEHAAbbEzFTzGbGtATGFEEZtEAbtZ%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" id="dk3" name="dk3" target="\_blank" data-misc="{"dId":0,"ogkwd":"Emergency Roofing Repairs Near Me"}" data-proc-event="1">Emergency Roofing Repairs Near Me</a></div> </td></tr> </tbody></table> </div> <a href="https://rapidresultsearch.com/search.cfm?ule=3552&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=-VfNsfBJqd7vvQWBsd7fg1WN9dLf1Ndlf&pq=Emergency+Roofing+Repairs+Near+Me&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PzEtFZG%26JgNPb.tFEHbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FIAET%25Tefo5U9%25FIb%25TeUogoN%25FIb%25TefoVm%25FIb%25Te1Ug%25FIzG%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIcG%25TeJaW4o9fNg%25FIcG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIz.tEtF%25TeT%25FIb.bbEA%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIzEtFZG%25TeJagN%25FIb.tFEHbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPzFGHEztATH%26UV%2FPleEYlIp%25FI%26UV4PB3aa%26UgPF%26U5PETH%26U54PGZzEHAAbbEzFTzGbGtATGFEEZtEAbtZ%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" class="dak3 anchorhref" data-proc-kwd="1" target="\_blank" data-proc-event="1"></a> </li> <li> <div class="content"> <div class="arrow"> <img src="https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//arrrow.png"/> </div> <table width="100%" cellpadding="0" cellspacing="0" border="0" align="left"> <tbody><tr><td width="100%" align="left" valign="middle"> <div class="anchortext"><a href="https://rapidresultsearch.com/search.cfm?ule=3536&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=7vvQWBsdev95de1aJ3a15vN&pq=Roofing+Cost+Calculator&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPz%26JaW4PHtFGA%26JgNPz.bbbbbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIz%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIz%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FITtAt%25TeJaW4o9fNg%25FITtAt%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.ZZzF%25TeT%25FIb.bbET%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIHtFGA%25TeJagN%25FIz.bbbbbb%25TeJaama%25FIz%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPGETGZbTA%26UV%2FPleEYlI-%25FI%26UV4PB3aa%26UgPE%26U5PETH%26U54PGZzEHGttZAZzEGGEHZAZzAtAGZFTAGE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" id="dk4" name="dk4" target="\_blank" data-misc="{"dId":0,"ogkwd":"Roofing Cost Calculator"}" data-proc-event="1">Roofing Cost Calculator</a></div> </td></tr> </tbody></table> </div> <a href="https://rapidresultsearch.com/search.cfm?ule=3536&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=7vvQWBsdev95de1aJ3a15vN&pq=Roofing+Cost+Calculator&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPz%26JaW4PHtFGA%26JgNPz.bbbbbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FITE%25Tefo5U9%25FIb%25TeUogoN%25FIz%25TefoVm%25FIGZbHbZb%25Te1Ug%25FIz%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FITtAt%25TeJaW4o9fNg%25FITtAt%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIb.ZZzF%25TeT%25FIb.bbET%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIHtFGA%25TeJagN%25FIz.bbbbbb%25TeJaama%25FIz%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPGETGZbTA%26UV%2FPleEYlI-%25FI%26UV4PB3aa%26UgPE%26U5PETH%26U54PGZzEHGttZAZzEGGEHZAZzAtAGZFTAGE%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" class="dak4 anchorhref" data-proc-kwd="1" target="\_blank" data-proc-event="1"></a> </li> <li> <div class="content"> <div class="arrow"> <img src="https://s.cdn-fileserver.com/\_\_media\_\_/pics/9000/09/593//arrrow.png"/> </div> <table width="100%" cellpadding="0" cellspacing="0" border="0" align="left"> <tbody><tr><td width="100%" align="left" valign="middle"> <div class="anchortext"><a href="https://rapidresultsearch.com/search.cfm?ule=3552&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=7vvQWBsdl15fNW1a9d\_vNd7fga1JfVfB5&pq=Roofing+Materials+For+Replacement&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PGzHbtF%26JgNPb.AZFAbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FIAET%25Tefo5U9%25FIb%25TeUogoN%25FIb%25TefoVm%25FIb%25Te1Ug%25FIzZ%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIcG%25TeJaW4o9fNg%25FIcG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIz.FbFE%25TeT%25FIb.bbEA%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIGzHbtF%25TeJagN%25FIb.AZFAbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPzHHTFzTzbt%26UV%2FPleEYlIp%25FI%26UV4PB3aa%26UgPH%26U5PETH%26U54PGZzETEGTZHHFzEtZtbGTFZFtbztFEbA%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" id="dk5" name="dk5" target="\_blank" data-misc="{"dId":0,"ogkwd":"Roofing Materials For Replacement"}" data-proc-event="1">Roofing Materials For Replacement</a></div> </td></tr> </tbody></table> </div> <a href="https://rapidresultsearch.com/search.cfm?ule=3552&&lgplp=jf75EJ%3AOYmj1&prvep=g4ztEd5Gptti639Yk9qpGA%3D%3D&ktr=1&vi=1779120452877791742&cq=7vvQWBsdl15fNW1a9d\_vNd7fga1JfVfB5&pq=Roofing+Materials+For+Replacement&vsid=4221220530017811&sc=MA&oksu=360&prid=8PR11258V&cid=8CUI1F766&pid=8POKS64T4&crid=228450093&https=1&rms=1779120453&size=1154x689&ksu=360&ugd=4&tsid=1005&asn=209&radepth=0&kwep=JaPH%26JaW4PGzHbtF%26JgNPb.AZFAbb%26Q4U5PETH%26U%2FJPZfZEJzQZbZJQtQb1%2FHzFGtF%2FFTFQJ441.4G9%26U%2FJGPf9f5%25FIz%25Tefo95%25FIAET%25Tefo5U9%25FIb%25TeUogoN%25FIb%25TefoVm%25FIb%25Te1Ug%25FIzZ%25TeH%25FIcz%25TeZ%25FIcz%25TezZ%25FIcz%25Tezt%25FIb.bb%25TeJaW4oQC%25FIcG%25TeJaW4o9fNg%25FIcG%25TeGE%25FIb%25TeGH%25FIb%25TeGG%25FIb.ZZbT%25TeGF%25FIz.FbFE%25TeT%25FIb.bbEA%25TeA%25FIbHzAzz%25TezF%25FIb.bFTH%25TezE%25FIbHzAzG%25TeU39%25FIH.bbbb%25TeU3J9%25FIH.bbbb%25TeUJ3J9%25FIH.bbbb%25TeUJ3J9G%25FIH.bbbb%25TeU99U9%25FIH.bbbb%25TeNJW4%25FIGzHbtF%25TeJagN%25FIb.AZFAbb%25TeJaama%25FIH%25TevU5%25FIETH%25Te%2F4U5%25FIETH%25Teg9%25FIz.bbb%25Teg9oW4%25FIz%26UJP0vVf%2B%25GZ%2BO1N4fB%2B%25F-%2B0vVf%2BKVgNvmfVfB5%2B%25F-%2B7vvQWBs%26UJW4PHbbAHA%26UWPzHHTFzTzbt%26UV%2FPleEYlIp%25FI%26UV4PB3aa%26UgPH%26U5PETH%26U54PGZzETEGTZHHFzEtZtbGTFZFtbztFEbA%265k%2FaUPz%25Tez&oscar=1&tsce=L1233-S1233&intcl=-e8E%3Auii.uiu.X9.uAA%7C8YEjM75EJ%3AQUE&mprpslog=12VaGvIlbl2bpw4Nf4dmgKgjIbBdXo7DdtX\_LC5E3ChEbzYkN8QJwkpl39PIIJhBN7Q\_CeqFfrBaOxH3IbzRD6sv2-TlAklNBiSofIKdhutmfRKZQv\_mK0q\_\_QTdJYvEVnVjJCpI7tIFFWuajvzV\_nDpn4XYG757jtTqgJ9SzWdSuWlMbBk\_Tg8m-saQatYII8tpSCMwSLE=&acid=undefined&verid=&sbdrId=&hvsid=00001779120452613012627481609373&vgd\_ifrmode=03&&fp=m3U1K237Z0DkgtFh9dNLvwlP5O1UbNcSk6PwcJNsRr6pwFWSrSHgXeNkKOAXxJxjArAKod3Sbqsa9QuBBhqAzfEBbaPCkTFXbCgfgKamfXrdTI\_y4rSA39R6rbYJuxwCG-kxnbD8CnJxr1uKCRJ6l6ycnevMoi72&cme=-JjkHR0z5qWvFu1CJgk-Msbix\_ITSzYivqM9\_MQs2ZnEHfmp-jG7uQwP7ld9TCGgf8OAtjov4FwRFqUKmhOPrJoCWeRfbJ37pvqYEbYGanY6kvRlZl9poMyGIzTuHx2ygexChnstGpMyhTXyihk2mnh4eACm1dn6Tu3cI73zADXPgQgpwlUfrWjQKpxnns4YEyWXkDvri5Hw\_F1Anqm3S1AY1XDqkushPq8--KbB4NU5xmcl9beNmEqYKsPuUa2UbW0rVQzFsOQ%3D%7C%7CWOR44ZnjshyX0FEZj6c52uG8KGTsvju\_%7CnAS8-alJlhclmOAD15qG9zHan5Du-Vkizm-Gg51oI79sFSwJ2g4-zIuOkFgLUKVvR6IfqiojqYahO6kh2QmlWH9fbPY0U0lgHqeDQbUHJyBOuhi4xxY6O0GlMATSe\_pU%7Cb8KlCmE6kTENKxSBIehsQLbXBNKeHPZV%7CfkD7Q3FHGE5v7ely0NhJKUiINUhcRJQYwcz0AzUq6i4oFcBJ6Wxzhbb\_qDhdc8-KB46Z6mUUgZd9hRxdt6uugbkko-K6E1Ikiht3XPrRnnoT8IZNPhKQBRYeXuSGrfO5ArXSj6ouANGEKPi\_69xFloDNmHUWZTqwsVnMw-uY4HZ4WeLbHn17HbpBbj1wuYtWJRo9XAGXvdbGV0S83N1FwITeybnGk2EA5cfZVTQq\_W2kLYvCBttVUMR4vdlISVjcopVvVD1pGEB14DmSyDNMFrpWbIvT14D\_MEPUr5y37Bv4O1JcB0mvlx2USAYWsGvatgk-4\_qOSlpgbEJOw\_jXBUb4jScni9s034HNbVK6TK9I2fA8fGRqok2ncJ2rR3kE2v-MLa1KZC6cshTALFPTLkcqlDtyQTqfU460OPBhLs\_FSgJqXvJRZW-EqrI6Aou2xqad4KrM8C11qgsFlSdwYLnWzcp-9jMfKDlRmL53w9LRzYXJv\_oYVM5d00vujSYvavXTHIAFHY1vPd25ChWa2IdDx2e3c0nN1MWudCaPHSeZqQTntZckqfauludd00d67pZWcr4TkRciYVcHjjoaWLGw9lZOgywStZQRBlm\_UBWrVLFm3X5JrgjY3Fxp9fWFdHNaUCqOy8OhLAf7xuHT1ZLDyAAFrK6wQWAFjcw62fP0hfqpKw483WSWKbZfCl8UDDzlroYrN5exNMGss8B-Zo\_gQrmk6-bvEPjQQPuan3fkmXjFpeInSw084quOaglIqeCW5QIR7ApNwX1CDLQ\_BUBds\_IRxqriI8xwDQRT4B-YYsQpLSdqBSULLcFdzQ8iHRirK\_9kgmDNxPZWHqT55oJY28pxksw2ZO\_MyFIgvqOSQpJAPFrqwYgRAzjKKkZ0gvcYph4sKTY%3D%7C&bd=-7%231080%231920&lgpl=EEe8%3AfuXfFFFF9XfXhWu9uiu%7CBjQ7E%3A9%7CeQ7L8O%3AHffuff9XA99uhWuu%7CQNQeJL%3AAfAW%7Cw8Yyjy%3AC909oa9C9ob9%7CN1NwJMYJ71O171%3A%7B%22UGG%22%23\*k1jQJ%7D%7CU1Nm8z7mQQ%3Ak1jQJ%7CNkxO%3AfXu9Au%7CmE7mx7%3A9%7CjfQwjO%3Au%7C1UN8E%3Ahu.9.Fi.uhW%7CmLJ%20k%3AmzJ%7CmLJQk%3AmzJ%7CmNw%3A9%7CLJzQ8lJ%3AufhiMXXi%7CQNLMw%3Au9W9%7CQNLMB%3Auif9%7CNmjMQNw%3Aj%7CJN7%3AAy%7CGJ%3A9&ure=1" class="dak5 anchorhref" data-proc-kwd="1" target="\_blank" data-proc-event="1"></a> </li> </ul> </div> <div class="footer"> <footer class="footer-links"> <a href="https://skenzo.com/sk-privacy.php" target="\_blank">Privacy policy</a> </footer> </div> </div> </div> <script> var pubUrl = "https://viproofingbrisbane.com.au/?fp=-7&tr\_uuid=20260519-0207-289e-89ba-d0d8b334fe5a"; var dynamicDomainName = new URL(pubUrl).searchParams.get("dn"); var fallbackDomainName = "viproofingbrisbane" + "." + "com.au"; var domainName; if(dynamicDomainName) { domainName = dynamicDomainName; } else { domainName = fallbackDomainName; } document.querySelector(".wrapper .heading").textContent = domainName; document.querySelector(".wrapper .heading").style.visibility = "visible"; </script> <script>var $01,$00;!function(){"use strict";var i={},a={};function u(t){return"function"==typeof t}$01=function t(r,n){var o,c,e=[];for(c in r)r.hasOwnProperty(c)&&("object"==typeof(o=r[c])||void 0===o?e.push(o):(void 0===i[o]&&(i[o]=t(a[o].deps,a[o].callback)),e.push(i[o])));return u(n)?n.apply(this,e):e},$00=function(t,r,n){if(u(r)&&(n=r,r=[]),void 0===(o=t)||""===o||null===o||(o=r,"[object Array]"!==Object.prototype.toString.call(o))||!u(n))return!1;var o;a[t]={deps:r,callback:n}}}();$00("util",[],function(){"use strict";var t=[],r=window.scVars&&window.scVars.isSrcfull,n=window.scVars&&window.scVars.jtag;function e(n,t){var r,e,o="",i=!!t,u=i?t:n;for(r in u)u.hasOwnProperty(r)&&(i&&(r=t[r]),a(n[r]))&&("object"!=typeof(e=n[r])||!1!==e.isUrlEntity)&&(o+=p(r,"object"==typeof n[r]?n[r].value:n[r]));return o}function o(n,t){for(var r,e={},o=n.split("&"),i=o.length;i--;)c((r=o[i].split("="))[0])&&(e[r[0]]=t?$(r[1]):r[1]);return e}function u(n){return"[object Array]"===Object.prototype.toString.call(n)}function i(n){return"function"==typeof n}function c(n){return"string"==typeof n&&""!==n}function a(n){switch(typeof n){case"string":return c(n);case"object":return null!==n;case"number":case"boolean":return!0;default:return!1}}function f(){return String.fromCharCode(100,111,99,117,109,101,110,116)}function s(){if(!r){var n;try{window.parent&&"object"==typeof window.parent.\_mNDetails&&(n=window.parent)}catch(n){}return n}}function p(n,t){return c(t)||"number"==typeof t?"&"+encodeURIComponent(n)+"="+encodeURIComponent(t):""}function l(n,t){if(a(n)){var r=0,e=n.length;if(u(n))for(;r<e;r++)t.call(n[r],n[r],r,e);else for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.call(n[r],n[r],r,0)}}function w(n){return n&&"object"==typeof n&&!u(n)}function h(n,t,r){void 0===t&&(t=9);for(var e="fnAtVWuFLkzK7/pxsTUlChSE-Q\_Pj=wb4ogM0dvBGHmyc9OeRZqY5NiaJD2 3XI816r",o=(c(r)&&(e=r),n+="",""),i=0;i<n.length;i++){var u=n.charAt(i),a=e.indexOf(u);o+=0<=a?e.charAt((a+t)%e.length):u}return o}function d(n,t){var r=n.split("?");if(c(t)&&1<r.length){n=r[0]+"?","&"!=t[t.length-1]&&(t+="&"),n+=t;for(var e=1;e<r.length;e++)n+=r[e]}return n}function $(t){try{return decodeURIComponent(t)}catch(n){return t}}function y(n,t){return!!c(n)&&c(t)&&-1!==n.indexOf(t)}return{$4m:function(){if(n)return!1;if(!r)try{if(window.frameElement)return!1}catch(n){}return!0},$4n:function(){var n=navigator.userAgent;return(y(n,"Trident")||y(n,"MSIE"))&&a(n=/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(n))&&a(n[1])?parseFloat(n[1]):-1},$4o:y,$4p:i,$4q:c,$4r:a,$4s:function(n){return a(n)&&!isNaN(n)},$4t:function(n,t){return n.replace("x",t=t||"\_")},$4u:function(n,t){t=!!t||!1;var r=n.indexOf("?");return r<0?{}:o(n.substring(r+1),t)},$4v:o,getLayer1WindowObject:s,$4w:function(){var n=s();if(a(n))return n[f()]},$4x:function(){var n=null;return n=window&&window.top?window.top[f()]:n},$4y:f,$4z:e,$50:p,trim:function(n){return n.trim()},$51:new function(){var n,t={},r=!1;this.start=function(){n=(new Date).getTime(),r=!0},this.stop=function(){(new Date).getTime(),r=!1},this.diff=function(){return(new Date).getTime()-n},this.tick=function(n){t[n]={},t[n].startTime=r?this.diff():-1},this.getTime=function(n){return t[n]?this.diff()-t[n].startTime:-1}},$52:function(n,t,r){var e=document.createElement("script"),o=document.getElementsByTagName("script")[0];e.type="text/javascript",n&&""!=n&&(e.src=n),i(t)&&(e.onload=t),i(r)&&(e.onerror=r),o.parentNode.insertBefore(e,o)},$53:function(n){for(var t in n)if(n.hasOwnProperty(t))return!1;return!0},$54:w,$55:function(n){var r;return w(n)?(r={},l(n,function(n,t){(a(n)||i(n))&&(r[t]=n)}),r):n},$56:function(n,t){return Math.floor(Math.random()\*(t-n+1)+n)},$57:function(n){return t[n]||""},$58:function(n){t[n]=(new Date).getTime()},$59:h,$5$:function(n,t,r){return h(n,r.length-(t=void 0===t?9:t),r)},$5A:function(n,t,r){return d(n,t+"="+encodeURIComponent(r)+"&")},$5B:d,$5C:function(n,t){var r,e,o={};for(r in n)n.hasOwnProperty(r)&&(o[r]=n[r]);for(e in t)t.hasOwnProperty(e)&&(o[e]=t[e]);return o},$5D:function n(t,r){var e={},o=w(t),i=w(r);if(o||i){if(!o&&i)return r;if(o&&!i)return t;for(var u in t)t.hasOwnProperty(u)&&(e[u]=t[u]);for(var u in r)r.hasOwnProperty(u)&&(w(t[u])&&w(r[u])?e[u]=n(t[u],r[u]):e[u]=r[u]);return e}return{}},each:l,$5E:u,$5F:function(n,t){if(u(n)){t=t.toUpperCase();for(var r=0;r<n.length;r++)if(n[r].toUpperCase()==t)return!0}return!1},truncateUrl:function(t,n,r){r=r||!1;var e=10;for(-1!==n&&(t=t.substring(0,n=r?n:n&&999<n?n:4e3));0<e--;)try{decodeURIComponent(t);break}catch(n){t=t.substring(0,t.length-1)}return t},any:function(n,t){if(a(n)){i(t)||(t=function(n,t){return!!n});var r,e=0,o=n.length;if(u(n)){for(;e<o;e++)if(a(r=t.call(n[e],n[e],e)))return r}else for(e in n)if(n.hasOwnProperty(e)&&a(r=t.call(n[e],n[e],e)))return r}},$5G:$,$5H:function(n){n=$(n);var t=new RegExp("^http(?:s)?://([^/]+)","im");return(n=n.match(t))?n[1].toString():""},$5I:function(){return!(!window.history||!window.history.replaceState||"function"!=typeof window.history.replaceState)},$5J:e,$5K:function(){if(!r){var n;try{window.parent&&"object"==typeof window.parent.\_mNDetails&&(n=window.parent),window.parent&&window.parent.parent&&"object"==typeof window.parent.parent.\_mNDetails&&(n=window.parent.parent)}catch(n){}return n}},$5L:function(n){return c(n)?encodeURIComponent(n):""},$5M:function(n,t){return n.getElementsByClassName(t)},$5N:function(n,t){a(n)&&l(n=Array.prototype.slice.call(n),t)},$5O:function(n,t){return t=t.replace(/[\[\]]/g,"\\$&"),t=new RegExp("(&"+t+"=)([^&]+)"),n.replace(t,"")},$5P:function(n,t){var r;return c(n)&&c(t)?((r=new URL(n)).hostname=t,r.href):n},$5Q:function(n,t,r){if(!w(n)&&!u(n))return r;for(var e=n,o=0;o<t.length;o++){var i=t[o];if(!e.hasOwnProperty(i))return r;e=e[i]}return e},$5R:function(n){var t;try{t=$01([n])[0]}catch(n){t=null}return t}}});$00("domutil",["util"],function(i){var t=window.scVars&&window.scVars.jtag;function e(){try{var t=i.$4x();if(t&&t.documentElement&&t.documentElement.scrollHeight)return t.documentElement.scrollHeight}catch(t){}return""}function r(t){try{if(t&&t.top&&t.top.document)return!1}catch(t){}return!0}function n(t,n){try{if(i.$4q(n)){var e=t.document;if(void 0!==t["inner"+n])return t["inner"+n];if(e.documentElement&&void 0!==e.documentElement["client"+n])return e.documentElement["client"+n];if(e.body&&void 0!==e.body["client"+n])return e.body["client"+n];if(t.contentDocument&&void 0!==t.contentDocument.body["client"+n])return t.contentDocument.body["client"+n]}}catch(t){}return""}function o(t){return n(t,"Width")}function c(t){return n(t,"Height")}function u(t,n){return t&&n?i.$4t(Math.round(t)+"x"+Math.round(n)):i.$4t(o(window)+"x"+c(window))}return{$4B:function(t,n){i.$4q(n)&&!t.classList.contains(n)&&(t.className+=" "+n+" ")},$4C:function(t,n){return t.className=t.className.replace(new RegExp(n,"g"),"").replace(/\s{2,}/g," ").replace(/^\s\s\*/,"").replace(/\s\s\*$/,""),t},$4D:e,$4E:r,$4F:function(){var t="",n="";return window&&window.screen&&(t=window.screen.height||t,n=window.screen.width||n),{height:t,width:n}},$4G:c,$4H:o,$4I:u,$36:function(t){var n={};try{t||!1===r(window)&&(t=function t(n,e){try{var r;n!=top&&n.frameElement&&n.frameElement.getBoundingClientRect()&&(r=n.frameElement.getBoundingClientRect(),e.x+=r.x,e.y+=r.y,e.width+=r.width,e.height+=r.height,e=t(n.parent,e))}catch(t){}return e}(window,{x:0,y:0,width:0,height:0})),t&&(t.x||t.y)&&(n.x\_pos=Math.round(t.x),n.y\_pos=Math.round(t.y)),t&&(t.width||t.height)&&(n.rensize=u(t.width,t.height))}catch(t){}return n.rensize||(n.rensize=u()),n.ren\_page\_h=e(),n},$4J:function(t){return i.$4r(t.origin)?t.origin:i.$4r(t.protocol)&&i.$4r(t.hostname)?t.protocol+"//"+t.hostname:void 0},$4K:function(t,n){i.$4q(n)&&t.setAttribute("target",n)},$4L:function(){return t?document.shadowHost||document.querySelector('[id^="\_mN\_main\_"]'):window.frameElement},$4M:function(r,t){i.each(t,function(t,n){var e;"string"==typeof t&&t.includes("!important")?(e=t.replace("!important","").trim(),r.style.setProperty(n,e,"important")):r.style.setProperty(n,t)})}}});$00("hintutil",["util"],function(c){return{$5i:function(e,t,n){if(c.$4q(t))try{var r=document.createElement("link");r.rel=e,r.href=t,c.$4q(n)&&(r.crossOrigin=n),(document.head||document.getElementsByTagName("head")[0]).appendChild(r)}catch(e){}},$5j:function(e){try{return document.createElement("link").relList.supports(e)}catch(e){}return!1}}});$00("commonconstants",[],function(){"use strict";function $(){}return $.$09={$0Y:"rand",$0Z:"keywordsLoadTimeStamp"},$.$0$={$0\_:"winCollectionSet",$0a:"blockHoverImpression",$0b:"L3SF::",$0c:"L3SF"},$.$0A={$0d:"winProv",$0e:"subBdr",$0f:"ext\_win",$0g:"is\_native",$0h:"natAdCode",$0i:"refreshConfig",$0j:"refreshImp",$0k:"bidData",$0l:"matchString",$0m:"bid",$0n:"rtbsTime",$0o:"winReason",$0p:"aid",$0q:"logFunc",$0r:"dfpTgt",$0s:"mnAxbx"},$.$0B={$0t:"92"},$.$0C={$0u:"GENERIC",$0v:"RA",$0w:"ADS"},$.$0D={ADS:"internal",FADS:"internal",$0x:"web",$0y:"kwds",$0z:"external"},$.$0E={ADS:"ad",$0y:"keyword",$0z:"external",$10:"native"},$.$0F={$11:"t w x y z",$12:"% %22 %2c %3a %20"},$.$0G={$13:"lgpl",$14:"lgplp",$15:"rtlg",$16:"rtlgp",$17:"vgd\_",$18:"vgde\_",$19:"rensize",$1$:"erpm",$1A:"scr\_h",$1B:"scr\_w",$1C:"vstrid",$1D:"l2type",$1E:"optout",$0k:"bdata",$1F:"oathbf",$1G:"ect",$1H:"resdnv2",$1I:"col\_sch"},$.LANDING\_PAGE\_DWELL\_TIME\_TRACKING={$1J:"tsop",$1K:"atvt",$1L:"aivc",$1M:"aivta",$1N:"view\_id",$1O:"evtn",$1P:"interval",$1Q:"timeout",$1R:"pagehide",$1S:"page\_id",$1T:"kwof",$1U:"bfcache"},$.CHECKPOINT\_TRACKER={CORE:"scrr-core",$1V:"scrr-kwdprc",$1W:"scrr-bfpv",$1X:"scrr-loginit",$1Y:"scrr-handlelog"},$});$00("eventlib",["util","commonconstants"],function(c,a){"use strict";var o={},i=!1;function r(t,n){var e,n=(n=n||{}).capture||!1;return i?(e={capture:n},c.$5F(["touchstart","touchmove"],t)&&(e.passive=!0),e):n}function u(t,n){(c.$4q(t)||c.$4p(n))&&(o[t]=o[t]||[],o[t].push(n))}function v(t,n){c.$4q(t)&&c.each(o[t],function(t){t.call(null,n)})}function $(t,n){var e,i,a="live\_"+(t||"gbl");o[a]=o[a]||{},o[a]&&1===o[a].$4N?(e=n,i=o[a].$4O||{},c.$4p(e)&&e(i)):(o[a]={$4P:1},u(t,n))}try{var t=Object.defineProperty({},"passive",{get:function(){i=!0}}),n=function(){};window.addEventListener("mn",n,t),window.removeEventListener("mn",n,t)}catch(t){}return{$3s:function(t,n,e,i){t.addEventListener?t.addEventListener(n,e,r(n,i)):t.attachEvent&&t.attachEvent("on"+n,e)},$4Q:function(t,n,e,i){t.removeEventListener?t.removeEventListener(n,e,r(n,i)):t.detachEvent&&t.detachEvent("on"+n,e)},$0J:function(t,n,e,i){try{if(!c.$4m())return void window.parent.\_mNDetails.triggerAdTagEvent(n,t,e,i)}catch(t){}(t={type:t,mnEvnId:n,preventDelete:e,params:i||{},vi:window.\_mNL3&&window.\_mNL3.vi?window.\_mNL3.vi:""}).params.l3Src=1,window.parent.postMessage(JSON.stringify(t),"\*")},addToEventQueue:u,$4R:v,$4S:function(t,n){c.$4q(t)&&(v(t,n),o[t]=[])},$4T:function(t,n,e){var i;c.$4m()?$(a.$0$.$0b+t,e):(i=c.$5K())&&i.\_mNDetails&&i.\_mNDetails.$4W&&i.\_mNDetails.$4W(t,n,function(t,n){try{e.call(null,n)}catch(t){}})},$4U:function(t,n,e){var i;c.$4m()?u(a.$0$.$0b+t,e):(i=c.$5K())&&i.\_mNDetails&&i.\_mNDetails.addToEventQueue&&i.\_mNDetails.addToEventQueue(t,n,function(t,n){try{e.call(null,n)}catch(t){}})},$4V:function(t,n){var e="live\_"+(t||"gbl"),i=(o[e]=o[e]||{},o[e]&&1===o[e].$4P);o[e]={$4N:1,$4O:n},i&&v(t,n)},$4W:$}});$00("cookie-util",[],function(){return{mngc:function(e){try{var n,t=document.cookie.indexOf(e+"="),o=t+e.length+1;return t||e==document.cookie.substring(0,e.length)?-1==t?null:(-1==(n=document.cookie.indexOf(";",o))&&(n=document.cookie.length),unescape(document.cookie.substring(o,n))):null}catch(e){return null}},mnsc:function(e,n,t,o,c,i,u){try{u=u||"lax";var r=new Date,a=(r.setTime(r.getTime()),"none"===u.toLowerCase()&&(i=!0),t=t&&1e3\*t\*60\*60\*24,new Date(r.getTime()+t));document.cookie=e+"="+escape(n)+(t?";expires="+a.toGMTString():"")+(o?";path="+o:"")+(c?";domain="+c:"")+";samesite="+u+(i?";secure":"")}catch(e){}}}});$00("urlutil",["util"],function(e){"use strict";function u(n,t,r){n=n.split(/#(.\*)/);return n[0]+"&"+t+"="+r+(e.$4r(n[1])?"#"+n[1]:"")}function i(n,t){t=new RegExp("([&?])"+t+"=[^&#]\*(&?)","gi");return n.replace(t,function(n,t,r){return"?"===t||"&"===r?"&"===t?r:t:""})}function r(n,t){var r="";return e.$4q(n)&&(n=n.split("&"),e.each(n,function(n){2===(n=n.split("=")).length&&n[0]==t&&(r=n[1])})),r}return{$4a:u,$4b:function(n,t,r){return(n=n.split(/#(.\*)/))[0]+"#"+(e.$4r(n[1])?n[1]:"")+"&"+t+"="+r},$4c:function(n){return"https:"==n.substring(0,6)?"https":"http"},$4d:i,$4e:function(n,t){var r=n.split("#");return r.length<2?n:(n=new RegExp("(^|&)"+t+"=[^&]\*(&|$)","gi"),t=r[1].replace(n,function(n,t,r){return"?"===t||"&"===r?"&"===t?r:t:""}),r[0]+"#"+t)},$4f:function(n,t){return!e.$4q(n)||(n=n.split("#")).length<2||!e.$4q(n[1])?"":r(n[1],t)},$4g:function(n,t,r){return n=i(n,t),n=i(n,r),u(n=e.$5A(n,t,n.length),r,"1")},$4h:function(n,t,r,e){return r=new URL(r,n+t),n=new URLSearchParams(e),r.search=n.toString(),r.toString()},$4i:function(n,t){return new URLSearchParams(n).get(t)},$4j:function(n,t){var r;return e.$4q(t)?(r=n.split(/#(.\*)/),t="&"===t[0]?t:"&"+t,(-1!==r[0].indexOf("?")?r[0]:r[0]+"?")+t+(e.$4r(r[1])?"#"+r[1]:"")):n},$4k:r}});$00("scsVarAdapter",["util","cookie-util","urlutil"],function(s,t,l){"use strict";var n,i,o,a,e,c,r,d,p,$,m,v,w,H,f,u,h,g,N,\_,D,b,L,A,C,I,V,k,q,F,O,P;return P=window.scVars,s.$4r(P)&&(s.$54(window.olaVars)&&(F=(P=s.$5D(P,window.olaVars)).zola,s.$5Q(P,["mp","misc","bdata"],"")&&"1"===s.$5Q(F,["be"],0)&&(O=P.mp.misc.bdata,O=s.$5$(O,F.bShift,F.bKey),P.mp.misc.bdata=O),window.merVars=P),n=P.\_mNL3,i=P.mp,o=P.pvurl,P.tpctf&&(F=s.$5H(window.location.href),t.mnsc("cmc","test",1,"/",F,"","none"),O=s.$4q(t.mngc("cmc")),t.mnsc("cmc","",-1,"/",F,"","none"),t=o,k=V=O,o=s.$4q(t)?(q=-1!==t.indexOf("?")?"&":"?",t+q+"vgd\_tpctf="+encodeURIComponent(k?"1":"0")):t,V||(P.vsid=null,o=l.$4d(o,"vsid"))),q=P.lPvImd,k=P.pvend,V=P.pvHConf,a=P.rtbLHConf,e=P.ntvKwAsts,c=P.ntvAdAsts,m=P.kwdTl||!1,r=function(t){s.$4q(t.lHost)&&-1===t.lHost.indexOf("//")&&(t.lHost="//"+t.lHost);s.$4q(t.plrHost)&&-1===t.plrHost.indexOf("//")&&(t.plrHost="//"+t.plrHost);return t}(P.lc||{}),d=P.vsid,p=P.bvsid,w=P.tsce,$=P.kwdTarget,v=P.l3d||{},H=P.lpipe||{},f=P.pvlpipe||{},u=P.ssmCnf||{},h=P.locHashP||{},g=P.scsver||"",D=P.l2mc||{},b=P.clgflag||!1,L=P.pvImgBcn||!1,N=P.imc||{},A=P.vimpd||{},\_=P.zola||{},C=P.l1host||"",I=P.l2host||"",window.\_mNL3=n),{$2A:o,$2B:k,$2C:q,$2D:V,$2E:a,$2F:(t="undefined"!=typeof viForJtag&&viForJtag||null)&&\_mNDetails&&\_mNDetails[t]&&\_mNDetails[t].$2F||i||{},locHash:function(){var t="";try{t=parent.\_mNDetails&&parent.\_mNDetails.getLocHash&&parent.\_mNDetails.getLocHash(n.crid,n.vi)||parent.\_mNDetails.locHash&&parent.\_mNDetails.locHash[n.crid]||parent.window.locHash||""}catch(t){}return t=t||window.location.hash}(),mNL3:n,$2G:r,$2H:d,$2I:p,tsce:w,$2J:e,$2K:c,$2L:$,kwdTl:m,l3d:v,lpipe:H,pvlpipe:f,locHashP:h,$2M:u,scsver:g,cage:(l=n&&n.vi||"",l=parseInt(l.substring(0,l.length-9)),P="1779113687",s.$4s(l)&&s.$4s(P)?Math.floor((l-P)/86400):""),$2N:function(t){return N[t]||{}},$2O:D,$2P:b,$2Q:L,zola:\_,vimpd:A,$2R:C,$2S:I}});$00("metaparamutil",["scsVarAdapter"],function(t){"use strict";return{init:function(){var s=t.$2F;return this.ndAdParams=s.ndadp||{},this.meta=s.meta||{},this.misc=s.misc||{},this.abf=s.abf||{},this.abss=s.abss||"",this.keywords=s.keywords||[],this.log=s.log||{},this.lper=s.lper||100,this.dlper=s.dlper||null,this.abpl=s.abpl||0,(s=s.ntc)&&(this.requiredAdsCount=s.adsCount||0,this.kbbImageSize=s.kImgS||"",this.nativeMiscParams=s.misc||{}),this}}});$00("browserhinter",["metaparamutil","util"],function(e,r){"use strict";function i(n){var t=e.misc.brwHint;if(t&&t.linkpf&&r.$4q(t.linkpf.event)&&document.location.protocol==n.protocol){t=$0H.$3F;if(t.$0I()&&t.$5k())return!0}return!1}return{$5g:function(n){var t,r;e.misc.brwHint&&(t=e.misc.brwHint,n=n,t.preConn&&1==t.preConn.enable&&(r=$0H.$3E).$0I()&&r.$5k()&&r.$5m(t.preConn.event,n,t.preConn.addHosts),i(n))&&$0H.$3F.$5l(t.linkpf.event,n)},$5h:i}});$00("preconnect",["hintutil","eventlib","util","domutil"],function(t,e,i,r){"use strict";var f={},$=[];function s(n){i.each(n,function(n){t.$5i("preconnect",n),f[n]=1})}function u(n,t,c){var o=r.$4J(t),u=$.concat(o);v(o)||(s(u),e.$4Q(t,"mouseover",c),e.$4Q(t,"touchstart",c),setTimeout(function(){i.each(u,function(n){f[n]=0}),a(t)},5e3))}function a(n){var t,c=r.$4J(n),o=(t=n,function(n){u(0,t,o)});v(c)||(e.$3s(n,"mouseover",o),e.$3s(n,"touchstart",o))}function v(n){return 1===f[n]}return{$5m:function(n,t,c){$=c||[],"hover"==n&&a(t)},$5k:function(){return t.$5j("preconnect")}}});$00("logutil",["util"],function(e){"use strict";return{$2T:e.$52,$2U:function(n){for(var t=0,r=(n=e.$5E(n)?n:[n]).length;t<r;t++)(new Image).src=n[t]},$2V:function(n){e.$4r(n)&&((new Image).src=n)},$2W:function(){return!!e.$4p(window.navigator.sendBeacon)}}});$00("rtbsdatautil",["util","metaparamutil","commonconstants"],function(i,t,r){"use strict";var d={};function e(){return d.rtbsd}function u(n){var r,t;return 4==e()?"":(r="",(t=d.prvDet)&&i.$4r(t[n])?t[n]:r)}return{$25:u,$26:function(n,r){d[n]=r},$27:function(){var n=u(r.$0A.$0d);return!i.$4r(n)||t.misc.ybncaBidderId&&-1!==t.misc.ybncaBidderId.indexOf("|"+n+"|")},$28:function(){return u(r.$0A.$0d)==r.$0B.$0t},getRtbsDisableReason:e,$29:function(n){var r=t.misc.ybncaBidderId||"";return""!==n&&r&&-1!==r.indexOf("|"+n+"|")},$2$:function(n){var r=t.misc.adxBidderId||"";return""!==n&&r&&-1!==r.indexOf("|"+n+"|")}}});$00("l3receiver",["util","scsVarAdapter"],function(p,r){"use strict";var t,c,d,l,a,u,s,i;return{$1k:function(){return t||{}},$1l:function(e){return t.hasOwnProperty(e)?t[e]:""},$1m:function(){return i||{}},$1n:function(e){return(e?d:c)||{}},$1o:function(e){return(e?l:a)||{}},$1p:function(e){return(e?s:u)||{}},$1q:function(e){var n,o;n=e.l3d,o=r.l3d,n=n?JSON.parse(decodeURIComponent(n)):{},t=p.$5C(n,o=o||{}),c=e.pvl?JSON.parse(decodeURIComponent(e.pvl)):{},d=e.pvlp?JSON.parse(decodeURIComponent(e.pvlp)):{},l=e.clp?JSON.parse(decodeURIComponent(e.clp)):{},a=e.cl?JSON.parse(decodeURIComponent(e.cl)):{},s=e.aclp?JSON.parse(decodeURIComponent(e.aclp)):{},u=e.acl?JSON.parse(decodeURIComponent(e.acl)):{},i=e.lp?JSON.parse(decodeURIComponent(e.lp)):{}}}});$00("lochashutil",["util","metaparamutil","commonconstants","rtbsdatautil","domutil","l3receiver","scsVarAdapter"],function(u,n,c,a,e,s,d){"use strict";var i,o={},l={};function v(){var t,r=a.$25(c.$0A.$0l),r=(u.$4r(r)?l.vgd\_matchstr=r:u.$4q(l.matchstring)&&(l.vgd\_matchstr=u.$5L(l.matchstring)),$0H.$3c.$0I()&&(r=$0H.$3c.$3t(),u.$53(r)||(l=u.$5C(l,r))),a.$25(c.$0A.$0s)),r=(u.$4q(r)&&(l.axbx=r),l.twna||"0");e.$4E(window)&&(t=h(),f()?r=t?"5":"2":u.$4m()?r=t?"4":"3":t||(r="X")),l.vgd\_ifrmode=(l.infr||"0")+r}function $(){return window.locHash||window.location.hash||""}function t(){var t=$(),r=d.locHashP,t=u.$4u("?"+t.replace(/#/g,"&"),!0);return l=u.$5C(t,r),s.$1q(l),u.each(["rtbsd"],function(t){a.$26(t,l[t])}),l.prvDet&&a.$26("prvDet",JSON.parse(l.prvDet)),v(),p(l,["requrl","cref","clsKb","web\_view","dyc","dypgc","dypc","dynx","resdn","l1ch","l2ac","l1ac","infr","twna","l2wsip","drtbs","l2src","stime","startTime","dma","l2type","vgd\_vsidv","vstrid","vgd\_bdata","vgd\_sc","l3c","l3d","l3l","pvl","pvlp","clp","cl","acl","aclp","lp","buid","matchstring","l1hcsd","l2hcsd","sethcsd","vgd\_cdnh","vgd\_l1esid","vgd\_l1rhst","vgd\_eober","vgd\_uspa","vgd\_usps","vgd\_uspcs","vgd\_uspcss","vgd\_dfpmod","prvDet","exitinsl","tchkpts"],o)}function p(e,s,d){var i="";return u.each(e,function(t,r){var n,c;u.$5F(s,r)||(n=e,"bdrid"==(c=r).toLowerCase()&&a.$2$(n[c]))?(d&&(d[r]=e[r]),delete e[r]):i+=["&",r,"=",e[r]].join("")}),i}function r(t,r){return r=r||"",l[t]||r}function g(t,r){return r=r||"",o[t]||r}function f(){return 1==r("l2src")||1==g("l2src")}function h(){return 1==r("twna")||1==g("twna")}return{init:function(){i=t()},$1r:$,$1s:function(){return i},$1t:function(){return l},$1u:function(t){return r(t,!1)},$1v:r,$1w:function(){var r,t;return void 0!==n.misc.exclp&&u.$4q(n.misc.exclp)?(r=i,t=n.misc.exclp.split(","),u.each(t,function(t){r=u.$5O(r,t)}),r):i},$1x:function(t){i=i+"&"+t},$1y:function(t){return g(t,!1)},$1z:g,$20:function(){for(var t=["reflog","vsidtv"],r=p(u.$4u("?"+i.replace(/#/g,"&")),["adxbck","dms","acid","mmm","cmatchstring","kbbq","isiolc","vgd\_matchstr","hvsid"]),n=0;n<t.length;n++)r=r.replace("&"+t[n]+"=","&vgd\_"+t[n]+"=");return r},$21:f,$22:h,$23:function(){for(var t=["vgd\_uspa","vgd\_usps","vgd\_uspcs","vgd\_uspcss","vgd\_sc","vgd\_l1rakh","vgd\_l1rhst","vgd\_eober","vgd\_dfpmod"],r={},n=0;n<t.length;n++)u.$4r(o[t[n]])&&(r[t[n]]=o[t[n]]);return u.$4z(r)},$24:function(){var t=g("cref",!1);return t?"&ecref="+encodeURIComponent(u.$59(decodeURIComponent(t))):""}}});$00("hover",["util","eventlib","logutil","metaparamutil","commonconstants","lochashutil","l3receiver","loggingservice","scsVarAdapter","commonparamutil",window],function(t,i,c,n,r,d,a,m,s,v,o){"use strict";var e,g=document&&document.body||o,u=!1;function p(){var i=n&&n.misc&&n.misc.hN||"",c=n&&n.misc&&n.misc.lFN||"",r=function(){var i="lf=4",c={prid:n.meta.prid||"",crid:n.meta.crid||"",pid:n.meta.pid||"",cid:n.meta.cid||"",dn:n.misc.domain||"",chid:n.meta.chid||"",ugd:n.meta.ugd||"",cc:n.misc.country\_code||"",sc:o.\_mNL3&&o.\_mNL3.\_ip2allsc||"",gdpr:t.$4r(n.misc.privacy.gdpr)&&String(n.misc.privacy.gdpr)||"",uspenf:t.$4r(n.misc.privacy.uspenf)&&String(n.misc.privacy.uspenf)||"",mspa:t.$4r(n.misc.privacy.mspa)&&String(n.misc.privacy.mspa)||"",vi:o.\_mNL3&&o.\_mNL3.vi||"",abpl:o.mUtil&&o.mUtil.getABPFlag("val")||"",vsid:o.\_mNVsid||"",requrl:n.misc.requrl||"",hvsid:v.$1a(),bdrid:v.$1b().bdrid||"",subBdr:v.$1b().subBdr||"",vgd\_l2type:d.$1z("l2type")||"",vgd\_bid:a.$1l("bid")||"",vgd\_cdv:"1914",vgd\_cage:s.cage,vgd\_scsver:s.scsver,vgd\_tsce:s.tsce||"",vgd\_aref:a.$1m().aref||"",vgd\_arefsrc:a.$1m().arefsrc||"",vgd\_ydspr:a.$1l("ydspr")||""};navigator.connection&&(c.vgd\_cetp=navigator.connection.effectiveType,c.vgd\_cdlk=navigator.connection.downlink,c.vgd\_crtt=navigator.connection.rtt);return i=(i=(i+=t.$4z(c))+(n.meta.cme?"&cme="+n.meta.cme:""))+d.$20()}(),e="";return t.$4q(i)&&t.$4q(c)&&(e=i+"/"+c+"?"+r),e=t.$5A(e,"vgd\_len",e.length),e=m.$2i(e)}function l(){i.$4Q(g,"mouseover",l),!0!==u&&c.$2T(p())}return{init:function(){t.$4r(e)||(e=!0,i.$3s(g,"mouseover",l),i.addToEventQueue(r.$0$.$0a,function(){u=!0}))}}});$00("commonparamutil",["util","lochashutil","metaparamutil","commonconstants","rtbsdatautil","l3receiver"],function(t,u,d,e,$,i){"use strict";var c,r=window.\_mNL3&&window.\_mNL3.vi?window.\_mNL3.vi:"",n=window.\_mNL3&&window.\_mNL3.asnum?window.\_mNL3.asnum:"";return{$1Z:function(){return r},$1\_:function(){return n},$1a:function(){var r=u.$1t();return r&&r.hvsid?r.hvsid:"1000000003"},$1b:function(){var r,n,i={};return t.$4q(d.misc.frbgem)?(i.subBdr=u.$1v("sbdrId")||"",i.bdrid=d.misc.frbgem):t.$4q(d.misc.frBdrId)?(i.subBdr=$.$25(e.$0A.$0e)||"",i.bdrid=d.misc.frBdrId):(r=$.$25(e.$0A.$0d)||"",n={},t.$4q(d.misc.bdrId)?(n.subBdr=u.$1v("sbdrId"),n.bdrid=d.misc.bdrId):$.$29(r)?(n.subBdr=$.$25(e.$0A.$0e)||"",n.bdrid=r):$.$29(u.$1u("winProv"))&&(n.subBdr=u.$1v("subBdr"),n.bdrid=u.$1v("winProv")),i=n),i},$1c:function(){return!1},$1d:function(){return u.$1t().isiolc||"function"==typeof window.IntersectionObserver||"0"},$1e:function(){return!(!d||!d.misc||"1"!=d.misc.ignViewForAsnFlag)},$1f:function(){var r=t.$56(1,100),n=d.misc&&d.misc.igLpV||0;return 0<n&&r<=n},$1g:function(){return $.$27()&&2==d.misc.hide\_y},$1h:function(){var r,n;return void 0===c&&(r=t.$56(1,100),n=!t.$4r(i.$1l("logPv"))||i.$1l("logPv"),c=r<=d.lper&&n||-1!=decodeURIComponent(d.misc.purl||"").indexOf("mnet\_test")),c},$1i:function(){return 1===i.$1l("apCuNat")&&1===i.$1l("nmerr")},$1j:function(){try{return t.getLayer1WindowObject().\_mNDetails[r].\_cmL1Require(["mn-object"])[0]}catch(r){}return null}}});$00("abputil",["util","lochashutil","commonparamutil","metaparamutil","eventlib","scsVarAdapter","logutil"],function(c,r,a,n,i,d,o){"use strict";var p,l=!1,u=!1;function m(t){try{1==(n.misc.hab||!1)&&0==u&&(e={logid:"kfk",evtid:"adpl",tp:(e=t)||"NULL",fp:n.meta.fp,cid:n.meta.cid,crid:n.meta.crid,requrl:n.misc.purl,chid:n.meta.chid,vi:a.$1Z(),ugd:n.meta.ugd,cme:n.meta.cme,cc:n.misc.country\_code},e=d.$2G.lHost+"/log?"+c.$4z(e)+r.$20(),o.$2V(e+"&r="+(new Date).getTime()),i.$0J("hideAdFrames",a.$1Z(),!0,{viewId:a.$1Z(),type:"L3",L2:"1"}),u=!0)}catch(t){}var e}return{getABPFlag:function(t,e){var a,e=function(t){if(void 0!==p&&1===p)return p;var e=!1;try{a=("object"==typeof window.parent.winScope?window.parent.winScope:window.parent).\_mNDetails}catch(t){}var a=a&&a.\_mNABP||!1,i=0;return a&&n.abpl&&(i=0==a.checksRemain?(e=!a.error1&&a.error2?1:2,3):a.adBlockStatus?(e=a.adBlockStatus,1):(e=2,0),!t)&&(a=!0,a=(!c.$4q(n.misc.exclp)||-1===n.misc.exclp.indexOf("tdAdd[]"))&&a)&&r.$1x("tdAdd[]="+encodeURIComponent("|@|abp:"+i+":"+e)),p=e}(e);return n.abpl&&e?(a=e,l||1===a&&"function"==typeof window.appendCustomHeader&&(window.appendCustomHeader(),l=!0),1==e&&m(e),1==e&&n.abpl&&(e=n.abpl),"val"===t?e:"&abpl="+e):""},$2v:function(){return p}}});$00("colorschemeutil",[],function(){"use strict";return{$2l:function(){var e="na";return window.matchMedia&&(e="n",window.matchMedia("(prefers-color-scheme: dark)").matches?e="d":window.matchMedia("(prefers-color-scheme: light)").matches&&(e="l")),e}}});$00("renderinghelper",["util","eventlib","abputil","commonparamutil"],function(t,n,o,i){"use strict";return{$2q:function(){try{t.$4p(window.formatViewAfterLoad)&&window.formatViewAfterLoad(),window.adjustMnetIframeHeightToBodyProxyCall&&window.adjustMnetIframeHeightToBodyProxyCall()}catch(t){}},$2r:function(t){try{"function"==typeof window.formatview&&window.formatview(t)}catch(t){}},$2s:function(){try{"function"==typeof window.formatKeywordView&&window.formatKeywordView()}catch(t){}},changeAdFramesDimensions:function(t){try{var o=window.\_mNL3&&window.\_mNL3.vi?window.\_mNL3.vi:"";o&&t&&(t.height||t.width)&&(t.viewId=o,t.type="L3",t.L2="1",n.$0J("alterAdFrameDimension",o,!0,t))}catch(t){}},$2t:function(){try{var t=i.$1j();t&&(1!==o.$2v()&&t.util.addToEventQueue("adBlockPlusDetected","gbl",function(){o.getABPFlag()}),"function"==typeof t.\_custom.postRendering)&&t.\_custom.postRendering(window)}catch(t){}}}});$00("loggingpipeline",["util","commonconstants","l3receiver","metaparamutil"],function(d,h,P,C){"use strict";return function(){var i={},o={},u={},c={},t={},a={},$=h.$0G,f=/[|:]/,e=this;function l(n,r,e){var t,i;return t=n,i=r,d.$4q(t)&&!f.test(t)&&d.$4r(i)?[n.toLowerCase(),{value:r,enc:e}]:[]}function n(n){var i="";return d.each(n,function(n,r){var e=$.$17,t=n.value;!0===n.enc&&(e=$.$18,t=d.$59(t)),i+=d.$50(e+r,t)}),i}function m(e){var t=[];return d.each(e,function(n,r){t.push(r+":"+(r=e[r].value,r=d.$4q(r)?(r=r.replace(/\|/g,"#@")).replace(/\:/g,"#\*"):r))}),t}function r(n,r){n=m((n=n||!1)?o:i);return d.$4r(r)&&(n=n.concat(m(r))),d.$59(n.join("|"))}function p(n){var e="",t=$.$17;return d.each(P.$1n(n),function(n,r){e+=d.$4q(r)&&d.$4r(n)?d.$50(t+r,n):""}),e}function v(n,r){var e=n?a:t,n=d.$5C(P.$1o(n),e);return s(n=d.$4r(r)?d.$5C(n,r):n)}function g(n){return s(P.$1p(n))}function s(n){var e={};return d.each(n,function(n,r){r=l(r,n);2===r.length&&(e[r[0]]=r[1])}),e}e.addPairToCommonPipeline=function(n,r,e){var t=C.misc.lgprp||{},n=l(n,r,e=e||!1);2===n.length&&(t[r=n[0]]?o[r]=n[1]:i[r]=n[1])},e.addPairToPageViewLogPipeline=function(n,r,e){var t=C.misc.lgprp||{},n=l(n,r,e=e||!1);2===n.length&&(t[r=n[0]]?c[r]=n[1]:u[r]=n[1])},e.addCommonParamsFromL3ReceiverToPipeline=function(){d.each(P.$1m(),function(n,r){e.addPairToCommonPipeline(r,n)})},e.addClickLogParam=function(n,r,e){e=e||!1,d.$4q(n)&&d.$4r(r)&&(e?a[n]=r:t[n]=r)},e.$03=function(){return n(u)+n(i)+p()},e.$04=function(){return n(c)+n(o)+p(!0)},e.$05=function(){return d.$50($.$13,r(!1,v()))},e.$06=function(n){return d.$50($.$14,r(!0,v(!0,n)))},e.$07=function(){return d.$50($.$15,r(!1,g()))},e.$08=function(){return d.$50($.$16,r(!0,g(!0)))}}});$00("logginghelper",["util"],function(u){var e={},r="",t="",$="",i="";function o(n,r){return r=r||{},u.$4q(n)&&(void 0===r.$2e||r.$2e)&&(r.$2d?i+=d(n):$+=d(n)),e}function c(n,r,t){return t=t||{},u.$4q(n)&&u.$4r(r)&&(t.vgd?n="vgd\_"+n:t.vgda?n="vgda\_"+n:t.vgde&&(n="vgde\_"+n,r=u.$59(r)),o(u.$50(n,r),t)),e}function d(n){return("&"!==n.charAt(0)?"&":"")+n}return e={$2X:function(n){return r=n,e},$2Y:function(n){return u.$4q(n)&&(t+=d(n)),e},$2Z:c,$2\_:o,$2a:function(n,t){return u.each(n,function(n,r){c(r,n,t)}),e},done:function(){return u.$5B(r,i)+$+t}}});$00("chkpTimeUtil",["util","commonconstants","lochashutil"],function(o,c,a){return{$30:function(r,l){var t,s,e=Date.now(),n=(l=l||!1,a.$1z("tchkpts"));return o.$4q(n)?(n=JSON.parse(n),t={},s=o.$57(c.$09.$0Y),o.$4r(n.l1load)&&(t.l1load=n.l1load),t.l1exec=n.prel2-n.l1s,o.$4r(window.l2s)&&(t.l2load=window.l2s-n.prel2,t.scrrstart=s-window.l2s),t.scrrrender=r-s,l?t.scrrStartTimestamp=s:t.scrrexec=e-s,t):{}}}});$00("kwdextractor",["util"],function(e){"use strict";var i={$5Y:1,$5Z:2};function r(t){var n,r;return!!e.$4r(t)&&(n={dk:i.$5Y,mk:i.$5Z},r=e.$4q(t.id)?t.id.toLowerCase():"",e.any(n,function(t,n){if(-1!==r.indexOf(n))return t}))}function a(t){var n=this;n.anchor=t,n.type=r(t),n.position=function(t,n){if(t=t&&t.id,n=n==i.$5Y?"dk":"mk",e.$4q(t))return parseInt(t.replace(n,""))}(t,n.type),n.misc=function(t){var n={};try{n=t&&JSON.parse(t.getAttribute("data-misc"))}catch(t){}return n}(t),n.isValid=!!n.type,n.isValid&&(n.keyword=t.text)}return{$5\_:function(){var n,t=document.getElementsByTagName("a");return n=[],e.$5N(t,function(t){t=new a(t);t.isValid&&n.push(t)}),n},$5a:a,$5b:r,$5c:i}});$00("loggingservice",["util","commonparamutil","eventlib","renderinghelper","abputil","urlutil","lochashutil","metaparamutil","logutil","commonconstants","rtbsdatautil","domutil","loggingpipeline","l3receiver","scsVarAdapter","logginghelper","chkpTimeUtil","kwdextractor","colorschemeutil"],function(m,l,s,g,p,c,v,u,f,w,h,P,$,C,b,\_,d,Z,e){"use strict";var a,o,I,H=new $,y=!1;function T($,i){try{var e=P.$4H($),n=P.$4G($);if(e&&n)return";"+i+"\_w:"+e+";"+i+"\_h:"+n}catch($){}return""}function z(){var $,i=parseInt(v.$1z("stime")),e=parseInt(v.$1z("startTime")),n=(new Date).getTime(),t={},e=(isNaN(i)?isNaN(e)||($=e,t.ltimesrc="2"):($=i,t.ltimesrc="1"),isNaN($)||(t.ltime=n-$,t.rtime=o-$),t.etm=o-a,d.$30(o,!1));return m.$53(e)||(t.timeObj=JSON.stringify(e)),t}function R(){return!(l.$1g()||1==C.$1l("uhd"))}function q(){return $0H.$3a.$0I()?$0H.$3a.$45():""}function G(){$0H.$3N.$0I()&&$0H.$3N.$34();var $=!l.$1c();if($){y||(y=!0,g.$2q());try{s.$0J("onAdLoadComplete",u.meta.crid,!0)}catch($){}}if(l.$1h()){s.$4Q(window,"load",G),$0H.$3p.$0I()&&$0H.$3p.log(w.CHECKPOINT\_TRACKER.$1W);var i=0,e=(void 0!==window.adResult&&(i=adResult.length,void 0!==window.adCnt)&&!isNaN(window.adCnt)&&window.adCnt<=i&&(i=window.adCnt),b.$2A),n=b.$2B,t=b.$2D;if(!m.$4q(e))return;$0H.$3Z.$0I()||H.addPairToCommonPipeline(w.$0G.$19,P.$36().rensize);var d=$0H.$3L,a=$0H.$3\_,o=$0H.$3f,r=$0H.$3c,c=$0H.$3i,e=(\_.$2X(e),\_.$2\_(H.$04(),{$2d:!0}),$0H.$3n.$0I()&&(e=$0H.$3n.$5e(Z.$5\_()),m.each(e,function($){\_.$2Z("kwof[]",$)})),\_.$2Z("fp",u.meta.fp,{$2d:!0}).$2Z("cme",u.meta.cme,{$2d:!0}).$2a(l.$1b(),{$2d:!0}).$2\_(v.$20()).$2\_(p.getABPFlag()).$2\_((e=decodeURIComponent(v.$1v("kbbq")),m.$4q(l.$1\_())&&(e+="&asn="+l.$1\_()),m.$4q(e)?"&kbbq="+encodeURIComponent(e):"")).$2Z("vgd\_isiolc",l.$1d()).$2Z("vgde\_ydsp",q()).$2\_(H.$03()).$2\_("&tdAdd[]="+encodeURIComponent("uiparams="+function(){var $="";$+=T(window,"rend");try{$+=T(window.top,"win")}catch($){}return $}())).$2\_(v.$23()).$2Z("hvsid",l.$1a()).$2Z("rc",i).$2Z("rand",m.$57(w.$09.$0Y)).$2Z("bdrct",h.$25(w.$0A.$0m)).$2Z("bto",h.$25(w.$0A.$0o)).$2a((e={},m.$4q(i=h.$25(w.$0A.$0p))?e.vgd\_opp\_id=i:m.$4q(i=v.$1v("acid"))&&(e.acid=i),e)).$2Z("tdAdd[]","rtbsd="+v.$1v("rtbsd"),{$2e:v.$1u("rtbsd")}).$2Z("matm",m.$57("matm")).$2Z("iscont","0",{$2e:!!r.$0I()&&"2"==r.$3u()||-1!=v.$1s().indexOf("nocont=1")||l.$1f()||l.$1e()}).$2\_(a.$0I()?a.$5X():"",{$2e:R()}).$2Z("requrl",v.$1z("requrl")),\_.$2a(I,{vgd:!0}).$2a(z(),{vgde:!0}).$2a((i={},e=v.$1z("l1hcsd"),m.$4q(e)&&2==(e=e.split("!")).length&&(r=e[0]+"hcsd",i[r]=e[1]),i),{vgd:!0}).$2a($0H.$3J.$0I()?$0H.$3J.$3r():{},{vgd:!0}).$2a(((a={}).lapc=v.$1z("dypc"),a.lapgc=v.$1z("dypgc"),a.lac=v.$1z("dyc"),a.lanx=v.$1z("dynx"),a),{vgd:!0}).$2a(d.$0I()&&d.$44(),{vgd:!0}).$2a(o.$0I()&&o.$2y(),{vgd:!0}).$2Z("vs",function($){if(m.$4q(u.misc.ovs))return u.misc.ovs;return $.$0I()&&$.$2z()?"12":""}(o)).$2Z("l1btm",C.$1l("l1btm"),{vgda:!0}).$2Z("l1ch",v.$1z("l1ch"),{vgd:!0}).$2Z("mseg",h.$25("mnet\_segment"),{vgd:!0}).$2Z("rt",h.$25(w.$0A.$0n),{vgd:!0}).$2Z("lhl",v.$1r().length,{vgd:!0}).$2Z("pgid",C.$1l("pgid"),{vgd:!0}).$2Z("kclkp\_d",decodeURIComponent(C.$1l("kClkUP")),{vgd:!0}).$2Z("web\_view",v.$1z("web\_view"),{vgd:!0}).$2Z("csip",C.$1l("csip"),{vgd:!0}).$2Z("dfp\_tgt",(r=h.$25("dfpTgt"))&&window.JSON&&JSON.stringify&&JSON.stringify(r),{vgd:!0}).$2Z("sbSup",f.$2W()?"1":"0",{vgd:!0}).$2Z("drtbs",v.$1z("drtbs"),{vgd:!0}).$2Z("vsidv",v.$1z("vgd\_vsidv"),{vgd:!0}).$2Z("nrrs","38824",{vgd:!0}).$2Z("cntrdt",C.$1l("cntrdt"),{vgd:!0}).$2Z("bqs",C.$1l("bqs"),{vgd:!0}).$2Z("crefurl",decodeURIComponent(v.$1z("cref")),{vgd:!0}).$2Z("lpua",window.navigator.userAgent,{vgd:!0,$2e:u.misc&&1===u.misc.lpua}).$2Z("clkId",encodeURIComponent(C.$1l("clkIdQs")),{vgd:!0}).$2Z("cdeplbl",c.$0I()?c.$33():"",{vgde:!0}),\_.$2Y(n),\_.done()),e=U(e=$0H.zola.$0I()?$0H.zola.$47(e):e);e=t&&m.$4q(t.lenExHost)&&8700<e.length?function($){try{A($)?($=m.truncateUrl($,4e3),$+="&vgd\_end=3"):$+="&vgd\_end=1"}catch($){}return $}(e=m.$5P(e,t.lenExHost)):N(e),b.$2Q?f.$2U(e):f.$2T(e),u.misc.slpd&&(i=l.$1Z(),s.$0J("logPerf\_l1",i,!0,{vi:i,cid:u.meta.cid,hvsid:l.$1a(),bid:u.misc.bid}))}$&&g.$2t(),$0H.$3b.$0I()&&$0H.$3b.init(),u.misc.hbRACb&&s.$0J("adRenderingCompleted",l.$1Z(),!1,{}),m.$51.stop()}function i(){var $={logPageView:function(){G()}};if($0H.$3I.$0I())try{$0H.$3I.$3q($)}catch($){}}function n(){s.$4Q(window,"load",n),s.$0J("pushNotificationDetails",l.$1Z(),!0,{viewId:l.$1Z(),type:"L3",L2:"1",pid:u.meta.pid})}function t(){var $=function(){try{var $=(navigator.connection||navigator.mozConnection||navigator.webkitConnection).effectiveType||"";return $="slow-2g"===$?"s2g":$}catch($){}return""}();m.$4q($)&&H.addPairToCommonPipeline(w.$0G.$1G,$)}function N($){try{u.misc.trunLogUrl?($=m.truncateUrl($,u.misc.trunLogUrl),$+="&vgd\_end=2"):A($)?($=m.truncateUrl($,4e3),$+="&vgd\_end=3"):8700<$.length?($=m.truncateUrl($,8700),$+="&vgd\_end=5"):$+="&vgd\_end=1"}catch($){}return $}function U($){return m.$5A($,"vgd\_len",$.length)}function A($){return 4e3<$.length&&m.$5F(["8","9","10","11"],m.$4n().toString())}function r(){var $;function i($,i){for(var e,n,t=0;t<$.length;t++)e=$[t],n=i?w.$0G.$17+e:e,v.$1y(n)&&H.addPairToCommonPipeline(e,v.$1z(n))}H.addCommonParamsFromL3ReceiverToPipeline(),H.addPairToCommonPipeline(w.$0G.$1C,b.$2H),$=m.$5G(h.$25("bidData")),b.$2P?m.$4q($)?H.addPairToCommonPipeline(w.$0G.$0k,$,!0):H.addPairToPageViewLogPipeline(w.$0G.$0k,u.misc.bdata,!0):H.addPairToCommonPipeline(w.$0G.$0k,$||u.misc.bdata,!0),m.each(b.lpipe,function($,i){H.addPairToCommonPipeline(i,$)}),m.each(b.pvlpipe,function($,i){H.addPairToPageViewLogPipeline(i,$)}),(I=($0H.$3Z.$0I()&&!window.frameElement?$0H.$3Z:P).$36()).rensize&&(H.addPairToCommonPipeline(w.$0G.$19,I.rensize),delete I.rensize),$=P.$4F(),H.addPairToCommonPipeline(w.$0G.$1A,$.height),H.addPairToCommonPipeline(w.$0G.$1B,$.width),H.addPairToCommonPipeline(w.$0G.$1H,C.$1l(w.$0G.$1H)),H.addPairToCommonPipeline(w.$0G.$1I,e.$2l()),i(["dma",w.$0G.$1C,w.$0G.$1D,"resdn"],!1),i(["cdnh","l1esid"],!0),t(),m.each({ydata:{$2g:!0},be:{$2g:!1},bidparams:{$2g:!0,$2h:"ebidp"}},function($,i){var e=C.$1l(i);m.$4r(e)&&(i=$.$2h||i,e=m.$54(e)?JSON.stringify(e):e,H.addPairToCommonPipeline(i,e,$.$2g))})}return{init:function(){a=(new Date).getTime(),$0H.$3p.$0I()&&$0H.$3p.log(w.CHECKPOINT\_TRACKER.$1X),r(),u&&s.$0J("SCRR::LoggingParams",l.$1Z(),!0,{params:{vgd\_bid:u.misc?u.misc.bid:"",vgd\_pdtid:u.misc?u.misc.pdtid:"",vgd\_tpid:u.misc?u.misc.tpid:"",pid:u.meta?u.meta.pid:"",cme:u.meta?u.meta.cme:"",fp:u.meta?u.meta.fp:""}})},$0X:function(){$0H.$3p.$0I()&&$0H.$3p.log(w.CHECKPOINT\_TRACKER.$1Y),o=(new Date).getTime(),(u.misc.jtag||b.$2C||function(){if(s.$3s(window,"load",n),"complete"==document.readyState)return 1;1==u.misc.macIaLog?s.$3s(window,"load",i):s.$3s(window,"load",G)}())&&(1==u.misc.macIaLog?i:G)()},pipeline:H,fireLogPixel:function($,i){var e,n={requrl:decodeURIComponent(u.misc.purl)};for(e in n)i[e]=n[e];$=b.$2G.lHost+$+"?"+m.$4z(i),f.$2V($+"&r="+(new Date).getTime())},$2i:N,$2j:function(){return m.$4q(C.$1l("rtbLogParams"))&&b.$2E&&m.$4q(b.$2E.host)},$2k:function(){s.$4Q(window,"load",G);var $=C.$1l("rtbLogParams"),i=b.$2E.host+"/rtblog.php?",e=z();i=N(U("https://"+i+$+m.$4z({vgd\_ltime:e.ltime,vgd\_ltimesrc:e.ltimesrc,vgde\_timeObj:m.$59(e.timeObj),fp:decodeURIComponent(m.$5L(u.meta.fp)),cme:decodeURIComponent(m.$5L(u.meta.cme)),gdpr:m.$4r(u.misc.privacy.gdpr)&&String(u.misc.privacy.gdpr)||"0",mspa:m.$4r(u.misc.privacy.mspa)&&String(u.misc.privacy.mspa)||"0",wshp:m.$4r(u.misc.privacy.wshp)&&String(u.misc.privacy.wshp)||"0",vgd\_wshp:m.$4r(u.misc.privacy.wshp)&&String(u.misc.privacy.wshp)||"0",vgd\_uspa:m.$4r(u.misc.privacy.uspenf)&&String(u.misc.privacy.uspenf)||"0",vgde\_ydsp:q()}))),f.$2V(i),m.$51.stop()}}});$00("serpLocHash",["util"],function(t){"use strict";var u={};return{$3w:function(r,n){t.$4r(r)&&t.$4r(n)&&(u[r]=n)},$3x:function(){var r=t.$4z(u);return t.$4q(r)?"#"+r.substring(1):""}}});$00("commonKwdHelper",["util","metaparamutil","urlutil","commonconstants","lochashutil","abputil","domutil"],function(t,e,f,$,r,n,c){"use strict";return{$Bs:function(){return t.$4q(e.misc.kwdArbUrl)},$Bt:function(e){var r;(e=e.target||e.srcElement)&&e.href&&t.$4q(e.href)&&(r=e.href.replace(/&kct=.\*?(&|#|$)/,"$1"),e.href=f.$4a(r,"kct",t.$51.getTime($.$09.$0Z)))},$Bu:function(e){var r;(e=e.target||e.srcElement)&&e.href&&t.$4q(e.href)&&(r=e.href.replace(/&abpl=.\*?(&|#|$)/,"$1"),e.href=f.$4a(r,"abpl",n.getABPFlag("val",!0)))},$Bv:function(e){(e=e.target||e.srcElement)&&e.href&&t.$4q(e.href)&&(e.href=f.$4g(e.href,"ule","ure"))},$Bw:function(e){(e=e.target||e.srcElement)&&e.href&&t.$4q(e.href)&&(e.href=f.$4d(e.href,"kcrs"),e.href=f.$4a(e.href,"kcrs",c.$36().rensize))}}});$00("kwdclkurl",["util","domutil","metaparamutil","lochashutil","l3receiver","commonparamutil","abputil","urlutil","loggingservice","serpLocHash","commonKwdHelper"],function(l,e,i,r,a,d,m,p,u,s,g){"use strict";n="";var n,k={$Bx:function(){return n=""==n?((new Date).getTimezoneOffset()/60\*-1).toString()+"#"+window.screen.height+"#"+window.screen.width:n}};return{$By:function(e,n,t,c){var $=e||"";if(d.$1i())return e=e,o=c.adv,i.meta.adm||o||p.$4c(e)+"://"+l.$5H(e);a.$1l("isBrdgImpl")||g.$Bs()||($=[$,r.$1w(),"&"].join(""),$=($=($=($+="&fp="+encodeURIComponent(i.meta.fp))+"&cme="+encodeURIComponent(i.meta.cme))+m.getABPFlag())+r.$24());var o=a.$1l("fgbr"),e=(l.$4s(o)&&($=l.$5A($,"fgbr",1==o?"1":"0")),d.$1b()),e=($+=l.$4z(e),a.$1l("kClkUP")),e=(l.$4q(e)&&($+="&kclkp="+e),a.$1l("ckcvi")),e=(l.$4q(e)&&($+="&ckcvi="+e),a.$1l("bqs")),e=(l.$4q(e)&&($+="&bqs="+e),0<l.$5M(document,"ddsck"+t).length&&l.$4q(c.desc)&&($+="&kdsci="+encodeURIComponent(c.dId)),1!=i.misc.serpRct||l.$5I()||($=l.$5A($,"srprc","0")),$+=function(){var e="";try{e="&bd="+encodeURIComponent(k.$Bx())}catch(e){}return e}(),l.$4q(a.$1l("ypl"))&&($+="&ypl="+encodeURIComponent(a.$1l("ypl"))),$+=u.pipeline.$05(),$=l.$5B($,u.pipeline.$06()),i.misc&&1===i.misc.lpua&&($+="&lpua="+encodeURIComponent(window.navigator.userAgent)),a.$1l("clkIdQs"));return l.$4q(e)&&s.$3w("clkId",e),$+=s.$3x(),$0H.zola.$0I()&&($=$0H.zola.$46($)),p.$4g($,"ule","ure")}}});$00("kwdevthandler",["metaparamutil","lochashutil","eventlib","commonKwdHelper"],function($,n,i,e){"use strict";return{$5d:function($){var n,c,$=$.anchor;function t($){e.$Bt($),e.$Bw($),$0H.$3n.$0I()&&$0H.$3n.$5f($),e.$Bv($)}function H($){e.$Bt($),e.$Bu($),e.$Bw($),$0H.$3n.$0I()&&$0H.$3n.$5f($),e.$Bv($)}e.$Bs()||(c=$,$0H.$3C.$0I()&&$0H.$3C.$31(c),c=$,(n=$0H.$3S).$0I()&&i.$3s(c,"click",n.$38),c=$,(n=$0H.$3Y).$0I()&&i.$3s(c,"click",n.$3B),c=$,(n=$0H.$3g).$0I()&&i.$3s(c,"click",n.$40),c=$,$0H.$3D.$0I()&&$0H.$3D.$5g(c),!1===($0H.$3D.$0I()&&$0H.$3D.$5h($))&&(i.$3s($,"mouseover",t),i.$3s($,"click",H)))}}});$00("keywordProcessor",["util","kwdextractor","kwdclkurl","kwdevthandler","renderinghelper","eventlib","commonconstants"],function(o,e,$,i,n,c,a){"use strict";function d(r){var t;$0H.$3d.$0I()&&!1===$0H.$3d.$35()||($0H.$3p.$0I()&&$0H.$3p.log(a.CHECKPOINT\_TRACKER.$1V+(r?"-rp":"")),t=e.$5\_(),o.each(t,function(t){var e,n;t.isValid&&(t=t,(e=r)||(n=t.anchor).hasAttribute("href")&&(n.href=$.$By(n.href,n.innerText,t.position,t.misc)),n=[],$0H.$3\_.$0I()&&(n=$0H.$3\_.$5W(t)),e||n.push(t),o.each(n,function(t){"1"!==t.anchor.getAttribute("data-proc-event")&&(i.$5d(t),t.anchor.setAttribute("data-proc-event","1"))}))}),n.$2s(),"loading"===document.readyState&&c.$3s(window,"DOMContentLoaded",function(){d(!0)}))}return{init:function(){d(!1)}}});$00("loggingHandler",["loggingservice"],function(i){"use strict";return{init:i.init,$0X:i.$0X}});$00("copykeywordhandler",["util","kwdextractor"],function(k,o){"use strict";var $="";function s(t,n){var r=!1;return k.$5N(t,function(t){"1"!==t.getAttribute("data-proc-kwd")&&(t.innerHTML=n,t.setAttribute("data-proc-kwd","1")),r=!0}),r}function f(t,o){var n=["href","target","onmouseover","onmouseout","onclick","title"];k.$5N(t,function(e){"1"!==e.getAttribute("data-proc-kwd")&&k.each(n,function(t){var n,r;t=t,r=e,n=(n=o).getAttribute(t),k.$4q(n)&&r.setAttribute(t,n),e.setAttribute("data-proc-kwd","1")})})}function p(r,t){var e=[];return k.$5N(t,function(t){var n;e.push((n=r,t=t,(n=new o.$5a(n.anchor)).anchor=t,n))}),e}return{$5W:function(t){var n,r,e,o,c,i,u,a=document,d=[];return t&&1==t.type?(r=a,e=(n=t).misc||{},o=n.position,c=k.$5M(r,"dck"+o),i=k.$5M(r,"dak"+o),u=k.$5M(r,"ddsck"+o),r=k.$5M(r,"dok"+o),o=n.anchor,k.$4q(e.desc)&&s(u,e.desc)&&($+="&kdsci[]="+e.dId),k.$4q(e.ogkwd)&&s(r,e.ogkwd),s(c,o.innerHTML),f(i,o),d=i):t&&2==t.type&&(n=a,r=(u=t).position,e=k.$5M(n,"mck"+r),n=k.$5M(n,"mak"+r),r=u.anchor,s(e,r.innerHTML),f(n,r),d=n),p(t,d)},$5X:function(){return $}}});$00("setupPostMessage",["eventlib","commonparamutil","commonconstants","util"],function(n,s,$,t){"use strict";function e(t){var e,a;try{e=JSON.parse(t.data)}catch(t){e={}}e.token==s.$1Z()&&"trigger-l3-event"===e.key&&(t=e.value,a=$.$0$.$0b+t.type,1==e.delayed?n.$4V(a,t.params):n.$4R(a,t.params))}return{init:function(){t.$4m()&&(n.$3s(window,"message",e),n.$0J($.$0$.$0c,s.$1Z(),!0,{delay:1}))}}});$00("cookieDeprecationLabelManager",["eventlib","commonparamutil"],function(e,n){"use strict";var t,i;function a(){t=!0}function l(e){i=e.cdeplbl||""}return{init:function(){e.$4T("cdeplbl\_api\_present",n.$1Z(),a),e.$4T("cdeplbl\_ready",n.$1Z(),l)},$33:function(){return t?""===i?"empty\_label":i||"timeout":"api\_not\_available"}}});$00("intersectionapi",["util"],function($){return function(e,n,t,i,o){var r,u,c,s=$.$4r(n)?n:window,a=$.$4r(t)?t:.5,f=!1,l=null,b={rootMargin:"0px",threshold:a},h=$.$4s(i)?parseInt(i,10):1e3;function v(n,t,i){i||n.unobserve(e),$.$4p(t)&&t()}this.onIABViewableStart=function(n){r=n||function(){}},this.onIABViewableEnd=function(n){u=n||function(){}},this.startObserving=function(){$.$4r(e)&&null===l&&(l=new s.IntersectionObserver(function(n,t){var i;i=t,n.forEach(function(n){f=n.intersectionRatio>=a?(clearTimeout(c),c=setTimeout(function(){f&&v(i,r,o)},h),!0):(v(i,u,!0),!1)})},b)).observe(e)},this.$0N=function(){clearTimeout(c),l.unobserve(e)}}});$00("scrr-intersection-helper",["util","intersectionapi"],function($,u){"use strict";var a=1e3,f=0,d=.5,v=1,s=.3,w=242e3,l={};function t(r,i,o){var c;function n(){n=i,t=function(n){var e=l.cvc||{};return $.$4r(e[n])?e[n]:$.$4r(e.def)?e.def:void 0}(l.crid),e={$0L:t&&t.time||a},$.$4r(n)&&(t&&$.$4r(t.area)?e.$2o=t.area:function(n){var e=n&&n.clientWidth||0,n=n&&n.clientHeight||0;if(w<=e\*n)return v;return f}(n)===v?e.$2o=s:e.$2o=d);var n,e,t=e;(c=new u(i,r,t.$2o,t.$0L,l.$61)).onIABViewableStart(o),c.startObserving(),$.$4p(l.$62)&&c.onIABViewableEnd(l.$62)}return"function"==typeof window.IntersectionObserver&&n(),{$0N:function(){c&&c.$0N()}}}return{init:function(n,e){return new t((l=n).$2n||window,l.$60||document.activeElement||document.body,e)}}});$00("viewable-impression",["util","logutil","domutil","chkpTimeUtil","lochashutil","scsVarAdapter","scrr-intersection-helper","eventlib","l3receiver","commonparamutil"],function(t,n,r,s,v,a,e,$,c,d){"use strict";var p="",m=a.vimpd&&a.vimpd.vimpp||{},\_=a.$2F&&a.$2F.misc&&a.$2F.misc.bdata||"";function l(){var i,e,$;!t.$4q(p)&&t.$4q(a.$2G.lHost)&&(p=a.$2G.lHost+"/bqi.php?"),t.$4q(p)&&(e=p+t.$4z(m)+t.$4z(function(){var i={};t.$4q(\_)&&(i.vgde\_bdata=t.$59(\_)),i.vgd\_acid=v.$1v("acid"),i.hvsid=d.$1a(),i.cme=a.$2F.meta.cme||"",i.fp=a.$2F.meta.fp||"",i.timeObj=s.$30((new Date).getTime(),!1),$0H.$3a.$0I()&&(i.vgde\_ydsp=$0H.$3a.$45());(e=r.$36())&&(e.x\_pos||e.y\_pos)&&(i.vgd\_x\_pos=e.x\_pos,i.vgd\_y\_pos=e.y\_pos),e.rensize&&(i.vgd\_rensize=e.rensize),e.ren\_page\_h&&(i.vgd\_ren\_page\_h=e.ren\_page\_h),t.$4q(c.$1l("bqs"))&&(i.vgd\_bqs=c.$1l("bqs"));var e=a.$2F.misc.privacy||{};return t.$5C(e,i)}()),e=t.$5A(e,"vgd\_len",e.length),i=e,$=a.$2F.misc.trunLogUrl||"",t.$4q($)?(i=t.truncateUrl(i,$),i+="&vgd\_end=2"):i+="&vgd\_end=1",e=i,n.$2U([e]),0<($=c.$1l("ntvViewTrks")).length)&&n.$2U($)}return{init:function(){var i;e.init(((i={}).crid=a.$2F.meta.crid||"",i.cvc=a.vimpd&&a.vimpd.cvc||{},i),function(){1!==t.$5Q(a,["vimpd","disIVimp"],0)&&l(),$.$4V("SCRR::VIMP",{})})}}});$00("modulefactory",[],function(){"use strict";function e(e){var r=!0,a={};try{a=$01([e])[0]}catch(e){r=!1}return a.$0I=function(){return r},a}return{$3C:e("conversionpixelcontroller"),$3D:e("browserhinter"),$3E:e("preconnect"),$3F:e("linkprefetch"),$3G:e("kwdClickTargetModifier"),hover:e("hover"),$3H:e("mraid-util"),$3I:e("mraidDelayedLogging"),$3J:e("mraidlogginghelper"),$3K:e("macrokeywords"),$3L:e("tcfdatamanager"),$3M:e("l3-reporting-observer-adapter"),$3N:e("editorial\_blocking"),$3O:e("keywordProcessor"),$3P:e("directAdsHandler"),$3Q:e("loggingHandler"),$3R:e("customsitesearch"),adPrefDeviceUtil:e("adprefdeviceutil"),adPrefMobileUtil:e("adprefmobileutil"),adPrefResponsiveUtil:e("adprefresponsiveutil"),$3S:e("kwdclickdebugpixel"),$3T:e("ntvHandler"),$3U:e("ntvKwdHandler"),$3V:e("ntvAdHandler"),$3W:e("ntvExtProvHandler"),$3X:e("imageProcessor"),$3Y:e("landing-page-click-tracker"),$3Z:e("jtaghelper"),$3\_:e("copykeywordhandler"),$3a:e("ybndsphelper"),$3b:e("adjustiframeheighttobody"),$3c:e("refreshhelper"),$3d:e("hideybncahelper"),$3e:e("performanceUtil"),$3f:e("browserCacheUtil"),$3g:e("supply-side-macros"),$3h:e("setupPostMessage"),$3i:e("cookieDeprecationLabelManager"),$3j:e("inslEventHandler"),zola:e("zola"),$3k:e("viewable-impression"),$3l:e("spamAnalystPixel"),$3m:e("asSignalTracker"),$3n:e("kwdOverflowLogger"),$3o:e("landing-page-dwell-time-tracker"),$3p:e("scrr-checkpoint-tracker")}});$00("core",["util","commonconstants","scsVarAdapter","metaparamutil","lochashutil","eventlib"],function(i,e,H,t,o,l){"use strict";return i.$51.start(),i.$58(e.$09.$0Y),i.$51.tick(e.$09.$0Z),{init:function(){var $;i.$5R("reels"),$0H.$3p.$0I()&&$0H.$3p.log(e.CHECKPOINT\_TRACKER.CORE),i.$58("matm"),window.locHash=H.locHash,window.$2F=t.init(),o.init(),$0H.adPrefDeviceUtil.$0I()&&(window.adPrefDeviceUtil=$0H.adPrefDeviceUtil),$0H.adPrefMobileUtil.$0I()&&(window.adPrefMobileUtil=$0H.adPrefMobileUtil),$0H.adPrefResponsiveUtil.$0I()&&(window.adPrefResponsiveUtil=$0H.adPrefResponsiveUtil),$=[$0H.$3h,$0H.$3i,$0H.$3L,$0H.$3Q,$0H.$3C,$0H.hover,$0H.$3g,$0H.$3O,$0H.$3X,$0H.$3P,$0H.$3T,$0H.$3R,$0H.$3H,$0H.$3e,$0H.$3j,$0H.$3k,$0H.$3M,$0H.$3l,$0H.$3m,$0H.$3o],i.each($,function($){$.$0I()&&$.init()}),$=H.mNL3&&H.mNL3.vi?H.mNL3.vi:"",i.$4q($)&&H.$2O&&l.$0J("l2StaticModulesConfig",$,!1,{l2mc:H.$2O||{}}),$0H.$3T.$0I()||$0H.$3j.$0I()||$0H.$3Q.$0I()&&$0H.$3Q.$0X()}}});var $0H=$01(["modulefactory"])[0],mUtil=$01(["core","util","abputil","renderinghelper","rtbsdatautil","eventlib","logutil","scsVarAdapter","loggingservice"],function(r,n,e,t,l,a,i,o,s){try{r.init()}catch(e){var r=window.scVars.nerrUrl,c=window.location.href,g=c.replace(window.location.hash,""),c=((e.stack||"").replaceAll(c,"l2Url").replaceAll(g,"l2Url")||"").replaceAll("https://"+window.location.host,"l2Url")||"",c={logLevel:3,layer:"scrr",errorVal:{name:e.name,message:e.message,stack:c,svr:"38824",cdv:"1914",cage:o.cage,scsver:o.scsver}};8700<(r=r+"&d="+encodeURIComponent(JSON.stringify([c]))+"&l2Url="+encodeURIComponent(g)).length?r=n.truncateUrl(r,8700)+"&vgd\_end=5":r+="&vgd\_end=1",i.$2V(r)}return{showFapiAds:null,getLayer1WindowObject:n.getLayer1WindowObject,getABPFlag:e.getABPFlag,changeAdFramesDimensions:t.changeAdFramesDimensions,getRtbsDisableReason:l.getRtbsDisableReason,fireLogPixel:s.fireLogPixel,$0J:a.$0J,truncateUrl:n.truncateUrl,renderAdUnit:s.$0X,closeExInttAd:function(){if($0H.$3j.$0I())return $0H.$3j.$0W()},closeInttAd:function(){if($0H.$3j.$0I())return $0H.$3j.$0V()}}});</script><script type="text/javascript"> function appendCustomHeader() { var cH = document.createElement('div'); cH.innerHTML = 'Advertisement'; cH.className = 'mnetAdb'; var cHsT = cH.style; cHsT.top = '5px'; cHsT.right = '5px'; cHsT.position = 'absolute'; cHsT.fontSize = '10px'; cHsT.background = "#FFF"; cHsT.color = "#F00"; cHsT.padding = "1px"; cHsT.fontWeight = "bold"; document.body.appendChild(cH); } </script><script type="text/javascript">if(typeof changeIframeDimensions == "undefined" && !!mUtil){mUtil.changeAdFramesDimensions({width:'100%', height:'689'});}</script><script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon="{"version":"2024.11.0","token":"b581429c7412469eac644440f0848da9","r":1,"server\_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location\_startswith":null}}" crossorigin="anonymous"></script>
viproofingbrisbane.com.au may be for sale, click to inquire
未采集
| brand_primary | #0E1118 |
| brand_secondary | #5A5C61 |
| brand_accent | #B68B3F |
| surface | #FFFFFF |
| surface_muted | #F4F4F5 |
| text | #0E1118 |
| text_muted | #5A5C61 |
| border | #E4E4E7 |
# VIP Roofing Brisbane Website Visual Style Contract
## Boundary
This contract defines brand direction and visual guardrails. It does not design the final UI, page structure, component layouts, breakpoints, or frontend implementation.
## Brand Reading
Read the logo first: weight, typography, geometry, color, and personality should drive the website's visual system.
## Overall Style Direction
Style: clean local business
The website should feel premium-trade, urban, commercial-credible, established, restrained-confident.
Avoid: No gradient logos. No drop shadow on mark. No rounded 'P' bowl (must stay squared). No brass background washes. No 'welcome to' / 'trusted partner' / 'X years of excellence' template copy. No luxury cliché — VIP here means commercial-premium, not pageantry.
## Color Boundaries
```css
:root {
--brand-primary: #0E1118;
--brand-secondary: #5A5C61;
--brand-accent: #B68B3F;
--surface: #FFFFFF;
--surface-muted: #F4F4F5;
--surface-dark: #111111;
--text: #0E1118;
--text-muted: #5A5C61;
--border: #E4E4E7;
}
```
Color rules:
- Use brand colors by role, not decoration.
- Maintain strong contrast for logo, text, nav, forms, and CTAs.
- Do not overuse the accent color as a full-page wash unless explicitly specified.
## Logo Usage Boundaries
- Light background logo: logo-light.svg
- Dark background logo: logo-dark.svg
- Mark/compact logo: logo-mark.svg
- Header: Light header (#FFFFFF) with logo-light.svg + dark text nav. Phone number top-right in brass. Sticky on scroll, 8% drop shadow.
- Footer: Dark footer (#0E1118) with logo-dark.svg. Secondary text in #B5B5B7. ABN + license + Eagle St CBD address below logo.
- Minimum size: Full lockup: 140px wide minimum on screen. Mark: 28px square minimum. Favicon: 16px (V/I/P remain readable; brass ridge becomes a single accent pixel row).
- Local contact: For local businesses, preserve room for phone number and quote/contact CTA; do not oversize the logo in the header.
- Export safety: check SVG viewBox padding so text, strokes, italic overshoots, and outlined paths are not clipped.
## Typography
- Heading font: Inter Tight 700/800 — geometric extended sans, matches the heavy mark.
- Body font: Inter 400/500 — neutral, paired body.
- Fallback stack: 'Inter Tight', 'Industry Inc', 'Helvetica Neue', Arial, sans-serif
- Logo typography notes: Bold geometric extended sans (Inter Tight Bold 800 / approximating Industry Inc). The 'P' bowl is intentionally squared to suggest box-gutter / parapet geometry — that detail is part of the brand and must not be replaced with a rounded bowl. The 'I' has slab serif caps (parapet feel). Wordmark uses tracked sans for tagline (BRISBANE).
## Layout Density
Density: medium/service-focused
Keep pages scannable, practical, and aligned with the brand's level of polish.
## Shape Language
Use shapes, radius, borders, and line weights that match the logo geometry.
## Header System
Protect logo visibility and avoid typography/color choices that compete with it. Do not prescribe exact header layout here.
Local business contact rule: Desktop header should expose phone or primary contact action. Mobile header should prioritize call, quote, or menu based on conversion need.
## Footer System
Footer should preserve the logo as the primary brand object, with readable links and restrained CTA/contact treatment.
## Buttons And CTA
Primary CTA: brass #B68B3F background, near-black #0E1118 text, 2px corner radius max. Secondary: outlined steel-gray border, dark text. Hover: 10% darker brass.
## Cards And Forms
Squared corners (2px). Flat — no drop shadow. 1px #E4E4E7 border. Inner padding 32px.
## Imagery Direction
CBD commercial roofing photography preferred (Brisbane skyline + commercial flat / metal roofs). Drone shots of completed work. Avoid stock 'handshake' and 'happy crew' shots.
## Icon Style
Geometric line icons (1.5px stroke), squared terminals, no rounded ends. Industrial: ridge cap, parapet, gutter, lapping seam, ladder.
## Section Backgrounds
Alternate white #FFFFFF and muted #F4F4F5. One hero section per page on #0E1118 with overlay imagery.
## Motion And Interaction
Use subtle, purposeful interactions. Avoid animations that fight the brand tone or delay conversion actions.
## Responsive Behavior
Define when full logo switches to mark-only, and protect logo visibility in mobile header/footer.
## Do / Don't
Do:
- Keep the logo visible in header, hero, footer, and mobile.
- Use the brand token system consistently.
- Match typography, shape, imagery, and icons to the logo personality.
Do not:
- Recolor the logo outside documented variants.
- Place the logo on low-contrast or busy backgrounds.
- Use generic website templates that clash with the logo.
- Add effects, shadows, or gradients to the logo unless explicitly approved.
## Website Agent Prompt
```text
Use the supplied VIP Roofing Brisbane mark exactly as provided. Do not redraw the V, I, or P glyphs; do not move or recolor the brass apex ridge. The brand reads as premium-trade for Brisbane CBD commercial roofing — restrained-confident, urban, geometric, structural. Use #0E1118 as primary, #B68B3F as the accent (apply sparingly — primary CTAs and apex line only), and #5A5C61 as secondary/text-muted. Strong typographic hierarchy with Inter Tight Bold for headings. Maintain high contrast; the brass accent is a precious-detail color, never a background wash.
```
# Brand Assets
## Brand Summary
- Business name: VIP Roofing Brisbane
- Short name/key word: VIP
- Industry/niche: commercial and residential metal roofing
- Local area: Brisbane CBD, Queensland
- Brand personality: premium-trade, urban, commercial-credible, established, restrained-confident
- Logo strategy: geometric letterform mark (VIP) + brass apex ridge accent + stacked wordmark
- Output mode: website-ready brand kit
## Logo Assets
- `logo-light.svg`: Full stacked lockup for light surfaces (mark + VIP ROOFING + BRISBANE).
- `logo-dark.svg`: Full stacked lockup for dark surfaces (VIP → white, brass stays, BRISBANE → light gray).
- `logo-mark.svg`: VIP mark only with brass apex ridge — header, badge, watermark.
- `logo-wordmark.svg`: VIP ROOFING + BRISBANE wordmark only · no mark.
- `logo-mono-dark.svg`: Single-color black, brass element removed/unified — print/single-color use.
- `logo-mono-light.svg`: Single-color white version.
- `favicon.svg`: Mark padded to 1:1 · brass apex remains.
- `social-avatar.svg`: Mark on solid #0E1118 1024×1024 square (white VIP, brass ridge) — works for circle and square crops.
Clearspace: Reserve at least the height of the 'I' stem (about 320 SVG units / 1× cap height) around the full lockup.
Minimum size: Full lockup: 140px wide minimum on screen. Mark: 28px square minimum. Favicon: 16px (V/I/P remain readable; brass ridge becomes a single accent pixel row).
Background restrictions: Light variant on surfaces #FFFFFF–#E4E4E7. Dark variant on surfaces darker than #2A2A2E. Never place light logo on warm beige photography — use scrim or dark variant. Brass accent must reach 3:1 contrast against its background.
Small-size assets: Use logo-mark.svg or favicon.svg for headers <56px tall. Never squeeze the full stacked lockup into a square avatar.
Visual style contract: See visual-style-contract.md in this folder.
Agent handoff: See agent-handoff.md.
QA checklist: Run logo-qa-checklist.md before delivery.
## Color System
```css
:root {
--brand-primary: #0E1118;
--brand-secondary: #5A5C61;
--brand-accent: #B68B3F;
--surface: #FFFFFF;
--surface-muted: #F4F4F5;
--text: #0E1118;
--text-muted: #5A5C61;
--border: #E4E4E7;
}
```
## Typography
- Logo typography: Bold geometric extended sans (Inter Tight Bold 800 / approximating Industry Inc). The 'P' bowl is intentionally squared to suggest box-gutter / parapet geometry — that detail is part of the brand and must not be replaced with a rounded bowl. The 'I' has slab serif caps (parapet feel). Wordmark uses tracked sans for tagline (BRISBANE).
- Heading font: Inter Tight 700/800 — geometric extended sans, matches the heavy mark.
- Body font: Inter 400/500 — neutral, paired body.
- Fallback stack: 'Inter Tight', 'Industry Inc', 'Helvetica Neue', Arial, sans-serif
## UI Direction
- Header: Light header (#FFFFFF) with logo-light.svg + dark text nav. Phone number top-right in brass. Sticky on scroll, 8% drop shadow.
- Footer: Dark footer (#0E1118) with logo-dark.svg. Secondary text in #B5B5B7. ABN + license + Eagle St CBD address below logo.
- Favicon/social: favicon.svg for browser tabs · social-avatar.svg (dark #0E1118 background) for Google Business Profile / Facebook / Instagram.
- Buttons: Primary CTA: brass #B68B3F background, near-black #0E1118 text, 2px corner radius max. Secondary: outlined steel-gray border, dark text. Hover: 10% darker brass.
- Links: Inline links use #B68B3F with subtle underline. Hover deepens to #8E6B2C.
- Section backgrounds: Alternate white #FFFFFF and muted #F4F4F5. One hero section per page on #0E1118 with overlay imagery.
- Cards/forms: Squared corners (2px). Flat — no drop shadow. 1px #E4E4E7 border. Inner padding 32px.
- Icons: Geometric line icons (1.5px stroke), squared terminals, no rounded ends. Industrial: ridge cap, parapet, gutter, lapping seam, ladder.
- Imagery: CBD commercial roofing photography preferred (Brisbane skyline + commercial flat / metal roofs). Drone shots of completed work. Avoid stock 'handshake' and 'happy crew' shots.
- Avoid: No gradient logos. No drop shadow on mark. No rounded 'P' bowl (must stay squared). No brass background washes. No 'welcome to' / 'trusted partner' / 'X years of excellence' template copy. No luxury cliché — VIP here means commercial-premium, not pageantry.
- Website visual style: Urban premium-trade. Dense information layout with strong typographic hierarchy. Near-black + steel-gray + warm brass. Photo-heavy hero blocks of commercial work. Avoid luxury, avoid SaaS gradient aesthetics, avoid generic 'modern minimal'.
## AI Website Agent Prompt
```text
Use the supplied VIP Roofing Brisbane mark exactly as provided. Do not redraw the V, I, or P glyphs; do not move or recolor the brass apex ridge. The brand reads as premium-trade for Brisbane CBD commercial roofing — restrained-confident, urban, geometric, structural. Use #0E1118 as primary, #B68B3F as the accent (apply sparingly — primary CTAs and apex line only), and #5A5C61 as secondary/text-muted. Strong typographic hierarchy with Inter Tight Bold for headings. Maintain high contrast; the brass accent is a precious-detail color, never a background wash.
```
# Agent Handoff ## Brand - Business: VIP Roofing Brisbane - Industry: commercial and residential metal roofing - Location: Brisbane CBD, Queensland - Output mode: website-ready brand kit ## Read Order 1. `brand-assets.md` 2. `visual-style-contract.md` 3. `logo-qa-checklist.md` 4. `source-logo-audit.md` if this is an existing-logo conversion 5. SVG assets ## Logo Usage - Light background: logo-light.svg - Dark background: logo-dark.svg - Compact mark: logo-mark.svg - Favicon/social: favicon.svg for browser tabs · social-avatar.svg (dark #0E1118 background) for Google Business Profile / Facebook / Instagram. ## Non-Negotiables - Keep logo visible and uncropped. - Use documented dark/light variants. - Do not recolor or distort the logo. - Preserve source logo fidelity if this is an existing-logo conversion. - Preserve local phone/quote/contact priority for local businesses. - Follow `visual-style-contract.md` as direction and guardrails, not fixed UI. ## Website Agent Freedom The website agent owns: - page layout - component design - spacing - section order - responsive breakpoints - frontend implementation ## Constraints - Color: Use brand tokens by role and preserve contrast. - Typography: Match the logo personality; avoid clashing fonts. - Imagery: CBD commercial roofing photography preferred (Brisbane skyline + commercial flat / metal roofs). Drone shots of completed work. Avoid stock 'handshake' and 'happy crew' shots. - Avoid: No gradient logos. No drop shadow on mark. No rounded 'P' bowl (must stay squared). No brass background washes. No 'welcome to' / 'trusted partner' / 'X years of excellence' template copy. No luxury cliché — VIP here means commercial-premium, not pageantry. ## Known Limitations ['Wordmark uses live <text> elements rendered via Inter Tight font family (web font). For print/PDF use, outline to paths first to lock fidelity.', 'Brass accent #B68B3F was chosen for contrast against #FFFFFF (3.4:1) — passes graphical/UI contrast threshold but not normal-text body contrast. Do not use brass for body text.', 'Mark, brass ridge, and apex diamond are originally drawn vectors — no auto-trace artifacts.', "The 'P' squared bowl is a deliberate brand mark, not an error. Do not replace with a rounded bowl."]
# Logo QA Checklist Business: VIP Roofing Brisbane - [ ] Expected assets exist or omissions are documented. - [ ] SVG files validate. - [ ] SVG viewBox has export-safety padding. - [ ] Logo is transparent unless a background was requested. - [ ] Dark and light variants preserve contrast. - [ ] No hidden rectangle is used to fake contrast. - [ ] Existing-logo changes are documented as cleanup, adaptation, or optional redesign. - [ ] Exact-font uncertainty and fallback strategy are documented. - [ ] Header-size logo remains readable. - [ ] Local phone/quote action has room when applicable. - [ ] Footer logo remains visible and not overpowered. - [ ] Favicon/social asset is not a squeezed full horizontal logo. - [ ] Visual style contract is direction and guardrails, not UI spec. - [ ] Agent handoff tells website agent what it may decide. - [ ] Final response mentions meaningful limitations. ## Notes -
:root {
--brand-primary: #0E1118;
--brand-secondary: #5A5C61;
--brand-accent: #B68B3F;
--surface: #FFFFFF;
--surface-muted: #F4F4F5;
--text: #0E1118;
--text-muted: #5A5C61;
--border: #E4E4E7;
}
{
"business_name": "VIP Roofing Brisbane",
"key_word": "VIP",
"industry": "commercial and residential metal roofing",
"location": "Brisbane CBD, Queensland",
"personality": "premium-trade, urban, commercial-credible, established, restrained-confident",
"logo_strategy": "geometric letterform mark (VIP) + brass apex ridge accent + stacked wordmark",
"output_mode": "website-ready brand kit",
"agent_prompt": "Use the supplied VIP Roofing Brisbane mark exactly as provided. Do not redraw the V, I, or P glyphs; do not move or recolor the brass apex ridge. The brand reads as premium-trade for Brisbane CBD commercial roofing — restrained-confident, urban, geometric, structural. Use #0E1118 as primary, #B68B3F as the accent (apply sparingly — primary CTAs and apex line only), and #5A5C61 as secondary/text-muted. Strong typographic hierarchy with Inter Tight Bold for headings. Maintain high contrast; the brass accent is a precious-detail color, never a background wash.",
"colors": {
"brand_primary": "#0E1118",
"brand_secondary": "#5A5C61",
"brand_accent": "#B68B3F",
"surface": "#FFFFFF",
"surface_muted": "#F4F4F5",
"text": "#0E1118",
"text_muted": "#5A5C61",
"border": "#E4E4E7"
},
"logo_assets": {
"logo-light.svg": "Full stacked lockup for light surfaces (mark + VIP ROOFING + BRISBANE).",
"logo-dark.svg": "Full stacked lockup for dark surfaces (VIP → white, brass stays, BRISBANE → light gray).",
"logo-mark.svg": "VIP mark only with brass apex ridge — header, badge, watermark.",
"logo-wordmark.svg": "VIP ROOFING + BRISBANE wordmark only · no mark.",
"logo-mono-dark.svg": "Single-color black, brass element removed/unified — print/single-color use.",
"logo-mono-light.svg": "Single-color white version.",
"favicon.svg": "Mark padded to 1:1 · brass apex remains.",
"social-avatar.svg": "Mark on solid #0E1118 1024×1024 square (white VIP, brass ridge) — works for circle and square crops."
},
"clearspace": "Reserve at least the height of the 'I' stem (about 320 SVG units / 1× cap height) around the full lockup.",
"minimum_size": "Full lockup: 140px wide minimum on screen. Mark: 28px square minimum. Favicon: 16px (V/I/P remain readable; brass ridge becomes a single accent pixel row).",
"background_restrictions": "Light variant on surfaces #FFFFFF–#E4E4E7. Dark variant on surfaces darker than #2A2A2E. Never place light logo on warm beige photography — use scrim or dark variant. Brass accent must reach 3:1 contrast against its background.",
"small_size_assets": "Use logo-mark.svg or favicon.svg for headers <56px tall. Never squeeze the full stacked lockup into a square avatar.",
"visual_style_contract": "See visual-style-contract.md in this folder.",
"agent_handoff": "See agent-handoff.md.",
"qa_checklist": "Run logo-qa-checklist.md before delivery.",
"logo_typography": "Bold geometric extended sans (Inter Tight Bold 800 / approximating Industry Inc). The 'P' bowl is intentionally squared to suggest box-gutter / parapet geometry — that detail is part of the brand and must not be replaced with a rounded bowl. The 'I' has slab serif caps (parapet feel). Wordmark uses tracked sans for tagline (BRISBANE).",
"heading_font": "Inter Tight 700/800 — geometric extended sans, matches the heavy mark.",
"body_font": "Inter 400/500 — neutral, paired body.",
"font_stack": "'Inter Tight', 'Industry Inc', 'Helvetica Neue', Arial, sans-serif",
"header": "Light header (#FFFFFF) with logo-light.svg + dark text nav. Phone number top-right in brass. Sticky on scroll, 8% drop shadow.",
"footer": "Dark footer (#0E1118) with logo-dark.svg. Secondary text in #B5B5B7. ABN + license + Eagle St CBD address below logo.",
"favicon_social": "favicon.svg for browser tabs · social-avatar.svg (dark #0E1118 background) for Google Business Profile / Facebook / Instagram.",
"buttons": "Primary CTA: brass #B68B3F background, near-black #0E1118 text, 2px corner radius max. Secondary: outlined steel-gray border, dark text. Hover: 10% darker brass.",
"links": "Inline links use #B68B3F with subtle underline. Hover deepens to #8E6B2C.",
"sections": "Alternate white #FFFFFF and muted #F4F4F5. One hero section per page on #0E1118 with overlay imagery.",
"cards": "Squared corners (2px). Flat — no drop shadow. 1px #E4E4E7 border. Inner padding 32px.",
"icons": "Geometric line icons (1.5px stroke), squared terminals, no rounded ends. Industrial: ridge cap, parapet, gutter, lapping seam, ladder.",
"imagery": "CBD commercial roofing photography preferred (Brisbane skyline + commercial flat / metal roofs). Drone shots of completed work. Avoid stock 'handshake' and 'happy crew' shots.",
"avoid": "No gradient logos. No drop shadow on mark. No rounded 'P' bowl (must stay squared). No brass background washes. No 'welcome to' / 'trusted partner' / 'X years of excellence' template copy. No luxury cliché — VIP here means commercial-premium, not pageantry.",
"website_visual_style": "Urban premium-trade. Dense information layout with strong typographic hierarchy. Near-black + steel-gray + warm brass. Photo-heavy hero blocks of commercial work. Avoid luxury, avoid SaaS gradient aesthetics, avoid generic 'modern minimal'.",
"design_loop_notes": "See logo-review.md for 3-direction exploration, rejected directions, and revision evidence.",
"limitations": [
"Wordmark uses live <text> elements rendered via Inter Tight font family (web font). For print/PDF use, outline to paths first to lock fidelity.",
"Brass accent #B68B3F was chosen for contrast against #FFFFFF (3.4:1) — passes graphical/UI contrast threshold but not normal-text body contrast. Do not use brass for body text.",
"Mark, brass ridge, and apex diamond are originally drawn vectors — no auto-trace artifacts.",
"The 'P' squared bowl is a deliberate brand mark, not an error. Do not replace with a rounded bowl."
]
}
未跑 image-harvester · 跑 pl:classify-images 后才有
| 注册商 | DROP.com.au Pty Ltd |
| 最近变更 | 2026-03-08 |
| status | server renew prohibited |
未采集
| ABN | 80 109 162 183 · Cancelled |
| 注册名(真法人) | Siyabonga Pty Ltd |
| 实体类型 | Australian Private Company |
| ACN | 109162183 |
| 状态生效 | 2009-04-01 |
| GST 注册 | 否 |
| Trading names |
✓ 1 个 AU 外部 mention · 0 个已 LLM summarize
✓ Tinyfish fetch + Ollama qwen3.5:9b summarize · 全免费 · ~15s/link · run via pl:summarize-external-mentions --slug vip-roofing-brisbane
✓ desktop + mobile + video
未采集
所有数据源的健康检查 + LLM 把 raw 数据精炼成"核心事实"(每条 fact 标来源)· 这是 wireframe 阶段的真正输入
| gbp | thin Missing: state, email, hours, editorial_summary, about |
| owned_website | ok No images extracted · run pl:extract-crawl-images |
| tinyfish_mentions | failed 10 unresolved link(s) |
| domain_history | missing No domain age data |
| abn | missing No ABN on file |
https://www.yelp.com/biz/vip-roofing-brisbane-brisbanehttps://www.facebook.com/VIPRoofingBrisbane/https://www.houzz.com.au/professionals/roofing-and-gutters/vip-roofing-brisbane-pfvwau-pf~1704278009https://au.linkedin.com/company/vip-roofing-brisbanehttp://viproofingbrisbane.weebly.com/https://www.mapquest.com/au/queensland/vip-roofing-brisbane-794217557https://www.instagram.com/viproofingbrisbane/https://www.poyst.com/business/vip-roofing-brisbanehttps://www.whereis.com/brisbane-city-qld/wip/vip-roofing-brisbane-580887080https://rocketreach.co/vip-roofing-brisbane-competitors_b7550f9cc53f4590| Domain | URL · Reason |
| www.yelp.com | https://www.yelp.com/biz/vip-roofing-brisbane-brisbane no summary |
| www.facebook.com | https://www.facebook.com/VIPRoofingBrisbane/ no summary |
| www.houzz.com.au | https://www.houzz.com.au/professionals/roofing-and-gutters/vip-roofing-brisbane-pfvwau-pf~1704278009 no summary |
| au.linkedin.com | https://au.linkedin.com/company/vip-roofing-brisbane no summary |
| viproofingbrisbane.weebly.com | http://viproofingbrisbane.weebly.com/ no summary |
| www.mapquest.com | https://www.mapquest.com/au/queensland/vip-roofing-brisbane-794217557 no summary |
| www.instagram.com | https://www.instagram.com/viproofingbrisbane/ no summary |
| www.poyst.com | https://www.poyst.com/business/vip-roofing-brisbane no summary |
| www.whereis.com | https://www.whereis.com/brisbane-city-qld/wip/vip-roofing-brisbane-580887080 no summary |
| rocketreach.co | https://rocketreach.co/vip-roofing-brisbane-competitors_b7550f9cc53f4590 no summary |
codex_cli · 240s · prompt 141KB · ~$0.5 · raw: customer-brief.md · core-extract.json
完整的客户业务理解文档 · 支撑整个网站的设计与文案 · 每个章节都基于已验证的原始数据(GBP / 已有网站 / Google 评论 / 外部 mentions / ABN)
Generated: 2026-05-18T13:02:15.904Z · LLM:codex_cli· 240s · prompt 141KB · ~$0.5
VIP Roofing Brisbane is listed on Google as a Brisbane roofing contractor with a 5-star rating from 26 reviews and a business address at 39/71 Eagle St, Brisbane City QLD 4000. The verified public phone number is 07 3062 7779. The strongest available market signal is not the current website, but the Google Business Profile: the business appears in local search for roofer Brisbane, has a perfect visible rating, and has enough reviews to support a trust-led redesign. The current website, however, is not a real business website. The crawl shows a parked or for-sale domain reading viproofingbrisbane.com.au, with related-search links such as Commercial Metal Roofing Near Me, Metal Roof Installation Price and even off-topic terms like Walk-In Showers for Bathrooms. The master audit states that visitors from Google Maps or search are immediately sent to a competitor-referral style page with no way to contact the business. For the redesign team, the brief is therefore recovery plus repositioning: build a credible Brisbane roofing website that makes the phone number, Google rating, Brisbane City base and roofing contractor category immediately clear. Because the corpus lacks ABN, licence, owner story, real reviews and project details, the first version should be transparent rather than overclaiming. Lead with verified facts, add strong placeholders for licence and project proof, and build the content architecture around confirmed roofing services once the business validates the scope.
The available corpus gives VIP Roofing Brisbane a clear local identity but almost no usable company story. The business name appears consistently across Google Business Profile, master audit and external mention search results as VIP Roofing Brisbane. Google lists the business at 39/71 Eagle St, Brisbane City QLD 4000, Australia, with a QLD landline formatted as 07 3062 7779. The business category is roofingcontractor, and the profile reports a 5-star rating from 26 reviews. The master audit records that this lead was found through the Google Places API for roofer brisbane, ranking 14th in that result set, first discovered on 2026-05-14. That means the company already has some local discovery footprint, even though the owned domain is failing. Domain history is thin. WHOIS/RDAP confirms the domain viproofingbrisbane.com.au, privacy redaction, registrar DROP.com.au Pty Ltd, lastchanged_at 2026-03-08 and status server renew prohibited. WHOIS did not expose a registration date, expiry date or domain age, and Wayback data is null. The current site crawl does not show an About page, founder bio, ABN, service history, licence, insurance wording or years-in-business claim. Instead, the live page is a parked domain with advertising links and the line that viproofingbrisbane.com.au may be for sale. External mentions suggest the brand has wider footprint candidates: Yelp, Facebook, Houzz, LinkedIn, Weebly, MapQuest, Instagram, Poyst, Whereis and RocketReach results all reference VIP Roofing Brisbane, but tinyfish did not return raw page content for those mentions. For a new website, the background section should therefore be written as a verified local-business introduction, not an invented heritage story. It can say the business is a Brisbane roofing contractor with a Google profile, Brisbane City address and 5-star Google rating from 26 reviews. It should not claim a founder, founding year, number of years, family ownership, licence, awards or project history until supplied by the client.
There are no named team members, owner quotes or verbatim customer reviews in the provided corpus, so the design team should avoid inventing personalities, crew structure or workmanship claims. The strongest culture signal available is indirect: VIP Roofing Brisbane has a Google Business Profile with 26 reviews and a 5-star rating, which indicates that past customers have had positive experiences, but the actual review language was not included. The current website contributes nothing useful about team culture because it is a parked page, not an operational business site. The crawl shows no staff photos, no team page, no owner story, no project gallery and no process explanation. This absence should shape the redesign. The site should be built with modules that can receive real human proof as soon as it is collected: a founder card, team photo strip, job-site process section, review carousel, project gallery and licence/insurance trust bar. Until then, copy should stay grounded and factual. A suitable culture direction is professional, direct and local-service oriented: answer the phone, inspect the roof, explain the options, complete the work carefully and leave the site tidy. Those behaviours are ai-inferred expectations for a roofing contractor, not verified claims from the corpus. The current business problem is that warm visitors from Google are likely reaching a page that looks unrelated, commercialised and possibly abandoned. The redesign needs to reverse that impression in the first screen by showing a real business name, phone number, Brisbane location, Google rating and roofing category. Once the business provides real reviews, the team-and-culture content should be rewritten around customer phrases such as punctuality, communication, workmanship, cleanup and value if those themes appear in the reviews. For launch readiness, collecting at least one owner quote and one team photo is higher impact than writing a generic About section.
The verified service scope is narrow because the live website contains no genuine service content. The Google Business Profile confirms the category roofing_contractor, which should be the parent service for the website. The master audit also identifies roofing, roof and gutter as detected service keywords. The redesign should create a clear Services hub but should mark individual service pages as pending client confirmation before publication. Roofing contractor should be framed as the main offer: customers in Brisbane and Brisbane City need a local trade business that can assess roofing issues, explain the repair or replacement path and provide a clear quote. The process section should include enquiry, roof inspection, written scope, scheduled works and final handover, but the exact warranty and licensing language must be verified. Roof repairs are a likely priority page because local roofing search intent often begins with water ingress, storm damage, loose sheets, broken tiles or ageing flashings. This is ai-inferred and must be confirmed; no source states VIP Roofing Brisbane performs leak repair. If confirmed, the copy should move from pain point to process: identify the leak source, document visible damage, repair the failed component and advise on prevention. Roof replacement is another likely service because the parked page displays Roofing Materials For Replacement and Metal Roof Installation Price, but these are advertising search terms on a parked page, not genuine business copy. If the client confirms replacement work, the page should cover material choice, roof condition assessment, ventilation, gutter interface, scheduling and site cleanup. Metal roofing installation is also suggested only with caution. The parked page includes Commercial Metal Roofing Near Me and Metal Roof Installation Price, and Brisbane has strong demand for Colorbond and metal roofing, but there is no verified service description. If offered, the site should specify whether VIP handles residential metal roofs, commercial metal roofs or both. Gutter work is the only adjacent service keyword detected by the master audit, but no details exist. A gutter page should not overpromise; it should be written after confirming whether the team repairs gutters, replaces gutters, cleans gutters, installs downpipes or handles stormwater drainage tie-ins. The Services architecture should also allow future pages for roof inspections, storm damage, insurance reports and maintenance. These are ai-inferred service expansions, useful for wireframes and SEO planning, but they must be validated before the site says VIP Roofing Brisbane offers them. The critical content principle is simple: use verified facts for launch pages, then enrich each service with real project examples, materials, warranty details and review quotes once collected.
The confirmed geography is Brisbane, with the business address specifically in Brisbane City. The Google Business Profile lists 39/71 Eagle St, Brisbane City QLD 4000, Australia, and the master audit identifies the city as Brisbane. Tinyfish external mention titles also reinforce Brisbane and Brisbane City, including Poyst’s title VIP Roofing Brisbane Brisbane City – 5.0★ Reviews & Hours. No suburb-by-suburb service area was provided in the corpus, and no website copy confirms Northside, Southside, Logan, Ipswich, Redlands, Moreton Bay or Gold Coast coverage. For the redesign, the service-area content should therefore be honest: VIP Roofing Brisbane is a Brisbane roofing contractor based in Brisbane City, with service coverage to be confirmed directly with the business. For SEO wireframes, create a Service Areas page with a verified core section for Brisbane and Brisbane City, then a pending-suburbs module that can be activated only after confirmation. Suggested nearby suburbs for future SEO include Fortitude Valley, Spring Hill, New Farm, South Brisbane, West End, Kangaroo Point, Woolloongabba, Toowong, Paddington, Bulimba, Chermside and Indooroopilly; these are ai-inferred based on proximity and should not be presented as real service coverage until the client approves them. The page should avoid thin doorway pages at launch. Instead, it should use one strong Brisbane roofing service area page, include the verified address and phone number, add a map link, and explain how customers can call 07 3062 7779 to confirm availability for their suburb. Once review text or project records are available, the service-area section should be updated with real suburb proof such as completed jobs, testimonials or before/after photos.
The corpus confirms customer approval at a rating level but does not provide customer language. Google Business Profile reports a 5-star rating from 26 reviews, and the master audit repeats 5★ with 26 reviews. The Poyst search result title also references 5.0★ Reviews & Hours. However, google-reviews-verbatim is an empty array, reviews-analysis is null and no tinyfish mention returned raw markdown. This means the redesign team cannot legally or ethically quote any customer review text from the supplied corpus. The right strategy is to design for customer voice now and populate it later. The homepage should have a review-summary band near the hero with the verified statement 5-star Google rating from 26 reviews, without quoting individual reviewers. A testimonial carousel should be prepared with fields for quote, author, suburb and service type, but left unpublished or populated only after the client provides approved review excerpts. The most useful future review themes to extract will likely be punctuality, quality of workmanship, communication, value, cleanup and problem resolution; these are ai-inferred themes common to local trade reviews, not facts from the corpus. The current website creates the opposite of customer confidence. It shows related-search advertising, no phone number, no address, no reviews, no project photos and no credentials. The master audit states that the page sends visitors toward competitor-style results and gives them no way to contact VIP Roofing Brisbane. Customer voice therefore has to do two jobs in the redesign: reassure visitors that the business is real, and prove that other Brisbane customers have trusted them. Until verbatim reviews are available, the site should use only factual proof chips: 5.0 Google rating, 26 Google reviews, Brisbane City address, 07 3062 7779 phone, roofing contractor category. The human teammate should treat review extraction as a top launch blocker because real phrases will materially improve hero copy, About copy, service pages and conversion sections.
The current visual identity is mostly accidental because the owned domain is parked. The crawl exposes a dark navy background colour #10162c, a gold/orange hover colour #e09a00, white text, and Montserrat Regular loaded from a CDN. The master audit’s generated brand spec suggests a more refined palette: #0E1118 primary, #5A5C61 secondary, #B68B3F accent, white surface, #F4F4F5 muted surface and #E4E4E7 borders. The redesign should use the master brand spec rather than copying the parking page, but the dark navy/charcoal plus restrained gold direction is appropriate for a roofing contractor because it feels trade-professional, stable and premium without becoming flashy. Voice should be professional, plainspoken and local. The site should not sound luxurious or overly corporate; customers hiring roofers usually want clarity, speed, proof and a working phone number. Sample brand paragraph one: VIP Roofing Brisbane helps Brisbane property owners get clear roofing advice and a practical next step, starting with a direct call to 07 3062 7779. Sample brand paragraph two: Based in Brisbane City, the team is listed on Google as a roofing contractor and backed by a 5-star rating from 26 reviews. Sample brand paragraph three: The new website should make every page useful: what roofing issue the service solves, how the inspection works, what the customer receives and which credentials support the work. Sample brand paragraph four: Because the current domain is parked, the first brand impression must be rebuilt around real contact details, verified reviews, service clarity and visible proof of completed work. Visually, avoid stock-like roof silhouettes and generic construction icons as the main signal. The highest-impact assets will be real Brisbane roof photos, team photos and before/after project images. Until those are available, use a clean, text-forward design with a strong phone CTA and clear trust bar.
The clearest competitive opportunity is recovery of trust. VIP Roofing Brisbane already has a Google profile with a 5-star rating from 26 reviews, a Brisbane City address and a local roofing-contractor category, but the current domain undermines that trust by displaying a parked or for-sale page. In a local trade market, many competitors will have ordinary websites but at least show phone numbers, service lists, project photos, licence details and reviews. VIP’s redesign can move quickly from severe digital disadvantage to credible local contender by making the basics excellent: visible phone number, tap-to-call mobile bar, verified Google rating, Brisbane location, licence/ABN once supplied, real roof photos and service pages that match common search intent. The distinction should not be invented as biggest, cheapest, family-owned or decades-experienced because none of those claims are supported. The verified positioning is: Brisbane roofing contractor, 5-star Google rating, 26 reviews, Brisbane City contact point. The ai-inferred positioning is: a practical, responsive roofer for homeowners, builders and property managers who need a clear quote and a reliable local contact. A strong first-party website will also stop the current leakage where domain-parking links send visitors into related searches like Commercial Metal Roofing Near Me or unrelated terms like Walk-In Showers for Bathrooms. The website strategy should frame the redesign as a trust rebuild: replace confusing ads with verified business details, replace silence with clear service information, replace no CTA with immediate phone contact, and replace no proof with review and project evidence as soon as available.
Verified trust signals are limited but important. First, Google Business Profile lists VIP Roofing Brisbane as a roofing contractor with a 5-star rating and 26 reviews. Second, the business has a published phone number, 07 3062 7779, and a listed address at 39/71 Eagle St, Brisbane City QLD 4000, Australia. Third, external search mentions exist across Yelp, Facebook, Houzz, LinkedIn, Weebly, MapQuest, Instagram, Poyst and Whereis, although raw content was not available and should be verified before use. Fourth, the domain is location-keyword rich: viproofingbrisbane.com.au, which is valuable if reclaimed and deployed properly. Missing trust signals are just as important: ABN is null, QBCC or state licence is not found, insurance is not found, warranty is not found, founded year is not found, owner name is not found, project photos are not found, and verbatim customer testimonials are not found. The redesigned site should include a trust bar with only verified facts at launch: 5-star Google rating, 26 Google reviews, Brisbane City address and tap-to-call phone. It should include reserved fields for ABN, QBCC licence, insurance and workmanship warranty, but those fields must not be filled until confirmed by the business.
The homeowner persona is likely the highest-value visitor. They may have a leak, damaged roof, ageing materials, storm concerns or a planned replacement. Their decision criteria are fast contact, proof the roofer is real, local availability, licence/insurance confidence and plain-English explanation. The new site should let this visitor call 07 3062 7779 immediately, then scan services, reviews and photos before committing to an inspection. The builder or renovator persona needs a roofer who can fit into a schedule, communicate clearly and provide a scope that aligns with other trades. The corpus does not verify builder work, so this persona should only be targeted if confirmed, but the website can prepare a Commercial and Builders page as a draft module. The commercial property or facilities persona cares about responsiveness, access, safety, insurance, reporting and minimal disruption. Again, commercial metal roofing appears only as a parked-page ad term, so it should be treated as ai-inferred until verified. The insurance or storm-damage persona needs documentation, photos, cause assessment and a clear written quote. This service path is not verified but is typical for roofing in Queensland. The final persona is the comparison shopper from Google Maps. This visitor has seen the 5-star rating and clicks through expecting proof. Today they land on a parked page and likely leave. The redesigned homepage must be built for this person above all: business name, roofing contractor, Brisbane City, 5-star rating, 26 reviews, phone CTA, service list and real proof within the first few scrolls.
No pricing, quote policy, job duration, deposit terms, payment methods or finance options were found in the corpus. The parked page displays ad terms such as Metal Roof Installation Price, but those are not VIP Roofing Brisbane’s pricing signals and should not be treated as service copy. For a roofing contractor, the sales cycle is usually problem-driven: a customer notices a leak, visible roof damage, gutter issue or planned replacement need, then compares local roofers, checks reviews, calls for availability and requests an inspection or quote. This is ai-inferred, not directly verified. The website should therefore avoid publishing specific price ranges unless the business provides them. Instead, it should answer pricing questions with factors: roof size, material, access, pitch, damage extent, safety requirements, waste removal and urgency. The primary conversion should be a call or quote request, not an online checkout. The audit indicates the current site has no visible CTA, no phone number and no contact method, which breaks the sales cycle at the first step. The redesign should restore that path with phone-first CTAs, a short quote form and a promise of clear next steps. Form fields should include name, phone, suburb, property type, service needed, brief issue description, preferred timing and photo upload. Any statements about free quotes, same-day service, emergency callouts or warranty must be confirmed before publishing.
The website should be rebuilt as a real local-service site, not a visual refresh of the current domain. Recommended pages are Home, Services, Roof Repairs, Roof Replacement, Metal Roofing, Guttering, Roof Inspections, Service Areas, Projects, Reviews, About and Contact. Only Home, Services, Service Areas and Contact can be written confidently from the current corpus; the individual service pages need client validation before launch. The Home page’s role is immediate trust recovery: show VIP Roofing Brisbane, roofing contractor in Brisbane, 5-star Google rating from 26 reviews, Brisbane City address and tap-to-call 07 3062 7779. The Services page should explain confirmed offerings once verified and keep unverified services in draft. The Service Areas page should start with Brisbane and Brisbane City and later expand into approved suburbs. The Projects page should be a high priority because there are no usable project descriptions in the corpus; even three real roof projects would transform the site’s credibility. The Reviews page should use verified Google rating initially and add verbatim review excerpts once obtained. The About page should present the business without fake history: local Brisbane roofing contractor, contact details, Google review proof and a commitment to clear roofing advice. Contact should include click-to-call, quote form, address, hours once verified, and map link. Technical strategy should include LocalBusiness JSON-LD, Service schema, FAQPage schema, AggregateRating schema if compliant, sitemap.xml, robots.txt with AI bot policy, analytics, conversion tracking and a working tel: link. The first design priority is mobile: sticky phone CTA, concise hero, review proof chips and no dead-end links.
The header should correct the current site’s biggest failure: visitors cannot see a business phone number or real CTA. Desktop header should include the VIP Roofing Brisbane wordmark or text logo, navigation links for Services, Service Areas, Projects, Reviews, About and Contact, the verified phone number 07 3062 7779 as a tel link, and a primary Request a Quote button. If no logo asset is supplied, use a clean text lockup with VIP Roofing Brisbane and a small descriptor such as Roofing Contractor, Brisbane; do not invent a crest or badge that implies licensing. Mobile header should be compact: logo/text lockup on the left, phone icon button and menu icon on the right, plus a sticky bottom Call 07 3062 7779 CTA. The menu should expose Services, Service Areas, Reviews, About and Contact, with the quote CTA repeated at the bottom. Header trust chips can include 5-star Google rating and 26 reviews, but avoid cramming them into the top nav on small screens. Because the current website is a parked page, every header element must be first-party and conversion-oriented. No external directory links should appear in the primary navigation unless deliberately used for review proof.
The footer should function as the site’s trust and verification shelf. It should repeat the business name VIP Roofing Brisbane, the verified phone number 07 3062 7779, and the address 39/71 Eagle St, Brisbane City QLD 4000, Australia. Include a map link to the address and a short line such as Brisbane roofing contractor listed on Google with a 5-star rating from 26 reviews. Add footer navigation for Home, Services, Service Areas, Projects, Reviews, About, Contact, Privacy Policy and Terms if created. Include a Credentials block with placeholders clearly marked for ABN, QBCC licence, insurance and warranty; these should be hidden or labelled pending internally until verified, not published as blanks. Hours should be included only after the business confirms them because the corpus did not provide a weekly schedule. Social links can be added after verifying the Facebook and Instagram profiles returned by tinyfish. The footer can also include a simple service-area sentence: Based in Brisbane City and serving Brisbane, with additional suburbs to be confirmed. Add LocalBusiness schema using verified NAP details, but do not add missing fields like openingHours or taxID until supplied. The footer should avoid using the parked page’s privacy link or third-party ad links. Its job is to close the trust loop for cautious visitors who scroll to the bottom before calling.
The primary CTA should be phone-first: Call 07 3062 7779. That is the only verified direct conversion channel in the corpus, and the audit identifies absence of visible phone and click-to-call as critical failures. Place the primary CTA in the desktop header, hero section, sticky mobile bottom bar, service page sidebars, review sections and footer. The secondary CTA should be Request a Roofing Quote, leading to a short form. The quote form should ask for name, phone, email if desired, suburb, service type, property type, urgency, message and optional photo upload. Do not ask for too much information before the first contact; roofing leads often convert better when the business can call back quickly. A tertiary CTA can be View Services or See Service Areas, but those should support, not replace, phone and quote actions. Because the current domain sends people into competitor-style related searches, every CTA must keep visitors within the VIP Roofing Brisbane experience. Avoid generic Learn More buttons in high-intent sections. Use specific actions: Call now, Request quote, Check if we service your suburb, Send roof photos. For trust-sensitive sections, pair CTA with verified proof chips: 5-star Google rating, 26 reviews, Brisbane City address. Any CTA promising free quotes, emergency response, same-day inspections or warranties requires client confirmation before publication.
5-star Google rating · 26 Google reviews · Brisbane City address07 3062 7779 · Roofing contractor · Brisbane City QLD 4000Audit score 27/100 · 5-star Google rating · 26 reviewsVIP Roofing Brisbane is a Brisbane roofing contractor listed on Google with a 5-star rating from 26 reviews. The business is associated with 39/71 Eagle St, Brisbane City QLD 4000 and can be contacted on 07 3062 7779. This About page should be published only with verified credentials added, but the foundation is clear: customers searching for roofing help in Brisbane need a real local contact, visible proof and a simple way to ask for a quote. The current viproofingbrisbane.com.au domain does not yet provide that experience. It resolves to a parked or for-sale page with related-search advertising rather than a genuine company website. This new website is designed to make the business easier to understand and easier to contact. Visitors should be able to see the company name, roofing category, Brisbane location, Google review proof and phone number without hunting through the page. The site should also explain the roofing services VIP Roofing Brisbane confirms it provides, the suburbs it serves, and the credentials that matter for roofing work in Queensland. Before launch, the business should supply its ABN, QBCC licence details, insurance wording, warranty policy, operating hours, team or owner story, and real project photos. Those details will turn this page from a factual business introduction into a persuasive local brand story. Until then, the safest message is direct: VIP Roofing Brisbane is a Brisbane roofing contractor with a strong Google rating and a current need for a proper website that reflects the business customers expected to find when they clicked from Google.
VIP Roofing Brisbane is listed on Google as a roofing contractor in Brisbane. The Google Business Profile shows the business name, phone number 07 3062 7779, address at 39/71 Eagle St, Brisbane City QLD 4000, a 5-star rating and 26 reviews. No detailed company history, owner bio or service-page copy was included in the supplied corpus.
Use the verified Google Business Profile phone number: 07 3062 7779. It should appear in the desktop header, mobile sticky call bar, hero section, contact page and footer. The number should be coded as a click-to-call tel link so mobile visitors can call directly without copying and pasting.
The verified address is 39/71 Eagle St, Brisbane City QLD 4000, Australia. The footer and contact page should use this exact address, ideally with a map link. If the business uses this as an office, mailing address or service-area marker rather than a walk-in location, that distinction should be confirmed before launch.
Not yet. The supplied data does not include a QBCC licence number, ABN, insurance certificate or state licence detail. The website should reserve space for these trust signals but should not publish licensing claims until the business provides verified information. This is especially important for Queensland roofing work.
The site can state the verified aggregate signal: 5-star Google rating from 26 reviews. The corpus did not include verbatim review text, reviewer names or locations, so no individual testimonials should be quoted yet. Before launch, export or manually collect approved review excerpts for the testimonial and Reviews pages.
The confirmed category is roofing contractor, and the audit detected roofing, roof and gutter keywords. Specific pages such as roof repairs, roof replacement, metal roofing, guttering and inspections are sensible draft pages, but each must be confirmed with the business before publication.
The confirmed geography is Brisbane and Brisbane City. Nearby suburbs such as Fortitude Valley, New Farm, Spring Hill, South Brisbane, West End and Kangaroo Point are useful SEO candidates, but they are ai-inferred and should not be presented as verified service coverage until the business approves the list.
The current domain resolves to a parked or for-sale page, not a real roofing website. The crawl shows related-search ads and no genuine business content, while the master audit flags no visible phone, no CTA, no reviews, no photos, no credentials, no LocalBusiness schema and no service copy.
The parked page uses dark navy #10162c and orange #e09a00, but those may not be intentional brand colours. The master brand spec recommends a refined charcoal, muted grey, gold accent and clean white surfaces. That direction is suitable for a professional roofing contractor, pending any real logo or brand assets.
No usable owned-site project photos were included in the corpus. Tinyfish found a Yelp result titled Updated May 2026 - 23 Photos and a Houzz Project Photos & Reviews result, but raw content was not available. The human team should verify those sources and request original project photos from the business.
The primary CTA should be Call 07 3062 7779 because the phone number is verified and local trade customers often want fast direct contact. A secondary Request a Roofing Quote form should collect name, phone, suburb, service type, issue description and optional photos.
No. WHOIS did not provide domain age, Wayback is null, and the website crawl contains no established or since statement. The site should not claim a founding year, years of experience or family-owned history until the client confirms it and provides supporting details.
*This brief was generated by pl:llm-extract-core fusing 1 crawled pages + 10 tinyfish mentions + GBP + verbatim Google reviews + ABN + WHOIS/Wayback + ? image refs. Provider: codex_cli · 240s · 141KB prompt → 5000c response.*
| business_name | VIP Roofing Brisbane GBP · master-md |
| phone | 1 item(s) GBP · master-md |
| 0 item(s) website-crawl · master-md | |
| address | 39/71 Eagle St, Brisbane City QLD 4000, Australia GBP · master-md |
| hours | (null) GBP · website-crawl · tinyfish-mention |
| license_numbers | {"abn":null,"vba":null,"qbcc":null,"state_license":null} abn · website-crawl · master-md |
| founded_year | (null) website-crawl · tinyfish-mention · whois · wayback |
| owner_name | (null) website-crawl · tinyfish-mention |
| service_list | 4 item(s) GBP · master-md · website-crawl |
| suburbs_served | 2 item(s) GBP · master-md |
| testimonials | 0 item(s) google-reviews-verbatim |
| team_members | 0 item(s) website-crawl · tinyfish-mention |
| domain_age_years | (null) whois · wayback |
| domain | {"domain":"viproofingbrisbane.com.au","registered_at":null,"expires_at":null,"last_changed_at":"2026-03-08","registrar":"DROP.com.au Pty Ltd","status":["server renew prohibited"],"privacy_redacted":tr whois · master-md |
| abn | (null) abn |
| google_rating | 5 GBP · master-md |
| google_review_count | 26 GBP · master-md |
| google_categories | 3 item(s) GBP |
| website_status | The current domain resolves to a parked or for-sale page with related-search advertising, not a functioning business website. website-crawl · master-md |
| audit_score | 27 master-md |
| Roofing contractor | The Google Business Profile categorises VIP Roofing Brisbane as a roofing contractor serving Brisbane. |
| Roofing | The master audit detected roofing as a service keyword associated with the current site/domain. |
| Roof | The master audit detected roof as a service keyword associated with the current site/domain. |
| Gutter | The master audit detected gutter as a service keyword associated with the current site/domain, but no detailed gutter service page or description was provided. |
Brisbane Brisbane City
| suggested service expansions | Roof leak detection and repair Roof replacement Metal roofing installation Gutter repairs and replacement Storm damage roof repairs Roof inspections and reports |
| suggested suburbs | [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] [object Object] |
| hero copy candidates | ▸ {"h1":"Brisbane Roofing Contractor Rated 5 Stars by 26 Google Reviewers","source":"ai-inferred","verified_number_used":"5 stars, 26 reviews" ▸ {"h1":"VIP Roofing Brisbane: 07 3062 7779 for Roofing Help in Brisbane City","source":"ai-inferred","verified_number_used":"07 3062 7779"} ▸ {"h1":"A Real Website for a 5-Star Brisbane Roofing Business","source":"ai-inferred","verified_number_used":"5-star Google rating"} |
| suggested FAQs | 7 suggestions |
每条 LLM 输出都带 _source 标注 · verified:scraped 不重写 · ai-completed AI 重写 · ai-inferred 推理提炼
✗ 0 services · claude:claude-sonnet-4-5
# About VIP Roofing Brisbane VIP Roofing Brisbane 自 2015 在 Brisbane 经营 · 至今 11 年。 Google 评分: 5★ · 26 条评论。 ## 备注 MVP 阶段 · 这段为 niche typical + 硬数据综合 · LLM 综合升级见 V3-HANDOFF-STRUCTURE Phase B (Cascade A 调用)。
| angle | service-led |
| headline | Metal Roofing, Repairs & Full Restorations Across Brisbane |
| subheadline | From quick leak fixes to complete roof replacements. Licensed roofers serving Indooropilly and surrounding suburbs with upfront pricing. |
| proof_chips | |
| rationale | Immediately communicates the full service range and makes the phone number the primary action, removing any confusion about what they do or how to contact them. |
| _source | ai-completed:claude:claude-sonnet-4-5 |
| angle | urgency-led |
| headline | Roof Leaking? We Fix Brisbane Roofs Fast—Today or Tomorrow |
| subheadline | Emergency repairs, insurance work, and full restorations. Metal roofing specialists based in Indooropilly with same-week availability for urgent jobs. |
| proof_chips | |
| rationale | Addresses the most common pain point (leaks) with a time-specific promise, making the CTA feel immediately relevant for distressed homeowners. |
| _source | ai-completed:claude:claude-sonnet-4-5 |
| angle | trust-led |
| headline | Licensed Brisbane Roofers—No Subbies, No Surprises, No Runaround |
| subheadline | We do the work ourselves: roof repairs, metal roofing, and full restorations. Serving Indooropilly homes and businesses with honest quotes and clean finishes. |
| proof_chips | |
| rationale | Tackles the industry's credibility problem head-on by promising direct accountability, which immediately sets them apart from franchises and subcontractor networks. |
| _source | ai-completed:claude:claude-sonnet-4-5 |
未分析
所有上游数据汇成 v2-spec.json · composer 直接读 · 8 个目录 / 12 个顶层项
| version | 2.0 |
| niche / family | roofing / industrial-trade-credible |
| facts | 15 keys |
| services | 0 |
| pages | 6 |
| brand | 5 keys (logo / colors / fonts) |
| narrative_content | hero_copy · team · timeline · case_studies · reviews · faqs · about_md |
| assets.work | 6 张真照片 |
| / | home · 10 blocks · index.html |
| /roof-restoration | service-detail · 9 blocks · roof-restoration.html |
| /roof-repair | service-detail · 9 blocks · roof-repair.html |
| /gutter-replacement | service-detail · 9 blocks · gutter-replacement.html |
| /about | about · 8 blocks · about.html |
| /contact | contact · 6 blocks · contact.html |
| logo-light.svg | 查看 |
| logo-dark.svg | 查看 |
| logo-mono-light.svg | 查看 |
| logo-mono-dark.svg | 查看 |
| logo-mark.svg | 查看 |
| logo-wordmark.svg | 查看 |
| favicon.svg | 查看 |
| social-avatar.svg | 查看 |
v2-spec.json (V2 schema) facts.json (locked facts) DESIGN-HANDOFF.md (design contract) DESIGN-MANIFEST.json (design spec) content/services.json (B1 extract · _source 标注) content/about.md (B2 extract) content/hero-copy.json (B3 LLM-rewritten) content/faq.json structure/page-map.json structure/header.json + footer.json + cta-system.json brand/ (12 SVG + brand-tokens.css + visual-style-contract.md) shared/shared.css (composer 用) assets/ (真客户照片 + work/) asset-prompts.md (image gen prompts)
LLM 读完所有原始数据 + BEST-PRACTICES + niche-spec · 输出每个 block 的完整文案 + ASCII wireframe + layout intent + 每条 fact 的来源 + inference 标注 · 不含颜色/字体(那是 DESIGN.md 的工作 · 套上去就是完整页面)
npm run pl:llm-wireframe-page -- --slug vip-roofing-brisbane --page home --llm claudecomposer 读 v2-spec.json · 用模块库 27 个 + 各页 block 组合 · 全程无 LLM
| HTML 页数 | 6 页 |
| 模块默认图(modules-assets) | 25 张 |
| composer 文件 | scripts/cli/pl-compose-site.js |
| 模块库 | templates/roofing/modules/ · 27 模块 |
| about.html | 本地 · live |
| contact.html | 本地 · live |
| gutter-replacement.html | 本地 · live |
| index.html | 本地 · live |
| roof-repair.html | 本地 · live |
| roof-restoration.html | 本地 · live |
每个 issue 4-layer 结构:技术事实 / 普通话翻译 / 客户影响 / 标准答案 / Redesign 怎么改
→ 看完整 master.md 渲染版(21 章) · → Internal audit HTML
content/about.md 的 B2-extract 原版 · 没二次 PASTOR 重写 · 段落偏长偏 genericpl:rewrite-narrative 二次重写 about-md 到 punchy + about-grid 模块 wire 进 GBP photos当前 v2-spec.json 仅含 facts / brand / services / pages / header / footer / narrative_content / assets。缺:
| archetype 4-dim | 缺 · business_model / primary_material / lead_strategy / site_scale (家私 5 family 没自动路由) |
| voice profile | 缺 · tone_markers / brand_names / customer_quotes (LLM 已分析 reviews 但没注入 spec) |
| projects/case-studies | 缺 · 每个真项目 (suburb / material / scope / source_ref) |
| per-field _source | 缺 · spec 里字段没带 source 溯源(services.json 有 · 进 spec 丢了) |
28 个模块 · composer 读 v2-spec.json → mini-Mustache 渲染 → 多页 HTML · 全程无 LLM
| about-body | 1 variant: sections-narrative |
| about-timeline | 1 variant: vertical |
| before-after | 1 variant: draggable-slider · + bundled assets |
| case-study | 1 variant: project-detail-list · + bundled assets |
| comparison-table | 1 variant: colorbond-vs-tile |
| contact-form | 1 variant: full-form |
| cta-band | 1 variant: centered-dark |
| emergency-callout | 1 variant: red-band |
| faq | 1 variant: accordion |
| financing-band | 1 variant: horizontal |
| gallery | 1 variant: grid-3col · + bundled assets |
| hero | 5 variants: cinematic-with-bundled-photo · compact-banner · fullbleed-with-form · fullbleed-with-stats · split-image-right · + bundled assets |
| lead-form | 1 variant: compact-band |
| legal-body | 1 variant: placeholder |
| map-embed | 1 variant: google-iframe |
| process | 1 variant: four-step-horizontal |
| product-spotlight | 1 variant: single-material |
| proof-strip | 1 variant: logos-row |
| reviews | 1 variant: card-grid-3col |
| safety-insurance | 1 variant: coverage-band |
| service-areas | 1 variant: chip-list |
| services-grid | 1 variant: icon-cards-3col |
| spec-callout | 1 variant: profile-trio |
| stats-band | 1 variant: big-numbers |
| team-grid | 1 variant: staff-cards · + bundled assets |
| trust-bar | 1 variant: horizontal-chips |
| warranty-detail | 1 variant: three-tier |
| why-us | 1 variant: three-col-numbers |
每个模块 = HTML structure + inline CSS + mini-Mustache 变量。变量用 {{var}} · 条件 {{?cond}}...{{/cond}} · 循环 {{#list}}...{{/list}}
<section class="hero-cinematic">
<div class="hero-cinematic-bg" style="background-image: linear-gradient(180deg, rgba(15,17,21,0.4) 0%, rgba(15,17,21,0.55) 50%, rgba(15,17,21,0.85) 100%), url('{{?hero.image}}{{hero.image}}{{/hero.image}}{{^hero.image}}{{template_assets}}/hero/cinematic-default.png{{/hero.image}}');"></div>
<div class="container hero-cinematic-inner">
<div class="hero-cinematic-text">
<p class="hero-eyebrow">{{city}} · {{state}} · {{licensing_authority}} Licensed</p>
<h1 class="hero-cinematic-h1">{{hero.headline}}</h1>
<p class="hero-cinematic-sub">{{hero.subheadline}}</p>
<div class="hero-cinematic-cta">
<a class="btn-primary hero-cinematic-primary" href="{{hero.primary_cta_href}}">{{hero.primary_cta_label}}</a>
<a class="hero-cinematic-secondary" href="#quote-form">{{hero.secondary_cta_label}} →</a>
</div>
</div>
</div>
</section>
<style>
.hero-cinematic { position: relative; min-height: 90vh; display: flex; align-items: center; color: #fff; overflow: hidden; }
.hero-cinematic-bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: -1; }
.hero-cinematic-inner { display: flex; align-items: flex-end; min-height: 90vh; padding: 64px 0; }
.hero-cinematic-text { max-width: 760px; }
.hero-cinematic .hero-eyebrow { font-family: 'Inter', monospace; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand-accent); margin: 0 0 24px; font-weight: 700; }
.hero-cinematic-h1 { font-family: var(--font-display); font-size: clamp(48px, 7.5vw, 96px); line-height: 0.96; letter-spacing: -0.03em; margin: 0 0 28px; font-weight: 700; }
.hero-cinematic-sub { font-size: 21px; line-height: 1.5; max-width: 600px; color: rgba(255,255,255,0.9); margin: 0 0 40px; }
.hero-cinematic-cta { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.hero-cinematic-primary { padding: 18px 32px; font-size: 16px; }
.hero-cinematic-secondary { color: #fff; text-decoration: underline; text-underline-offset: 4px; font-weight: 700; font-size: 15px; }
@media (max-width: 820px) { .hero-cinematic { min-height: 70vh; } .hero-cinematic-inner { min-height: 70vh; } }
</style>
1. 读 v2-spec.json
pages: [{slug: "/", role: "home", blocks: [hero, trust-bar, services-grid, ...]}, ...]
2. 对每个 page · 每个 block:
a) 按 type 找 modules/<type>/<variant>.html
(hero 用 HERO_VARIANT_BY_ROLE 选 variant · home=fullbleed-with-form · service=cinematic · about=compact-banner)
b) 读 module HTML 模板
c) 用 page context 渲染 mini-Mustache 变量
pageCtx = { ...spec.facts, services, hero, page_role, template_assets, ... }
3. 拼成完整 HTML:
<DOCTYPE> + <head>(shared.css link) + header(generated from v2.header) +
<main>(所有 blocks 串联) + footer(generated from v2.footer)
4. adjustPaths · 处理相对路径
- depth-aware: /about.html → about.html · /services/foo.html → ../services/foo.html
- url('assets/...') → 加上 depth 前缀
- 绝对路径 /xxx → 转 page-relative
输出 · clients/<slug>/v2/composed-output/
├── index.html (home · 10 blocks)
├── about.html (about · 8 blocks)
├── services.html
├── new-roofs.html
├── ... 8 个 HTML 文件
├── shared/shared.css
├── brand/ (logo SVG + tokens)
├── assets/ (真客户图)
└── modules-assets/ (模块 bundled 默认图 · fallback)
确定性:同 v2-spec.json 跑 100 次输出字节一致 · 0 LLM 在渲染链路
| 1. hero | variant=(default · first .html) |
| 2. trust-bar | variant=(default · first .html) |
| 3. services-grid | variant=(default · first .html) |
| 4. why-us | variant=(default · first .html) |
| 5. process | variant=(default · first .html) |
| 6. before-after | variant=(default · first .html) |
| 7. stats-band | variant=(default · first .html) |
| 8. reviews | variant=(default · first .html) |
| 9. lead-form | variant=(default · first .html) |
| 10. cta-band | variant=(default · first .html) |
iframe 嵌 vicwest home · 第一屏即第 1 个模块(hero)渲染输出
| Demo (V2 composer) | https://vip-roofing-brisbane-dev.pages.dev |
| Master.md (21 章 raw + provenance) | /master.md |
| Master.md HTML 渲染版 | /master.report.html |
| Customer-facing audit (英文) | /customer-facing-audit.html |
| Internal audit (中文) | /internal-audit-report.html |
| Pipeline tracker (this page) | /pipeline.html |
| about.html | https://vip-roofing-brisbane-dev.pages.dev/about.html |
| contact.html | https://vip-roofing-brisbane-dev.pages.dev/contact.html |
| gutter-replacement.html | https://vip-roofing-brisbane-dev.pages.dev/gutter-replacement.html |
| index.html | https://vip-roofing-brisbane-dev.pages.dev/index.html |
| roof-repair.html | https://vip-roofing-brisbane-dev.pages.dev/roof-repair.html |
| roof-restoration.html | https://vip-roofing-brisbane-dev.pages.dev/roof-restoration.html |
2026-05-18 跑出来的第一个 stable 结果 · 锁定作为 baseline · 后面所有的实验都和这个对比
| Composite | 89/100 |
| Vision (10-dim) | 90.3/100 |
| Copy judge (5-dim) | 47/50 |
| Image score (D6+D9) | 40.8/50 |
| L1 locked-facts | ✓ PASS (customer pages) |
| L2 content quality | ✓ PASS |
| L3 build sanity | ⚠ 1 minor failure · non-blocking |
| Pages produced | 10 multi-page · all HTTP 200 |
| Live URL | https://vip-roofing-brisbane-od-dev.pages.dev |
| OD project (Mac app) | vicwest-roofing Open Design concept |
| Snapshot | clients/vip-roofing-brisbane/concept/od-baseline-89/ |
这些是产生 89 分输出的精确输入 · 后面想优化先理解这套输入
| prompt.txt (0.0 KB) | PRIMARY directive · sent via --prompt arg to codex (not just a seed file) |
| brief-summary.md (0.0 KB) | compact customer brief · 19 sections distilled from the full 5500-word brief |
| DESIGN-HANDOFF.md (0.0 KB) | per-page block plan + header/footer contract + hard rules |
| site-architecture.json | sanitized · meta-fields (purpose / differentiation_note / copy_brief / content_focus / primary_visitor_intent / role) stripped before seeding |
| facts.json (0.0 KB) | locked verbatim facts · phone, email, ABN, address, hours, owner, services, suburbs, testimonials |
| assets/ (0 photos + work/) | real customer photos from GMB + owned website |
| brand/ | brand-spec.json + logo SVGs (light / dark / mark) + brand contract |
| references/ | family-DESIGN.md (550 lines) + BEST-PRACTICES.md + niche-spec.md |
0403 554 592 + tel: link in header AND hero AND footer AND mid-page CTA (verbatim check)info@vicwestroofing.com.au with mailto: link in footer AND contact page (verbatim check)69 622 718 361 in every footer legal sentence<form> for quote/contact<link> tags loaded in <head> (specifying font-family in CSS is insufficient)这些是从失败中学到的 · 不要重蹈覆辙
--prompt 是主要 directive · seed 文件是次要的 — OD 的 run-concept.js 把 --prompt 发给 codex 作为 THE 指令。seed dir 里的文件是 project 文件,agent 可能读可能不读。Orchestrator 必须把 seed/prompt.txt 内容通过 --prompt 传给 OD · 否则得到 1-page 184-word 输出。0403 554 592 AND tel: link must appear in (a) header (b) hero (c) every form (d) sticky mobile bar (e) footer" → 600+ words per page · Vision 跳 40→90 · Copy 跳 21→47.brand/preview.html 等 side artifact 不应作为客户页面 audit · 否则会造成 false-negative composite=0.vision.dim_scores 不存在 · 实际是 vision.vision_results[].scores.D6_hero_quality · 必须聚合./tmp/open-design/ipc/release-stable/daemon.sock 返回随机 HTTP port. 我们要 attach 到 Mac app 的 daemon 而不是 spawn 自己的 port 7466.font-family: 'Inter Tight' 但没加 <link href="fonts.googleapis.com/...> · 浏览器 fall back 到 generic sans · 设计语言看起来"凌乱". 必须显式要求 Google Fonts <link> 标签.purpose / differentiation_note / copy_brief / content_focus / primary_visitor_intent / role 本是 architect 给 copywriter LLM 的笔记. OD 单 agent 读到时无法区分 "instructions to me" 和 "content I should write" — agent 把它们 paraphrase 成可见文案. 例如 "The people visitors deal with before and during roof work" 原本是 purpose note. 修复: pl:build-od-seed 现在在 seed 之前 strip 这些 fields.10 页都在 live · home + roof-replacements + about
2h 47min · 11 OD runs + audits + judges · 测试 variance / image strategy / taste skill / cross-client scale
| variant | vision · copy · composite |
| vicwest-run1 | vision 86.7 · copy 47/50 · 83/100 |
| vicwest-run2 | vision 70.3 · copy 44/50 · 76/100 |
| vicwest-run3 | vision 53.3 · copy 45/50 · 63/100 |
| Variance | 20 分 spread · median 76 |
| variant | vision · copy · composite |
| vicwest-I_real (customer photos) | vision 59.3 · copy 47/50 · 69/100 ← winner (by 1pt) |
| vicwest-I_ai (gpt-image-1 generated) | vision 60.3 · copy 49/50 · 69/100 |
| vicwest-I_mixed (AI hero + customer rest) | vision 64.3 · copy 43/50 · 68/100 |
| 结论 | image strategy 几乎不影响 score · 三者差距 1 分以内 · 个人审美选 I_real (real photos better for trust audit) |
| variant | vision · copy · composite |
| vicwest · web-prototype (default) | vision 68.7 · copy 48/50 · 71/100 ← winner |
| vicwest · web-prototype-taste-soft | vision 66.3 · copy 42/50 · 67/100 |
| vicwest · web-prototype-taste-editorial | vision 47 · copy 49/50 · 63/100 ← worst |
| 结论 | web-prototype 是 roofing 的正确 skill · editorial 太 magazine-y · 视觉低分 |
| client | L1 · L2 · L3 · vision · copy · composite |
| vicwest-roofing (Ballarat · rich data) | ✓ ✓ ✗ · vision 86.7 · copy 47/50 · 83/100 |
| vip-roofing-brisbane (Brisbane · thinner data) | ✗ ✗ ✗ · vision 41.3 · copy 13/50 · 0/100 |
| west-coast-roofing (Perth · thinner data) | ✗ ✗ ✓ · vision 50.3 · copy 16/50 · 0/100 |
| 结论 | 0/2 scale · recipe 不能直接复用到不同客户 · copy judge 给 13/50 · 16/50 说明 agent 可能 mix 了 vicwest 的 facts |
| image | I_real (real customer photos · GMB + owned website) |
| skill | web-prototype (OD default · NOT taste variants) |
| brief | A2_compact (10 KB sanitized) · meta-fields stripped |
| prompt | 200-line production-grade · anti-meta-copy + font loading + hero-variant-per-page rules |
| 但是 | median composite ~76 · variance ±10 · 没达到 85 target |
| Master 实验目录 | experiments/od-master-2026-05-18T14-15-19-703/ |
| Master summary | https://vip-roofing-brisbane-dev.pages.dev/od-baseline/OVERNIGHT-MASTER.md |
| Master log | /tmp/od-master.log (local) |
| Locked recipe summary | https://vip-roofing-brisbane-dev.pages.dev/od-baseline/BASELINE.md (still pointing at 89 lucky high · need update) |