lighthouse 9.5.0-dev.20220907-2 → 9.5.0-dev.20220908
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +5902 -0
- package/cli/test/smokehouse/core-tests.js +2 -3
- package/dist/report/flow.js +11 -11
- package/package.json +2 -2
- package/lol.report.json +0 -5856
- package/shared/localization/locales/en-US.ctc.json +0 -8059
- package/shared/localization/locales/en-XL.ctc.json +0 -8036
package/dist/report/flow.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(){"use strict";var e,t,n,r,o,i,a,l={},s=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function d(e,t){for(var n in t)e[n]=t[n];return e}function h(e){var t=e.parentNode;t&&t.removeChild(e)}function p(t,n,r){var o,i,a,l={};for(a in n)"key"==a?o=n[a]:"ref"==a?i=n[a]:l[a]=n[a];if(arguments.length>2&&(l.children=arguments.length>3?e.call(arguments,2):r),"function"==typeof t&&null!=t.defaultProps)for(a in t.defaultProps)void 0===l[a]&&(l[a]=t.defaultProps[a]);return u(t,l,o,i,null)}function u(e,r,o,i,a){var l={type:e,props:r,key:o,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==a?++n:a};return null==a&&null!=t.vnode&&t.vnode(l),l}function g(e){return e.children}function m(e,t){this.props=e,this.context=t}function f(e,t){if(null==t)return e.__?f(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?f(e):null}function _(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return _(e)}}function v(e){(!e.__d&&(e.__d=!0)&&r.push(e)&&!b.__r++||i!==t.debounceRendering)&&((i=t.debounceRendering)||o)(b)}function b(){for(var e;b.__r=r.length;)e=r.sort((function(e,t){return e.__v.__b-t.__v.__b})),r=[],e.some((function(e){var t,n,r,o,i,a;e.__d&&(i=(o=(t=e).__v).__e,(a=t.__P)&&(n=[],(r=d({},o)).__v=o.__v+1,E(a,o,r,t.__n,void 0!==a.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?f(o):i,o.__h),z(n,o),o.__e!=i&&_(o)))}))}function w(e,t,n,r,o,i,a,c,d,h){var p,m,_,v,b,w,k,A=r&&r.__k||s,C=A.length;for(n.__k=[],p=0;p<t.length;p++)if(null!=(v=n.__k[p]=null==(v=t[p])||"boolean"==typeof v?null:"string"==typeof v||"number"==typeof v||"bigint"==typeof v?u(null,v,null,null,v):Array.isArray(v)?u(g,{children:v},null,null,null):v.__b>0?u(v.type,v.props,v.key,null,v.__v):v)){if(v.__=n,v.__b=n.__b+1,null===(_=A[p])||_&&v.key==_.key&&v.type===_.type)A[p]=void 0;else for(m=0;m<C;m++){if((_=A[m])&&v.key==_.key&&v.type===_.type){A[m]=void 0;break}_=null}E(e,v,_=_||l,o,i,a,c,d,h),b=v.__e,(m=v.ref)&&_.ref!=m&&(k||(k=[]),_.ref&&k.push(_.ref,null,v),k.push(m,v.__c||b,v)),null!=b?(null==w&&(w=b),"function"==typeof v.type&&v.__k===_.__k?v.__d=d=y(v,d,e):d=x(e,v,_,A,b,d),"function"==typeof n.type&&(n.__d=d)):d&&_.__e==d&&d.parentNode!=e&&(d=f(_))}for(n.__e=w,p=C;p--;)null!=A[p]&&("function"==typeof n.type&&null!=A[p].__e&&A[p].__e==n.__d&&(n.__d=f(r,p+1)),N(A[p],A[p]));if(k)for(p=0;p<k.length;p++)L(k[p],k[++p],k[++p])}function y(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?y(r,t,n):x(n,r,r,o,r.__e,t));return t}function x(e,t,n,r,o,i){var a,l,s;if(void 0!==t.__d)a=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),a=null;else{for(l=i,s=0;(l=l.nextSibling)&&s<r.length;s+=2)if(l==o)break e;e.insertBefore(o,i),a=i}return void 0!==a?a:o.nextSibling}function k(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||c.test(t)?n:n+"px"}function A(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||k(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||k(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?S:C,i):e.removeEventListener(t,i?S:C,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function C(e){this.l[e.type+!1](t.event?t.event(e):e)}function S(e){this.l[e.type+!0](t.event?t.event(e):e)}function E(e,n,r,o,i,a,l,s,c){var h,p,u,f,_,v,b,y,x,k,A,C=n.type;if(void 0!==n.constructor)return null;null!=r.__h&&(c=r.__h,s=n.__e=r.__e,n.__h=null,a=[s]),(h=t.__b)&&h(n);try{e:if("function"==typeof C){if(y=n.props,x=(h=C.contextType)&&o[h.__c],k=h?x?x.props.value:h.__:o,r.__c?b=(p=n.__c=r.__c).__=p.__E:("prototype"in C&&C.prototype.render?n.__c=p=new C(y,k):(n.__c=p=new m(y,k),p.constructor=C,p.render=F),x&&x.sub(p),p.props=y,p.state||(p.state={}),p.context=k,p.__n=o,u=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=C.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=d({},p.__s)),d(p.__s,C.getDerivedStateFromProps(y,p.__s))),f=p.props,_=p.state,u)null==C.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==C.getDerivedStateFromProps&&y!==f&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(y,k),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(y,p.__s,k)||n.__v===r.__v){p.props=y,p.state=p.__s,n.__v!==r.__v&&(p.__d=!1),p.__v=n,n.__e=r.__e,n.__k=r.__k,n.__k.forEach((function(e){e&&(e.__=n)})),p.__h.length&&l.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(y,p.__s,k),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(f,_,v)}))}p.context=k,p.props=y,p.state=p.__s,(h=t.__r)&&h(n),p.__d=!1,p.__v=n,p.__P=e,h=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=d(d({},o),p.getChildContext())),u||null==p.getSnapshotBeforeUpdate||(v=p.getSnapshotBeforeUpdate(f,_)),A=null!=h&&h.type===g&&null==h.key?h.props.children:h,w(e,Array.isArray(A)?A:[A],n,r,o,i,a,l,s,c),p.base=n.__e,n.__h=null,p.__h.length&&l.push(p),b&&(p.__E=p.__=null),p.__e=!1}else null==a&&n.__v===r.__v?(n.__k=r.__k,n.__e=r.__e):n.__e=M(r.__e,n,r,o,i,a,l,c);(h=t.diffed)&&h(n)}catch(e){n.__v=null,(c||null!=a)&&(n.__e=s,n.__h=!!c,a[a.indexOf(s)]=null),t.__e(e,n,r)}}function z(e,n){t.__c&&t.__c(n,e),e.some((function(n){try{e=n.__h,n.__h=[],e.some((function(e){e.call(n)}))}catch(e){t.__e(e,n.__v)}}))}function M(t,n,r,o,i,a,s,c){var d,p,u,g=r.props,m=n.props,_=n.type,v=0;if("svg"===_&&(i=!0),null!=a)for(;v<a.length;v++)if((d=a[v])&&"setAttribute"in d==!!_&&(_?d.localName===_:3===d.nodeType)){t=d,a[v]=null;break}if(null==t){if(null===_)return document.createTextNode(m);t=i?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_,m.is&&m),a=null,c=!1}if(null===_)g===m||c&&t.data===m||(t.data=m);else{if(a=a&&e.call(t.childNodes),p=(g=r.props||l).dangerouslySetInnerHTML,u=m.dangerouslySetInnerHTML,!c){if(null!=a)for(g={},v=0;v<t.attributes.length;v++)g[t.attributes[v].name]=t.attributes[v].value;(u||p)&&(u&&(p&&u.__html==p.__html||u.__html===t.innerHTML)||(t.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||A(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||A(e,i,t[i],n[i],r)}(t,m,g,i,c),u)n.__k=[];else if(v=n.props.children,w(t,Array.isArray(v)?v:[v],n,r,o,i&&"foreignObject"!==_,a,s,a?a[0]:r.__k&&f(r,0),c),null!=a)for(v=a.length;v--;)null!=a[v]&&h(a[v]);c||("value"in m&&void 0!==(v=m.value)&&(v!==t.value||"progress"===_&&!v||"option"===_&&v!==g.value)&&A(t,"value",v,g.value,!1),"checked"in m&&void 0!==(v=m.checked)&&v!==t.checked&&A(t,"checked",v,g.checked,!1))}return t}function L(e,n,r){try{"function"==typeof e?e(n):e.current=n}catch(e){t.__e(e,r)}}function N(e,n,r){var o,i;if(t.unmount&&t.unmount(e),(o=e.ref)&&(o.current&&o.current!==e.__e||L(o,null,n)),null!=(o=e.__c)){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(e){t.__e(e,n)}o.base=o.__P=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&N(o[i],n,"function"!=typeof e.type);r||null==e.__e||h(e.__e),e.__e=e.__d=void 0}function F(e,t,n){return this.constructor(e,n)}function H(e,t){var n={__c:t="__cC"+a++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(v)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}e=s.slice,t={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},n=0,m.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof e&&(e=e(d({},n),this.props)),e&&d(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),v(this))},m.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),v(this))},m.prototype.render=g,r=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,a=0;var T=0;function D(e,n,r,o,i){var a,l,s={};for(l in n)"ref"==l?a=n[l]:s[l]=n[l];var c={type:e,props:s,key:r,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--T,__source:i,__self:o};if("function"==typeof e&&(a=e.defaultProps))for(l in a)void 0===s[l]&&(s[l]=a[l]);return t.vnode&&t.vnode(c),c}var P,R,U,I=0,O=[],B=t.__b,V=t.__r,$=t.diffed,j=t.__c,G=t.unmount;function W(e,n){t.__h&&t.__h(R,e,I||n),I=0;var r=R.__H||(R.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function q(e){return I=1,function(e,t,n){var r=W(P++,2);return r.t=e,r.__c||(r.__=[n?n(t):oe(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=R),r.__}(oe,e)}function K(e,n){var r=W(P++,3);!t.__s&&re(r.__H,n)&&(r.__=e,r.__H=n,R.__H.__h.push(r))}function Z(e,n){var r=W(P++,4);!t.__s&&re(r.__H,n)&&(r.__=e,r.__H=n,R.__h.push(r))}function J(e){return I=5,Q((function(){return{current:e}}),[])}function Q(e,t){var n=W(P++,7);return re(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Y(e){var t=R.context[e.__c],n=W(P++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(R)),t.props.value):e.__}function X(){for(var e;e=O.shift();)if(e.__P)try{e.__H.__h.forEach(te),e.__H.__h.forEach(ne),e.__H.__h=[]}catch(n){e.__H.__h=[],t.__e(n,e.__v)}}t.__b=function(e){R=null,B&&B(e)},t.__r=function(e){V&&V(e),P=0;var t=(R=e.__c).__H;t&&(t.__h.forEach(te),t.__h.forEach(ne),t.__h=[])},t.diffed=function(e){$&&$(e);var n=e.__c;n&&n.__H&&n.__H.__h.length&&(1!==O.push(n)&&U===t.requestAnimationFrame||((U=t.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),ee&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);ee&&(t=requestAnimationFrame(n))})(X)),R=null},t.__c=function(e,n){n.some((function(e){try{e.__h.forEach(te),e.__h=e.__h.filter((function(e){return!e.__||ne(e)}))}catch(r){n.some((function(e){e.__h&&(e.__h=[])})),n=[],t.__e(r,e.__v)}})),j&&j(e,n)},t.unmount=function(e){G&&G(e);var n,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{te(e)}catch(e){n=e}})),n&&t.__e(n,r.__v))};var ee="function"==typeof requestAnimationFrame;function te(e){var t=R,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),R=t}function ne(e){var t=R;e.__c=e.__(),R=t}function re(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function oe(e,t){return"function"==typeof t?t(e):t}
|
|
1
|
+
!function(){"use strict";var e,t,n,r,o,i,a,l={},s=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function d(e,t){for(var n in t)e[n]=t[n];return e}function h(e){var t=e.parentNode;t&&t.removeChild(e)}function p(t,n,r){var o,i,a,l={};for(a in n)"key"==a?o=n[a]:"ref"==a?i=n[a]:l[a]=n[a];if(arguments.length>2&&(l.children=arguments.length>3?e.call(arguments,2):r),"function"==typeof t&&null!=t.defaultProps)for(a in t.defaultProps)void 0===l[a]&&(l[a]=t.defaultProps[a]);return u(t,l,o,i,null)}function u(e,r,o,i,a){var l={type:e,props:r,key:o,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==a?++n:a};return null==a&&null!=t.vnode&&t.vnode(l),l}function g(e){return e.children}function m(e,t){this.props=e,this.context=t}function f(e,t){if(null==t)return e.__?f(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?f(e):null}function _(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return _(e)}}function v(e){(!e.__d&&(e.__d=!0)&&r.push(e)&&!b.__r++||i!==t.debounceRendering)&&((i=t.debounceRendering)||o)(b)}function b(){for(var e;b.__r=r.length;)e=r.sort((function(e,t){return e.__v.__b-t.__v.__b})),r=[],e.some((function(e){var t,n,r,o,i,a;e.__d&&(i=(o=(t=e).__v).__e,(a=t.__P)&&(n=[],(r=d({},o)).__v=o.__v+1,S(a,o,r,t.__n,void 0!==a.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?f(o):i,o.__h),z(n,o),o.__e!=i&&_(o)))}))}function w(e,t,n,r,o,i,a,c,d,h){var p,m,_,v,b,w,k,A=r&&r.__k||s,C=A.length;for(n.__k=[],p=0;p<t.length;p++)if(null!=(v=n.__k[p]=null==(v=t[p])||"boolean"==typeof v?null:"string"==typeof v||"number"==typeof v||"bigint"==typeof v?u(null,v,null,null,v):Array.isArray(v)?u(g,{children:v},null,null,null):v.__b>0?u(v.type,v.props,v.key,null,v.__v):v)){if(v.__=n,v.__b=n.__b+1,null===(_=A[p])||_&&v.key==_.key&&v.type===_.type)A[p]=void 0;else for(m=0;m<C;m++){if((_=A[m])&&v.key==_.key&&v.type===_.type){A[m]=void 0;break}_=null}S(e,v,_=_||l,o,i,a,c,d,h),b=v.__e,(m=v.ref)&&_.ref!=m&&(k||(k=[]),_.ref&&k.push(_.ref,null,v),k.push(m,v.__c||b,v)),null!=b?(null==w&&(w=b),"function"==typeof v.type&&v.__k===_.__k?v.__d=d=y(v,d,e):d=x(e,v,_,A,b,d),"function"==typeof n.type&&(n.__d=d)):d&&_.__e==d&&d.parentNode!=e&&(d=f(_))}for(n.__e=w,p=C;p--;)null!=A[p]&&("function"==typeof n.type&&null!=A[p].__e&&A[p].__e==n.__d&&(n.__d=f(r,p+1)),N(A[p],A[p]));if(k)for(p=0;p<k.length;p++)L(k[p],k[++p],k[++p])}function y(e,t,n){for(var r,o=e.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=e,t="function"==typeof r.type?y(r,t,n):x(n,r,r,o,r.__e,t));return t}function x(e,t,n,r,o,i){var a,l,s;if(void 0!==t.__d)a=t.__d,t.__d=void 0;else if(null==n||o!=i||null==o.parentNode)e:if(null==i||i.parentNode!==e)e.appendChild(o),a=null;else{for(l=i,s=0;(l=l.nextSibling)&&s<r.length;s+=2)if(l==o)break e;e.insertBefore(o,i),a=i}return void 0!==a?a:o.nextSibling}function k(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||c.test(t)?n:n+"px"}function A(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||k(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||k(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?E:C,i):e.removeEventListener(t,i?E:C,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function C(e){this.l[e.type+!1](t.event?t.event(e):e)}function E(e){this.l[e.type+!0](t.event?t.event(e):e)}function S(e,n,r,o,i,a,l,s,c){var h,p,u,f,_,v,b,y,x,k,A,C=n.type;if(void 0!==n.constructor)return null;null!=r.__h&&(c=r.__h,s=n.__e=r.__e,n.__h=null,a=[s]),(h=t.__b)&&h(n);try{e:if("function"==typeof C){if(y=n.props,x=(h=C.contextType)&&o[h.__c],k=h?x?x.props.value:h.__:o,r.__c?b=(p=n.__c=r.__c).__=p.__E:("prototype"in C&&C.prototype.render?n.__c=p=new C(y,k):(n.__c=p=new m(y,k),p.constructor=C,p.render=F),x&&x.sub(p),p.props=y,p.state||(p.state={}),p.context=k,p.__n=o,u=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=C.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=d({},p.__s)),d(p.__s,C.getDerivedStateFromProps(y,p.__s))),f=p.props,_=p.state,u)null==C.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==C.getDerivedStateFromProps&&y!==f&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(y,k),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(y,p.__s,k)||n.__v===r.__v){p.props=y,p.state=p.__s,n.__v!==r.__v&&(p.__d=!1),p.__v=n,n.__e=r.__e,n.__k=r.__k,n.__k.forEach((function(e){e&&(e.__=n)})),p.__h.length&&l.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(y,p.__s,k),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(f,_,v)}))}p.context=k,p.props=y,p.state=p.__s,(h=t.__r)&&h(n),p.__d=!1,p.__v=n,p.__P=e,h=p.render(p.props,p.state,p.context),p.state=p.__s,null!=p.getChildContext&&(o=d(d({},o),p.getChildContext())),u||null==p.getSnapshotBeforeUpdate||(v=p.getSnapshotBeforeUpdate(f,_)),A=null!=h&&h.type===g&&null==h.key?h.props.children:h,w(e,Array.isArray(A)?A:[A],n,r,o,i,a,l,s,c),p.base=n.__e,n.__h=null,p.__h.length&&l.push(p),b&&(p.__E=p.__=null),p.__e=!1}else null==a&&n.__v===r.__v?(n.__k=r.__k,n.__e=r.__e):n.__e=M(r.__e,n,r,o,i,a,l,c);(h=t.diffed)&&h(n)}catch(e){n.__v=null,(c||null!=a)&&(n.__e=s,n.__h=!!c,a[a.indexOf(s)]=null),t.__e(e,n,r)}}function z(e,n){t.__c&&t.__c(n,e),e.some((function(n){try{e=n.__h,n.__h=[],e.some((function(e){e.call(n)}))}catch(e){t.__e(e,n.__v)}}))}function M(t,n,r,o,i,a,s,c){var d,p,u,g=r.props,m=n.props,_=n.type,v=0;if("svg"===_&&(i=!0),null!=a)for(;v<a.length;v++)if((d=a[v])&&"setAttribute"in d==!!_&&(_?d.localName===_:3===d.nodeType)){t=d,a[v]=null;break}if(null==t){if(null===_)return document.createTextNode(m);t=i?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_,m.is&&m),a=null,c=!1}if(null===_)g===m||c&&t.data===m||(t.data=m);else{if(a=a&&e.call(t.childNodes),p=(g=r.props||l).dangerouslySetInnerHTML,u=m.dangerouslySetInnerHTML,!c){if(null!=a)for(g={},v=0;v<t.attributes.length;v++)g[t.attributes[v].name]=t.attributes[v].value;(u||p)&&(u&&(p&&u.__html==p.__html||u.__html===t.innerHTML)||(t.innerHTML=u&&u.__html||""))}if(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||A(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||A(e,i,t[i],n[i],r)}(t,m,g,i,c),u)n.__k=[];else if(v=n.props.children,w(t,Array.isArray(v)?v:[v],n,r,o,i&&"foreignObject"!==_,a,s,a?a[0]:r.__k&&f(r,0),c),null!=a)for(v=a.length;v--;)null!=a[v]&&h(a[v]);c||("value"in m&&void 0!==(v=m.value)&&(v!==t.value||"progress"===_&&!v||"option"===_&&v!==g.value)&&A(t,"value",v,g.value,!1),"checked"in m&&void 0!==(v=m.checked)&&v!==t.checked&&A(t,"checked",v,g.checked,!1))}return t}function L(e,n,r){try{"function"==typeof e?e(n):e.current=n}catch(e){t.__e(e,r)}}function N(e,n,r){var o,i;if(t.unmount&&t.unmount(e),(o=e.ref)&&(o.current&&o.current!==e.__e||L(o,null,n)),null!=(o=e.__c)){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(e){t.__e(e,n)}o.base=o.__P=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&N(o[i],n,"function"!=typeof e.type);r||null==e.__e||h(e.__e),e.__e=e.__d=void 0}function F(e,t,n){return this.constructor(e,n)}function H(e,t){var n={__c:t="__cC"+a++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(v)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}e=s.slice,t={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},n=0,m.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),"function"==typeof e&&(e=e(d({},n),this.props)),e&&d(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),v(this))},m.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),v(this))},m.prototype.render=g,r=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,a=0;var T=0;function D(e,n,r,o,i){var a,l,s={};for(l in n)"ref"==l?a=n[l]:s[l]=n[l];var c={type:e,props:s,key:r,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--T,__source:i,__self:o};if("function"==typeof e&&(a=e.defaultProps))for(l in a)void 0===s[l]&&(s[l]=a[l]);return t.vnode&&t.vnode(c),c}var P,R,U,I=0,O=[],B=t.__b,V=t.__r,$=t.diffed,j=t.__c,G=t.unmount;function W(e,n){t.__h&&t.__h(R,e,I||n),I=0;var r=R.__H||(R.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function q(e){return I=1,function(e,t,n){var r=W(P++,2);return r.t=e,r.__c||(r.__=[n?n(t):oe(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=R),r.__}(oe,e)}function K(e,n){var r=W(P++,3);!t.__s&&re(r.__H,n)&&(r.__=e,r.__H=n,R.__H.__h.push(r))}function Z(e,n){var r=W(P++,4);!t.__s&&re(r.__H,n)&&(r.__=e,r.__H=n,R.__h.push(r))}function J(e){return I=5,Q((function(){return{current:e}}),[])}function Q(e,t){var n=W(P++,7);return re(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Y(e){var t=R.context[e.__c],n=W(P++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(R)),t.props.value):e.__}function X(){for(var e;e=O.shift();)if(e.__P)try{e.__H.__h.forEach(te),e.__H.__h.forEach(ne),e.__H.__h=[]}catch(n){e.__H.__h=[],t.__e(n,e.__v)}}t.__b=function(e){R=null,B&&B(e)},t.__r=function(e){V&&V(e),P=0;var t=(R=e.__c).__H;t&&(t.__h.forEach(te),t.__h.forEach(ne),t.__h=[])},t.diffed=function(e){$&&$(e);var n=e.__c;n&&n.__H&&n.__H.__h.length&&(1!==O.push(n)&&U===t.requestAnimationFrame||((U=t.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),ee&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);ee&&(t=requestAnimationFrame(n))})(X)),R=null},t.__c=function(e,n){n.some((function(e){try{e.__h.forEach(te),e.__h=e.__h.filter((function(e){return!e.__||ne(e)}))}catch(r){n.some((function(e){e.__h&&(e.__h=[])})),n=[],t.__e(r,e.__v)}})),j&&j(e,n)},t.unmount=function(e){G&&G(e);var n,r=e.__c;r&&r.__H&&(r.__H.__.forEach((function(e){try{te(e)}catch(e){n=e}})),n&&t.__e(n,r.__v))};var ee="function"==typeof requestAnimationFrame;function te(e){var t=R,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),R=t}function ne(e){var t=R;e.__c=e.__(),R=t}function re(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function oe(e,t){return"function"==typeof t?t(e):t}
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2017 The Lighthouse Authors. All Rights Reserved.
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
|
-
*/const ie="…",ae="data:image/jpeg;base64,",le={label:"pass",minScore:.9},se={label:"average",minScore:.5},ce={label:"fail"},de={label:"error"},he=["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"];class pe{static i18n=null;static get PASS_THRESHOLD(){return.9}static get MS_DISPLAY_VALUE(){return"%10d ms"}static prepareReportResult(e){const t=JSON.parse(JSON.stringify(e));t.configSettings.locale||(t.configSettings.locale="en"),t.configSettings.formFactor||(t.configSettings.formFactor=t.configSettings.emulatedFormFactor);for(const e of Object.values(t.audits))if("not_applicable"!==e.scoreDisplayMode&&"not-applicable"!==e.scoreDisplayMode||(e.scoreDisplayMode="notApplicable"),e.details&&(void 0!==e.details.type&&"diagnostic"!==e.details.type||(e.details.type="debugdata"),"filmstrip"===e.details.type))for(const t of e.details.items)t.data.startsWith(ae)||(t.data=ae+t.data);if("object"!=typeof t.categories)throw new Error("No categories provided.");const n=new Map,[r]=t.lighthouseVersion.split(".").map(Number),o=t.categories.performance;if(r<9&&o){t.categoryGroups||(t.categoryGroups={}),t.categoryGroups.hidden={title:""};for(const e of o.auditRefs)e.group?["load-opportunities","diagnostics"].includes(e.group)&&delete e.group:e.group="hidden"}for(const e of Object.values(t.categories))e.auditRefs.forEach((e=>{e.relevantAudits&&e.relevantAudits.forEach((t=>{const r=n.get(t)||[];r.push(e),n.set(t,r)}))})),e.auditRefs.forEach((e=>{const r=t.audits[e.id];e.result=r,n.has(e.id)&&(e.relevantMetrics=n.get(e.id)),t.stackPacks&&t.stackPacks.forEach((t=>{t.descriptions[e.id]&&(e.stackPacks=e.stackPacks||[],e.stackPacks.push({title:t.title,iconDataURL:t.iconDataURL,description:t.descriptions[e.id]}))}))}));return t}static showAsPassed(e){switch(e.scoreDisplayMode){case"manual":case"notApplicable":return!0;case"error":case"informative":return!1;case"numeric":case"binary":default:return Number(e.score)>=le.minScore}}static calculateRating(e,t){if("manual"===t||"notApplicable"===t)return le.label;if("error"===t)return de.label;if(null===e)return ce.label;let n=ce.label;return e>=le.minScore?n=le.label:e>=se.minScore&&(n=se.label),n}static splitMarkdownCodeSpans(e){const t=[],n=e.split(/`(.*?)`/g);for(let e=0;e<n.length;e++){const r=n[e];if(!r)continue;const o=e%2!=0;t.push({isCode:o,text:r})}return t}static splitMarkdownLink(e){const t=[],n=e.split(/\[([^\]]+?)\]\((https?:\/\/.*?)\)/g);for(;n.length;){const[e,r,o]=n.splice(0,3);e&&t.push({isLink:!1,text:e}),r&&o&&t.push({isLink:!0,text:r,linkHref:o})}return t}static getURLDisplayName(e,t){const n=void 0!==(t=t||{numPathParts:void 0,preserveQuery:void 0,preserveHost:void 0}).numPathParts?t.numPathParts:2,r=void 0===t.preserveQuery||t.preserveQuery,o=t.preserveHost||!1;let i;if("about:"===e.protocol||"data:"===e.protocol)i=e.href;else{i=e.pathname;const t=i.split("/").filter((e=>e.length));n&&t.length>n&&(i=ie+t.slice(-1*n).join("/")),o&&(i=`${e.host}/${i.replace(/^\//,"")}`),r&&(i=`${i}${e.search}`)}if("data:"!==e.protocol&&(i=i.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,"$1…"),i=i.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,"$1…"),i=i.replace(/(\d{3})\d{6,}/g,"$1…"),i=i.replace(/\u2026+/g,ie),i.length>64&&i.includes("?")&&(i=i.replace(/\?([^=]*)(=)?.*/,"?$1$2…"),i.length>64&&(i=i.replace(/\?.*/,"?…")))),i.length>64){const e=i.lastIndexOf(".");i=e>=0?i.slice(0,63-(i.length-e))+`…${i.slice(e)}`:i.slice(0,63)+ie}return i}static parseURL(e){const t=new URL(e);return{file:pe.getURLDisplayName(t),hostname:t.hostname,origin:t.origin}}static createOrReturnURL(e){return e instanceof URL?e:new URL(e)}static getTld(e){const t=e.split(".").slice(-2);return he.includes(t[0])?`.${t.join(".")}`:`.${t[t.length-1]}`}static getRootDomain(e){const t=pe.createOrReturnURL(e).hostname,n=pe.getTld(t).split(".");return t.split(".").slice(-n.length).join(".")}static getEmulationDescriptions(e){let t,n,r;const o=e.throttling;switch(e.throttlingMethod){case"provided":r=n=t=pe.i18n.strings.throttlingProvided;break;case"devtools":{const{cpuSlowdownMultiplier:e,requestLatencyMs:i}=o;t=`${pe.i18n.formatNumber(e)}x slowdown (DevTools)`,n=`${pe.i18n.formatMilliseconds(i)} HTTP RTT, ${pe.i18n.formatKbps(o.downloadThroughputKbps)} down, ${pe.i18n.formatKbps(o.uploadThroughputKbps)} up (DevTools)`;r=(()=>562.5===i&&o.downloadThroughputKbps===1638.4*.9&&675===o.uploadThroughputKbps)()?pe.i18n.strings.runtimeSlow4g:pe.i18n.strings.runtimeCustom;break}case"simulate":{const{cpuSlowdownMultiplier:e,rttMs:i,throughputKbps:a}=o;t=`${pe.i18n.formatNumber(e)}x slowdown (Simulated)`,n=`${pe.i18n.formatMilliseconds(i)} TCP RTT, ${pe.i18n.formatKbps(a)} throughput (Simulated)`;r=(()=>150===i&&1638.4===a)()?pe.i18n.strings.runtimeSlow4g:pe.i18n.strings.runtimeCustom;break}default:r=t=n=pe.i18n.strings.runtimeUnknown}return{deviceEmulation:{mobile:pe.i18n.strings.runtimeMobileEmulation,desktop:pe.i18n.strings.runtimeDesktopEmulation}[e.formFactor]||pe.i18n.strings.runtimeNoEmulation,cpuThrottling:t,networkThrottling:n,summary:r}}static filterRelevantLines(e,t,n){if(0===t.length)return e.slice(0,2*n+1);const r=new Set;return(t=t.sort(((e,t)=>(e.lineNumber||0)-(t.lineNumber||0)))).forEach((({lineNumber:e})=>{let t=e-n,o=e+n;for(;t<1;)t++,o++;r.has(t-3-1)&&(t-=3);for(let e=t;e<=o;e++){const t=e;r.add(t)}})),e.filter((e=>r.has(e.lineNumber)))}static isPluginCategory(e){return e.startsWith("lighthouse-plugin-")}static shouldDisplayAsFraction(e){return"timespan"===e||"snapshot"===e}static calculateCategoryFraction(e){let t=0,n=0,r=0,o=0;for(const i of e.auditRefs){const e=pe.showAsPassed(i.result);"hidden"!==i.group&&"manual"!==i.result.scoreDisplayMode&&"notApplicable"!==i.result.scoreDisplayMode&&("informative"!==i.result.scoreDisplayMode?(++t,o+=i.weight,e&&n++):e||++r)}return{numPassed:n,numPassableAudits:t,numInformative:r,totalWeight:o}}}pe.reportJson=null;let ue=0;pe.getUniqueSuffix=()=>ue++,pe.resetUniqueSuffix=()=>{ue=0};pe.UIStrings={varianceDisclaimer:"Values are estimated and may vary. The [performance score is calculated](https://web.dev/performance-scoring/) directly from these metrics.",calculatorLink:"See calculator.",showRelevantAudits:"Show audits relevant to:",opportunityResourceColumnLabel:"Opportunity",opportunitySavingsColumnLabel:"Estimated Savings",errorMissingAuditInfo:"Report error: no audit information",errorLabel:"Error!",warningHeader:"Warnings: ",warningAuditsGroupTitle:"Passed audits but with warnings",passedAuditsGroupTitle:"Passed audits",notApplicableAuditsGroupTitle:"Not applicable",manualAuditsGroupTitle:"Additional items to manually check",toplevelWarningsMessage:"There were issues affecting this run of Lighthouse:",crcInitialNavigation:"Initial Navigation",crcLongestDurationLabel:"Maximum critical path latency:",snippetExpandButtonLabel:"Expand snippet",snippetCollapseButtonLabel:"Collapse snippet",lsPerformanceCategoryDescription:"[Lighthouse](https://developers.google.com/web/tools/lighthouse/) analysis of the current page on an emulated mobile network. Values are estimated and may vary.",labDataTitle:"Lab Data",thirdPartyResourcesLabel:"Show 3rd-party resources",viewTreemapLabel:"View Treemap",viewTraceLabel:"View Trace",viewOriginalTraceLabel:"View Original Trace",dropdownPrintSummary:"Print Summary",dropdownPrintExpanded:"Print Expanded",dropdownCopyJSON:"Copy JSON",dropdownSaveHTML:"Save as HTML",dropdownSaveJSON:"Save as JSON",dropdownViewer:"Open in Viewer",dropdownSaveGist:"Save as Gist",dropdownDarkTheme:"Toggle Dark Theme",runtimeSettingsDevice:"Device",runtimeSettingsNetworkThrottling:"Network throttling",runtimeSettingsCPUThrottling:"CPU throttling",runtimeSettingsUANetwork:"User agent (network)",runtimeSettingsBenchmark:"CPU/Memory Power",runtimeSettingsAxeVersion:"Axe version",footerIssue:"File an issue",runtimeNoEmulation:"No emulation",runtimeMobileEmulation:"Emulated Moto G4",runtimeDesktopEmulation:"Emulated Desktop",runtimeUnknown:"Unknown",runtimeSingleLoad:"Single page load",runtimeAnalysisWindow:"Initial page load",runtimeSingleLoadTooltip:"This data is taken from a single page load, as opposed to field data summarizing many sessions.",throttlingProvided:"Provided by environment",show:"Show",hide:"Hide",expandView:"Expand view",collapseView:"Collapse view",runtimeSlow4g:"Slow 4G throttling",runtimeCustom:"Custom throttling"};const ge=()=>D("svg",{width:"14",viewBox:"0 0 18 16",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 2C0 1.17 0.67 0.5 1.5 0.5C2.33 0.5 3 1.17 3 2C3 2.83 2.33 3.5 1.5 3.5C0.67 3.5 0 2.83 0 2ZM0 8C0 7.17 0.67 6.5 1.5 6.5C2.33 6.5 3 7.17 3 8C3 8.83 2.33 9.5 1.5 9.5C0.67 9.5 0 8.83 0 8ZM1.5 12.5C0.67 12.5 0 13.18 0 14C0 14.82 0.68 15.5 1.5 15.5C2.32 15.5 3 14.82 3 14C3 13.18 2.33 12.5 1.5 12.5ZM18 15H5V13H18V15ZM5 9H18V7H5V9ZM5 3V1H18V3H5Z",fill:"currentColor"})}),me=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a navigation report",children:D("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"})}),fe=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a timespan report",children:[D("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),D("path",{d:"m 8,4 v 4 l 4,1.9999998",stroke:"currentColor","stroke-width":"1.5"})]}),_e=()=>D("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a snapshot report",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M 12.2038,12.2812 C 11.1212,13.3443 9.6372,14 8,14 7.81038,14 7.62281,13.9912 7.43768,13.974 L 10.3094,9 Z M 12.8925,11.4741 10.0207,6.5 H 13.811 C 13.9344,6.97943 14,7.48205 14,8 c 0,1.2947 -0.4101,2.4937 -1.1075,3.4741 z M 13.456,5.5 H 7.71135 L 9.6065,2.21749 C 11.3203,2.69259 12.7258,3.90911 13.456,5.5 Z M 8.5624,2.02601 C 8.3772,2.0088 8.1896,2 8,2 6.36282,2 4.8788,2.65572 3.79622,3.71885 L 5.69061,7.00002 Z M 3.10749,4.52594 C 2.4101,5.5063 2,6.70526 2,8 2,8.5179 2.06563,9.0206 2.18903,9.5 H 5.97927 Z M 2.54404,10.5 c 0.73017,1.5909 2.1357,2.8074 3.84949,3.2825 L 8.2887,10.5 Z M 16,8 c 0,4.4183 -3.5817,8 -8,8 C 3.58172,16 0,12.4183 0,8 0,3.58172 3.58172,0 8,0 c 4.4183,0 8,3.58172 8,8 z",fill:"currentColor"})}),ve=()=>D("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"currentColor",role:"img","aria-label":"Icon representing a close action",children:[D("path",{d:"M0 0h24v24H0V0z",fill:"none"}),D("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"})]}),be=()=>D("svg",{width:"15",height:"12",viewBox:"0 0 15 12",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.33317 2.00008H13.9998V0.666748H3.33317C2.59984 0.666748 1.99984 1.26675 1.99984 2.00008V9.33341H0.666504V11.3334H7.99984V9.33341H3.33317V2.00008ZM13.9998 3.33341H9.99984C9.63317 3.33341 9.33317 3.63341 9.33317 4.00008V10.6667C9.33317 11.0334 9.63317 11.3334 9.99984 11.3334H13.9998C14.3665 11.3334 14.6665 11.0334 14.6665 10.6667V4.00008C14.6665 3.63341 14.3665 3.33341 13.9998 3.33341ZM10.6665 9.33341H13.3332V4.66675H10.6665V9.33341Z",fill:"currentColor"})}),we=()=>D("svg",{width:"16",height:"11",viewBox:"0 0 16 11",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0.666687 3.26663L2.00002 4.59997C3.92002 2.67997 6.52669 1.87997 9.02002 2.18663L9.81335 0.399966C6.59335 -0.173367 3.16002 0.779966 0.666687 3.26663ZM10.6 0.599966C10.4867 0.599966 10.3867 0.659966 10.3267 0.753299L10.28 0.853299L6.82669 8.61996C6.72002 8.8133 6.65335 9.02663 6.65335 9.25996C6.65335 9.99996 7.25335 10.6 7.99335 10.6C8.63335 10.6 9.17335 10.1466 9.30002 9.53996L9.30669 9.51997L10.9334 0.933299C10.9334 0.746633 10.7867 0.599966 10.6 0.599966ZM15.3334 3.26663L14 4.59997C13.1867 3.78663 12.2534 3.17997 11.2534 2.76663L11.6067 0.886633C12.9667 1.38663 14.24 2.1733 15.3334 3.26663ZM11.3334 7.26663L12.6667 5.9333C12.1334 5.39997 11.5334 4.98663 10.8934 4.6733L10.5267 6.61997C10.8067 6.79997 11.08 7.0133 11.3334 7.26663ZM4.66669 7.26663L3.33335 5.9333C4.67335 4.5933 6.45335 3.95997 8.20669 4.0133L7.35335 5.9333C6.37335 6.0733 5.42002 6.5133 4.66669 7.26663Z",fill:"currentColor"})}),ye=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5 7.16667V5.5H13.8333V3.83333C13.8333 2.91667 13.0833 2.16667 12.1667 2.16667H10.5V0.5H8.83333V2.16667H7.16667V0.5H5.5V2.16667H3.83333C2.91667 2.16667 2.16667 2.91667 2.16667 3.83333V5.5H0.5V7.16667H2.16667V8.83333H0.5V10.5H2.16667V12.1667C2.16667 13.0833 2.91667 13.8333 3.83333 13.8333H5.5V15.5H7.16667V13.8333H8.83333V15.5H10.5V13.8333H12.1667C13.0833 13.8333 13.8333 13.0833 13.8333 12.1667V10.5H15.5V8.83333H13.8333V7.16667H15.5ZM10.5 5.5H5.5V10.5H10.5V5.5ZM3.83333 12.1667H12.1667V3.83333H3.83333V12.1667Z",fill:"currentColor"})}),xe=()=>D("svg",{viewBox:"0 0 18 12",width:"18",height:"12",role:"img",children:[D("rect",{width:"18",height:"2",fill:"currentColor"}),D("rect",{y:"5",width:"18",height:"2",fill:"currentColor"}),D("rect",{y:"10",width:"18",height:"2",fill:"currentColor"})]}),ke=()=>D("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13 7C13 10.3137 10.3137 13 7 13C3.68629 13 1 10.3137 1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7ZM14 7C14 10.866 10.866 14 7 14C3.13401 14 0 10.866 0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7ZM7.66658 11H6.33325V9.66667H7.66658V11ZM4.33325 5.66667C4.33325 4.19333 5.52659 3 6.99992 3C8.47325 3 9.66658 4.19333 9.66658 5.66667C9.66658 6.52194 9.1399 6.98221 8.62709 7.43036C8.1406 7.85551 7.66658 8.26975 7.66658 9H6.33325C6.33325 7.78582 6.96133 7.30439 7.51355 6.88112C7.94674 6.54907 8.33325 6.25281 8.33325 5.66667C8.33325 4.93333 7.73325 4.33333 6.99992 4.33333C6.26658 4.33333 5.66658 4.93333 5.66658 5.66667H4.33325Z",fill:"currentColor"})}),Ae=H(void 0),Ce=H({});function Se(e){return new URLSearchParams(location.hash.replace("#","?")).get(e)}function Ee(...e){const t=[];for(const n of e){if(!n)continue;if("string"==typeof n){t.push(n);continue}const e=Object.entries(n).filter((([e,t])=>t)).map((([e])=>e));t.push(...e)}return t.join(" ")}function ze(e,t){switch(e){case"navigation":return t.navigationDescription;case"timespan":return t.timespanDescription;case"snapshot":return t.snapshotDescription}}function Me(){const e=Y(Ae);if(!e)throw Error("useFlowResult must be called in the FlowResultContext");return e}function Le(){const e=Me(),[t,n]=function(...e){const[t,n]=q(e.map(Se));return K((()=>{function r(){const r=e.map(Se);r.every(((e,n)=>e===t[n]))||n(r)}return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)}),[t]),t}("index","anchor");return Q((()=>{if(!t)return null;const r=Number(t);if(!Number.isFinite(r))return console.warn(`Invalid hash index: ${t}`),null;const o=e.steps[r];return o?{currentLhr:o.lhr,index:r,anchor:n}:(console.warn(`No flow step at index ${r}`),null)}),[t,e,n])}function Ne(e,t){const n=J(null);return Z((()=>{if(!n.current)return;const t=e();return n.current.append(t),()=>{n.current?.contains(t)&&n.current.removeChild(t)}}),t),n}const Fe=()=>D("div",{className:"Separator",role:"separator"}),He=({mode:e})=>D(g,{children:["navigation"===e&&D(me,{}),"timespan"===e&&D(fe,{}),"snapshot"===e&&D(_e,{})]}),Te=({mode:e})=>D("div",{className:"FlowSegment",children:[D("div",{className:"FlowSegment__top-line"}),e&&D(He,{mode:e}),D("div",{className:"FlowSegment__bottom-line"})]}),De=({frames:e,width:t,height:n})=>{const[r,o]=q(0),i=r%e.length;return K((()=>{const t=setInterval((()=>o((t=>(t+1)%e.length))),500);return()=>clearInterval(t)}),[e.length]),D("img",{className:"FlowStepThumbnail","data-testid":"FlowStepAnimatedThumbnail",src:e[i].data,style:{width:t,height:n},alt:"Animated screenshots of a page tested by Lighthouse"})},Pe=({lhr:e,width:t,height:n})=>{const r=function(e){const t=e.audits["full-page-screenshot"];return t?.details&&"full-page-screenshot"===t.details.type&&t.details||null}(e),o=function(e){const t=e.audits["screenshot-thumbnails"];if(!t)return;return t.details&&"filmstrip"===t.details.type&&t.details.items||void 0}(e),i=function(e){const{width:t,height:n}=e.configSettings.screenEmulation;return{width:t,height:n}}(e);if(t&&void 0===n?n=i.height*t/i.width:n&&void 0===t&&(t=i.width*n/i.height),!t||!n)return console.warn(new Error("FlowStepThumbnail requested without any dimensions").stack),D(g,{});let a;if(o?.length){if(a=o[o.length-1].data,"timespan"===e.gatherMode)return D(De,{frames:o,width:t,height:n})}else a=r?.screenshot.data;return D(g,{children:a&&D("img",{className:"FlowStepThumbnail",src:a,style:{width:t,height:n},alt:"Screenshot of a page tested by Lighthouse"})})};var Re,Ue=function(){function e(t,n,r,o){this.message=t,this.expected=n,this.found=r,this.location=o,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}(e,Error),e.buildMessage=function(e,t){var n={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t,n="";for(t=0;t<e.parts.length;t++)n+=e.parts[t]instanceof Array?i(e.parts[t][0])+"-"+i(e.parts[t][1]):i(e.parts[t]);return"["+(e.inverted?"^":"")+n+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function r(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+r(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+r(e)}))}function i(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+r(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+r(e)}))}return"Expected "+function(e){var t,r,o,i=new Array(e.length);for(t=0;t<e.length;t++)i[t]=(o=e[t],n[o.type](o));if(i.sort(),i.length>0){for(t=1,r=1;t<i.length;t++)i[t-1]!==i[t]&&(i[r]=i[t],r++);i.length=r}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(e)+" but "+function(e){return e?'"'+o(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,n){n=void 0!==n?n:{};var r,o={},i={start:ce},a=ce,l=function(e){return e.join("")},s=re("{",!1),c=",",d=re(",",!1),h=re("}",!1),p="number",u=re("number",!1),g="date",m=re("date",!1),f="time",_=re("time",!1),v="plural",b=re("plural",!1),w="selectordinal",y=re("selectordinal",!1),x="select",k=re("select",!1),A=re("=",!1),C="offset:",S=re("offset:",!1),E=ie("whitespace"),z=/^[ \t\n\r]/,M=oe([" ","\t","\n","\r"],!1,!1),L=ie("optionalWhitespace"),N=/^[0-9]/,F=oe([["0","9"]],!1,!1),H=/^[0-9a-f]/i,T=oe([["0","9"],["a","f"]],!1,!0),D=re("0",!1),P=/^[1-9]/,R=oe([["1","9"]],!1,!1),U="'",I=re("'",!1),O=/^[ \t\n\r,.+={}#]/,B=oe([" ","\t","\n","\r",",",".","+","=","{","}","#"],!1,!1),V={type:"any"},$=/^[^{}\\\0-\x1F\x7F \t\n\r]/,j=oe(["{","}","\\",["\0",""],""," ","\t","\n","\r"],!0,!1),G=re("\\\\",!1),W=re("\\#",!1),q=re("\\{",!1),K=re("\\}",!1),Z=re("\\u",!1),J=0,Q=0,Y=[{line:1,column:1}],X=0,ee=[],te=0;if("startRule"in n){if(!(n.startRule in i))throw new Error("Can't start parsing from rule \""+n.startRule+'".');a=i[n.startRule]}function ne(){return le(Q,J)}function re(e,t){return{type:"literal",text:e,ignoreCase:t}}function oe(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ie(e){return{type:"other",description:e}}function ae(e){var n,r=Y[e];if(r)return r;for(n=e-1;!Y[n];)n--;for(r={line:(r=Y[n]).line,column:r.column};n<e;)10===t.charCodeAt(n)?(r.line++,r.column=1):r.column++,n++;return Y[e]=r,r}function le(e,t){var n=ae(e),r=ae(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function se(e){J<X||(J>X&&(X=J,ee=[]),ee.push(e))}function ce(){return de()}function de(){var e,t,n;for(e=J,t=[],n=he();n!==o;)t.push(n),n=he();return t!==o&&(Q=e,t={type:"messageFormatPattern",elements:t,location:ne()}),e=t}function he(){var e;return(e=function(){var e,n;e=J,(n=function(){var e,n,r,i,a,l;e=J,n=[],r=J,(i=me())!==o&&(a=xe())!==o&&(l=me())!==o?r=i=[i,a,l]:(J=r,r=o);if(r!==o)for(;r!==o;)n.push(r),r=J,(i=me())!==o&&(a=xe())!==o&&(l=me())!==o?r=i=[i,a,l]:(J=r,r=o);else n=o;n!==o&&(Q=e,n=n.reduce((function(e,t){return e.concat(t)}),[]).join(""));(e=n)===o&&(e=J,e=(n=ge())!==o?t.substring(e,J):n);return e}())!==o&&(Q=e,n={type:"messageTextElement",value:n,location:ne()});return e=n}())===o&&(e=function(){var e,n,r,i,a,A,C;e=J,123===t.charCodeAt(J)?(n="{",J++):(n=o,0===te&&se(s));n!==o&&me()!==o&&(r=function(){var e,t,n;if((e=ve())===o){for(e=J,t=[],n=be();n!==o;)t.push(n),n=be();t!==o&&(Q=e,t=l(t)),e=t}return e}())!==o&&me()!==o?(i=J,44===t.charCodeAt(J)?(a=c,J++):(a=o,0===te&&se(d)),a!==o&&(A=me())!==o&&(C=function(){var e;(e=function(){var e,n,r,i,a,l;e=J,t.substr(J,6)===p?(n=p,J+=6):(n=o,0===te&&se(u));n===o&&(t.substr(J,4)===g?(n=g,J+=4):(n=o,0===te&&se(m)),n===o&&(t.substr(J,4)===f?(n=f,J+=4):(n=o,0===te&&se(_))));n!==o&&me()!==o?(r=J,44===t.charCodeAt(J)?(i=c,J++):(i=o,0===te&&se(d)),i!==o&&(a=me())!==o&&(l=xe())!==o?r=i=[i,a,l]:(J=r,r=o),r===o&&(r=null),r!==o?(Q=e,e=n={type:n+"Format",style:(s=r)&&s[2],location:ne()}):(J=e,e=o)):(J=e,e=o);var s;return e}())===o&&(e=function(){var e,n,r,i;e=J,t.substr(J,6)===v?(n=v,J+=6):(n=o,0===te&&se(b));n!==o&&me()!==o?(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o&&me()!==o&&(i=ue())!==o?(Q=e,e=n={type:(a=i).type,ordinal:!1,offset:a.offset||0,options:a.options,location:ne()}):(J=e,e=o)):(J=e,e=o);var a;return e}())===o&&(e=function(){var e,n,r,i;e=J,t.substr(J,13)===w?(n=w,J+=13):(n=o,0===te&&se(y));n!==o&&me()!==o?(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o&&me()!==o&&(i=ue())!==o?(Q=e,e=n={type:(a=i).type,ordinal:!0,offset:a.offset||0,options:a.options,location:ne()}):(J=e,e=o)):(J=e,e=o);var a;return e}())===o&&(e=function(){var e,n,r,i,a;e=J,t.substr(J,6)===x?(n=x,J+=6):(n=o,0===te&&se(k));if(n!==o)if(me()!==o)if(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o)if(me()!==o){if(i=[],(a=pe())!==o)for(;a!==o;)i.push(a),a=pe();else i=o;i!==o?(Q=e,e=n=function(e){return{type:"selectFormat",options:e,location:ne()}}(i)):(J=e,e=o)}else J=e,e=o;else J=e,e=o;else J=e,e=o;else J=e,e=o;return e}());return e}())!==o?i=a=[a,A,C]:(J=i,i=o),i===o&&(i=null),i!==o&&(a=me())!==o?(125===t.charCodeAt(J)?(A="}",J++):(A=o,0===te&&se(h)),A!==o?(Q=e,e=n={type:"argumentElement",id:r,format:(S=i)&&S[2],location:ne()}):(J=e,e=o)):(J=e,e=o)):(J=e,e=o);var S;return e}()),e}function pe(){var e,n,r,i,a;return e=J,me()!==o&&(n=function(){var e,n,r,i;return e=J,n=J,61===t.charCodeAt(J)?(r="=",J++):(r=o,0===te&&se(A)),r!==o&&(i=ve())!==o?n=r=[r,i]:(J=n,n=o),(e=n!==o?t.substring(e,J):n)===o&&(e=xe()),e}())!==o&&me()!==o?(123===t.charCodeAt(J)?(r="{",J++):(r=o,0===te&&se(s)),r!==o&&(i=de())!==o?(125===t.charCodeAt(J)?(a="}",J++):(a=o,0===te&&se(h)),a!==o?(Q=e,e={type:"optionalFormatPattern",selector:n,value:i,location:ne()}):(J=e,e=o)):(J=e,e=o)):(J=e,e=o),e}function ue(){var e,n,r,i;if(e=J,(n=function(){var e,n,r;return e=J,t.substr(J,7)===C?(n=C,J+=7):(n=o,0===te&&se(S)),n!==o&&me()!==o&&(r=ve())!==o?(Q=e,e=n=r):(J=e,e=o),e}())===o&&(n=null),n!==o)if(me()!==o){if(r=[],(i=pe())!==o)for(;i!==o;)r.push(i),i=pe();else r=o;r!==o?(Q=e,e=n=function(e,t){return{type:"pluralFormat",offset:e,options:t,location:ne()}}(n,r)):(J=e,e=o)}else J=e,e=o;else J=e,e=o;return e}function ge(){var e,n;if(te++,e=[],z.test(t.charAt(J))?(n=t.charAt(J),J++):(n=o,0===te&&se(M)),n!==o)for(;n!==o;)e.push(n),z.test(t.charAt(J))?(n=t.charAt(J),J++):(n=o,0===te&&se(M));else e=o;return te--,e===o&&(n=o,0===te&&se(E)),e}function me(){var e,n,r;for(te++,e=J,n=[],r=ge();r!==o;)n.push(r),r=ge();return e=n!==o?t.substring(e,J):n,te--,e===o&&(n=o,0===te&&se(L)),e}function fe(){var e;return N.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(F)),e}function _e(){var e;return H.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(T)),e}function ve(){var e,n,r,i,a,l;if(e=J,48===t.charCodeAt(J)?(n="0",J++):(n=o,0===te&&se(D)),n===o){if(n=J,r=J,P.test(t.charAt(J))?(i=t.charAt(J),J++):(i=o,0===te&&se(R)),i!==o){for(a=[],l=fe();l!==o;)a.push(l),l=fe();a!==o?r=i=[i,a]:(J=r,r=o)}else J=r,r=o;n=r!==o?t.substring(n,J):r}return n!==o&&(Q=e,n=parseInt(n,10)),e=n}function be(){var e,n,r;return e=J,n=J,te++,39===t.charCodeAt(J)?(r=U,J++):(r=o,0===te&&se(I)),r===o&&(O.test(t.charAt(J))?(r=t.charAt(J),J++):(r=o,0===te&&se(B))),te--,r===o?n=void 0:(J=n,n=o),n!==o?(t.length>J?(r=t.charAt(J),J++):(r=o,0===te&&se(V)),r!==o?(Q=e,e=n=r):(J=e,e=o)):(J=e,e=o),e===o&&(e=J,39===t.charCodeAt(J)?(n=U,J++):(n=o,0===te&&se(I)),n!==o&&(r=function(){var e;O.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(B));e===o&&(e=we());return e}())!==o?(Q=e,e=n=r):(J=e,e=o)),e}function we(){var e;return 39===t.charCodeAt(J)?(e=U,J++):(e=o,0===te&&se(I)),e}function ye(){var e,n,r,i,a,l,s,c,d;return e=J,39===t.charCodeAt(J)?(n=U,J++):(n=o,0===te&&se(I)),n!==o&&(r=we())!==o?(Q=e,e=n=r):(J=e,e=o),e===o&&($.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(j)),e===o&&(e=J,"\\\\"===t.substr(J,2)?(n="\\\\",J+=2):(n=o,0===te&&se(G)),n!==o&&(Q=e,n="\\"),(e=n)===o&&(e=J,"\\#"===t.substr(J,2)?(n="\\#",J+=2):(n=o,0===te&&se(W)),n!==o&&(Q=e,n="\\#"),(e=n)===o&&(e=J,"\\{"===t.substr(J,2)?(n="\\{",J+=2):(n=o,0===te&&se(q)),n!==o&&(Q=e,n="{"),(e=n)===o&&(e=J,"\\}"===t.substr(J,2)?(n="\\}",J+=2):(n=o,0===te&&se(K)),n!==o&&(Q=e,n="}"),(e=n)===o&&(e=J,"\\u"===t.substr(J,2)?(n="\\u",J+=2):(n=o,0===te&&se(Z)),n!==o?(r=J,i=J,(a=_e())!==o&&(l=_e())!==o&&(s=_e())!==o&&(c=_e())!==o?i=a=[a,l,s,c]:(J=i,i=o),(r=i!==o?t.substring(r,J):i)!==o?(Q=e,d=r,e=n=String.fromCharCode(parseInt(d,16))):(J=e,e=o)):(J=e,e=o))))))),e}function xe(){var e,t,n;if(e=J,t=[],(n=ye())!==o)for(;n!==o;)t.push(n),n=ye();else t=o;return t!==o&&(Q=e,t=l(t)),e=t}if((r=a())!==o&&J===t.length)return r;throw r!==o&&J<t.length&&se({type:"end"}),function(t,n,r){return new e(e.buildMessage(t,n),t,n,r)}(ee,X<t.length?t.charAt(X):null,X<t.length?le(X,X+1):le(X,X))}}}(),Ie=(Re=function(e,t){return(Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}Re(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),Oe=function(){function e(e,t,n){this.locales=[],this.formats={number:{},date:{},time:{}},this.pluralNumberFormat=null,this.currentPlural=null,this.pluralStack=[],this.locales=e,this.formats=t,this.formatters=n}return e.prototype.compile=function(e){return this.pluralStack=[],this.currentPlural=null,this.pluralNumberFormat=null,this.compileMessage(e)},e.prototype.compileMessage=function(e){var t=this;if(!e||"messageFormatPattern"!==e.type)throw new Error('Message AST is not of type: "messageFormatPattern"');var n=e.elements,r=n.filter((function(e){return"messageTextElement"===e.type||"argumentElement"===e.type})).map((function(e){return"messageTextElement"===e.type?t.compileMessageText(e):t.compileArgument(e)}));if(r.length!==n.length)throw new Error("Message element does not have a valid type");return r},e.prototype.compileMessageText=function(e){return this.currentPlural&&/(^|[^\\])#/g.test(e.value)?(this.pluralNumberFormat||(this.pluralNumberFormat=new Intl.NumberFormat(this.locales)),new je(this.currentPlural.id,this.currentPlural.format.offset,this.pluralNumberFormat,e.value)):e.value.replace(/\\#/g,"#")},e.prototype.compileArgument=function(e){var t=e.format,n=e.id,r=this.formatters;if(!t)return new Ve(n);var o=this.formats,i=this.locales;switch(t.type){case"numberFormat":return{id:n,format:r.getNumberFormat(i,o.number[t.style]).format};case"dateFormat":return{id:n,format:r.getDateTimeFormat(i,o.date[t.style]).format};case"timeFormat":return{id:n,format:r.getDateTimeFormat(i,o.time[t.style]).format};case"pluralFormat":return new $e(n,t.offset,this.compileOptions(e),r.getPluralRules(i,{type:t.ordinal?"ordinal":"cardinal"}));case"selectFormat":return new Ge(n,this.compileOptions(e));default:throw new Error("Message element does not have a valid format type")}},e.prototype.compileOptions=function(e){var t=this,n=e.format,r=n.options;this.pluralStack.push(this.currentPlural),this.currentPlural="pluralFormat"===n.type?e:null;var o=r.reduce((function(e,n){return e[n.selector]=t.compileMessage(n.value),e}),{});return this.currentPlural=this.pluralStack.pop(),o},e}(),Be=function(e){this.id=e},Ve=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ie(t,e),t.prototype.format=function(e){return e||"number"==typeof e?"string"==typeof e?e:String(e):""},t}(Be),$e=function(){function e(e,t,n,r){this.id=e,this.offset=t,this.options=n,this.pluralRules=r}return e.prototype.getOption=function(e){var t=this.options;return t["="+e]||t[this.pluralRules.select(e-this.offset)]||t.other},e}(),je=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i.offset=n,i.numberFormat=r,i.string=o,i}return Ie(t,e),t.prototype.format=function(e){var t=this.numberFormat.format(e-this.offset);return this.string.replace(/(^|[^\\])#/g,"$1"+t).replace(/\\#/g,"#")},t}(Be),Ge=function(){function e(e,t){this.id=e,this.options=t}return e.prototype.getOption=function(e){var t=this.options;return t[e]||t.other},e}();function We(e){return!!e.options}var qe=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ke=function(){return(Ke=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function Ze(e){"string"==typeof e&&(e=[e]);try{return Intl.NumberFormat.supportedLocalesOf(e,{localeMatcher:"best fit"})[0]}catch(e){return Xe.defaultLocale}}function Je(e,t){for(var n="",r=0,o=e;r<o.length;r++){var i=o[r];if("string"!=typeof i){var a=i.id;if(!t||!(a in t))throw new Ye("A value must be provided for: "+a,a);var l=t[a];We(i)?n+=Je(i.getOption(l),t):n+=i.format(l)}else n+=i}return n}function Qe(e,t){return t?Object.keys(e).reduce((function(n,r){var o,i;return n[r]=(o=e[r],(i=t[r])?Ke({},o||{},i||{},Object.keys(o).reduce((function(e,t){return e[t]=Ke({},o[t],i[t]||{}),e}),{})):o),n}),Ke({},e)):e}var Ye=function(e){function t(t,n){var r=e.call(this,t)||this;return r.variableId=n,r}return qe(t,e),t}(Error);var Xe=function(){function e(t,n,r,o){var i=this;if(void 0===n&&(n=e.defaultLocale),this.format=function(e){try{return Je(i.pattern,e)}catch(e){throw e.variableId?new Error("The intl string context variable '"+e.variableId+"' was not provided to the string '"+i.message+"'"):e}},"string"==typeof t){if(!e.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");this.ast=e.__parse(t)}else this.ast=t;if(this.message=t,!this.ast||"messageFormatPattern"!==this.ast.type)throw new TypeError("A message must be provided as a String or AST.");var a=Qe(e.formats,r);this.locale=Ze(n||[]);var l=o&&o.formatters||{getNumberFormat:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.NumberFormat).bind.apply(e,[void 0].concat(t)))},getDateTimeFormat:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.DateTimeFormat).bind.apply(e,[void 0].concat(t)))},getPluralRules:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.PluralRules).bind.apply(e,[void 0].concat(t)))}};this.pattern=new Oe(n,a,l).compile(this.ast)}return e.prototype.resolvedOptions=function(){return{locale:this.locale}},e.prototype.getAst=function(){return this.ast},e.defaultLocale="en",e.__parse=void 0,e.formats={number:{currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e}();Xe.__parse=Ue.parse,
|
|
17
|
+
*/const ie="…",ae="data:image/jpeg;base64,",le={label:"pass",minScore:.9},se={label:"average",minScore:.5},ce={label:"fail"},de={label:"error"},he=["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"];class pe{static i18n=null;static get PASS_THRESHOLD(){return.9}static get MS_DISPLAY_VALUE(){return"%10d ms"}static prepareReportResult(e){const t=JSON.parse(JSON.stringify(e));t.configSettings.locale||(t.configSettings.locale="en"),t.configSettings.formFactor||(t.configSettings.formFactor=t.configSettings.emulatedFormFactor);for(const e of Object.values(t.audits))if("not_applicable"!==e.scoreDisplayMode&&"not-applicable"!==e.scoreDisplayMode||(e.scoreDisplayMode="notApplicable"),e.details&&(void 0!==e.details.type&&"diagnostic"!==e.details.type||(e.details.type="debugdata"),"filmstrip"===e.details.type))for(const t of e.details.items)t.data.startsWith(ae)||(t.data=ae+t.data);if("object"!=typeof t.categories)throw new Error("No categories provided.");const n=new Map,[r]=t.lighthouseVersion.split(".").map(Number),o=t.categories.performance;if(r<9&&o){t.categoryGroups||(t.categoryGroups={}),t.categoryGroups.hidden={title:""};for(const e of o.auditRefs)e.group?["load-opportunities","diagnostics"].includes(e.group)&&delete e.group:e.group="hidden"}for(const e of Object.values(t.categories))e.auditRefs.forEach((e=>{e.relevantAudits&&e.relevantAudits.forEach((t=>{const r=n.get(t)||[];r.push(e),n.set(t,r)}))})),e.auditRefs.forEach((e=>{const r=t.audits[e.id];e.result=r,n.has(e.id)&&(e.relevantMetrics=n.get(e.id)),t.stackPacks&&t.stackPacks.forEach((t=>{t.descriptions[e.id]&&(e.stackPacks=e.stackPacks||[],e.stackPacks.push({title:t.title,iconDataURL:t.iconDataURL,description:t.descriptions[e.id]}))}))}));return t}static showAsPassed(e){switch(e.scoreDisplayMode){case"manual":case"notApplicable":return!0;case"error":case"informative":return!1;case"numeric":case"binary":default:return Number(e.score)>=le.minScore}}static calculateRating(e,t){if("manual"===t||"notApplicable"===t)return le.label;if("error"===t)return de.label;if(null===e)return ce.label;let n=ce.label;return e>=le.minScore?n=le.label:e>=se.minScore&&(n=se.label),n}static splitMarkdownCodeSpans(e){const t=[],n=e.split(/`(.*?)`/g);for(let e=0;e<n.length;e++){const r=n[e];if(!r)continue;const o=e%2!=0;t.push({isCode:o,text:r})}return t}static splitMarkdownLink(e){const t=[],n=e.split(/\[([^\]]+?)\]\((https?:\/\/.*?)\)/g);for(;n.length;){const[e,r,o]=n.splice(0,3);e&&t.push({isLink:!1,text:e}),r&&o&&t.push({isLink:!0,text:r,linkHref:o})}return t}static getURLDisplayName(e,t){const n=void 0!==(t=t||{numPathParts:void 0,preserveQuery:void 0,preserveHost:void 0}).numPathParts?t.numPathParts:2,r=void 0===t.preserveQuery||t.preserveQuery,o=t.preserveHost||!1;let i;if("about:"===e.protocol||"data:"===e.protocol)i=e.href;else{i=e.pathname;const t=i.split("/").filter((e=>e.length));n&&t.length>n&&(i=ie+t.slice(-1*n).join("/")),o&&(i=`${e.host}/${i.replace(/^\//,"")}`),r&&(i=`${i}${e.search}`)}if("data:"!==e.protocol&&(i=i.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g,"$1…"),i=i.replace(/([a-zA-Z0-9-_]{9})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9-_]{10,}/g,"$1…"),i=i.replace(/(\d{3})\d{6,}/g,"$1…"),i=i.replace(/\u2026+/g,ie),i.length>64&&i.includes("?")&&(i=i.replace(/\?([^=]*)(=)?.*/,"?$1$2…"),i.length>64&&(i=i.replace(/\?.*/,"?…")))),i.length>64){const e=i.lastIndexOf(".");i=e>=0?i.slice(0,63-(i.length-e))+`…${i.slice(e)}`:i.slice(0,63)+ie}return i}static parseURL(e){const t=new URL(e);return{file:pe.getURLDisplayName(t),hostname:t.hostname,origin:t.origin}}static createOrReturnURL(e){return e instanceof URL?e:new URL(e)}static getTld(e){const t=e.split(".").slice(-2);return he.includes(t[0])?`.${t.join(".")}`:`.${t[t.length-1]}`}static getRootDomain(e){const t=pe.createOrReturnURL(e).hostname,n=pe.getTld(t).split(".");return t.split(".").slice(-n.length).join(".")}static getEmulationDescriptions(e){let t,n,r;const o=e.throttling;switch(e.throttlingMethod){case"provided":r=n=t=pe.i18n.strings.throttlingProvided;break;case"devtools":{const{cpuSlowdownMultiplier:e,requestLatencyMs:i}=o;t=`${pe.i18n.formatNumber(e)}x slowdown (DevTools)`,n=`${pe.i18n.formatMilliseconds(i)} HTTP RTT, ${pe.i18n.formatKbps(o.downloadThroughputKbps)} down, ${pe.i18n.formatKbps(o.uploadThroughputKbps)} up (DevTools)`;r=(()=>562.5===i&&o.downloadThroughputKbps===1638.4*.9&&675===o.uploadThroughputKbps)()?pe.i18n.strings.runtimeSlow4g:pe.i18n.strings.runtimeCustom;break}case"simulate":{const{cpuSlowdownMultiplier:e,rttMs:i,throughputKbps:a}=o;t=`${pe.i18n.formatNumber(e)}x slowdown (Simulated)`,n=`${pe.i18n.formatMilliseconds(i)} TCP RTT, ${pe.i18n.formatKbps(a)} throughput (Simulated)`;r=(()=>150===i&&1638.4===a)()?pe.i18n.strings.runtimeSlow4g:pe.i18n.strings.runtimeCustom;break}default:r=t=n=pe.i18n.strings.runtimeUnknown}return{deviceEmulation:{mobile:pe.i18n.strings.runtimeMobileEmulation,desktop:pe.i18n.strings.runtimeDesktopEmulation}[e.formFactor]||pe.i18n.strings.runtimeNoEmulation,cpuThrottling:t,networkThrottling:n,summary:r}}static filterRelevantLines(e,t,n){if(0===t.length)return e.slice(0,2*n+1);const r=new Set;return(t=t.sort(((e,t)=>(e.lineNumber||0)-(t.lineNumber||0)))).forEach((({lineNumber:e})=>{let t=e-n,o=e+n;for(;t<1;)t++,o++;r.has(t-3-1)&&(t-=3);for(let e=t;e<=o;e++){const t=e;r.add(t)}})),e.filter((e=>r.has(e.lineNumber)))}static isPluginCategory(e){return e.startsWith("lighthouse-plugin-")}static shouldDisplayAsFraction(e){return"timespan"===e||"snapshot"===e}static calculateCategoryFraction(e){let t=0,n=0,r=0,o=0;for(const i of e.auditRefs){const e=pe.showAsPassed(i.result);"hidden"!==i.group&&"manual"!==i.result.scoreDisplayMode&&"notApplicable"!==i.result.scoreDisplayMode&&("informative"!==i.result.scoreDisplayMode?(++t,o+=i.weight,e&&n++):e||++r)}return{numPassed:n,numPassableAudits:t,numInformative:r,totalWeight:o}}}pe.reportJson=null;let ue=0;pe.getUniqueSuffix=()=>ue++,pe.resetUniqueSuffix=()=>{ue=0};pe.UIStrings={varianceDisclaimer:"Values are estimated and may vary. The [performance score is calculated](https://web.dev/performance-scoring/) directly from these metrics.",calculatorLink:"See calculator.",showRelevantAudits:"Show audits relevant to:",opportunityResourceColumnLabel:"Opportunity",opportunitySavingsColumnLabel:"Estimated Savings",errorMissingAuditInfo:"Report error: no audit information",errorLabel:"Error!",warningHeader:"Warnings: ",warningAuditsGroupTitle:"Passed audits but with warnings",passedAuditsGroupTitle:"Passed audits",notApplicableAuditsGroupTitle:"Not applicable",manualAuditsGroupTitle:"Additional items to manually check",toplevelWarningsMessage:"There were issues affecting this run of Lighthouse:",crcInitialNavigation:"Initial Navigation",crcLongestDurationLabel:"Maximum critical path latency:",snippetExpandButtonLabel:"Expand snippet",snippetCollapseButtonLabel:"Collapse snippet",lsPerformanceCategoryDescription:"[Lighthouse](https://developers.google.com/web/tools/lighthouse/) analysis of the current page on an emulated mobile network. Values are estimated and may vary.",labDataTitle:"Lab Data",thirdPartyResourcesLabel:"Show 3rd-party resources",viewTreemapLabel:"View Treemap",viewTraceLabel:"View Trace",viewOriginalTraceLabel:"View Original Trace",dropdownPrintSummary:"Print Summary",dropdownPrintExpanded:"Print Expanded",dropdownCopyJSON:"Copy JSON",dropdownSaveHTML:"Save as HTML",dropdownSaveJSON:"Save as JSON",dropdownViewer:"Open in Viewer",dropdownSaveGist:"Save as Gist",dropdownDarkTheme:"Toggle Dark Theme",runtimeSettingsDevice:"Device",runtimeSettingsNetworkThrottling:"Network throttling",runtimeSettingsCPUThrottling:"CPU throttling",runtimeSettingsUANetwork:"User agent (network)",runtimeSettingsBenchmark:"CPU/Memory Power",runtimeSettingsAxeVersion:"Axe version",footerIssue:"File an issue",runtimeNoEmulation:"No emulation",runtimeMobileEmulation:"Emulated Moto G4",runtimeDesktopEmulation:"Emulated Desktop",runtimeUnknown:"Unknown",runtimeSingleLoad:"Single page load",runtimeAnalysisWindow:"Initial page load",runtimeSingleLoadTooltip:"This data is taken from a single page load, as opposed to field data summarizing many sessions.",throttlingProvided:"Provided by environment",show:"Show",hide:"Hide",expandView:"Expand view",collapseView:"Collapse view",runtimeSlow4g:"Slow 4G throttling",runtimeCustom:"Custom throttling"};const ge=()=>D("svg",{width:"14",viewBox:"0 0 18 16",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 2C0 1.17 0.67 0.5 1.5 0.5C2.33 0.5 3 1.17 3 2C3 2.83 2.33 3.5 1.5 3.5C0.67 3.5 0 2.83 0 2ZM0 8C0 7.17 0.67 6.5 1.5 6.5C2.33 6.5 3 7.17 3 8C3 8.83 2.33 9.5 1.5 9.5C0.67 9.5 0 8.83 0 8ZM1.5 12.5C0.67 12.5 0 13.18 0 14C0 14.82 0.68 15.5 1.5 15.5C2.32 15.5 3 14.82 3 14C3 13.18 2.33 12.5 1.5 12.5ZM18 15H5V13H18V15ZM5 9H18V7H5V9ZM5 3V1H18V3H5Z",fill:"currentColor"})}),me=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a navigation report",children:D("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"})}),fe=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a timespan report",children:[D("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),D("path",{d:"m 8,4 v 4 l 4,1.9999998",stroke:"currentColor","stroke-width":"1.5"})]}),_e=()=>D("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img","aria-label":"Icon representing a snapshot report",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M 12.2038,12.2812 C 11.1212,13.3443 9.6372,14 8,14 7.81038,14 7.62281,13.9912 7.43768,13.974 L 10.3094,9 Z M 12.8925,11.4741 10.0207,6.5 H 13.811 C 13.9344,6.97943 14,7.48205 14,8 c 0,1.2947 -0.4101,2.4937 -1.1075,3.4741 z M 13.456,5.5 H 7.71135 L 9.6065,2.21749 C 11.3203,2.69259 12.7258,3.90911 13.456,5.5 Z M 8.5624,2.02601 C 8.3772,2.0088 8.1896,2 8,2 6.36282,2 4.8788,2.65572 3.79622,3.71885 L 5.69061,7.00002 Z M 3.10749,4.52594 C 2.4101,5.5063 2,6.70526 2,8 2,8.5179 2.06563,9.0206 2.18903,9.5 H 5.97927 Z M 2.54404,10.5 c 0.73017,1.5909 2.1357,2.8074 3.84949,3.2825 L 8.2887,10.5 Z M 16,8 c 0,4.4183 -3.5817,8 -8,8 C 3.58172,16 0,12.4183 0,8 0,3.58172 3.58172,0 8,0 c 4.4183,0 8,3.58172 8,8 z",fill:"currentColor"})}),ve=()=>D("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"currentColor",role:"img","aria-label":"Icon representing a close action",children:[D("path",{d:"M0 0h24v24H0V0z",fill:"none"}),D("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"})]}),be=()=>D("svg",{width:"15",height:"12",viewBox:"0 0 15 12",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.33317 2.00008H13.9998V0.666748H3.33317C2.59984 0.666748 1.99984 1.26675 1.99984 2.00008V9.33341H0.666504V11.3334H7.99984V9.33341H3.33317V2.00008ZM13.9998 3.33341H9.99984C9.63317 3.33341 9.33317 3.63341 9.33317 4.00008V10.6667C9.33317 11.0334 9.63317 11.3334 9.99984 11.3334H13.9998C14.3665 11.3334 14.6665 11.0334 14.6665 10.6667V4.00008C14.6665 3.63341 14.3665 3.33341 13.9998 3.33341ZM10.6665 9.33341H13.3332V4.66675H10.6665V9.33341Z",fill:"currentColor"})}),we=()=>D("svg",{width:"16",height:"11",viewBox:"0 0 16 11",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0.666687 3.26663L2.00002 4.59997C3.92002 2.67997 6.52669 1.87997 9.02002 2.18663L9.81335 0.399966C6.59335 -0.173367 3.16002 0.779966 0.666687 3.26663ZM10.6 0.599966C10.4867 0.599966 10.3867 0.659966 10.3267 0.753299L10.28 0.853299L6.82669 8.61996C6.72002 8.8133 6.65335 9.02663 6.65335 9.25996C6.65335 9.99996 7.25335 10.6 7.99335 10.6C8.63335 10.6 9.17335 10.1466 9.30002 9.53996L9.30669 9.51997L10.9334 0.933299C10.9334 0.746633 10.7867 0.599966 10.6 0.599966ZM15.3334 3.26663L14 4.59997C13.1867 3.78663 12.2534 3.17997 11.2534 2.76663L11.6067 0.886633C12.9667 1.38663 14.24 2.1733 15.3334 3.26663ZM11.3334 7.26663L12.6667 5.9333C12.1334 5.39997 11.5334 4.98663 10.8934 4.6733L10.5267 6.61997C10.8067 6.79997 11.08 7.0133 11.3334 7.26663ZM4.66669 7.26663L3.33335 5.9333C4.67335 4.5933 6.45335 3.95997 8.20669 4.0133L7.35335 5.9333C6.37335 6.0733 5.42002 6.5133 4.66669 7.26663Z",fill:"currentColor"})}),ye=()=>D("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",role:"img",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5 7.16667V5.5H13.8333V3.83333C13.8333 2.91667 13.0833 2.16667 12.1667 2.16667H10.5V0.5H8.83333V2.16667H7.16667V0.5H5.5V2.16667H3.83333C2.91667 2.16667 2.16667 2.91667 2.16667 3.83333V5.5H0.5V7.16667H2.16667V8.83333H0.5V10.5H2.16667V12.1667C2.16667 13.0833 2.91667 13.8333 3.83333 13.8333H5.5V15.5H7.16667V13.8333H8.83333V15.5H10.5V13.8333H12.1667C13.0833 13.8333 13.8333 13.0833 13.8333 12.1667V10.5H15.5V8.83333H13.8333V7.16667H15.5ZM10.5 5.5H5.5V10.5H10.5V5.5ZM3.83333 12.1667H12.1667V3.83333H3.83333V12.1667Z",fill:"currentColor"})}),xe=()=>D("svg",{viewBox:"0 0 18 12",width:"18",height:"12",role:"img",children:[D("rect",{width:"18",height:"2",fill:"currentColor"}),D("rect",{y:"5",width:"18",height:"2",fill:"currentColor"}),D("rect",{y:"10",width:"18",height:"2",fill:"currentColor"})]}),ke=()=>D("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:D("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13 7C13 10.3137 10.3137 13 7 13C3.68629 13 1 10.3137 1 7C1 3.68629 3.68629 1 7 1C10.3137 1 13 3.68629 13 7ZM14 7C14 10.866 10.866 14 7 14C3.13401 14 0 10.866 0 7C0 3.13401 3.13401 0 7 0C10.866 0 14 3.13401 14 7ZM7.66658 11H6.33325V9.66667H7.66658V11ZM4.33325 5.66667C4.33325 4.19333 5.52659 3 6.99992 3C8.47325 3 9.66658 4.19333 9.66658 5.66667C9.66658 6.52194 9.1399 6.98221 8.62709 7.43036C8.1406 7.85551 7.66658 8.26975 7.66658 9H6.33325C6.33325 7.78582 6.96133 7.30439 7.51355 6.88112C7.94674 6.54907 8.33325 6.25281 8.33325 5.66667C8.33325 4.93333 7.73325 4.33333 6.99992 4.33333C6.26658 4.33333 5.66658 4.93333 5.66658 5.66667H4.33325Z",fill:"currentColor"})}),Ae=H(void 0),Ce=H({});function Ee(e){return new URLSearchParams(location.hash.replace("#","?")).get(e)}function Se(...e){const t=[];for(const n of e){if(!n)continue;if("string"==typeof n){t.push(n);continue}const e=Object.entries(n).filter((([e,t])=>t)).map((([e])=>e));t.push(...e)}return t.join(" ")}function ze(e,t){switch(e){case"navigation":return t.navigationDescription;case"timespan":return t.timespanDescription;case"snapshot":return t.snapshotDescription}}function Me(){const e=Y(Ae);if(!e)throw Error("useFlowResult must be called in the FlowResultContext");return e}function Le(){const e=Me(),[t,n]=function(...e){const[t,n]=q(e.map(Ee));return K((()=>{function r(){const r=e.map(Ee);r.every(((e,n)=>e===t[n]))||n(r)}return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)}),[t]),t}("index","anchor");return Q((()=>{if(!t)return null;const r=Number(t);if(!Number.isFinite(r))return console.warn(`Invalid hash index: ${t}`),null;const o=e.steps[r];return o?{currentLhr:o.lhr,index:r,anchor:n}:(console.warn(`No flow step at index ${r}`),null)}),[t,e,n])}function Ne(e,t){const n=J(null);return Z((()=>{if(!n.current)return;const t=e();return n.current.append(t),()=>{n.current?.contains(t)&&n.current.removeChild(t)}}),t),n}const Fe=()=>D("div",{className:"Separator",role:"separator"}),He=({mode:e})=>D(g,{children:["navigation"===e&&D(me,{}),"timespan"===e&&D(fe,{}),"snapshot"===e&&D(_e,{})]}),Te=({mode:e})=>D("div",{className:"FlowSegment",children:[D("div",{className:"FlowSegment__top-line"}),e&&D(He,{mode:e}),D("div",{className:"FlowSegment__bottom-line"})]}),De=({frames:e,width:t,height:n})=>{const[r,o]=q(0),i=r%e.length;return K((()=>{const t=setInterval((()=>o((t=>(t+1)%e.length))),500);return()=>clearInterval(t)}),[e.length]),D("img",{className:"FlowStepThumbnail","data-testid":"FlowStepAnimatedThumbnail",src:e[i].data,style:{width:t,height:n},alt:"Animated screenshots of a page tested by Lighthouse"})},Pe=({lhr:e,width:t,height:n})=>{const r=function(e){const t=e.audits["full-page-screenshot"];return t?.details&&"full-page-screenshot"===t.details.type&&t.details||null}(e),o=function(e){const t=e.audits["screenshot-thumbnails"];if(!t)return;return t.details&&"filmstrip"===t.details.type&&t.details.items||void 0}(e),i=function(e){const{width:t,height:n}=e.configSettings.screenEmulation;return{width:t,height:n}}(e);if(t&&void 0===n?n=i.height*t/i.width:n&&void 0===t&&(t=i.width*n/i.height),!t||!n)return console.warn(new Error("FlowStepThumbnail requested without any dimensions").stack),D(g,{});let a;if(o?.length){if(a=o[o.length-1].data,"timespan"===e.gatherMode)return D(De,{frames:o,width:t,height:n})}else a=r?.screenshot.data;return D(g,{children:a&&D("img",{className:"FlowStepThumbnail",src:a,style:{width:t,height:n},alt:"Screenshot of a page tested by Lighthouse"})})};var Re,Ue=function(){function e(t,n,r,o){this.message=t,this.expected=n,this.found=r,this.location=o,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function n(){this.constructor=e}n.prototype=t.prototype,e.prototype=new n}(e,Error),e.buildMessage=function(e,t){var n={literal:function(e){return'"'+o(e.text)+'"'},class:function(e){var t,n="";for(t=0;t<e.parts.length;t++)n+=e.parts[t]instanceof Array?i(e.parts[t][0])+"-"+i(e.parts[t][1]):i(e.parts[t]);return"["+(e.inverted?"^":"")+n+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function r(e){return e.charCodeAt(0).toString(16).toUpperCase()}function o(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+r(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+r(e)}))}function i(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+r(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+r(e)}))}return"Expected "+function(e){var t,r,o,i=new Array(e.length);for(t=0;t<e.length;t++)i[t]=(o=e[t],n[o.type](o));if(i.sort(),i.length>0){for(t=1,r=1;t<i.length;t++)i[t-1]!==i[t]&&(i[r]=i[t],r++);i.length=r}switch(i.length){case 1:return i[0];case 2:return i[0]+" or "+i[1];default:return i.slice(0,-1).join(", ")+", or "+i[i.length-1]}}(e)+" but "+function(e){return e?'"'+o(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,n){n=void 0!==n?n:{};var r,o={},i={start:ce},a=ce,l=function(e){return e.join("")},s=re("{",!1),c=",",d=re(",",!1),h=re("}",!1),p="number",u=re("number",!1),g="date",m=re("date",!1),f="time",_=re("time",!1),v="plural",b=re("plural",!1),w="selectordinal",y=re("selectordinal",!1),x="select",k=re("select",!1),A=re("=",!1),C="offset:",E=re("offset:",!1),S=ie("whitespace"),z=/^[ \t\n\r]/,M=oe([" ","\t","\n","\r"],!1,!1),L=ie("optionalWhitespace"),N=/^[0-9]/,F=oe([["0","9"]],!1,!1),H=/^[0-9a-f]/i,T=oe([["0","9"],["a","f"]],!1,!0),D=re("0",!1),P=/^[1-9]/,R=oe([["1","9"]],!1,!1),U="'",I=re("'",!1),O=/^[ \t\n\r,.+={}#]/,B=oe([" ","\t","\n","\r",",",".","+","=","{","}","#"],!1,!1),V={type:"any"},$=/^[^{}\\\0-\x1F\x7F \t\n\r]/,j=oe(["{","}","\\",["\0",""],""," ","\t","\n","\r"],!0,!1),G=re("\\\\",!1),W=re("\\#",!1),q=re("\\{",!1),K=re("\\}",!1),Z=re("\\u",!1),J=0,Q=0,Y=[{line:1,column:1}],X=0,ee=[],te=0;if("startRule"in n){if(!(n.startRule in i))throw new Error("Can't start parsing from rule \""+n.startRule+'".');a=i[n.startRule]}function ne(){return le(Q,J)}function re(e,t){return{type:"literal",text:e,ignoreCase:t}}function oe(e,t,n){return{type:"class",parts:e,inverted:t,ignoreCase:n}}function ie(e){return{type:"other",description:e}}function ae(e){var n,r=Y[e];if(r)return r;for(n=e-1;!Y[n];)n--;for(r={line:(r=Y[n]).line,column:r.column};n<e;)10===t.charCodeAt(n)?(r.line++,r.column=1):r.column++,n++;return Y[e]=r,r}function le(e,t){var n=ae(e),r=ae(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function se(e){J<X||(J>X&&(X=J,ee=[]),ee.push(e))}function ce(){return de()}function de(){var e,t,n;for(e=J,t=[],n=he();n!==o;)t.push(n),n=he();return t!==o&&(Q=e,t={type:"messageFormatPattern",elements:t,location:ne()}),e=t}function he(){var e;return(e=function(){var e,n;e=J,(n=function(){var e,n,r,i,a,l;e=J,n=[],r=J,(i=me())!==o&&(a=xe())!==o&&(l=me())!==o?r=i=[i,a,l]:(J=r,r=o);if(r!==o)for(;r!==o;)n.push(r),r=J,(i=me())!==o&&(a=xe())!==o&&(l=me())!==o?r=i=[i,a,l]:(J=r,r=o);else n=o;n!==o&&(Q=e,n=n.reduce((function(e,t){return e.concat(t)}),[]).join(""));(e=n)===o&&(e=J,e=(n=ge())!==o?t.substring(e,J):n);return e}())!==o&&(Q=e,n={type:"messageTextElement",value:n,location:ne()});return e=n}())===o&&(e=function(){var e,n,r,i,a,A,C;e=J,123===t.charCodeAt(J)?(n="{",J++):(n=o,0===te&&se(s));n!==o&&me()!==o&&(r=function(){var e,t,n;if((e=ve())===o){for(e=J,t=[],n=be();n!==o;)t.push(n),n=be();t!==o&&(Q=e,t=l(t)),e=t}return e}())!==o&&me()!==o?(i=J,44===t.charCodeAt(J)?(a=c,J++):(a=o,0===te&&se(d)),a!==o&&(A=me())!==o&&(C=function(){var e;(e=function(){var e,n,r,i,a,l;e=J,t.substr(J,6)===p?(n=p,J+=6):(n=o,0===te&&se(u));n===o&&(t.substr(J,4)===g?(n=g,J+=4):(n=o,0===te&&se(m)),n===o&&(t.substr(J,4)===f?(n=f,J+=4):(n=o,0===te&&se(_))));n!==o&&me()!==o?(r=J,44===t.charCodeAt(J)?(i=c,J++):(i=o,0===te&&se(d)),i!==o&&(a=me())!==o&&(l=xe())!==o?r=i=[i,a,l]:(J=r,r=o),r===o&&(r=null),r!==o?(Q=e,e=n={type:n+"Format",style:(s=r)&&s[2],location:ne()}):(J=e,e=o)):(J=e,e=o);var s;return e}())===o&&(e=function(){var e,n,r,i;e=J,t.substr(J,6)===v?(n=v,J+=6):(n=o,0===te&&se(b));n!==o&&me()!==o?(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o&&me()!==o&&(i=ue())!==o?(Q=e,e=n={type:(a=i).type,ordinal:!1,offset:a.offset||0,options:a.options,location:ne()}):(J=e,e=o)):(J=e,e=o);var a;return e}())===o&&(e=function(){var e,n,r,i;e=J,t.substr(J,13)===w?(n=w,J+=13):(n=o,0===te&&se(y));n!==o&&me()!==o?(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o&&me()!==o&&(i=ue())!==o?(Q=e,e=n={type:(a=i).type,ordinal:!0,offset:a.offset||0,options:a.options,location:ne()}):(J=e,e=o)):(J=e,e=o);var a;return e}())===o&&(e=function(){var e,n,r,i,a;e=J,t.substr(J,6)===x?(n=x,J+=6):(n=o,0===te&&se(k));if(n!==o)if(me()!==o)if(44===t.charCodeAt(J)?(r=c,J++):(r=o,0===te&&se(d)),r!==o)if(me()!==o){if(i=[],(a=pe())!==o)for(;a!==o;)i.push(a),a=pe();else i=o;i!==o?(Q=e,e=n=function(e){return{type:"selectFormat",options:e,location:ne()}}(i)):(J=e,e=o)}else J=e,e=o;else J=e,e=o;else J=e,e=o;else J=e,e=o;return e}());return e}())!==o?i=a=[a,A,C]:(J=i,i=o),i===o&&(i=null),i!==o&&(a=me())!==o?(125===t.charCodeAt(J)?(A="}",J++):(A=o,0===te&&se(h)),A!==o?(Q=e,e=n={type:"argumentElement",id:r,format:(E=i)&&E[2],location:ne()}):(J=e,e=o)):(J=e,e=o)):(J=e,e=o);var E;return e}()),e}function pe(){var e,n,r,i,a;return e=J,me()!==o&&(n=function(){var e,n,r,i;return e=J,n=J,61===t.charCodeAt(J)?(r="=",J++):(r=o,0===te&&se(A)),r!==o&&(i=ve())!==o?n=r=[r,i]:(J=n,n=o),(e=n!==o?t.substring(e,J):n)===o&&(e=xe()),e}())!==o&&me()!==o?(123===t.charCodeAt(J)?(r="{",J++):(r=o,0===te&&se(s)),r!==o&&(i=de())!==o?(125===t.charCodeAt(J)?(a="}",J++):(a=o,0===te&&se(h)),a!==o?(Q=e,e={type:"optionalFormatPattern",selector:n,value:i,location:ne()}):(J=e,e=o)):(J=e,e=o)):(J=e,e=o),e}function ue(){var e,n,r,i;if(e=J,(n=function(){var e,n,r;return e=J,t.substr(J,7)===C?(n=C,J+=7):(n=o,0===te&&se(E)),n!==o&&me()!==o&&(r=ve())!==o?(Q=e,e=n=r):(J=e,e=o),e}())===o&&(n=null),n!==o)if(me()!==o){if(r=[],(i=pe())!==o)for(;i!==o;)r.push(i),i=pe();else r=o;r!==o?(Q=e,e=n=function(e,t){return{type:"pluralFormat",offset:e,options:t,location:ne()}}(n,r)):(J=e,e=o)}else J=e,e=o;else J=e,e=o;return e}function ge(){var e,n;if(te++,e=[],z.test(t.charAt(J))?(n=t.charAt(J),J++):(n=o,0===te&&se(M)),n!==o)for(;n!==o;)e.push(n),z.test(t.charAt(J))?(n=t.charAt(J),J++):(n=o,0===te&&se(M));else e=o;return te--,e===o&&(n=o,0===te&&se(S)),e}function me(){var e,n,r;for(te++,e=J,n=[],r=ge();r!==o;)n.push(r),r=ge();return e=n!==o?t.substring(e,J):n,te--,e===o&&(n=o,0===te&&se(L)),e}function fe(){var e;return N.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(F)),e}function _e(){var e;return H.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(T)),e}function ve(){var e,n,r,i,a,l;if(e=J,48===t.charCodeAt(J)?(n="0",J++):(n=o,0===te&&se(D)),n===o){if(n=J,r=J,P.test(t.charAt(J))?(i=t.charAt(J),J++):(i=o,0===te&&se(R)),i!==o){for(a=[],l=fe();l!==o;)a.push(l),l=fe();a!==o?r=i=[i,a]:(J=r,r=o)}else J=r,r=o;n=r!==o?t.substring(n,J):r}return n!==o&&(Q=e,n=parseInt(n,10)),e=n}function be(){var e,n,r;return e=J,n=J,te++,39===t.charCodeAt(J)?(r=U,J++):(r=o,0===te&&se(I)),r===o&&(O.test(t.charAt(J))?(r=t.charAt(J),J++):(r=o,0===te&&se(B))),te--,r===o?n=void 0:(J=n,n=o),n!==o?(t.length>J?(r=t.charAt(J),J++):(r=o,0===te&&se(V)),r!==o?(Q=e,e=n=r):(J=e,e=o)):(J=e,e=o),e===o&&(e=J,39===t.charCodeAt(J)?(n=U,J++):(n=o,0===te&&se(I)),n!==o&&(r=function(){var e;O.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(B));e===o&&(e=we());return e}())!==o?(Q=e,e=n=r):(J=e,e=o)),e}function we(){var e;return 39===t.charCodeAt(J)?(e=U,J++):(e=o,0===te&&se(I)),e}function ye(){var e,n,r,i,a,l,s,c,d;return e=J,39===t.charCodeAt(J)?(n=U,J++):(n=o,0===te&&se(I)),n!==o&&(r=we())!==o?(Q=e,e=n=r):(J=e,e=o),e===o&&($.test(t.charAt(J))?(e=t.charAt(J),J++):(e=o,0===te&&se(j)),e===o&&(e=J,"\\\\"===t.substr(J,2)?(n="\\\\",J+=2):(n=o,0===te&&se(G)),n!==o&&(Q=e,n="\\"),(e=n)===o&&(e=J,"\\#"===t.substr(J,2)?(n="\\#",J+=2):(n=o,0===te&&se(W)),n!==o&&(Q=e,n="\\#"),(e=n)===o&&(e=J,"\\{"===t.substr(J,2)?(n="\\{",J+=2):(n=o,0===te&&se(q)),n!==o&&(Q=e,n="{"),(e=n)===o&&(e=J,"\\}"===t.substr(J,2)?(n="\\}",J+=2):(n=o,0===te&&se(K)),n!==o&&(Q=e,n="}"),(e=n)===o&&(e=J,"\\u"===t.substr(J,2)?(n="\\u",J+=2):(n=o,0===te&&se(Z)),n!==o?(r=J,i=J,(a=_e())!==o&&(l=_e())!==o&&(s=_e())!==o&&(c=_e())!==o?i=a=[a,l,s,c]:(J=i,i=o),(r=i!==o?t.substring(r,J):i)!==o?(Q=e,d=r,e=n=String.fromCharCode(parseInt(d,16))):(J=e,e=o)):(J=e,e=o))))))),e}function xe(){var e,t,n;if(e=J,t=[],(n=ye())!==o)for(;n!==o;)t.push(n),n=ye();else t=o;return t!==o&&(Q=e,t=l(t)),e=t}if((r=a())!==o&&J===t.length)return r;throw r!==o&&J<t.length&&se({type:"end"}),function(t,n,r){return new e(e.buildMessage(t,n),t,n,r)}(ee,X<t.length?t.charAt(X):null,X<t.length?le(X,X+1):le(X,X))}}}(),Ie=(Re=function(e,t){return(Re=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}Re(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),Oe=function(){function e(e,t,n){this.locales=[],this.formats={number:{},date:{},time:{}},this.pluralNumberFormat=null,this.currentPlural=null,this.pluralStack=[],this.locales=e,this.formats=t,this.formatters=n}return e.prototype.compile=function(e){return this.pluralStack=[],this.currentPlural=null,this.pluralNumberFormat=null,this.compileMessage(e)},e.prototype.compileMessage=function(e){var t=this;if(!e||"messageFormatPattern"!==e.type)throw new Error('Message AST is not of type: "messageFormatPattern"');var n=e.elements,r=n.filter((function(e){return"messageTextElement"===e.type||"argumentElement"===e.type})).map((function(e){return"messageTextElement"===e.type?t.compileMessageText(e):t.compileArgument(e)}));if(r.length!==n.length)throw new Error("Message element does not have a valid type");return r},e.prototype.compileMessageText=function(e){return this.currentPlural&&/(^|[^\\])#/g.test(e.value)?(this.pluralNumberFormat||(this.pluralNumberFormat=new Intl.NumberFormat(this.locales)),new je(this.currentPlural.id,this.currentPlural.format.offset,this.pluralNumberFormat,e.value)):e.value.replace(/\\#/g,"#")},e.prototype.compileArgument=function(e){var t=e.format,n=e.id,r=this.formatters;if(!t)return new Ve(n);var o=this.formats,i=this.locales;switch(t.type){case"numberFormat":return{id:n,format:r.getNumberFormat(i,o.number[t.style]).format};case"dateFormat":return{id:n,format:r.getDateTimeFormat(i,o.date[t.style]).format};case"timeFormat":return{id:n,format:r.getDateTimeFormat(i,o.time[t.style]).format};case"pluralFormat":return new $e(n,t.offset,this.compileOptions(e),r.getPluralRules(i,{type:t.ordinal?"ordinal":"cardinal"}));case"selectFormat":return new Ge(n,this.compileOptions(e));default:throw new Error("Message element does not have a valid format type")}},e.prototype.compileOptions=function(e){var t=this,n=e.format,r=n.options;this.pluralStack.push(this.currentPlural),this.currentPlural="pluralFormat"===n.type?e:null;var o=r.reduce((function(e,n){return e[n.selector]=t.compileMessage(n.value),e}),{});return this.currentPlural=this.pluralStack.pop(),o},e}(),Be=function(e){this.id=e},Ve=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ie(t,e),t.prototype.format=function(e){return e||"number"==typeof e?"string"==typeof e?e:String(e):""},t}(Be),$e=function(){function e(e,t,n,r){this.id=e,this.offset=t,this.options=n,this.pluralRules=r}return e.prototype.getOption=function(e){var t=this.options;return t["="+e]||t[this.pluralRules.select(e-this.offset)]||t.other},e}(),je=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i.offset=n,i.numberFormat=r,i.string=o,i}return Ie(t,e),t.prototype.format=function(e){var t=this.numberFormat.format(e-this.offset);return this.string.replace(/(^|[^\\])#/g,"$1"+t).replace(/\\#/g,"#")},t}(Be),Ge=function(){function e(e,t){this.id=e,this.options=t}return e.prototype.getOption=function(e){var t=this.options;return t[e]||t.other},e}();function We(e){return!!e.options}var qe=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ke=function(){return(Ke=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function Ze(e){"string"==typeof e&&(e=[e]);try{return Intl.NumberFormat.supportedLocalesOf(e,{localeMatcher:"best fit"})[0]}catch(e){return Xe.defaultLocale}}function Je(e,t){for(var n="",r=0,o=e;r<o.length;r++){var i=o[r];if("string"!=typeof i){var a=i.id;if(!t||!(a in t))throw new Ye("A value must be provided for: "+a,a);var l=t[a];We(i)?n+=Je(i.getOption(l),t):n+=i.format(l)}else n+=i}return n}function Qe(e,t){return t?Object.keys(e).reduce((function(n,r){var o,i;return n[r]=(o=e[r],(i=t[r])?Ke({},o||{},i||{},Object.keys(o).reduce((function(e,t){return e[t]=Ke({},o[t],i[t]||{}),e}),{})):o),n}),Ke({},e)):e}var Ye=function(e){function t(t,n){var r=e.call(this,t)||this;return r.variableId=n,r}return qe(t,e),t}(Error);var Xe=function(){function e(t,n,r,o){var i=this;if(void 0===n&&(n=e.defaultLocale),this.format=function(e){try{return Je(i.pattern,e)}catch(e){throw e.variableId?new Error("The intl string context variable '"+e.variableId+"' was not provided to the string '"+i.message+"'"):e}},"string"==typeof t){if(!e.__parse)throw new TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");this.ast=e.__parse(t)}else this.ast=t;if(this.message=t,!this.ast||"messageFormatPattern"!==this.ast.type)throw new TypeError("A message must be provided as a String or AST.");var a=Qe(e.formats,r);this.locale=Ze(n||[]);var l=o&&o.formatters||{getNumberFormat:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.NumberFormat).bind.apply(e,[void 0].concat(t)))},getDateTimeFormat:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.DateTimeFormat).bind.apply(e,[void 0].concat(t)))},getPluralRules:function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return new((e=Intl.PluralRules).bind.apply(e,[void 0].concat(t)))}};this.pattern=new Oe(n,a,l).compile(this.ast)}return e.prototype.resolvedOptions=function(){return{locale:this.locale}},e.prototype.getAst=function(){return this.ast},e.defaultLocale="en",e.__parse=void 0,e.formats={number:{currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}},e}();Xe.__parse=Ue.parse,
|
|
18
18
|
/**
|
|
19
19
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
20
20
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
21
21
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
22
22
|
*/
|
|
23
|
-
["ar-XB.json","ar.json","bg.json","ca.json","cs.json","da.json","de.json","el.json","en-GB.json","en-US.
|
|
23
|
+
["ar-XB.json","ar.json","bg.json","ca.json","cs.json","da.json","de.json","el.json","en-GB.json","en-US.json","en-XA.json","en-XL.json","es-419.json","es.json","fi.json","fil.json","fr.json","he.json","hi.json","hr.json","hu.json","id.json","it.json","ja.json","ko.json","lt.json","lv.json","nl.json","no.json","pl.json","pt-PT.json","pt.json","ro.json","ru.json","sk.json","sl.json","sr-Latn.json","sr.json","sv.json","ta.json","te.json","th.json","tr.json","uk.json","vi.json","zh-HK.json","zh-TW.json","zh.json"].filter((e=>e.endsWith(".json")&&!e.endsWith(".ctc.json"))).map((e=>e.replace(".json",""))).sort();const et={number:{bytes:{maximumFractionDigits:0},milliseconds:{maximumFractionDigits:0},seconds:{minimumFractionDigits:1,maximumFractionDigits:1},extendedPercent:{maximumFractionDigits:2,style:"percent"}}};function tt(e,t=new Map){for(const n of e)if("argumentElement"===n.type&&(t.set(n.id,n),n.format&&"pluralFormat"===n.format.type))for(const e of n.format.options)tt(e.value.elements,t);return t}function nt(e,t={},n){const r=[...tt(e.getAst().elements).values()],o={};for(const{id:e,format:i}of r){if(e&&e in t==!1)throw new Error(`ICU Message "${n}" contains a value reference ("${e}") that wasn't provided`);const r=t[e];if(i&&"numberFormat"===i.type){if("number"!=typeof r)throw new Error(`ICU Message "${n}" contains a numeric reference ("${e}") but provided value was not a number`);"milliseconds"===i.style?o[e]=10*Math.round(r/10):"seconds"===i.style&&"timeInMs"===e?o[e]=Math.round(r/100)/10:"bytes"===i.style?o[e]=r/1024:o[e]=r}else o[e]=r}for(const e of Object.keys(t))if(!(e in o)){if("errorCode"!==e)throw new Error(`Provided value "${e}" does not match any placeholder in ICU message "${n}"`);o.errorCode=t.errorCode}return o}
|
|
24
24
|
/**
|
|
25
25
|
* @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.
|
|
26
26
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
@@ -36,7 +36,7 @@ const rt=1024,ot=1048576;class it{constructor(e,t){"en-XA"===e&&(e="de"),this._l
|
|
|
36
36
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
37
37
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
38
38
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
39
|
-
*/function ct(){const e=Me(),t=e.steps[0].lhr,n=t.configSettings.locale;return e.steps.some((e=>e.lhr.configSettings.locale!==n))&&console.warn("LHRs have inconsistent locales"),{locale:n,lhrStrings:t.i18n.rendererFormattedStrings}}function dt(){return Y(st)}function ht(){return dt().strings}function pt(){const{locale:e}=ct();return(t,n)=>function(e,t,n){if(!e.includes("{")&&void 0===t)return e;const r=new Xe(e,"en-XA"===n||"en-XL"===n?"de-DE":n,et),o=nt(r,t,e);return r.format(o)}(t,n,e)}const ut=({children:e})=>{const{locale:t,lhrStrings:n}=ct(),r=Q((()=>{const e=new it(t,{...pe.UIStrings,...n,...at,...lt[t]});return pe.i18n=e,e}),[t,n]);return D(st.Provider,{value:r,children:e})},gt=({href:e,label:t,mode:n,isCurrent:r})=>D("a",{className:
|
|
39
|
+
*/function ct(){const e=Me(),t=e.steps[0].lhr,n=t.configSettings.locale;return e.steps.some((e=>e.lhr.configSettings.locale!==n))&&console.warn("LHRs have inconsistent locales"),{locale:n,lhrStrings:t.i18n.rendererFormattedStrings}}function dt(){return Y(st)}function ht(){return dt().strings}function pt(){const{locale:e}=ct();return(t,n)=>function(e,t,n){if(!e.includes("{")&&void 0===t)return e;const r=new Xe(e,"en-XA"===n||"en-XL"===n?"de-DE":n,et),o=nt(r,t,e);return r.format(o)}(t,n,e)}const ut=({children:e})=>{const{locale:t,lhrStrings:n}=ct(),r=Q((()=>{const e=new it(t,{...pe.UIStrings,...n,...at,...lt[t]});return pe.i18n=e,e}),[t,n]);return D(st.Provider,{value:r,children:e})},gt=({href:e,label:t,mode:n,isCurrent:r})=>D("a",{className:Se("SidebarFlowStep",{"Sidebar--current":r}),href:e,children:[D("div",{children:D(Te,{mode:n})}),D("div",{className:`SidebarFlowStep__label SidebarFlowStep__label--${n}`,children:t})]}),mt=()=>D("div",{className:"SidebarFlowSeparator",children:[D(Te,{}),D(Fe,{}),D(Te,{})]}),ft=()=>{const e=Me(),t=Le();return D("div",{className:"SidebarFlow",children:e.steps.map(((e,n)=>{const{lhr:r,name:o}=e;return D(g,{children:["navigation"===r.gatherMode&&0!==n?D(mt,{}):void 0,D(gt,{mode:r.gatherMode,href:`#index=${n}`,label:o,isCurrent:n===t?.index},r.fetchTime)]})}))})},_t=()=>{const e=Le(),t=ht();return D("a",{href:"#",className:Se("SidebarSummary",{"Sidebar--current":null===e}),"data-testid":"SidebarSummary",children:[D("div",{className:"SidebarSummary__icon",children:D(ge,{})}),D("div",{className:"SidebarSummary__label",children:t.summary})]})},vt=({settings:e})=>{const t=ht(),n=pe.getEmulationDescriptions(e);return D("div",{className:"SidebarRuntimeSettings",children:[D("div",{className:"SidebarRuntimeSettings__item",title:t.runtimeSettingsDevice,children:[D("div",{className:"SidebarRuntimeSettings__item--icon",children:D(be,{})}),n.deviceEmulation]}),D("div",{className:"SidebarRuntimeSettings__item",title:t.runtimeSettingsNetworkThrottling,children:[D("div",{className:"SidebarRuntimeSettings__item--icon",children:D(we,{})}),n.summary]}),D("div",{className:"SidebarRuntimeSettings__item",title:t.runtimeSettingsCPUThrottling,children:[D("div",{className:"SidebarRuntimeSettings__item--icon",children:D(ye,{})}),`${e.throttling.cpuSlowdownMultiplier}x slowdown`]})]})},bt=({title:e,date:t})=>{const n=dt();return D("div",{className:"SidebarHeader",children:[D("div",{className:"SidebarHeader__title",children:e}),D("div",{className:"SidebarHeader__date",children:n.formatDateTime(t)})]})},wt=()=>{const e=Me(),t=e.steps[0].lhr;return D("div",{className:"Sidebar",children:[D(bt,{title:e.name,date:t.fetchTime}),D(Fe,{}),D(_t,{}),D(Fe,{}),D(ft,{}),D(Fe,{}),D(vt,{settings:t.configSettings})]})};
|
|
40
40
|
/**
|
|
41
41
|
* @license
|
|
42
42
|
* Copyright 2017 The Lighthouse Authors. All Rights Reserved.
|
|
@@ -53,7 +53,7 @@ const rt=1024,ot=1048576;class it{constructor(e,t){"en-XA"===e&&(e="de"),this._l
|
|
|
53
53
|
* See the License for the specific language governing permissions and
|
|
54
54
|
* limitations under the License.
|
|
55
55
|
*/
|
|
56
|
-
class yt{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",this._componentCache=new Map,this.rootEl=t}createElement(e,t){const n=this._document.createElement(e);if(t)for(const e of t.split(/\s+/))e&&n.classList.add(e);return n}createElementNS(e,t,n){const r=this._document.createElementNS(e,t);if(n)for(const e of n.split(/\s+/))e&&r.classList.add(e);return r}createFragment(){return this._document.createDocumentFragment()}createTextNode(e){return this._document.createTextNode(e)}createChildOf(e,t,n){const r=this.createElement(t,n);return e.append(r),r}createComponent(e){let t=this._componentCache.get(e);if(t){const e=t.cloneNode(!0);return this.findAll("style",e).forEach((e=>e.remove())),e}t=function(e,t){switch(t){case"3pFilter":return function(e){const 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);const r=e.createElement("div","lh-3p-filter"),o=e.createElement("label","lh-3p-filter-label"),i=e.createElement("input","lh-3p-filter-input");i.setAttribute("type","checkbox"),i.setAttribute("checked","");const a=e.createElement("span","lh-3p-ui-string");a.append("Show 3rd party resources");const l=e.createElement("span","lh-3p-filter-count");return o.append(" ",i," ",a," (",l,") "),r.append(" ",o," "),t.append(r),t}(e);case"audit":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit"),r=e.createElement("details","lh-expandable-details"),o=e.createElement("summary"),i=e.createElement("div","lh-audit__header lh-expandable-details__summary"),a=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," ");const d=e.createElement("div","lh-chevron-container");i.append(" ",a," ",l," ",d," "),o.append(" ",i," ");const h=e.createElement("div","lh-audit__description"),p=e.createElement("div","lh-audit__stackpacks");return r.append(" ",o," ",h," ",p," "),n.append(" ",r," "),t.append(n),t}(e);case"categoryHeader":return function(e){const 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");const o=e.createElement("div","lh-category-header__description");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"chevron":return function(e){const t=e.createFragment(),n=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-chevron");n.setAttribute("viewBox","0 0 100 100");const r=e.createElementNS("http://www.w3.org/2000/svg","g","lh-chevron__lines"),o=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-left");o.setAttribute("d","M10 50h40");const i=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-right");return i.setAttribute("d","M90 50H50"),r.append(" ",o," ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"clump":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit-group"),r=e.createElement("details","lh-clump"),o=e.createElement("summary"),i=e.createElement("div","lh-audit-group__summary"),a=e.createElement("div","lh-audit-group__header"),l=e.createElement("span","lh-audit-group__title"),s=e.createElement("span","lh-audit-group__itemcount");a.append(" ",l," ",s," "," "," ");const 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," "),i.append(" ",a," ",c," "),o.append(" ",i," "),r.append(" ",o," "),n.append(" "," ",r," "),t.append(n),t}(e);case"crc":return function(e){const 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 ');const o=e.createElement("div"),i=e.createElement("div","lh-crc__summary-value"),a=e.createElement("span","lh-crc__longest_duration_label"),l=e.createElement("b","lh-crc__longest_duration");i.append(" ",a," ",l," "),o.append(" ",i," ");const s=e.createElement("div","lh-crc"),c=e.createElement("div","lh-crc-initial-nav");return s.append(" ",c," "," "),n.append(" ",r," ",o," ",s," "),t.append(n),t}(e);case"crcChain":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-crc-node"),r=e.createElement("span","lh-crc-node__tree-marker"),o=e.createElement("span","lh-crc-node__tree-value");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"elementScreenshot":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-element-screenshot"),r=e.createElement("div","lh-element-screenshot__content"),o=e.createElement("div","lh-element-screenshot__image"),i=e.createElement("div","lh-element-screenshot__mask"),a=e.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("height","0"),a.setAttribute("width","0");const 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," "," "),a.append(" ",l," "),i.append(" ",a," ");const c=e.createElement("div","lh-element-screenshot__element-marker");return o.append(" ",i," ",c," "),r.append(" ",o," "),n.append(" ",r," "),t.append(n),t}(e);case"footer":return function(e){const 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);const r=e.createElement("footer","lh-footer"),o=e.createElement("ul","lh-meta__items");o.append(" ");const i=e.createElement("div","lh-generated"),a=e.createElement("b");a.append("Lighthouse");const 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"),i.append(" "," Generated by ",a," ",l," | ",s," "),r.append(" ",o," ",i," "),t.append(r),t}(e);case"fraction":return function(e){const t=e.createFragment(),n=e.createElement("a","lh-fraction__wrapper"),r=e.createElement("div","lh-fraction__content-wrapper"),o=e.createElement("div","lh-fraction__content"),i=e.createElement("div","lh-fraction__background");o.append(" ",i," "),r.append(" ",o," ");const a=e.createElement("div","lh-fraction__label");return n.append(" ",r," ",a," "),t.append(n),t}(e);case"gauge":return function(e){const t=e.createFragment(),n=e.createElement("a","lh-gauge__wrapper"),r=e.createElement("div","lh-gauge__svg-wrapper"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge");o.setAttribute("viewBox","0 0 120 120");const i=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-base");i.setAttribute("r","56"),i.setAttribute("cx","60"),i.setAttribute("cy","60"),i.setAttribute("stroke-width","8");const a=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-arc");a.setAttribute("r","56"),a.setAttribute("cx","60"),a.setAttribute("cy","60"),a.setAttribute("stroke-width","8"),o.append(" ",i," ",a," "),r.append(" ",o," ");const 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"gaugePwa":return function(e){const t=e.createFragment(),n=e.createElement("style");n.append("\n .lh-gauge--pwa .lh-gauge--pwa__component {\n display: none;\n }\n .lh-gauge--pwa__wrapper:not(.lh-badged--all) .lh-gauge--pwa__logo > path {\n /* Gray logo unless everything is passing. */\n fill: #B0B0B0;\n }\n\n .lh-gauge--pwa__disc {\n fill: var(--color-gray-200);\n }\n\n .lh-gauge--pwa__logo--primary-color {\n fill: #304FFE;\n }\n\n .lh-gauge--pwa__logo--secondary-color {\n fill: #3D3D3D;\n }\n .lh-dark .lh-gauge--pwa__logo--secondary-color {\n fill: #D8B6B6;\n }\n\n /* No passing groups. */\n .lh-gauge--pwa__wrapper:not([class*='lh-badged--']) .lh-gauge--pwa__na-line {\n display: inline;\n }\n /* Just optimized. Same n/a line as no passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-optimized:not(.lh-badged--pwa-installable) .lh-gauge--pwa__na-line {\n display: inline;\n }\n\n /* Just installable. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-installable .lh-gauge--pwa__installable-badge {\n display: inline;\n }\n\n /* All passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--all .lh-gauge--pwa__check-circle {\n display: inline;\n }\n "),t.append(n);const r=e.createElement("a","lh-gauge__wrapper lh-gauge--pwa__wrapper"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge lh-gauge--pwa");o.setAttribute("viewBox","0 0 60 60");const i=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");a.setAttribute("id","lh-gauge--pwa__check-circle__gradient"),a.setAttribute("x1","50%"),a.setAttribute("y1","0%"),a.setAttribute("x2","50%"),a.setAttribute("y2","100%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#00C852"),l.setAttribute("offset","0%");const s=e.createElementNS("http://www.w3.org/2000/svg","stop");s.setAttribute("stop-color","#009688"),s.setAttribute("offset","100%"),a.append(" ",l," ",s," ");const c=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");c.setAttribute("id","lh-gauge--pwa__installable__shadow-gradient"),c.setAttribute("x1","76.056%"),c.setAttribute("x2","24.111%"),c.setAttribute("y1","82.995%"),c.setAttribute("y2","24.735%");const d=e.createElementNS("http://www.w3.org/2000/svg","stop");d.setAttribute("stop-color","#A5D6A7"),d.setAttribute("offset","0%");const h=e.createElementNS("http://www.w3.org/2000/svg","stop");h.setAttribute("stop-color","#80CBC4"),h.setAttribute("offset","100%"),c.append(" ",d," ",h," ");const p=e.createElementNS("http://www.w3.org/2000/svg","g");p.setAttribute("id","lh-gauge--pwa__installable-badge");const u=e.createElementNS("http://www.w3.org/2000/svg","circle");u.setAttribute("fill","#FFFFFF"),u.setAttribute("cx","10"),u.setAttribute("cy","10"),u.setAttribute("r","10");const g=e.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("fill","#009688"),g.setAttribute("d","M10 4.167A5.835 5.835 0 0 0 4.167 10 5.835 5.835 0 0 0 10 15.833 5.835 5.835 0 0 0 15.833 10 5.835 5.835 0 0 0 10 4.167zm2.917 6.416h-2.334v2.334H9.417v-2.334H7.083V9.417h2.334V7.083h1.166v2.334h2.334v1.166z"),p.append(" ",u," ",g," "),i.append(" ",a," ",c," ",p," ");const m=e.createElementNS("http://www.w3.org/2000/svg","g");m.setAttribute("stroke","none"),m.setAttribute("fill-rule","nonzero");const f=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge--pwa__disc");f.setAttribute("cx","30"),f.setAttribute("cy","30"),f.setAttribute("r","30");const _=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__logo"),v=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");v.setAttribute("d","M35.66 19.39l.7-1.75h2L37.4 15 38.6 12l3.4 9h-2.51l-.58-1.61z");const b=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--primary-color");b.setAttribute("d","M33.52 21l3.65-9h-2.42l-2.5 5.82L30.5 12h-1.86l-1.9 5.82-1.35-2.65-1.21 3.72L25.4 21h2.38l1.72-5.2 1.64 5.2z");const w=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");w.setAttribute("fill-rule","nonzero"),w.setAttribute("d","M20.3 17.91h1.48c.45 0 .85-.05 1.2-.15l.39-1.18 1.07-3.3a2.64 2.64 0 0 0-.28-.37c-.55-.6-1.36-.91-2.42-.91H18v9h2.3V17.9zm1.96-3.84c.22.22.33.5.33.87 0 .36-.1.65-.29.87-.2.23-.59.35-1.15.35h-.86v-2.41h.87c.52 0 .89.1 1.1.32z"),_.append(" ",v," ",b," ",w," ");const y=e.createElementNS("http://www.w3.org/2000/svg","rect","lh-gauge--pwa__component lh-gauge--pwa__na-line");y.setAttribute("fill","#FFFFFF"),y.setAttribute("x","20"),y.setAttribute("y","32"),y.setAttribute("width","20"),y.setAttribute("height","4"),y.setAttribute("rx","2");const x=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__installable-badge");x.setAttribute("transform","translate(20, 29)");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-gauge--pwa__installable__shadow-gradient)"),k.setAttribute("d","M33.629 19.487c-4.272 5.453-10.391 9.39-17.415 10.869L3 17.142 17.142 3 33.63 19.487z");const A=e.createElementNS("http://www.w3.org/2000/svg","use");A.setAttribute("href","#lh-gauge--pwa__installable-badge"),x.append(" ",k," ",A," ");const C=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__check-circle");C.setAttribute("transform","translate(18, 28)");const S=e.createElementNS("http://www.w3.org/2000/svg","circle");S.setAttribute("fill","#FFFFFF"),S.setAttribute("cx","12"),S.setAttribute("cy","12"),S.setAttribute("r","12");const E=e.createElementNS("http://www.w3.org/2000/svg","path");E.setAttribute("fill","url(#lh-gauge--pwa__check-circle__gradient)"),E.setAttribute("d","M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"),C.append(" ",S," ",E," "),m.append(" "," ",f," ",_," "," ",y," "," ",x," "," ",C," "),o.append(" ",i," ",m," ");const z=e.createElement("div","lh-gauge__label");return r.append(" ",o," ",z," "),t.append(r),t}(e);case"heading":return function(e){const 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 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 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);const r=e.createElement("div","lh-header-container"),o=e.createElement("div","lh-scores-wrapper-placeholder");return r.append(" ",o," "),t.append(r),t}(e);case"metric":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-metric"),r=e.createElement("div","lh-metric__innerwrap"),o=e.createElement("div","lh-metric__icon"),i=e.createElement("span","lh-metric__title"),a=e.createElement("div","lh-metric__value"),l=e.createElement("div","lh-metric__description");return r.append(" ",o," ",i," ",a," ",l," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunity":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit lh-audit--load-opportunity"),r=e.createElement("details","lh-expandable-details"),o=e.createElement("summary"),i=e.createElement("div","lh-audit__header"),a=e.createElement("div","lh-load-opportunity__cols"),l=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),s=e.createElement("span","lh-audit__score-icon"),c=e.createElement("div","lh-audit__title");l.append(" ",s," ",c," ");const d=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two"),h=e.createElement("div","lh-load-opportunity__sparkline"),p=e.createElement("div","lh-sparkline"),u=e.createElement("div","lh-sparkline__bar");p.append(u),h.append(" ",p," ");const g=e.createElement("div","lh-audit__display-text"),m=e.createElement("div","lh-chevron-container");d.append(" ",h," ",g," ",m," "),a.append(" ",l," ",d," "),i.append(" ",a," "),o.append(" ",i," ");const f=e.createElement("div","lh-audit__description"),_=e.createElement("div","lh-audit__stackpacks");return r.append(" ",o," ",f," ",_," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunityHeader":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-load-opportunity__header lh-load-opportunity__cols"),r=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),o=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"scorescale":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-scorescale"),r=e.createElement("span","lh-scorescale-range lh-scorescale-range--fail");r.append("0–49");const o=e.createElement("span","lh-scorescale-range lh-scorescale-range--average");o.append("50–89");const i=e.createElement("span","lh-scorescale-range lh-scorescale-range--pass");return i.append("90–100"),n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"scoresWrapper":return function(e){const 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: 1;\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 }\n\n .lh-gauge__wrapper:first-of-type {\n contain: none;\n }\n "),t.append(n);const r=e.createElement("div","lh-scores-wrapper"),o=e.createElement("div","lh-scores-container"),i=e.createElement("div","lh-pyro"),a=e.createElement("div","lh-pyro-before"),l=e.createElement("div","lh-pyro-after");return i.append(" ",a," ",l," "),o.append(" ",i," "),r.append(" ",o," "),t.append(r),t}(e);case"snippet":return function(e){const 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){const 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){const t=e.createFragment(),n=e.createElement("div","lh-snippet__header"),r=e.createElement("div","lh-snippet__title"),o=e.createElement("div","lh-snippet__node"),i=e.createElement("button","lh-snippet__toggle-expand"),a=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 i.append(" ",a," ",l," "),n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"snippetLine":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-snippet__line"),r=e.createElement("div","lh-snippet__line-number"),o=e.createElement("div","lh-snippet__line-icon"),i=e.createElement("code");return n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"styles":return function(e){const t=e.createFragment(),n=e.createElement("style");return n.append('/**\n * @license\n * Copyright 2017 The Lighthouse Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS-IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 --pwa-icon-margin: 0 var(--default-padding);\n --pwa-icon-size: var(--topbar-logo-size);\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 --sparkline-height: 5px;\n --stackpack-padding-horizontal: 10px;\n --sticky-header-background-color: var(--report-background-color);\n --table-higlight-background-color: hsla(210, 17%, 77%, 0.1);\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\n --pwa-installable-gray-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="nonzero"><circle fill="%23DAE0E3" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-gray-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%23DAE0E3" width="24" height="24" rx="12"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/><path d="M5 5h14v14H5z"/></g></svg>\');\n\n --pwa-installable-gray-url-dark: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="nonzero"><circle fill="%23424242" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-gray-url-dark: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%23424242" width="24" height="24" rx="12"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/><path d="M5 5h14v14H5z"/></g></svg>\');\n\n --pwa-installable-color-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="none"><circle fill="%230CCE6B" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-color-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%230CCE6B" width="24" height="24" rx="12"/><path d="M5 5h14v14H5z"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/></g></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\n /* SVGs */\n --plugin-icon-url: var(--plugin-icon-url-dark);\n --pwa-installable-gray-url: var(--pwa-installable-gray-url-dark);\n --pwa-optimized-gray-url: var(--pwa-optimized-gray-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 --pwa-icon-margin: 0 7px 0 -3px;\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 /* Not enough space to adequately show the relative savings bars. */\n .lh-sparkline {\n display: none;\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 --pwa-icon-margin: 0 7px 0 -3px;\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-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}\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 {\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 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 1.05-2.735-.512-1.15-1.585-1.562-2.736-1.052z"/></svg>\');\n}\n.lh-report-icon--treemap::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="black"><path d="M3 5v14h19V5H3zm2 2h15v4H5V7zm0 10v-4h4v4H5zm6 0v-4h9v4h-9z"/></svg>\');\n}\n.lh-report-icon--date::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 11h2v2H7v-2zm14-5v14a2 2 0 01-2 2H5a2 2 0 01-2-2V6c0-1.1.9-2 2-2h1V2h2v2h8V2h2v2h1a2 2 0 012 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z"/></svg>\');\n}\n.lh-report-icon--devices::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 6h18V4H4a2 2 0 00-2 2v11H0v3h14v-3H4V6zm19 2h-6a1 1 0 00-1 1v10c0 .6.5 1 1 1h6c.6 0 1-.5 1-1V9c0-.6-.5-1-1-1zm-1 9h-4v-7h4v7z"/></svg>\');\n}\n.lh-report-icon--world::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm7 6h-3c-.3-1.3-.8-2.5-1.4-3.6A8 8 0 0 1 18.9 8zm-7-4a14 14 0 0 1 2 4h-4a14 14 0 0 1 2-4zM4.3 14a8.2 8.2 0 0 1 0-4h3.3a16.5 16.5 0 0 0 0 4H4.3zm.8 2h3a14 14 0 0 0 1.3 3.6A8 8 0 0 1 5.1 16zm3-8H5a8 8 0 0 1 4.3-3.6L8 8zM12 20a14 14 0 0 1-2-4h4a14 14 0 0 1-2 4zm2.3-6H9.7a14.7 14.7 0 0 1 0-4h4.6a14.6 14.6 0 0 1 0 4zm.3 5.6c.6-1.2 1-2.4 1.4-3.6h3a8 8 0 0 1-4.4 3.6zm1.8-5.6a16.5 16.5 0 0 0 0-4h3.3a8.2 8.2 0 0 1 0 4h-3.3z"/></svg>\');\n}\n.lh-report-icon--stopwatch::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.1-6.6L20.5 6l-1.4-1.4L17.7 6A9 9 0 0 0 3 13a9 9 0 1 0 16-5.6zm-7 12.6a7 7 0 1 1 0-14 7 7 0 0 1 0 14z"/></svg>\');\n}\n.lh-report-icon--networkspeed::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.9 5c-.2 0-.3 0-.4.2v.2L10.1 17a2 2 0 0 0-.2 1 2 2 0 0 0 4 .4l2.4-12.9c0-.3-.2-.5-.5-.5zM1 9l2 2c2.9-2.9 6.8-4 10.5-3.6l1.2-2.7C10 3.8 4.7 5.3 1 9zm20 2 2-2a15.4 15.4 0 0 0-5.6-3.6L17 8.2c1.5.7 2.9 1.6 4.1 2.8zm-4 4 2-2a9.9 9.9 0 0 0-2.7-1.9l-.5 3 1.2.9zM5 13l2 2a7.1 7.1 0 0 1 4-2l1.3-2.9C9.7 10.1 7 11 5 13z"/></svg>\');\n}\n.lh-report-icon--samples-one::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="7" cy="14" r="3"/><path d="M7 18a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5.6 17.6a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>\');\n}\n.lh-report-icon--samples-many::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 18a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5.6 17.6a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/><circle cx="7" cy="14" r="3"/><circle cx="11" cy="6" r="3"/></svg>\');\n}\n.lh-report-icon--chrome::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 562 562"><path d="M256 25.6v25.6a204 204 0 0 1 144.8 60 204 204 0 0 1 60 144.8 204 204 0 0 1-60 144.8 204 204 0 0 1-144.8 60 204 204 0 0 1-144.8-60 204 204 0 0 1-60-144.8 204 204 0 0 1 60-144.8 204 204 0 0 1 144.8-60V0a256 256 0 1 0 0 512 256 256 0 0 0 0-512v25.6z"/><path d="M256 179.2v25.6a51.3 51.3 0 0 1 0 102.4 51.3 51.3 0 0 1 0-102.4v-51.2a102.3 102.3 0 1 0-.1 204.7 102.3 102.3 0 0 0 .1-204.7v25.6z"/><path d="M256 204.8h217.6a25.6 25.6 0 0 0 0-51.2H256a25.6 25.6 0 0 0 0 51.2m44.3 76.8L191.5 470.1a25.6 25.6 0 1 0 44.4 25.6l108.8-188.5a25.6 25.6 0 1 0-44.4-25.6m-88.6 0L102.9 93.2a25.7 25.7 0 0 0-35-9.4 25.7 25.7 0 0 0-9.4 35l108.8 188.5a25.7 25.7 0 0 0 35 9.4 25.9 25.9 0 0 0 9.4-35.1"/></svg>\');\n}\n\n\n\n.lh-buttons {\n display: flex;\n flex-wrap: wrap;\n margin: var(--default-padding) 0;\n}\n.lh-button {\n height: 32px;\n border: 1px solid var(--report-border-color-secondary);\n border-radius: 3px;\n color: var(--link-color);\n background-color: var(--report-background-color);\n margin: 5px;\n}\n\n.lh-button:first-of-type {\n margin-left: 0;\n}\n\n/* Node */\n.lh-node__snippet {\n font-family: var(--report-font-family-monospace);\n color: var(--snippet-color);\n font-size: var(--report-monospace-font-size);\n line-height: 20px;\n}\n\n/* Score */\n\n.lh-audit__score-icon {\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n margin: var(--score-icon-margin);\n}\n\n.lh-audit--pass .lh-audit__display-text {\n color: var(--color-pass-secondary);\n}\n.lh-audit--pass .lh-audit__score-icon,\n.lh-scorescale-range--pass::before {\n border-radius: 100%;\n background: var(--color-pass);\n}\n\n.lh-audit--average .lh-audit__display-text {\n color: var(--color-average-secondary);\n}\n.lh-audit--average .lh-audit__score-icon,\n.lh-scorescale-range--average::before {\n background: var(--color-average);\n width: var(--icon-square-size);\n height: var(--icon-square-size);\n}\n\n.lh-audit--fail .lh-audit__display-text {\n color: var(--color-fail-secondary);\n}\n.lh-audit--fail .lh-audit__score-icon,\n.lh-audit--error .lh-audit__score-icon,\n.lh-scorescale-range--fail::before {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n\n.lh-audit--manual .lh-audit__display-text,\n.lh-audit--notapplicable .lh-audit__display-text {\n color: var(--color-gray-600);\n}\n.lh-audit--manual .lh-audit__score-icon,\n.lh-audit--notapplicable .lh-audit__score-icon {\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n border-radius: 100%;\n background: none;\n}\n\n.lh-audit--informative .lh-audit__display-text {\n color: var(--color-gray-600);\n}\n\n.lh-audit--informative .lh-audit__score-icon {\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n border-radius: 100%;\n}\n\n.lh-audit__description,\n.lh-audit__stackpack {\n color: var(--report-text-color-secondary);\n}\n.lh-audit__adorn {\n border: 1px solid slategray;\n border-radius: 3px;\n margin: 0 3px;\n padding: 0 2px;\n line-height: 1.1;\n display: inline-block;\n font-size: 90%;\n}\n\n.lh-category-header__description {\n text-align: center;\n color: var(--color-gray-700);\n margin: 0px auto;\n max-width: 400px;\n}\n\n\n.lh-audit__display-text,\n.lh-load-opportunity__sparkline,\n.lh-chevron-container {\n margin: 0 var(--audit-margin-horizontal);\n}\n.lh-chevron-container {\n margin-right: 0;\n}\n\n.lh-audit__title-and-text {\n flex: 1;\n}\n\n.lh-audit__title-and-text code {\n color: var(--snippet-color);\n font-size: var(--report-monospace-font-size);\n}\n\n/* Prepend display text with em dash separator. But not in Opportunities. */\n.lh-audit__display-text:not(:empty):before {\n content: \'—\';\n margin-right: var(--audit-margin-horizontal);\n}\n.lh-audit-group.lh-audit-group--load-opportunities .lh-audit__display-text:not(:empty):before {\n display: none;\n}\n\n/* Expandable Details (Audit Groups, Audits) */\n.lh-audit__header {\n display: flex;\n align-items: center;\n padding: var(--default-padding);\n}\n\n.lh-audit--load-opportunity .lh-audit__header {\n display: block;\n}\n\n\n.lh-metricfilter {\n display: grid;\n justify-content: end;\n align-items: center;\n grid-auto-flow: column;\n gap: 4px;\n color: var(--color-gray-700);\n}\n\n.lh-metricfilter__radio {\n position: absolute;\n left: -9999px;\n}\n.lh-metricfilter input[type=\'radio\']:focus-visible + label {\n outline: -webkit-focus-ring-color auto 1px;\n}\n\n.lh-metricfilter__label {\n display: inline-flex;\n padding: 0 4px;\n height: 16px;\n text-decoration: underline;\n align-items: center;\n cursor: pointer;\n font-size: 90%;\n}\n\n.lh-metricfilter__label--active {\n background: var(--color-blue-primary);\n color: var(--color-white);\n border-radius: 3px;\n text-decoration: none;\n}\n/* Give the \'All\' choice a more muted display */\n.lh-metricfilter__label--active[for="metric-All"] {\n background-color: var(--color-blue-200) !important;\n color: black !important;\n}\n\n.lh-metricfilter__text {\n margin-right: 8px;\n}\n\n/* If audits are filtered, hide the itemcount for Passed Audits… */\n.lh-category--filtered .lh-audit-group .lh-audit-group__itemcount {\n display: none;\n}\n\n\n.lh-audit__header:hover {\n background-color: var(--color-hover);\n}\n\n/* We want to hide the browser\'s default arrow marker on summary elements. Admittedly, it\'s complicated. */\n.lh-root details > summary {\n /* Blink 89+ and Firefox will hide the arrow when display is changed from (new) default of `list-item` to block. https://chromestatus.com/feature/6730096436051968*/\n display: block;\n}\n/* Safari and Blink <=88 require using the -webkit-details-marker selector */\n.lh-root details > summary::-webkit-details-marker {\n display: none;\n}\n\n/* Perf Metric */\n\n.lh-metrics-container {\n display: grid;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n grid-column-gap: var(--report-line-height);\n margin-bottom: var(--default-padding);\n}\n\n.lh-metric {\n border-top: 1px solid var(--report-border-color-secondary);\n}\n\n.lh-category:not(.lh--hoisted-meta) .lh-metric:nth-last-child(-n+2) {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\n\n.lh-metric__innerwrap {\n display: grid;\n /**\n * Icon -- Metric Name\n * -- Metric Value\n */\n grid-template-columns: calc(var(--score-icon-size) + var(--score-icon-margin-left) + var(--score-icon-margin-right)) 1fr;\n align-items: center;\n padding: var(--default-padding);\n}\n\n.lh-metric__details {\n order: -1;\n}\n\n.lh-metric__title {\n flex: 1;\n}\n\n.lh-calclink {\n padding-left: calc(1ex / 3);\n}\n\n.lh-metric__description {\n display: none;\n grid-column-start: 2;\n grid-column-end: 4;\n color: var(--report-text-color-secondary);\n}\n\n.lh-metric__value {\n font-size: var(--metric-value-font-size);\n margin: calc(var(--default-padding) / 2) 0;\n white-space: nowrap; /* No wrapping between metric value and the icon */\n grid-column-start: 2;\n}\n\n\n@media screen and (max-width: 535px) {\n .lh-metrics-container {\n display: block;\n }\n\n .lh-metric {\n border-bottom: none !important;\n }\n .lh-category:not(.lh--hoisted-meta) .lh-metric:nth-last-child(1) {\n border-bottom: 1px solid var(--report-border-color-secondary) !important;\n }\n\n /* Change the grid to 3 columns for narrow viewport. */\n .lh-metric__innerwrap {\n /**\n * Icon -- Metric Name -- Metric Value\n */\n grid-template-columns: calc(var(--score-icon-size) + var(--score-icon-margin-left) + var(--score-icon-margin-right)) 2fr 1fr;\n }\n .lh-metric__value {\n justify-self: end;\n grid-column-start: unset;\n }\n}\n\n/* No-JS toggle switch */\n/* Keep this selector sync\'d w/ `magicSelector` in report-ui-features-test.js */\n .lh-metrics-toggle__input:checked ~ .lh-metrics-container .lh-metric__description {\n display: block;\n}\n\n/* TODO get rid of the SVGS and clean up these some more */\n.lh-metrics-toggle__input {\n opacity: 0;\n position: absolute;\n right: 0;\n top: 0px;\n}\n\n.lh-metrics-toggle__input + div > label > .lh-metrics-toggle__labeltext--hide,\n.lh-metrics-toggle__input:checked + div > label > .lh-metrics-toggle__labeltext--show {\n display: none;\n}\n.lh-metrics-toggle__input:checked + div > label > .lh-metrics-toggle__labeltext--hide {\n display: inline;\n}\n.lh-metrics-toggle__input:focus + div > label {\n outline: -webkit-focus-ring-color auto 3px;\n}\n\n.lh-metrics-toggle__label {\n cursor: pointer;\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n color: var(--color-gray-700);\n}\n\n/* Pushes the metric description toggle button to the right. */\n.lh-audit-group--metrics .lh-audit-group__header {\n display: flex;\n justify-content: space-between;\n}\n\n.lh-metric__icon,\n.lh-scorescale-range::before {\n content: \'\';\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n display: inline-block;\n margin: var(--score-icon-margin);\n}\n\n.lh-metric--pass .lh-metric__value {\n color: var(--color-pass-secondary);\n}\n.lh-metric--pass .lh-metric__icon {\n border-radius: 100%;\n background: var(--color-pass);\n}\n\n.lh-metric--average .lh-metric__value {\n color: var(--color-average-secondary);\n}\n.lh-metric--average .lh-metric__icon {\n background: var(--color-average);\n width: var(--icon-square-size);\n height: var(--icon-square-size);\n}\n\n.lh-metric--fail .lh-metric__value {\n color: var(--color-fail-secondary);\n}\n.lh-metric--fail .lh-metric__icon,\n.lh-metric--error .lh-metric__icon {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n\n.lh-metric--error .lh-metric__value,\n.lh-metric--error .lh-metric__description {\n color: var(--color-fail-secondary);\n}\n\n/* Perf load opportunity */\n\n.lh-load-opportunity__cols {\n display: flex;\n align-items: flex-start;\n}\n\n.lh-load-opportunity__header .lh-load-opportunity__col {\n color: var(--color-gray-600);\n display: unset;\n line-height: calc(2.3 * var(--report-font-size));\n}\n\n.lh-load-opportunity__col {\n display: flex;\n}\n\n.lh-load-opportunity__col--one {\n flex: 5;\n align-items: center;\n margin-right: 2px;\n}\n.lh-load-opportunity__col--two {\n flex: 4;\n text-align: right;\n}\n\n.lh-audit--load-opportunity .lh-audit__display-text {\n text-align: right;\n flex: 0 0 calc(4 * var(--report-font-size));\n}\n\n\n/* Sparkline */\n\n.lh-load-opportunity__sparkline {\n flex: 1;\n margin-top: calc((var(--report-line-height) - var(--sparkline-height)) / 2);\n}\n\n.lh-sparkline {\n height: var(--sparkline-height);\n width: 100%;\n}\n\n.lh-sparkline__bar {\n height: 100%;\n float: right;\n}\n\n.lh-audit--pass .lh-sparkline__bar {\n background: var(--color-pass);\n}\n\n.lh-audit--average .lh-sparkline__bar {\n background: var(--color-average);\n}\n\n.lh-audit--fail .lh-sparkline__bar {\n background: var(--color-fail);\n}\n\n/* Filmstrip */\n\n.lh-filmstrip-container {\n /* smaller gap between metrics and filmstrip */\n margin: -8px auto 0 auto;\n}\n\n.lh-filmstrip {\n display: grid;\n justify-content: space-between;\n padding-bottom: var(--default-padding);\n width: 100%;\n grid-template-columns: repeat(auto-fit, 60px);\n}\n\n.lh-filmstrip__frame {\n text-align: right;\n position: relative;\n}\n\n.lh-filmstrip__thumbnail {\n border: 1px solid var(--report-border-color-secondary);\n max-height: 100px;\n max-width: 60px;\n}\n\n/* Audit */\n\n.lh-audit {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\n\n/* Apply border-top to just the first audit. */\n.lh-audit {\n border-top: 1px solid var(--report-border-color-secondary);\n}\n.lh-audit ~ .lh-audit {\n border-top: none;\n}\n\n\n.lh-audit--error .lh-audit__display-text {\n color: var(--color-fail-secondary);\n}\n\n/* Audit Group */\n\n.lh-audit-group {\n margin-bottom: var(--audit-group-margin-bottom);\n position: relative;\n}\n.lh-audit-group--metrics {\n margin-bottom: calc(var(--audit-group-margin-bottom) / 2);\n}\n\n.lh-audit-group__header::before {\n /* By default, groups don\'t get an icon */\n content: none;\n width: var(--pwa-icon-size);\n height: var(--pwa-icon-size);\n margin: var(--pwa-icon-margin);\n display: inline-block;\n vertical-align: middle;\n}\n\n/* Style the "over budget" columns red. */\n.lh-audit-group--budgets #performance-budget tbody tr td:nth-child(4),\n.lh-audit-group--budgets #performance-budget tbody tr td:nth-child(5),\n.lh-audit-group--budgets #timing-budget tbody tr td:nth-child(3) {\n color: var(--color-red-700);\n}\n\n/* Align the "over budget request count" text to be close to the "over budget bytes" column. */\n.lh-audit-group--budgets .lh-table tbody tr td:nth-child(4){\n text-align: right;\n}\n\n.lh-audit-group--budgets .lh-details--budget {\n width: 100%;\n margin: 0 0 var(--default-padding);\n}\n\n.lh-audit-group--pwa-installable .lh-audit-group__header::before {\n content: \'\';\n background-image: var(--pwa-installable-gray-url);\n}\n.lh-audit-group--pwa-optimized .lh-audit-group__header::before {\n content: \'\';\n background-image: var(--pwa-optimized-gray-url);\n}\n.lh-audit-group--pwa-installable.lh-badged .lh-audit-group__header::before {\n background-image: var(--pwa-installable-color-url);\n}\n.lh-audit-group--pwa-optimized.lh-badged .lh-audit-group__header::before {\n background-image: var(--pwa-optimized-color-url);\n}\n\n.lh-audit-group--metrics .lh-audit-group__summary {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.lh-audit-group__summary {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.lh-audit-group__header .lh-chevron {\n margin-top: calc((var(--report-line-height) - 5px) / 2);\n}\n\n.lh-audit-group__header {\n letter-spacing: 0.8px;\n padding: var(--default-padding);\n padding-left: 0;\n}\n\n.lh-audit-group__header, .lh-audit-group__summary {\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n color: var(--color-gray-700);\n}\n\n.lh-audit-group__title {\n text-transform: uppercase;\n font-weight: 500;\n}\n\n.lh-audit-group__itemcount {\n color: var(--color-gray-600);\n}\n\n.lh-audit-group__footer {\n color: var(--color-gray-600);\n display: block;\n margin-top: var(--default-padding);\n}\n\n.lh-details,\n.lh-category-header__description,\n.lh-load-opportunity__header,\n.lh-audit-group__footer {\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n}\n\n.lh-audit-explanation {\n margin: var(--audit-padding-vertical) 0 calc(var(--audit-padding-vertical) / 2) var(--audit-margin-horizontal);\n line-height: var(--audit-explanation-line-height);\n display: inline-block;\n}\n\n.lh-audit--fail .lh-audit-explanation {\n color: var(--color-fail-secondary);\n}\n\n/* Report */\n.lh-list > :not(:last-child) {\n margin-bottom: calc(var(--default-padding) * 2);\n}\n\n.lh-header-container {\n display: block;\n margin: 0 auto;\n position: relative;\n word-wrap: break-word;\n}\n\n.lh-header-container .lh-scores-wrapper {\n border-bottom: 1px solid var(--color-gray-200);\n}\n\n\n.lh-report {\n min-width: var(--report-content-min-width);\n}\n\n.lh-exception {\n font-size: large;\n}\n\n.lh-code {\n white-space: normal;\n margin-top: 0;\n font-size: var(--report-monospace-font-size);\n}\n\n.lh-warnings {\n --item-margin: calc(var(--report-line-height) / 6);\n color: var(--color-average-secondary);\n margin: var(--audit-padding-vertical) 0;\n padding: var(--default-padding)\n var(--default-padding)\n var(--default-padding)\n calc(var(--audit-description-padding-left));\n background-color: var(--toplevel-warning-background-color);\n}\n.lh-warnings span {\n font-weight: bold;\n}\n\n.lh-warnings--toplevel {\n --item-margin: calc(var(--header-line-height) / 4);\n color: var(--toplevel-warning-text-color);\n margin-left: auto;\n margin-right: auto;\n max-width: var(--report-content-max-width-minus-edge-gap);\n padding: var(--toplevel-warning-padding);\n border-radius: 8px;\n}\n\n.lh-warnings__msg {\n color: var(--toplevel-warning-message-text-color);\n margin: 0;\n}\n\n.lh-warnings ul {\n margin: 0;\n}\n.lh-warnings li {\n margin: var(--item-margin) 0;\n}\n.lh-warnings li:last-of-type {\n margin-bottom: 0;\n}\n\n.lh-scores-header {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n.lh-scores-header__solo {\n padding: 0;\n border: 0;\n}\n\n/* Gauge */\n\n.lh-gauge__wrapper--pass {\n color: var(--color-pass-secondary);\n fill: var(--color-pass);\n stroke: var(--color-pass);\n}\n\n.lh-gauge__wrapper--average {\n color: var(--color-average-secondary);\n fill: var(--color-average);\n stroke: var(--color-average);\n}\n\n.lh-gauge__wrapper--fail {\n color: var(--color-fail-secondary);\n fill: var(--color-fail);\n stroke: var(--color-fail);\n}\n\n.lh-gauge__wrapper--not-applicable {\n color: var(--color-not-applicable);\n fill: var(--color-not-applicable);\n stroke: var(--color-not-applicable);\n}\n\n.lh-fraction__wrapper .lh-fraction__content::before {\n content: \'\';\n height: var(--score-icon-size);\n width: var(--score-icon-size);\n margin: var(--score-icon-margin);\n display: inline-block;\n}\n.lh-fraction__wrapper--pass .lh-fraction__content {\n color: var(--color-pass-secondary);\n}\n.lh-fraction__wrapper--pass .lh-fraction__background {\n background-color: var(--color-pass);\n}\n.lh-fraction__wrapper--pass .lh-fraction__content::before {\n background-color: var(--color-pass);\n border-radius: 50%;\n}\n.lh-fraction__wrapper--average .lh-fraction__content {\n color: var(--color-average-secondary);\n}\n.lh-fraction__wrapper--average .lh-fraction__background,\n.lh-fraction__wrapper--average .lh-fraction__content::before {\n background-color: var(--color-average);\n}\n.lh-fraction__wrapper--fail .lh-fraction__content {\n color: var(--color-fail);\n}\n.lh-fraction__wrapper--fail .lh-fraction__background {\n background-color: var(--color-fail);\n}\n.lh-fraction__wrapper--fail .lh-fraction__content::before {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n.lh-fraction__wrapper--null .lh-fraction__content {\n color: var(--color-gray-700);\n}\n.lh-fraction__wrapper--null .lh-fraction__background {\n background-color: var(--color-gray-700);\n}\n.lh-fraction__wrapper--null .lh-fraction__content::before {\n border-radius: 50%;\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-700);\n}\n\n.lh-fraction__background {\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: calc(var(--gauge-circle-size) / 2);\n opacity: 0.1;\n z-index: -1;\n}\n\n.lh-fraction__content-wrapper {\n height: var(--gauge-circle-size);\n display: flex;\n align-items: center;\n}\n\n.lh-fraction__content {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n font-size: calc(0.3 * var(--gauge-circle-size));\n line-height: calc(0.4 * var(--gauge-circle-size));\n width: max-content;\n min-width: calc(1.5 * var(--gauge-circle-size));\n padding: calc(0.1 * var(--gauge-circle-size)) calc(0.2 * var(--gauge-circle-size));\n --score-icon-size: calc(0.21 * var(--gauge-circle-size));\n --score-icon-margin: 0 calc(0.15 * var(--gauge-circle-size)) 0 0;\n}\n\n.lh-gauge {\n stroke-linecap: round;\n width: var(--gauge-circle-size);\n height: var(--gauge-circle-size);\n}\n\n.lh-category .lh-gauge {\n --gauge-circle-size: var(--gauge-circle-size-big);\n}\n\n.lh-gauge-base {\n opacity: 0.1;\n}\n\n.lh-gauge-arc {\n fill: none;\n transform-origin: 50% 50%;\n animation: load-gauge var(--transition-length) ease forwards;\n animation-delay: 250ms;\n}\n\n.lh-gauge__svg-wrapper {\n position: relative;\n height: var(--gauge-circle-size);\n}\n.lh-category .lh-gauge__svg-wrapper,\n.lh-category .lh-fraction__wrapper {\n --gauge-circle-size: var(--gauge-circle-size-big);\n}\n\n/* The plugin badge overlay */\n.lh-gauge__wrapper--plugin .lh-gauge__svg-wrapper::before {\n width: var(--plugin-badge-size);\n height: var(--plugin-badge-size);\n background-color: var(--plugin-badge-background-color);\n background-image: var(--plugin-icon-url);\n background-repeat: no-repeat;\n background-size: var(--plugin-icon-size);\n background-position: 58% 50%;\n content: "";\n position: absolute;\n right: -6px;\n bottom: 0px;\n display: block;\n z-index: 100;\n box-shadow: 0 0 4px rgba(0,0,0,.2);\n border-radius: 25%;\n}\n.lh-category .lh-gauge__wrapper--plugin .lh-gauge__svg-wrapper::before {\n width: var(--plugin-badge-size-big);\n height: var(--plugin-badge-size-big);\n}\n\n@keyframes load-gauge {\n from { stroke-dasharray: 0 352; }\n}\n\n.lh-gauge__percentage {\n width: 100%;\n height: var(--gauge-circle-size);\n position: absolute;\n font-family: var(--report-font-family-monospace);\n font-size: calc(var(--gauge-circle-size) * 0.34 + 1.3px);\n line-height: 0;\n text-align: center;\n top: calc(var(--score-container-padding) + var(--gauge-circle-size) / 2);\n}\n\n.lh-category .lh-gauge__percentage {\n --gauge-circle-size: var(--gauge-circle-size-big);\n --gauge-percentage-font-size: var(--gauge-percentage-font-size-big);\n}\n\n.lh-gauge__wrapper,\n.lh-fraction__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n flex-direction: column;\n text-decoration: none;\n padding: var(--score-container-padding);\n\n --transition-length: 1s;\n\n /* Contain the layout style paint & layers during animation*/\n contain: content;\n will-change: opacity; /* Only using for layer promotion */\n}\n\n.lh-gauge__label,\n.lh-fraction__label {\n font-size: var(--gauge-label-font-size);\n font-weight: 500;\n line-height: var(--gauge-label-line-height);\n margin-top: 10px;\n text-align: center;\n color: var(--report-text-color);\n word-break: keep-all;\n}\n\n/* TODO(#8185) use more BEM (.lh-gauge__label--big) instead of relying on descendant selector */\n.lh-category .lh-gauge__label,\n.lh-category .lh-fraction__label {\n --gauge-label-font-size: var(--gauge-label-font-size-big);\n --gauge-label-line-height: var(--gauge-label-line-height-big);\n margin-top: 14px;\n}\n\n.lh-scores-header .lh-gauge__wrapper,\n.lh-scores-header .lh-fraction__wrapper,\n.lh-scores-header .lh-gauge--pwa__wrapper,\n.lh-sticky-header .lh-gauge__wrapper,\n.lh-sticky-header .lh-fraction__wrapper,\n.lh-sticky-header .lh-gauge--pwa__wrapper {\n width: var(--gauge-wrapper-width);\n}\n\n.lh-scorescale {\n display: inline-flex;\n\n gap: calc(var(--default-padding) * 4);\n margin: 16px auto 0 auto;\n font-size: var(--report-font-size-secondary);\n color: var(--color-gray-700);\n\n}\n\n.lh-scorescale-range {\n display: flex;\n align-items: center;\n font-family: var(--report-font-family-monospace);\n white-space: nowrap;\n}\n\n.lh-category-header__finalscreenshot .lh-scorescale {\n border: 0;\n display: flex;\n justify-content: center;\n}\n\n.lh-category-header__finalscreenshot .lh-scorescale-range {\n font-family: unset;\n font-size: 12px;\n}\n\n.lh-scorescale-wrap {\n display: contents;\n}\n\n/* Hide category score gauages if it\'s a single category report */\n.lh-header--solo-category .lh-scores-wrapper {\n display: none;\n}\n\n\n.lh-categories {\n width: 100%;\n overflow: hidden;\n}\n\n.lh-category {\n padding: var(--category-padding);\n max-width: var(--report-content-max-width);\n margin: 0 auto;\n\n --sticky-header-height: calc(var(--gauge-circle-size-sm) + var(--score-container-padding) * 2);\n --topbar-plus-sticky-header: calc(var(--topbar-height) + var(--sticky-header-height));\n scroll-margin-top: var(--topbar-plus-sticky-header);\n\n /* Faster recalc style & layout of the report. https://web.dev/content-visibility/ */\n content-visibility: auto;\n contain-intrinsic-size: 1000px;\n}\n\n.lh-category-wrapper {\n border-bottom: 1px solid var(--color-gray-200);\n}\n.lh-category-wrapper:last-of-type {\n border-bottom: 0;\n}\n\n.lh-category-header {\n margin-bottom: var(--section-padding-vertical);\n}\n\n.lh-category-header .lh-score__gauge {\n max-width: 400px;\n width: auto;\n margin: 0px auto;\n}\n\n.lh-category-header__finalscreenshot {\n display: grid;\n grid-template: none / 1fr 1px 1fr;\n justify-items: center;\n align-items: center;\n gap: var(--report-line-height);\n min-height: 288px;\n margin-bottom: var(--default-padding);\n}\n\n.lh-final-ss-image {\n /* constrain the size of the image to not be too large */\n max-height: calc(var(--gauge-circle-size-big) * 2.8);\n max-width: calc(var(--gauge-circle-size-big) * 3.5);\n border: 1px solid var(--color-gray-200);\n padding: 4px;\n border-radius: 3px;\n display: block;\n}\n\n.lh-category-headercol--separator {\n background: var(--color-gray-200);\n width: 1px;\n height: var(--gauge-circle-size-big);\n}\n\n@media screen and (max-width: 780px) {\n .lh-category-header__finalscreenshot {\n grid-template: 1fr 1fr / none\n }\n .lh-category-headercol--separator {\n display: none;\n }\n}\n\n\n/* 964 fits the min-width of the filmstrip */\n@media screen and (max-width: 964px) {\n .lh-report {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media print {\n body {\n -webkit-print-color-adjust: exact; /* print background colors */\n }\n .lh-container {\n display: block;\n }\n .lh-report {\n margin-left: 0;\n padding-top: 0;\n }\n .lh-categories {\n margin-top: 0;\n }\n}\n\n.lh-table {\n border-collapse: collapse;\n /* Can\'t assign padding to table, so shorten the width instead. */\n width: calc(100% - var(--audit-description-padding-left) - var(--stackpack-padding-horizontal));\n border: 1px solid var(--report-border-color-secondary);\n\n}\n\n.lh-table thead th {\n font-weight: normal;\n color: var(--color-gray-600);\n /* See text-wrapping comment on .lh-container. */\n word-break: normal;\n}\n\n.lh-row--even {\n background-color: var(--table-higlight-background-color);\n}\n.lh-row--hidden {\n display: none;\n}\n\n.lh-table th,\n.lh-table td {\n padding: var(--default-padding);\n}\n\n.lh-table tr {\n vertical-align: middle;\n}\n\n/* Looks unnecessary, but mostly for keeping the <th>s left-aligned */\n.lh-table-column--text,\n.lh-table-column--source-location,\n.lh-table-column--url,\n/* .lh-table-column--thumbnail, */\n/* .lh-table-column--empty,*/\n.lh-table-column--code,\n.lh-table-column--node {\n text-align: left;\n}\n\n.lh-table-column--code {\n min-width: 100px;\n}\n\n.lh-table-column--bytes,\n.lh-table-column--timespanMs,\n.lh-table-column--ms,\n.lh-table-column--numeric {\n text-align: right;\n word-break: normal;\n}\n\n\n\n.lh-table .lh-table-column--thumbnail {\n width: var(--image-preview-size);\n}\n\n.lh-table-column--url {\n min-width: 250px;\n}\n\n.lh-table-column--text {\n min-width: 80px;\n}\n\n/* Keep columns narrow if they follow the URL column */\n/* 12% was determined to be a decent narrow width, but wide enough for column headings */\n.lh-table-column--url + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--bytes + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--ms,\n.lh-table-column--url + .lh-table-column--ms + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--bytes + th.lh-table-column--timespanMs {\n width: 12%;\n}\n\n.lh-text__url-host {\n display: inline;\n}\n\n.lh-text__url-host {\n margin-left: calc(var(--report-font-size) / 2);\n opacity: 0.6;\n font-size: 90%\n}\n\n.lh-thumbnail {\n object-fit: cover;\n width: var(--image-preview-size);\n height: var(--image-preview-size);\n display: block;\n}\n\n.lh-unknown pre {\n overflow: scroll;\n border: solid 1px var(--color-gray-200);\n}\n\n.lh-text__url > a {\n color: inherit;\n text-decoration: none;\n}\n\n.lh-text__url > a:hover {\n text-decoration: underline dotted #999;\n}\n\n.lh-sub-item-row {\n margin-left: 20px;\n margin-bottom: 0;\n color: var(--color-gray-700);\n}\n.lh-sub-item-row td {\n padding-top: 4px;\n padding-bottom: 4px;\n padding-left: 20px;\n}\n\n/* Chevron\n https://codepen.io/paulirish/pen/LmzEmK\n */\n.lh-chevron {\n --chevron-angle: 42deg;\n /* Edge doesn\'t support transform: rotate(calc(...)), so we define it here */\n --chevron-angle-right: -42deg;\n width: var(--chevron-size);\n height: var(--chevron-size);\n margin-top: calc((var(--report-line-height) - 12px) / 2);\n}\n\n.lh-chevron__lines {\n transition: transform 0.4s;\n transform: translateY(var(--report-line-height));\n}\n.lh-chevron__line {\n stroke: var(--chevron-line-stroke);\n stroke-width: var(--chevron-size);\n stroke-linecap: square;\n transform-origin: 50%;\n transform: rotate(var(--chevron-angle));\n transition: transform 300ms, stroke 300ms;\n}\n\n.lh-expandable-details .lh-chevron__line-right,\n.lh-expandable-details[open] .lh-chevron__line-left {\n transform: rotate(var(--chevron-angle-right));\n}\n\n.lh-expandable-details[open] .lh-chevron__line-right {\n transform: rotate(var(--chevron-angle));\n}\n\n\n.lh-expandable-details[open] .lh-chevron__lines {\n transform: translateY(calc(var(--chevron-size) * -1));\n}\n\n.lh-expandable-details[open] {\n animation: 300ms openDetails forwards;\n padding-bottom: var(--default-padding);\n}\n\n@keyframes openDetails {\n from {\n outline: 1px solid var(--report-background-color);\n }\n to {\n outline: 1px solid;\n box-shadow: 0 2px 4px rgba(0, 0, 0, .24);\n }\n}\n\n@media screen and (max-width: 780px) {\n /* no black outline if we\'re not confident the entire table can be displayed within bounds */\n .lh-expandable-details[open] {\n animation: none;\n }\n}\n\n.lh-expandable-details[open] summary, details.lh-clump > summary {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\ndetails.lh-clump[open] > summary {\n border-bottom-width: 0;\n}\n\n\n\ndetails .lh-clump-toggletext--hide,\ndetails[open] .lh-clump-toggletext--show { display: none; }\ndetails[open] .lh-clump-toggletext--hide { display: block;}\n\n\n/* Tooltip */\n.lh-tooltip-boundary {\n position: relative;\n}\n\n.lh-tooltip {\n position: absolute;\n display: none; /* Don\'t retain these layers when not needed */\n opacity: 0;\n background: #ffffff;\n white-space: pre-line; /* Render newlines in the text */\n min-width: 246px;\n max-width: 275px;\n padding: 15px;\n border-radius: 5px;\n text-align: initial;\n line-height: 1.4;\n}\n/* shrink tooltips to not be cutoff on left edge of narrow viewports\n 45vw is chosen to be ~= width of the left column of metrics\n*/\n@media screen and (max-width: 535px) {\n .lh-tooltip {\n min-width: 45vw;\n padding: 3vw;\n }\n}\n\n.lh-tooltip-boundary:hover .lh-tooltip {\n display: block;\n animation: fadeInTooltip 250ms;\n animation-fill-mode: forwards;\n animation-delay: 850ms;\n bottom: 100%;\n z-index: 1;\n will-change: opacity;\n right: 0;\n pointer-events: none;\n}\n\n.lh-tooltip::before {\n content: "";\n border: solid transparent;\n border-bottom-color: #fff;\n border-width: 10px;\n position: absolute;\n bottom: -20px;\n right: 6px;\n transform: rotate(180deg);\n pointer-events: none;\n}\n\n@keyframes fadeInTooltip {\n 0% { opacity: 0; }\n 75% { opacity: 1; }\n 100% { opacity: 1; filter: drop-shadow(1px 0px 1px #aaa) drop-shadow(0px 2px 4px hsla(206, 6%, 25%, 0.15)); pointer-events: auto; }\n}\n\n/* Element screenshot */\n.lh-element-screenshot {\n float: left;\n margin-right: 20px;\n}\n.lh-element-screenshot__content {\n overflow: hidden;\n min-width: 110px;\n display: flex;\n justify-content: center;\n background-color: var(--report-background-color);\n}\n.lh-element-screenshot__image {\n position: relative;\n /* Set by ElementScreenshotRenderer.installFullPageScreenshotCssVariable */\n background-image: var(--element-screenshot-url);\n outline: 2px solid #777;\n background-color: white;\n background-repeat: no-repeat;\n}\n.lh-element-screenshot__mask {\n position: absolute;\n background: #555;\n opacity: 0.8;\n}\n.lh-element-screenshot__element-marker {\n position: absolute;\n outline: 2px solid var(--color-lime-400);\n}\n.lh-element-screenshot__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2000; /* .lh-topbar is 1000 */\n background: var(--screenshot-overlay-background);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n\n.lh-element-screenshot__overlay .lh-element-screenshot {\n margin-right: 0; /* clearing margin used in thumbnail case */\n outline: 1px solid var(--color-gray-700);\n}\n\n.lh-screenshot-overlay--enabled .lh-element-screenshot {\n cursor: zoom-out;\n}\n.lh-screenshot-overlay--enabled .lh-node .lh-element-screenshot {\n cursor: zoom-in;\n}\n\n\n.lh-meta__items {\n --meta-icon-size: calc(var(--report-icon-size) * 0.667);\n padding: var(--default-padding);\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n background-color: var(--env-item-background-color);\n border-radius: 3px;\n margin: 0 0 var(--default-padding) 0;\n font-size: 12px;\n column-gap: var(--default-padding);\n color: var(--color-gray-700);\n}\n\n.lh-meta__item {\n display: block;\n list-style-type: none;\n position: relative;\n padding: 0 0 0 calc(var(--meta-icon-size) + var(--default-padding) * 2);\n cursor: unset; /* disable pointer cursor from report-icon */\n}\n\n.lh-meta__item.lh-tooltip-boundary {\n text-decoration: dotted underline var(--color-gray-500);\n cursor: help;\n}\n\n.lh-meta__item.lh-report-icon::before {\n position: absolute;\n left: var(--default-padding);\n width: var(--meta-icon-size);\n height: var(--meta-icon-size);\n}\n\n.lh-meta__item.lh-report-icon:hover::before {\n opacity: 0.7;\n}\n\n.lh-meta__item .lh-tooltip {\n color: var(--color-gray-800);\n}\n\n.lh-meta__item .lh-tooltip::before {\n right: auto; /* Set the tooltip arrow to the leftside */\n left: 6px;\n}\n\n/* Change the grid for narrow viewport. */\n@media screen and (max-width: 640px) {\n .lh-meta__items {\n grid-template-columns: 1fr 1fr;\n }\n}\n@media screen and (max-width: 535px) {\n .lh-meta__items {\n display: block;\n }\n}\n\n\n/*# sourceURL=report-styles.css */\n'),t.append(n),t}(e);case"topbar":return function(e){const t=e.createFragment(),n=e.createElement("style");n.append("\n .lh-topbar {\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n height: var(--topbar-height);\n padding: var(--topbar-padding);\n font-size: var(--report-font-size-secondary);\n background-color: var(--topbar-background-color);\n border-bottom: 1px solid var(--color-gray-200);\n }\n\n .lh-topbar__logo {\n width: var(--topbar-logo-size);\n height: var(--topbar-logo-size);\n user-select: none;\n flex: none;\n }\n\n .lh-topbar__url {\n margin: var(--topbar-padding);\n text-decoration: none;\n color: var(--report-text-color);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .lh-tools {\n display: flex;\n align-items: center;\n margin-left: auto;\n will-change: transform;\n min-width: var(--report-icon-size);\n }\n .lh-tools__button {\n width: var(--report-icon-size);\n min-width: 24px;\n height: var(--report-icon-size);\n cursor: pointer;\n margin-right: 5px;\n /* This is actually a button element, but we want to style it like a transparent div. */\n display: flex;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n }\n .lh-tools__button svg {\n fill: var(--tools-icon-color);\n }\n .lh-dark .lh-tools__button svg {\n filter: invert(1);\n }\n .lh-tools__button.lh-active + .lh-tools__dropdown {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n }\n .lh-tools__dropdown {\n position: absolute;\n background-color: var(--report-background-color);\n border: 1px solid var(--report-border-color);\n border-radius: 3px;\n padding: calc(var(--default-padding) / 2) 0;\n cursor: pointer;\n top: 36px;\n right: 0;\n box-shadow: 1px 1px 3px #ccc;\n min-width: 125px;\n clip: rect(0, 164px, 0, 0);\n visibility: hidden;\n opacity: 0;\n transition: all 200ms cubic-bezier(0,0,0.2,1);\n }\n .lh-tools__dropdown a {\n color: currentColor;\n text-decoration: none;\n white-space: nowrap;\n padding: 0 6px;\n line-height: 2;\n }\n .lh-tools__dropdown a:hover,\n .lh-tools__dropdown a:focus {\n background-color: var(--color-gray-200);\n outline: none;\n }\n /* save-gist option hidden in report. */\n .lh-tools__dropdown a[data-action='save-gist'] {\n display: none;\n }\n\n .lh-locale-selector {\n width: 100%;\n color: var(--report-text-color);\n background-color: var(--locale-selector-background-color);\n padding: 2px;\n }\n .lh-tools-locale {\n display: flex;\n align-items: center;\n flex-direction: row-reverse;\n }\n .lh-tools-locale__selector-wrapper {\n transition: opacity 0.15s;\n opacity: 0;\n max-width: 200px;\n }\n .lh-button.lh-tool-locale__button {\n height: var(--topbar-height);\n color: var(--tools-icon-color);\n padding: calc(var(--default-padding) / 2);\n }\n .lh-tool-locale__button.lh-active + .lh-tools-locale__selector-wrapper {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n margin: 0 4px;\n }\n\n @media screen and (max-width: 964px) {\n .lh-tools__dropdown {\n right: 0;\n left: initial;\n }\n }\n @media print {\n .lh-topbar {\n position: static;\n margin-left: 0;\n }\n\n .lh-tools__dropdown {\n display: none;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-topbar"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-topbar__logo");o.setAttribute("viewBox","0 0 24 24");const i=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");a.setAttribute("x1","57.456%"),a.setAttribute("y1","13.086%"),a.setAttribute("x2","18.259%"),a.setAttribute("y2","72.322%"),a.setAttribute("id","lh-topbar__logo--a");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#262626"),l.setAttribute("stop-opacity",".1"),l.setAttribute("offset","0%");const s=e.createElementNS("http://www.w3.org/2000/svg","stop");s.setAttribute("stop-color","#262626"),s.setAttribute("stop-opacity","0"),s.setAttribute("offset","100%"),a.append(" ",l," ",s," ");const c=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");c.setAttribute("x1","100%"),c.setAttribute("y1","50%"),c.setAttribute("x2","0%"),c.setAttribute("y2","50%"),c.setAttribute("id","lh-topbar__logo--b");const d=e.createElementNS("http://www.w3.org/2000/svg","stop");d.setAttribute("stop-color","#262626"),d.setAttribute("stop-opacity",".1"),d.setAttribute("offset","0%");const h=e.createElementNS("http://www.w3.org/2000/svg","stop");h.setAttribute("stop-color","#262626"),h.setAttribute("stop-opacity","0"),h.setAttribute("offset","100%"),c.append(" ",d," ",h," ");const p=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");p.setAttribute("x1","58.764%"),p.setAttribute("y1","65.756%"),p.setAttribute("x2","36.939%"),p.setAttribute("y2","50.14%"),p.setAttribute("id","lh-topbar__logo--c");const u=e.createElementNS("http://www.w3.org/2000/svg","stop");u.setAttribute("stop-color","#262626"),u.setAttribute("stop-opacity",".1"),u.setAttribute("offset","0%");const g=e.createElementNS("http://www.w3.org/2000/svg","stop");g.setAttribute("stop-color","#262626"),g.setAttribute("stop-opacity","0"),g.setAttribute("offset","100%"),p.append(" ",u," ",g," ");const m=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");m.setAttribute("x1","41.635%"),m.setAttribute("y1","20.358%"),m.setAttribute("x2","72.863%"),m.setAttribute("y2","85.424%"),m.setAttribute("id","lh-topbar__logo--d");const f=e.createElementNS("http://www.w3.org/2000/svg","stop");f.setAttribute("stop-color","#FFF"),f.setAttribute("stop-opacity",".1"),f.setAttribute("offset","0%");const _=e.createElementNS("http://www.w3.org/2000/svg","stop");_.setAttribute("stop-color","#FFF"),_.setAttribute("stop-opacity","0"),_.setAttribute("offset","100%"),m.append(" ",f," ",_," "),i.append(" ",a," ",c," ",p," ",m," ");const v=e.createElementNS("http://www.w3.org/2000/svg","g");v.setAttribute("fill","none"),v.setAttribute("fill-rule","evenodd");const b=e.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("d","M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z"),b.setAttribute("fill","#F44B21");const w=e.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("fill","#FFF"),w.setAttribute("d","M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z");const y=e.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z"),y.setAttribute("fill","url(#lh-topbar__logo--a)"),y.setAttribute("fill-rule","nonzero"),y.setAttribute("transform","translate(6 3)");const x=e.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("fill","#FFF176"),x.setAttribute("fill-rule","nonzero"),x.setAttribute("d","M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-topbar__logo--b)"),k.setAttribute("fill-rule","nonzero"),k.setAttribute("d","M0 6.375h6v2.25H0z"),k.setAttribute("transform","translate(6 3)");const A=e.createElementNS("http://www.w3.org/2000/svg","path");A.setAttribute("fill","url(#lh-topbar__logo--c)"),A.setAttribute("fill-rule","nonzero"),A.setAttribute("d","M6 6.375H1.875v-3.75L6 0z"),A.setAttribute("transform","translate(6 3)");const C=e.createElementNS("http://www.w3.org/2000/svg","path");C.setAttribute("fill","url(#lh-topbar__logo--d)"),C.setAttribute("fill-rule","nonzero"),C.setAttribute("d","M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z"),C.setAttribute("transform","translate(6 3)"),v.append(" ",b," ",w," ",y," ",x," ",k," ",A," ",C," "),o.append(" ",i," ",v," ");const S=e.createElement("a","lh-topbar__url");S.setAttribute("href",""),S.setAttribute("target","_blank"),S.setAttribute("rel","noopener");const E=e.createElement("div","lh-tools"),z=e.createElement("div","lh-tools-locale lh-hidden"),M=e.createElement("button","lh-button lh-tool-locale__button");M.setAttribute("id","lh-button__swap-locales"),M.setAttribute("title","Show Language Picker"),M.setAttribute("aria-label","Toggle language picker"),M.setAttribute("aria-haspopup","menu"),M.setAttribute("aria-expanded","false"),M.setAttribute("aria-controls","lh-tools-locale__selector-wrapper");const L=e.createElementNS("http://www.w3.org/2000/svg","svg");L.setAttribute("width","20px"),L.setAttribute("height","20px"),L.setAttribute("viewBox","0 0 24 24"),L.setAttribute("fill","currentColor");const N=e.createElementNS("http://www.w3.org/2000/svg","path");N.setAttribute("d","M0 0h24v24H0V0z"),N.setAttribute("fill","none");const F=e.createElementNS("http://www.w3.org/2000/svg","path");F.setAttribute("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"),L.append(N,F),M.append(" ",L," ");const H=e.createElement("div","lh-tools-locale__selector-wrapper");H.setAttribute("id","lh-tools-locale__selector-wrapper"),H.setAttribute("role","menu"),H.setAttribute("aria-labelledby","lh-button__swap-locales"),H.setAttribute("aria-hidden","true"),H.append(" "," "),z.append(" ",M," ",H," ");const T=e.createElement("button","lh-tools__button");T.setAttribute("id","lh-tools-button"),T.setAttribute("title","Tools menu"),T.setAttribute("aria-label","Toggle report tools menu"),T.setAttribute("aria-haspopup","menu"),T.setAttribute("aria-expanded","false"),T.setAttribute("aria-controls","lh-tools-dropdown");const D=e.createElementNS("http://www.w3.org/2000/svg","svg");D.setAttribute("width","100%"),D.setAttribute("height","100%"),D.setAttribute("viewBox","0 0 24 24");const P=e.createElementNS("http://www.w3.org/2000/svg","path");P.setAttribute("d","M0 0h24v24H0z"),P.setAttribute("fill","none");const R=e.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d","M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"),D.append(" ",P," ",R," "),T.append(" ",D," ");const U=e.createElement("div","lh-tools__dropdown");U.setAttribute("id","lh-tools-dropdown"),U.setAttribute("role","menu"),U.setAttribute("aria-labelledby","lh-tools-button");const I=e.createElement("a","lh-report-icon lh-report-icon--print");I.setAttribute("role","menuitem"),I.setAttribute("tabindex","-1"),I.setAttribute("href","#"),I.setAttribute("data-i18n","dropdownPrintSummary"),I.setAttribute("data-action","print-summary");const O=e.createElement("a","lh-report-icon lh-report-icon--print");O.setAttribute("role","menuitem"),O.setAttribute("tabindex","-1"),O.setAttribute("href","#"),O.setAttribute("data-i18n","dropdownPrintExpanded"),O.setAttribute("data-action","print-expanded");const B=e.createElement("a","lh-report-icon lh-report-icon--copy");B.setAttribute("role","menuitem"),B.setAttribute("tabindex","-1"),B.setAttribute("href","#"),B.setAttribute("data-i18n","dropdownCopyJSON"),B.setAttribute("data-action","copy");const V=e.createElement("a","lh-report-icon lh-report-icon--download lh-hidden");V.setAttribute("role","menuitem"),V.setAttribute("tabindex","-1"),V.setAttribute("href","#"),V.setAttribute("data-i18n","dropdownSaveHTML"),V.setAttribute("data-action","save-html");const $=e.createElement("a","lh-report-icon lh-report-icon--download");$.setAttribute("role","menuitem"),$.setAttribute("tabindex","-1"),$.setAttribute("href","#"),$.setAttribute("data-i18n","dropdownSaveJSON"),$.setAttribute("data-action","save-json");const j=e.createElement("a","lh-report-icon lh-report-icon--open");j.setAttribute("role","menuitem"),j.setAttribute("tabindex","-1"),j.setAttribute("href","#"),j.setAttribute("data-i18n","dropdownViewer"),j.setAttribute("data-action","open-viewer");const G=e.createElement("a","lh-report-icon lh-report-icon--open");G.setAttribute("role","menuitem"),G.setAttribute("tabindex","-1"),G.setAttribute("href","#"),G.setAttribute("data-i18n","dropdownSaveGist"),G.setAttribute("data-action","save-gist");const W=e.createElement("a","lh-report-icon lh-report-icon--dark");return W.setAttribute("role","menuitem"),W.setAttribute("tabindex","-1"),W.setAttribute("href","#"),W.setAttribute("data-i18n","dropdownDarkTheme"),W.setAttribute("data-action","toggle-dark"),U.append(" ",I," ",O," ",B," "," ",V," ",$," ",j," ",G," ",W," "),E.append(" ",z," ",T," ",U," "),r.append(" "," ",o," ",S," ",E," "),t.append(r),t}(e);case"warningsToplevel":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-warnings lh-warnings--toplevel"),r=e.createElement("p","lh-warnings__msg"),o=e.createElement("ul");return n.append(" ",r," ",o," "),t.append(n),t}(e)}throw new Error("unexpected component: "+t)}(this,e),this._componentCache.set(e,t);return t.cloneNode(!0)}clearComponentCache(){this._componentCache.clear()}convertMarkdownLinkSnippets(e){const t=this.createElement("span");for(const n of pe.splitMarkdownLink(e)){const e=n.text.includes("`")?this.convertMarkdownCodeSnippets(n.text):n.text;if(!n.isLink){t.append(e);continue}const r=new URL(n.linkHref);["https://developers.google.com","https://web.dev"].includes(r.origin)&&(r.searchParams.set("utm_source","lighthouse"),r.searchParams.set("utm_medium",this._lighthouseChannel));const o=this.createElement("a");o.rel="noopener",o.target="_blank",o.append(e),this.safelySetHref(o,r.href),t.append(o)}return t}safelySetHref(e,t){if((t=t||"").startsWith("#"))return void(e.href=t);let n;try{n=new URL(t)}catch(e){}n&&["https:","http:"].includes(n.protocol)&&(e.href=n.href)}safelySetBlobHref(e,t){if("text/html"!==t.type&&"application/json"!==t.type)throw new Error("Unsupported blob type");const n=URL.createObjectURL(t);e.href=n}convertMarkdownCodeSnippets(e){const t=this.createElement("span");for(const n of pe.splitMarkdownCodeSpans(e))if(n.isCode){const e=this.createElement("code");e.textContent=n.text,t.append(e)}else t.append(this._document.createTextNode(n.text));return t}setLighthouseChannel(e){this._lighthouseChannel=e}document(){return this._document}isDevTools(){return!!this._document.querySelector(".lh-devtools")}find(e,t){const n=t.querySelector(e);if(null===n)throw new Error(`query ${e} not found`);return n}findAll(e,t){return Array.from(t.querySelectorAll(e))}fireEventOn(e,t=this._document,n){const r=new CustomEvent(e,n?{detail:n}:void 0);t.dispatchEvent(r)}saveFile(e,t){const n=this.createElement("a");n.download=t,this.safelySetBlobHref(n,e),this._document.body.append(n),n.click(),this._document.body.removeChild(n),setTimeout((()=>URL.revokeObjectURL(n.href)),500)}}
|
|
56
|
+
class yt{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",this._componentCache=new Map,this.rootEl=t}createElement(e,t){const n=this._document.createElement(e);if(t)for(const e of t.split(/\s+/))e&&n.classList.add(e);return n}createElementNS(e,t,n){const r=this._document.createElementNS(e,t);if(n)for(const e of n.split(/\s+/))e&&r.classList.add(e);return r}createFragment(){return this._document.createDocumentFragment()}createTextNode(e){return this._document.createTextNode(e)}createChildOf(e,t,n){const r=this.createElement(t,n);return e.append(r),r}createComponent(e){let t=this._componentCache.get(e);if(t){const e=t.cloneNode(!0);return this.findAll("style",e).forEach((e=>e.remove())),e}t=function(e,t){switch(t){case"3pFilter":return function(e){const 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);const r=e.createElement("div","lh-3p-filter"),o=e.createElement("label","lh-3p-filter-label"),i=e.createElement("input","lh-3p-filter-input");i.setAttribute("type","checkbox"),i.setAttribute("checked","");const a=e.createElement("span","lh-3p-ui-string");a.append("Show 3rd party resources");const l=e.createElement("span","lh-3p-filter-count");return o.append(" ",i," ",a," (",l,") "),r.append(" ",o," "),t.append(r),t}(e);case"audit":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit"),r=e.createElement("details","lh-expandable-details"),o=e.createElement("summary"),i=e.createElement("div","lh-audit__header lh-expandable-details__summary"),a=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," ");const d=e.createElement("div","lh-chevron-container");i.append(" ",a," ",l," ",d," "),o.append(" ",i," ");const h=e.createElement("div","lh-audit__description"),p=e.createElement("div","lh-audit__stackpacks");return r.append(" ",o," ",h," ",p," "),n.append(" ",r," "),t.append(n),t}(e);case"categoryHeader":return function(e){const 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");const o=e.createElement("div","lh-category-header__description");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"chevron":return function(e){const t=e.createFragment(),n=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-chevron");n.setAttribute("viewBox","0 0 100 100");const r=e.createElementNS("http://www.w3.org/2000/svg","g","lh-chevron__lines"),o=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-left");o.setAttribute("d","M10 50h40");const i=e.createElementNS("http://www.w3.org/2000/svg","path","lh-chevron__line lh-chevron__line-right");return i.setAttribute("d","M90 50H50"),r.append(" ",o," ",i," "),n.append(" ",r," "),t.append(n),t}(e);case"clump":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit-group"),r=e.createElement("details","lh-clump"),o=e.createElement("summary"),i=e.createElement("div","lh-audit-group__summary"),a=e.createElement("div","lh-audit-group__header"),l=e.createElement("span","lh-audit-group__title"),s=e.createElement("span","lh-audit-group__itemcount");a.append(" ",l," ",s," "," "," ");const 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," "),i.append(" ",a," ",c," "),o.append(" ",i," "),r.append(" ",o," "),n.append(" "," ",r," "),t.append(n),t}(e);case"crc":return function(e){const 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 ');const o=e.createElement("div"),i=e.createElement("div","lh-crc__summary-value"),a=e.createElement("span","lh-crc__longest_duration_label"),l=e.createElement("b","lh-crc__longest_duration");i.append(" ",a," ",l," "),o.append(" ",i," ");const s=e.createElement("div","lh-crc"),c=e.createElement("div","lh-crc-initial-nav");return s.append(" ",c," "," "),n.append(" ",r," ",o," ",s," "),t.append(n),t}(e);case"crcChain":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-crc-node"),r=e.createElement("span","lh-crc-node__tree-marker"),o=e.createElement("span","lh-crc-node__tree-value");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"elementScreenshot":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-element-screenshot"),r=e.createElement("div","lh-element-screenshot__content"),o=e.createElement("div","lh-element-screenshot__image"),i=e.createElement("div","lh-element-screenshot__mask"),a=e.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("height","0"),a.setAttribute("width","0");const 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," "," "),a.append(" ",l," "),i.append(" ",a," ");const c=e.createElement("div","lh-element-screenshot__element-marker");return o.append(" ",i," ",c," "),r.append(" ",o," "),n.append(" ",r," "),t.append(n),t}(e);case"footer":return function(e){const 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);const r=e.createElement("footer","lh-footer"),o=e.createElement("ul","lh-meta__items");o.append(" ");const i=e.createElement("div","lh-generated"),a=e.createElement("b");a.append("Lighthouse");const 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"),i.append(" "," Generated by ",a," ",l," | ",s," "),r.append(" ",o," ",i," "),t.append(r),t}(e);case"fraction":return function(e){const t=e.createFragment(),n=e.createElement("a","lh-fraction__wrapper"),r=e.createElement("div","lh-fraction__content-wrapper"),o=e.createElement("div","lh-fraction__content"),i=e.createElement("div","lh-fraction__background");o.append(" ",i," "),r.append(" ",o," ");const a=e.createElement("div","lh-fraction__label");return n.append(" ",r," ",a," "),t.append(n),t}(e);case"gauge":return function(e){const t=e.createFragment(),n=e.createElement("a","lh-gauge__wrapper"),r=e.createElement("div","lh-gauge__svg-wrapper"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge");o.setAttribute("viewBox","0 0 120 120");const i=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-base");i.setAttribute("r","56"),i.setAttribute("cx","60"),i.setAttribute("cy","60"),i.setAttribute("stroke-width","8");const a=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge-arc");a.setAttribute("r","56"),a.setAttribute("cx","60"),a.setAttribute("cy","60"),a.setAttribute("stroke-width","8"),o.append(" ",i," ",a," "),r.append(" ",o," ");const 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"gaugePwa":return function(e){const t=e.createFragment(),n=e.createElement("style");n.append("\n .lh-gauge--pwa .lh-gauge--pwa__component {\n display: none;\n }\n .lh-gauge--pwa__wrapper:not(.lh-badged--all) .lh-gauge--pwa__logo > path {\n /* Gray logo unless everything is passing. */\n fill: #B0B0B0;\n }\n\n .lh-gauge--pwa__disc {\n fill: var(--color-gray-200);\n }\n\n .lh-gauge--pwa__logo--primary-color {\n fill: #304FFE;\n }\n\n .lh-gauge--pwa__logo--secondary-color {\n fill: #3D3D3D;\n }\n .lh-dark .lh-gauge--pwa__logo--secondary-color {\n fill: #D8B6B6;\n }\n\n /* No passing groups. */\n .lh-gauge--pwa__wrapper:not([class*='lh-badged--']) .lh-gauge--pwa__na-line {\n display: inline;\n }\n /* Just optimized. Same n/a line as no passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-optimized:not(.lh-badged--pwa-installable) .lh-gauge--pwa__na-line {\n display: inline;\n }\n\n /* Just installable. */\n .lh-gauge--pwa__wrapper.lh-badged--pwa-installable .lh-gauge--pwa__installable-badge {\n display: inline;\n }\n\n /* All passing groups. */\n .lh-gauge--pwa__wrapper.lh-badged--all .lh-gauge--pwa__check-circle {\n display: inline;\n }\n "),t.append(n);const r=e.createElement("a","lh-gauge__wrapper lh-gauge--pwa__wrapper"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-gauge lh-gauge--pwa");o.setAttribute("viewBox","0 0 60 60");const i=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");a.setAttribute("id","lh-gauge--pwa__check-circle__gradient"),a.setAttribute("x1","50%"),a.setAttribute("y1","0%"),a.setAttribute("x2","50%"),a.setAttribute("y2","100%");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#00C852"),l.setAttribute("offset","0%");const s=e.createElementNS("http://www.w3.org/2000/svg","stop");s.setAttribute("stop-color","#009688"),s.setAttribute("offset","100%"),a.append(" ",l," ",s," ");const c=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");c.setAttribute("id","lh-gauge--pwa__installable__shadow-gradient"),c.setAttribute("x1","76.056%"),c.setAttribute("x2","24.111%"),c.setAttribute("y1","82.995%"),c.setAttribute("y2","24.735%");const d=e.createElementNS("http://www.w3.org/2000/svg","stop");d.setAttribute("stop-color","#A5D6A7"),d.setAttribute("offset","0%");const h=e.createElementNS("http://www.w3.org/2000/svg","stop");h.setAttribute("stop-color","#80CBC4"),h.setAttribute("offset","100%"),c.append(" ",d," ",h," ");const p=e.createElementNS("http://www.w3.org/2000/svg","g");p.setAttribute("id","lh-gauge--pwa__installable-badge");const u=e.createElementNS("http://www.w3.org/2000/svg","circle");u.setAttribute("fill","#FFFFFF"),u.setAttribute("cx","10"),u.setAttribute("cy","10"),u.setAttribute("r","10");const g=e.createElementNS("http://www.w3.org/2000/svg","path");g.setAttribute("fill","#009688"),g.setAttribute("d","M10 4.167A5.835 5.835 0 0 0 4.167 10 5.835 5.835 0 0 0 10 15.833 5.835 5.835 0 0 0 15.833 10 5.835 5.835 0 0 0 10 4.167zm2.917 6.416h-2.334v2.334H9.417v-2.334H7.083V9.417h2.334V7.083h1.166v2.334h2.334v1.166z"),p.append(" ",u," ",g," "),i.append(" ",a," ",c," ",p," ");const m=e.createElementNS("http://www.w3.org/2000/svg","g");m.setAttribute("stroke","none"),m.setAttribute("fill-rule","nonzero");const f=e.createElementNS("http://www.w3.org/2000/svg","circle","lh-gauge--pwa__disc");f.setAttribute("cx","30"),f.setAttribute("cy","30"),f.setAttribute("r","30");const _=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__logo"),v=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");v.setAttribute("d","M35.66 19.39l.7-1.75h2L37.4 15 38.6 12l3.4 9h-2.51l-.58-1.61z");const b=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--primary-color");b.setAttribute("d","M33.52 21l3.65-9h-2.42l-2.5 5.82L30.5 12h-1.86l-1.9 5.82-1.35-2.65-1.21 3.72L25.4 21h2.38l1.72-5.2 1.64 5.2z");const w=e.createElementNS("http://www.w3.org/2000/svg","path","lh-gauge--pwa__logo--secondary-color");w.setAttribute("fill-rule","nonzero"),w.setAttribute("d","M20.3 17.91h1.48c.45 0 .85-.05 1.2-.15l.39-1.18 1.07-3.3a2.64 2.64 0 0 0-.28-.37c-.55-.6-1.36-.91-2.42-.91H18v9h2.3V17.9zm1.96-3.84c.22.22.33.5.33.87 0 .36-.1.65-.29.87-.2.23-.59.35-1.15.35h-.86v-2.41h.87c.52 0 .89.1 1.1.32z"),_.append(" ",v," ",b," ",w," ");const y=e.createElementNS("http://www.w3.org/2000/svg","rect","lh-gauge--pwa__component lh-gauge--pwa__na-line");y.setAttribute("fill","#FFFFFF"),y.setAttribute("x","20"),y.setAttribute("y","32"),y.setAttribute("width","20"),y.setAttribute("height","4"),y.setAttribute("rx","2");const x=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__installable-badge");x.setAttribute("transform","translate(20, 29)");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-gauge--pwa__installable__shadow-gradient)"),k.setAttribute("d","M33.629 19.487c-4.272 5.453-10.391 9.39-17.415 10.869L3 17.142 17.142 3 33.63 19.487z");const A=e.createElementNS("http://www.w3.org/2000/svg","use");A.setAttribute("href","#lh-gauge--pwa__installable-badge"),x.append(" ",k," ",A," ");const C=e.createElementNS("http://www.w3.org/2000/svg","g","lh-gauge--pwa__component lh-gauge--pwa__check-circle");C.setAttribute("transform","translate(18, 28)");const E=e.createElementNS("http://www.w3.org/2000/svg","circle");E.setAttribute("fill","#FFFFFF"),E.setAttribute("cx","12"),E.setAttribute("cy","12"),E.setAttribute("r","12");const S=e.createElementNS("http://www.w3.org/2000/svg","path");S.setAttribute("fill","url(#lh-gauge--pwa__check-circle__gradient)"),S.setAttribute("d","M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"),C.append(" ",E," ",S," "),m.append(" "," ",f," ",_," "," ",y," "," ",x," "," ",C," "),o.append(" ",i," ",m," ");const z=e.createElement("div","lh-gauge__label");return r.append(" ",o," ",z," "),t.append(r),t}(e);case"heading":return function(e){const 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 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 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);const r=e.createElement("div","lh-header-container"),o=e.createElement("div","lh-scores-wrapper-placeholder");return r.append(" ",o," "),t.append(r),t}(e);case"metric":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-metric"),r=e.createElement("div","lh-metric__innerwrap"),o=e.createElement("div","lh-metric__icon"),i=e.createElement("span","lh-metric__title"),a=e.createElement("div","lh-metric__value"),l=e.createElement("div","lh-metric__description");return r.append(" ",o," ",i," ",a," ",l," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunity":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-audit lh-audit--load-opportunity"),r=e.createElement("details","lh-expandable-details"),o=e.createElement("summary"),i=e.createElement("div","lh-audit__header"),a=e.createElement("div","lh-load-opportunity__cols"),l=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),s=e.createElement("span","lh-audit__score-icon"),c=e.createElement("div","lh-audit__title");l.append(" ",s," ",c," ");const d=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two"),h=e.createElement("div","lh-load-opportunity__sparkline"),p=e.createElement("div","lh-sparkline"),u=e.createElement("div","lh-sparkline__bar");p.append(u),h.append(" ",p," ");const g=e.createElement("div","lh-audit__display-text"),m=e.createElement("div","lh-chevron-container");d.append(" ",h," ",g," ",m," "),a.append(" ",l," ",d," "),i.append(" ",a," "),o.append(" ",i," ");const f=e.createElement("div","lh-audit__description"),_=e.createElement("div","lh-audit__stackpacks");return r.append(" ",o," ",f," ",_," "),n.append(" ",r," "),t.append(n),t}(e);case"opportunityHeader":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-load-opportunity__header lh-load-opportunity__cols"),r=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--one"),o=e.createElement("div","lh-load-opportunity__col lh-load-opportunity__col--two");return n.append(" ",r," ",o," "),t.append(n),t}(e);case"scorescale":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-scorescale"),r=e.createElement("span","lh-scorescale-range lh-scorescale-range--fail");r.append("0–49");const o=e.createElement("span","lh-scorescale-range lh-scorescale-range--average");o.append("50–89");const i=e.createElement("span","lh-scorescale-range lh-scorescale-range--pass");return i.append("90–100"),n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"scoresWrapper":return function(e){const 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: 1;\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 }\n\n .lh-gauge__wrapper:first-of-type {\n contain: none;\n }\n "),t.append(n);const r=e.createElement("div","lh-scores-wrapper"),o=e.createElement("div","lh-scores-container"),i=e.createElement("div","lh-pyro"),a=e.createElement("div","lh-pyro-before"),l=e.createElement("div","lh-pyro-after");return i.append(" ",a," ",l," "),o.append(" ",i," "),r.append(" ",o," "),t.append(r),t}(e);case"snippet":return function(e){const 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){const 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){const t=e.createFragment(),n=e.createElement("div","lh-snippet__header"),r=e.createElement("div","lh-snippet__title"),o=e.createElement("div","lh-snippet__node"),i=e.createElement("button","lh-snippet__toggle-expand"),a=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 i.append(" ",a," ",l," "),n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"snippetLine":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-snippet__line"),r=e.createElement("div","lh-snippet__line-number"),o=e.createElement("div","lh-snippet__line-icon"),i=e.createElement("code");return n.append(" ",r," ",o," ",i," "),t.append(n),t}(e);case"styles":return function(e){const t=e.createFragment(),n=e.createElement("style");return n.append('/**\n * @license\n * Copyright 2017 The Lighthouse Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS-IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\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 --pwa-icon-margin: 0 var(--default-padding);\n --pwa-icon-size: var(--topbar-logo-size);\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 --sparkline-height: 5px;\n --stackpack-padding-horizontal: 10px;\n --sticky-header-background-color: var(--report-background-color);\n --table-higlight-background-color: hsla(210, 17%, 77%, 0.1);\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\n --pwa-installable-gray-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="nonzero"><circle fill="%23DAE0E3" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-gray-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%23DAE0E3" width="24" height="24" rx="12"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/><path d="M5 5h14v14H5z"/></g></svg>\');\n\n --pwa-installable-gray-url-dark: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="nonzero"><circle fill="%23424242" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-gray-url-dark: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%23424242" width="24" height="24" rx="12"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/><path d="M5 5h14v14H5z"/></g></svg>\');\n\n --pwa-installable-color-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="none"><circle fill="%230CCE6B" cx="12" cy="12" r="12"/><path d="M12 5a7 7 0 1 0 0 14 7 7 0 0 0 0-14zm3.5 7.7h-2.8v2.8h-1.4v-2.8H8.5v-1.4h2.8V8.5h1.4v2.8h2.8v1.4z" fill="%23FFF"/></g></svg>\');\n --pwa-optimized-color-url: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><rect fill="%230CCE6B" width="24" height="24" rx="12"/><path d="M5 5h14v14H5z"/><path fill="%23FFF" d="M12 15.07l3.6 2.18-.95-4.1 3.18-2.76-4.2-.36L12 6.17l-1.64 3.86-4.2.36 3.2 2.76-.96 4.1z"/></g></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\n /* SVGs */\n --plugin-icon-url: var(--plugin-icon-url-dark);\n --pwa-installable-gray-url: var(--pwa-installable-gray-url-dark);\n --pwa-optimized-gray-url: var(--pwa-optimized-gray-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 --pwa-icon-margin: 0 7px 0 -3px;\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 /* Not enough space to adequately show the relative savings bars. */\n .lh-sparkline {\n display: none;\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 --pwa-icon-margin: 0 7px 0 -3px;\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-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}\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 {\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 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 1.05-2.735-.512-1.15-1.585-1.562-2.736-1.052z"/></svg>\');\n}\n.lh-report-icon--treemap::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="black"><path d="M3 5v14h19V5H3zm2 2h15v4H5V7zm0 10v-4h4v4H5zm6 0v-4h9v4h-9z"/></svg>\');\n}\n.lh-report-icon--date::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 11h2v2H7v-2zm14-5v14a2 2 0 01-2 2H5a2 2 0 01-2-2V6c0-1.1.9-2 2-2h1V2h2v2h8V2h2v2h1a2 2 0 012 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z"/></svg>\');\n}\n.lh-report-icon--devices::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 6h18V4H4a2 2 0 00-2 2v11H0v3h14v-3H4V6zm19 2h-6a1 1 0 00-1 1v10c0 .6.5 1 1 1h6c.6 0 1-.5 1-1V9c0-.6-.5-1-1-1zm-1 9h-4v-7h4v7z"/></svg>\');\n}\n.lh-report-icon--world::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm7 6h-3c-.3-1.3-.8-2.5-1.4-3.6A8 8 0 0 1 18.9 8zm-7-4a14 14 0 0 1 2 4h-4a14 14 0 0 1 2-4zM4.3 14a8.2 8.2 0 0 1 0-4h3.3a16.5 16.5 0 0 0 0 4H4.3zm.8 2h3a14 14 0 0 0 1.3 3.6A8 8 0 0 1 5.1 16zm3-8H5a8 8 0 0 1 4.3-3.6L8 8zM12 20a14 14 0 0 1-2-4h4a14 14 0 0 1-2 4zm2.3-6H9.7a14.7 14.7 0 0 1 0-4h4.6a14.6 14.6 0 0 1 0 4zm.3 5.6c.6-1.2 1-2.4 1.4-3.6h3a8 8 0 0 1-4.4 3.6zm1.8-5.6a16.5 16.5 0 0 0 0-4h3.3a8.2 8.2 0 0 1 0 4h-3.3z"/></svg>\');\n}\n.lh-report-icon--stopwatch::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.1-6.6L20.5 6l-1.4-1.4L17.7 6A9 9 0 0 0 3 13a9 9 0 1 0 16-5.6zm-7 12.6a7 7 0 1 1 0-14 7 7 0 0 1 0 14z"/></svg>\');\n}\n.lh-report-icon--networkspeed::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.9 5c-.2 0-.3 0-.4.2v.2L10.1 17a2 2 0 0 0-.2 1 2 2 0 0 0 4 .4l2.4-12.9c0-.3-.2-.5-.5-.5zM1 9l2 2c2.9-2.9 6.8-4 10.5-3.6l1.2-2.7C10 3.8 4.7 5.3 1 9zm20 2 2-2a15.4 15.4 0 0 0-5.6-3.6L17 8.2c1.5.7 2.9 1.6 4.1 2.8zm-4 4 2-2a9.9 9.9 0 0 0-2.7-1.9l-.5 3 1.2.9zM5 13l2 2a7.1 7.1 0 0 1 4-2l1.3-2.9C9.7 10.1 7 11 5 13z"/></svg>\');\n}\n.lh-report-icon--samples-one::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="7" cy="14" r="3"/><path d="M7 18a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5.6 17.6a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>\');\n}\n.lh-report-icon--samples-many::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 18a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5.6 17.6a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/><circle cx="7" cy="14" r="3"/><circle cx="11" cy="6" r="3"/></svg>\');\n}\n.lh-report-icon--chrome::before {\n background-image: url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="-50 -50 562 562"><path d="M256 25.6v25.6a204 204 0 0 1 144.8 60 204 204 0 0 1 60 144.8 204 204 0 0 1-60 144.8 204 204 0 0 1-144.8 60 204 204 0 0 1-144.8-60 204 204 0 0 1-60-144.8 204 204 0 0 1 60-144.8 204 204 0 0 1 144.8-60V0a256 256 0 1 0 0 512 256 256 0 0 0 0-512v25.6z"/><path d="M256 179.2v25.6a51.3 51.3 0 0 1 0 102.4 51.3 51.3 0 0 1 0-102.4v-51.2a102.3 102.3 0 1 0-.1 204.7 102.3 102.3 0 0 0 .1-204.7v25.6z"/><path d="M256 204.8h217.6a25.6 25.6 0 0 0 0-51.2H256a25.6 25.6 0 0 0 0 51.2m44.3 76.8L191.5 470.1a25.6 25.6 0 1 0 44.4 25.6l108.8-188.5a25.6 25.6 0 1 0-44.4-25.6m-88.6 0L102.9 93.2a25.7 25.7 0 0 0-35-9.4 25.7 25.7 0 0 0-9.4 35l108.8 188.5a25.7 25.7 0 0 0 35 9.4 25.9 25.9 0 0 0 9.4-35.1"/></svg>\');\n}\n\n\n\n.lh-buttons {\n display: flex;\n flex-wrap: wrap;\n margin: var(--default-padding) 0;\n}\n.lh-button {\n height: 32px;\n border: 1px solid var(--report-border-color-secondary);\n border-radius: 3px;\n color: var(--link-color);\n background-color: var(--report-background-color);\n margin: 5px;\n}\n\n.lh-button:first-of-type {\n margin-left: 0;\n}\n\n/* Node */\n.lh-node__snippet {\n font-family: var(--report-font-family-monospace);\n color: var(--snippet-color);\n font-size: var(--report-monospace-font-size);\n line-height: 20px;\n}\n\n/* Score */\n\n.lh-audit__score-icon {\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n margin: var(--score-icon-margin);\n}\n\n.lh-audit--pass .lh-audit__display-text {\n color: var(--color-pass-secondary);\n}\n.lh-audit--pass .lh-audit__score-icon,\n.lh-scorescale-range--pass::before {\n border-radius: 100%;\n background: var(--color-pass);\n}\n\n.lh-audit--average .lh-audit__display-text {\n color: var(--color-average-secondary);\n}\n.lh-audit--average .lh-audit__score-icon,\n.lh-scorescale-range--average::before {\n background: var(--color-average);\n width: var(--icon-square-size);\n height: var(--icon-square-size);\n}\n\n.lh-audit--fail .lh-audit__display-text {\n color: var(--color-fail-secondary);\n}\n.lh-audit--fail .lh-audit__score-icon,\n.lh-audit--error .lh-audit__score-icon,\n.lh-scorescale-range--fail::before {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n\n.lh-audit--manual .lh-audit__display-text,\n.lh-audit--notapplicable .lh-audit__display-text {\n color: var(--color-gray-600);\n}\n.lh-audit--manual .lh-audit__score-icon,\n.lh-audit--notapplicable .lh-audit__score-icon {\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n border-radius: 100%;\n background: none;\n}\n\n.lh-audit--informative .lh-audit__display-text {\n color: var(--color-gray-600);\n}\n\n.lh-audit--informative .lh-audit__score-icon {\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n border-radius: 100%;\n}\n\n.lh-audit__description,\n.lh-audit__stackpack {\n color: var(--report-text-color-secondary);\n}\n.lh-audit__adorn {\n border: 1px solid slategray;\n border-radius: 3px;\n margin: 0 3px;\n padding: 0 2px;\n line-height: 1.1;\n display: inline-block;\n font-size: 90%;\n}\n\n.lh-category-header__description {\n text-align: center;\n color: var(--color-gray-700);\n margin: 0px auto;\n max-width: 400px;\n}\n\n\n.lh-audit__display-text,\n.lh-load-opportunity__sparkline,\n.lh-chevron-container {\n margin: 0 var(--audit-margin-horizontal);\n}\n.lh-chevron-container {\n margin-right: 0;\n}\n\n.lh-audit__title-and-text {\n flex: 1;\n}\n\n.lh-audit__title-and-text code {\n color: var(--snippet-color);\n font-size: var(--report-monospace-font-size);\n}\n\n/* Prepend display text with em dash separator. But not in Opportunities. */\n.lh-audit__display-text:not(:empty):before {\n content: \'—\';\n margin-right: var(--audit-margin-horizontal);\n}\n.lh-audit-group.lh-audit-group--load-opportunities .lh-audit__display-text:not(:empty):before {\n display: none;\n}\n\n/* Expandable Details (Audit Groups, Audits) */\n.lh-audit__header {\n display: flex;\n align-items: center;\n padding: var(--default-padding);\n}\n\n.lh-audit--load-opportunity .lh-audit__header {\n display: block;\n}\n\n\n.lh-metricfilter {\n display: grid;\n justify-content: end;\n align-items: center;\n grid-auto-flow: column;\n gap: 4px;\n color: var(--color-gray-700);\n}\n\n.lh-metricfilter__radio {\n position: absolute;\n left: -9999px;\n}\n.lh-metricfilter input[type=\'radio\']:focus-visible + label {\n outline: -webkit-focus-ring-color auto 1px;\n}\n\n.lh-metricfilter__label {\n display: inline-flex;\n padding: 0 4px;\n height: 16px;\n text-decoration: underline;\n align-items: center;\n cursor: pointer;\n font-size: 90%;\n}\n\n.lh-metricfilter__label--active {\n background: var(--color-blue-primary);\n color: var(--color-white);\n border-radius: 3px;\n text-decoration: none;\n}\n/* Give the \'All\' choice a more muted display */\n.lh-metricfilter__label--active[for="metric-All"] {\n background-color: var(--color-blue-200) !important;\n color: black !important;\n}\n\n.lh-metricfilter__text {\n margin-right: 8px;\n}\n\n/* If audits are filtered, hide the itemcount for Passed Audits… */\n.lh-category--filtered .lh-audit-group .lh-audit-group__itemcount {\n display: none;\n}\n\n\n.lh-audit__header:hover {\n background-color: var(--color-hover);\n}\n\n/* We want to hide the browser\'s default arrow marker on summary elements. Admittedly, it\'s complicated. */\n.lh-root details > summary {\n /* Blink 89+ and Firefox will hide the arrow when display is changed from (new) default of `list-item` to block. https://chromestatus.com/feature/6730096436051968*/\n display: block;\n}\n/* Safari and Blink <=88 require using the -webkit-details-marker selector */\n.lh-root details > summary::-webkit-details-marker {\n display: none;\n}\n\n/* Perf Metric */\n\n.lh-metrics-container {\n display: grid;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr 1fr;\n grid-column-gap: var(--report-line-height);\n margin-bottom: var(--default-padding);\n}\n\n.lh-metric {\n border-top: 1px solid var(--report-border-color-secondary);\n}\n\n.lh-category:not(.lh--hoisted-meta) .lh-metric:nth-last-child(-n+2) {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\n\n.lh-metric__innerwrap {\n display: grid;\n /**\n * Icon -- Metric Name\n * -- Metric Value\n */\n grid-template-columns: calc(var(--score-icon-size) + var(--score-icon-margin-left) + var(--score-icon-margin-right)) 1fr;\n align-items: center;\n padding: var(--default-padding);\n}\n\n.lh-metric__details {\n order: -1;\n}\n\n.lh-metric__title {\n flex: 1;\n}\n\n.lh-calclink {\n padding-left: calc(1ex / 3);\n}\n\n.lh-metric__description {\n display: none;\n grid-column-start: 2;\n grid-column-end: 4;\n color: var(--report-text-color-secondary);\n}\n\n.lh-metric__value {\n font-size: var(--metric-value-font-size);\n margin: calc(var(--default-padding) / 2) 0;\n white-space: nowrap; /* No wrapping between metric value and the icon */\n grid-column-start: 2;\n}\n\n\n@media screen and (max-width: 535px) {\n .lh-metrics-container {\n display: block;\n }\n\n .lh-metric {\n border-bottom: none !important;\n }\n .lh-category:not(.lh--hoisted-meta) .lh-metric:nth-last-child(1) {\n border-bottom: 1px solid var(--report-border-color-secondary) !important;\n }\n\n /* Change the grid to 3 columns for narrow viewport. */\n .lh-metric__innerwrap {\n /**\n * Icon -- Metric Name -- Metric Value\n */\n grid-template-columns: calc(var(--score-icon-size) + var(--score-icon-margin-left) + var(--score-icon-margin-right)) 2fr 1fr;\n }\n .lh-metric__value {\n justify-self: end;\n grid-column-start: unset;\n }\n}\n\n/* No-JS toggle switch */\n/* Keep this selector sync\'d w/ `magicSelector` in report-ui-features-test.js */\n .lh-metrics-toggle__input:checked ~ .lh-metrics-container .lh-metric__description {\n display: block;\n}\n\n/* TODO get rid of the SVGS and clean up these some more */\n.lh-metrics-toggle__input {\n opacity: 0;\n position: absolute;\n right: 0;\n top: 0px;\n}\n\n.lh-metrics-toggle__input + div > label > .lh-metrics-toggle__labeltext--hide,\n.lh-metrics-toggle__input:checked + div > label > .lh-metrics-toggle__labeltext--show {\n display: none;\n}\n.lh-metrics-toggle__input:checked + div > label > .lh-metrics-toggle__labeltext--hide {\n display: inline;\n}\n.lh-metrics-toggle__input:focus + div > label {\n outline: -webkit-focus-ring-color auto 3px;\n}\n\n.lh-metrics-toggle__label {\n cursor: pointer;\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n color: var(--color-gray-700);\n}\n\n/* Pushes the metric description toggle button to the right. */\n.lh-audit-group--metrics .lh-audit-group__header {\n display: flex;\n justify-content: space-between;\n}\n\n.lh-metric__icon,\n.lh-scorescale-range::before {\n content: \'\';\n width: var(--score-icon-size);\n height: var(--score-icon-size);\n display: inline-block;\n margin: var(--score-icon-margin);\n}\n\n.lh-metric--pass .lh-metric__value {\n color: var(--color-pass-secondary);\n}\n.lh-metric--pass .lh-metric__icon {\n border-radius: 100%;\n background: var(--color-pass);\n}\n\n.lh-metric--average .lh-metric__value {\n color: var(--color-average-secondary);\n}\n.lh-metric--average .lh-metric__icon {\n background: var(--color-average);\n width: var(--icon-square-size);\n height: var(--icon-square-size);\n}\n\n.lh-metric--fail .lh-metric__value {\n color: var(--color-fail-secondary);\n}\n.lh-metric--fail .lh-metric__icon,\n.lh-metric--error .lh-metric__icon {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n\n.lh-metric--error .lh-metric__value,\n.lh-metric--error .lh-metric__description {\n color: var(--color-fail-secondary);\n}\n\n/* Perf load opportunity */\n\n.lh-load-opportunity__cols {\n display: flex;\n align-items: flex-start;\n}\n\n.lh-load-opportunity__header .lh-load-opportunity__col {\n color: var(--color-gray-600);\n display: unset;\n line-height: calc(2.3 * var(--report-font-size));\n}\n\n.lh-load-opportunity__col {\n display: flex;\n}\n\n.lh-load-opportunity__col--one {\n flex: 5;\n align-items: center;\n margin-right: 2px;\n}\n.lh-load-opportunity__col--two {\n flex: 4;\n text-align: right;\n}\n\n.lh-audit--load-opportunity .lh-audit__display-text {\n text-align: right;\n flex: 0 0 calc(4 * var(--report-font-size));\n}\n\n\n/* Sparkline */\n\n.lh-load-opportunity__sparkline {\n flex: 1;\n margin-top: calc((var(--report-line-height) - var(--sparkline-height)) / 2);\n}\n\n.lh-sparkline {\n height: var(--sparkline-height);\n width: 100%;\n}\n\n.lh-sparkline__bar {\n height: 100%;\n float: right;\n}\n\n.lh-audit--pass .lh-sparkline__bar {\n background: var(--color-pass);\n}\n\n.lh-audit--average .lh-sparkline__bar {\n background: var(--color-average);\n}\n\n.lh-audit--fail .lh-sparkline__bar {\n background: var(--color-fail);\n}\n\n/* Filmstrip */\n\n.lh-filmstrip-container {\n /* smaller gap between metrics and filmstrip */\n margin: -8px auto 0 auto;\n}\n\n.lh-filmstrip {\n display: grid;\n justify-content: space-between;\n padding-bottom: var(--default-padding);\n width: 100%;\n grid-template-columns: repeat(auto-fit, 60px);\n}\n\n.lh-filmstrip__frame {\n text-align: right;\n position: relative;\n}\n\n.lh-filmstrip__thumbnail {\n border: 1px solid var(--report-border-color-secondary);\n max-height: 100px;\n max-width: 60px;\n}\n\n/* Audit */\n\n.lh-audit {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\n\n/* Apply border-top to just the first audit. */\n.lh-audit {\n border-top: 1px solid var(--report-border-color-secondary);\n}\n.lh-audit ~ .lh-audit {\n border-top: none;\n}\n\n\n.lh-audit--error .lh-audit__display-text {\n color: var(--color-fail-secondary);\n}\n\n/* Audit Group */\n\n.lh-audit-group {\n margin-bottom: var(--audit-group-margin-bottom);\n position: relative;\n}\n.lh-audit-group--metrics {\n margin-bottom: calc(var(--audit-group-margin-bottom) / 2);\n}\n\n.lh-audit-group__header::before {\n /* By default, groups don\'t get an icon */\n content: none;\n width: var(--pwa-icon-size);\n height: var(--pwa-icon-size);\n margin: var(--pwa-icon-margin);\n display: inline-block;\n vertical-align: middle;\n}\n\n/* Style the "over budget" columns red. */\n.lh-audit-group--budgets #performance-budget tbody tr td:nth-child(4),\n.lh-audit-group--budgets #performance-budget tbody tr td:nth-child(5),\n.lh-audit-group--budgets #timing-budget tbody tr td:nth-child(3) {\n color: var(--color-red-700);\n}\n\n/* Align the "over budget request count" text to be close to the "over budget bytes" column. */\n.lh-audit-group--budgets .lh-table tbody tr td:nth-child(4){\n text-align: right;\n}\n\n.lh-audit-group--budgets .lh-details--budget {\n width: 100%;\n margin: 0 0 var(--default-padding);\n}\n\n.lh-audit-group--pwa-installable .lh-audit-group__header::before {\n content: \'\';\n background-image: var(--pwa-installable-gray-url);\n}\n.lh-audit-group--pwa-optimized .lh-audit-group__header::before {\n content: \'\';\n background-image: var(--pwa-optimized-gray-url);\n}\n.lh-audit-group--pwa-installable.lh-badged .lh-audit-group__header::before {\n background-image: var(--pwa-installable-color-url);\n}\n.lh-audit-group--pwa-optimized.lh-badged .lh-audit-group__header::before {\n background-image: var(--pwa-optimized-color-url);\n}\n\n.lh-audit-group--metrics .lh-audit-group__summary {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.lh-audit-group__summary {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.lh-audit-group__header .lh-chevron {\n margin-top: calc((var(--report-line-height) - 5px) / 2);\n}\n\n.lh-audit-group__header {\n letter-spacing: 0.8px;\n padding: var(--default-padding);\n padding-left: 0;\n}\n\n.lh-audit-group__header, .lh-audit-group__summary {\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n color: var(--color-gray-700);\n}\n\n.lh-audit-group__title {\n text-transform: uppercase;\n font-weight: 500;\n}\n\n.lh-audit-group__itemcount {\n color: var(--color-gray-600);\n}\n\n.lh-audit-group__footer {\n color: var(--color-gray-600);\n display: block;\n margin-top: var(--default-padding);\n}\n\n.lh-details,\n.lh-category-header__description,\n.lh-load-opportunity__header,\n.lh-audit-group__footer {\n font-size: var(--report-font-size-secondary);\n line-height: var(--report-line-height-secondary);\n}\n\n.lh-audit-explanation {\n margin: var(--audit-padding-vertical) 0 calc(var(--audit-padding-vertical) / 2) var(--audit-margin-horizontal);\n line-height: var(--audit-explanation-line-height);\n display: inline-block;\n}\n\n.lh-audit--fail .lh-audit-explanation {\n color: var(--color-fail-secondary);\n}\n\n/* Report */\n.lh-list > :not(:last-child) {\n margin-bottom: calc(var(--default-padding) * 2);\n}\n\n.lh-header-container {\n display: block;\n margin: 0 auto;\n position: relative;\n word-wrap: break-word;\n}\n\n.lh-header-container .lh-scores-wrapper {\n border-bottom: 1px solid var(--color-gray-200);\n}\n\n\n.lh-report {\n min-width: var(--report-content-min-width);\n}\n\n.lh-exception {\n font-size: large;\n}\n\n.lh-code {\n white-space: normal;\n margin-top: 0;\n font-size: var(--report-monospace-font-size);\n}\n\n.lh-warnings {\n --item-margin: calc(var(--report-line-height) / 6);\n color: var(--color-average-secondary);\n margin: var(--audit-padding-vertical) 0;\n padding: var(--default-padding)\n var(--default-padding)\n var(--default-padding)\n calc(var(--audit-description-padding-left));\n background-color: var(--toplevel-warning-background-color);\n}\n.lh-warnings span {\n font-weight: bold;\n}\n\n.lh-warnings--toplevel {\n --item-margin: calc(var(--header-line-height) / 4);\n color: var(--toplevel-warning-text-color);\n margin-left: auto;\n margin-right: auto;\n max-width: var(--report-content-max-width-minus-edge-gap);\n padding: var(--toplevel-warning-padding);\n border-radius: 8px;\n}\n\n.lh-warnings__msg {\n color: var(--toplevel-warning-message-text-color);\n margin: 0;\n}\n\n.lh-warnings ul {\n margin: 0;\n}\n.lh-warnings li {\n margin: var(--item-margin) 0;\n}\n.lh-warnings li:last-of-type {\n margin-bottom: 0;\n}\n\n.lh-scores-header {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n.lh-scores-header__solo {\n padding: 0;\n border: 0;\n}\n\n/* Gauge */\n\n.lh-gauge__wrapper--pass {\n color: var(--color-pass-secondary);\n fill: var(--color-pass);\n stroke: var(--color-pass);\n}\n\n.lh-gauge__wrapper--average {\n color: var(--color-average-secondary);\n fill: var(--color-average);\n stroke: var(--color-average);\n}\n\n.lh-gauge__wrapper--fail {\n color: var(--color-fail-secondary);\n fill: var(--color-fail);\n stroke: var(--color-fail);\n}\n\n.lh-gauge__wrapper--not-applicable {\n color: var(--color-not-applicable);\n fill: var(--color-not-applicable);\n stroke: var(--color-not-applicable);\n}\n\n.lh-fraction__wrapper .lh-fraction__content::before {\n content: \'\';\n height: var(--score-icon-size);\n width: var(--score-icon-size);\n margin: var(--score-icon-margin);\n display: inline-block;\n}\n.lh-fraction__wrapper--pass .lh-fraction__content {\n color: var(--color-pass-secondary);\n}\n.lh-fraction__wrapper--pass .lh-fraction__background {\n background-color: var(--color-pass);\n}\n.lh-fraction__wrapper--pass .lh-fraction__content::before {\n background-color: var(--color-pass);\n border-radius: 50%;\n}\n.lh-fraction__wrapper--average .lh-fraction__content {\n color: var(--color-average-secondary);\n}\n.lh-fraction__wrapper--average .lh-fraction__background,\n.lh-fraction__wrapper--average .lh-fraction__content::before {\n background-color: var(--color-average);\n}\n.lh-fraction__wrapper--fail .lh-fraction__content {\n color: var(--color-fail);\n}\n.lh-fraction__wrapper--fail .lh-fraction__background {\n background-color: var(--color-fail);\n}\n.lh-fraction__wrapper--fail .lh-fraction__content::before {\n border-left: calc(var(--score-icon-size) / 2) solid transparent;\n border-right: calc(var(--score-icon-size) / 2) solid transparent;\n border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n.lh-fraction__wrapper--null .lh-fraction__content {\n color: var(--color-gray-700);\n}\n.lh-fraction__wrapper--null .lh-fraction__background {\n background-color: var(--color-gray-700);\n}\n.lh-fraction__wrapper--null .lh-fraction__content::before {\n border-radius: 50%;\n border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-700);\n}\n\n.lh-fraction__background {\n position: absolute;\n height: 100%;\n width: 100%;\n border-radius: calc(var(--gauge-circle-size) / 2);\n opacity: 0.1;\n z-index: -1;\n}\n\n.lh-fraction__content-wrapper {\n height: var(--gauge-circle-size);\n display: flex;\n align-items: center;\n}\n\n.lh-fraction__content {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: center;\n font-size: calc(0.3 * var(--gauge-circle-size));\n line-height: calc(0.4 * var(--gauge-circle-size));\n width: max-content;\n min-width: calc(1.5 * var(--gauge-circle-size));\n padding: calc(0.1 * var(--gauge-circle-size)) calc(0.2 * var(--gauge-circle-size));\n --score-icon-size: calc(0.21 * var(--gauge-circle-size));\n --score-icon-margin: 0 calc(0.15 * var(--gauge-circle-size)) 0 0;\n}\n\n.lh-gauge {\n stroke-linecap: round;\n width: var(--gauge-circle-size);\n height: var(--gauge-circle-size);\n}\n\n.lh-category .lh-gauge {\n --gauge-circle-size: var(--gauge-circle-size-big);\n}\n\n.lh-gauge-base {\n opacity: 0.1;\n}\n\n.lh-gauge-arc {\n fill: none;\n transform-origin: 50% 50%;\n animation: load-gauge var(--transition-length) ease forwards;\n animation-delay: 250ms;\n}\n\n.lh-gauge__svg-wrapper {\n position: relative;\n height: var(--gauge-circle-size);\n}\n.lh-category .lh-gauge__svg-wrapper,\n.lh-category .lh-fraction__wrapper {\n --gauge-circle-size: var(--gauge-circle-size-big);\n}\n\n/* The plugin badge overlay */\n.lh-gauge__wrapper--plugin .lh-gauge__svg-wrapper::before {\n width: var(--plugin-badge-size);\n height: var(--plugin-badge-size);\n background-color: var(--plugin-badge-background-color);\n background-image: var(--plugin-icon-url);\n background-repeat: no-repeat;\n background-size: var(--plugin-icon-size);\n background-position: 58% 50%;\n content: "";\n position: absolute;\n right: -6px;\n bottom: 0px;\n display: block;\n z-index: 100;\n box-shadow: 0 0 4px rgba(0,0,0,.2);\n border-radius: 25%;\n}\n.lh-category .lh-gauge__wrapper--plugin .lh-gauge__svg-wrapper::before {\n width: var(--plugin-badge-size-big);\n height: var(--plugin-badge-size-big);\n}\n\n@keyframes load-gauge {\n from { stroke-dasharray: 0 352; }\n}\n\n.lh-gauge__percentage {\n width: 100%;\n height: var(--gauge-circle-size);\n position: absolute;\n font-family: var(--report-font-family-monospace);\n font-size: calc(var(--gauge-circle-size) * 0.34 + 1.3px);\n line-height: 0;\n text-align: center;\n top: calc(var(--score-container-padding) + var(--gauge-circle-size) / 2);\n}\n\n.lh-category .lh-gauge__percentage {\n --gauge-circle-size: var(--gauge-circle-size-big);\n --gauge-percentage-font-size: var(--gauge-percentage-font-size-big);\n}\n\n.lh-gauge__wrapper,\n.lh-fraction__wrapper {\n position: relative;\n display: flex;\n align-items: center;\n flex-direction: column;\n text-decoration: none;\n padding: var(--score-container-padding);\n\n --transition-length: 1s;\n\n /* Contain the layout style paint & layers during animation*/\n contain: content;\n will-change: opacity; /* Only using for layer promotion */\n}\n\n.lh-gauge__label,\n.lh-fraction__label {\n font-size: var(--gauge-label-font-size);\n font-weight: 500;\n line-height: var(--gauge-label-line-height);\n margin-top: 10px;\n text-align: center;\n color: var(--report-text-color);\n word-break: keep-all;\n}\n\n/* TODO(#8185) use more BEM (.lh-gauge__label--big) instead of relying on descendant selector */\n.lh-category .lh-gauge__label,\n.lh-category .lh-fraction__label {\n --gauge-label-font-size: var(--gauge-label-font-size-big);\n --gauge-label-line-height: var(--gauge-label-line-height-big);\n margin-top: 14px;\n}\n\n.lh-scores-header .lh-gauge__wrapper,\n.lh-scores-header .lh-fraction__wrapper,\n.lh-scores-header .lh-gauge--pwa__wrapper,\n.lh-sticky-header .lh-gauge__wrapper,\n.lh-sticky-header .lh-fraction__wrapper,\n.lh-sticky-header .lh-gauge--pwa__wrapper {\n width: var(--gauge-wrapper-width);\n}\n\n.lh-scorescale {\n display: inline-flex;\n\n gap: calc(var(--default-padding) * 4);\n margin: 16px auto 0 auto;\n font-size: var(--report-font-size-secondary);\n color: var(--color-gray-700);\n\n}\n\n.lh-scorescale-range {\n display: flex;\n align-items: center;\n font-family: var(--report-font-family-monospace);\n white-space: nowrap;\n}\n\n.lh-category-header__finalscreenshot .lh-scorescale {\n border: 0;\n display: flex;\n justify-content: center;\n}\n\n.lh-category-header__finalscreenshot .lh-scorescale-range {\n font-family: unset;\n font-size: 12px;\n}\n\n.lh-scorescale-wrap {\n display: contents;\n}\n\n/* Hide category score gauages if it\'s a single category report */\n.lh-header--solo-category .lh-scores-wrapper {\n display: none;\n}\n\n\n.lh-categories {\n width: 100%;\n overflow: hidden;\n}\n\n.lh-category {\n padding: var(--category-padding);\n max-width: var(--report-content-max-width);\n margin: 0 auto;\n\n --sticky-header-height: calc(var(--gauge-circle-size-sm) + var(--score-container-padding) * 2);\n --topbar-plus-sticky-header: calc(var(--topbar-height) + var(--sticky-header-height));\n scroll-margin-top: var(--topbar-plus-sticky-header);\n\n /* Faster recalc style & layout of the report. https://web.dev/content-visibility/ */\n content-visibility: auto;\n contain-intrinsic-size: 1000px;\n}\n\n.lh-category-wrapper {\n border-bottom: 1px solid var(--color-gray-200);\n}\n.lh-category-wrapper:last-of-type {\n border-bottom: 0;\n}\n\n.lh-category-header {\n margin-bottom: var(--section-padding-vertical);\n}\n\n.lh-category-header .lh-score__gauge {\n max-width: 400px;\n width: auto;\n margin: 0px auto;\n}\n\n.lh-category-header__finalscreenshot {\n display: grid;\n grid-template: none / 1fr 1px 1fr;\n justify-items: center;\n align-items: center;\n gap: var(--report-line-height);\n min-height: 288px;\n margin-bottom: var(--default-padding);\n}\n\n.lh-final-ss-image {\n /* constrain the size of the image to not be too large */\n max-height: calc(var(--gauge-circle-size-big) * 2.8);\n max-width: calc(var(--gauge-circle-size-big) * 3.5);\n border: 1px solid var(--color-gray-200);\n padding: 4px;\n border-radius: 3px;\n display: block;\n}\n\n.lh-category-headercol--separator {\n background: var(--color-gray-200);\n width: 1px;\n height: var(--gauge-circle-size-big);\n}\n\n@media screen and (max-width: 780px) {\n .lh-category-header__finalscreenshot {\n grid-template: 1fr 1fr / none\n }\n .lh-category-headercol--separator {\n display: none;\n }\n}\n\n\n/* 964 fits the min-width of the filmstrip */\n@media screen and (max-width: 964px) {\n .lh-report {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media print {\n body {\n -webkit-print-color-adjust: exact; /* print background colors */\n }\n .lh-container {\n display: block;\n }\n .lh-report {\n margin-left: 0;\n padding-top: 0;\n }\n .lh-categories {\n margin-top: 0;\n }\n}\n\n.lh-table {\n border-collapse: collapse;\n /* Can\'t assign padding to table, so shorten the width instead. */\n width: calc(100% - var(--audit-description-padding-left) - var(--stackpack-padding-horizontal));\n border: 1px solid var(--report-border-color-secondary);\n\n}\n\n.lh-table thead th {\n font-weight: normal;\n color: var(--color-gray-600);\n /* See text-wrapping comment on .lh-container. */\n word-break: normal;\n}\n\n.lh-row--even {\n background-color: var(--table-higlight-background-color);\n}\n.lh-row--hidden {\n display: none;\n}\n\n.lh-table th,\n.lh-table td {\n padding: var(--default-padding);\n}\n\n.lh-table tr {\n vertical-align: middle;\n}\n\n/* Looks unnecessary, but mostly for keeping the <th>s left-aligned */\n.lh-table-column--text,\n.lh-table-column--source-location,\n.lh-table-column--url,\n/* .lh-table-column--thumbnail, */\n/* .lh-table-column--empty,*/\n.lh-table-column--code,\n.lh-table-column--node {\n text-align: left;\n}\n\n.lh-table-column--code {\n min-width: 100px;\n}\n\n.lh-table-column--bytes,\n.lh-table-column--timespanMs,\n.lh-table-column--ms,\n.lh-table-column--numeric {\n text-align: right;\n word-break: normal;\n}\n\n\n\n.lh-table .lh-table-column--thumbnail {\n width: var(--image-preview-size);\n}\n\n.lh-table-column--url {\n min-width: 250px;\n}\n\n.lh-table-column--text {\n min-width: 80px;\n}\n\n/* Keep columns narrow if they follow the URL column */\n/* 12% was determined to be a decent narrow width, but wide enough for column headings */\n.lh-table-column--url + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--bytes + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--ms,\n.lh-table-column--url + .lh-table-column--ms + th.lh-table-column--bytes,\n.lh-table-column--url + .lh-table-column--bytes + th.lh-table-column--timespanMs {\n width: 12%;\n}\n\n.lh-text__url-host {\n display: inline;\n}\n\n.lh-text__url-host {\n margin-left: calc(var(--report-font-size) / 2);\n opacity: 0.6;\n font-size: 90%\n}\n\n.lh-thumbnail {\n object-fit: cover;\n width: var(--image-preview-size);\n height: var(--image-preview-size);\n display: block;\n}\n\n.lh-unknown pre {\n overflow: scroll;\n border: solid 1px var(--color-gray-200);\n}\n\n.lh-text__url > a {\n color: inherit;\n text-decoration: none;\n}\n\n.lh-text__url > a:hover {\n text-decoration: underline dotted #999;\n}\n\n.lh-sub-item-row {\n margin-left: 20px;\n margin-bottom: 0;\n color: var(--color-gray-700);\n}\n.lh-sub-item-row td {\n padding-top: 4px;\n padding-bottom: 4px;\n padding-left: 20px;\n}\n\n/* Chevron\n https://codepen.io/paulirish/pen/LmzEmK\n */\n.lh-chevron {\n --chevron-angle: 42deg;\n /* Edge doesn\'t support transform: rotate(calc(...)), so we define it here */\n --chevron-angle-right: -42deg;\n width: var(--chevron-size);\n height: var(--chevron-size);\n margin-top: calc((var(--report-line-height) - 12px) / 2);\n}\n\n.lh-chevron__lines {\n transition: transform 0.4s;\n transform: translateY(var(--report-line-height));\n}\n.lh-chevron__line {\n stroke: var(--chevron-line-stroke);\n stroke-width: var(--chevron-size);\n stroke-linecap: square;\n transform-origin: 50%;\n transform: rotate(var(--chevron-angle));\n transition: transform 300ms, stroke 300ms;\n}\n\n.lh-expandable-details .lh-chevron__line-right,\n.lh-expandable-details[open] .lh-chevron__line-left {\n transform: rotate(var(--chevron-angle-right));\n}\n\n.lh-expandable-details[open] .lh-chevron__line-right {\n transform: rotate(var(--chevron-angle));\n}\n\n\n.lh-expandable-details[open] .lh-chevron__lines {\n transform: translateY(calc(var(--chevron-size) * -1));\n}\n\n.lh-expandable-details[open] {\n animation: 300ms openDetails forwards;\n padding-bottom: var(--default-padding);\n}\n\n@keyframes openDetails {\n from {\n outline: 1px solid var(--report-background-color);\n }\n to {\n outline: 1px solid;\n box-shadow: 0 2px 4px rgba(0, 0, 0, .24);\n }\n}\n\n@media screen and (max-width: 780px) {\n /* no black outline if we\'re not confident the entire table can be displayed within bounds */\n .lh-expandable-details[open] {\n animation: none;\n }\n}\n\n.lh-expandable-details[open] summary, details.lh-clump > summary {\n border-bottom: 1px solid var(--report-border-color-secondary);\n}\ndetails.lh-clump[open] > summary {\n border-bottom-width: 0;\n}\n\n\n\ndetails .lh-clump-toggletext--hide,\ndetails[open] .lh-clump-toggletext--show { display: none; }\ndetails[open] .lh-clump-toggletext--hide { display: block;}\n\n\n/* Tooltip */\n.lh-tooltip-boundary {\n position: relative;\n}\n\n.lh-tooltip {\n position: absolute;\n display: none; /* Don\'t retain these layers when not needed */\n opacity: 0;\n background: #ffffff;\n white-space: pre-line; /* Render newlines in the text */\n min-width: 246px;\n max-width: 275px;\n padding: 15px;\n border-radius: 5px;\n text-align: initial;\n line-height: 1.4;\n}\n/* shrink tooltips to not be cutoff on left edge of narrow viewports\n 45vw is chosen to be ~= width of the left column of metrics\n*/\n@media screen and (max-width: 535px) {\n .lh-tooltip {\n min-width: 45vw;\n padding: 3vw;\n }\n}\n\n.lh-tooltip-boundary:hover .lh-tooltip {\n display: block;\n animation: fadeInTooltip 250ms;\n animation-fill-mode: forwards;\n animation-delay: 850ms;\n bottom: 100%;\n z-index: 1;\n will-change: opacity;\n right: 0;\n pointer-events: none;\n}\n\n.lh-tooltip::before {\n content: "";\n border: solid transparent;\n border-bottom-color: #fff;\n border-width: 10px;\n position: absolute;\n bottom: -20px;\n right: 6px;\n transform: rotate(180deg);\n pointer-events: none;\n}\n\n@keyframes fadeInTooltip {\n 0% { opacity: 0; }\n 75% { opacity: 1; }\n 100% { opacity: 1; filter: drop-shadow(1px 0px 1px #aaa) drop-shadow(0px 2px 4px hsla(206, 6%, 25%, 0.15)); pointer-events: auto; }\n}\n\n/* Element screenshot */\n.lh-element-screenshot {\n float: left;\n margin-right: 20px;\n}\n.lh-element-screenshot__content {\n overflow: hidden;\n min-width: 110px;\n display: flex;\n justify-content: center;\n background-color: var(--report-background-color);\n}\n.lh-element-screenshot__image {\n position: relative;\n /* Set by ElementScreenshotRenderer.installFullPageScreenshotCssVariable */\n background-image: var(--element-screenshot-url);\n outline: 2px solid #777;\n background-color: white;\n background-repeat: no-repeat;\n}\n.lh-element-screenshot__mask {\n position: absolute;\n background: #555;\n opacity: 0.8;\n}\n.lh-element-screenshot__element-marker {\n position: absolute;\n outline: 2px solid var(--color-lime-400);\n}\n.lh-element-screenshot__overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 2000; /* .lh-topbar is 1000 */\n background: var(--screenshot-overlay-background);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: zoom-out;\n}\n\n.lh-element-screenshot__overlay .lh-element-screenshot {\n margin-right: 0; /* clearing margin used in thumbnail case */\n outline: 1px solid var(--color-gray-700);\n}\n\n.lh-screenshot-overlay--enabled .lh-element-screenshot {\n cursor: zoom-out;\n}\n.lh-screenshot-overlay--enabled .lh-node .lh-element-screenshot {\n cursor: zoom-in;\n}\n\n\n.lh-meta__items {\n --meta-icon-size: calc(var(--report-icon-size) * 0.667);\n padding: var(--default-padding);\n display: grid;\n grid-template-columns: 1fr 1fr 1fr;\n background-color: var(--env-item-background-color);\n border-radius: 3px;\n margin: 0 0 var(--default-padding) 0;\n font-size: 12px;\n column-gap: var(--default-padding);\n color: var(--color-gray-700);\n}\n\n.lh-meta__item {\n display: block;\n list-style-type: none;\n position: relative;\n padding: 0 0 0 calc(var(--meta-icon-size) + var(--default-padding) * 2);\n cursor: unset; /* disable pointer cursor from report-icon */\n}\n\n.lh-meta__item.lh-tooltip-boundary {\n text-decoration: dotted underline var(--color-gray-500);\n cursor: help;\n}\n\n.lh-meta__item.lh-report-icon::before {\n position: absolute;\n left: var(--default-padding);\n width: var(--meta-icon-size);\n height: var(--meta-icon-size);\n}\n\n.lh-meta__item.lh-report-icon:hover::before {\n opacity: 0.7;\n}\n\n.lh-meta__item .lh-tooltip {\n color: var(--color-gray-800);\n}\n\n.lh-meta__item .lh-tooltip::before {\n right: auto; /* Set the tooltip arrow to the leftside */\n left: 6px;\n}\n\n/* Change the grid for narrow viewport. */\n@media screen and (max-width: 640px) {\n .lh-meta__items {\n grid-template-columns: 1fr 1fr;\n }\n}\n@media screen and (max-width: 535px) {\n .lh-meta__items {\n display: block;\n }\n}\n\n\n/*# sourceURL=report-styles.css */\n'),t.append(n),t}(e);case"topbar":return function(e){const t=e.createFragment(),n=e.createElement("style");n.append("\n .lh-topbar {\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n height: var(--topbar-height);\n padding: var(--topbar-padding);\n font-size: var(--report-font-size-secondary);\n background-color: var(--topbar-background-color);\n border-bottom: 1px solid var(--color-gray-200);\n }\n\n .lh-topbar__logo {\n width: var(--topbar-logo-size);\n height: var(--topbar-logo-size);\n user-select: none;\n flex: none;\n }\n\n .lh-topbar__url {\n margin: var(--topbar-padding);\n text-decoration: none;\n color: var(--report-text-color);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .lh-tools {\n display: flex;\n align-items: center;\n margin-left: auto;\n will-change: transform;\n min-width: var(--report-icon-size);\n }\n .lh-tools__button {\n width: var(--report-icon-size);\n min-width: 24px;\n height: var(--report-icon-size);\n cursor: pointer;\n margin-right: 5px;\n /* This is actually a button element, but we want to style it like a transparent div. */\n display: flex;\n background: none;\n color: inherit;\n border: none;\n padding: 0;\n font: inherit;\n outline: inherit;\n }\n .lh-tools__button svg {\n fill: var(--tools-icon-color);\n }\n .lh-dark .lh-tools__button svg {\n filter: invert(1);\n }\n .lh-tools__button.lh-active + .lh-tools__dropdown {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n }\n .lh-tools__dropdown {\n position: absolute;\n background-color: var(--report-background-color);\n border: 1px solid var(--report-border-color);\n border-radius: 3px;\n padding: calc(var(--default-padding) / 2) 0;\n cursor: pointer;\n top: 36px;\n right: 0;\n box-shadow: 1px 1px 3px #ccc;\n min-width: 125px;\n clip: rect(0, 164px, 0, 0);\n visibility: hidden;\n opacity: 0;\n transition: all 200ms cubic-bezier(0,0,0.2,1);\n }\n .lh-tools__dropdown a {\n color: currentColor;\n text-decoration: none;\n white-space: nowrap;\n padding: 0 6px;\n line-height: 2;\n }\n .lh-tools__dropdown a:hover,\n .lh-tools__dropdown a:focus {\n background-color: var(--color-gray-200);\n outline: none;\n }\n /* save-gist option hidden in report. */\n .lh-tools__dropdown a[data-action='save-gist'] {\n display: none;\n }\n\n .lh-locale-selector {\n width: 100%;\n color: var(--report-text-color);\n background-color: var(--locale-selector-background-color);\n padding: 2px;\n }\n .lh-tools-locale {\n display: flex;\n align-items: center;\n flex-direction: row-reverse;\n }\n .lh-tools-locale__selector-wrapper {\n transition: opacity 0.15s;\n opacity: 0;\n max-width: 200px;\n }\n .lh-button.lh-tool-locale__button {\n height: var(--topbar-height);\n color: var(--tools-icon-color);\n padding: calc(var(--default-padding) / 2);\n }\n .lh-tool-locale__button.lh-active + .lh-tools-locale__selector-wrapper {\n opacity: 1;\n clip: rect(-1px, 194px, 242px, -3px);\n visibility: visible;\n margin: 0 4px;\n }\n\n @media screen and (max-width: 964px) {\n .lh-tools__dropdown {\n right: 0;\n left: initial;\n }\n }\n @media print {\n .lh-topbar {\n position: static;\n margin-left: 0;\n }\n\n .lh-tools__dropdown {\n display: none;\n }\n }\n "),t.append(n);const r=e.createElement("div","lh-topbar"),o=e.createElementNS("http://www.w3.org/2000/svg","svg","lh-topbar__logo");o.setAttribute("viewBox","0 0 24 24");const i=e.createElementNS("http://www.w3.org/2000/svg","defs"),a=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");a.setAttribute("x1","57.456%"),a.setAttribute("y1","13.086%"),a.setAttribute("x2","18.259%"),a.setAttribute("y2","72.322%"),a.setAttribute("id","lh-topbar__logo--a");const l=e.createElementNS("http://www.w3.org/2000/svg","stop");l.setAttribute("stop-color","#262626"),l.setAttribute("stop-opacity",".1"),l.setAttribute("offset","0%");const s=e.createElementNS("http://www.w3.org/2000/svg","stop");s.setAttribute("stop-color","#262626"),s.setAttribute("stop-opacity","0"),s.setAttribute("offset","100%"),a.append(" ",l," ",s," ");const c=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");c.setAttribute("x1","100%"),c.setAttribute("y1","50%"),c.setAttribute("x2","0%"),c.setAttribute("y2","50%"),c.setAttribute("id","lh-topbar__logo--b");const d=e.createElementNS("http://www.w3.org/2000/svg","stop");d.setAttribute("stop-color","#262626"),d.setAttribute("stop-opacity",".1"),d.setAttribute("offset","0%");const h=e.createElementNS("http://www.w3.org/2000/svg","stop");h.setAttribute("stop-color","#262626"),h.setAttribute("stop-opacity","0"),h.setAttribute("offset","100%"),c.append(" ",d," ",h," ");const p=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");p.setAttribute("x1","58.764%"),p.setAttribute("y1","65.756%"),p.setAttribute("x2","36.939%"),p.setAttribute("y2","50.14%"),p.setAttribute("id","lh-topbar__logo--c");const u=e.createElementNS("http://www.w3.org/2000/svg","stop");u.setAttribute("stop-color","#262626"),u.setAttribute("stop-opacity",".1"),u.setAttribute("offset","0%");const g=e.createElementNS("http://www.w3.org/2000/svg","stop");g.setAttribute("stop-color","#262626"),g.setAttribute("stop-opacity","0"),g.setAttribute("offset","100%"),p.append(" ",u," ",g," ");const m=e.createElementNS("http://www.w3.org/2000/svg","linearGradient");m.setAttribute("x1","41.635%"),m.setAttribute("y1","20.358%"),m.setAttribute("x2","72.863%"),m.setAttribute("y2","85.424%"),m.setAttribute("id","lh-topbar__logo--d");const f=e.createElementNS("http://www.w3.org/2000/svg","stop");f.setAttribute("stop-color","#FFF"),f.setAttribute("stop-opacity",".1"),f.setAttribute("offset","0%");const _=e.createElementNS("http://www.w3.org/2000/svg","stop");_.setAttribute("stop-color","#FFF"),_.setAttribute("stop-opacity","0"),_.setAttribute("offset","100%"),m.append(" ",f," ",_," "),i.append(" ",a," ",c," ",p," ",m," ");const v=e.createElementNS("http://www.w3.org/2000/svg","g");v.setAttribute("fill","none"),v.setAttribute("fill-rule","evenodd");const b=e.createElementNS("http://www.w3.org/2000/svg","path");b.setAttribute("d","M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z"),b.setAttribute("fill","#F44B21");const w=e.createElementNS("http://www.w3.org/2000/svg","path");w.setAttribute("fill","#FFF"),w.setAttribute("d","M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z");const y=e.createElementNS("http://www.w3.org/2000/svg","path");y.setAttribute("d","M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z"),y.setAttribute("fill","url(#lh-topbar__logo--a)"),y.setAttribute("fill-rule","nonzero"),y.setAttribute("transform","translate(6 3)");const x=e.createElementNS("http://www.w3.org/2000/svg","path");x.setAttribute("fill","#FFF176"),x.setAttribute("fill-rule","nonzero"),x.setAttribute("d","M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z");const k=e.createElementNS("http://www.w3.org/2000/svg","path");k.setAttribute("fill","url(#lh-topbar__logo--b)"),k.setAttribute("fill-rule","nonzero"),k.setAttribute("d","M0 6.375h6v2.25H0z"),k.setAttribute("transform","translate(6 3)");const A=e.createElementNS("http://www.w3.org/2000/svg","path");A.setAttribute("fill","url(#lh-topbar__logo--c)"),A.setAttribute("fill-rule","nonzero"),A.setAttribute("d","M6 6.375H1.875v-3.75L6 0z"),A.setAttribute("transform","translate(6 3)");const C=e.createElementNS("http://www.w3.org/2000/svg","path");C.setAttribute("fill","url(#lh-topbar__logo--d)"),C.setAttribute("fill-rule","nonzero"),C.setAttribute("d","M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z"),C.setAttribute("transform","translate(6 3)"),v.append(" ",b," ",w," ",y," ",x," ",k," ",A," ",C," "),o.append(" ",i," ",v," ");const E=e.createElement("a","lh-topbar__url");E.setAttribute("href",""),E.setAttribute("target","_blank"),E.setAttribute("rel","noopener");const S=e.createElement("div","lh-tools"),z=e.createElement("div","lh-tools-locale lh-hidden"),M=e.createElement("button","lh-button lh-tool-locale__button");M.setAttribute("id","lh-button__swap-locales"),M.setAttribute("title","Show Language Picker"),M.setAttribute("aria-label","Toggle language picker"),M.setAttribute("aria-haspopup","menu"),M.setAttribute("aria-expanded","false"),M.setAttribute("aria-controls","lh-tools-locale__selector-wrapper");const L=e.createElementNS("http://www.w3.org/2000/svg","svg");L.setAttribute("width","20px"),L.setAttribute("height","20px"),L.setAttribute("viewBox","0 0 24 24"),L.setAttribute("fill","currentColor");const N=e.createElementNS("http://www.w3.org/2000/svg","path");N.setAttribute("d","M0 0h24v24H0V0z"),N.setAttribute("fill","none");const F=e.createElementNS("http://www.w3.org/2000/svg","path");F.setAttribute("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"),L.append(N,F),M.append(" ",L," ");const H=e.createElement("div","lh-tools-locale__selector-wrapper");H.setAttribute("id","lh-tools-locale__selector-wrapper"),H.setAttribute("role","menu"),H.setAttribute("aria-labelledby","lh-button__swap-locales"),H.setAttribute("aria-hidden","true"),H.append(" "," "),z.append(" ",M," ",H," ");const T=e.createElement("button","lh-tools__button");T.setAttribute("id","lh-tools-button"),T.setAttribute("title","Tools menu"),T.setAttribute("aria-label","Toggle report tools menu"),T.setAttribute("aria-haspopup","menu"),T.setAttribute("aria-expanded","false"),T.setAttribute("aria-controls","lh-tools-dropdown");const D=e.createElementNS("http://www.w3.org/2000/svg","svg");D.setAttribute("width","100%"),D.setAttribute("height","100%"),D.setAttribute("viewBox","0 0 24 24");const P=e.createElementNS("http://www.w3.org/2000/svg","path");P.setAttribute("d","M0 0h24v24H0z"),P.setAttribute("fill","none");const R=e.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d","M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"),D.append(" ",P," ",R," "),T.append(" ",D," ");const U=e.createElement("div","lh-tools__dropdown");U.setAttribute("id","lh-tools-dropdown"),U.setAttribute("role","menu"),U.setAttribute("aria-labelledby","lh-tools-button");const I=e.createElement("a","lh-report-icon lh-report-icon--print");I.setAttribute("role","menuitem"),I.setAttribute("tabindex","-1"),I.setAttribute("href","#"),I.setAttribute("data-i18n","dropdownPrintSummary"),I.setAttribute("data-action","print-summary");const O=e.createElement("a","lh-report-icon lh-report-icon--print");O.setAttribute("role","menuitem"),O.setAttribute("tabindex","-1"),O.setAttribute("href","#"),O.setAttribute("data-i18n","dropdownPrintExpanded"),O.setAttribute("data-action","print-expanded");const B=e.createElement("a","lh-report-icon lh-report-icon--copy");B.setAttribute("role","menuitem"),B.setAttribute("tabindex","-1"),B.setAttribute("href","#"),B.setAttribute("data-i18n","dropdownCopyJSON"),B.setAttribute("data-action","copy");const V=e.createElement("a","lh-report-icon lh-report-icon--download lh-hidden");V.setAttribute("role","menuitem"),V.setAttribute("tabindex","-1"),V.setAttribute("href","#"),V.setAttribute("data-i18n","dropdownSaveHTML"),V.setAttribute("data-action","save-html");const $=e.createElement("a","lh-report-icon lh-report-icon--download");$.setAttribute("role","menuitem"),$.setAttribute("tabindex","-1"),$.setAttribute("href","#"),$.setAttribute("data-i18n","dropdownSaveJSON"),$.setAttribute("data-action","save-json");const j=e.createElement("a","lh-report-icon lh-report-icon--open");j.setAttribute("role","menuitem"),j.setAttribute("tabindex","-1"),j.setAttribute("href","#"),j.setAttribute("data-i18n","dropdownViewer"),j.setAttribute("data-action","open-viewer");const G=e.createElement("a","lh-report-icon lh-report-icon--open");G.setAttribute("role","menuitem"),G.setAttribute("tabindex","-1"),G.setAttribute("href","#"),G.setAttribute("data-i18n","dropdownSaveGist"),G.setAttribute("data-action","save-gist");const W=e.createElement("a","lh-report-icon lh-report-icon--dark");return W.setAttribute("role","menuitem"),W.setAttribute("tabindex","-1"),W.setAttribute("href","#"),W.setAttribute("data-i18n","dropdownDarkTheme"),W.setAttribute("data-action","toggle-dark"),U.append(" ",I," ",O," ",B," "," ",V," ",$," ",j," ",G," ",W," "),S.append(" ",z," ",T," ",U," "),r.append(" "," ",o," ",E," ",S," "),t.append(r),t}(e);case"warningsToplevel":return function(e){const t=e.createFragment(),n=e.createElement("div","lh-warnings lh-warnings--toplevel"),r=e.createElement("p","lh-warnings__msg"),o=e.createElement("ul");return n.append(" ",r," ",o," "),t.append(n),t}(e)}throw new Error("unexpected component: "+t)}(this,e),this._componentCache.set(e,t);return t.cloneNode(!0)}clearComponentCache(){this._componentCache.clear()}convertMarkdownLinkSnippets(e){const t=this.createElement("span");for(const n of pe.splitMarkdownLink(e)){const e=n.text.includes("`")?this.convertMarkdownCodeSnippets(n.text):n.text;if(!n.isLink){t.append(e);continue}const r=new URL(n.linkHref);["https://developers.google.com","https://web.dev"].includes(r.origin)&&(r.searchParams.set("utm_source","lighthouse"),r.searchParams.set("utm_medium",this._lighthouseChannel));const o=this.createElement("a");o.rel="noopener",o.target="_blank",o.append(e),this.safelySetHref(o,r.href),t.append(o)}return t}safelySetHref(e,t){if((t=t||"").startsWith("#"))return void(e.href=t);let n;try{n=new URL(t)}catch(e){}n&&["https:","http:"].includes(n.protocol)&&(e.href=n.href)}safelySetBlobHref(e,t){if("text/html"!==t.type&&"application/json"!==t.type)throw new Error("Unsupported blob type");const n=URL.createObjectURL(t);e.href=n}convertMarkdownCodeSnippets(e){const t=this.createElement("span");for(const n of pe.splitMarkdownCodeSpans(e))if(n.isCode){const e=this.createElement("code");e.textContent=n.text,t.append(e)}else t.append(this._document.createTextNode(n.text));return t}setLighthouseChannel(e){this._lighthouseChannel=e}document(){return this._document}isDevTools(){return!!this._document.querySelector(".lh-devtools")}find(e,t){const n=t.querySelector(e);if(null===n)throw new Error(`query ${e} not found`);return n}findAll(e,t){return Array.from(t.querySelectorAll(e))}fireEventOn(e,t=this._document,n){const r=new CustomEvent(e,n?{detail:n}:void 0);t.dispatchEvent(r)}saveFile(e,t){const n=this.createElement("a");n.download=t,this.safelySetBlobHref(n,e),this._document.body.append(n),n.click(),this._document.body.removeChild(n),setTimeout((()=>URL.revokeObjectURL(n.href)),500)}}
|
|
57
57
|
/**
|
|
58
58
|
* @license
|
|
59
59
|
* Copyright 2017 The Lighthouse Authors. All Rights Reserved.
|
|
@@ -90,7 +90,7 @@ class yt{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",thi
|
|
|
90
90
|
* @license Copyright 2020 The Lighthouse Authors. All Rights Reserved.
|
|
91
91
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
92
92
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
93
|
-
*/function Ct(e,t,n){return e<t?t:e>n?n:e}class
|
|
93
|
+
*/function Ct(e,t,n){return e<t?t:e>n?n:e}class Et{static getScreenshotPositions(e,t,n){const r={x:(o=e).left+o.width/2,y:o.top+o.height/2};var o;const i=Ct(r.x-t.width/2,0,n.width-t.width),a=Ct(r.y-t.height/2,0,n.height-t.height);return{screenshot:{left:i,top:a},clip:{left:e.left-i,top:e.top-a}}}static renderClipPathInScreenshot(e,t,n,r,o){const i=e.find("clipPath",t),a=`clip-${pe.getUniqueSuffix()}`;i.id=a,t.style.clipPath=`url(#${a})`;const l=n.top/o.height,s=l+r.height/o.height,c=n.left/o.width,d=c+r.width/o.width,h=[`0,0 1,0 1,${l} 0,${l}`,`0,${s} 1,${s} 1,1 0,1`,`0,${l} ${c},${l} ${c},${s} 0,${s}`,`${d},${l} 1,${l} 1,${s} ${d},${s}`];for(const t of h){const n=e.createElementNS("http://www.w3.org/2000/svg","polygon");n.setAttribute("points",t),i.append(n)}}static installFullPageScreenshot(e,t){e.style.setProperty("--element-screenshot-url",`url('${t.data}')`)}static installOverlayFeature(e){const{dom:t,rootEl:n,overlayContainerEl:r,fullPageScreenshot:o}=e,i="lh-screenshot-overlay--enabled";n.classList.contains(i)||(n.classList.add(i),n.addEventListener("click",(e=>{const n=e.target;if(!n)return;const i=n.closest(".lh-node > .lh-element-screenshot");if(!i)return;const a=t.createElement("div","lh-element-screenshot__overlay");r.append(a);const l={width:.95*a.clientWidth,height:.8*a.clientHeight},s={width:Number(i.dataset.rectWidth),height:Number(i.dataset.rectHeight),left:Number(i.dataset.rectLeft),right:Number(i.dataset.rectLeft)+Number(i.dataset.rectWidth),top:Number(i.dataset.rectTop),bottom:Number(i.dataset.rectTop)+Number(i.dataset.rectHeight)},c=Et.render(t,o.screenshot,s,l);c?(a.append(c),a.addEventListener("click",(()=>a.remove()))):a.remove()})))}static _computeZoomFactor(e,t){const n={x:t.width/e.width,y:t.height/e.height},r=.75*Math.min(n.x,n.y);return Math.min(1,r)}static render(e,t,n,r){if(!function(e,t){return t.left<=e.width&&0<=t.right&&t.top<=e.height&&0<=t.bottom}(t,n))return null;const o=e.createComponent("elementScreenshot"),i=e.find("div.lh-element-screenshot",o);i.dataset.rectWidth=n.width.toString(),i.dataset.rectHeight=n.height.toString(),i.dataset.rectLeft=n.left.toString(),i.dataset.rectTop=n.top.toString();const a=this._computeZoomFactor(n,r),l={width:r.width/a,height:r.height/a};l.width=Math.min(t.width,l.width);const s=l.width*a,c=l.height*a,d=Et.getScreenshotPositions(n,l,{width:t.width,height:t.height}),h=e.find("div.lh-element-screenshot__image",i);h.style.width=s+"px",h.style.height=c+"px",h.style.backgroundPositionY=-d.screenshot.top*a+"px",h.style.backgroundPositionX=-d.screenshot.left*a+"px",h.style.backgroundSize=`${t.width*a}px ${t.height*a}px`;const p=e.find("div.lh-element-screenshot__element-marker",i);p.style.width=n.width*a+"px",p.style.height=n.height*a+"px",p.style.left=d.clip.left*a+"px",p.style.top=d.clip.top*a+"px";const u=e.find("div.lh-element-screenshot__mask",i);return u.style.width=s+"px",u.style.height=c+"px",Et.renderClipPathInScreenshot(e,u,d.clip,n,l),i}}
|
|
94
94
|
/**
|
|
95
95
|
* @license
|
|
96
96
|
* Copyright 2017 The Lighthouse Authors. All Rights Reserved.
|
|
@@ -106,7 +106,7 @@ class yt{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",thi
|
|
|
106
106
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
107
107
|
* See the License for the specific language governing permissions and
|
|
108
108
|
* limitations under the License.
|
|
109
|
-
*/const
|
|
109
|
+
*/const St=["http://","https://","data:"];class zt{constructor(e,t={}){this._dom=e,this._fullPageScreenshot=t.fullPageScreenshot}render(e){switch(e.type){case"filmstrip":return this._renderFilmstrip(e);case"list":return this._renderList(e);case"table":return this._renderTable(e);case"criticalrequestchain":return kt.render(this._dom,e,this);case"opportunity":return this._renderTable(e);case"screenshot":case"debugdata":case"full-page-screenshot":case"treemap-data":return null;default:return this._renderUnknown(e.type,e)}}_renderBytes(e){const t=pe.i18n.formatBytesToKiB(e.value,e.granularity||.1),n=this._renderText(t);return n.title=pe.i18n.formatBytes(e.value),n}_renderMilliseconds(e){let t;return t="duration"===e.displayUnit?pe.i18n.formatDuration(e.value):pe.i18n.formatMilliseconds(e.value,e.granularity||10),this._renderText(t)}renderTextURL(e){const t=e;let n,r,o;try{const e=pe.parseURL(t);n="/"===e.file?e.origin:e.file,r="/"===e.file||""===e.hostname?"":`(${e.hostname})`,o=t}catch(e){n=t}const i=this._dom.createElement("div","lh-text__url");if(i.append(this._renderLink({text:n,url:t})),r){const e=this._renderText(r);e.classList.add("lh-text__url-host"),i.append(e)}return o&&(i.title=t,i.dataset.url=t),i}_renderLink(e){const t=this._dom.createElement("a");if(this._dom.safelySetHref(t,e.url),!t.href){const t=this._renderText(e.text);return t.classList.add("lh-link"),t}return t.rel="noopener",t.target="_blank",t.textContent=e.text,t.classList.add("lh-link"),t}_renderText(e){const t=this._dom.createElement("div","lh-text");return t.textContent=e,t}_renderNumeric(e){const t=pe.i18n.formatNumber(e.value,e.granularity||.1),n=this._dom.createElement("div","lh-numeric");return n.textContent=t,n}_renderThumbnail(e){const t=this._dom.createElement("img","lh-thumbnail"),n=e;return t.src=n,t.title=n,t.alt="",t}_renderUnknown(e,t){console.error(`Unknown details type: ${e}`,t);const n=this._dom.createElement("details","lh-unknown");return this._dom.createChildOf(n,"summary").textContent=`We don't know how to render audit details of type \`${e}\`. The Lighthouse version that collected this data is likely newer than the Lighthouse version of the report renderer. Expand for the raw JSON.`,this._dom.createChildOf(n,"pre").textContent=JSON.stringify(t,null,2),n}_renderTableValue(e,t){if(null==e)return null;if("object"==typeof e)switch(e.type){case"code":return this._renderCode(e.value);case"link":return this._renderLink(e);case"node":return this.renderNode(e);case"numeric":return this._renderNumeric(e);case"source-location":return this.renderSourceLocation(e);case"url":return this.renderTextURL(e.value);default:return this._renderUnknown(e.type,e)}switch(t.valueType){case"bytes":{const n=Number(e);return this._renderBytes({value:n,granularity:t.granularity})}case"code":{const t=String(e);return this._renderCode(t)}case"ms":{const n={value:Number(e),granularity:t.granularity,displayUnit:t.displayUnit};return this._renderMilliseconds(n)}case"numeric":{const n=Number(e);return this._renderNumeric({value:n,granularity:t.granularity})}case"text":{const t=String(e);return this._renderText(t)}case"thumbnail":{const t=String(e);return this._renderThumbnail(t)}case"timespanMs":{const t=Number(e);return this._renderMilliseconds({value:t})}case"url":{const t=String(e);return St.some((e=>t.startsWith(e)))?this.renderTextURL(t):this._renderCode(t)}default:return this._renderUnknown(t.valueType,e)}}_getCanonicalizedHeadingsFromTable(e){return"opportunity"===e.type?e.headings:e.headings.map((e=>this._getCanonicalizedHeading(e)))}_getCanonicalizedHeading(e){let t;return e.subItemsHeading&&(t=this._getCanonicalizedsubItemsHeading(e.subItemsHeading,e)),{key:e.key,valueType:e.itemType,subItemsHeading:t,label:e.text,displayUnit:e.displayUnit,granularity:e.granularity}}_getCanonicalizedsubItemsHeading(e,t){return e.key||console.warn("key should not be null"),{key:e.key||"",valueType:e.itemType||t.itemType,granularity:e.granularity||t.granularity,displayUnit:e.displayUnit||t.displayUnit}}_getDerivedsubItemsHeading(e){return e.subItemsHeading?{key:e.subItemsHeading.key||"",valueType:e.subItemsHeading.valueType||e.valueType,granularity:e.subItemsHeading.granularity||e.granularity,displayUnit:e.subItemsHeading.displayUnit||e.displayUnit,label:""}:null}_renderTableRow(e,t){const n=this._dom.createElement("tr");for(const r of t){if(!r||!r.key){this._dom.createChildOf(n,"td","lh-table-column--empty");continue}const t=e[r.key];let o;if(null!=t&&(o=this._renderTableValue(t,r)),o){const e=`lh-table-column--${r.valueType}`;this._dom.createChildOf(n,"td",e).append(o)}else this._dom.createChildOf(n,"td","lh-table-column--empty")}return n}_renderTableRowsFromItem(e,t){const n=this._dom.createFragment();if(n.append(this._renderTableRow(e,t)),!e.subItems)return n;const r=t.map(this._getDerivedsubItemsHeading);if(!r.some(Boolean))return n;for(const t of e.subItems.items){const e=this._renderTableRow(t,r);e.classList.add("lh-sub-item-row"),n.append(e)}return n}_renderTable(e){if(!e.items.length)return this._dom.createElement("span");const t=this._dom.createElement("table","lh-table"),n=this._dom.createChildOf(t,"thead"),r=this._dom.createChildOf(n,"tr"),o=this._getCanonicalizedHeadingsFromTable(e);for(const e of o){const t=`lh-table-column--${e.valueType||"text"}`,n=this._dom.createElement("div","lh-text");n.textContent=e.label,this._dom.createChildOf(r,"th",t).append(n)}const i=this._dom.createChildOf(t,"tbody");let a=!0;for(const t of e.items){const e=this._renderTableRowsFromItem(t,o);for(const t of this._dom.findAll("tr",e))t.classList.add(a?"lh-row--even":"lh-row--odd");a=!a,i.append(e)}return t}_renderList(e){const t=this._dom.createElement("div","lh-list");return e.items.forEach((e=>{const n=this.render(e);n&&t.append(n)})),t}renderNode(e){const t=this._dom.createElement("span","lh-node");if(e.nodeLabel){const n=this._dom.createElement("div");n.textContent=e.nodeLabel,t.append(n)}if(e.snippet){const n=this._dom.createElement("div");n.classList.add("lh-node__snippet"),n.textContent=e.snippet,t.append(n)}if(e.selector&&(t.title=e.selector),e.path&&t.setAttribute("data-path",e.path),e.selector&&t.setAttribute("data-selector",e.selector),e.snippet&&t.setAttribute("data-snippet",e.snippet),!this._fullPageScreenshot)return t;const n=e.lhId&&this._fullPageScreenshot.nodes[e.lhId];if(!n||0===n.width||0===n.height)return t;const r=Et.render(this._dom,this._fullPageScreenshot.screenshot,n,{width:147,height:100});return r&&t.prepend(r),t}renderSourceLocation(e){if(!e.url)return null;const t=`${e.url}:${e.line+1}:${e.column}`;let n,r;if(e.original){n=`${e.original.file||"<unmapped>"}:${e.original.line+1}:${e.original.column}`}if("network"===e.urlProvider&&n)r=this._renderLink({url:e.url,text:n}),r.title=`maps to generated location ${t}`;else if("network"!==e.urlProvider||n)if("comment"===e.urlProvider&&n)r=this._renderText(`${n} (from source map)`),r.title=`${t} (from sourceURL)`;else{if("comment"!==e.urlProvider||n)return null;r=this._renderText(`${t} (from sourceURL)`)}else r=this.renderTextURL(e.url),this._dom.find(".lh-link",r).textContent+=`:${e.line+1}:${e.column}`;return r.classList.add("lh-source-location"),r.setAttribute("data-source-url",e.url),r.setAttribute("data-source-line",String(e.line)),r.setAttribute("data-source-column",String(e.column)),r}_renderFilmstrip(e){const t=this._dom.createElement("div","lh-filmstrip");for(const n of e.items){const e=this._dom.createChildOf(t,"div","lh-filmstrip__frame"),r=this._dom.createChildOf(e,"img","lh-filmstrip__thumbnail");r.src=n.data,r.alt="Screenshot"}return t}_renderCode(e){const t=this._dom.createElement("pre","lh-code");return t.textContent=e,t}}
|
|
110
110
|
/**
|
|
111
111
|
* @license
|
|
112
112
|
* Copyright 2018 The Lighthouse Authors. All Rights Reserved.
|
|
@@ -157,7 +157,7 @@ class yt{constructor(e,t){this._document=e,this._lighthouseChannel="unknown",thi
|
|
|
157
157
|
*
|
|
158
158
|
* Dummy text for ensuring report robustness: <\/script> pre$`post %%LIGHTHOUSE_JSON%%
|
|
159
159
|
* (this is handled by terser)
|
|
160
|
-
*/class Nt{constructor(e){this._dom=e,this._opts={}}renderReport(e,t,n){if(!this._dom.rootEl&&t){console.warn("Please adopt the new report API in renderer/api.js.");const e=t.closest(".lh-root");e?this._dom.rootEl=e:(t.classList.add("lh-root","lh-vars"),this._dom.rootEl=t)}else this._dom.rootEl&&t&&(this._dom.rootEl=t);n&&(this._opts=n),this._dom.setLighthouseChannel(e.configSettings.channel||"unknown");const r=pe.prepareReportResult(e);return this._dom.rootEl.textContent="",this._dom.rootEl.append(this._renderReport(r)),this._dom.rootEl}_renderReportTopbar(e){const t=this._dom.createComponent("topbar"),n=this._dom.find("a.lh-topbar__url",t);return n.textContent=e.finalUrl,n.title=e.finalUrl,this._dom.safelySetHref(n,e.finalUrl),t}_renderReportHeader(){const e=this._dom.createComponent("heading"),t=this._dom.createComponent("scoresWrapper");return this._dom.find(".lh-scores-wrapper-placeholder",e).replaceWith(t),e}_renderReportFooter(e){const t=this._dom.createComponent("footer");return this._renderMetaBlock(e,t),this._dom.find(".lh-footer__version_issue",t).textContent=pe.i18n.strings.footerIssue,this._dom.find(".lh-footer__version",t).textContent=e.lighthouseVersion,t}_renderMetaBlock(e,t){const n=pe.getEmulationDescriptions(e.configSettings||{}),r=e.userAgent.match(/(\w*Chrome\/[\d.]+)/),o=Array.isArray(r)?r[1].replace("/"," ").replace("Chrome","Chromium"):"Chromium",i=e.configSettings.channel,a=e.environment.benchmarkIndex.toFixed(0),l=e.environment.credits?.["axe-core"],s=[["date",`Captured at ${pe.i18n.formatDateTime(e.fetchTime)}`],["devices",`${n.deviceEmulation} with Lighthouse ${e.lighthouseVersion}`,`${pe.i18n.strings.runtimeSettingsBenchmark}: ${a}\n${pe.i18n.strings.runtimeSettingsCPUThrottling}: ${n.cpuThrottling}`+(l?`\n${pe.i18n.strings.runtimeSettingsAxeVersion}: ${l}`:"")],["samples-one",pe.i18n.strings.runtimeSingleLoad,pe.i18n.strings.runtimeSingleLoadTooltip],["stopwatch",pe.i18n.strings.runtimeAnalysisWindow],["networkspeed",`${n.summary}`,`${pe.i18n.strings.runtimeSettingsNetworkThrottling}: ${n.networkThrottling}`],["chrome",`Using ${o}`+(i?` with ${i}`:""),`${pe.i18n.strings.runtimeSettingsUANetwork}: "${e.environment.networkUserAgent}"`]],c=this._dom.find(".lh-meta__items",t);for(const[e,t,n]of s){const r=this._dom.createChildOf(c,"li","lh-meta__item");if(r.textContent=t,n){r.classList.add("lh-tooltip-boundary");this._dom.createChildOf(r,"div","lh-tooltip").textContent=n}r.classList.add("lh-report-icon",`lh-report-icon--${e}`)}}_renderReportWarnings(e){if(!e.runWarnings||0===e.runWarnings.length)return this._dom.createElement("div");const t=this._dom.createComponent("warningsToplevel");this._dom.find(".lh-warnings__msg",t).textContent=pe.i18n.strings.toplevelWarningsMessage;const n=[];for(const t of e.runWarnings){const e=this._dom.createElement("li");e.append(this._dom.convertMarkdownLinkSnippets(t)),n.push(e)}return this._dom.find("ul",t).append(...n),t}_renderScoreGauges(e,t,n){const r=[],o=[],i=[];for(const a of Object.values(e.categories)){const l=n[a.id]||t,s=l.renderCategoryScore(a,e.categoryGroups||{},{gatherMode:e.gatherMode}),c=this._dom.find("a.lh-gauge__wrapper, a.lh-fraction__wrapper",s);c&&(this._dom.safelySetHref(c,`#${a.id}`),c.addEventListener("click",(e=>{if(!c.matches('[href^="#"]'))return;const t=c.getAttribute("href"),n=this._dom.rootEl;if(!t||!n)return;const r=this._dom.find(t,n);e.preventDefault(),r.scrollIntoView()})),this._opts.onPageAnchorRendered?.(c)),pe.isPluginCategory(a.id)?i.push(s):l.renderCategoryScore===t.renderCategoryScore?r.push(s):o.push(s)}return[...r,...o,...i]}_renderReport(e){const t=new it(e.configSettings.locale,{...pe.UIStrings,...e.i18n.rendererFormattedStrings});pe.i18n=t,pe.reportJson=e;const n=e.audits["full-page-screenshot"]?.details&&"full-page-screenshot"===e.audits["full-page-screenshot"].details.type?e.audits["full-page-screenshot"].details:void 0,r=new zt(this._dom,{fullPageScreenshot:n}),o=new xt(this._dom,r),i={performance:new Mt(this._dom,r),pwa:new Lt(this._dom,r)},a=this._dom.createElement("div");a.append(this._renderReportHeader());const l=this._dom.createElement("div","lh-container"),s=this._dom.createElement("div","lh-report");let c;s.append(this._renderReportWarnings(e));1===Object.keys(e.categories).length?a.classList.add("lh-header--solo-category"):c=this._dom.createElement("div","lh-scores-header");const d=this._dom.createElement("div");if(d.classList.add("lh-scorescale-wrap"),d.append(this._dom.createComponent("scorescale")),c){const t=this._dom.find(".lh-scores-container",a);c.append(...this._renderScoreGauges(e,o,i)),t.append(c,d);const n=this._dom.createElement("div","lh-sticky-header");n.append(...this._renderScoreGauges(e,o,i)),l.append(n)}const h=this._dom.createElement("div","lh-categories");s.append(h);const p={gatherMode:e.gatherMode};for(const t of Object.values(e.categories)){const n=i[t.id]||o;n.dom.createChildOf(h,"div","lh-category-wrapper").append(n.render(t,e.categoryGroups,p))}o.injectFinalScreenshot(h,e.audits,d);const u=this._dom.createFragment();return this._opts.omitGlobalStyles||u.append(this._dom.createComponent("styles")),this._opts.omitTopbar||u.append(this._renderReportTopbar(e)),u.append(l),s.append(this._renderReportFooter(e)),l.append(a,s),n&&
|
|
160
|
+
*/class Nt{constructor(e){this._dom=e,this._opts={}}renderReport(e,t,n){if(!this._dom.rootEl&&t){console.warn("Please adopt the new report API in renderer/api.js.");const e=t.closest(".lh-root");e?this._dom.rootEl=e:(t.classList.add("lh-root","lh-vars"),this._dom.rootEl=t)}else this._dom.rootEl&&t&&(this._dom.rootEl=t);n&&(this._opts=n),this._dom.setLighthouseChannel(e.configSettings.channel||"unknown");const r=pe.prepareReportResult(e);return this._dom.rootEl.textContent="",this._dom.rootEl.append(this._renderReport(r)),this._dom.rootEl}_renderReportTopbar(e){const t=this._dom.createComponent("topbar"),n=this._dom.find("a.lh-topbar__url",t);return n.textContent=e.finalUrl,n.title=e.finalUrl,this._dom.safelySetHref(n,e.finalUrl),t}_renderReportHeader(){const e=this._dom.createComponent("heading"),t=this._dom.createComponent("scoresWrapper");return this._dom.find(".lh-scores-wrapper-placeholder",e).replaceWith(t),e}_renderReportFooter(e){const t=this._dom.createComponent("footer");return this._renderMetaBlock(e,t),this._dom.find(".lh-footer__version_issue",t).textContent=pe.i18n.strings.footerIssue,this._dom.find(".lh-footer__version",t).textContent=e.lighthouseVersion,t}_renderMetaBlock(e,t){const n=pe.getEmulationDescriptions(e.configSettings||{}),r=e.userAgent.match(/(\w*Chrome\/[\d.]+)/),o=Array.isArray(r)?r[1].replace("/"," ").replace("Chrome","Chromium"):"Chromium",i=e.configSettings.channel,a=e.environment.benchmarkIndex.toFixed(0),l=e.environment.credits?.["axe-core"],s=[["date",`Captured at ${pe.i18n.formatDateTime(e.fetchTime)}`],["devices",`${n.deviceEmulation} with Lighthouse ${e.lighthouseVersion}`,`${pe.i18n.strings.runtimeSettingsBenchmark}: ${a}\n${pe.i18n.strings.runtimeSettingsCPUThrottling}: ${n.cpuThrottling}`+(l?`\n${pe.i18n.strings.runtimeSettingsAxeVersion}: ${l}`:"")],["samples-one",pe.i18n.strings.runtimeSingleLoad,pe.i18n.strings.runtimeSingleLoadTooltip],["stopwatch",pe.i18n.strings.runtimeAnalysisWindow],["networkspeed",`${n.summary}`,`${pe.i18n.strings.runtimeSettingsNetworkThrottling}: ${n.networkThrottling}`],["chrome",`Using ${o}`+(i?` with ${i}`:""),`${pe.i18n.strings.runtimeSettingsUANetwork}: "${e.environment.networkUserAgent}"`]],c=this._dom.find(".lh-meta__items",t);for(const[e,t,n]of s){const r=this._dom.createChildOf(c,"li","lh-meta__item");if(r.textContent=t,n){r.classList.add("lh-tooltip-boundary");this._dom.createChildOf(r,"div","lh-tooltip").textContent=n}r.classList.add("lh-report-icon",`lh-report-icon--${e}`)}}_renderReportWarnings(e){if(!e.runWarnings||0===e.runWarnings.length)return this._dom.createElement("div");const t=this._dom.createComponent("warningsToplevel");this._dom.find(".lh-warnings__msg",t).textContent=pe.i18n.strings.toplevelWarningsMessage;const n=[];for(const t of e.runWarnings){const e=this._dom.createElement("li");e.append(this._dom.convertMarkdownLinkSnippets(t)),n.push(e)}return this._dom.find("ul",t).append(...n),t}_renderScoreGauges(e,t,n){const r=[],o=[],i=[];for(const a of Object.values(e.categories)){const l=n[a.id]||t,s=l.renderCategoryScore(a,e.categoryGroups||{},{gatherMode:e.gatherMode}),c=this._dom.find("a.lh-gauge__wrapper, a.lh-fraction__wrapper",s);c&&(this._dom.safelySetHref(c,`#${a.id}`),c.addEventListener("click",(e=>{if(!c.matches('[href^="#"]'))return;const t=c.getAttribute("href"),n=this._dom.rootEl;if(!t||!n)return;const r=this._dom.find(t,n);e.preventDefault(),r.scrollIntoView()})),this._opts.onPageAnchorRendered?.(c)),pe.isPluginCategory(a.id)?i.push(s):l.renderCategoryScore===t.renderCategoryScore?r.push(s):o.push(s)}return[...r,...o,...i]}_renderReport(e){const t=new it(e.configSettings.locale,{...pe.UIStrings,...e.i18n.rendererFormattedStrings});pe.i18n=t,pe.reportJson=e;const n=e.audits["full-page-screenshot"]?.details&&"full-page-screenshot"===e.audits["full-page-screenshot"].details.type?e.audits["full-page-screenshot"].details:void 0,r=new zt(this._dom,{fullPageScreenshot:n}),o=new xt(this._dom,r),i={performance:new Mt(this._dom,r),pwa:new Lt(this._dom,r)},a=this._dom.createElement("div");a.append(this._renderReportHeader());const l=this._dom.createElement("div","lh-container"),s=this._dom.createElement("div","lh-report");let c;s.append(this._renderReportWarnings(e));1===Object.keys(e.categories).length?a.classList.add("lh-header--solo-category"):c=this._dom.createElement("div","lh-scores-header");const d=this._dom.createElement("div");if(d.classList.add("lh-scorescale-wrap"),d.append(this._dom.createComponent("scorescale")),c){const t=this._dom.find(".lh-scores-container",a);c.append(...this._renderScoreGauges(e,o,i)),t.append(c,d);const n=this._dom.createElement("div","lh-sticky-header");n.append(...this._renderScoreGauges(e,o,i)),l.append(n)}const h=this._dom.createElement("div","lh-categories");s.append(h);const p={gatherMode:e.gatherMode};for(const t of Object.values(e.categories)){const n=i[t.id]||o;n.dom.createChildOf(h,"div","lh-category-wrapper").append(n.render(t,e.categoryGroups,p))}o.injectFinalScreenshot(h,e.audits,d);const u=this._dom.createFragment();return this._opts.omitGlobalStyles||u.append(this._dom.createComponent("styles")),this._opts.omitTopbar||u.append(this._renderReportTopbar(e)),u.append(l),s.append(this._renderReportFooter(e)),l.append(a,s),n&&Et.installFullPageScreenshot(this._dom.rootEl,n.screenshot),u}}
|
|
161
161
|
/**
|
|
162
162
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
163
163
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
@@ -216,18 +216,18 @@ class Ot{constructor(e){this._dom=e,this._toggleEl,this._menuEl,this.onDocumentK
|
|
|
216
216
|
* See the License for the specific language governing permissions and
|
|
217
217
|
* limitations under the License.
|
|
218
218
|
*/
|
|
219
|
-
function(e){return Array.from(e.tBodies[0].rows)}(e),r=this._getThirdPartyRows(n,this.json.finalUrl),o=this._dom.createComponent("3pFilter"),i=this._dom.find("input",o);i.addEventListener("change",(e=>{const t=e.target instanceof HTMLInputElement&&!e.target.checked;let o=!0,i=n[0];for(;i;){const e=t&&r.includes(i);do{i.classList.toggle("lh-row--hidden",e),i.classList.toggle("lh-row--even",!e&&o),i.classList.toggle("lh-row--odd",!e&&!o),i=i.nextElementSibling}while(i&&i.classList.contains("lh-sub-item-row"));e||(o=!o)}})),this._dom.find(".lh-3p-filter-count",o).textContent=`${r.length}`,this._dom.find(".lh-3p-ui-string",o).textContent=pe.i18n.strings.thirdPartyResourcesLabel;const a=r.length===n.length,l=!r.length;if((a||l)&&(this._dom.find("div.lh-3p-filter",o).hidden=!0),!e.parentNode)return;e.parentNode.insertBefore(o,e);const s=e.closest(".lh-audit");if(!s)throw new Error(".lh-table not within audit");t.includes(s.id)&&!a&&i.click()}))}_setupElementScreenshotOverlay(e){const t=this.json.audits["full-page-screenshot"]&&this.json.audits["full-page-screenshot"].details&&"full-page-screenshot"===this.json.audits["full-page-screenshot"].details.type&&this.json.audits["full-page-screenshot"].details;t&&
|
|
219
|
+
function(e){return Array.from(e.tBodies[0].rows)}(e),r=this._getThirdPartyRows(n,this.json.finalUrl),o=this._dom.createComponent("3pFilter"),i=this._dom.find("input",o);i.addEventListener("change",(e=>{const t=e.target instanceof HTMLInputElement&&!e.target.checked;let o=!0,i=n[0];for(;i;){const e=t&&r.includes(i);do{i.classList.toggle("lh-row--hidden",e),i.classList.toggle("lh-row--even",!e&&o),i.classList.toggle("lh-row--odd",!e&&!o),i=i.nextElementSibling}while(i&&i.classList.contains("lh-sub-item-row"));e||(o=!o)}})),this._dom.find(".lh-3p-filter-count",o).textContent=`${r.length}`,this._dom.find(".lh-3p-ui-string",o).textContent=pe.i18n.strings.thirdPartyResourcesLabel;const a=r.length===n.length,l=!r.length;if((a||l)&&(this._dom.find("div.lh-3p-filter",o).hidden=!0),!e.parentNode)return;e.parentNode.insertBefore(o,e);const s=e.closest(".lh-audit");if(!s)throw new Error(".lh-table not within audit");t.includes(s.id)&&!a&&i.click()}))}_setupElementScreenshotOverlay(e){const t=this.json.audits["full-page-screenshot"]&&this.json.audits["full-page-screenshot"].details&&"full-page-screenshot"===this.json.audits["full-page-screenshot"].details.type&&this.json.audits["full-page-screenshot"].details;t&&Et.installOverlayFeature({dom:this._dom,rootEl:e,overlayContainerEl:e,fullPageScreenshot:t})}_getThirdPartyRows(e,t){const n=[],r=pe.getRootDomain(t);for(const t of e){if(t.classList.contains("lh-sub-item-row"))continue;const e=t.querySelector("div.lh-text__url");if(!e)continue;const o=e.dataset.url;if(!o)continue;pe.getRootDomain(o)!==r&&n.push(t)}return n}_saveFile(e){const t=e.type.match("json")?".json":".html",n=(r=this.json,Vt(new URL(r.finalUrl).hostname,r.fetchTime)+t);var r;this._opts.onSaveFileOverride?this._opts.onSaveFileOverride(e,n):this._dom.saveFile(e,n)}}
|
|
220
220
|
/**
|
|
221
221
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
222
222
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
223
223
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
224
|
-
*/function jt(){return new yt(document,document.documentElement).createComponent("styles")}const Gt=({category:e,href:t,gatherMode:n})=>D("div",{ref:Ne((()=>function(e,t){const n=new yt(document,document.documentElement),r=new zt(n);return new xt(n,r).renderCategoryScore(e,{},t)}(e,{gatherMode:n,omitLabel:!0,onPageAnchorRendered:e=>e.href=t})),[e,t]),"data-testid":"CategoryScore"}),Wt=({text:e})=>D("span",{ref:Ne((()=>{return t=e,new yt(document,document.documentElement).convertMarkdownCodeSnippets(t);var t}),[e])});function qt(e,t){switch(e){case"navigation":return t.navigationReport;case"timespan":return t.timespanReport;case"snapshot":return t.snapshotReport}}function Kt(e,t){switch(e){case"pass":return t.ratingPass;case"average":return t.ratingAverage;case"fail":return t.ratingFail;case"error":return t.ratingError}}function Zt(e){return e.weight*(1-e.result.score)}function Jt(e){return e.result.details&&"opportunity"===e.result.details.type&&e.result.details.overallSavingsMs||0}const Qt=({audit:e})=>D("div",{className:`SummaryTooltipAudit SummaryTooltipAudit--${pe.calculateRating(e.result.score,e.result.scoreDisplayMode)}`,children:D(Wt,{text:e.result.title})}),Yt=({category:e})=>{const t=ht();const n=e.auditRefs.filter((function(t){return null!==t.result.score&&"metrics"!==t.group&&("hidden"!==t.group||"performance"!==e.id)&&(t.weight>0||Jt(t)>0)&&!pe.showAsPassed(t.result)})).sort(((e,t)=>{const n=Zt(e),r=Zt(t);return n!==r?r-n:Jt(t)-Jt(e)})).splice(0,2);return n.length?D("div",{className:"SummaryTooltipAudits",children:[D("div",{className:"SummaryTooltipAudits__title",children:t.highestImpact}),n.map((e=>D(Qt,{audit:e},e.id)))]}):null},Xt=({category:e,gatherMode:t,url:n})=>{const r=ht(),o=pt(),{numPassed:i,numPassableAudits:a,numInformative:l,totalWeight:s}=pe.calculateCategoryFraction(e),c=dt(),d=pe.shouldDisplayAsFraction(t),h=d?i/a:e.score,p=null===h?"error":pe.calculateRating(h);return D("div",{className:"SummaryTooltip",children:[D("div",{className:"SummaryTooltip__title",children:qt(t,r)}),D("div",{className:"SummaryTooltip__url",children:n}),D(Fe,{}),D("div",{className:"SummaryTooltip__category",children:[D("div",{className:"SummaryTooltip__category-title",children:e.title}),0!==s&&D("div",{className:`SummaryTooltip__rating SummaryTooltip__rating--${p}`,children:[D("span",{children:Kt(p,r)}),!d&&null!==e.score&&D(g,{children:[D("span",{children:" · "}),D("span",{children:c.formatInteger(100*e.score)})]})]})]}),D("div",{className:"SummaryTooltip__fraction",children:[D("span",{children:o(r.passedAuditCount,{numPassed:i})}),D("span",{children:" / "}),D("span",{children:o(r.passableAuditCount,{numPassableAudits:a})})]}),0!==l&&D("div",{className:"SummaryTooltip__informative",children:o(r.informativeAuditCount,{numInformative:l})}),D(Yt,{category:e})]})},en=({category:e,href:t,gatherMode:n,finalUrl:r})=>D("div",{className:"SummaryCategory",children:D("div",e?{className:"SummaryCategory__content",children:[D(Gt,{category:e,href:t,gatherMode:n}),D(Xt,{category:e,gatherMode:n,url:r})]}:{className:"SummaryCategory__null","data-testid":"SummaryCategory__null"})}),tn=["performance","accessibility","best-practices","seo"],nn=({lhr:e})=>{const t=ht();return D("div",{className:"SummaryNavigationHeader","data-testid":"SummaryNavigationHeader",children:[D(Te,{}),D("div",{className:"SummaryNavigationHeader__url",children:D("a",{rel:"noopener",target:"_blank",href:e.finalUrl,children:e.finalUrl})}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryPerformance}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryAccessibility}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryBestPractices}),D("div",{className:"SummaryNavigationHeader__category",children:t.categorySeo})]})},rn=({lhr:e,label:t,hashIndex:n})=>{const r=Q((()=>pe.prepareReportResult(e)),[e]),o=ht(),i=ze(e.gatherMode,o);return D("div",{className:"SummaryFlowStep",children:["navigation"===e.gatherMode||0===n?D(nn,{lhr:e}):D("div",{className:"SummaryFlowStep__separator",children:[D(Te,{}),D(Fe,{})]}),D(Pe,{lhr:e,width:40}),D(Te,{mode:e.gatherMode}),D("div",{className:"SummaryFlowStep__label",children:[D("div",{className:"SummaryFlowStep__mode",children:i}),D("a",{className:"SummaryFlowStep__link",href:`#index=${n}`,children:t})]}),tn.map((t=>D(en,{category:r.categories[t],href:`#index=${n}&anchor=${t}`,gatherMode:e.gatherMode,finalUrl:e.finalUrl},t)))]})},on=()=>D("div",{className:"SummaryFlow",children:Me().steps.map(((e,t)=>D(rn,{lhr:e.lhr,label:e.name,hashIndex:t},e.lhr.fetchTime)))}),an=()=>{const e=Me(),t=ht(),n=pt();let r=0,o=0,i=0;for(const t of e.steps)switch(t.lhr.gatherMode){case"navigation":r++;break;case"timespan":o++;break;case"snapshot":i++}const a=[];r&&a.push(n(t.navigationReportCount,{numNavigation:r})),o&&a.push(n(t.timespanReportCount,{numTimespan:o})),i&&a.push(n(t.snapshotReportCount,{numSnapshot:i}));const l=a.join(" · ");return D("div",{className:"SummaryHeader",children:[D("div",{className:"SummaryHeader__title",children:t.summary}),D("div",{className:"SummaryHeader__subtitle",children:l})]})},ln=({children:e})=>D("div",{className:"SummarySectionHeader",children:[D("div",{className:"SummarySectionHeader__content",children:e}),D(Fe,{})]}),sn=()=>{const e=ht();return D("div",{className:"Summary","data-testid":"Summary",children:[D(an,{}),D(Fe,{}),D(ln,{children:e.allReports}),D(on,{})]})};const cn=({hashState:e})=>D("div",{ref:Ne((()=>function(e,t={}){const n=document.createElement("article");n.classList.add("lh-root","lh-vars");const r=new yt(n.ownerDocument,n);return new Nt(r).renderReport(e,n,t),new $t(r,t).initFeatures(e),n}(e.currentLhr,{disableFireworks:!0,disableDarkMode:!0,omitTopbar:!0,omitGlobalStyles:!0,onPageAnchorRendered:t=>function(e,t){const n=e.cloneNode(!0);if(!n.hash)return n;const r=e.hash.substr(1);n.hash=`#index=${t}&anchor=${r}`,n.onclick=e=>{e.preventDefault();const t=document.getElementById(r);t&&t.scrollIntoView()},e.replaceWith(n)}(t,e.index)})),[e]),"data-testid":"Report"}),dn=e=>{const t=ht();return D("div",{className:"HelpDialogColumn",children:[D("div",{className:"HelpDialogColumn__legend",children:[D("div",{className:"HelpDialogColumnTimeline",children:[e.icon,D("div",{className:"HelpDialogColumnTimeline__line"})]}),D("div",{className:"HelpDialogColumn__legend-label",children:e.userFriendlyModeLabel})]}),D("div",{className:"HelpDialogColumn__header",children:[D("div",{className:"HelpDialogColumn__header-title",children:e.lighthouseOfficialModeLabel}),D("p",{children:e.modeDescription})]}),D("div",{className:"HelpDialogColumn__use-cases",children:[D("p",{children:e.useCaseInstruction}),D("ul",{children:e.useCases.map(((e,t)=>D("li",{children:e},t)))})]}),D("div",{className:"HelpDialogColumn__categories",children:[D("p",{children:t.categories}),D("ul",{children:e.availableCategories.map(((e,t)=>D("li",{children:e},t)))})]})]})},hn=({onClose:e})=>{const t=ht();return D("div",{className:"HelpDialog",children:[D("div",{className:"HelpDialog__title",children:[D("div",{children:t.helpDialogTitle}),D("div",{style:{flexGrow:1}}),D("button",{className:"HelpDialog__close",onClick:e,children:D(ve,{})})]}),D("div",{className:"HelpDialog__columns",children:[D(dn,{icon:D(me,{}),userFriendlyModeLabel:t.navigationDescription,lighthouseOfficialModeLabel:t.navigationReport,modeDescription:t.navigationLongDescription,useCaseInstruction:t.helpUseCaseInstructionNavigation,useCases:[t.helpUseCaseNavigation1,t.helpUseCaseNavigation2,t.helpUseCaseNavigation3],availableCategories:[t.categoryPerformance,t.categoryAccessibility,t.categoryBestPractices,t.categorySeo,t.categoryProgressiveWebApp]}),D(dn,{icon:D(fe,{}),userFriendlyModeLabel:t.timespanDescription,lighthouseOfficialModeLabel:t.timespanReport,modeDescription:t.timespanLongDescription,useCaseInstruction:t.helpUseCaseInstructionTimespan,useCases:[t.helpUseCaseTimespan1,t.helpUseCaseTimespan2],availableCategories:[t.categoryPerformance,t.categoryBestPractices]}),D(dn,{icon:D(_e,{}),userFriendlyModeLabel:t.snapshotDescription,lighthouseOfficialModeLabel:t.snapshotReport,modeDescription:t.snapshotLongDescription,useCaseInstruction:t.helpUseCaseInstructionSnapshot,useCases:[t.helpUseCaseSnapshot1,t.helpUseCaseSnapshot2],availableCategories:[t.categoryPerformance,t.categoryAccessibility,t.categoryBestPractices,t.categorySeo]})]})]})};function pn(e,t){const n=new Blob([t],{type:"text/html"}),r=function(e){const t=e.steps[0].lhr;return Vt(e.name.replace(/\s/g,"-"),t.fetchTime)}(e)+".html";pn.saveFile(n,r)}pn.saveFile=function(e,t){new yt(document,document.documentElement).saveFile(e,t)};const un=()=>D("svg",{height:"24",width:"24",viewBox:"0 0 24 24",role:"img",children:[D("defs",{children:[D("linearGradient",{x1:"57.456%",y1:"13.086%",x2:"18.259%",y2:"72.322%",id:"Topbar__logo--a",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"100%",y1:"50%",x2:"0%",y2:"50%",id:"Topbar__logo--b",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"58.764%",y1:"65.756%",x2:"36.939%",y2:"50.14%",id:"Topbar__logo--c",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"41.635%",y1:"20.358%",x2:"72.863%",y2:"85.424%",id:"Topbar__logo--d",children:[D("stop",{"stop-color":"#FFF","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#FFF","stop-opacity":"0",offset:"100%"})]})]}),D("g",{fill:"none","fill-rule":"evenodd",children:[D("path",{d:"M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z",fill:"#F44B21"}),D("path",{fill:"#FFF",d:"M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z"}),D("path",{d:"M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z",fill:"url(#Topbar__logo--a)","fill-rule":"nonzero",transform:"translate(6 3)"}),D("path",{fill:"#FFF176","fill-rule":"nonzero",d:"M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z"}),D("path",{fill:"url(#Topbar__logo--b)","fill-rule":"nonzero",d:"M0 6.375h6v2.25H0z",transform:"translate(6 3)"}),D("path",{fill:"url(#Topbar__logo--c)","fill-rule":"nonzero",d:"M6 6.375H1.875v-3.75L6 0z",transform:"translate(6 3)"}),D("path",{fill:"url(#Topbar__logo--d)","fill-rule":"nonzero",d:"M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z",transform:"translate(6 3)"})]})]}),gn=({onClick:e,label:t,children:n})=>D("button",{className:"TopbarButton",onClick:e,"aria-label":t,children:n}),mn=({onMenuClick:e})=>{const t=Me(),n=ht(),[r,o]=q(!1),{getReportHtml:i,saveAsGist:a}=Y(Ce);return D("div",{className:"Topbar",children:[D(gn,{onClick:e,label:"Button that opens and closes the sidebar",children:D(xe,{})}),D("div",{className:"Topbar__logo",children:D(un,{})}),D("div",{className:"Topbar__title",children:n.title}),i&&D(gn,{onClick:()=>{const e=i(t);pn(t,e)},label:"Button that saves the report as HTML",children:n.save}),a&&D(gn,{onClick:()=>a(t),label:"Button that saves the report to a gist",children:n.dropdownSaveGist}),D("div",{style:{flexGrow:1}}),D(gn,{onClick:()=>o((e=>!e)),label:"Button that toggles the help dialog",children:D("div",{className:"Topbar__help-label",children:[D(ke,{}),n.helpLabel]})}),r?D(hn,{onClose:()=>o(!1)}):null]})},fn=({lhr:e,position:t})=>D("div",{className:`HeaderThumbnail HeaderThumbnail--${t}`,children:[D(Pe,{lhr:e,height:"main"===t?120:80}),D("div",{className:"HeaderThumbnail__icon",children:D(He,{mode:e.gatherMode})})]}),_n=({hashState:e})=>{const t=Me(),{index:n}=e,r=t.steps[n],o=t.steps[n-1],i=t.steps[n+1],a=ht(),l=ze(r.lhr.gatherMode,a);return D("div",{className:"Header",children:[o&&D(g,{children:[t.steps[n-2]&&D("div",{className:"Header__segment"}),D("div",{className:"Header__prev-thumbnail",children:[D(fn,{lhr:o.lhr,position:"prev"}),D("div",{className:"Header__segment"})]}),D("a",{className:"Header__prev-title",href:"#index="+(n-1),children:o.name})]}),D("div",{className:"Header__current-thumbnail",children:D(fn,{lhr:r.lhr,position:"main"})}),D("div",{className:"Header__current-title",children:[r.name,D("div",{className:"Header__current-description",children:l})]}),i&&D(g,{children:[D("div",{className:"Header__next-thumbnail",children:[D("div",{className:"Header__segment"}),D(fn,{lhr:i.lhr,position:"next"})]}),D("a",{className:"Header__next-title",href:`#index=${n+1}`,children:i.name}),t.steps[n+2]&&D("div",{className:"Header__segment"})]})]})},vn=()=>D("div",{ref:Ne(jt)});const bn=()=>{const e=Le(),t=J(null);return Z((()=>{const n=function(e){return e&&e.anchor?document.getElementById(e.anchor):null}(e);n?n.scrollIntoView():t.current&&(t.current.scrollTop=0)}),[e]),D("div",{ref:t,className:"Content",children:e?D(g,{children:[D(_n,{hashState:e}),D(cn,{hashState:e})]}):D(sn,{})})},wn=({flowResult:e,options:t})=>{const[n,r]=q(!1),o=Q((()=>t||{}),[t]);return D(Ce.Provider,{value:o,children:D(Ae.Provider,{value:e,children:D(ut,{children:[D(vn,{}),D("div",{className:Ee("App",{"App--collapsed":n}),"data-testid":"App",children:[D(mn,{onMenuClick:()=>r((e=>!e))}),D(wt,{}),D(bn,{})]})]})})})};
|
|
224
|
+
*/function jt(){return new yt(document,document.documentElement).createComponent("styles")}const Gt=({category:e,href:t,gatherMode:n})=>D("div",{ref:Ne((()=>function(e,t){const n=new yt(document,document.documentElement),r=new zt(n);return new xt(n,r).renderCategoryScore(e,{},t)}(e,{gatherMode:n,omitLabel:!0,onPageAnchorRendered:e=>e.href=t})),[e,t]),"data-testid":"CategoryScore"}),Wt=({text:e})=>D("span",{ref:Ne((()=>{return t=e,new yt(document,document.documentElement).convertMarkdownCodeSnippets(t);var t}),[e])});function qt(e,t){switch(e){case"navigation":return t.navigationReport;case"timespan":return t.timespanReport;case"snapshot":return t.snapshotReport}}function Kt(e,t){switch(e){case"pass":return t.ratingPass;case"average":return t.ratingAverage;case"fail":return t.ratingFail;case"error":return t.ratingError}}function Zt(e){return e.weight*(1-e.result.score)}function Jt(e){return e.result.details&&"opportunity"===e.result.details.type&&e.result.details.overallSavingsMs||0}const Qt=({audit:e})=>D("div",{className:`SummaryTooltipAudit SummaryTooltipAudit--${pe.calculateRating(e.result.score,e.result.scoreDisplayMode)}`,children:D(Wt,{text:e.result.title})}),Yt=({category:e})=>{const t=ht();const n=e.auditRefs.filter((function(t){return null!==t.result.score&&"metrics"!==t.group&&("hidden"!==t.group||"performance"!==e.id)&&(t.weight>0||Jt(t)>0)&&!pe.showAsPassed(t.result)})).sort(((e,t)=>{const n=Zt(e),r=Zt(t);return n!==r?r-n:Jt(t)-Jt(e)})).splice(0,2);return n.length?D("div",{className:"SummaryTooltipAudits",children:[D("div",{className:"SummaryTooltipAudits__title",children:t.highestImpact}),n.map((e=>D(Qt,{audit:e},e.id)))]}):null},Xt=({category:e,gatherMode:t,url:n})=>{const r=ht(),o=pt(),{numPassed:i,numPassableAudits:a,numInformative:l,totalWeight:s}=pe.calculateCategoryFraction(e),c=dt(),d=pe.shouldDisplayAsFraction(t),h=d?i/a:e.score,p=null===h?"error":pe.calculateRating(h);return D("div",{className:"SummaryTooltip",children:[D("div",{className:"SummaryTooltip__title",children:qt(t,r)}),D("div",{className:"SummaryTooltip__url",children:n}),D(Fe,{}),D("div",{className:"SummaryTooltip__category",children:[D("div",{className:"SummaryTooltip__category-title",children:e.title}),0!==s&&D("div",{className:`SummaryTooltip__rating SummaryTooltip__rating--${p}`,children:[D("span",{children:Kt(p,r)}),!d&&null!==e.score&&D(g,{children:[D("span",{children:" · "}),D("span",{children:c.formatInteger(100*e.score)})]})]})]}),D("div",{className:"SummaryTooltip__fraction",children:[D("span",{children:o(r.passedAuditCount,{numPassed:i})}),D("span",{children:" / "}),D("span",{children:o(r.passableAuditCount,{numPassableAudits:a})})]}),0!==l&&D("div",{className:"SummaryTooltip__informative",children:o(r.informativeAuditCount,{numInformative:l})}),D(Yt,{category:e})]})},en=({category:e,href:t,gatherMode:n,finalUrl:r})=>D("div",{className:"SummaryCategory",children:D("div",e?{className:"SummaryCategory__content",children:[D(Gt,{category:e,href:t,gatherMode:n}),D(Xt,{category:e,gatherMode:n,url:r})]}:{className:"SummaryCategory__null","data-testid":"SummaryCategory__null"})}),tn=["performance","accessibility","best-practices","seo"],nn=({lhr:e})=>{const t=ht();return D("div",{className:"SummaryNavigationHeader","data-testid":"SummaryNavigationHeader",children:[D(Te,{}),D("div",{className:"SummaryNavigationHeader__url",children:D("a",{rel:"noopener",target:"_blank",href:e.finalUrl,children:e.finalUrl})}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryPerformance}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryAccessibility}),D("div",{className:"SummaryNavigationHeader__category",children:t.categoryBestPractices}),D("div",{className:"SummaryNavigationHeader__category",children:t.categorySeo})]})},rn=({lhr:e,label:t,hashIndex:n})=>{const r=Q((()=>pe.prepareReportResult(e)),[e]),o=ht(),i=ze(e.gatherMode,o);return D("div",{className:"SummaryFlowStep",children:["navigation"===e.gatherMode||0===n?D(nn,{lhr:e}):D("div",{className:"SummaryFlowStep__separator",children:[D(Te,{}),D(Fe,{})]}),D(Pe,{lhr:e,width:40}),D(Te,{mode:e.gatherMode}),D("div",{className:"SummaryFlowStep__label",children:[D("div",{className:"SummaryFlowStep__mode",children:i}),D("a",{className:"SummaryFlowStep__link",href:`#index=${n}`,children:t})]}),tn.map((t=>D(en,{category:r.categories[t],href:`#index=${n}&anchor=${t}`,gatherMode:e.gatherMode,finalUrl:e.finalUrl},t)))]})},on=()=>D("div",{className:"SummaryFlow",children:Me().steps.map(((e,t)=>D(rn,{lhr:e.lhr,label:e.name,hashIndex:t},e.lhr.fetchTime)))}),an=()=>{const e=Me(),t=ht(),n=pt();let r=0,o=0,i=0;for(const t of e.steps)switch(t.lhr.gatherMode){case"navigation":r++;break;case"timespan":o++;break;case"snapshot":i++}const a=[];r&&a.push(n(t.navigationReportCount,{numNavigation:r})),o&&a.push(n(t.timespanReportCount,{numTimespan:o})),i&&a.push(n(t.snapshotReportCount,{numSnapshot:i}));const l=a.join(" · ");return D("div",{className:"SummaryHeader",children:[D("div",{className:"SummaryHeader__title",children:t.summary}),D("div",{className:"SummaryHeader__subtitle",children:l})]})},ln=({children:e})=>D("div",{className:"SummarySectionHeader",children:[D("div",{className:"SummarySectionHeader__content",children:e}),D(Fe,{})]}),sn=()=>{const e=ht();return D("div",{className:"Summary","data-testid":"Summary",children:[D(an,{}),D(Fe,{}),D(ln,{children:e.allReports}),D(on,{})]})};const cn=({hashState:e})=>D("div",{ref:Ne((()=>function(e,t={}){const n=document.createElement("article");n.classList.add("lh-root","lh-vars");const r=new yt(n.ownerDocument,n);return new Nt(r).renderReport(e,n,t),new $t(r,t).initFeatures(e),n}(e.currentLhr,{disableFireworks:!0,disableDarkMode:!0,omitTopbar:!0,omitGlobalStyles:!0,onPageAnchorRendered:t=>function(e,t){const n=e.cloneNode(!0);if(!n.hash)return n;const r=e.hash.substr(1);n.hash=`#index=${t}&anchor=${r}`,n.onclick=e=>{e.preventDefault();const t=document.getElementById(r);t&&t.scrollIntoView()},e.replaceWith(n)}(t,e.index)})),[e]),"data-testid":"Report"}),dn=e=>{const t=ht();return D("div",{className:"HelpDialogColumn",children:[D("div",{className:"HelpDialogColumn__legend",children:[D("div",{className:"HelpDialogColumnTimeline",children:[e.icon,D("div",{className:"HelpDialogColumnTimeline__line"})]}),D("div",{className:"HelpDialogColumn__legend-label",children:e.userFriendlyModeLabel})]}),D("div",{className:"HelpDialogColumn__header",children:[D("div",{className:"HelpDialogColumn__header-title",children:e.lighthouseOfficialModeLabel}),D("p",{children:e.modeDescription})]}),D("div",{className:"HelpDialogColumn__use-cases",children:[D("p",{children:e.useCaseInstruction}),D("ul",{children:e.useCases.map(((e,t)=>D("li",{children:e},t)))})]}),D("div",{className:"HelpDialogColumn__categories",children:[D("p",{children:t.categories}),D("ul",{children:e.availableCategories.map(((e,t)=>D("li",{children:e},t)))})]})]})},hn=({onClose:e})=>{const t=ht();return D("div",{className:"HelpDialog",children:[D("div",{className:"HelpDialog__title",children:[D("div",{children:t.helpDialogTitle}),D("div",{style:{flexGrow:1}}),D("button",{className:"HelpDialog__close",onClick:e,children:D(ve,{})})]}),D("div",{className:"HelpDialog__columns",children:[D(dn,{icon:D(me,{}),userFriendlyModeLabel:t.navigationDescription,lighthouseOfficialModeLabel:t.navigationReport,modeDescription:t.navigationLongDescription,useCaseInstruction:t.helpUseCaseInstructionNavigation,useCases:[t.helpUseCaseNavigation1,t.helpUseCaseNavigation2,t.helpUseCaseNavigation3],availableCategories:[t.categoryPerformance,t.categoryAccessibility,t.categoryBestPractices,t.categorySeo,t.categoryProgressiveWebApp]}),D(dn,{icon:D(fe,{}),userFriendlyModeLabel:t.timespanDescription,lighthouseOfficialModeLabel:t.timespanReport,modeDescription:t.timespanLongDescription,useCaseInstruction:t.helpUseCaseInstructionTimespan,useCases:[t.helpUseCaseTimespan1,t.helpUseCaseTimespan2],availableCategories:[t.categoryPerformance,t.categoryBestPractices]}),D(dn,{icon:D(_e,{}),userFriendlyModeLabel:t.snapshotDescription,lighthouseOfficialModeLabel:t.snapshotReport,modeDescription:t.snapshotLongDescription,useCaseInstruction:t.helpUseCaseInstructionSnapshot,useCases:[t.helpUseCaseSnapshot1,t.helpUseCaseSnapshot2],availableCategories:[t.categoryPerformance,t.categoryAccessibility,t.categoryBestPractices,t.categorySeo]})]})]})};function pn(e,t){const n=new Blob([t],{type:"text/html"}),r=function(e){const t=e.steps[0].lhr;return Vt(e.name.replace(/\s/g,"-"),t.fetchTime)}(e)+".html";pn.saveFile(n,r)}pn.saveFile=function(e,t){new yt(document,document.documentElement).saveFile(e,t)};const un=()=>D("svg",{height:"24",width:"24",viewBox:"0 0 24 24",role:"img",children:[D("defs",{children:[D("linearGradient",{x1:"57.456%",y1:"13.086%",x2:"18.259%",y2:"72.322%",id:"Topbar__logo--a",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"100%",y1:"50%",x2:"0%",y2:"50%",id:"Topbar__logo--b",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"58.764%",y1:"65.756%",x2:"36.939%",y2:"50.14%",id:"Topbar__logo--c",children:[D("stop",{"stop-color":"#262626","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#262626","stop-opacity":"0",offset:"100%"})]}),D("linearGradient",{x1:"41.635%",y1:"20.358%",x2:"72.863%",y2:"85.424%",id:"Topbar__logo--d",children:[D("stop",{"stop-color":"#FFF","stop-opacity":".1",offset:"0%"}),D("stop",{"stop-color":"#FFF","stop-opacity":"0",offset:"100%"})]})]}),D("g",{fill:"none","fill-rule":"evenodd",children:[D("path",{d:"M12 3l4.125 2.625v3.75H18v2.25h-1.688l1.5 9.375H6.188l1.5-9.375H6v-2.25h1.875V5.648L12 3zm2.201 9.938L9.54 14.633 9 18.028l5.625-2.062-.424-3.028zM12.005 5.67l-1.88 1.207v2.498h3.75V6.86l-1.87-1.19z",fill:"#F44B21"}),D("path",{fill:"#FFF",d:"M14.201 12.938L9.54 14.633 9 18.028l5.625-2.062z"}),D("path",{d:"M6 18c-2.042 0-3.95-.01-5.813 0l1.5-9.375h4.326L6 18z",fill:"url(#Topbar__logo--a)","fill-rule":"nonzero",transform:"translate(6 3)"}),D("path",{fill:"#FFF176","fill-rule":"nonzero",d:"M13.875 9.375v-2.56l-1.87-1.19-1.88 1.207v2.543z"}),D("path",{fill:"url(#Topbar__logo--b)","fill-rule":"nonzero",d:"M0 6.375h6v2.25H0z",transform:"translate(6 3)"}),D("path",{fill:"url(#Topbar__logo--c)","fill-rule":"nonzero",d:"M6 6.375H1.875v-3.75L6 0z",transform:"translate(6 3)"}),D("path",{fill:"url(#Topbar__logo--d)","fill-rule":"nonzero",d:"M6 0l4.125 2.625v3.75H12v2.25h-1.688l1.5 9.375H.188l1.5-9.375H0v-2.25h1.875V2.648z",transform:"translate(6 3)"})]})]}),gn=({onClick:e,label:t,children:n})=>D("button",{className:"TopbarButton",onClick:e,"aria-label":t,children:n}),mn=({onMenuClick:e})=>{const t=Me(),n=ht(),[r,o]=q(!1),{getReportHtml:i,saveAsGist:a}=Y(Ce);return D("div",{className:"Topbar",children:[D(gn,{onClick:e,label:"Button that opens and closes the sidebar",children:D(xe,{})}),D("div",{className:"Topbar__logo",children:D(un,{})}),D("div",{className:"Topbar__title",children:n.title}),i&&D(gn,{onClick:()=>{const e=i(t);pn(t,e)},label:"Button that saves the report as HTML",children:n.save}),a&&D(gn,{onClick:()=>a(t),label:"Button that saves the report to a gist",children:n.dropdownSaveGist}),D("div",{style:{flexGrow:1}}),D(gn,{onClick:()=>o((e=>!e)),label:"Button that toggles the help dialog",children:D("div",{className:"Topbar__help-label",children:[D(ke,{}),n.helpLabel]})}),r?D(hn,{onClose:()=>o(!1)}):null]})},fn=({lhr:e,position:t})=>D("div",{className:`HeaderThumbnail HeaderThumbnail--${t}`,children:[D(Pe,{lhr:e,height:"main"===t?120:80}),D("div",{className:"HeaderThumbnail__icon",children:D(He,{mode:e.gatherMode})})]}),_n=({hashState:e})=>{const t=Me(),{index:n}=e,r=t.steps[n],o=t.steps[n-1],i=t.steps[n+1],a=ht(),l=ze(r.lhr.gatherMode,a);return D("div",{className:"Header",children:[o&&D(g,{children:[t.steps[n-2]&&D("div",{className:"Header__segment"}),D("div",{className:"Header__prev-thumbnail",children:[D(fn,{lhr:o.lhr,position:"prev"}),D("div",{className:"Header__segment"})]}),D("a",{className:"Header__prev-title",href:"#index="+(n-1),children:o.name})]}),D("div",{className:"Header__current-thumbnail",children:D(fn,{lhr:r.lhr,position:"main"})}),D("div",{className:"Header__current-title",children:[r.name,D("div",{className:"Header__current-description",children:l})]}),i&&D(g,{children:[D("div",{className:"Header__next-thumbnail",children:[D("div",{className:"Header__segment"}),D(fn,{lhr:i.lhr,position:"next"})]}),D("a",{className:"Header__next-title",href:`#index=${n+1}`,children:i.name}),t.steps[n+2]&&D("div",{className:"Header__segment"})]})]})},vn=()=>D("div",{ref:Ne(jt)});const bn=()=>{const e=Le(),t=J(null);return Z((()=>{const n=function(e){return e&&e.anchor?document.getElementById(e.anchor):null}(e);n?n.scrollIntoView():t.current&&(t.current.scrollTop=0)}),[e]),D("div",{ref:t,className:"Content",children:e?D(g,{children:[D(_n,{hashState:e}),D(cn,{hashState:e})]}):D(sn,{})})},wn=({flowResult:e,options:t})=>{const[n,r]=q(!1),o=Q((()=>t||{}),[t]);return D(Ce.Provider,{value:o,children:D(Ae.Provider,{value:e,children:D(ut,{children:[D(vn,{}),D("div",{className:Se("App",{"App--collapsed":n}),"data-testid":"App",children:[D(mn,{onMenuClick:()=>r((e=>!e))}),D(wt,{}),D(bn,{})]})]})})})};
|
|
225
225
|
/**
|
|
226
226
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
227
227
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
228
228
|
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
|
229
229
|
*/
|
|
230
|
-
function yn(n,r,o){r.classList.add("flow-vars","lh-vars","lh-root"),function(n,r,o){var i,a,s;t.__&&t.__(n,r),a=(i="function"==typeof o)?null:o&&o.__k||r.__k,s=[],
|
|
230
|
+
function yn(n,r,o){r.classList.add("flow-vars","lh-vars","lh-root"),function(n,r,o){var i,a,s;t.__&&t.__(n,r),a=(i="function"==typeof o)?null:o&&o.__k||r.__k,s=[],S(r,n=(!i&&o||r).__k=p(g,null,[n]),a||l,l,void 0!==r.ownerSVGElement,!i&&o?[o]:a?null:r.firstChild?e.call(r.childNodes):null,s,!i&&o?o:a?a.__e:r.firstChild,i),z(s,n)}(p(wn,{flowResult:n,options:o}),r)}
|
|
231
231
|
/**
|
|
232
232
|
* @license Copyright 2021 The Lighthouse Authors. All Rights Reserved.
|
|
233
233
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|