feat: Add multi-miner dashboard support and TT-Miner implementation
Dashboard:
- Add aggregate stats across all running miners (total hashrate, shares)
- Add workers table with per-miner stats, efficiency, and controls
- Show hashrate bars and efficiency badges for each worker
- Support stopping individual workers or all at once
TT-Miner:
- Implement Install, Start, GetStats, CheckInstallation, Uninstall
- Add TT-Miner to Manager's StartMiner and ListAvailableMiners
- Support GPU-specific config options (devices, intensity, cliArgs)
Chart:
- Improve styling with WA-Pro theme variables
- Add hashrate unit formatting (H/s, kH/s, MH/s)
- Better tooltip and axis styling
Also:
- Fix XMRig download URLs (linux-static-x64, windows-x64)
- Add Playwright E2E testing infrastructure
- Add XMR pool research documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:48:20 +00:00
<!DOCTYPE html>
< html style = 'scrollbar-gutter: stable both-edges;' >
< head >
< meta charset = 'UTF-8' >
< meta name = 'color-scheme' content = 'dark light' >
< meta name = 'viewport' content = 'width=device-width, initial-scale=1.0' >
< title > Playwright Test Report< / title >
< script type = "module" > v a r o A = O b j e c t . d e f i n e P r o p e r t y ; v a r d A = ( u , i , c ) = > i i n u ? o A ( u , i , { e n u m e r a b l e : ! 0 , c o n f i g u r a b l e : ! 0 , w r i t a b l e : ! 0 , v a l u e : c } ) : u [ i ] = c ; v a r d n = ( u , i , c ) = > d A ( u , t y p e o f i ! = " s y m b o l " ? i + " " : i , c ) ; ( f u n c t i o n ( ) { c o n s t i = d o c u m e n t . c r e a t e E l e m e n t ( " l i n k " ) . r e l L i s t ; i f ( i & & i . s u p p o r t s & & i . s u p p o r t s ( " m o d u l e p r e l o a d " ) ) r e t u r n ; f o r ( c o n s t r o f d o c u m e n t . q u e r y S e l e c t o r A l l ( ' l i n k [ r e l = " m o d u l e p r e l o a d " ] ' ) ) f ( r ) ; n e w M u t a t i o n O b s e r v e r ( r = > { f o r ( c o n s t o o f r ) i f ( o . t y p e = = = " c h i l d L i s t " ) f o r ( c o n s t d o f o . a d d e d N o d e s ) d . t a g N a m e = = = " L I N K " & & d . r e l = = = " m o d u l e p r e l o a d " & & f ( d ) } ) . o b s e r v e ( d o c u m e n t , { c h i l d L i s t : ! 0 , s u b t r e e : ! 0 } ) ; f u n c t i o n c ( r ) { c o n s t o = { } ; r e t u r n r . i n t e g r i t y & & ( o . i n t e g r i t y = r . i n t e g r i t y ) , r . r e f e r r e r P o l i c y & & ( o . r e f e r r e r P o l i c y = r . r e f e r r e r P o l i c y ) , r . c r o s s O r i g i n = = = " u s e - c r e d e n t i a l s " ? o . c r e d e n t i a l s = " i n c l u d e " : r . c r o s s O r i g i n = = = " a n o n y m o u s " ? o . c r e d e n t i a l s = " o m i t " : o . c r e d e n t i a l s = " s a m e - o r i g i n " , o } f u n c t i o n f ( r ) { i f ( r . e p ) r e t u r n ; r . e p = ! 0 ; c o n s t o = c ( r ) ; f e t c h ( r . h r e f , o ) } } ) ( ) ; f u n c t i o n h A ( u ) { r e t u r n u & & u . _ _ e s M o d u l e & & O b j e c t . p r o t o t y p e . h a s O w n P r o p e r t y . c a l l ( u , " d e f a u l t " ) ? u . d e f a u l t : u } v a r p f = { e x p o r t s : { } } , A i = { } ; / * *
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var d1;function gA(){if(d1)return Ai;d1=1;var u=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function c(f,r,o){var d=null;if(o!==void 0& & (d=""+o),r.key!==void 0& & (d=""+r.key),"key"in r){o={};for(var y in r)y!=="key"& & (o[y]=r[y])}else o=r;return r=o.ref,{$$typeof:u,type:f,key:d,ref:r!==void 0?r:null,props:o}}return Ai.Fragment=i,Ai.jsx=c,Ai.jsxs=c,Ai}var h1;function mA(){return h1||(h1=1,pf.exports=gA()),pf.exports}var m=mA();const AA=15,bt=0,mn=1,vA=2,me=-2,Ht=-3,g1=-4,An=-5,we=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],S2=1440,yA=0,EA=4,bA=9,pA=5,xA=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,
* @license React
* react.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var c2;function d5(){if(c2)return ht;c2=1;var u=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),d=Symbol.for("react.context"),y=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),w=Symbol.iterator;function R(b){return b===null||typeof b!="object"?null:(b=w& & b[w]||b["@@iterator"],typeof b=="function"?b:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},N=Object.assign,x={};function p(b,q,P){this.props=b,this.context=q,this.refs=x,this.updater=P||z}p.prototype.isReactComponent={},p.prototype.setState=function(b,q){if(typeof b!="object"& & typeof b!="function"& & b!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,b,q,"setState")},p.prototype.forceUpdate=function(b){this.updater.enqueueForceUpdate(this,b,"forceUpdate")};function T(){}T.prototype=p.prototype;function D(b,q,P){this.props=b,this.context=q,this.refs=x,this.updater=P||z}var U=D.prototype=new T;U.constructor=D,N(U,p.prototype),U.isPureReactComponent=!0;var I=Array.isArray,V={H:null,A:null,T:null,S:null,V:null},j=Object.prototype.hasOwnProperty;function G(b,q,P,J,it,mt){return P=mt.ref,{$$typeof:u,type:b,key:q,ref:P!==void 0?P:null,props:mt}}function L(b,q){return G(b.type,q,void 0,void 0,void 0,b.props)}function W(b){return typeof b=="object"& & b!==null& & b.$$typeof===u}function F(b){var q={"=":"=0",":":"=2"};return"$"+b.replace(/[=:]/g,function(P){return q[P]})}var K=/\/+/g;function et(b,q){return typeof b=="object"& & b!==null& & b.key!=null?F(""+b.key):q.toString(36)}function tt(){}function ot(b){switch(b.status){case"fulfilled":return b.value;case"rejected":throw b.reason;default:switch(typeof b.status=="string"?b.then(tt,tt):(b.status="pending",b.then(function(q){b.status==="pending"& & (b.status="fulfilled",b.value=q)},function(q){b.status==="pending"& & (b.status="rejected",b.reason=q)})),b.status){case"fulfilled":return b.value;case"rejected":throw b.reason}}throw b}function at(b,q,P,J,it){var mt=typeof b;(mt==="undefined"||mt==="boolean")&&(b=null); var ut=!1;if(b===null)ut=!0;else switch(mt){case"bigint":case"string":case"number":ut=!0;break;case"object":switch(b.$$typeof){case u:case i:ut=!0;break;case E:return ut=b._init,at(ut(b._payload),q,P,J,it)}}if(ut)return it=it(b),ut=J===""?"."+et(b,0):J,I(it)?(P="",ut!=null& & (P=ut.replace(K,"$& /")+"/"),at(it,q,P,"",function(Le){return Le})):it!=null&&(W(it)&&(it=L(it,P+(it.key==null||b&&b.key===it.key?"":(""+it.key).replace(K,"$&/")+"/")+ut)),q.push(it)),1; ut=0;var Nt=J===""?".":J+":";if(I(b))for(var Dt=0;Dt< b.length ; Dt + + ) J = b[Dt],mt=Nt+et(J,Dt),ut+=at(J,q,P,mt,it);else if ( Dt = R(b),typeof Dt = ="function")for(b=Dt.call(b),Dt=0;!(J=b.next()).done;)J=J.value,mt=Nt+et(J,Dt++),ut+=at(J,q,P,mt,it);else if ( mt = =="object"){if(typeof b . then = ="function")return at ( ot ( b ) , q , P , J , it ) ; throw q = String(b),Error("Objects are not valid as a React child ( found: " + ( q = =="[object Object ] " ? " object with keys { " + Object . keys ( b ) . join ( " , " ) + " } " :q ) + " ) . If you meant to render a collection of children , use an array instead . " ) } return ut } function M ( b , q , P ) { if ( b = =null)return b ; var J = [],it=0;return at ( b , J , " " , " " , function ( mt ) { return q . call ( P , mt , it + + ) } ) , J } function _ ( b ) { if ( b . _status = ==-1){var q = b._result;q=q(),q.then(function(P){(b._status===0||b._status===-1)&&(b._status=1,b._result=P)},function(P){(b._status===0||b._status===-1)&&(b._status=2,b._result=P)}),b._status===-1&&(b._status=0,b._result=q)}if(b._status===1)return b . _result . default ; throw b . _result } var $ = typeof reportError = ="function"?reportError:function(b){if(typeof window = ="object"&&typeof window . ErrorEvent = ="function"){var q = new window . ErrorEvent ( " error " , { bubbles: ! 0 , cancelable: ! 0 , message:typeof b = ="object"&&b!==null&&typeof b . message = ="string"?String(b.message):String(b),error:b});if(!window.dispatchE
* @license React
* scheduler.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var f2;function h5(){return f2||(f2=1,(function(u){function i(M,_){var $=M.length;M.push(_);t:for(;0< $;){var dt=$-1>>>1,b=M[dt];if(0< r ( b , _ ) ) M [ dt ] = _ , M [ $ ] = b , $ = dt ; else break t } } function c ( M ) { return M . length = ==0?null:M[0]}function f ( M ) { if ( M . length = ==0)return null ; var _ = M[0],$=M.pop();if($!==_){M[0]=$;t:for(var dt = 0,b=M.length,q=b > >>1;dt< q ; ) { var P = 2*(dt+1)-1,J=M[P],it=P+1,mt=M[it];if(0 > r(J,$))it< b & & 0 > r(mt,J)?(M[dt]=mt,M[it]=$,dt=it):(M[dt]=J,M[P]=$,dt=P);else if(it< b & & 0 > r(mt,$))M[dt]=mt,M[it]=$,dt=it;else break t}}return _}function r(M,_){var $=M.sortIndex-_.sortIndex;return $!==0?$:M.id-_.id}if(u.unstable_now=void 0,typeof performance=="object"& & typeof performance.now=="function"){var o=performance;u.unstable_now=function(){return o.now()}}else{var d=Date,y=d.now();u.unstable_now=function(){return d.now()-y}}var v=[],A=[],E=1,w=null,R=3,z=!1,N=!1,x=!1,p=!1,T=typeof setTimeout=="function"?setTimeout:null,D=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate< "u"?setImmediate:null;function I(M){for(var _=c(A);_!==null;){if(_.callback===null)f(A);else if(_.startTime< =M)f(A),_.sortIndex=_.expirationTime,i(v,_);else break;_=c(A)}}function V(M){if(x=!1,I(M),!N)if(c(v)!==null)N=!0,j||(j=!0,et());else{var _=c(A);_!==null& & at(V,_.startTime-M)}}var j=!1,G=-1,L=5,W=-1;function F(){return p?!0:!(u.unstable_now()-W< L ) } function K ( ) { if ( p = !1,j){var M = u.unstable_now();W=M;var _ = !0;try{t:{N=!1,x&&(x=!1,D(G),G=-1),z=!0;var $ = R ; try { e: { for ( I ( M ) , w = c(v);w!==null&&!(w.expirationTime > M&&F()); ){var dt=w.callback;if(typeof dt=="function"){w.callback=null,R=w.priorityLevel;var b=dt(w.expirationTime< =M);if(M=u.unstable_now(),typeof b=="function"){w.callback=b,I(M),_=!0;break e}w===c(v)& & f(v),I(M)}else f(v);w=c(v)}if(w!==null)_=!0;else{var q=c(A);q!==null& & at(V,q.startTime-M),_=!1}}break t}finally{w=null,R=$,z=!1}_=void 0}}finally{_?et():j=!1}}}var et;if(typeof U=="function")et=function(){U(K)};else if(typeof MessageChannel< "u"){var tt=new MessageChannel,ot=tt.port2;tt.port1.onmessage=K,et=function(){ot.postMessage(null)}}else et=function(){T(K,0)};function at(M,_){G=T(function(){M(u.unstable_now())},_)}u.unstable_IdlePriority=5,u.unstable_ImmediatePriority=1,u.unstable_LowPriority=4,u.unstable_NormalPriority=3,u.unstable_Profiling=null,u.unstable_UserBlockingPriority=2,u.unstable_cancelCallback=function(M){M.callback=null},u.unstable_forceFrameRate=function(M){0>M||125< M ? console . error ( " forceFrameRate takes a positive int between 0 and 125 , forcing frame rates higher than 125 fps is not supported " ) :L = 0<M?Math.floor(1e3/M):5},u.unstable_getCurrentPriorityLevel=function(){return R } , u . unstable_next = function(M){switch(R){case 1:case 2:case 3:var _ = 3;break;default:_=R}var $ = R ; R = _;try{return M ( ) } finally { R = $}},u.unstable_requestPaint=function(){p=!0},u.unstable_runWithPriority=function(M,_){switch(M){case 1:case 2:case 3:case 4:case 5:break ; default:M = 3}var $ = R ; R = M;try{return _ ( ) } finally { R = $}},u.unstable_scheduleCallback=function(M,_,$){var dt = u.unstable_now();switch(typeof $ = = " object " & & $ ! = = null ? ( $ = $ . delay , $ = typeof $ = = " number " & & 0 < $ ? dt + $ :dt ) : $ = dt , M ) { case 1:var b = -1;break;case 2:b = 250;break;case 5:b = 1073741823;break;case 4:b = 1e4;break;default:b=5e3}return b = $+b,M={id:E++,callback:_,priorityLevel:M,startTime:$,expirationTime:b,sortIndex:-1},$ > dt?(M.sortIndex=$,i(A,M),c(v)===null& & M===c(A)& & (x?(D(G),G=-1):x=!0,at(V,$-dt))):(M.sortIndex=b,i(v,M),N||z||(N=!0,j||(j=!0,et()))),M},u.unstable_shouldYield=F,u.unstable_wrapCallback=function(M){var _=R;return function(){var $=R;R=_;try{return M.apply(this,arguments)}finally{R=$}}}})(Uf)),Uf}var r2;function g5(){return r2||(r2=1,Bf.exports=h5()),Bf.exports}var Qf={exports:{}},le={};/**
* @license React
* react-dom.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var o2;function m5(){if(o2)return le;o2=1;var u=dr();function i(v){var A="https://react.dev/errors/"+v;if(1< arguments.length ) { A + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var E = 2;E<arguments.length;E++)A+="&args[]="+encodeURIComponent(arguments[E])}return"Minified React error # " + v + " ; visit " + A + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function c ( ) { } var f = {d:{f:c,r:function(){throw Error ( i ( 522 ) ) } , D:c , C:c , L:c , m:c , X:c , S:c , M:c } , p:0 , findDOMNode:null } , r = Symbol.for("react.portal");function o ( v , A , E ) { var w = 3<arguments.length&&arguments[3]!==void 0 ? arguments [ 3 ] :null ; return { $ $ typeof:r , key:w = =null?null:""+w,children:v,containerInfo:A,implementation:E}}var d = u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function y ( v , A ) { if ( v = =="font")return"";if(typeof A = ="string")return A = =="use-credentials"?A:""}return le . __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = f,le.createPortal=function(v,A){var E = 2<arguments.length&&arguments[2]!==void 0 ? arguments [ 2 ] :null ; if ( ! A | | A . nodeType ! = = 1 & & A . nodeType ! = = 9 & & A . nodeType ! = = 11 ) throw Error ( i ( 299 ) ) ; return o ( v , A , null , E ) } , le . flushSync = function(v){var A = d.T,E=f.p;try{if(d.T=null,f.p=2,v)return v ( ) } finally { d . T = A,f.p=E,f.d.f()}},le.preconnect=function(v,A){typeof v = ="string"&&(A?(A=A.crossOrigin,A=typeof A = ="string"?A==="use-credentials"?A:"":void 0 ) :A = null,f.d.C(v,A))},le.prefetchDNS=function(v){typeof v = ="string"&&f.d.D(v)},le.preinit=function(v,A){if(typeof v = ="string"&&A&&typeof A . as = ="string"){var E = A.as,w=y(E,A.crossOrigin),R=typeof A . integrity = ="string"?A.integrity:void 0 , z = typeof A . fetchPriority = ="string"?A.fetchPriority:void 0 ; E = =="style"?f.d.S(v,typeof A . precedence = ="string"?A.precedence:void 0 , { crossOrigin:w , integrity:R , fetchPriority:z } ) :E = =="script"&&f.d.X(v,{crossOrigin:w,integrity:R,fetchPriority:z,nonce:typeof A . nonce = ="string"?A.nonce:void 0 } ) } } , le . preinitModule = function(v,A){if(typeof v = ="string")if(typeof A = ="object"&&A!==null){if(A.as==null||A.as==="script"){var E = y(A.as,A.crossOrigin);f.d.M(v,{crossOrigin:E,integrity:typeof A . integrity = ="string"?A.integrity:void 0 , nonce:typeof A . nonce = ="string"?A.nonce:void 0 } ) } } else A = =null&&f.d.M(v)},le.preload=function(v,A){if(typeof v = ="string"&&typeof A = ="object"&&A!==null&&typeof A . as = ="string"){var E = A.as,w=y(E,A.crossOrigin);f.d.L(v,E,{crossOrigin:w,integrity:typeof A . integrity = ="string"?A.integrity:void 0 , nonce:typeof A . nonce = ="string"?A.nonce:void 0 , type:typeof A . type = ="string"?A.type:void 0 , fetchPriority:typeof A . fetchPriority = ="string"?A.fetchPriority:void 0 , referrerPolicy:typeof A . referrerPolicy = ="string"?A.referrerPolicy:void 0 , imageSrcSet:typeof A . imageSrcSet = ="string"?A.imageSrcSet:void 0 , imageSizes:typeof A . imageSizes = ="string"?A.imageSizes:void 0 , media:typeof A . media = ="string"?A.media:void 0 } ) } } , le . preloadModule = function(v,A){if(typeof v = ="string")if(A){var E = y(A.as,A.crossOrigin);f.d.m(v,{as:typeof A . as = ="string"&&A.as!=="script"?A.as:void 0 , crossOrigin:E , integrity:typeof A . integrity = ="string"?A.integrity:void 0 } ) } else f . d . m ( v ) } , le . requestFormReset = function(v){f.d.r(v)},le.unstable_batchedUpdates=function(v,A){return v ( A ) } , le . useFormState = function(v,A,E){return d . H . useFormState ( v , A , E ) } , le . useFormStatus = function(){return d . H . useHostTransitionStatus ( ) } , le . version = "19.1.1" , le } var d2 ; function A5 ( ) { if ( d2 ) return Qf . exports ; d2 = 1;function u ( ) { if ( ! ( typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > "u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(u)}catch(i){console.error(i)}}return u(),Qf.exports=m5(),Qf.exports}/**
* @license React
* react-dom-client.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var h2;function v5(){if(h2)return Ei;h2=1;var u=g5(),i=dr(),c=A5();function f(t){var e="https://react.dev/errors/"+t;if(1< arguments.length ) { e + = " ? args [ ] = " + encodeURIComponent ( arguments [ 1 ] ) ; for ( var n = 2;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error # " + t + " ; visit " + e + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings . " } function r ( t ) { return ! ( ! t | | t . nodeType ! = = 1 & & t . nodeType ! = = 9 & & t . nodeType ! = = 11 ) } function o ( t ) { var e = t,n=t;if(t.alternate)for(;e.return;)e=e.return;else{t=e;do e = t,(e.flags&4098)!==0&&(n=e.return),t=e.return;while(t)}return e . tag = ==3?n:null}function d ( t ) { if ( t . tag = ==13){var e = t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e . dehydrated } return null } function y ( t ) { if ( o ( t ) ! = = t ) throw Error ( f ( 188 ) ) } function v ( t ) { var e = t.alternate;if(!e){if(e=o(t),e===null)throw Error ( f ( 188 ) ) ; return e ! = = t ? null:t } for ( var n = t,a=e;;){var l = n.return;if(l===null)break;var s = l.alternate;if(s===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===s.child){for(s=l.child;s;){if(s===n)return y ( l ) , t ; if ( s = ==a)return y ( l ) , e ; s = s.sibling}throw Error ( f ( 188 ) ) } if ( n . return ! = = a . return ) n = l,a=s;else{for(var h = !1,g=l.child;g;){if(g===n){h=!0,n=l,a=s;break}if(g===a){h=!0,a=l,n=s;break}g=g.sibling}if(!h){for(g=s.child;g;){if(g===n){h=!0,n=s,a=l;break}if(g===a){h=!0,a=s,n=l;break}g=g.sibling}if(!h)throw Error ( f ( 189 ) ) } } if ( n . alternate ! = = a ) throw Error ( f ( 190 ) ) } if ( n . tag ! = = 3 ) throw Error ( f ( 188 ) ) ; return n . stateNode . current = ==n?t:e}function A ( t ) { var e = t.tag;if(e===5||e===26||e===27||e===6)return t ; for ( t = t.child;t!==null;){if(e=A(t),e!==null)return e ; t = t.sibling}return null } var E = Object.assign,w=Symbol.for("react.element"),R=Symbol.for("react.transitional.element"),z=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),p=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),D=Symbol.for("react.consumer"),U=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),W=Symbol.for("react.activity"),F=Symbol.for("react.memo_cache_sentinel"),K=Symbol.iterator;function et ( t ) { return t = ==null||typeof t ! = " object " ? null: ( t = K&&t[K]||t["@@iterator"],typeof t = ="function"?t:null)}var tt = Symbol.for("react.client.reference");function ot ( t ) { if ( t = =null)return null ; if ( typeof t = ="function")return t . $ $ typeof = ==tt?null:t.displayName||t.name||null;if(typeof t = ="string")return t ; switch ( t ) { case N:return " Fragment " ; case p:return " Profiler " ; case x:return " StrictMode " ; case V:return " Suspense " ; case j:return " SuspenseList " ; case W:return " Activity " } if ( typeof t = ="object")switch(t.$$typeof){case z:return " Portal " ; case U:return ( t . displayName | | " Context " ) + " . Provider " ; case D:return ( t . _context . displayName | | " Context " ) + " . Consumer " ; case I:var e = t.render;return t = t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case G:return e = t.displayName||null,e!==null?e:ot(t.type)||"Memo";case L:e = t._payload,t=t._init;try{return ot ( t ( e ) ) } catch { } } return null } var at = Array.isArray,M=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_=c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$={pending:!1,data:null,method:null,action:null},dt=[],b=-1;function q ( t ) { return { current:t } } function P ( t ) { 0 > b||(t.current=dt[b],dt[b]=null,b--)}function J(t,e){b++,dt[b]=t.current,t.current=e}var it=q(null),mt=q(null),ut=q(null),Nt=q(null);function Dt(t,e){switch(J(ut,e),J(mt,t),J(it,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Gd(t):0; break;default:if(t=e.tagName,e=e.namespaceURI)e=Gd(e),t=Xd(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}P(it),J(it,t)}function Le(){P(it),P(mt),P(ut)}function Ra(t){t.memoizedState!==null&&J(Nt,t); var e=it.current,n=Xd(e,t.type);e!==n& & (J(mt,t),J(it,n))}function ea(t){mt.current===t& & (P(it),P(mt)),Nt.current===t& & (P(Nt),oi._currentValue=$)}var bn=Object.prototype.hasOwnPro
at`)?" (< anonymous > )":-1< n.stack.indexOf ( " @ " ) ? " @ unknown:0:0 " : " " } return `
`+gc+t+Hr}var mc=!1;function Ac(t,e){if(!t||mc)return"";mc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var k=function(){throw Error()};if(Object.defineProperty(k.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"& & Reflect.construct){try{Reflect.construct(k,[])}catch(Y){var Q=Y}Reflect.construct(t,[],k)}else{try{k.call()}catch(Y){Q=Y}t.call(k.prototype)}}else{try{throw Error()}catch(Y){Q=Y}(k=t())& & typeof k.catch=="function"& & k.catch(function(){})}}catch(Y){if(Y& & Q& & typeof Y.stack=="string")return[Y.stack,Q.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"}); var s=a.DetermineComponentFrameRoot(),h=s[0],g=s[1];if(h& & g){var S=h.split(`
`),B=g.split(`
`);for(l=a=0;a< S.length & & ! S [ a ] . includes ( " DetermineComponentFrameRoot " ) ; ) a + + ; for ( ; l < B . length & & ! B [ l ] . includes ( " DetermineComponentFrameRoot " ) ; ) l + + ; if ( a = ==S.length||l===B.length)for(a=S.length-1,l=B.length-1;1<=a&&0<=l&&S[a]!==B[l];)l--;for(;1<=a&&0<=l;a--,l--)if(S[a]!==B[l]){if(a!==1||l!==1)do if ( a-- , l-- , 0 > l||S[a]!==B[l]){var X=`
`+S[a].replace(" at new "," at ");return t.displayName&&X.includes("<anonymous>")&&(X=X.replace("<anonymous>",t.displayName)),X}while(1<=a&&0<=l); break}}}finally{mc=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?Na(n):""}function ig(t){switch(t.tag){case 26:case 27:case 5:return Na(t.type);case 16:return Na("Lazy");case 13:return Na("Suspense");case 19:return Na("SuspenseList");case 0:case 15:return Ac(t.type,!1);case 11:return Ac(t.type.render,!1);case 1:return Ac(t.type,!0);case 31:return Na("Activity");default:return""}}function Nr(t){try{var e="";do e+=ig(t),t=t.return;while(t);return e}catch(n){return`
Error generating stack: `+n.message+`
`+n.stack}}function Re(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Br(t){var e=t.type;return(t=t.nodeName)& & t.toLowerCase()==="input"& & (e==="checkbox"||e==="radio")}function ug(t){var e=Br(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),a=""+t[e];if(!t.hasOwnProperty(e)& & typeof n< "u"& & typeof n.get=="function"& & typeof n.set=="function"){var l=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return l.call(this)},set:function(h){a=""+h,s.call(this,h)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(h){a=""+h},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Li(t){t._valueTracker||(t._valueTracker=ug(t))}function Ur(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),a="";return t& & (a=Br(t)?t.checked?"true":"false":t.value),t=a,t!==n?(e.setValue(t),!0):!1}function zi(t){if(t=t||(typeof document< "u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var cg=/[\n"\\]/g;function Oe(t){return t.replace(cg,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function vc(t,e,n,a,l,s,h,g){t.name="",h!=null& & typeof h!="function"& & typeof h!="symbol"& & typeof h!="boolean"?t.type=h:t.removeAttribute("type"),e!=null?h==="number"?(e===0& & t.value===""||t.value!=e)& & (t.value=""+Re(e)):t.value!==""+Re(e)& & (t.value=""+Re(e)):h!=="submit"& & h!=="reset"||t.removeAttribute("value"),e!=null?yc(t,h,Re(e)):n!=null?yc(t,h,Re(n)):a!=null& & t.removeAttribute("value"),l==null& & s!=null& & (t.defaultChecked=!!s),l!=null& & (t.checked=l& & typeof l!="function"& & typeof l!="symbol"),g!=null& & typeof g!="function"& & typeof g!="symbol"& & typeof g!="boolean"?t.name=""+Re(g):t.removeAttribute("name")}function Qr(t,e,n,a,l,s,h,g){if(s!=null& & typeof s!="function"& & typeof s!="symbol"& & typeof s!="boolean"&&(t.type=s),e!=null||n!=null){if(!(s!=="submit"&&s!=="reset"||e!=null))return; n=n!=null?""+Re(n):"",e=e!=null?""+Re(e):n,g||e===t.value||(t.value=e),t.defaultValue=e}a=a??l,a=typeof a!="function"& & typeof a!="symbol"& & !!a,t.checked=g?t.checked:!!a,t.defaultChecked=!!a,h!=null& & typeof h!="function"& & typeof h!="symbol"& & typeof h!="boolean"& & (t.name=h)}function yc(t,e,n){e==="number"& & zi(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function Ba(t,e,n,a){if(t=t.options,e){e={};for(var l=0;l< n.length ; l + + ) e [ " $ " + n [ l ] ] = ! 0 ; for ( n = 0;n<t.length;n++)l=e.hasOwnProperty("$"+t[n].value),t[n].selected!==l&&(t[n].selected=l),l&&a&&(t[n].defaultSelected=!0)}else{for(n=""+Re(n),e=null,l=0;l<t.length;l++){if(t[l].value===n){t[l].selected=!0,a&&(t[l].defaultSelected=!0);return}e!==null||t[l].disabled||(e=t[l])}e!==null&&(e.selected=!0)}}function Yr ( t , e , n ) { if ( e ! = null & & ( e = "" + Re ( e ) , e ! = = t . value & & ( t . value = e),n==null)){t.defaultValue!==e&&(t.defaultValue=e);return}t.defaultValue=n!=null?""+Re(n):""}function Lr ( t , e , n , a ) { if ( e = =null){if(a!=null){if(n!=null)throw Error ( f ( 92 ) ) ; if ( at ( a ) ) { if ( 1 < a . length ) throw Error ( f ( 93 ) ) ; a = a[0]}n=a}n==null&&(n=""),e=n}n=Re(e),t.defaultValue=n,a=t.textContent,a===n&&a!==""&&a!==null&&(t.value=a)}function Ua ( t , e ) { if ( e ) { var n = t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var sg = new Set ( " animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGr
`).replace(Nm,"")}function zd(t,e){return e=Ld(e),Ld(t)===e}function Hu(){}function Rt(t,e,n,a,l,s){switch(n){case"children":typeof a=="string"?e==="body"||e==="textarea"& & a===""||Ua(t,a):(typeof a=="number"||typeof a=="bigint")&&e!=="body"&&Ua(t,""+a); break;case"className":Yi(t,"class",a);break;case"tabIndex":Yi(t,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Yi(t,n,a);break;case"style":Gr(t,a,s);break;case"data":if(e!=="object"){Yi(t,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||n!=="href")){t.removeAttribute(n); break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(n);break}a=Gi(""+a),t.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){t.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof s=="function"&&(n==="formAction"?(e!=="input"&&Rt(t,e,"name",l.name,l,null),Rt(t,e,"formEncType",l.formEncType,l,null),Rt(t,e,"formMethod",l.formMethod,l,null),Rt(t,e,"formTarget",l.formTarget,l,null)):(Rt(t,e,"encType",l.encType,l,null),Rt(t,e,"method",l.method,l,null),Rt(t,e,"target",l.target,l,null))); if(a==null||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(n);break}a=Gi(""+a),t.setAttribute(n,a);break;case"onClick":a!=null&&(t.onclick=Hu); break;case"onScroll":a!=null&&yt("scroll",t); break;case"onScrollEnd":a!=null&&yt("scrollend",t); break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(f(60));t.innerHTML=n}}break;case"multiple":t.multiple=a& & typeof a!="function"& & typeof a!="symbol";break;case"muted":t.muted=a& & typeof a!="function"& & typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){t.removeAttribute("xlink:href");break}n=Gi(""+a),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(n,""+a):t.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(n,""):t.removeAttribute(n);break;case"capture":case"download":a===!0?t.setAttribute(n,""):a!==!1& & a!=null& & typeof a!="function"& & typeof a!="symbol"?t.setAttribute(n,a):t.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null& & typeof a!="function"& & typeof a!="symbol"&&!isNaN(a)&&1<=a?t.setAttribute(n,a):t.removeAttribute(n); break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?t.removeAttribute(n):t.setAttribute(n,a);break;case"popover":yt("beforetoggle",t),yt("toggle",t),Qi(t,"popover",a);break;case"xlinkActuate":Je(t,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Je(t,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Je(t,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Je(t,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Je(t,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Je(t,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Je(t,"http://www.w3.org/XML/1998/nam
linear-gradient(-45deg, #80808020 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #80808020 75%),
linear-gradient(-45deg, transparent 75%, #80808020 75%)`,backgroundSize:"20px 20px",backgroundPosition:"0 0, 0 10px, 10px -10px, -10px 0px",boxShadow:`rgb(0 0 0 / 10%) 0px 1.8px 1.9px,
rgb(0 0 0 / 15%) 0px 6.1px 6.3px,
rgb(0 0 0 / 10%) 0px -2px 4px,
rgb(0 0 0 / 15%) 0px -6.1px 12px,
rgb(0 0 0 / 25%) 0px 6px 12px`},Vh=({diff:u,noTargetBlank:i,hideDetails:c})=>{const[f,r]=ct.useState(u.diff?"diff":"actual"),[o,d]=ct.useState(!1),[y,v]=ct.useState(null),[A,E]=ct.useState("Expected"),[w,R]=ct.useState(null),[z,N]=ct.useState(null),[x,p]=Bh();ct.useEffect(()=>{(async()=>{var W,F,K,et;v(await Lf((W=u.expected)==null?void 0:W.attachment.path)),E(((F=u.expected)==null?void 0:F.title)||"Expected"),R(await Lf((K=u.actual)==null?void 0:K.attachment.path)),N(await Lf((et=u.diff)==null?void 0:et.attachment.path))})()},[u]);const T=y& & w& & z,D=T?Math.max(y.naturalWidth,w.naturalWidth,200):500,U=T?Math.max(y.naturalHeight,w.naturalHeight,200):500,I=Math.min(1,(x.width-30)/D),V=Math.min(1,(x.width-50)/D/2),j=D*I,G=U*I,L={flex:"none",margin:"0 10px",cursor:"pointer",userSelect:"none"};return m.jsx("div",{"data-testid":"test-result-image-mismatch",style:{display:"flex",flexDirection:"column",alignItems:"center",flex:"auto"},ref:p,children:T& & m.jsxs(m.Fragment,{children:[m.jsxs("div",{"data-testid":"test-result-image-mismatch-tabs",style:{display:"flex",margin:"10px 0 20px"},children:[u.diff& & m.jsx("div",{style:{...L,fontWeight:f==="diff"?600:"initial"},onClick:()=>r("diff"),children:"Diff"}),m.jsx("div",{style:{...L,fontWeight:f==="actual"?600:"initial"},onClick:()=>r("actual"),children:"Actual"}),m.jsx("div",{style:{...L,fontWeight:f==="expected"?600:"initial"},onClick:()=>r("expected"),children:A}),m.jsx("div",{style:{...L,fontWeight:f==="sxs"?600:"initial"},onClick:()=>r("sxs"),children:"Side by side"}),m.jsx("div",{style:{...L,fontWeight:f==="slider"?600:"initial"},onClick:()=>r("slider"),children:"Slider"})]}),m.jsxs("div",{style:{display:"flex",justifyContent:"center",flex:"auto",minHeight:G+60},children:[u.diff& & f==="diff"& & m.jsx(hn,{image:z,alt:"Diff",hideSize:c,canvasWidth:j,canvasHeight:G,scale:I}),u.diff& & f==="actual"& & m.jsx(hn,{image:w,alt:"Actual",hideSize:c,canvasWidth:j,canvasHeight:G,scale:I}),u.diff& & f==="expected"& & m.jsx(hn,{image:y,alt:A,hideSize:c,canvasWidth:j,canvasHeight:G,scale:I}),u.diff& & f==="slider"& & m.jsx(iv,{expectedImage:y,actualImage:w,hideSize:c,canvasWidth:j,canvasHeight:G,scale:I,expectedTitle:A}),u.diff& & f==="sxs"& & m.jsxs("div",{style:{display:"flex"},children:[m.jsx(hn,{image:y,title:A,hideSize:c,canvasWidth:V*D,canvasHeight:V*U,scale:V}),m.jsx(hn,{image:o?z:w,title:o?"Diff":"Actual",onClick:()=>d(!o),hideSize:c,canvasWidth:V*D,canvasHeight:V*U,scale:V})]}),!u.diff& & f==="actual"& & m.jsx(hn,{image:w,title:"Actual",hideSize:c,canvasWidth:j,canvasHeight:G,scale:I}),!u.diff& & f==="expected"& & m.jsx(hn,{image:y,title:A,hideSize:c,canvasWidth:j,canvasHeight:G,scale:I}),!u.diff& & f==="sxs"& & m.jsxs("div",{style:{display:"flex"},children:[m.jsx(hn,{image:y,title:A,canvasWidth:V*D,canvasHeight:V*U,scale:V}),m.jsx(hn,{image:w,title:"Actual",canvasWidth:V*D,canvasHeight:V*U,scale:V})]})]}),!c& & m.jsxs("div",{style:{alignSelf:"start",lineHeight:"18px",marginLeft:"15px"},children:[m.jsx("div",{children:u.diff& & m.jsx("a",{target:"_blank",href:u.diff.attachment.path,rel:"noreferrer",children:u.diff.attachment.name})}),m.jsx("div",{children:m.jsx("a",{target:i?"":"_blank",href:u.actual.attachment.path,rel:"noreferrer",children:u.actual.attachment.name})}),m.jsx("div",{children:m.jsx("a",{target:i?"":"_blank",href:u.expected.attachment.path,rel:"noreferrer",children:u.expected.attachment.name})})]})]})})},iv=({expectedImage:u,actualImage:i,canvasWidth:c,canvasHeight:f,scale:r,expectedTitle:o,hideSize:d})=>{const y={position:"absolute",top:0,left:0},[v,A]=ct.useState(c/2),E=u.naturalWidth===i.naturalWidth&&u.naturalHeight===i.naturalHeight; return m.jsxs("div",{style:{flex:"none",display:"flex",alignItems:"center",flexDirection:"column",userSelect:"none"},children:[!d& & m.jsxs("div",{style:{margin:5},children:[!E& & m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"Expected "}),m.jsx("span",{children:u.naturalWidth}),m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),m.jsx("span",{children:u.naturalHeight}),!E& & m.jsx("span",{style:{flex:"none",margin:"0 5px 0 15px"},children
# Instructions
- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.
`.trimStart();async function hv({testInfo:u,metadata:i,errorContext:c,errors:f,buildCodeFrame:r,stdout:o,stderr:d}){var w;const y=new Set(f.filter(R=>R.message& & !R.message.includes(`
`)).map(R=>R.message));for(const R of f)for(const z of y.keys())(w=R.message)!=null&&w.includes(z)&&y.delete(z); const v=f.filter(R=>!(!R.message||!R.message.includes(`
`)&&!y.has(R.message))); if(!v.length)return;const A=[dv,"# Test info","",u];o& & A.push("","# Stdout","","```",zf(o),"```"),d& & A.push("","# Stderr","","```",zf(d),"```"),A.push("","# Error details");for(const R of v)A.push("","```",zf(R.message||""),"```");c&&A.push(c); const E=await r(v[v.length-1]);return E& & A.push("","# Test source","","```ts",E,"```"),i!=null& & i.gitDiff& & A.push("","# Local changes","","```diff",i.gitDiff,"```"),A.join(`
`)}const gv=new RegExp("([\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:; \\d{0,4})*)?[\\dA-PR-TZcf-ntqry=>< ~])))","g");function zf(u){return u.replace(gv,"")}function mv(u,i){var f;const c=new Map;for(const r of u){const o=r.name.match(/^(.*)-(expected|actual|diff|previous)(\.[^.]+)?$/);if(!o)continue;const[,d,y,v=""]=o,A=d+v;let E=c.get(A);E||(E={name:A,anchors:[`attachment-${d}`]},c.set(A,E)),E.anchors.push(`attachment-${i.attachments.indexOf(r)}`),y==="actual"& & (E.actual={attachment:r}),y==="expected"& & (E.expected={attachment:r,title:"Expected"}),y==="previous"& & (E.expected={attachment:r,title:"Previous"}),y==="diff"& & (E.diff={attachment:r})}for(const[r,o]of c)!o.actual||!o.expected?c.delete(r):(u.delete(o.actual.attachment),u.delete(o.expected.attachment),u.delete((f=o.diff)==null?void 0:f.attachment));return[...c.values()]}const Av=({test:u,result:i,testRunMetadata:c,options:f})=>{const{screenshots:r,videos:o,traces:d,otherAttachments:y,diffs:v,errors:A,otherAttachmentAnchors:E,screenshotAnchors:w,errorContext:R}=ct.useMemo(()=>{const N=i.attachments.filter(L=>!L.name.startsWith("_")),x=new Set(N.filter(L=>L.contentType.startsWith("image/"))),p=[...x].map(L=>`attachment-${N.indexOf(L)}`),T=N.filter(L=>L.contentType.startsWith("video/")),D=N.filter(L=>L.name==="trace"),U=N.find(L=>L.name==="error-context"),I=new Set(N);[...x,...T,...D].forEach(L=>I.delete(L));const V=[...I].map(L=>`attachment-${N.indexOf(L)}`),j=mv(x,i),G=i.errors.map(L=>L.message);return{screenshots:[...x],videos:T,traces:D,otherAttachments:I,diffs:j,errors:G,otherAttachmentAnchors:V,screenshotAnchors:p,errorContext:U}},[i]),z=M5(async()=>{if(f!=null&&f.noCopyPrompt)return; const N=i.attachments.find(D=>D.name==="stdout"),x=i.attachments.find(D=>D.name==="stderr"),p=N!=null& & N.body& & N.contentType==="text/plain"?N.body:void 0,T=x!=null& & x.body& & x.contentType==="text/plain"?x.body:void 0;return await hv({testInfo:[`- Name: ${u.path.join(" >> ")} >> ${u.title}`,`- Location: ${u.location.file}:${u.location.line}:${u.location.column}`].join(`
`),metadata:c,errorContext:R!=null& & R.path?await fetch(R.path).then(D=>D.text()):R==null?void 0:R.body,errors:i.errors,buildCodeFrame:async D=>D.codeframe,stdout:p,stderr:T})},[u,R,c,i],void 0);return m.jsxs("div",{className:"test-result",children:[!!A.length& & m.jsxs(Ke,{header:"Errors",children:[z& & m.jsx("div",{style:{position:"absolute",right:"16px",padding:"10px",zIndex:1},children:m.jsx(fv,{prompt:z})}),A.map((N,x)=>{const p=vv(N,v);return m.jsxs(m.Fragment,{children:[m.jsx(vr,{code:N},"test-result-error-message-"+x),p& & m.jsx(rv,{diff:p})]})})]}),!!i.steps.length& & m.jsx(Ke,{header:"Test Steps",children:i.steps.map((N,x)=>m.jsx(Ih,{step:N,result:i,test:u,depth:0},`step-${x}`))}),v.map((N,x)=>m.jsx(bi,{id:N.anchors,children:m.jsx(Ke,{dataTestId:"test-results-image-diff",header:`Image mismatch: ${N.name}`,revealOnAnchorId:N.anchors,children:m.jsx(Vh,{diff:N})})},`diff-${x}`)),!!r.length&&m.jsx(Ke,{header:"Screenshots",revealOnAnchorId:w,children:r.map((N,x)=>m.jsxs(bi,{id:`attachment-${i.attachments.indexOf(N)}`,children:[m.jsx("a",{href:Qe(N.path),children:m.jsx("img",{className:"screenshot",src:Qe(N.path)})}),m.jsx(Ju,{attachment:N,result:i})]},`screenshot-${x}`))}),!!d.length&&m.jsx(bi,{id:"attachment-trace",children:m.jsx(Ke,{header:"Traces",revealOnAnchorId:"attachment-trace",children:m.jsxs("div",{children:[m.jsx("a",{href:Qe(Gh(d)),children:m.jsx("img",{className:"screenshot",src:ev,style:{width:192,height:117,marginLeft:20}})}),d.map((N,x)=>m.jsx(Ju,{attachment:N,result:i,linkName:d.length===1?"trace":`trace-${x+1}`},`trace-${x}`))]})})}),!!o.length&&m.jsx(bi,{id:"attachment-video",children:m.jsx(Ke,{header:"Videos",revealOnAnchorId:"attachment-video",children:o.map(N=>m.jsxs("div",{children:[m.jsx("video",{controls:!0,children:m.jsx("source",{src:Qe(N.path),type:N.contentType})}),m.jsx(Ju,{attachment:N,result:i})]},N.path))})}),!!y.size&&m.jsx(Ke,{header:"Attachments",revealOnAnchorId:E,dataTestId:"attachments",children:[...y].map((N,x)=>m.jsx(bi,{id:`attachment-${i.attachments.indexOf(N)}`,children:m.jsx(Ju,{attachment:N,result:i,openInNewTab:N.contentType.startsWith("text/html")})},`attachment-link-${x}`))})]})}; function vv(u,i){const c=u.split(`
`)[0];if(!(!c.includes("toHaveScreenshot")& & !c.includes("toMatchSnapshot")))return i.find(f=>u.includes(f.name))}const Ih=({test:u,step:i,result:c,depth:f})=>{const r=ue();return m.jsx(tv,{title:m.jsxs("span",{"aria-label":i.title,children:[m.jsx("span",{style:{float:"right"},children:yl(i.duration)}),i.attachments.length>0& & m.jsx("a",{style:{float:"right"},title:"reveal attachment",href:Qe(En({test:u,result:c,anchor:`attachment-${i.attachments[0]}`},r)),onClick:o=>{o.stopPropagation()},children:Ch()}),cc(i.error||i.duration===-1?"failed":i.skipped?"skipped":"passed"),m.jsx("span",{children:i.title}),i.count>1& & m.jsxs(m.Fragment,{children:[" ✕ ",m.jsx("span",{className:"test-result-counter",children:i.count})]}),i.location& & m.jsxs("span",{className:"test-result-path",children:["— ",i.location.file,":",i.location.line]})]}),loadChildren:i.steps.length||i.snippet?()=>{const o=i.snippet?[m.jsx(vr,{testId:"test-snippet",code:i.snippet},"line")]:[],d=i.steps.map((y,v)=>m.jsx(Ih,{step:y,depth:f+1,result:c,test:u},v));return o.concat(d)}:void 0,depth:f})},yv=({projectNames:u,test:i,testRunMetadata:c,run:f,next:r,prev:o,options:d})=>{const[y,v]=ct.useState(f),A=ue(),E=i.annotations.filter(w=>!w.type.startsWith("_"))??[];return m.jsxs(m.Fragment,{children:[m.jsx(Ar,{title:i.title,leftSuperHeader:m.jsx("div",{className:"test-case-path",children:i.path.join(" › ")}),rightSuperHeader:m.jsxs(m.Fragment,{children:[m.jsx("div",{className:Ye(!o& & "hidden"),children:m.jsx(yn,{href:En({test:o},A),children:"« previous"})}),m.jsx("div",{style:{width:10}}),m.jsx("div",{className:Ye(!r& & "hidden"),children:m.jsx(yn,{href:En({test:r},A),children:"next »"})})]})}),m.jsxs("div",{className:"hbox",style:{lineHeight:"24px"},children:[m.jsx("div",{className:"test-case-location",children:m.jsxs(hr,{value:`${i.location.file}:${i.location.line}`,children:[i.location.file,":",i.location.line]})}),m.jsx("div",{style:{flex:"auto"}}),m.jsx(Lh,{test:i,trailingSeparator:!0}),m.jsx("div",{className:"test-case-duration",children:yl(i.duration)})]}),m.jsx(Yh,{style:{marginLeft:"6px"},projectNames:u,activeProjectName:i.projectName,otherLabels:i.tags}),i.results.length===0& & E.length!==0& & m.jsx(Ke,{header:"Annotations",dataTestId:"test-case-annotations",children:E.map((w,R)=>m.jsx(p2,{annotation:w},R))}),m.jsx($5,{tabs:i.results.map((w,R)=>({id:String(R),title:m.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[cc(w.status)," ",Ev(R),i.results.length>1& & m.jsx("span",{className:"test-case-run-duration",children:yl(w.duration)})]}),render:()=>{const z=w.annotations.filter(N=>!N.type.startsWith("_"));return m.jsxs(m.Fragment,{children:[!!z.length&&m.jsx(Ke,{header:"Annotations",dataTestId:"test-case-annotations",children:z.map((N,x)=>m.jsx(p2,{annotation:N},x))}),m.jsx(Av,{test:i,result:w,testRunMetadata:c,options:d})]})}}))||[],selectedTab:String(y),setSelectedTab:w=>v(+w)})]})}; function p2({annotation:{type:u,description:i}}){return m.jsxs("div",{className:"test-case-annotation",children:[m.jsx("span",{style:{fontWeight:"bold"},children:u}),i& & m.jsxs(hr,{value:i,children:[": ",Ri(i)]})]})}function Ev(u){return u?`Retry #${u}`:"Run"}const Zh=({file:u,projectNames:i,isFileExpanded:c,setFileExpanded:f,footer:r})=>{const o=ue();return m.jsx(Xh,{expanded:c?c(u.fileId):void 0,noInsets:!0,setExpanded:f?(d=>f(u.fileId,d)):void 0,header:m.jsx("span",{className:"chip-header-allow-selection",children:u.fileName}),footer:r,children:u.tests.map(d=>m.jsxs("div",{className:Ye("test-file-test","test-file-test-outcome-"+d.outcome),children:[m.jsxs("div",{className:"hbox",style:{alignItems:"flex-start"},children:[m.jsxs("div",{className:"hbox",children:[m.jsx("span",{className:"test-file-test-status-icon",children:cc(d.outcome)}),m.jsxs("span",{children:[m.jsx(yn,{href:En({test:d},o),title:[...d.path,d.title].join(" › "),children:m.jsx("span",{className:"test-file-title",children:[...d.path,d.title].join(" › ")})}),m.jsx(Yh,{style:{marginLeft:"6px"},projectNames:i,activeProjectName:d.projectName,otherLabels:d.tags})]})]}),m.jsx("span",{"data-testid":"test-d
< / script >
< style type = 'text/css' > : r o o t { - - c o l o r - c a n v a s - d e f a u l t - t r a n s p a r e n t : r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 ) ; - - c o l o r - m a r k e t i n g - i c o n - p r i m a r y : # 2 1 8 b f f ; - - c o l o r - m a r k e t i n g - i c o n - s e c o n d a r y : # 5 4 a e f f ; - - c o l o r - d i f f - b l o b - a d d i t i o n - n u m - t e x t : # 2 4 2 9 2 f ; - - c o l o r - d i f f - b l o b - a d d i t i o n - f g : # 2 4 2 9 2 f ; - - c o l o r - d i f f - b l o b - a d d i t i o n - n u m - b g : # C C F F D 8 ; - - c o l o r - d i f f - b l o b - a d d i t i o n - l i n e - b g : # E 6 F F E C ; - - c o l o r - d i f f - b l o b - a d d i t i o n - w o r d - b g : # A B F 2 B C ; - - c o l o r - d i f f - b l o b - d e l e t i o n - n u m - t e x t : # 2 4 2 9 2 f ; - - c o l o r - d i f f - b l o b - d e l e t i o n - f g : # 2 4 2 9 2 f ; - - c o l o r - d i f f - b l o b - d e l e t i o n - n u m - b g : # F F D 7 D 5 ; - - c o l o r - d i f f - b l o b - d e l e t i o n - l i n e - b g : # F F E B E 9 ; - - c o l o r - d i f f - b l o b - d e l e t i o n - w o r d - b g : r g b a ( 2 5 5 , 1 2 9 , 1 3 0 , . 4 ) ; - - c o l o r - d i f f - b l o b - h u n k - n u m - b g : r g b a ( 8 4 , 1 7 4 , 2 5 5 , . 4 ) ; - - c o l o r - d i f f - b l o b - e x p a n d e r - i c o n : # 5 7 6 0 6 a ; - - c o l o r - d i f f - b l o b - s e l e c t e d - l i n e - h i g h l i g h t - m i x - b l e n d - m o d e : m u l t i p l y ; - - c o l o r - d i f f s t a t - d e l e t i o n - b o r d e r : r g b a ( 2 7 , 3 1 , 3 6 , . 1 5 ) ; - - c o l o r - d i f f s t a t - a d d i t i o n - b o r d e r : r g b a ( 2 7 , 3 1 , 3 6 , . 1 5 ) ; - - c o l o r - d i f f s t a t - a d d i t i o n - b g : # 2 d a 4 4 e ; - - c o l o r - s e a r c h - k e y w o r d - h l : # f f f 8 c 5 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - c o m m e n t : # 6 e 7 7 8 1 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - c o n s t a n t : # 0 5 5 0 a e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - e n t i t y : # 8 2 5 0 d f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - s t o r a g e - m o d i f i e r - i m p o r t : # 2 4 2 9 2 f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - e n t i t y - t a g : # 1 1 6 3 2 9 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - k e y w o r d : # c f 2 2 2 e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - s t r i n g : # 0 a 3 0 6 9 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - v a r i a b l e : # 9 5 3 8 0 0 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - b r a c k e t h i g h l i g h t e r - u n m a t c h e d : # 8 2 0 7 1 e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - i n v a l i d - i l l e g a l - t e x t : # f 6 f 8 f a ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - i n v a l i d - i l l e g a l - b g : # 8 2 0 7 1 e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - c a r r i a g e - r e t u r n - t e x t : # f 6 f 8 f a ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - c a r r i a g e - r e t u r n - b g : # c f 2 2 2 e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - s t r i n g - r e g e x p : # 1 1 6 3 2 9 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - l i s t : # 3 b 2 3 0 0 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - h e a d i n g : # 0 5 5 0 a e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - i t a l i c : # 2 4 2 9 2 f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - b o l d : # 2 4 2 9 2 f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - d e l e t e d - t e x t : # 8 2 0 7 1 e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - d e l e t e d - b g : # F F E B E 9 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - i n s e r t e d - t e x t : # 1 1 6 3 2 9 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - i n s e r t e d - b g : # d a f b e 1 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - c h a n g e d - t e x t : # 9 5 3 8 0 0 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - c h a n g e d - b g : # f f d 8 b 5 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - i g n o r e d - t e x t : # e a e e f 2 ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m a r k u p - i g n o r e d - b g : # 0 5 5 0 a e ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - m e t a - d i f f - r a n g e : # 8 2 5 0 d f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - b r a c k e t h i g h l i g h t e r - a n g l e : # 5 7 6 0 6 a ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - s u b l i m e l i n t e r - g u t t e r - m a r k : # 8 c 9 5 9 f ; - - c o l o r - p r e t t y l i g h t s - s y n t a x - c o n s t a n t - o t h e r - r e f e r e n c e - l i n k : # 0 a 3 0 6 9 ; - - c o l o r - c o d e m i r r o r - t e x t : # 2 4 2 9 2 f ; - - c o l o r - c o d e m i r r o r - b g : # f f f f f f ; - - c o l o r - c o d e m i r r o r - g u t t e r s - b g : # f f f f f f ; - - c o l o r - c o d e m i r r o r - g u t t e r m a r k e r - t e x t : # f f f f f f ; - - c o l o r - c o d e m i r r o r - g u t t e r m a r k e r - s u b t l e - t e x t : # 6 e 7 7 8 1 ; - - c o l o r - c o d e m i r r o r - l i n e n u m b e r - t e x t : # 5 7 6 0 6 a ; - - c o l o r - c o d e m i r r o r - c u r s o r : # 2 4 2 9 2 f ; - - c o l o r - c o d e m i r r o r - s e l e c t i o n - b g : r g b a ( 8 4 , 1 7 4 , 2 5 5 , . 4 ) ; - - c o l o r - c o d e m i r r o r - a c t i v e l i n e - b g : r g b a ( 2 3 4 , 2 3 8 , 2 4 2 , . 5 ) ; - - c o l o r - c o d e m i r r o r - m a t c h i n g b r a c k e t - t e x t : # 2 4 2 9 2 f ; - - c o l o r - c o d e m i r r o r - l i n e s - b g : # f f f f f f ; - - c o l o r - c o d e m i r r o r - s y n t a x - c o m m e n t : # 2 4 2 9 2 f ; - - c o l o r - c o d e m i r r o r - s y n t a x - c o n s t a n t : # 0 5 5 0 a e ; - - c o l o r - c o d e m i r r o r - s y n t a x - e n t i t y : # 8 2 5 0 d f ; - - c o l o r - c o d e m i r r o r - s y n t a x - k e y w o r d : # c f 2 2 2 e ; - - c o l o r - c o d e m i r r o r - s y n t a x - s t o r a g e : # c f 2 2 2 e ; - - c o l o r - c o d e m i r r o r - s y n t a x - s t r i n g : # 0 a 3 0 6 9 ; - - c o l o r - c o d e m i r r o r - s y n t a x - s u p p o r t : # 0 5 5 0 a e ; - - c o l o r - c o d e m i r r o r - s y n t a x - v a r i a b l e : # 9 5 3 8 0 0 ; - - c o l o r - c h e c k s - b g : # 2 4 2 9 2 f ; - - c o l o r - c h e c k s - r u n - b o r d e r - w i d t h : 0 p x ; - - c o l o r - c h e c k s - c o n t a i n e r - b o r d e r - w i d t h : 0 p x ; - - c o l o r - c h e c k s - t e x t - p r i m a r y : # f 6 f 8 f a ; - - c o l o r - c h e c k s - t e x t - s e c o n d a r y : # 8 c 9 5 9 f ; - - c o l o r - c h e c k s - t e x t - l i n k : # 5 4 a e f f ; - - c o l o r - c h e c k s - b t n - i c o n : # a f b 8 c 1 ; - - c o l o r - c h e c k s - b t n - h o v e r - i c o n : # f 6 f 8 f a ; - - c o l o r - c h e c k s - b t n - h o v e r - b g : r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , . 1 2 5 ) ; - - c o l o r - c h e c k s - i n p u t - t e x t : # e a e e f 2 ; - - c o l o r - c h e c k s - i n p u t - p l a c e h o l d e r - t e x t : # 8 c 9 5 9 f ; - - c o l o r - c h e c k s - i n p u t - f o c u s - t e x t : # 8 c 9 5 9 f ; - - c o l o r - c h e c k s - i n p u t - b g : # 3 2 3 8 3 f ; - - c o l o r - c h e c k s - i n p u t - s h a d o w : n o n e ; - - c o l o r - c h e c k s - d o n u t - e r r o r : # f a 4 5 4 9 ; - - c o l o r - c h e c k s - d o n u t - p e n d i n g : # b f 8 7 0 0 ; - - c o l o r - c h e c k s - d o n u t - s u c c e s s : # 2 d a 4 4 e ; - - c o l o r - c h e c k s - d o n u t - n e u t r a l : # a f b 8 c 1 ; - - c o l o r - c h e c k s - d r o p d o w n
< / style >
< / head >
< body >
< div id = 'root' > < / div >
< / body >
< / html >
2025-12-30 03:12:31 +00:00
< script id = "playwrightReportBase64" type = "application/zip" > d a t a : a p p l i c a t i o n / z i p ; b a s e 6 4 , U E s D B B Q A A A g I A H s N n l s B l a I 6 T g w A A H B k A A A Z A A A A M z Y 4 N T M 4 N D F k M T V j O W Q y Z T Q y O D k u a n N v b u 1 c e 3 P b N h L / K h h O p 5 Y 7 s g T i Q Q D q O H d J m 0 k z 0 7 v m k n R u p n m 0 E A l Z b C R S J a E k O t v f / Q Z 8 S C Q t W S R N O c 6 d 8 k d k S c Q C 2 N 9 i X 9 j V p T X x Z + q 5 Z 4 0 s 7 H C K O b E 9 m 7 r C Q 4 o g L q x + 8 v 0 / 5 V x Z I 0 s u / O H U j 3 U Y r Q Z y 4 Q / i h X I H O r b 6 l l a x j q 3 R m 8 v k r 5 3 k z i C f M F e S M a E S j w W H D h Q T M 9 z X M z P B s 6 e v Q T 7 D M N Z S L 2 N w B i K l l 1 E Q A 0 9 q O Z a x A g s V x X 6 s V e A q k D 5 l 9 a 1 F F P 6 p X L 1 Z q t W 3 Z q E r t R 8 G 1 u g y 2 c e t e 5 j 5 g b J G T t 9 y w 9 l y H l g j d t 2 3 v G W U U b A Z 6 1 s y C E K d f G B 2 + 6 5 v a X m R / R U u t R s m c 6 v P C + V q 5 Z l F S T 2 1 R m + s n 9 I Z w e M X z 8 H T w F u E f q B j 6 1 3 f i l S 8 n G W s q 8 w V a x n p 1 3 5 C E k F E z 2 x 0 h u F r a I 8 I H l E 8 w E L 8 Z h k K O l p Z I 2 g G q E U G Q s b P J 2 o S R g r 8 F I Y f z A 7 3 U S R 2 Q n G z D i I 2 V N / 1 L a m 1 d K d z F e j s A z d c B t o a 2 X 0 r / u A v F s q z R h M 5 i 9 V 1 f 7 O G H y I l t Q K R + m u p Y g 3 c M N D q s 6 6 z G g H L q 2 G 3 L 6 Y F 2 G w D N i L X u / f T t + L A v N f W y A I A O O A K A G A k v X f S W m R P + k D G q 8 A F v V N w / g h c v g 0 A A C y h D A y X Y g 3 k w v 8 h Z R c 4 B / K T 9 H X O x k G g P m V f 9 U 6 / T 4 Y C k I 3 d 8 u 9 9 8 g Q v E Y 9 U v A i D W K 1 J b 2 Y b X C j d + + O b y 8 c v n v / + 5 P G r p 7 / / + v L n 6 8 o m / z j 9 3 i r C b P j w 1 h o a j n + 0 h 3 M / 8 I O L y p C 3 V g 3 U q c 3 K q H P e O e x 8 A z s W 9 W G / A z h d s 3 4 v 4 l s F Q I C r E m Z P E 0 U F 3 l o 6 f K J e R 0 s 9 X d X C y I F O G a M 9 a q I F R D Y s H E 1 W H y M B r p K t 2 j D j T a q M e z n L B + G H 3 u n p Y L P h O s d n z U D b L u F o T n c B / G y G P + M w 6 F V O R 4 H T P 8 m P 6 k U U L l S k a 3 I b o T K 3 Y f f c J h t u 2 7 w + t 2 2 c 8 W M 4 B D / m q i 6 e h s u Z B 8 Y K q E C O Z 8 o D 4 x X w 1 E Q u Z z r l I i l j Y 9 h o I C l y p n e S D T 6 5 F Z 8 M F l o m q F c L F U 4 S e A Y Z m R T y 3 s k 4 D G d K B i e 7 8 X m i a q K C y 6 j g 7 l G h B T 2 F G 6 D S h r + t e F h f D W V A O b s 1 U I t z w Q 5 + L n j L c 8 E 2 5 + J V e h y m 8 q N x g r Q K z B q A J 1 e x 0 S I T / 2 I Z K S / l D q + D 2 5 r G j 3 I V 1 z o d Y j e y J W I 5 v s F y P l Z R F 0 f k 8 A C J d q b 8 D q x u z 8 5 2 R h v B m 0 v d N t G z x M + O X k 9 l 0 I O 3 Y V d 4 s B 6 M m B x a 0 6 G C t c e o A Y x 3 w 6 I l a 2 v j m A G Y O g 3 X F U w e T 7 S K a o d m D u Y V l 4 u 0 D M 3 e 9 S 0 V R W G U P Z f F z y N r I e M 4 i V l v x L h l 2 p d W k I b Y O p K u s s x M g e H Y 6 9 U i h X o x 8 1 M B G P 7 H X 6 x j Y M s w d y j H k E A P E U + O X U w w g h S P u a L M p Z 6 H q U e 5 n L j Q U d 7 A D L 1 + Z x Y b f r B G O l q m M e W t y Q W F I B n L s R y P u X T F B G K E 3 V 3 J h b k f q K g Y q c n Z D G Q f p s / 4 r p w l o V q H y Q W E d 2 Y X H L t m d m E Z d J B f M L P t j c Q 4 7 D i / 4 E C 7 L M R 0 T 2 x 3 0 P y C w + 1 D 5 x c Q a Z d g Q H h X h q G J 3 G 7 N M C B y y B Q D o t 0 E u u m O G u U Y 0 i G 1 L B q z K x a N 7 V G m b a C n 7 T y T u + D T O f d b e i y 3 e P m N 8 g y 8 q i / s 7 m F i l T x D Y h v N m s 3 r C L x d Q m i P 3 6 B 5 5 i L k 7 9 E 8 + w v b 8 0 i 5 y v + o v P w T M V + P O h 1 s B h Q 2 n 3 / d O y 3 Q C 9 4 G L z N K 6 3 m x P U + E Z E P a q i 9 J T p Y L Q e w Q u R D E W + Z C m j k + H F b i b N 5 B T v r f Y f R B R e A H E 8 Y u F 3 V W I S q Z c d q B 9 3 V p z V U c y w v 1 g M X N P H Y g x Z L K 5 6 M 2 4 r l X O p s I Z / J 8 l j f E 8 E b g n h p a I K N I r k A Y g W A 5 m 4 G e P w F B m N J d K X 3 6 N l g z 2 Y y W G g y n 4 V w N 4 8 D 3 V D R 8 F s 5 k 4 L 1 I n c h 4 + I / U c i 3 9 o U J q u E N F j R A b I b Y B L D n 4 n p p E q Q 9 q o h 9 w B f z 5 I o w 0 u E x 8 h X 7 G w v 7 a G 7 o G k y i c g 5 O / L 2 Z y 9 S n y L 6 Z 6 a J 4 8 y Q x G p i G M u 5 F y q o g b O A e L K H R V H A 9 U 8 P H N i f n u 1 5 c / n 7 w D V 1 f g Z K r 1 Y j Q c G p 0 7 m 4 a x H g k o Y N k 2 Z 7 O Q b B Y j R G b y g a d i N / L H q n e y 1 W 8 9 6 Z c 8 l g d 5 2 3 K Q h H 7 r 5 H W T v H Q 6 I E f + H j O 4 7 T O M d m 7 J 7 j 2 v 9 g U T D J u 0 Q f o 2 R + y B x g a H 8 T 1 z G 9 G 9 D w M y i 7 u m l 5 r C M q n G j k 4 6 I D / H 7 a 2 J G W z f l B 1 w f n 6 e D r m 6 A o 8 N j Y E f J 6 + p U G 9 j B F 4 r + c J R f z 4 B e q o i B f x U a / b B R x X 5 k x W I d b R 0 9 T J S 6 Z B c I P w J 6 G 2 Z D 3 z 7 b X o W Z i q 4 0 F P w C M D T T J Y w X f M / 5 Z s R O 3 C e P P 4 G v s v W 5 q w f y n Z p n r p 5 N h O h M M m X / G B h V m + g D r W c v U i t S j 6 U 1 x s q P 6 p I X q i X U m 9 m F T W X K z 8 X h x F Y e 5 e l Y b k A X K d v U U k f E J z B S s j t + m A 4 M v m 6 g l Y g k I C J E b 0 w O F O f E z O p U z W x V S k Q 2 l 4 p E K d L p T A s r v g s + S z X E 4 T l 3 O C 7 j l y + 7 W Q c + O T r q T l z B b 1 o J D O l I X b o m t R a 5 / q m R y D J p q c w d 3 G a G m K K a l l S o 6 t y u a C 4 J A h 0 7 V 7 R O o I w n M p 4 G p m M 2 U Y i C k x Y f 2 s W s l U e q N N e H m g O E y 3 A 9 K + l i l Y p I N q f K x D J 4 E K B h T S O r j Y p n W S A K M 0 a + 8 a 1 O w e B + m T c F t U z / w 2 C 8 F P v F J w Z O / Y d c G D + n w 0 h N D x 9 / u q X V z r y g 4 v e 6 f d m Y k T A N F x G M Z A X Y e p p w t I k y 0 D 7 s + I k V S L p I D v b k 4 M a C X s 6 B q 9 V w z 7 h N 7 i m Q r + G 8 G 8 J G 8 6 / u U x e r 7 9 N F n z + z W X y e v 1 H O k O u w v P l 0 n y 5 T k O L 6 r C G s u 3 w f C p x u x 3 s L c I 4 9 s e z F V D z h V 6 l 9 o 9 V f K d t 5 u f q C p T M 4 r Z l s x w f h h r b P 4 Z b 2 z 9 G K v Y v i W 2 q B p D R q m l I H t t i y P y 5 i r W c L 3 I t w G 6 Y z h 0 j c 2 F Z D 7 x h O j O n N h k / y B / f 7 t A y X r J J T J R U E c / V I L c L q m h r V J a 7 6 E k 6 x a A w D Y M w U t 5 W l c N R e 5 X D c z v J y Q b + Z 0 o D d x l F x v J l t W n J I 2 V T l 3 7 z s p v Y j l e O W 5 n 4 z k P H 2 Z Y l r Z d S I V I 8 f D w / f F y U x D 6 L t P p G / v P g Q G W R d x 7 4 f Q q j D 2 l A C g v y n 0 6 2 D t U y b I R d k f O U Z m u u l f 1 / g a r C W i a / k 2 8 C l w R V 5 E Z S 0 A 0 3 X p a j x k 3 U G y k Z h 8 k 2 Q c 8 + w w 5 N N Z L Y C u G e e O 6 X 6 O l f S z n r 2 f n C W F 0 i P 6 s 4 L l I w 6 8 h o 8 N K x E w b h 7 I 0 N s z N o Q w P M c G h d F y 9 5 J 9 K f H f y S 1 3 E p 8 R i F D i e e I 6 i L s T N m L v P 4 2 I G 2 J 7 j N X Q h t r C q X v J s s 7 a 2 3 v J I o B B 3 F m c d c I V z s e A 6 5 / Z a 3 g Q f c 3 V U v I T u v e j m 8 v 0 J y D u s U k r P O C 8 k r J Y t s z 8 3 N g Q v J K 3 V I d v f X f Y S 2 u + l 9 y N H b / u v e + 4 j v m t 4 A b 6 F S r / C 8 W u Y k U P d S 4 r S 7 F P 4 q Y v D G 9 8 Q m a L 9 z i S E / d I k h K Z Y Y 2 g 0 w + y K Z i B o g v F + n L L o r x S X w 0 D B Q 1 K 4 U 9 z 4 y M r d V 3 2 6 y N X e p / i O 0 Y s F g W 4 P 6 R c v / k E Q O w g x j C g U i j E H P l m q C b O g h K c S Y j S l U i m D Z q v y P u Y R M s M 2 g m E B G X I I h d e o 4 h k 0 y Y t 3 5 h 5 T u 9 g / J P f q H p I Z / S F D H / i F 2 K v L M 9 i i M w / q H u F L c Y X d f C U i d d v 7 h V 5 D U 3 e 8 m 0 q q h r + P G 7 c 5 3 5 h g i U c C Q 4 d + y / O d W i B n + r Z Y l I 7 x i y U T 3 p s x B 7 b z A O 2 W a G 3 t n B 0 1 N d 1 I e S B k / d H m g 4 / R b t S G 2 z 7 L X q r 1 r k o r v h t U C H b o H h B V 6 Q C h s w O o v e b n Q 4 F T d A N F c T N z B J 6 T i h k / Y R V H i v f u E S k 6 I U J 4 t B O O I Q + x x T t X E Q Q J R p i i h z P Z s K e 1 q t r C e T + g h x J U Q D v W I Y B N s O 5 N x M V n Y 6 G q i O 9 + P 2 7 t 8 P w S d e 2 w D S W b b n x e x O / b + K H 1 I 2 U E H V 5 r Z 7 e 7 N C E f t v L 8 H d I 9 W 4 + c l c B M v r 8 F P Q j j M P r h P x g v h G K E N E P q y t 4 q N 7 c / 7 l p e R n X g R j O F D p 4 l 4 M c P a o G f + A V 7 9 N u i r b 3 N L f J j O K l 5 1 S r p 3 F E X B e p I m