UNPKG

@react-native/debugger-frontend

Version:
1 lines 236 kB
import*as e from"../../core/common/common.js";import*as t from"../../core/host/host.js";import*as n from"../../core/i18n/i18n.js";import*as r from"../../core/sdk/sdk.js";import*as i from"../../models/emulation/emulation.js";import*as o from"../emulation/emulation.js";import*as a from"../../ui/legacy/legacy.js";import*as s from"../../ui/visual_logging/visual_logging.js";import*as l from"../../core/platform/platform.js";import*as c from"../../models/workspace/workspace.js";import*as h from"../../third_party/lighthouse/report/report.js";import*as d from"../../ui/legacy/components/utils/utils.js";import*as p from"../../ui/legacy/theme_support/theme_support.js";import*as g from"../timeline/timeline.js";import"../../ui/components/buttons/buttons.js";var u,m;u=self,m=function(){var e=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(i,{ReportGenerator:()=>s});var o,a={REPORT_TEMPLATE:'\x3c!--\n@license\nCopyright 2018 Google LLC\nSPDX-License-Identifier: Apache-2.0\n--\x3e\n<!doctype html>\n<html lang="en">\n<head>\n <meta charset="utf-8">\n <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">\n <link rel="icon" href=\'data:image/svg+xml;utf8,<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="m14 7 10-7 10 7v10h5v7h-5l5 24H9l5-24H9v-7h5V7Z" fill="%23F63"/><path d="M31.561 24H14l-1.689 8.105L31.561 24ZM18.983 48H9l1.022-4.907L35.723 32.27l1.663 7.98L18.983 48Z" fill="%23FFA385"/><path fill="%23FF3" d="M20.5 10h7v7h-7z"/></svg>\'>\n <title>Lighthouse Report</title>\n <style>body {margin: 0}</style>\n</head>\n<body>\n <noscript>Lighthouse report requires JavaScript. Please enable.</noscript>\n\n <div id="lh-log"></div>\n\n <script>window.__LIGHTHOUSE_JSON__ = %%LIGHTHOUSE_JSON%%;<\/script>\n <script>%%LIGHTHOUSE_JAVASCRIPT%%\n __initLighthouseReport__();\n //# sourceURL=compiled-reportrenderer.js\n <\/script>\n <script>console.log(\'window.__LIGHTHOUSE_JSON__\', __LIGHTHOUSE_JSON__);<\/script>\n</body>\n</html>\n',REPORT_JAVASCRIPT:'"use strict";(()=>{function e({median:e,p10:t},n){if(e<=0)throw new Error("median must be greater than zero");if(t<=0)throw new Error("p10 must be greater than zero");if(t>=e)throw new Error("p10 must be less than the median");if(n<=0)return 1;let r,i=Math.max(Number.MIN_VALUE,n/e),a=Math.log(i),o=Math.max(Number.MIN_VALUE,t/e),l=(1-function(e){let t=Math.sign(e),n=1/(1+.3275911*(e=Math.abs(e)));return t*(1-n*(.254829592+n*(n*(1.421413741+n*(1.061405429*n-1.453152027))-.284496736))*Math.exp(-e*e))}(.9061938024368232*a/-Math.log(o)))/2;return r=n<=t?Math.max(.9,Math.min(1,l)):n<=e?Math.max(.5,Math.min(.8999999999999999,l)):Math.max(0,Math.min(.49999999999999994,l)),r}var t="…",n={PASS:{label:"pass",minScore:.9},AVERAGE:{label:"average",minScore:.5},FAIL:{label:"fail"},ERROR:{label:"error"}},r=["com","co","gov","edu","ac","org","go","gob","or","net","in","ne","nic","gouv","web","spb","blog","jus","kiev","mil","wi","qc","ca","bel","on"],i=class i{static get RATINGS(){return n}static get PASS_THRESHOLD(){return.9}static get MS_DISPLAY_VALUE(){return"%10d ms"}static getFinalDisplayedUrl(e){if(e.finalDisplayedUrl)return e.finalDisplayedUrl;if(e.finalUrl)return e.finalUrl;throw new Error("Could not determine final displayed URL")}static getMainDocumentUrl(e){return e.mainDocumentUrl||e.finalUrl}static getFullPageScreenshot(e){return e.fullPageScreenshot?e.fullPageScreenshot:e.audits["full-page-screenshot"]?.details}static getEntityFromUrl(e,t){return t&&t.find((t=>t.origins.find((t=>e.startsWith(t)))))||i.getPseudoRootDomain(e)}static splitMarkdownCodeSpans(e){let t=[],n=e.split(/`(.*?)`/g);for(let e=0;e<n.length;e++){let r=n[e];if(!r)continue;let i=e%2!=0;t.push({isCode:i,text:r})}return t}static splitMarkdownLink(e){let t=[],n=e.split(/\\[([^\\]]+?)\\]\\((https?:\\/\\/.*?)\\)/g);for(;n.length;){let[e,r,i]=n.splice(0,3);e&&t.push({isLink:!1,text:e}),r&&i&&t.push({isLink:!0,text:r,linkHref:i})}return t}static truncate(e,t,n="…"){if(e.length<=t)return e;let r=new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(e)[Symbol.iterator](),i=0;for(let a=0;a<=t-n.length;a++){let t=r.next();if(t.done)return e;i=t.value.index}for(let t=0;t<n.length;t++)if(r.next().done)return e;return e.slice(0,i)+n}static getURLDisplayName(e,n){let r,i=void 0!==(n=n||{numPathParts:void 0,preserveQuery:void 0,preserveHost:void 0}).numPathParts?n.numPathParts:2,a=void 0===n.preserveQuery||n.preserveQuery,o=n.preserveHost||!1;if("about:"===e.protocol||"data:"===e.protocol)r=e.href;else{r=e.pathname;let n=r.split("/").filter((e=>e.length));i&&n.length>i&&(r=t+n.slice(-1*i).join("/")),o&&(r=`${e.host}/${r.replace(/^\\//,"")}`),a&&(r=`${r}${e.search}`)}if("data:"!==e.protocol&&(r=r.slice(0,200),r=r.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,`$1${t}`),r=r.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,`$1${t}`),r=r.replace(/(\\d{3})\\d{6,}/g,`$1${t}`),r=r.replace(/\\u2026+/g,t),r.length>64&&r.includes("?")&&(r=r.replace(/\\?([^=]*)(=)?.*/,`?$1$2${t}`),r.length>64&&(r=r.replace(/\\?.*/,`?${t}`)))),r.length>64){let e=r.lastIndexOf(".");r=e>=0?r.slice(0,63-(r.length-e))+`${t}${r.slice(e)}`:r.slice(0,63)+t}return r}static getChromeExtensionOrigin(e){let t=new URL(e);return t.protocol+"//"+t.host}static parseURL(e){let t=new URL(e);return{file:i.getURLDisplayName(t),hostname:t.hostname,origin:"chrome-extension:"===t.protocol?i.getChromeExtensionOrigin(e):t.origin}}static createOrReturnURL(e){return e instanceof URL?e:new URL(e)}static getPseudoTld(e){let t=e.split(".").slice(-2);return r.includes(t[0])?`.${t.join(".")}`:`.${t[t.length-1]}`}static getPseudoRootDomain(e){let t=i.createOrReturnURL(e).hostname,n=i.getPseudoTld(t).split(".");return t.split(".").slice(-n.length).join(".")}static filterRelevantLines(e,t,n){if(0===t.length)return e.slice(0,2*n+1);let r=new Set;return(t=t.sort(((e,t)=>(e.lineNumber||0)-(t.lineNumber||0)))).forEach((({lineNumber:e})=>{let t=e-n,i=e+n;for(;t<1;)t++,i++;r.has(t-3-1)&&(t-=3);for(let e=t;e<=i;e++){let t=e;r.add(t)}})),e.filter((e=>r.has(e.lineNumber)))}static computeLogNormalScore(t,n){let r=e(t,n);return r>.9&&(r+=.05*(r-.9)),Math.floor(100*r)/100}};var a=class{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",this._componentCache=new Map,this.rootEl=t}createElement(e,t){let n=this._document.createElement(e);if(t)for(let e of t.split(/\\s+/))e&&n.classList.add(e);return n}createElementNS(e,t,n){let r=this._document.createElementNS(e,t);if(n)for(let e of n.split(/\\s+/))e&&r.classList.add(e);return r}createSVGElement(e,t){return this._document.createElementNS("http://www.w3.org/2000/svg",e,t)}createFragment(){return this._document.createDocumentFragment()}createTextNode(e){return this._document.createTextNode(e)}createChildOf(e,t,n){let r=this.createElement(t,n);return e.append(r),r}createComponent(e){let t=this._componentCache.get(e);if(t){let e=t.cloneNode(!0);return this.findAll("style",e).forEach((e=>e.remove())),e}return t=function(e,t){switch(t){case"3pFilter":return function(e){let t=e.createFragment(),n=e.createElement("style");n.append("\\n .lh-3p-filter {\\n color: var(--color-gray-600);\\n float: right;\\n padding: 6px var(--stackpack-padding-horizontal);\\n }\\n .lh-3p-filter-label, .lh-3p-filter-input {\\n vertical-align: middle;\\n user-select: none;\\n }\\n .lh-3p-filter-input:disabled + .lh-3p-ui-string {\\n text-decoration: line-through;\\n }\\n "),t.append(n);let r=e.createElement("div","lh-3p-filter"),i=e.createElement("label","lh-3p-filter-label"),a=e.createElement("input","lh-3p-filter-input");a.setAttribute("type","checkbox"),a.setAttribute("checked","");let o=e.createElement("span","lh-3p-ui-string");o.append("Show 3rd party resources");let l=e.createElement("span","lh-3p-filter-count");return i.append(" ",a," ",o," (",l,") "),r.append(" ",i," "),t.append(r),t}(e);case"audit":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-audit"),r=e.createElement("details","lh-expandable-details"),i=e.createElement("summary"),a=e.createElement("div","lh-audit__header lh-expandable-details__summary"),o=e.createElement("span","lh-audit__score-icon"),l=e.createElement("span","lh-audit__title-and-text"),s=e.createElement("span","lh-audit__title"),c=e.createElement("span","lh-audit__display-text");l.append(" ",s," ",c," ");let d=e.createElement("div","lh-chevron-container");a.append(" ",o," ",l," ",d," "),i.append(" ",a," ");let h=e.createElement("div","lh-audit__description"),p=e.createElement("div","lh-audit__stackpacks");return r.append(" ",i," ",h," ",p," "),n.append(" ",r," "),t.append(n),t}(e);case"categoryHeader":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-category-header"),r=e.createElement("div","lh-score__gauge");r.setAttribute("role","heading"),r.setAttribute("aria-level","2");let i=e.createElement("div","lh-category-header__description");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"chevron":return function(e){let t=e.createFragment(),n=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-chevron");n.setAttribute("viewBox","0 0 100 100");let r=e.createElementNS("http://www.w3.org/2000/svg","g","lh-chevron__lines"),i=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-left");i.setAttribute("d","M10 50h40");let a=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-right");return a.setAttribute("d","M90 50H50"),r.append(" ",i," ",a," "),n.append(" ",r," "),t.append(n),t}(e);case"clump":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-audit-group"),r=e.createElement("details","lh-clump"),i=e.createElement("summary"),a=e.createElement("div","lh-audit-group__summary"),o=e.createElement("div","lh-audit-group__header"),l=e.createElement("span","lh-audit-group__title"),s=e.createElement("span","lh-audit-group__itemcount");o.append(" ",l," ",s," "," "," ");let c=e.createElement("div","lh-clump-toggle"),d=e.createElement("span","lh-clump-toggletext--show"),h=e.createElement("span","lh-clump-toggletext--hide");return c.append(" ",d," ",h," "),a.append(" ",o," ",c," "),i.append(" ",a," "),r.append(" ",i," "),n.append(" "," ",r," "),t.append(n),t}(e);case"crc":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-crc-container"),r=e.createElement("style");r.append(\'\\n .lh-crc .lh-tree-marker {\\n width: 12px;\\n height: 26px;\\n display: block;\\n float: left;\\n background-position: top left;\\n }\\n .lh-crc .lh-horiz-down {\\n background: url(\\\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><g fill="%23D8D8D8" fill-rule="evenodd"><path d="M16 12v2H-2v-2z"/><path d="M9 12v14H7V12z"/></g></svg>\\\');\\n }\\n .lh-crc .lh-right {\\n background: url(\\\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M16 12v2H0v-2z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\\\');\\n }\\n .lh-crc .lh-up-right {\\n background: url(\\\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v14H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\\\');\\n }\\n .lh-crc .lh-vert-right {\\n background: url(\\\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v27H7zm2 12h7v2H9z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\\\');\\n }\\n .lh-crc .lh-vert {\\n background: url(\\\'data:image/svg+xml;utf8,<svg width="16" height="26" viewBox="0 0 16 26" xmlns="http://www.w3.org/2000/svg"><path d="M7 0h2v26H7z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>\\\');\\n }\\n .lh-crc .lh-crc-tree {\\n font-size: 14px;\\n width: 100%;\\n overflow-x: auto;\\n }\\n .lh-crc .lh-crc-node {\\n height: 26px;\\n line-height: 26px;\\n white-space: nowrap;\\n }\\n .lh-crc .lh-crc-node__tree-value {\\n margin-left: 10px;\\n }\\n .lh-crc .lh-crc-node__tree-value div {\\n display: inline;\\n }\\n .lh-crc .lh-crc-node__chain-duration {\\n font-weight: 700;\\n }\\n .lh-crc .lh-crc-initial-nav {\\n color: #595959;\\n font-style: italic;\\n }\\n .lh-crc__summary-value {\\n margin-bottom: 10px;\\n }\\n \');let i=e.createElement("div"),a=e.createElement("div","lh-crc__summary-value"),o=e.createElement("span","lh-crc__longest_duration_label"),l=e.createElement("b","lh-crc__longest_duration");a.append(" ",o," ",l," "),i.append(" ",a," ");let s=e.createElement("div","lh-crc"),c=e.createElement("div","lh-crc-initial-nav");return s.append(" ",c," "," "),n.append(" ",r," ",i," ",s," "),t.append(n),t}(e);case"crcChain":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-crc-node"),r=e.createElement("span","lh-crc-node__tree-marker"),i=e.createElement("span","lh-crc-node__tree-value");return n.append(" ",r," ",i," "),t.append(n),t}(e);case"elementScreenshot":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-element-screenshot"),r=e.createElement("div","lh-element-screenshot__content"),i=e.createElement("div","lh-element-screenshot__image"),a=e.createElement("div","lh-element-screenshot__mask"),o=e.createElementNS("http://www.w3.org/2000/svg","svg");o.setAttribute("height","0"),o.setAttribute("width","0");let l=e.createElementNS("http://www.w3.org/2000/svg","defs"),s=e.createElementNS("http://www.w3.org/2000/svg","clipPath");s.setAttribute("clipPathUnits","objectBoundingBox"),l.append(" ",s," "," "),o.append(" ",l," "),a.append(" ",o," ");let c=e.createElement("div","lh-element-screenshot__element-marker");return i.append(" ",a," ",c," "),r.append(" ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"explodeyGauge":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-exp-gauge-component"),r=e.createElement("div","lh-exp-gauge__wrapper");r.setAttribute("target","_blank");let i=e.createElement("div","lh-exp-gauge__svg-wrapper"),a=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-exp-gauge"),o=e.createElementNS("http://www.w3.org/2000/svg","g","lh-exp-gauge__inner"),l=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-exp-gauge__bg"),s=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-exp-gauge__base lh-exp-gauge--faded"),c=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-exp-gauge__arc"),d=e.createElementNS("http://www.w3.org/2000/svg","text","lh-exp-gauge__percentage");o.append(" ",l," ",s," ",c," ",d," ");let h=e.createElementNS("http://www.w3.org/2000/svg","g","lh-exp-gauge__outer"),p=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-cover");h.append(" ",p," ");let g=e.createElementNS("http://www.w3.org/2000/svg","text","lh-exp-gauge__label");return g.setAttribute("text-anchor","middle"),g.setAttribute("x","0"),g.setAttribute("y","60"),a.append(" ",o," ",h," ",g," "),i.append(" ",a," "),r.append(" ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"footer":return function(e){let t=e.createFragment(),n=e.createElement("style");n.append("\\n .lh-footer {\\n padding: var(--footer-padding-vertical) calc(var(--default-padding) * 2);\\n max-width: var(--report-content-max-width);\\n margin: 0 auto;\\n }\\n .lh-footer .lh-generated {\\n text-align: center;\\n }\\n "),t.append(n);let r=e.createElement("footer","lh-footer"),i=e.createElement("ul","lh-meta__items");i.append(" ");let a=e.createElement("div","lh-generated"),o=e.createElement("b");o.append("Lighthouse");let l=e.createElement("span","lh-footer__version"),s=e.createElement("a","lh-footer__version_issue");return s.setAttribute("href","https://github.com/GoogleChrome/Lighthouse/issues"),s.setAttribute("target","_blank"),s.setAttribute("rel","noopener"),s.append("File an issue"),a.append(" "," Generated by ",o," ",l," | ",s," "),r.append(" ",i," ",a," "),t.append(r),t}(e);case"fraction":return function(e){let t=e.createFragment(),n=e.createElement("a","lh-fraction__wrapper"),r=e.createElement("div","lh-fraction__content-wrapper"),i=e.createElement("div","lh-fraction__content"),a=e.createElement("div","lh-fraction__background");i.append(" ",a," "),r.append(" ",i," ");let o=e.createElement("div","lh-fraction__label");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"gauge":return function(e){let t=e.createFragment(),n=e.createElement("a","lh-gauge__wrapper"),r=e.createElement("div","lh-gauge__svg-wrapper"),i=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge");i.setAttribute("viewBox","0 0 120 120");let a=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-base");a.setAttribute("r","56"),a.setAttribute("cx","60"),a.setAttribute("cy","60"),a.setAttribute("stroke-width","8");let o=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-arc");o.setAttribute("r","56"),o.setAttribute("cx","60"),o.setAttribute("cy","60"),o.setAttribute("stroke-width","8"),i.append(" ",a," ",o," "),r.append(" ",i," ");let l=e.createElement("div","lh-gauge__percentage"),s=e.createElement("div","lh-gauge__label");return n.append(" "," ",r," ",l," "," ",s," "),t.append(n),t}(e);case"heading":return function(e){let t=e.createFragment(),n=e.createElement("style");n.append("\\n /* CSS Fireworks. Originally by Eddie Lin\\n https://codepen.io/paulirish/pen/yEVMbP\\n */\\n .lh-pyro {\\n display: none;\\n z-index: 1;\\n pointer-events: none;\\n }\\n .lh-score100 .lh-pyro {\\n display: block;\\n }\\n .lh-score100 .lh-lighthouse stop:first-child {\\n stop-color: hsla(200, 12%, 95%, 0);\\n }\\n .lh-score100 .lh-lighthouse stop:last-child {\\n stop-color: hsla(65, 81%, 76%, 1);\\n }\\n\\n .lh-pyro > .lh-pyro-before, .lh-pyro > .lh-pyro-after {\\n position: absolute;\\n width: 5px;\\n height: 5px;\\n border-radius: 2.5px;\\n box-shadow: 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff, 0 0 #fff;\\n animation: 1s bang ease-out infinite backwards, 1s gravity ease-in infinite backwards, 5s position linear infinite backwards;\\n animation-delay: 1s, 1s, 1s;\\n }\\n\\n .lh-pyro > .lh-pyro-after {\\n animation-delay: 2.25s, 2.25s, 2.25s;\\n animation-duration: 1.25s, 1.25s, 6.25s;\\n }\\n\\n @keyframes bang {\\n to {\\n opacity: 1;\\n box-shadow: -70px -115.67px #47ebbc, -28px -99.67px #eb47a4, 58px -31.67px #7eeb47, 13px -141.67px #eb47c5, -19px 6.33px #7347eb, -2px -74.67px #ebd247, 24px -151.67px #eb47e0, 57px -138.67px #b4eb47, -51px -104.67px #479eeb, 62px 8.33px #ebcf47, -93px 0.33px #d547eb, -16px -118.67px #47bfeb, 53px -84.67px #47eb83, 66px -57.67px #eb47bf, -93px -65.67px #91eb47, 30px -13.67px #86eb47, -2px -59.67px #83eb47, -44px 1.33px #eb47eb, 61px -58.67px #47eb73, 5px -22.67px #47e8eb, -66px -28.67px #ebe247, 42px -123.67px #eb5547, -75px 26.33px #7beb47, 15px -52.67px #a147eb, 36px -51.67px #eb8347, -38px -12.67px #eb5547, -46px -59.67px #47eb81, 78px -114.67px #eb47ba, 15px -156.67px #eb47bf, -36px 1.33px #eb4783, -72px -86.67px #eba147, 31px -46.67px #ebe247, -68px 29.33px #47e2eb, -55px 19.33px #ebe047, -56px 27.33px #4776eb, -13px -91.67px #eb5547, -47px -138.67px #47ebc7, -18px -96.67px #eb47ac, 11px -88.67px #4783eb, -67px -28.67px #47baeb, 53px 10.33px #ba47eb, 11px 19.33px #5247eb, -5px -11.67px #eb4791, -68px -4.67px #47eba7, 95px -37.67px #eb478b, -67px -162.67px #eb5d47, -54px -120.67px #eb6847, 49px -12.67px #ebe047, 88px 8.33px #47ebda, 97px 33.33px #eb8147, 6px -71.67px #ebbc47;\\n }\\n }\\n @keyframes gravity {\\n from {\\n opacity: 1;\\n }\\n to {\\n transform: translateY(80px);\\n opacity: 0;\\n }\\n }\\n @keyframes position {\\n 0%, 19.9% {\\n margin-top: 4%;\\n margin-left: 47%;\\n }\\n 20%, 39.9% {\\n margin-top: 7%;\\n margin-left: 30%;\\n }\\n 40%, 59.9% {\\n margin-top: 6%;\\n margin-left: 70%;\\n }\\n 60%, 79.9% {\\n margin-top: 3%;\\n margin-left: 20%;\\n }\\n 80%, 99.9% {\\n margin-top: 3%;\\n margin-left: 80%;\\n }\\n }\\n "),t.append(n);let r=e.createElement("div","lh-header-container"),i=e.createElement("div","lh-scores-wrapper-placeholder");return r.append(" ",i," "),t.append(r),t}(e);case"metric":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-metric"),r=e.createElement("div","lh-metric__innerwrap"),i=e.createElement("div","lh-metric__icon"),a=e.createElement("span","lh-metric__title"),o=e.createElement("div","lh-metric__value"),l=e.createElement("div","lh-metric__description");return r.append(" ",i," ",a," ",o," ",l," "),n.append(" ",r," "),t.append(n),t}(e);case"scorescale":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-scorescale"),r=e.createElement("span","lh-scorescale-range lh-scorescale-range--fail");r.append("0–49");let i=e.createElement("span","lh-scorescale-range lh-scorescale-range--average");i.append("50–89");let a=e.createElement("span","lh-scorescale-range lh-scorescale-range--pass");return a.append("90–100"),n.append(" ",r," ",i," ",a," "),t.append(n),t}(e);case"scoresWrapper":return function(e){let t=e.createFragment(),n=e.createElement("style");n.append("\\n .lh-scores-container {\\n display: flex;\\n flex-direction: column;\\n padding: var(--default-padding) 0;\\n position: relative;\\n width: 100%;\\n }\\n\\n .lh-sticky-header {\\n --gauge-circle-size: var(--gauge-circle-size-sm);\\n --plugin-badge-size: 16px;\\n --plugin-icon-size: 75%;\\n --gauge-wrapper-width: 60px;\\n --gauge-percentage-font-size: 13px;\\n position: fixed;\\n left: 0;\\n right: 0;\\n top: var(--topbar-height);\\n font-weight: 500;\\n display: none;\\n justify-content: center;\\n background-color: var(--sticky-header-background-color);\\n border-bottom: 1px solid var(--color-gray-200);\\n padding-top: var(--score-container-padding);\\n padding-bottom: 4px;\\n z-index: 2;\\n pointer-events: none;\\n }\\n\\n .lh-devtools .lh-sticky-header {\\n /* The report within DevTools is placed in a container with overflow, which changes the placement of this header unless we change `position` to `sticky.` */\\n position: sticky;\\n }\\n\\n .lh-sticky-header--visible {\\n display: grid;\\n grid-auto-flow: column;\\n pointer-events: auto;\\n }\\n\\n /* Disable the gauge arc animation for the sticky header, so toggling display: none\\n does not play the animation. */\\n .lh-sticky-header .lh-gauge-arc {\\n animation: none;\\n }\\n\\n .lh-sticky-header .lh-gauge__label,\\n .lh-sticky-header .lh-fraction__label {\\n display: none;\\n }\\n\\n .lh-highlighter {\\n width: var(--gauge-wrapper-width);\\n height: 1px;\\n background-color: var(--highlighter-background-color);\\n /* Position at bottom of first gauge in sticky header. */\\n position: absolute;\\n grid-column: 1;\\n bottom: -1px;\\n left: 0px;\\n right: 0px;\\n }\\n "),t.append(n);let r=e.createElement("div","lh-scores-wrapper"),i=e.createElement("div","lh-scores-container"),a=e.createElement("div","lh-pyro"),o=e.createElement("div","lh-pyro-before"),l=e.createElement("div","lh-pyro-after");return a.append(" ",o," ",l," "),i.append(" ",a," "),r.append(" ",i," "),t.append(r),t}(e);case"snippet":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-snippet"),r=e.createElement("style");return r.append(\'\\n :root {\\n --snippet-highlight-light: #fbf1f2;\\n --snippet-highlight-dark: #ffd6d8;\\n }\\n\\n .lh-snippet__header {\\n position: relative;\\n overflow: hidden;\\n padding: 10px;\\n border-bottom: none;\\n color: var(--snippet-color);\\n background-color: var(--snippet-background-color);\\n border: 1px solid var(--report-border-color-secondary);\\n }\\n .lh-snippet__title {\\n font-weight: bold;\\n float: left;\\n }\\n .lh-snippet__node {\\n float: left;\\n margin-left: 4px;\\n }\\n .lh-snippet__toggle-expand {\\n padding: 1px 7px;\\n margin-top: -1px;\\n margin-right: -7px;\\n float: right;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n font-size: 14px;\\n color: #0c50c7;\\n }\\n\\n .lh-snippet__snippet {\\n overflow: auto;\\n border: 1px solid var(--report-border-color-secondary);\\n }\\n /* Container needed so that all children grow to the width of the scroll container */\\n .lh-snippet__snippet-inner {\\n display: inline-block;\\n min-width: 100%;\\n }\\n\\n .lh-snippet:not(.lh-snippet--expanded) .lh-snippet__show-if-expanded {\\n display: none;\\n }\\n .lh-snippet.lh-snippet--expanded .lh-snippet__show-if-collapsed {\\n display: none;\\n }\\n\\n .lh-snippet__line {\\n background: white;\\n white-space: pre;\\n display: flex;\\n }\\n .lh-snippet__line:not(.lh-snippet__line--message):first-child {\\n padding-top: 4px;\\n }\\n .lh-snippet__line:not(.lh-snippet__line--message):last-child {\\n padding-bottom: 4px;\\n }\\n .lh-snippet__line--content-highlighted {\\n background: var(--snippet-highlight-dark);\\n }\\n .lh-snippet__line--message {\\n background: var(--snippet-highlight-light);\\n }\\n .lh-snippet__line--message .lh-snippet__line-number {\\n padding-top: 10px;\\n padding-bottom: 10px;\\n }\\n .lh-snippet__line--message code {\\n padding: 10px;\\n padding-left: 5px;\\n color: var(--color-fail);\\n font-family: var(--report-font-family);\\n }\\n .lh-snippet__line--message code {\\n white-space: normal;\\n }\\n .lh-snippet__line-icon {\\n padding-top: 10px;\\n display: none;\\n }\\n .lh-snippet__line--message .lh-snippet__line-icon {\\n display: block;\\n }\\n .lh-snippet__line-icon:before {\\n content: "";\\n display: inline-block;\\n vertical-align: middle;\\n margin-right: 4px;\\n width: var(--score-icon-size);\\n height: var(--score-icon-size);\\n background-image: var(--fail-icon-url);\\n }\\n .lh-snippet__line-number {\\n flex-shrink: 0;\\n width: 40px;\\n text-align: right;\\n font-family: monospace;\\n padding-right: 5px;\\n margin-right: 5px;\\n color: var(--color-gray-600);\\n user-select: none;\\n }\\n \'),n.append(" ",r," "),t.append(n),t}(e);case"snippetContent":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-snippet__snippet"),r=e.createElement("div","lh-snippet__snippet-inner");return n.append(" ",r," "),t.append(n),t}(e);case"snippetHeader":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-snippet__header"),r=e.createElement("div","lh-snippet__title"),i=e.createElement("div","lh-snippet__node"),a=e.createElement("button","lh-snippet__toggle-expand"),o=e.createElement("span","lh-snippet__btn-label-collapse lh-snippet__show-if-expanded"),l=e.createElement("span","lh-snippet__btn-label-expand lh-snippet__show-if-collapsed");return a.append(" ",o," ",l," "),n.append(" ",r," ",i," ",a," "),t.append(n),t}(e);case"snippetLine":return function(e){let t=e.createFragment(),n=e.createElement("div","lh-snippet__line"),r=e.createElement("div","lh-snippet__line-number"),i=e.createElement("div","lh-snippet__line-icon"),a=e.createElement("code");return n.append(" ",r," ",i," ",a," "),t.append(n),t}(e);case"styles":return function(e){let t=e.createFragment(),n=e.createElement("style");return n.append(\'/**\\n * @license\\n * Copyright 2017 Google LLC\\n * SPDX-License-Identifier: Apache-2.0\\n */\\n\\n/*\\n Naming convention:\\n\\n If a variable is used for a specific component: --{component}-{property name}-{modifier}\\n\\n Both {component} and {property name} should be kebab-case. If the target is the entire page,\\n use \\\'report\\\' for the component. The property name should not be abbreviated. Use the\\n property name the variable is intended for - if it\\\'s used for multiple, a common descriptor\\n is fine (ex: \\\'size\\\' for a variable applied to \\\'width\\\' and \\\'height\\\'). If a variable is shared\\n across multiple components, either create more variables or just drop the "{component}-"\\n part of the name. Append any modifiers at the end (ex: \\\'big\\\', \\\'dark\\\').\\n\\n For colors: --color-{hue}-{intensity}\\n\\n {intensity} is the Material Design tag - 700, A700, etc.\\n*/\\n.lh-vars {\\n /* Palette using Material Design Colors\\n * https://www.materialui.co/colors */\\n --color-amber-50: #FFF8E1;\\n --color-blue-200: #90CAF9;\\n --color-blue-900: #0D47A1;\\n --color-blue-A700: #2962FF;\\n --color-blue-primary: #06f;\\n --color-cyan-500: #00BCD4;\\n --color-gray-100: #F5F5F5;\\n --color-gray-300: #CFCFCF;\\n --color-gray-200: #E0E0E0;\\n --color-gray-400: #BDBDBD;\\n --color-gray-50: #FAFAFA;\\n --color-gray-500: #9E9E9E;\\n --color-gray-600: #757575;\\n --color-gray-700: #616161;\\n --color-gray-800: #424242;\\n --color-gray-900: #212121;\\n --color-gray: #000000;\\n --color-green-700: #080;\\n --color-green: #0c6;\\n --color-lime-400: #D3E156;\\n --color-orange-50: #FFF3E0;\\n --color-orange-700: #C33300;\\n --color-orange: #fa3;\\n --color-red-700: #c00;\\n --color-red: #f33;\\n --color-teal-600: #00897B;\\n --color-white: #FFFFFF;\\n\\n /* Context-specific colors */\\n --color-average-secondary: var(--color-orange-700);\\n --color-average: var(--color-orange);\\n --color-fail-secondary: var(--color-red-700);\\n --color-fail: var(--color-red);\\n --color-hover: var(--color-gray-50);\\n --color-informative: var(--color-blue-900);\\n --color-pass-secondary: var(--color-green-700);\\n --color-pass: var(--color-green);\\n --color-not-applicable: var(--color-gray-600);\\n\\n /* Component variables */\\n --audit-description-padding-left: calc(var(--score-icon-size) + var(--score-icon-margin-left) + var(--score-icon-margin-right));\\n --audit-explanation-line-height: 16px;\\n --audit-group-margin-bottom: calc(var(--default-padding) * 6);\\n --audit-group-padding-vertical: 8px;\\n --audit-margin-horizontal: 5px;\\n --audit-padding-vertical: 8px;\\n --category-padding: calc(var(--default-padding) * 6) var(--edge-gap-padding) calc(var(--default-padding) * 4);\\n --chevron-line-stroke: var(--color-gray-600);\\n --chevron-size: 12px;\\n --default-padding: 8px;\\n --edge-gap-padding: calc(var(--default-padding) * 4);\\n --env-item-background-color: var(--color-gray-100);\\n --env-item-font-size: 28px;\\n --env-item-line-height: 36px;\\n --env-item-padding: 10px 0px;\\n --env-name-min-width: 220px;\\n --footer-padding-vertical: 16px;\\n --gauge-circle-size-big: 96px;\\n --gauge-circle-size: 48px;\\n --gauge-circle-size-sm: 32px;\\n --gauge-label-font-size-big: 18px;\\n --gauge-label-font-size: var(--report-font-size-secondary);\\n --gauge-label-line-height-big: 24px;\\n --gauge-label-line-height: var(--report-line-height-secondary);\\n --gauge-percentage-font-size-big: 38px;\\n --gauge-percentage-font-size: var(--report-font-size-secondary);\\n --gauge-wrapper-width: 120px;\\n --header-line-height: 24px;\\n --highlighter-background-color: var(--report-text-color);\\n --icon-square-size: calc(var(--score-icon-size) * 0.88);\\n --image-preview-size: 48px;\\n --link-color: var(--color-blue-primary);\\n --locale-selector-background-color: var(--color-white);\\n --metric-toggle-lines-fill: #7F7F7F;\\n --metric-value-font-size: calc(var(--report-font-size) * 1.8);\\n --metrics-toggle-background-color: var(--color-gray-200);\\n --plugin-badge-background-color: var(--color-white);\\n --plugin-badge-size-big: calc(var(--gauge-circle-size-big) / 2.7);\\n --plugin-badge-size: calc(var(--gauge-circle-size) / 2.7);\\n --plugin-icon-size: 65%;\\n --report-background-color: #fff;\\n --report-border-color-secondary: #ebebeb;\\n --report-font-family-monospace: \\\'Roboto Mono\\\', \\\'Menlo\\\', \\\'dejavu sans mono\\\', \\\'Consolas\\\', \\\'Lucida Console\\\', monospace;\\n --report-font-family: Roboto, Helvetica, Arial, sans-serif;\\n --report-font-size: 14px;\\n --report-font-size-secondary: 12px;\\n --report-icon-size: var(--score-icon-background-size);\\n --report-line-height: 24px;\\n --report-line-height-secondary: 20px;\\n --report-monospace-font-size: calc(var(--report-font-size) * 0.85);\\n --report-text-color-secondary: var(--color-gray-800);\\n --report-text-color: var(--color-gray-900);\\n --report-content-max-width: calc(60 * var(--report-font-size)); /* defaults to 840px */\\n --report-content-min-width: 360px;\\n --report-content-max-width-minus-edge-gap: calc(var(--report-content-max-width) - var(--edge-gap-padding) * 2);\\n --score-container-padding: 8px;\\n --score-icon-background-size: 24px;\\n --score-icon-margin-left: 6px;\\n --score-icon-margin-right: 14px;\\n --score-icon-margin: 0 var(--score-icon-margin-right) 0 var(--score-icon-margin-left);\\n --score-icon-size: 12px;\\n --score-icon-size-big: 16px;\\n --screenshot-overlay-background: rgba(0, 0, 0, 0.3);\\n --section-padding-vertical: calc(var(--default-padding) * 6);\\n --snippet-background-color: var(--color-gray-50);\\n --snippet-color: #0938C2;\\n --stackpack-padding-horizontal: 10px;\\n --sticky-header-background-color: var(--report-background-color);\\n --sticky-header-buffer: var(--topbar-height);\\n --sticky-header-height: calc(var(--gauge-circle-size-sm) + var(--score-container-padding) * 2 + 1em);\\n --table-group-header-background-color: #EEF1F4;\\n --table-group-header-text-color: var(--color-gray-700);\\n --table-higlight-background-color: #F5F7FA;\\n --tools-icon-color: var(--color-gray-600);\\n --topbar-background-color: var(--color-white);\\n --topbar-height: 32px;\\n --topbar-logo-size: 24px;\\n --topbar-padding: 0 8px;\\n --toplevel-warning-background-color: hsla(30, 100%, 75%, 10%);\\n --toplevel-warning-message-text-color: var(--color-average-secondary);\\n --toplevel-warning-padding: 18px;\\n --toplevel-warning-text-color: var(--report-text-color);\\n\\n /* SVGs */\\n --plugin-icon-url-dark: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="%23FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"/></svg>\\\');\\n --plugin-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="%23757575"><path d="M0 0h24v24H0z" fill="none"/><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"/></svg>\\\');\\n\\n --pass-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><title>check</title><path fill="%23178239" d="M24 4C12.95 4 4 12.95 4 24c0 11.04 8.95 20 20 20 11.04 0 20-8.96 20-20 0-11.05-8.96-20-20-20zm-4 30L10 24l2.83-2.83L20 28.34l15.17-15.17L38 16 20 34z"/></svg>\\\');\\n --average-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><title>info</title><path fill="%23E67700" d="M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm2 30h-4V22h4v12zm0-16h-4v-4h4v4z"/></svg>\\\');\\n --fail-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><title>warn</title><path fill="%23C7221F" d="M2 42h44L24 4 2 42zm24-6h-4v-4h4v4zm0-8h-4v-8h4v8z"/></svg>\\\');\\n --error-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3 15"><title>error</title><path d="M0 15H 3V 12H 0V" fill="%23FF4E42"/><path d="M0 9H 3V 0H 0V" fill="%23FF4E42"/></svg>\\\');\\n\\n --swap-locale-icon-url: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>\\\');\\n}\\n\\n@media not print {\\n .lh-dark {\\n /* Pallete */\\n --color-gray-200: var(--color-gray-800);\\n --color-gray-300: #616161;\\n --color-gray-400: var(--color-gray-600);\\n --color-gray-700: var(--color-gray-400);\\n --color-gray-50: #757575;\\n --color-gray-600: var(--color-gray-500);\\n --color-green-700: var(--color-green);\\n --color-orange-700: var(--color-orange);\\n --color-red-700: var(--color-red);\\n --color-teal-600: var(--color-cyan-500);\\n\\n /* Context-specific colors */\\n --color-hover: rgba(0, 0, 0, 0.2);\\n --color-informative: var(--color-blue-200);\\n\\n /* Component variables */\\n --env-item-background-color: #393535;\\n --link-color: var(--color-blue-200);\\n --locale-selector-background-color: var(--color-gray-200);\\n --plugin-badge-background-color: var(--color-gray-800);\\n --report-background-color: var(--color-gray-900);\\n --report-border-color-secondary: var(--color-gray-200);\\n --report-text-color-secondary: var(--color-gray-400);\\n --report-text-color: var(--color-gray-100);\\n --snippet-color: var(--color-cyan-500);\\n --topbar-background-color: var(--color-gray);\\n --toplevel-warning-background-color: hsl(33deg 14% 18%);\\n --toplevel-warning-message-text-color: var(--color-orange-700);\\n --toplevel-warning-text-color: var(--color-gray-100);\\n --table-group-header-background-color: rgba(186, 196, 206, 0.15);\\n --table-group-header-text-color: var(--color-gray-100);\\n --table-higlight-background-color: rgba(186, 196, 206, 0.09);\\n\\n /* SVGs */\\n --plugin-icon-url: var(--plugin-icon-url-dark);\\n }\\n}\\n\\n@media only screen and (max-width: 480px) {\\n .lh-vars {\\n --audit-group-margin-bottom: 20px;\\n --edge-gap-padding: var(--default-padding);\\n --env-name-min-width: 120px;\\n --gauge-circle-size-big: 96px;\\n --gauge-circle-size: 72px;\\n --gauge-label-font-size-big: 22px;\\n --gauge-label-font-size: 14px;\\n --gauge-label-line-height-big: 26px;\\n --gauge-label-line-height: 20px;\\n --gauge-percentage-font-size-big: 34px;\\n --gauge-percentage-font-size: 26px;\\n --gauge-wrapper-width: 112px;\\n --header-padding: 16px 0 16px 0;\\n --image-preview-size: 24px;\\n --plugin-icon-size: 75%;\\n --report-font-size: 14px;\\n --report-line-height: 20px;\\n --score-icon-margin-left: 2px;\\n --score-icon-size: 10px;\\n --topbar-height: 28px;\\n --topbar-logo-size: 20px;\\n }\\n}\\n\\n.lh-vars.lh-devtools {\\n --audit-explanation-line-height: 14px;\\n --audit-group-margin-bottom: 20px;\\n --audit-group-padding-vertical: 12px;\\n --audit-padding-vertical: 4px;\\n --category-padding: 12px;\\n --default-padding: 12px;\\n --env-name-min-width: 120px;\\n --footer-padding-vertical: 8px;\\n --gauge-circle-size-big: 72px;\\n --gauge-circle-size: 64px;\\n --gauge-label-font-size-big: 22px;\\n --gauge-label-font-size: 14px;\\n --gauge-label-line-height-big: 26px;\\n --gauge-label-line-height: 20px;\\n --gauge-percentage-font-size-big: 34px;\\n --gauge-percentage-font-size: 26px;\\n --gauge-wrapper-width: 97px;\\n --header-line-height: 20px;\\n --header-padding: 16px 0 16px 0;\\n --screenshot-overlay-background: transparent;\\n --plugin-icon-size: 75%;\\n --report-font-family-monospace: \\\'Menlo\\\', \\\'dejavu sans mono\\\', \\\'Consolas\\\', \\\'Lucida Console\\\', monospace;\\n --report-font-family: \\\'.SFNSDisplay-Regular\\\', \\\'Helvetica Neue\\\', \\\'Lucida Grande\\\', sans-serif;\\n --report-font-size: 12px;\\n --report-line-height: 20px;\\n --score-icon-margin-left: 2px;\\n --score-icon-size: 10px;\\n --section-padding-vertical: 8px;\\n}\\n\\n.lh-container:has(.lh-sticky-header) {\\n --sticky-header-buffer: calc(var(--topbar-height) + var(--sticky-header-height));\\n}\\n\\n.lh-container:not(.lh-topbar + .lh-container) {\\n --topbar-height: 0;\\n --sticky-header-height: 0;\\n --sticky-header-buffer: 0;\\n}\\n\\n.lh-max-viewport {\\n display: flex;\\n flex-direction: column;\\n min-height: 100vh;\\n width: 100%;\\n}\\n\\n.lh-devtools.lh-root {\\n height: 100%;\\n}\\n.lh-devtools.lh-root img {\\n /* Override devtools default \\\'min-width: 0\\\' so svg without size in a flexbox isn\\\'t collapsed. */\\n min-width: auto;\\n}\\n.lh-devtools .lh-container {\\n overflow-y: scroll;\\n height: calc(100% - var(--topbar-height));\\n /** The .lh-container is the scroll parent in DevTools so we exclude the topbar from the sticky header buffer. */\\n --sticky-header-buffer: 0;\\n}\\n.lh-devtools .lh-container:has(.lh-sticky-header) {\\n /** The .lh-container is the scroll parent in DevTools so we exclude the topbar from the sticky header buffer. */\\n --sticky-header-buffer: var(--sticky-header-height);\\n}\\n@media print {\\n .lh-devtools .lh-container {\\n overflow: unset;\\n }\\n}\\n.lh-devtools .lh-sticky-header {\\n /* This is normally the height of the topbar, but we want it to stick to the top of our scroll container .lh-container` */\\n top: 0;\\n}\\n.lh-devtools .lh-element-screenshot__overlay {\\n position: absolute;\\n}\\n\\n@keyframes fadeIn {\\n 0% { opacity: 0;}\\n 100% { opacity: 0.6;}\\n}\\n\\n.lh-root *, .lh-root *::before, .lh-root *::after {\\n box-sizing: border-box;\\n}\\n\\n.lh-root {\\n font-family: var(--report-font-family);\\n font-size: var(--report-font-size);\\n margin: 0;\\n line-height: var(--report-line-height);\\n background: var(--report-background-color);\\n color: var(--report-text-color);\\n}\\n\\n.lh-root :focus-visible {\\n outline: -webkit-focus-ring-color auto 3px;\\n}\\n.lh-root summary:focus {\\n outline: none;\\n box-shadow: 0 0 0 1px hsl(217, 89%, 61%);\\n}\\n\\n.lh-root [hidden] {\\n display: none !important;\\n}\\n\\n.lh-root pre {\\n margin: 0;\\n}\\n\\n.lh-root pre,\\n.lh-root code {\\n font-family: var(--report-font-family-monospace);\\n}\\n\\n.lh-root details > summary {\\n cursor: pointer;\\n}\\n\\n.lh-hidden {\\n display: none !important;\\n}\\n\\n.lh-container {\\n /*\\n Text wrapping in the report is so much FUN!\\n We have a `word-break: break-word;` globally here to prevent a few common scenarios, namely\\n long non-breakable text (usually URLs) found in:\\n 1. The footer\\n 2. .lh-node (outerHTML)\\n 3. .lh-code\\n\\n With that sorted, the next challenge is appropriate column sizing and text wrapping inside our\\n .lh-details tables. Even more fun.\\n * We don\\\'t want table headers ("Potential Savings (ms)") to wrap or their column values, but\\n we\\\'d be happy for the URL column to wrap if the URLs are particularly long.\\n * We want the narrow columns to remain narrow, providing the most column width for URL\\n * We don\\\'t want the table to extend past 100% width.\\n * Long URLs in the URL column can wrap. Util.getURLDisplayName maxes them out at 64 characters,\\n but they do not get any overflow:ellipsis treatment.\\n */\\n word-break: break-word;\\n}\\n\\n.lh-audit-group a,\\n.lh-category-header__description a,\\n.lh-audit__description a,\\n.lh-warnings a,\\n.lh-footer a,\\n.lh-table-column--link a {\\n color: var(--link-color);\\n}\\n\\n.lh-audit__description, .lh-audit__stackpack {\\n --inner-audit-padding-right: var(--stackpack-padding-horizontal);\\n padding-left: var(--audit-description-padding-left);\\n padding-right: var(--inner-audit-padding-right);\\n padding-top: 8px;\\n padding-bottom: 8px;\\n}\\n\\n.lh-details {\\n margin-top: var(--default-padding);\\n margin-bottom: var(--default-padding);\\n margin-left: var(--audit-description-padding-left);\\n /* whatever the .lh-details side margins are */\\n width: 100%;\\n}\\n\\n.lh-audit__stackpack {\\n display: flex;\\n align-items: center;\\n}\\n\\n.lh-audit__stackpack__img {\\n max-width: 30px;\\n margin-right: var(--default-padding)\\n}\\n\\n/* Report header */\\n\\n.lh-report-icon {\\n display: flex;\\n align-items: center;\\n padding: 10px 12px;\\n cursor: pointer;\\n}\\n.lh-report-icon[disabled] {\\n opacity: 0.3;\\n pointer-events: none;\\n}\\n\\n.lh-report-icon::before {\\n content: "";\\n margin: 4px;\\n background-repeat: no-repeat;\\n width: var(--report-icon-size);\\n height: var(--report-icon-size);\\n opacity: 0.7;\\n display: inline-block;\\n vertical-align: middle;\\n}\\n.lh-report-icon:hover::before {\\n opacity: 1;\\n}\\n.lh-dark .lh-report-icon::before {\\n filter: invert(1);\\n}\\n.lh-report-icon--print::before {\\n background-image: url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/><path fill="none" d="M0 0h24v24H0z"/></svg>\\\');\\n}\\n.lh-report-icon--copy::before {\\n background-image: url(\\\'data:image/svg+xml;utf8,<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>\\\');\\n}\\n.lh-report-icon--open::before {\\n background-image: url(\\\'data:image/svg+xml;utf8,<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6c0-1.1-.89-2-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z"/></svg>\\\');\\n}\\n.lh-report-icon--download::before {\\n background-image: url(\\\'data:image/svg+xml;utf8,<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>\\\');\\n}\\n.lh-report-icon--dark::before {\\n background-image:url(\\\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 100 125"><path d="M50 23.587c-16.27 0-22.799 12.574-22.799 21.417 0 12.917 10.117 22.451 12.436 32.471h20.726c2.32-10.02 12.436-19.554 12.436-32.471 0-8.843-6.528-21.417-22.799-21.417zM39.637 87.161c0 3.001 1.18 4.181 4.181 4.181h.426l.41 1.231C45.278 94.449 46.042 95 48.019 95h3.963c1.978 0 2.74-.551 3.365-2.427l.409-1.231h.427c3.002 0 4.18-1.18 4.18-4.181V80.91H39.637v6.251zM50 18.265c1.26 0 2.072-.814 2.072-2.073v-9.12C52.072 5.813 51.26 5 50 5c-1.259 0-2.072.813-2.072 2.073v9.12c0 1.259.813 2.072 2.072 2.072zM68.313 23.727c.994.774 2.135.634 2.91-.357l5.614-7.187c.776-.992.636-2.135-.356-2.909-.992-.776-2.135-.636-2.91.357l-5.613 7.186c-.778.993-.636 2.135.355 2.91zM91.157 36.373c-.306-1.222-1.291-1.815-2.513-1.51l-8.85 2.207c-1.222.305-1.814 1.29-1.51 2.512.305 1.223 1.291 1.814 2.513 1.51l8.849-2.206c1.223-.305 1.816-1.291 1.511-2.513zM86.757 60.48l-8.331-3.709c-1.15-.512-2.225-.099-2.736 1.052-.512 1.151-.1 2.224 1.051 2.737l8.33 3.707c1.15.514 2.225.101 2.736-1.05.513-1.149.1-2.223-1.05-2.737zM28.779 23.37c.775.992 1.917 1.131 2.909.357.992-.776 1.132-1.917.357-2.91l-5.615-7.186c-.775-.992-1.917-1.132-2.909-.357s-1.131 1.917-.356 2.909l5.614 7.187zM21.715 39.583c.305-1.223-.288-2.208-1.51-2.513l-8.849-2.207c-1.222-.303-2.208.289-2.513 1.511-.303 1.222.288 2.207 1.511 2.512l8.848 2.206c1.222.304 2.208-.287 2.513-1.509zM21.575 56.771l-8.331 3.711c-1.151.511-1.563 1.586-1.05 2.735.511 1.151 1.586 1.563 2.736 1.052l8.331-3.711c1.151-.511 1.563-1.586