§
    Î©jSÐ  ã            
       ó`  — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
mZmZ ddlmZmZ  eej        d¦  «        rej                             d¬¦  «         ej                             dej                             ej                             ej                             e¦  «        d¦  «        ¦  «        ¦  «         dd	lmZ dd
lmZ d„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d „ Z2d!„ Z3d"„ Z4d#„ Z5d$„ Z6e7d%k    �r e¦   «           e¦   «           e¦   «           e ¦   «           e!¦   «           e"¦   «           e%¦   «           e#¦   «           e$¦   «           e&¦   «           e'¦   «           e(¦   «           e)¦   «           e*¦   «           e+¦   «           e,¦   «           e-¦   «           e.¦   «           e/¦   «           e0¦   «           e1¦   «           e2¦   «           e3¦   «           e4¦   «           e5¦   «           e6¦   «           e8d&¦  «         dS dS )'uV  
Unit Test cho Optical Health Globe Sensor (OpticalHPSensor)
Kiá»ƒm tra tÃ­nh toÃ¡n ROI theo tá»‰ lá»‡ phÃ¢n giáº£i mÃ n hÃ¬nh, logic phÃ¢n tÃ­ch mÃ u Ä‘á»�,
ká»¹ thuáº­t Multi-slit sampling loáº¡i trá»« text sá»‘ mÃ¡u, giáº£i phÃ³ng an toÃ n GDI handles,
tá»‘c Ä‘á»™ thá»±c thi < 2ms vÃ  tÃ­ch há»£p vá»›i CoreController / ControlCenterApp.
é    N)Ú	MagicMockÚpatch)ÚImageÚ	ImageDrawÚreconfigurezutf-8)Úencodingú..)ÚCoreController©ÚOpticalHPSensorc                  óN	  — t          ¦   «         } | j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}t          d	¬
¦  «        }|j        }d	}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}|j
        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}}dS )u9   Kiá»ƒm tra giÃ¡ trá»‹ khá»Ÿi táº¡o cá»§a OpticalHPSensor.r   ©ú==)z7%(py2)s
{%(py2)s = %(py0)s.expected_max_hp
} == %(py5)sÚsensor_default©Úpy0Úpy2Úpy5úassert %(py7)sÚpy7Né½   ©Úexpected_max_hpÚsensorçš™™™™™¹?)z8%(py2)s
{%(py2)s = %(py0)s.top_margin_ratio
} == %(py5)sçÍÌÌÌÌÌì?)z;%(py2)s
{%(py2)s = %(py0)s.bottom_margin_ratio
} == %(py5)sé   )z3%(py2)s
{%(py2)s = %(py0)s.slit_offset
} == %(py5)sç        )z2%(py2)s
{%(py2)s = %(py0)s.last_ratio
} == %(py5)s)r   r   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚtop_margin_ratioÚbottom_margin_ratioÚslit_offsetÚ
last_ratio)r   Ú@py_assert1Ú@py_assert4Ú@py_assert3Ú@py_format6Ú@py_format8r   s          ú4C:\Projects\AutoPOE2\tests\test_optical_hp_sensor.pyÚ"test_optical_sensor_initializationr1      si  € å$Ñ&Ô&€NØÔ)Ð.¨QÐ.Ð)¨QÒ.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð)¨QÐ.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ>Ñ.Ô.Ð.Õ.Ô.ˆ>Ñ.Ô.Ð.Ð.Õ.Ô.Ð)Ñ.Ô.Õ.Ô.¨QÑ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.å¨SÐ1Ñ1Ô1€FØÔ!Ð( SÐ(Ð! SÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð! SÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ6Ñ(Ô(Ð(Õ(Ô(ˆ6Ñ(Ô(Ð(Ð(Õ(Ô(Ð!Ñ(Ô(Õ(Ô( SÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÔ"Ð* dÐ*Ð" dÒ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð" dÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆ6Ñ*Ô*Ð*Õ*Ô*ˆ6Ñ*Ô*Ð*Ð*Õ*Ô*Ð"Ñ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔ%Ð-¨Ð-Ð%¨Ò-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆ6Ñ-Ô-Ð-Õ-Ô-ˆ6Ñ-Ô-Ð-Ð-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÔÐ# Ð#Ð Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØÔÐ# Ð#Ð Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ó    c            
      óú  — t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}t           j        } d}d}d} | |||¦  «        }d}||u }|�s t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        ndt          j        | ¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x} x}x}x}x}x}}d
S )uq   Kiá»ƒm tra Ä‘iá»�u kiá»‡n nháº­n diá»‡n pixel mÃ u Ä‘á»� cá»§a cháº¥t lá»�ng mÃ¡u: R > 110, R > 1.5*G, R > 1.5*B.éÜ   é   T©Úis)zg%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.is_red_pixel
}(%(py4)s, %(py6)s, %(py8)s)
} is %(py13)sr   ©r   r   Úpy4Úpy6Úpy8Úpy10Úpy13úassert %(py15)sÚpy15Néx   éF   éd   é   Féÿ   éÈ   é2   é   )
r   Úis_red_pixelr   r    r!   r"   r#   r$   r%   r&   )	r+   r-   Ú@py_assert5Ú@py_assert7Ú@py_assert9Ú@py_assert12Ú@py_assert11Ú@py_format14Ú@py_format16s	            r0   Útest_is_red_pixelrP   %   sd	  € õ Ô'Ð<¨Ð<¨RÐ<°Ð<Ð'Ð'¨¨R°Ñ4Ô4Ð<¸Ð<Ð4¸Ð<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<Ð4¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�?Ñ<Ô<Ð<Õ<Ô<�?Ñ<Ô<Ð<Ð<Õ<Ô<Ð'Ñ<Ô<Õ<Ô<¨Ñ<Ô<Õ<Ô<¨RÑ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<åÔ'Ð<¨Ð<¨RÐ<°Ð<Ð'Ð'¨¨R°Ñ4Ô4Ð<¸Ð<Ð4¸Ð<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<Ð4¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�?Ñ<Ô<Ð<Õ<Ô<�?Ñ<Ô<Ð<Ð<Õ<Ô<Ð'Ñ<Ô<Õ<Ô<¨Ñ<Ô<Õ<Ô<¨RÑ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð4Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<åÔ'Ð=¨Ð=¨RÐ=°Ð=Ð'Ð'¨¨R°Ñ4Ô4Ð=¸Ð=Ð4¸Ð=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=Ð4¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�?Ñ=Ô=Ð=Õ=Ô=�?Ñ=Ô=Ð=Ð=Õ=Ô=Ð'Ñ=Ô=Õ=Ô=¨Ñ=Ô=Õ=Ô=¨RÑ=Ô=Õ=Ô=°Ñ=Ô=Õ=Ô=Ð4Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=åÔ'Ð?¨Ð?¨SÐ?°#Ð?Ð'Ð'¨¨S°#Ñ6Ô6Ð?¸%Ð?Ð6¸%Ð?Ð?Ð?Ñ?Õ?Ô?Ð?Ð?Ð?Ð?Ð6¸%Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�?Ñ?Ô?Ð?Õ?Ô?�?Ñ?Ô?Ð?Ð?Õ?Ô?Ð'Ñ?Ô?Õ?Ô?¨Ñ?Ô?Õ?Ô?¨SÑ?Ô?Õ?Ô?°#Ñ?Ô?Õ?Ô?Ð6Ñ?Ô?Õ?Ô?¸%Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?åÔ'Ð>¨Ð>¨SÐ>°"Ð>Ð'Ð'¨¨S°"Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�?Ñ>Ô>Ð>Õ>Ô>�?Ñ>Ô>Ð>Ð>Õ>Ô>Ð'Ñ>Ô>Õ>Ô>¨Ñ>Ô>Õ>Ô>¨SÑ>Ô>Õ>Ô>°"Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>åÔ'Ð>¨Ð>¨CÐ>°Ð>Ð'Ð'¨¨C°Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�?Ñ>Ô>Ð>Õ>Ô>�?Ñ>Ô>Ð>Ð>Õ>Ô>Ð'Ñ>Ô>Õ>Ô>¨Ñ>Ô>Õ>Ô>¨CÑ>Ô>Õ>Ô>°Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>åÔ'Ð<¨Ð<¨BÐ<°Ð<Ð'Ð'¨¨B°Ñ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ñ<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�?Ñ<Ô<Ð<Õ<Ô<�?Ñ<Ô<Ð<Ð<Õ<Ô<Ð'Ñ<Ô<Õ<Ô<¨Ñ<Ô<Õ<Ô<¨BÑ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<r2   c            
      ó>  — t          ¦   «         } t          dd¬¦  «        5  |                      d¦  «        \  }}}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}d}	||	z
  }
||
k    }|sªt          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}	}
ddd¦  «         n# 1 swxY w Y   t          dd¬¦  «        5  |                      d¦  «        \  }}}}d}d}||z  }
t          |
¦  «        }||k    }|�s0t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}
}d}||z  }
t          |
¦  «        }||k    }|�s0t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}
}d}||z  }
t          |
¦  «        }||k    }|�s0t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}
}d}d}||z  }t          |¦  «        }||z
  }||k    }|�sCt          j        d|fd ||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d!œz  }d"d#|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}x}x}}ddd¦  «         n# 1 swxY w Y   t          dd$¬¦  «        5  |                      d¦  «        \  }}}}d%}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d%}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d&}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d'}d(}	||	z
  }
||
k    }|sªt          j        d|fd||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}x}x}	}
ddd¦  «         n# 1 swxY w Y   t          dt          d)¦  «        ¬*¦  «        5  |                      d¦  «        \  }}}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}d+}||k    }|s—t          j        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d	œz  }d
d|iz  }t          t          j
        |¦  «        ¦  «        ‚dx}}ddd¦  «         dS # 1 swxY w Y   dS ),ug   Kiá»ƒm tra tÃ­nh toÃ¡n tá»�a Ä‘á»™ vÃ  kÃ­ch thÆ°á»›c ROI theo tá»‰ lá»‡ mÃ n hÃ¬nh (1080p, 1440p, 4K).zwin32gui.GetClientRect)r   r   i€  é8  ©Úreturn_valueé90  é–   r   ©z%(py0)s == %(py3)sÚrw©r   Úpy3úassert %(py5)sr   NÚrhr   ÚrxrR   éª   )z%(py0)s == (%(py3)s - %(py5)s)Úry)r   rZ   r   úassert %(py8)sr;   )r   r   é 
  é   gUUUUUUõ?)z<%(py0)s == %(py8)s
{%(py8)s = %(py2)s((%(py4)s * %(py5)s))
}ÚintÚ
scale_1440)r   r   r9   r   r;   úassert %(py10)sr<   rb   )zJ%(py0)s == (%(py3)s - %(py10)s
{%(py10)s = %(py4)s((%(py6)s * %(py7)s))
}))r   rZ   r9   r:   r   r<   úassert %(py13)sr=   )r   r   i   ép  i,  r5   rg   éT  ÚFailed©Úside_effectéŽ  )r   r   Úget_globe_roir   r    r!   r"   r#   r$   r%   r&   rc   Ú	Exception)r   r]   r_   rX   r\   Ú@py_assert2r+   Ú@py_format4r.   r,   Ú@py_assert6Ú@py_format7Ú@py_format9rd   r-   rJ   Ú@py_format11rI   Ú@py_assert8rK   rM   Ú@py_format12rN   s                          r0   Útest_get_globe_roi_scalingrw   7   sÈ  € åÑÔ€Fõ 
Ð'Ð6HÐ	IÑ	IÔ	Ið  ð  Ø×-Ò-¨eÑ4Ô4‰ˆˆB��BØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØˆˆr�RŠxˆˆˆ�Œˆˆˆˆˆr�Rˆ‰Œˆ�Œ‰Œˆˆ�Œˆr‰Œˆ�Œˆr‰Œˆˆ�Œ�R‰Œˆˆ‰ˆˆˆˆˆ‰ˆ��Œˆ‰Œ‰ŒˆˆˆˆˆØÐ˜CÐ�T˜C‘ZÐˆr�ZÒÐÐÐÕÔÐÐÐÐˆr�ZÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�TÑÔÕÔ˜CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
Ð'Ð6HÐ	IÑ	IÔ	Ið 2ð 2Ø×-Ò-¨eÑ4Ô4‰ˆˆB��BØ"ˆ
ØÐ*˜˜zÑ)Ð*•SÐ)Ñ*Ô*Ð*ˆrÐ*Ò*Ð*Ð*Ñ*Õ*Ô*Ð*Ð*Ð*Ð*ˆrÐ*Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆrÑ*Ô*Ð*Õ*Ô*ˆrÑ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*•SÑ*Ô*Ð*Õ*Ô*•SÑ*Ô*Ð*Ð*Õ*Ô*˜Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜zÑ*Ô*Ð*Õ*Ô*˜zÑ*Ô*Ð*Ð*Õ*Ô*Ð*Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐ*˜˜zÑ)Ð*•SÐ)Ñ*Ô*Ð*ˆrÐ*Ò*Ð*Ð*Ñ*Õ*Ô*Ð*Ð*Ð*Ð*ˆrÐ*Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆrÑ*Ô*Ð*Õ*Ô*ˆrÑ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*•SÑ*Ô*Ð*Õ*Ô*•SÑ*Ô*Ð*Ð*Õ*Ô*˜Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜zÑ*Ô*Ð*Õ*Ô*˜zÑ*Ô*Ð*Ð*Õ*Ô*Ð*Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐ)˜˜j™Ð)•S˜Ñ)Ô)Ð)ˆrÐ)Ò)Ð)Ð)Ñ)Õ)Ô)Ð)Ð)Ð)Ð)ˆrÐ)Ð)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆrÑ)Ô)Ð)Õ)Ô)ˆrÑ)Ô)Ð)Ð)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)•SÑ)Ô)Ð)Õ)Ô)•SÑ)Ô)Ð)Ð)Õ)Ô)˜Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)˜jÑ)Ô)Ð)Õ)Ô)˜jÑ)Ô)Ð)Ð)Õ)Ô)Ð)Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÐ1 Ð1  jÑ 0Ð1�CÐ 0Ñ1Ô1Ð1�TÐ1Ñ1Ð1ˆrÐ1Ò1Ð1Ð1Ñ1Õ1Ô1Ð1Ð1Ð1Ð1ˆrÐ1Ð1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆrÑ1Ô1Ð1Õ1Ô1ˆrÑ1Ô1Ð1Ð1Õ1Ô1�TÑ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1�CÑ1Ô1Ð1Õ1Ô1�CÑ1Ô1Ð1Ð1Õ1Ô1 Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1 jÑ1Ô1Ð1Õ1Ô1 jÑ1Ô1Ð1Ð1Õ1Ô1Ð1Ñ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ 
Ð'Ð6HÐ	IÑ	IÔ	Ið  ð  Ø×-Ò-¨eÑ4Ô4‰ˆˆB��BØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØˆˆr�RŠxˆˆˆ�Œˆˆˆˆˆr�Rˆ‰Œˆ�Œ‰Œˆˆ�Œˆr‰Œˆ�Œˆr‰Œˆˆ�Œ�R‰Œˆˆ‰ˆˆˆˆˆ‰ˆ��Œˆ‰Œ‰ŒˆˆˆˆˆØÐ˜CÐ�T˜C‘ZÐˆr�ZÒÐÐÐÕÔÐÐÐÐˆr�ZÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�TÑÔÕÔ˜CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
Ð'µY¸xÑ5HÔ5HÐ	IÑ	IÔ	Ið ð Ø×-Ò-¨eÑ4Ô4‰ˆˆB��BØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØˆˆr�RŠxˆˆˆ�Œˆˆˆˆˆr�Rˆ‰Œˆ�Œ‰Œˆˆ�Œˆr‰Œˆ�Œˆr‰Œˆˆ�Œ�R‰Œˆˆ‰ˆˆˆˆˆ‰ˆ��Œˆ‰Œ‰ŒˆˆˆˆˆØÐˆr�SŠyÐÐÐÕÔÐÐÐÐˆr�SÐÑÔÐÕÔÑÔÐÐÕÔˆrÑÔÐÕÔˆrÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sK    KK9Ë9K=Ì K=ÌVb8â8b<â?b<ãKn-î-n1î4n1ïJ/zúzúzc                  óŽ  — t          d¬¦  «        } d\  }}t          |dz  ¦  «        }t          |dz  ¦  «        }||z
  dz   }t          j        d||fd¦  «        }t	          j        |¦  «        }|                     d	|||gd
¬¦  «         |                      |d¬¦  «        \  }}	}
d}|
|k    }|s—t          j	        d|fd|
|f¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}|	|k    }|s—t          j	        d|fd|	|f¦  «        dt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}t          j        d||fd¦  «        }|                      |d¬¦  «        \  }}	}
d}|
|k    }|s—t          j	        d|fd|
|f¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d	}||k    }|s—t          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}|	|k    }|s—t          j	        d|fd|	|f¦  «        dt          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}t          j        d||fd¦  «        }t	          j        |¦  «        }|t          t!          |dz  ¦  «        ¦  «        z
  dz   }|                     d	|||gd
¬¦  «         |                      |d¬¦  «        \  }}}d}||z
  }t#          |¦  «        }d}||k    }|�st          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}d }||z
  }t#          |¦  «        }d!}||k    }|�st          j	        d|fd||f¦  «        dt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndd"t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd"t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}t          j        d||fd¦  «        }t	          j        |¦  «        }|                     d	|||gd
¬¦  «         |                     g d#¢d$¬¦  «         |                      |d¬¦  «        \  }}}||z
  } t#          | ¦  «        }d}||k    }!|!�s0t          j	        d|!fd%||f¦  «        dt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndd&t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd&dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        d'œz  }"d(d)|"iz  }#t          t          j        |#¦  «        ¦  «        ‚dx} x}x}!}||z
  } t#          | ¦  «        }d!}||k    }!|!�s0t          j	        d|!fd%||f¦  «        dt          j        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        ndd*t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd*d"t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd"t          j        |¦  «        t          j        |¦  «        d'œz  }"d(d)|"iz  }#t          t          j        |#¦  «        ¦  «        ‚dx} x}x}!}dS )+uâ   
    Táº¡o áº£nh mÃ´ phá»�ng quáº£ cáº§u mÃ¡u á»Ÿ cÃ¡c má»©c 100%, 50%, 0% vÃ  trÆ°á»�ng há»£p chá»¯ sá»‘ mÃ¡u tráº¯ng '1234/1234'
    Ä‘Ã¨ lÃªn tÃ¢m quáº£ cáº§u Ä‘á»ƒ chá»©ng minh Multi-slit sampling khÃ´ng bá»‹ nhiá»…u.
    iÐ  r   ©rV   rV   r   r   é   ÚRGB)r   r   rC   r   )éÒ   r5   r5   )Úfillg      ð?r   rW   ÚratiorY   r[   r   NÚcurÚmhpr   ç      à?g{®Gáz”?)ú<=)z<%(py6)s
{%(py6)s = %(py0)s((%(py1)s - %(py3)s))
} <= %(py9)sÚabsÚratio_clean)r   Úpy1rZ   r:   Úpy9úassert %(py11)sÚpy11éè  é(   Ú	cur_clean)éD   éZ   éR   én   )rD   rD   rD   )z<%(py5)s
{%(py5)s = %(py0)s((%(py1)s - %(py2)s))
} <= %(py8)sÚ
ratio_text)r   r…   r   r   r;   re   r<   Úcur_text)r   rc   r   Únewr   ÚDrawÚ	rectangleÚanalyze_pil_imager   r    r!   r"   r#   r$   r%   r&   Úroundrƒ   )$r   ÚwÚhÚy_startÚy_endÚ
total_spanÚimg_100Údraw_100r   r€   r~   ro   r+   rp   r.   Úimg_0Úimg_50_cleanÚdraw_50Úy_midr‹   Ú_r„   r,   rI   ru   rJ   Ú@py_format10rv   Úimg_50_textÚ	draw_textr‘   r�   r-   rq   rs   rt   s$                                       r0   Ú+test_multi_slit_sampling_and_text_rejectionr¦   ]   s¼  € õ
 ¨TÐ2Ñ2Ô2€FØ�D€A€qÝ�!�d‘(‰mŒm€GÝ��D‘‰MŒM€EØ˜‘ 1Ñ$€Jõ Œi˜  1˜v |Ñ4Ô4€GÝŒ~˜gÑ&Ô&€HØ×Ò˜˜7 A uÐ-°MÐÑBÔBÐBØ×.Ò.¨wÈÐ.ÑMÔM�O€CˆˆeØÐˆ5�CŠ<ÐÐÐÕÔÐÐÐÐˆ5�CÐÑÔÐÕÔÑÔÐÐÕÔˆ5ÑÔÐÕÔˆ5ÑÔÐÐÕÔ�CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ3�$Š;ÐÐÐÕÔÐÐÐÐˆ3�$ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔ�$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ3�$Š;ÐÐÐÕÔÐÐÐÐˆ3�$ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔ�$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐõ ŒI�e˜a ˜V \Ñ2Ô2€EØ×.Ò.¨uÀdÐ.ÑKÔK�O€CˆˆeØÐˆ5�CŠ<ÐÐÐÕÔÐÐÐÐˆ5�CÐÑÔÐÕÔÑÔÐÐÕÔˆ5ÑÔÐÕÔˆ5ÑÔÐÐÕÔ�CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ€Oˆ3�!Š8€O€O€O…O„O€O€O€O€Oˆ3�!€O�O„O€O…O„O�O„O€O€O…O„Oˆ3�O„O€O…O„Oˆ3�O„O€O€O…O„O�!�O„O€O€O�O€O€O€O€O€O�O€O…O…O„O€O�O„O�O„O€O€O€O€O€OØÐˆ3�$Š;ÐÐÐÕÔÐÐÐÐˆ3�$ÐÑÔÐÕÔÑÔÐÐÕÔˆ3ÑÔÐÕÔˆ3ÑÔÐÐÕÔ�$ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐõ ”9˜U Q¨ F¨LÑ9Ô9€LÝŒn˜\Ñ*Ô*€GØ•C�˜j¨4Ñ/Ñ0Ô0Ñ1Ô1Ñ1°AÑ5€EØ×Ò�q˜%  EÐ*°ÐÑ?Ô?Ð?Ø &× 8Ò 8¸ÐW[Ð 8Ñ \Ô \Ñ€Iˆq�+Ø!Ð*ˆ{˜TÑ!Ð*�3Ð!Ñ"Ô"Ð* dÐ*Ð" dÒ*Ð*Ð*Ñ*Õ*Ô*Ð*Ð*Ð*Ð*Ð" dÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*�3Ñ*Ô*Ð*Õ*Ô*�3Ñ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆ{Ñ*Ô*Ð*Õ*Ô*ˆ{Ñ*Ô*Ð*Ð*Õ*Ô*˜TÑ*Ô*Õ*Ô*Ð"Ñ*Ô*Õ*Ô* dÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÐ&ˆy˜4ÑÐ&�3ÐÑ Ô Ð& BÐ&Ð  BÒ&Ð&Ð&Ñ&Õ&Ô&Ð&Ð&Ð&Ð&Ð  BÐ&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&�3Ñ&Ô&Ð&Õ&Ô&�3Ñ&Ô&Ð&Ð&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆyÑ&Ô&Ð&Õ&Ô&ˆyÑ&Ô&Ð&Ð&Õ&Ô&˜4Ñ&Ô&Õ&Ô&Ð Ñ&Ô&Õ&Ô& BÑ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ð&õ ”)˜E A q 6¨<Ñ8Ô8€KÝ”˜{Ñ+Ô+€IØ×Ò˜˜E 1 eÐ,°=ÐÑAÔAÐAà×ÒÐ)Ð)Ð)°ÐÑ@Ô@Ð@à$×6Ò6°{ÐTXÐ6ÑYÔYÑ€Hˆa�à˜KÑ'Ð0�3Ð'Ñ(Ô(Ð0¨DÐ0Ð(¨DÒ0Ð0Ð0Ñ0Õ0Ô0Ð0Ð0Ð0Ð0Ð(¨DÐ0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0�3Ñ0Ô0Ð0Õ0Ô0�3Ñ0Ô0Ð0Ð0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0ˆzÑ0Ô0Ð0Õ0Ô0ˆzÑ0Ô0Ð0Ð0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0˜KÑ0Ô0Ð0Õ0Ô0˜KÑ0Ô0Ð0Ð0Õ0Ô0Ð(Ñ0Ô0Õ0Ô0¨DÑ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø˜)Ñ#Ð*�3Ð#Ñ$Ô$Ð*¨Ð*Ð$¨Ò*Ð*Ð*Ñ*Õ*Ô*Ð*Ð*Ð*Ð*Ð$¨Ð*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*�3Ñ*Ô*Ð*Õ*Ô*�3Ñ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Õ*Ô*ˆxÑ*Ô*Ð*Ð*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*˜)Ñ*Ô*Ð*Õ*Ô*˜)Ñ*Ô*Ð*Ð*Õ*Ô*Ð$Ñ*Ô*Õ*Ô*¨Ñ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*Ð*r2   c                  ój  — t          d¬¦  «        } d\  }}t          g d¢||z  z  ¦  «        }|                      |||¦  «         g }t          d¦  «        D ]X}t	          j        ¦   «         }|                      |||¦  «         |                     t	          j        ¦   «         |z
  dz  ¦  «         ŒYt          |¦  «        t          |¦  «        z  }t          |¦  «        }t          d|d›d	|d›d
�¦  «         d}	||	k     }
|
s±t          j        d|
fd||	f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |	¦  «        dœz  }t          j        d|d›d�¦  «        dz   d|iz  }t%          t          j        |¦  «        ¦  «        ‚dx}
}	dS )u_   Kiá»ƒm tra thá»�i gian thá»±c thi cá»§a thuáº­t toÃ¡n phÃ¢n tÃ­ch pixel: báº¯t buá»™c < 2.0 ms.r‰   r   ry   )r@   rŠ   r|   r   rC   g     @�@z#  -> Optical Sensor Benchmark: avg=z.3fzms, min=Úmsg       @©ú<)z%(py0)s < %(py3)sÚavg_timerY   zAnalysis took z"ms, which exceeds the 2.0ms limit!z
>assert %(py5)sr   N)r   ÚbytesÚanalyze_pixelsÚrangeÚtimeÚperf_counterÚappendÚsumÚlenÚminÚprintr   r    r!   r"   r#   r$   Ú_format_assertmsgr%   r&   )r   r—   r˜   Ú	raw_bytesÚtimesr¢   Út0r«   Úmin_timero   r+   rp   r.   s                r0   Útest_performance_under_2msr»   Ž   sì  € å¨TÐ2Ñ2Ô2€Fà�D€A€qÝÐ'Ð'Ð'¨1¨q©5Ñ1Ñ2Ô2€Ið ×Ò˜!˜Q 	Ñ*Ô*Ð*ð €EÝ�2‰YŒYð :ð :ˆÝÔÑ Ô ˆØ×Ò˜a  IÑ.Ô.Ð.Ø�Š•dÔ'Ñ)Ô)¨BÑ.°&Ñ8Ñ9Ô9Ð9Ð9å�5‰zŒz�C ™JœJÑ&€HÝ�5‰zŒz€HÝ	Ð
V°Ð
VÐ
VÐ
VÀhÐ
VÐ
VÐ
VÐ
VÑWÔWÐWØÐ\ˆ8�cŠ>Ð\Ð\Ð\Õ\Ô\Ð\Ð\Ð\Ð\ˆ8�cÐ\Ñ\Ô\Ð\Õ\Ô\Ñ\Ô\Ð\Ð\Õ\Ô\ˆ8Ñ\Ô\Ð\Õ\Ô\ˆ8Ñ\Ô\Ð\Ð\Õ\Ô\�cÑ\Ô\Ð\Ð\Ñ\Ð\Õ\Ô\Ð\¨HÐ\Ð\Ð\Ð\Ñ\Ô\Ð\Ñ\Ð\Ð\Ð\Ñ\Ð\Õ\Õ\Ô\Ð\Ñ\Ô\Ñ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\Ð\r2   c            	      óF  — t          ¦   «         } t          ¦   «         }t          ¦   «         }d}t          ¦   «         }t          ¦   «         }t          ¦   «         }d|j        _        ||j        _        ||j        _        ||j        _        ||j        _        t          d¦  «        |j	        _
        t          d|¦  «        5  t          d|¦  «        5  |                      dddd	d	¬
¦  «        }d}||u }	|	s—t          j        d|	fd||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }
dd|
iz  }t'          t          j        |¦  «        ¦  «        ‚dx}	}|j                             d¦  «         |j                             ¦   «          |j                             ¦   «          |j                             d|¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )uÕ   
    Kiá»ƒm tra báº£o Ä‘áº£m an toÃ n tÃ i nguyÃªn GDI:
    Táº¥t cáº£ cÃ¡c handle DeleteObject, DeleteDC, ReleaseDC báº¯t buá»™c pháº£i Ä‘Æ°á»£c gá»�i
    ngay cáº£ khi quÃ¡ trÃ¬nh BitBlt xáº£y ra Exception.
    i4  ixV  zGDI BitBlt Failure Simulationz-src.assistant_tool.optical_hp_sensor.win32guiz,src.assistant_tool.optical_hp_sensor.win32uii'  r   rl   rV   )Úhwndr]   r_   rX   r\   Nr6   ©z%(py0)s is %(py3)sÚresrY   r[   r   )r   r   Ú	GetHandlerT   ÚGetDCÚCreateDCFromHandleÚCreateCompatibleDCÚCreateBitmapÚRuntimeErrorÚBitBltrk   r   Úcapture_roi_bytesr   r    r!   r"   r#   r$   r%   r&   ÚDeleteObjectÚassert_called_once_withÚDeleteDCÚassert_called_onceÚ	ReleaseDC)r   Úmock_win32guiÚmock_win32uiÚmock_hwnd_dcÚmock_mfc_dcÚmock_save_dcÚmock_bitmapr¿   ro   r+   rp   r.   s               r0   Útest_gdi_handles_cleanup_safetyrÓ   ¥   sÉ  € õ ÑÔ€Få‘K”K€MÝ‘;”;€Là€LÝ‘+”+€KÝ‘;”;€LÝ‘+”+€KØ)/€KÔÔ&à'3€MÔÔ$Ø3>€LÔ#Ô0Ø2>€KÔ"Ô/Ø-8€LÔÔ*õ '3Ð3RÑ&SÔ&S€LÔÔ#å	Ð>ÀÑ	NÔ	Nð 	Lð 	LÝ	Ð=¸|Ñ	LÔ	Lð	Lð 	Là×&Ò&¨D°R¸CÀCÈCÐ&ÑPÔPˆØÐˆs�dˆ{ÐÐÐÕÔÐÐÐÐˆs�dÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð 	Ô"×:Ò:¸6ÑBÔBÐBØÔ×0Ò0Ñ2Ô2Ð2ØÔ×/Ò/Ñ1Ô1Ð1ØÔ×7Ò7¸¸lÑKÔKÐKð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð 	Lð 	Ls7   Â<HÃD%G>Ç2HÇ>H	ÈHÈH	ÈHÈHÈHc                  óò  — t          ¦   «         } |                      ddi¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}}| 
                    d¦  «        }||dz            }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚d
x}x}}|                      ddi¦  «        }
d}||
v }|s—t          j        d|fd||
f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        nddœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}}|
 
                    d¦  «        }|
|dz            }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚d
x}x}}|                      ddddœ¦  «        }d}||v}|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd	|iz  }t          t          j	        |¦  «        ¦  «        ‚d
x}}d
S )uk   
    Kiá»ƒm tra truyá»�n cá»� --max-hp <N> trong CoreController vá»›i cáº£ max_hp vÃ  expected_max_hp.
    r   iÜ  ú--max-hp©Úin©z%(py1)s in %(py3)sÚcmd1©r…   rZ   r[   r   Nrz   Ú1500r   ©z%(py1)s == %(py4)s©r…   r9   úassert %(py6)sr:   Úmax_hpi˜  Úcmd2Ú2200r   F)rß   r   Úoptical_inject_max_hp©únot in©z%(py1)s not in %(py3)sÚcmd3)r
   Ú	build_cmdr   r    r$   r!   r"   r#   r%   r&   Úindex)ÚccrÙ   Ú@py_assert0ro   rp   r.   Úidx1r-   Ú@py_format5rr   rà   Úidx2ræ   s                r0   Ú)test_core_controller_and_gui_max_hp_flagsrî   Ê   s  € õ 
Ñ	Ô	€Bð �<Š<Ð*¨DÐ1Ñ2Ô2€DØÐˆ:˜ÐÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÕÔˆ:ÑÔÐÕÔÑÔÐÐÕÔ˜ÑÔÐÕÔ˜ÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ�:Š:�jÑ!Ô!€DØ��q‘Œ>Ð#˜VÐ#ˆ>˜VÒ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ>˜VÐ#Ñ#Ô#Õ#Ô#ˆ>Ñ#Ô#Õ#Ô#˜VÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð �<Š<˜ 4Ð(Ñ)Ô)€DØÐˆ:˜ÐÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÕÔˆ:ÑÔÐÕÔÑÔÐÐÕÔ˜ÑÔÐÕÔ˜ÑÔÐÐÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ�:Š:�jÑ!Ô!€DØ��q‘Œ>Ð#˜VÐ#ˆ>˜VÒ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ>˜VÐ#Ñ#Ô#Õ#Ô#ˆ>Ñ#Ô#Õ#Ô#˜VÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð �<Š< 1¸ÐUZÐ[Ð[Ñ\Ô\€DØÐ!ˆ:˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ:˜TÐ!Ñ!Ô!Õ!Ô!ˆ:Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!r2   c                  óø  — ddl m}  t          j        | d¦  «        5  t          j        | dddi¬¦  «        5   | ¦   «         }	 |                     ¦   «          d}t          ||¦  «        }|sÓd	d
t          j        ¦   «         v st          j	        t
          ¦  «        rt          j
        t
          ¦  «        nd
dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }d}||u}|sªt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}d}t          ||¦  «        }|sÓd	d
t          j        ¦   «         v st          j	        t
          ¦  «        rt          j
        t
          ¦  «        nd
dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}t          ||¦  «        }|sÓd	d
t          j        ¦   «         v st          j	        t
          ¦  «        rt          j
        t
          ¦  «        nd
dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j        }|j        }||k    }|sèt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚dx}x}}|j                             dd¦  «         |j                             dd¦  «         |                     ¦   «         }|j        }d} ||¦  «        }d}||k    }|sÐt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }d d!|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}|j        }d"} ||¦  «        }d}||k    }|sÐt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }d d!|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}d#}t          ||¦  «        }|sÓd	d
t          j        ¦   «         v st          j	        t
          ¦  «        rt          j
        t
          ¦  «        nd
dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}}|j                             d$¦  «        }d%}||v }|s—t          j        d&|fd'||f¦  «        t          j
        |¦  «        d(t          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        nd(d)œz  }d*d+|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}dd,lm}m}  |d- |d.d/d0d0¬1¦  «        ¬2¦  «        }|                     |¦  «         |                     ¦   «          |j                             d$¦  «        }g }d3}||v }|}|sd4}||v }|}|�sXt          j        d&|fd5||f¦  «        t          j
        |¦  «        d6t          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        nd6d7œz  }d8d|iz  }|                     |¦  «         |s‹t          j        d&|fd9||f¦  «        t          j
        |¦  «        d6t          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        nd6d:œz  }d;d<|iz  }|                     |¦  «         t          j        |d=¦  «        i z  }d>d?|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}|                     ¦   «          n# |                     ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )@uG   Kiá»ƒm tra tÃ­ch há»£p OpticalHPSensor vÃ  badge vÃ o ControlCenterApp.r   ©ÚControlCenterAppÚ_save_user_settingsÚ_load_user_settingsr   ÚAutorS   Úoptical_sensorú5assert %(py5)s
{%(py5)s = %(py0)s(%(py1)s, %(py3)s)
}ÚhasattrÚapp©r   r…   rZ   r   N©úis not)z:%(py2)s
{%(py2)s = %(py0)s.optical_sensor
} is not %(py5)sr   r   r   Úentry_expected_max_hpÚentry_max_hpr   )z_%(py2)s
{%(py2)s = %(py0)s.entry_expected_max_hp
} == %(py6)s
{%(py6)s = %(py4)s.entry_max_hp
})r   r   r9   r:   r`   r;   ÚendÚ1850i:  ©zI%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.get
}(%(py4)s)
} == %(py9)sÚcfg©r   r   r9   r:   r†   r‡   rˆ   rß   Úlbl_hp_sensor_badgeÚtextz
HP Sensor:rÖ   rØ   Ú
badge_textrÚ   r[   r   ©ÚCoreTelemetrySnapshotÚPlayerTelemetryTrV   é´   rB   ©Ú
current_hprß   Úcurrent_manaÚmax_mana©Ú	is_onlineÚplayerú
MEMORY RPMõ   Lá»†CH©z%(py3)s in %(py5)sÚbadge©rZ   r   ú%(py7)s©z%(py10)s in %(py12)s©r<   Úpy12ú%(py14)sÚpy14rz   úassert %(py17)sÚpy17)Ú!src.assistant_tool.control_centerrñ   r   ÚobjectÚupdater÷   r!   r"   r   r#   r$   r%   r&   rõ   r    rü   rý   ÚdeleteÚinsertÚ_collect_configÚgetr  ÚcgetÚ"src.assistant_tool.core_shm_bridger  r  Ú_on_telemetry_snapshotr±   Ú_format_boolopÚ
on_closing)rñ   rø   ro   r,   r.   r+   r-   r/   rI   rr   rs   r  ru   rJ   r£   rv   r  rê   rp   r  r  Úsnapr  rK   rM   Ú@py_format13Ú@py_format15rO   Ú@py_format18s                                r0   Ú2test_control_center_optical_sensor_gui_integrationr.  á   s¢  € àBÐBÐBÐBÐBÐBå	ŒÐ&Ð(=Ñ	>Ô	>ð &ð &Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hð&ð &àÐÑ Ô ˆð#	Ø�JŠJ‰LŒLˆLð !1Ð1•7˜3Ð 0Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1•7Ñ1Ô1Ð1Õ1Ô1•7Ñ1Ô1Ð1Ð1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1˜3Ñ1Ô1Ð1Õ1Ô1˜3Ñ1Ô1Ð1Ð1Õ1Ô1Ð 0Ñ1Ô1Õ1Ô1Ð1Ñ1Ô1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1ØÔ%Ð1¨TÐ1Ð%¨TÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð%¨TÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1�3Ñ1Ô1Ð1Õ1Ô1�3Ñ1Ô1Ð1Ð1Õ1Ô1Ð%Ñ1Ô1Õ1Ô1¨TÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð !8Ð8•7˜3Ð 7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8•7Ñ8Ô8Ð8Õ8Ô8•7Ñ8Ô8Ð8Ð8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8˜3Ñ8Ô8Ð8Õ8Ô8˜3Ñ8Ô8Ð8Ð8Õ8Ô8Ð 7Ñ8Ô8Õ8Ô8Ð8Ñ8Ô8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ø .Ð/•7˜3 Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/•7Ñ/Ô/Ð/Õ/Ô/•7Ñ/Ô/Ð/Ð/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/˜3Ñ/Ô/Ð/Õ/Ô/˜3Ñ/Ô/Ð/Ð/Õ/Ô/ Ñ/Ô/Õ/Ô/Ð/Ñ/Ô/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ØÔ,Ð@°Ô0@Ð@Ð,Ð0@Ò@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð,Ð0@Ð@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�3Ñ@Ô@Ð@Õ@Ô@�3Ñ@Ô@Ð@Ð@Õ@Ô@Ð,Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@°Ñ@Ô@Ð@Õ@Ô@°Ñ@Ô@Ð@Ð@Õ@Ô@Ð0@Ñ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@àÔ%×,Ò,¨Q°Ñ6Ô6Ð6ØÔ%×,Ò,¨Q°Ñ7Ô7Ð7à×%Ò%Ñ'Ô'ˆCØ”7Ð5Ð,Ð5�7�7Ð,Ñ-Ô-Ð5°Ð5Ð-°Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð-°Ð5Ñ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5�3Ñ5Ô5Ð5Õ5Ô5�3Ñ5Ô5Ð5Ð5Õ5Ô5�7Ñ5Ô5Õ5Ô5Ð,Ñ5Ô5Õ5Ô5Ð-Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø”7Ð,˜8Ð,�7�7˜8Ñ$Ô$Ð,¨Ð,Ð$¨Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð$¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,�3Ñ,Ô,Ð,Õ,Ô,�3Ñ,Ô,Ð,Ð,Õ,Ô,�7Ñ,Ô,Õ,Ô,˜8Ñ,Ô,Õ,Ô,Ð$Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð !6Ð6•7˜3Ð 5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6•7Ñ6Ô6Ð6Õ6Ô6•7Ñ6Ô6Ð6Ð6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6˜3Ñ6Ô6Ð6Õ6Ô6˜3Ñ6Ô6Ð6Ð6Õ6Ô6Ð 5Ñ6Ô6Õ6Ô6Ð6Ñ6Ô6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6ØÔ0×5Ò5°fÑ=Ô=ˆJØÐ-�< :Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-�< :Ð-Ñ-Ô-Õ-Ô-�<Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô- :Ñ-Ô-Ð-Õ-Ô- :Ñ-Ô-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-ð bÐaÐaÐaÐaÐaÐaÐaØ(Ð(ØØ&�°#¸cÐPSÐ^aÐbÑbÔbðñ ô ˆDð ×&Ò& tÑ,Ô,Ð,Ø�JŠJ‰LŒLˆLØÔ+×0Ò0°Ñ8Ô8ˆEØ=Ð=�<Ð=�< 5Ð(Ð=Ð=Ð=Ð=Ð=¨HÐ=¨H¸Ð,=Ð=Ð=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=�< 5Ð=Ñ=Ô=Õ=Ô=�<Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô= 5Ñ=Ô=Ð=Õ=Ô= 5Ñ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=¨H¸Ð=Ñ=Ô=Õ=Ô=¨HÑ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=¸Ñ=Ô=Ð=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Ð=×=Ò=Ð=Ñ=Ô=Ð=Õ=Ô=Ð=Ð=Ñ=Ô=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=à�NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐðM&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &sM   œk/¶kÁij1êkê1këkëk/ëk	ëk/ëk	ëk/ë/k3ë6k3c                  óÔ  — ddl m}   | ¦   «         }g }d}||u}|}|sd}||u }|}|�sXt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd	|iz  }	|                     |	¦  «         |s‹t          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }
dd|
iz  }|                     |¦  «         t          j	        |d¦  «        i z  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}t          d¬¦  «        }|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd	|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}x}}t          dgdz  ¦  «        }t          j        } ||¦  «        }d}||u }|�st          j        d
|fd||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        d œz  }d!d"|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}}t          j        }d} ||¦  «        }d}||u }|sÚt          j        d
|fd#||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}t#          dgdz  ¦  «        }d'|d(<   d'|d)<   t          j        }t          |¦  «        } ||¦  «        }d*}||u }|�s`t          j        d
|fd+||f¦  «        dt	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        ndt          j        |¦  «        d,t	          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nd,d-t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd-t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d.œz  }d/d0|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}t          g d1¢d2z  ¦  «        }t%          j        |d3d4¬5¦  «        5  t%          j        |d6d7¬5¦  «        5  t%          j        |d8|¬5¦  «        5  t%          j        |d9|¬5¦  «        5 }|                     d4d¬:¦  «        \  }}}|                     d4d;d<d=d=¦  «         d} || k    }|s—t          j        d|fd>|| f¦  «        d?t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd?t          j        | ¦  «        d@œz  }!dAdB|!iz  }t          t          j        |¦  «        ¦  «        ‚dx}} d} || k    }|s—t          j        dC|fdD|| f¦  «        dEt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndEt          j        | ¦  «        d@œz  }!dAdB|!iz  }t          t          j        |¦  «        ¦  «        ‚dx}} ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )Fu¹   
    Kiá»ƒm tra gáº¯n Desktop tÆ°Æ¡ng tÃ¡c vÃ  cÆ¡ cháº¿ fallback PrintWindow vá»›i PW_RENDERFULLCONTENT
    khi BitBlt tráº£ vá»� áº£nh Ä‘en hoáº·c khi á»©ng dá»¥ng cháº¡y ngáº§m.
    r   )Úattach_to_default_desktopNrú   )z%(py2)s is not %(py5)sÚdesk)r   r   r  r   r6   )z%(py9)s is %(py12)s)r†   r  r  r  rz   r  r  éë  r   é   r   )z<%(py2)s
{%(py2)s = %(py0)s.PW_RENDERFULLCONTENT
} == %(py5)sr   r   r   )z5%(py2)s
{%(py2)s = %(py0)s.PW_CLIENTONLY
} == %(py5)si�_ T)zR%(py5)s
{%(py5)s = %(py2)s
{%(py2)s = %(py0)s.is_all_black
}(%(py3)s)
} is %(py8)sr   Ú	black_buf)r   r   rZ   r   r;   re   r<   )zR%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.is_all_black
}(%(py4)s)
} is %(py9)sr  r‡   rˆ   rE   é@   rB   F)zq%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_all_black
}(%(py6)s
{%(py6)s = %(py3)s(%(py4)s)
})
} is %(py11)sr¬   Únon_black_buf)r   r   rZ   r9   r:   r;   rˆ   rf   r=   )r@   r5   r4   r   iäW  Úfind_poe2_windowrU   rS   rm   )r   rl   rV   rV   rÇ   Úcapture_roi_printwindow)r½   r   r   rl   rV   rW   r€   rY   r[   r   )ú>)z%(py0)s > %(py3)sr   )Ú$src.assistant_tool.optical_hp_sensorr0  r   r    r!   r"   r#   r$   r±   r(  r%   r&   r   ÚPW_RENDERFULLCONTENTÚPW_CLIENTONLYr¬   Úis_all_blackÚ	bytearrayr   r  Úread_hprÉ   )"r0  r1  r+   r,   r-   rê   rM   Ú@py_assert10r.   r/   r+  r,  rO   r-  r   r4  rJ   rq   rs   rt   rI   ru   r£   rv   r6  rK   rN   Úmock_pw_bytesÚmock_pwr   r€   r~   ro   rp   s"                                     r0   Ú0test_desktop_attachment_and_printwindow_fallbackrC    sx  € ð
 OÐNÐNÐNÐNÐNð %Ð$Ñ&Ô&€DØ+Ð+�tÐ+ˆ4�tÐÐ+Ð+Ð+Ð+Ð+ tÐ+˜t t˜|Ð+Ð+Ð+Ð+Ñ+Õ+Ô+Ð+Ð+Ð+Ð+ˆ4�tÐ+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ4Ñ+Ô+Ð+Õ+Ô+ˆ4Ñ+Ô+Ð+Ð+Õ+Ô+�tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Ð+×+Ò+Ð+Ñ+Ô+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+˜t tÐ+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+˜tÑ+Ô+Ð+Õ+Ô+˜tÑ+Ô+Ð+Ð+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Ð+×+Ò+Ð+Ñ+Ô+Ð+Õ+Ô+Ð+Ð+Ñ+Ô+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ð+å¨SÐ1Ñ1Ô1€FØÔ&Ð+¨!Ð+Ð&¨!Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð&¨!Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆ6Ñ+Ô+Ð+Õ+Ô+ˆ6Ñ+Ô+Ð+Ð+Õ+Ô+Ð&Ñ+Ô+Õ+Ô+¨!Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔÐ$ 1Ð$Ð 1Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð 1Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Õ$Ô$ˆ6Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ 1Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$õ �q�c˜]Ñ+Ñ,Ô,€IÝÔ'Ð:Ð'Ð'¨	Ñ2Ô2Ð:°dÐ:Ð2°dÐ:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:Ð2°dÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:�?Ñ:Ô:Ð:Õ:Ô:�?Ñ:Ô:Ð:Ð:Õ:Ô:Ð'Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:¨	Ñ:Ô:Ð:Õ:Ô:¨	Ñ:Ô:Ð:Ð:Õ:Ô:Ð2Ñ:Ô:Õ:Ô:°dÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ÝÔ'Ð5¨Ð5Ð'Ð'¨Ñ-Ô-Ð5°Ð5Ð-°Ð5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð-°Ð5Ñ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5�?Ñ5Ô5Ð5Õ5Ô5�?Ñ5Ô5Ð5Ð5Õ5Ô5Ð'Ñ5Ô5Õ5Ô5¨Ñ5Ô5Õ5Ô5Ð-Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ý˜q˜c ]Ñ3Ñ4Ô4€MØ€M�"ÑØ€M�#ÑÝÔ'ÐF­¨mÑ(<Ô(<ÐFÐ'Ð'Ð(<Ñ=Ô=ÐFÀÐFÐ=ÀÐFÐFÐFÑFÕFÔFÐFÐFÐFÐFÐ=ÀÐFÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔF�?ÑFÔFÐFÕFÔF�?ÑFÔFÐFÐFÕFÔFÐ'ÑFÔFÐFÕFÔFÑFÔFÐFÐFÕFÔF­ÑFÔFÐFÕFÔF­ÑFÔFÐFÐFÐFÕFÔFÑFÔFÐFÐFÕFÔF¨mÑFÔFÐFÕFÔF¨mÑFÔFÐFÐFÕFÔFÐ(<ÑFÔFÕFÔFÐ=ÑFÔFÕFÔFÀÑFÔFÐFÐFÑFÐFÐFÐFÐFÐFÑFÐFÕFÕFÔFÐFÑFÔFÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFõ Ð+Ð+Ð+¨yÑ9Ñ:Ô:€MÝ	Œ�fÐ0¸uÐ	EÑ	EÔ	Eð ð Ý	Œ�f˜oÐ<OÐ	PÑ	PÔ	Pðð å	Œ�fÐ1À	Ð	JÑ	JÔ	Jðð õ 
Œ�fÐ7ÀmÐ	TÑ	TÔ	Tðð Y`Ø Ÿ.š.¨eÀS˜.ÑIÔI‰ˆˆS�%Ø×'Ò'¨¨r°3¸¸SÑAÔAÐAØÐˆs�cŠzÐÐÐÕÔÐÐÐÐˆs�cÐÑÔÐÕÔÑÔÐÐÕÔˆsÑÔÐÕÔˆsÑÔÐÐÕÔ�cÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØˆˆs�QŠwˆˆˆ�Œˆˆˆˆˆs�Qˆ‰Œˆ�Œ‰Œˆˆ�Œˆs‰Œˆ�Œˆs‰Œˆˆ�Œ�Q‰Œˆˆ‰ˆˆˆˆˆ‰ˆ��Œˆ‰Œ‰Œˆˆˆˆˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÝeÝeÝ4d.ÞE?d	äd.ädäd.ädäd.ä"eä.d2ä2eä5d2ä6eä9eåe		å	eåe		åeåe!å$e!c                  óˆ,  — ddl m}  ddlm}m} t          j        | d¦  «        5  t          j        | dddi¬¦  «        5   | ¦   «         }	 |                     ¦   «          |                     ¦   «         }|j	        }d} ||¦  «        }d}||k    }	|	sÐt          j        d	|	fd
||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}	}|j	        }d} ||¦  «        }d}||k    }	|	sÐt          j        d	|	fd
||f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}	} |d |dddd¬¦  «        ¬¦  «        }|                     |¦  «         |                     ¦   «          |j                             d¦  «        }|j                             d¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}d}||v}|s—t          j        d |fd!||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}g }d"}||v }|}|sd#}||v }|}|�sXt          j        d|fd$||f¦  «        t          j        |¦  «        d%t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%d&œz  }d'd(|iz  }|                     |¦  «         |s‹t          j        d|fd)||f¦  «        t          j        |¦  «        d%t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d-¦  «        i z  }d.d/|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}g }d0}||v }|}|sd#}||v }|}|�sXt          j        d|fd$||f¦  «        t          j        |¦  «        d%t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%d&œz  }d'd(|iz  }|                     |¦  «         |s‹t          j        d|fd)||f¦  «        t          j        |¦  «        d%t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d-¦  «        i z  }d.d/|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}} |d |d1dd2d¬¦  «        ¬¦  «        }|                     |¦  «         |                     ¦   «          |j                             d¦  «        }|j                             d¦  «        }d3}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d4t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd4dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d4t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd4dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        d5t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd5dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}|j                             dd6¦  «         |j                             dd7¦  «         |                     ¦   «          |                     ¦   «         }|j	        }d} ||¦  «        }d}||k    }	|	sÐt          j        d	|	fd
||f¦  «        d8t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}	}|j	        }d} ||¦  «        }d}||k    }	|	sÐt          j        d	|	fd
||f¦  «        d8t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }
dd|
iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}	} |d |d9d:d2d¬¦  «        ¬¦  «        }|                     |¦  «         |                     ¦   «          |j                             d¦  «        } |j                             d¦  «        }!d;}|| v }|s—t          j        d|fd|| f¦  «        t          j        |¦  «        d<t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd<dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}g }d}|| v }|}|sd#}|| v }|}|�sXt          j        d|fd$|| f¦  «        t          j        |¦  «        d<t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd<d&œz  }d'd(|iz  }|                     |¦  «         |s‹t          j        d|fd)|| f¦  «        t          j        |¦  «        d<t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd<d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d-¦  «        i z  }d.d/|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}g }d}||!v }|}|sd#}||!v }|}|�sXt          j        d|fd$||!f¦  «        t          j        |¦  «        d=t          j        ¦   «         v st          j        |!¦  «        rt          j        |!¦  «        nd=d&œz  }d'd(|iz  }|                     |¦  «         |s‹t          j        d|fd)||!f¦  «        t          j        |¦  «        d=t          j        ¦   «         v st          j        |!¦  «        rt          j        |!¦  «        nd=d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d-¦  «        i z  }d.d/|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}} |d |dddd¬¦  «        ¬¦  «        }"|                     |"¦  «         |                     ¦   «          |j                             d¦  «        }#|j                             d¦  «        }$d}||#v }|s—t          j        d|fd||#f¦  «        t          j        |¦  «        d>t          j        ¦   «         v st          j        |#¦  «        rt          j        |#¦  «        nd>dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}d}||#v}|s—t          j        d |fd!||#f¦  «        t          j        |¦  «        d>t          j        ¦   «         v st          j        |#¦  «        rt          j        |#¦  «        nd>dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}g }d?}||$v }|}|sd#}||$v }|}|�sXt          j        d|fd$||$f¦  «        t          j        |¦  «        d@t          j        ¦   «         v st          j        |$¦  «        rt          j        |$¦  «        nd@d&œz  }d'd(|iz  }|                     |¦  «         |s‹t          j        d|fd)||$f¦  «        t          j        |¦  «        d@t          j        ¦   «         v st          j        |$¦  «        rt          j        |$¦  «        nd@d*œz  }d+d,|iz  }|                     |¦  «         t          j        |d-¦  «        i z  }d.d/|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}t9          ¦   «         }%|%                     dAdBi¦  «        }&dC}||&v}|s—t          j        d |fd!||&f¦  «        t          j        |¦  «        dDt          j        ¦   «         v st          j        |&¦  «        rt          j        |&¦  «        ndDdœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}|%                     ddBdEœ¦  «        }'dC}||'v}|s—t          j        d |fd!||'f¦  «        t          j        |¦  «        dFt          j        ¦   «         v st          j        |'¦  «        rt          j        |'¦  «        ndFdœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}|%                     ddi¦  «        }(dC}||(v }|s—t          j        d|fd||(f¦  «        t          j        |¦  «        dGt          j        ¦   «         v st          j        |(¦  «        rt          j        |(¦  «        ndGdœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}}|(                     dC¦  «        })|(|)d-z            }d7}||k    }|slt          j        d	|fdH||f¦  «        t          j        |¦  «        t          j        |¦  «        dIœz  }*dJdK|*iz  }+t!          t          j        |+¦  «        ¦  «        ‚dx}x}}|                     ¦   «          n# |                     ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )Lu  
    Kiá»ƒm tra xá»­ lÃ½ cÃ¡c trÆ°á»�ng há»£p sá»‘ rÃ¡c tá»« Shared Memory (2/250, 125/0, 2/256):
    - Máº·c Ä‘á»‹nh Auto-Detect: Zero User Input, max_hp Ä‘Æ°á»£c game cáº­p nháº­t tá»± Ä‘á»™ng.
      Chá»‰ khi max_hp <= 0 má»›i Ä‘Ã¡nh dáº¥u UNVERIFIED. Khi max_hp > 0 thÃ¬ VERIFIED (AUTO-DETECTED).
    - Khi ngÆ°á»�i dÃ¹ng chá»§ Ä‘á»™ng gÃµ sá»‘ ghi Ä‘Ã¨ (Manual Override): Náº¿u max_hp != expected_max_hp -> UNVERIFIED.
    - CoreController khÃ´ng truyá»�n --max-hp á»Ÿ cháº¿ Ä‘á»™ Auto, chá»‰ truyá»�n khi cÃ³ Manual Override > 0.
    r   rð   r  rò   ró   r   rô   rS   r   r   Úcfg_defaultr  r‡   rˆ   Nrß   TéÂ  r2  rB   r
  r  r  z	450 / 491rÖ   rØ   Úhp_text_autorÚ   r[   r   Ú
UNVERIFIEDrã   rå   zAUTO-DETECTEDr  r  Úbadge_text_autor  r  r   r  r  r  r  rz   r  r  r  é}   rF   z125 / 0Úhp_text_zeroÚbadge_text_zerorþ   Ú491Ú
cfg_manualr3  éú   z2 / 250Úhp_text_250Úbadge_text_250Ú
hp_text_okÚVERIFIEDÚbadge_text_okrâ   FrÕ   Úcmd_auto©r   râ   Úcmd_auto_explicitÚcmd_overriderÜ   rÝ   rÞ   r:   ) r  rñ   r&  r  r  r   r  r   r#  r$  r   r    r!   r"   r#   r$   r%   r&   r'  Úlbl_hpr%  r  r±   r(  rý   r!  r"  Ú_on_expected_hp_changedr
   rç   rè   r)  ),rñ   r  r  rø   rE  r+   r-   rI   ru   rJ   r£   rv   Úsnap_auto_validrG  rI  rê   ro   rp   r.   r,   rK   rM   r/   r+  r,  rO   r-  Úsnap_garbage_zerorK  rL  rN  Úsnap_garbage_250rP  rQ  Úsnap_verifiedrR  rT  ré   rU  rW  rX  Úidxrì   rr   s,                                               r0   Ú3test_control_center_shm_unverified_mismatch_warningr`  2  sK  € ð CÐBÐBÐBÐBÐBØYÐYÐYÐYÐYÐYÐYÐYå	ŒÐ&Ð(=Ñ	>Ô	>ð Zð ZÝ	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hðZð ZàÐÑ Ô ˆðW	Ø�JŠJ‰LŒLˆLð ×-Ò-Ñ/Ô/ˆKØ”?Ð:Ð#4Ð:�?�?Ð#4Ñ5Ô5Ð:¸Ð:Ð5¸Ò:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð5¸Ð:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:�;Ñ:Ô:Ð:Õ:Ô:�;Ñ:Ô:Ð:Ð:Õ:Ô:�?Ñ:Ô:Õ:Ô:Ð#4Ñ:Ô:Õ:Ô:Ð5Ñ:Ô:Õ:Ô:¸Ñ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø”?Ð1 8Ð1�?�? 8Ñ,Ô,Ð1°Ð1Ð,°Ò1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð,°Ð1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1�;Ñ1Ô1Ð1Õ1Ô1�;Ñ1Ô1Ð1Ð1Õ1Ô1�?Ñ1Ô1Õ1Ô1 8Ñ1Ô1Õ1Ô1Ð,Ñ1Ô1Õ1Ô1°Ñ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð 4Ð3ØØ&�°#¸cÐPSÐ^aÐbÑbÔbðñ ô ˆOð ×&Ò& Ñ7Ô7Ð7Ø�JŠJ‰LŒLˆLàœ:Ÿ?š?¨6Ñ2Ô2ˆLØ!Ô5×:Ò:¸6ÑBÔBˆOØÐ.�; ,Ð.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.�; ,Ð.Ñ.Ô.Õ.Ô.�;Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô. ,Ñ.Ô.Ð.Õ.Ô. ,Ñ.Ô.Ð.Ð.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.ØÐ3�< |Ð3Ð3Ð3Ð3Õ3Ô3Ð3Ð3Ð3Ð3�< |Ð3Ñ3Ô3Õ3Ô3�<Ñ3Ô3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3 |Ñ3Ô3Ð3Õ3Ô3 |Ñ3Ô3Ð3Ð3Ð3Ð3Ñ3Ð3Ð3Ð3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3ØTÐT�?ÐT�? oÐ5ÐTÐTÐTÐTÐT¸ÐT¸À_Ð9TÐTÐTÐTÐTÑTÕTÔTÐTÐTÐTÐT�? oÐTÑTÔTÕTÔT�?ÑTÔTÐTÕTÔTÑTÔTÐTÐTÕTÔT oÑTÔTÐTÕTÔT oÑTÔTÐTÐTÐTÐTÑTÐTÐTÐTÐTÐTÑTÐTÐT×TÒTÐTÑTÔTÐTÐTÐTÕTÔTÐTÐTÐTÐT¸À_ÐTÑTÔTÕTÔT¸ÑTÔTÐTÕTÔTÑTÔTÐTÐTÕTÔTÀ_ÑTÔTÐTÕTÔTÀ_ÑTÔTÐTÐTÐTÐTÑTÐTÐTÐTÐTÐTÑTÐTÐT×TÒTÐTÑTÔTÐTÕTÔTÐTÐTÑTÔTÐTÑTÐTÐTÐTÐTÐTÑTÐTÕTÕTÔTÐTÑTÔTÑTÔTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTÐTØQÐQ�<ÐQ�< ?Ð2ÐQÐQÐQÐQÐQ°hÐQ°hÀ/Ð6QÐQÐQÐQÐQÑQÕQÔQÐQÐQÐQÐQ�< ?ÐQÑQÔQÕQÔQ�<ÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQ ?ÑQÔQÐQÕQÔQ ?ÑQÔQÐQÐQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÐQ×QÒQÐQÑQÔQÐQÐQÐQÕQÔQÐQÐQÐQÐQ°hÀ/ÐQÑQÔQÕQÔQ°hÑQÔQÐQÕQÔQÑQÔQÐQÐQÕQÔQÀ/ÑQÔQÐQÕQÔQÀ/ÑQÔQÐQÐQÐQÐQÑQÐQÐQÐQÐQÐQÑQÐQÐQ×QÒQÐQÑQÔQÐQÕQÔQÐQÐQÑQÔQÐQÑQÐQÐQÐQÐQÐQÑQÐQÕQÕQÔQÐQÑQÔQÑQÔQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQð !6Ð 5ØØ&�°#¸aÈbÐ[^Ð_Ñ_Ô_ð!ñ !ô !Ðð ×&Ò&Ð'8Ñ9Ô9Ð9Ø�JŠJ‰LŒLˆLàœ:Ÿ?š?¨6Ñ2Ô2ˆLØ!Ô5×:Ò:¸6ÑBÔBˆOØÐ,�9 Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,�9 Ð,Ñ,Ô,Õ,Ô,�9Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô, Ñ,Ô,Ð,Õ,Ô, Ñ,Ô,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,ØÐ/�< <Ð/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/�< <Ð/Ñ/Ô/Õ/Ô/�<Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/ <Ñ/Ô/Ð/Õ/Ô/ <Ñ/Ô/Ð/Ð/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ØÐ2�< ?Ð2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2�< ?Ð2Ñ2Ô2Õ2Ô2�<Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2 ?Ñ2Ô2Ð2Õ2Ô2 ?Ñ2Ô2Ð2Ð2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2ð Ô×#Ò# A uÑ-Ô-Ð-ØÔ×#Ò# A uÑ-Ô-Ð-Ø×'Ò'Ñ)Ô)Ð)à×,Ò,Ñ.Ô.ˆJØ”>Ð;Ð"3Ð;�>�>Ð"3Ñ4Ô4Ð;¸Ð;Ð4¸Ò;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð4¸Ð;Ñ;Ô;Ð;Õ;Ô;Ñ;Ô;Ð;Ð;Õ;Ô;�:Ñ;Ô;Ð;Õ;Ô;�:Ñ;Ô;Ð;Ð;Õ;Ô;�>Ñ;Ô;Õ;Ô;Ð"3Ñ;Ô;Õ;Ô;Ð4Ñ;Ô;Õ;Ô;¸Ñ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ø”>Ð2 (Ð2�>�> (Ñ+Ô+Ð2¨sÐ2Ð+¨sÒ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð+¨sÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2�:Ñ2Ô2Ð2Õ2Ô2�:Ñ2Ô2Ð2Ð2Õ2Ô2�>Ñ2Ô2Õ2Ô2 (Ñ2Ô2Õ2Ô2Ð+Ñ2Ô2Õ2Ô2¨sÑ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð  5Ð4ØØ&�°!¸CÈbÐ[^Ð_Ñ_Ô_ð ñ  ô  Ðð ×&Ò&Ð'7Ñ8Ô8Ð8Ø�JŠJ‰LŒLˆLàœ*Ÿ/š/¨&Ñ1Ô1ˆKØ Ô4×9Ò9¸&ÑAÔAˆNØÐ+�9 Ð+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+�9 Ð+Ñ+Ô+Õ+Ô+�9Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ Ñ+Ô+Ð+Õ+Ô+ Ñ+Ô+Ð+Ð+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+ØIÐI�<ÐI�< ;Ð.ÐIÐIÐIÐIÐI°(ÐI°(¸kÐ2IÐIÐIÐIÐIÑIÕIÔIÐIÐIÐIÐI�< ;ÐIÑIÔIÕIÔI�<ÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔI ;ÑIÔIÐIÕIÔI ;ÑIÔIÐIÐIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÐI×IÒIÐIÑIÔIÐIÐIÐIÕIÔIÐIÐIÐIÐI°(¸kÐIÑIÔIÕIÔI°(ÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔI¸kÑIÔIÐIÕIÔI¸kÑIÔIÐIÐIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÐI×IÒIÐIÑIÔIÐIÕIÔIÐIÐIÑIÔIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØOÐO�<ÐO�< >Ð1ÐOÐOÐOÐOÐO°XÐO°XÀÐ5OÐOÐOÐOÐOÑOÕOÔOÐOÐOÐOÐO�< >ÐOÑOÔOÕOÔO�<ÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔO >ÑOÔOÐOÕOÔO >ÑOÔOÐOÐOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÐO×OÒOÐOÑOÔOÐOÐOÐOÕOÔOÐOÐOÐOÐO°XÀÐOÑOÔOÕOÔO°XÑOÔOÐOÕOÔOÑOÔOÐOÐOÕOÔOÀÑOÔOÐOÕOÔOÀÑOÔOÐOÐOÐOÐOÑOÐOÐOÐOÐOÐOÑOÐOÐO×OÒOÐOÑOÔOÐOÕOÔOÐOÐOÑOÔOÐOÑOÐOÐOÐOÐOÐOÑOÐOÕOÕOÔOÐOÑOÔOÑOÔOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOÐOð 2Ð1ØØ&�°#¸cÐPSÐ^aÐbÑbÔbðñ ô ˆMð ×&Ò& }Ñ5Ô5Ð5Ø�JŠJ‰LŒLˆLàœŸš¨Ñ0Ô0ˆJØÔ3×8Ò8¸Ñ@Ô@ˆMØÐ,�; *Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,�; *Ð,Ñ,Ô,Õ,Ô,�;Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô, *Ñ,Ô,Ð,Õ,Ô, *Ñ,Ô,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,ØÐ1�< zÐ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1�< zÐ1Ñ1Ô1Õ1Ô1�<Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1 zÑ1Ô1Ð1Õ1Ô1 zÑ1Ô1Ð1Ð1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1ØKÐK�:ÐK�: Ð.ÐKÐKÐKÐKÐK°(ÐK°(¸mÐ2KÐKÐKÐKÐKÑKÕKÔKÐKÐKÐKÐK�: ÐKÑKÔKÕKÔK�:ÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔK ÑKÔKÐKÕKÔK ÑKÔKÐKÐKÐKÐKÑKÐKÐKÐKÐKÐKÑKÐKÐK×KÒKÐKÑKÔKÐKÐKÐKÕKÔKÐKÐKÐKÐK°(¸mÐKÑKÔKÕKÔK°(ÑKÔKÐKÕKÔKÑKÔKÐKÐKÕKÔK¸mÑKÔKÐKÕKÔK¸mÑKÔKÐKÐKÐKÐKÑKÐKÐKÐKÐKÐKÑKÐKÐK×KÒKÐKÑKÔKÐKÕKÔKÐKÐKÑKÔKÐKÑKÐKÐKÐKÐKÐKÑKÐKÕKÕKÔKÐKÑKÔKÑKÔKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKÐKõ  Ñ!Ô!ˆBØ—|’|Ð%<¸eÐ$DÑEÔEˆHØÐ-�: XÐ-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-�: XÐ-Ñ-Ô-Õ-Ô-�:Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô- XÑ-Ô-Ð-Õ-Ô- XÑ-Ô-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-à "§¢ÀÐbgÐ-hÐ-hÑ iÔ iÐØÐ6�:Ð%6Ð6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6�:Ð%6Ð6Ñ6Ô6Õ6Ô6�:Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6Ð%6Ñ6Ô6Ð6Õ6Ô6Ð%6Ñ6Ô6Ð6Ð6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6àŸ<š<Ð):¸CÐ(@ÑAÔAˆLØÐ-�: Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-�: Ð-Ñ-Ô-Õ-Ô-�:Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô- Ñ-Ô-Ð-Õ-Ô- Ñ-Ô-Ð-Ð-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ø×$Ò$ ZÑ0Ô0ˆCØ  a¡Ô(Ð1¨EÐ1Ð(¨EÒ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð(¨EÐ1Ñ1Ô1Õ1Ô1Ð(Ñ1Ô1Õ1Ô1¨EÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1à�NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐðuZð Zð Zñ Zô Zð Zð Zð Zð Zð Zð Zøøøð Zð Zð Zð Zð Zð Zð Zñ Zô Zð Zð Zð Zð Zð Zð Zð Zøøøð Zð Zð Zð Zð Zð Zse   ¤AX7¾AXÁ
AVAW9ÁW$AXÁW9AXÁXAXÁXAX7ÁXAX#	ÁX#AX7ÁX&AX#	ÁX'AX7ÁX7AX;ÁX>AX;c            
      ó¼  — t          ¦   «         } d}t          j        |¦  «        \  }}}d}||k    }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}}d
}||k    }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}}d}||k    }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}}|  
                    |¬¦  «        }	|	j        }d}
||
u }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
||
k    }|sªt          j        d|fd ||
f¦  «        dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        dœz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}}
|	j        }d}
d!}|
|z  }||z
  }t'          |¦  «        }d"}||k     }|�s+t          j        d#|fd$||f¦  «        d%t	          j        ¦   «         v st          j        t&          ¦  «        rt          j        t&          ¦  «        nd%dt	          j        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        t          j        |
¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d&œz  }d'd(|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}
x}x}x}x}x}}t          j        d)¦  «        \  }}d*}||k    }d+}||k    }|r|s¬t          j        d,||fd-|||f¦  «        t          j        |¦  «        d.t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd.t          j        |¦  «        d/œz  }d0d1|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}}d2}||k    }d3}||k    }|r|s¬t          j        d,||fd-|||f¦  «        t          j        |¦  «        d4t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd4t          j        |¦  «        d/œz  }d0d1|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}}t           j        }d5}d6}d} ||||¦  «        }d}||u }|�s t          j        d|fd7||f¦  «        d8t	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d9œz  }d:d;|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}x}x}x}}t           j        }d}d<}d<} ||||¦  «        }d=}||u }|�s t          j        d|fd7||f¦  «        d8t	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d9œz  }d:d;|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}x}x}x}}t           j        }d>}d>}d>} ||||¦  «        }d}||u }|�s t          j        d|fd?||f¦  «        d8t	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d9œz  }d:d;|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}x}x}x}}t           j        }d}d5}d5} ||||¦  «        }d=}||u }|�s t          j        d|fd?||f¦  «        d8t	          j        ¦   «         v st          j        t           ¦  «        rt          j        t           ¦  «        nd8t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d9œz  }d:d;|iz  }t          t          j	        |¦  «        ¦  «        ‚d	x}x}x}x}x}x}}d	S )@u£   
    Kiá»ƒm tra nháº­n diá»‡n text Life: 495/503, Shield: 105/200, Mana: 344/344
    vÃ  hÃ m Æ°á»›c tÃ­nh sinh tá»“n theo cáº¥p Ä‘á»™ nhÃ¢n váº­t trong POE2.
    z+Life: 495/503
Shield: 105/200
Mana: 344/344)éï  é÷  r   rW   ÚhprY   r[   r   N)éi   rE   Úes)éX  rg  Úmana©Ú	mock_textTr6   ©z3%(py2)s
{%(py2)s = %(py0)s.is_detected
} is %(py5)sÚvitalsr   r   r   rb  ©z2%(py2)s
{%(py2)s = %(py0)s.current_hp
} == %(py5)src  ©z.%(py2)s
{%(py2)s = %(py0)s.max_hp
} == %(py5)sre  ©z6%(py2)s
{%(py2)s = %(py0)s.current_shield
} == %(py5)srE   ©z2%(py2)s
{%(py2)s = %(py0)s.max_shield
} == %(py5)srg  ©z4%(py2)s
{%(py2)s = %(py0)s.current_mana
} == %(py5)s©z0%(py2)s
{%(py2)s = %(py0)s.max_mana
} == %(py5)sç     p@gü©ñÒMbP?r©   )zh%(py11)s
{%(py11)s = %(py0)s((%(py3)s
{%(py3)s = %(py1)s.hp_ratio
} - (%(py5)s / %(py7)s)))
} < %(py14)srƒ   )r   r…   rZ   r   r   rˆ   r  zassert %(py16)sÚpy16é   i�  iX  )r‚   r‚   )z%(py1)s <= %(py4)sz%(py4)s <= %(py6)sÚest_hp)r…   r9   r:   r`   r;   rO  rF  Úest_manarC   rŠ   )zh%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.is_blue_pixel
}(%(py4)s, %(py6)s, %(py8)s)
} is %(py13)sr   r8   r>   r?   r5   Fr4   )zh%(py10)s
{%(py10)s = %(py2)s
{%(py2)s = %(py0)s.is_text_pixel
}(%(py4)s, %(py6)s, %(py8)s)
} is %(py13)s)r   Úparse_vitals_textr   r    r!   r"   r#   r$   r%   r&   Údetect_vitals_from_screenÚis_detectedr  rß   Úcurrent_shieldÚ
max_shieldr  r  Úhp_ratiorƒ   Úestimate_vitals_from_levelÚis_blue_pixelÚis_text_pixel)r   Úraw_textrd  rf  rh  ro   r+   rp   r.   rl  r,   r-   r/   rq   ru   rK   r@  Ú@py_assert13rL   r,  Ú@py_format17rv  rw  rê   rI   rr   rs   rJ   rM   rN   rO   s                                  r0   Ú/test_optical_vitals_text_parsing_and_estimationr„  š  s›  € õ
 ÑÔ€Fð ?€HÝ"Ô4°XÑ>Ô>�L€BˆˆDàÐˆ2�ÒÐÐÐÕÔÐÐÐÐˆ2�ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔ�ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ2�ÒÐÐÐÕÔÐÐÐÐˆ2�ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔ�ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ4�:ÒÐÐÐÕÔÐÐÐÐˆ4�:ÐÑÔÐÕÔÑÔÐÐÕÔˆ4ÑÔÐÕÔˆ4ÑÔÐÐÕÔ�:ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð ×-Ò-¸Ð-ÑAÔA€FØÔÐ% Ð%Ð Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆ6Ñ%Ô%Ð%Õ%Ô%ˆ6Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô% Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÔÐ# Ð#Ð Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØŒ=Ð˜CÐˆ=˜CÒÐÐÐÕÔÐÐÐÐˆ=˜CÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÕÔˆ=ÑÔÕÔ˜CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔ Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆ6Ñ'Ô'Ð'Õ'Ô'ˆ6Ñ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÔÐ# Ð#Ð Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Õ#Ô#ˆ6Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØÔÐ% #Ð%Ð #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆ6Ñ%Ô%Ð%Õ%Ô%ˆ6Ñ%Ô%Ð%Ð%Õ%Ô%ÐÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ6Ñ!Ô!Ð!Õ!Ô!ˆ6Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒÐ7 #Ð7¨Ð7 #¨¡+Ð7ˆ +Ñ.Ð7�3Ð.Ñ/Ô/Ð7°%Ð7Ð/°%Ò7Ð7Ð7Ñ7Õ7Ô7Ð7Ð7Ð7Ð7Ð/°%Ð7Ñ7Ô7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7�3Ñ7Ô7Ð7Õ7Ô7�3Ñ7Ô7Ð7Ð7Ð7Õ7Ô7Ñ7Ô7Ð7Ð7Õ7Ô7ˆvÑ7Ô7Ð7Õ7Ô7ˆvÑ7Ô7Ð7Ð7Õ7Ô7ˆÑ7Ô7Õ7Ô7 #Ñ7Ô7Õ7Ô7¨Ñ7Ô7Õ7Ô7Ð/Ñ7Ô7Õ7Ô7°%Ñ7Ô7Ð7Ð7Ñ7Ð7Ð7Ð7Ð7Ð7Ñ7Ð7Õ7Õ7Ô7Ð7Ñ7Ô7Ñ7Ô7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7õ 'ÔAÀ"ÑEÔEÑ€FˆHØÐˆ3�&ÒÐ˜CÐ�&˜CÒÐÐÐÐÐÕÔÐÐÐÐÐˆ3�&˜CÐÑÔÕÔˆ3ÑÔÐÕÔÑÔÐÐÕÔ�&ÑÔÐÕÔ�&ÑÔÐÐÕÔ˜CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐØÐ!ˆ3�(Ò!Ð!˜cÐ!�(˜cÒ!Ð!Ð!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!Ð!ˆ3�(˜cÐ!Ñ!Ô!Õ!Ô!ˆ3Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!�(Ñ!Ô!Ð!Õ!Ô!�(Ñ!Ô!Ð!Ð!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!Ð!õ Ô(Ð=¨Ð=¨RÐ=°Ð=Ð(Ð(¨¨R°Ñ5Ô5Ð=¸Ð=Ð5¸Ð=Ð=Ð=Ñ=Õ=Ô=Ð=Ð=Ð=Ð=Ð5¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�?Ñ=Ô=Ð=Õ=Ô=�?Ñ=Ô=Ð=Ð=Õ=Ô=Ð(Ñ=Ô=Õ=Ô=¨Ñ=Ô=Õ=Ô=¨RÑ=Ô=Õ=Ô=°Ñ=Ô=Õ=Ô=Ð5Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ÝÔ(Ð>¨Ð>¨bÐ>°"Ð>Ð(Ð(¨¨b°"Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�?Ñ>Ô>Ð>Õ>Ô>�?Ñ>Ô>Ð>Ð>Õ>Ô>Ð(Ñ>Ô>Õ>Ô>¨Ñ>Ô>Õ>Ô>¨bÑ>Ô>Õ>Ô>°"Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>õ Ô(Ð?¨Ð?¨cÐ?°3Ð?Ð(Ð(¨¨c°3Ñ7Ô7Ð?¸4Ð?Ð7¸4Ð?Ð?Ð?Ñ?Õ?Ô?Ð?Ð?Ð?Ð?Ð7¸4Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�?Ñ?Ô?Ð?Õ?Ô?�?Ñ?Ô?Ð?Ð?Õ?Ô?Ð(Ñ?Ô?Õ?Ô?¨Ñ?Ô?Õ?Ô?¨cÑ?Ô?Õ?Ô?°3Ñ?Ô?Õ?Ô?Ð7Ñ?Ô?Õ?Ô?¸4Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ÝÔ(Ð>¨Ð>¨bÐ>°"Ð>Ð(Ð(¨¨b°"Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ñ>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>�?Ñ>Ô>Ð>Õ>Ô>�?Ñ>Ô>Ð>Ð>Õ>Ô>Ð(Ñ>Ô>Õ>Ô>¨Ñ>Ô>Õ>Ô>¨bÑ>Ô>Õ>Ô>°"Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>r2   c                  óÞ  — t          ¦   «         } |                      ddddd¬¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        d	t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd	t          j        |¦  «        d
œz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}g }d}||v }|}|rd}	|	|v }
|
}|�sXt          j        d|fd||f¦  «        t          j        |¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }| 
                    |¦  «         |r‹t          j        d|
fd|	|f¦  «        t          j        |	¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nddœz  }dd|iz  }| 
                    |¦  «         t          j        |d¦  «        i z  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}x}x}x}x}	}
|                      ddddd¬¦  «        \  }}d}||u }|s—t          j        d|fd||f¦  «        dt	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        d
œz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}d }||v }|s—t          j        d|fd!||f¦  «        t          j        |¦  «        d"t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd"d#œz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}|                      ddddd¬¦  «        \  }}d$}||u }|s—t          j        d|fd||f¦  «        d%t	          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd%t          j        |¦  «        d
œz  }dd|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}dS )&u  
    TÃ�I HIá»†N VÃ€ KHáº®C PHá»¤C Lá»–I THá»°C Táº¾ TRÃŠN MÃ€N HÃŒNH Cá»¦A USER:
    C++ Core báº¯t nháº§m Ã´ nhá»› rÃ¡c 778/778 trong khi mÃ n hÃ¬nh lÃ  495/503.
    HÃ m check_memory_discrepancy pháº£i phÃ¡t hiá»‡n chÃ­nh xÃ¡c sá»± lá»‡ch láº¡c nÃ y!
    é
  rb  rc  çÚLŸ±µ}ï?)Ú
memory_curÚ
memory_maxÚoptical_curÚoptical_maxÚoptical_ratioTr6   r¾   Úhas_errrY   r[   r   NÚ778Ú503rÖ   r  Úmsgr  r  r   r  r  r  r  r   r  r  rO  r�   Úhas_err2u   Lá»‡ch tá»‰ lá»‡rØ   Úmsg2rÚ   FÚhas_err3)r   Úcheck_memory_discrepancyr   r    r!   r"   r#   r$   r%   r&   r±   r(  )r   r�  r�  ro   r+   rp   r.   r,   rê   rK   rM   r/   r+  r,  rO   r-  r‘  r’  r“  r¢   s                       r0   Ú(test_check_memory_discrepancy_778_vs_503r•  Â  s’  € õ ÑÔ€Fð ×2Ò2ØØØØØ!ð 3ñ ô �L€GˆSð Ðˆ7�dˆ?ÐÐÐÕÔÐÐÐÐˆ7�dÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�dÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØ(Ð(ˆ5Ð(ˆ5�Cˆ<Ð(Ð(Ð(Ð(Ð(˜EÐ(˜E S˜LÐ(Ð(Ð(Ð(Ñ(Õ(Ô(Ð(Ð(Ð(Ð(ˆ5�CÐ(Ñ(Ô(Õ(Ô(ˆ5Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(�CÑ(Ô(Ð(Õ(Ô(�CÑ(Ô(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(˜E SÐ(Ñ(Ô(Õ(Ô(˜EÑ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô( SÑ(Ô(Ð(Õ(Ô( SÑ(Ô(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(×(Ò(Ð(Ñ(Ô(Ð(Õ(Ô(Ð(Ð(Ñ(Ô(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð ×4Ò4ØØØØØð 5ñ ô �N€Hˆdð Ðˆ8�tÐÐÐÐÕÔÐÐÐÐˆ8�tÐÑÔÐÕÔÑÔÐÐÕÔˆ8ÑÔÐÕÔˆ8ÑÔÐÐÕÔ�tÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐ%Ð Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð Ð%Ñ%Ô%Õ%Ô%ÐÑ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô% Ñ%Ô%Ð%Õ%Ô% Ñ%Ô%Ð%Ð%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%ð ×1Ò1ØØØØØ!ð 2ñ ô �K€Hˆað Ðˆ8�uÐÐÐÐÕÔÐÐÐÐˆ8�uÐÑÔÐÕÔÑÔÐÐÕÔˆ8ÑÔÐÕÔˆ8ÑÔÐÐÕÔ�uÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr2   c                  ó¼  — t          ¦   «         } |                      ddddœ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndd	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}| 
                    d¦  «        }||dz            }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚dx}x}}d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndd	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}| 
                    d¦  «        }
||
dz            }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚dx}x}}ddlm}  |ddddd¬¦  «        }t          d¦  «        5 }t          ¦   «         }||j        _        ||_        |                      dddœ¦  «        }d}||v }|s—t          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndd	œz  }d
d|iz  }t          t          j	        |¦  «        ¦  «        ‚dx}}| 
                    d¦  «        }||dz            }d}||k    }|slt          j        d|fd||f¦  «        t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }	t          t          j	        |	¦  «        ¦  «        ‚dx}x}}ddd¦  «         dS # 1 swxY w Y   dS )u±   
    Kiá»ƒm tra CoreController: khi á»Ÿ cháº¿ Ä‘á»™ Auto, tá»± Ä‘á»™ng truyá»�n --max-hp 503
    khi nháº­n Ä‘Æ°á»£c detected_max_hp tá»« cáº¥u hÃ¬nh hoáº·c Optical Sensor.
    rô   rc  rg  )r   Údetected_max_hpÚdetected_max_manarÕ   rÖ   rØ   Úcmd_auto_detectedrÚ   r[   r   Nrz   r�  r   rÜ   rÝ   rÞ   r:   ú
--max-manaÚ344r   ©ÚOpticalVitalsrb  T)r  rß   r  r  rz  ú2src.assistant_tool.core_controller.OpticalHPSensorrV  Úcmd_live_detect)r
   rç   r   r    r$   r!   r"   r#   r%   r&   rè   r:  r�  r   r   ry  rT   )ré   r™  rê   ro   rp   r.   r_  r-   rì   rr   Úidx_mr�  Úmock_vitalsÚmock_sensor_clsÚ	mock_instrŸ  rí   s                    r0   Ú1test_core_controller_auto_detect_max_hp_injectionr¤  ë  sŸ  € õ
 
Ñ	Ô	€Bð ŸšØ!ØØ ð&ð &ñ ô Ðð
 Ð*ˆ:Ð*Ð*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*ˆ:Ð*Ð*Ñ*Ô*Õ*Ô*ˆ:Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*Ð*Ñ*Ô*Ð*Õ*Ô*Ð*Ñ*Ô*Ð*Ð*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ø
×
!Ò
! *Ñ
-Ô
-€CØ˜S 1™WÔ%Ð.¨Ð.Ð%¨Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð%¨Ð.Ñ.Ô.Õ.Ô.Ð%Ñ.Ô.Õ.Ô.¨Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.àÐ,ˆ<Ð,Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆ<Ð,Ð,Ñ,Ô,Õ,Ô,ˆ<Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,Ð,Ñ,Ô,Ð,Õ,Ô,Ð,Ñ,Ô,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ø×#Ò# LÑ1Ô1€EØ˜U Q™YÔ'Ð0¨5Ð0Ð'¨5Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð'¨5Ð0Ñ0Ô0Õ0Ô0Ð'Ñ0Ô0Õ0Ô0¨5Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð CÐBÐBÐBÐBÐBØ�-¨3°sÈÐWZÐhlÐmÑmÔm€KÝ	ÐCÑ	DÔ	Dð 2ÈÝ‘K”Kˆ	Ø;Fˆ	Ô+Ô8Ø'0ˆÔ$àŸ,š,¸6Ð\`Ð'aÐ'aÑbÔbˆØÐ,ˆz˜_Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,ˆz˜_Ð,Ñ,Ô,Õ,Ô,ˆzÑ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,˜_Ñ,Ô,Ð,Õ,Ô,˜_Ñ,Ô,Ð,Ð,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ø×$Ò$ ZÑ0Ô0ˆØ˜t a™xÔ(Ð1¨EÐ1Ð(¨EÒ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð(¨EÐ1Ñ1Ô1Õ1Ô1Ð(Ñ1Ô1Õ1Ô1¨EÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   ËE9QÑQÑQc                  óv  — ddl m}  ddlm}m} ddlm} t          j        | d¦  «        5  t          j        | dddi¬	¦  «        5   | ¦   «         }	 | 	                    ¦   «          d
}t          ||¦  «        }|sÓddt          j        ¦   «         v st          j        t          ¦  «        rt          j        t          ¦  «        nddt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }t!          t          j        |¦  «        ¦  «        ‚dx}}d}|j        }|j        }	d}
 |	|
¦  «        }||v }|sãt          j        d|fd||f¦  «        t          j        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |	¦  «        t          j        |
¦  «        t          j        |¦  «        dœz  }dd|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}	x}
} |dddddd¬¦  «        }t          j        |j        d|¬	¦  «        5  t-          ¦   «         }||_        |                     ¦   «          |j        }|j        } |¦   «         }d}
||
k    }|sÐt          j        d|fd ||
f¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |
¦  «        d!œz  }d"d#|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}}
|j                             ddd¦  «         ddd¦  «         n# 1 swxY w Y   ||j        _         |d |d$d$d%d%¬&¦  «        ¬'¦  «        }|                     |¦  «         | 	                    ¦   «          |j                             d¦  «        }|j                              d¦  «        }g }d(}||v }|}|sd)}||v }|}|�sXt          j        d|fd*||f¦  «        t          j        |¦  «        d+t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd+d,œz  }d-d.|iz  }| !                    |¦  «         |s‹t          j        d|fd/||f¦  «        t          j        |¦  «        d+t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd+d0œz  }d1d2|iz  }| !                    |¦  «         t          j"        |d3¦  «        i z  }d4d5|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}g }d(}||v }|}|sd)}||v }|}|�sXt          j        d|fd*||f¦  «        t          j        |¦  «        d6t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd6d,œz  }d-d.|iz  }| !                    |¦  «         |s‹t          j        d|fd/||f¦  «        t          j        |¦  «        d6t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd6d0œz  }d1d2|iz  }| !                    |¦  «         t          j"        |d3¦  «        i z  }d4d5|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}g }d7}||v }|}|sd7}||v }|}|�sXt          j        d|fd*||f¦  «        t          j        |¦  «        d6t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd6d,œz  }d-d.|iz  }| !                    |¦  «         |s‹t          j        d|fd/||f¦  «        t          j        |¦  «        d+t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd+d0œz  }d1d2|iz  }| !                    |¦  «         t          j"        |d3¦  «        i z  }d4d5|iz  }t!          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}| #                    ¦   «          n# | #                    ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )8u.  
    Kiá»ƒm tra ControlCenterApp:
    1. CÃ³ nÃºt báº¥m 'âš¡ QuÃ©t Vitals'.
    2. Click quÃ©t Vitals cáº­p nháº­t Ã´ entry_max_hp thÃ nh 503 vÃ  gá»�i send_recalibrate_vitals.
    3. Khi RAM gá»­i sá»‘ rÃ¡c 778/778 trong khi optical vitals lÃ  503 -> hiá»ƒn thá»‹ cáº£nh bÃ¡o 'Lá»†CH Bá»˜ NHá»š'.
    r   rð   r  rœ  rò   ró   r   rô   rS   Úbtn_auto_detect_vitalsrö   r÷   rø   rù   Nu   QuÃ©t Vitalsr  rÖ   )zx%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.btn_auto_detect_vitals
}.cget
}(%(py9)s)
}©r…   rZ   r   r   r†   rˆ   rf   r=   rb  rc  rg  TÚocr)r  rß   r  r  rz  Údetection_methodry  r�  r   ©zd%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.entry_max_hp
}.get
}()
} == %(py9)sr  r‡   rˆ   r†  rB   r
  r  r  rH  r  Úhp_textr  r  r   r  r  r  r  rz   r  r  r  rŽ  )$r  rñ   r&  r  r  r:  r�  r   r  r   r÷   r!   r"   r   r#   r$   r%   r&   r¦  r%  r    rõ   r   Úcore_bridgeÚ_on_auto_detect_vitals_clickedrý   r$  Úsend_recalibrate_vitalsrÉ   Úlast_detected_vitalsr'  rY  r  r±   r(  r)  )rñ   r  r  r�  rø   ro   r,   r.   rê   rq   ru   r@  rv   rN   r¡  Úmock_bridger+   r-   rI   rJ   r£   Úsnap_garbage_778r«  r  rK   rM   r/   r+  r,  rO   r-  s                                  r0   Ú9test_control_center_quick_calibrate_and_discrepancy_alertr²    sæ  € ð CÐBÐBÐBÐBÐBØYÐYÐYÐYÐYÐYÐYÐYØBÐBÐBÐBÐBÐBå	ŒÐ&Ð(=Ñ	>Ô	>ð $ð $Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hð$ð $àÐÑ Ô ˆð!	Ø�JŠJ‰LŒLˆLð !9Ð9•7˜3Ð 8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9•7Ñ9Ô9Ð9Õ9Ô9•7Ñ9Ô9Ð9Ð9Ð9Õ9Ô9Ñ9Ô9Ð9Ð9Õ9Ô9˜3Ñ9Ô9Ð9Õ9Ô9˜3Ñ9Ô9Ð9Ð9Õ9Ô9Ð 8Ñ9Ô9Õ9Ô9Ð9Ñ9Ô9Ð9Ð9Ñ9Ð9Õ9Õ9Ô9Ð9Ñ9Ô9Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ø!ÐL SÔ%?ÐLÐ%?Ô%DÐLÀVÐLÐ%DÐ%DÀVÑ%LÔ%LÐL�>Ð%LÐLÐLÐLÐLÕLÔLÐLÐLÐLÐL�>Ð%LÐLÑLÔLÕLÔL�>ÑLÔLÐLÕLÔLÑLÔLÐLÐLÕLÔL SÑLÔLÐLÕLÔL SÑLÔLÐLÐLÕLÔLÐ%?ÑLÔLÕLÔLÐ%DÑLÔLÕLÔLÀVÑLÔLÕLÔLÐ%LÑLÔLÐLÐLÑLÐLÐLÐLÐLÐLÑLÐLÕLÕLÔLÐLÑLÔLÑLÔLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLð (˜-°3¸sÐQTÐ_bÐptð  HMð  Nñ  Nô  NˆKÝ”˜cÔ0Ð2MÐ\gÐhÑhÔhð Yð Yå'™kœk�Ø"-�”à×2Ò2Ñ4Ô4Ð4ØÔ'Ð6Ð'Ô+Ð6Ð+Ð+Ñ-Ô-Ð6°Ð6Ð-°Ò6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð-°Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6�sÑ6Ô6Ð6Õ6Ô6�sÑ6Ô6Ð6Ð6Õ6Ô6Ð'Ñ6Ô6Õ6Ô6Ð+Ñ6Ô6Õ6Ô6Ð-Ñ6Ô6Õ6Ô6°Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØÔ3×KÒKÈCÐQTÐVWÑXÔXÐXðYð Yð Yñ Yô Yð Yð Yð Yð Yð Yð Yøøøð Yð Yð Yð Yð 7BˆCÔÔ3Ø4Ð4ØØ&�°#¸cÐPSÐ^aÐbÑbÔbð ñ  ô  Ðð ×&Ò&Ð'7Ñ8Ô8Ð8Ø�JŠJ‰LŒLˆLà”j—o’o fÑ-Ô-ˆGØÔ0×5Ò5°fÑ=Ô=ˆJØAÐA�8ÐA�8˜wÐ&ÐAÐAÐAÐAÐA¨,ÐA¨,¸'Ð*AÐAÐAÐAÐAÑAÕAÔAÐAÐAÐAÐA�8˜wÐAÑAÔAÕAÔA�8ÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA˜wÑAÔAÐAÕAÔA˜wÑAÔAÐAÐAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÐAÐAÕAÔAÐAÐAÐAÐA¨,¸'ÐAÑAÔAÕAÔA¨,ÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔA¸'ÑAÔAÐAÕAÔA¸'ÑAÔAÐAÐAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÐA×AÒAÐAÑAÔAÐAÕAÔAÐAÐAÑAÔAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAØGÐG�8ÐG�8˜zÐ)ÐGÐGÐGÐGÐG¨\ÐG¨\¸ZÐ-GÐGÐGÐGÐGÑGÕGÔGÐGÐGÐGÐG�8˜zÐGÑGÔGÕGÔG�8ÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔG˜zÑGÔGÐGÕGÔG˜zÑGÔGÐGÐGÐGÐGÑGÐGÐGÐGÐGÐGÑGÐGÐG×GÒGÐGÑGÔGÐGÐGÐGÕGÔGÐGÐGÐGÐG¨\¸ZÐGÑGÔGÕGÔG¨\ÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔG¸ZÑGÔGÐGÕGÔG¸ZÑGÔGÐGÐGÐGÐGÑGÐGÐGÐGÐGÐGÑGÐGÐG×GÒGÐGÑGÔGÐGÕGÔGÐGÐGÑGÔGÐGÑGÐGÐGÐGÐGÐGÑGÐGÕGÕGÔGÐGÑGÔGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGØ:Ð:�5Ð:�5˜JÐ&Ð:Ð:Ð:Ð:Ð:¨%Ð:¨%°7Ð*:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:�5˜JÐ:Ñ:Ô:Õ:Ô:�5Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:˜JÑ:Ô:Ð:Õ:Ô:˜JÑ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:¨%°7Ð:Ñ:Ô:Õ:Ô:¨%Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:°7Ñ:Ô:Ð:Õ:Ô:°7Ñ:Ô:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:à�NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐðI$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $st   ªd.ÁdÁH>c0ÊEOÏc0ÏO Ï c0Ï#O Ï$S7c0ãdã0dädä
d.äd	äd.äd	äd.ä.d2ä5d2c            
      ó  — ddl m} m} ddlm} ddlm} ddlm} ddl	m
} ddlm}  |¦   «         } |d¦  «        } ||¬	¦  «        }	t          ¦   «         }
 ||||	|
¬
¦  «        }	 |                     ¦   «          d}t          ||¦  «        }|sÓddt!          j        ¦   «         v st%          j        t          ¦  «        rt%          j        t          ¦  «        nddt!          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        ndt%          j        |¦  «        t%          j        |¦  «        dœz  }t+          t%          j        |¦  «        ¦  «        ‚dx}} |dddddd¬¦  «        }t/          j        |j        d|¬¦  «        5  |                     ¦   «          |
j                             ddd¦  «         d}|j        }|j        }d} ||¦  «        }||v }|sãt%          j        d|fd||f¦  «        t%          j        |¦  «        dt!          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        ndt%          j        |¦  «        t%          j        |¦  «        t%          j        |¦  «        t%          j        |¦  «        dœz  }dd|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}ddd¦  «         n# 1 swxY w Y   ||j        _          | d |d d ddd!¬"¦  «        ¬#¦  «        }| !                    |¦  «         |                     ¦   «          |j"                             d¦  «        }|j                             d¦  «        }d$}||v }|s—t%          j        d|fd%||f¦  «        t%          j        |¦  «        d&t!          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        nd&d'œz  }d(d)|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}}d}||v }|s—t%          j        d|fd%||f¦  «        t%          j        |¦  «        d&t!          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        nd&d'œz  }d(d)|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}}d$}||v }|s—t%          j        d|fd%||f¦  «        t%          j        |¦  «        d*t!          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        nd*d'œz  }d(d)|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}}| #                    ¦   «          dS # | #                    ¦   «          w xY w)+uÑ   
    Kiá»ƒm tra OverlayHUD:
    1. Khi click vÃ o thanh mÃ¡u / nhÃ£n HP gá»�i _on_vitals_quick_set().
    2. Cáº£nh bÃ¡o hiá»ƒn thá»‹ rÃµ rÃ ng trÃªn HUD khi RAM (778) lá»‡ch mÃ n hÃ¬nh thá»±c táº¿ (503).
    r   r  ©ÚGoldTracker©Ú
LogWatcher©ÚMarketAdvisorrœ  ©Ú
OverlayHUDú	dummy.txt©Úgold_tracker©r¾  Úlog_watcherÚmarket_advisorr¬  Ú_on_vitals_quick_setrö   r÷   Úhudrù   Nrb  rc  rg  r‡  T)r  rß   r  r  r}  rz  ry  rS   r�  r  rÖ   ©zs%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.core_status_badge
}.cget
}(%(py9)s)
}r§  rf   r=   r†  g      Y@)r  rß   r  r  Úhp_percentager  r  rØ   Úhp_label_textrÚ   r[   r   Ústatus_text)$r&  r  r  Úsrc.assistant_tool.gold_trackerrµ  Úsrc.assistant_tool.log_watcherr·  Ú!src.assistant_tool.market_advisorr¹  r:  r�  Úsrc.assistant_tool.overlay_guir»  r   r   r÷   r!   r"   r   r#   r$   r%   r&   r   r  rõ   rÂ  r®  rÉ   Úcore_status_badger%  r    r¯  Ú_on_telemetry_updateÚhp_labelÚdestroy)r  r  rµ  r·  r¹  r�  r»  ÚgtÚlwÚmar°  rÃ  ro   r,   r.   r¡  rê   rq   ru   r@  rv   rN   Úsnap_778rÆ  rÇ  rp   s                             r0   Ú8test_overlay_hud_click_calibrate_and_discrepancy_warningrÔ  @  s¾  € ð ZÐYÐYÐYÐYÐYÐYÐYØ;Ð;Ð;Ð;Ð;Ð;Ø9Ð9Ð9Ð9Ð9Ð9Ø?Ð?Ð?Ð?Ð?Ð?ØBÐBÐBÐBÐBÐBØ9Ð9Ð9Ð9Ð9Ð9à	ˆ‰Œ€BØ	ˆ�KÑ	 Ô	 €BØ	ˆ BÐ	'Ñ	'Ô	'€BÝ‘+”+€Kà
ˆ* "°"ÀRÐU`Ð
aÑ
aÔ
a€CðØ�
Š
‰Œˆð 3Ð3�w�sÐ2Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�wÑ3Ô3Ð3Õ3Ô3�wÑ3Ô3Ð3Ð3Ð3Õ3Ô3Ñ3Ô3Ð3Ð3Õ3Ô3�sÑ3Ô3Ð3Õ3Ô3�sÑ3Ô3Ð3Ð3Õ3Ô3Ð2Ñ3Ô3Õ3Ô3Ð3Ñ3Ô3Ð3Ð3Ñ3Ð3Õ3Õ3Ô3Ð3Ñ3Ô3Ñ3Ô3Ð3Ð3Ð3Ð3Ð3à#�m¨s¸3ÈSÐ[^Ðitð  CGð  Hñ  Hô  HˆÝŒ\˜#Ô,Ð.IÐXcÐdÑdÔdð 	?ð 	?Ø×$Ò$Ñ&Ô&Ð&ØÔ/×GÒGÈÈSÐRSÑTÔTÐTØÐ>˜CÔ1Ð>Ð1Ô6Ð>°vÐ>Ð6Ð6°vÑ>Ô>Ð>�5Ð>Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>�5Ð>Ð>Ñ>Ô>Õ>Ô>�5Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>˜CÑ>Ô>Ð>Õ>Ô>˜CÑ>Ô>Ð>Ð>Õ>Ô>Ð1Ñ>Ô>Õ>Ô>Ð6Ñ>Ô>Õ>Ô>°vÑ>Ô>Õ>Ô>Ð>Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 3>ˆÔÔ/Ø(Ð(ØØ"�?¨c¸#ÈCÐZ]ÐmrÐsÑsÔsð
ñ 
ô 
ˆð 	× Ò  Ñ*Ô*Ð*Ø�
Š
‰Œˆàœ×)Ò)¨&Ñ1Ô1ˆØÔ+×0Ò0°Ñ8Ô8ˆØÐ(ˆx˜=Ð(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆx˜=Ð(Ñ(Ô(Õ(Ô(ˆxÑ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(˜=Ñ(Ô(Ð(Õ(Ô(˜=Ñ(Ô(Ð(Ð(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÐ%ˆu˜Ð%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆu˜Ð%Ñ%Ô%Õ%Ô%ˆuÑ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%˜Ñ%Ô%Ð%Õ%Ô%˜Ñ%Ô%Ð%Ð%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%ØÐ&ˆx˜;Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆx˜;Ð&Ñ&Ô&Õ&Ô&ˆxÑ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&˜;Ñ&Ô&Ð&Õ&Ô&˜;Ñ&Ô&Ð&Ð&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&à�Š‰Œˆˆˆøˆ�Š‰Œˆˆøøøs3   Á&D,U/ ÆEK!ËU/ Ë!K%Ë%U/ Ë(K%Ë)I0U/ Õ/Vc                  óê  — ddl m}   | ¦   «         }t          d¦  «        }ddl}|                     d|ddddddd¦	  «	         ||_        |                     d	d
¦  «        }d}||u }|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|                     d|d¦  «        d         }	d}|	|k    }|s—t          j        d|fd|	|f¦  «        dt          j
        ¦   «         v st          j        |	¦  «        rt          j        |	¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}|                     d|d¦  «        \  }
}}}d}|
|k    }|s—t          j        d|fd|
|f¦  «        dt          j
        ¦   «         v st          j        |
¦  «        rt          j        |
¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}d}||k    }|s—t          j        d|fd||f¦  «        d t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}dS )!uK   Kiá»ƒm tra CoreShmBridge.send_recalibrate_vitals Ä‘áº©y opCode 98 vÃ o SHM.r   )ÚCoreShmBridgei  @ Nz<QIIQQQl   OTªÉz i  rz   rc  rg  Tr6   r¾   ÚokrY   r[   r   z<Qé   r   rW   Úcmd_seqz<QIffi  0 iã  Úcmd_idéb   Úop_coders  Útarget_xg     €u@Útarget_y)r&  rÖ  r>  ÚstructÚ	pack_intoÚ_shmr®  r   r    r!   r"   r#   r$   r%   r&   Úunpack_from)rÖ  ÚbridgeÚmock_shmrß  r×  ro   r+   rp   r.   rÙ  rÚ  rÜ  rÝ  rÞ  s                 r0   Ú'test_shm_bridge_send_recalibrate_vitalsrå  q  sH  € à@Ð@Ð@Ð@Ð@Ð@àˆ]‰_Œ_€Få˜Ñ)Ô)€HØ€M€M€Mà
×Ò�Y ¨!Ð-?ÀÈQÐPQÐSTÐVWÑXÔXÐXØ€F„Kà	×	'Ò	'¨¨SÑ	1Ô	1€BØÐˆ2�ˆ:ÐÐÐÕÔÐÐÐÐˆ2�ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔ�ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð × Ò   x°Ñ4Ô4°QÔ7€GØÐˆ7�aŠ<ÐÐÐÕÔÐÐÐÐˆ7�aÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�aÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐð +1×*<Ò*<¸WÀhÐPXÑ*YÔ*YÑ'€FˆG�X˜xØÐˆ6�SŠ=ÐÐÐÕÔÐÐÐÐˆ6�SÐÑÔÐÕÔÑÔÐÐÕÔˆ6ÑÔÐÕÔˆ6ÑÔÐÐÕÔ�SÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ7�bŠ=ÐÐÐÕÔÐÐÐÐˆ7�bÐÑÔÐÕÔÑÔÐÐÕÔˆ7ÑÔÐÕÔˆ7ÑÔÐÐÕÔ�bÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ8�uÒÐÐÐÕÔÐÐÐÐˆ8�uÐÑÔÐÕÔÑÔÐÐÕÔˆ8ÑÔÐÕÔˆ8ÑÔÐÐÕÔ�uÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØÐˆ8�uÒÐÐÐÕÔÐÐÐÐˆ8�uÐÑÔÐÕÔÑÔÐÐÕÔˆ8ÑÔÐÕÔˆ8ÑÔÐÐÕÔ�uÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐr2   c                  ó%  ‡— ddl m}   | j        ddd¦  «        }t          d¦  «        Šˆfd„}t	          d|¬	¦  «        5  t          j        |¦  «        }d
}||u}|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d
x}}|j        }d}||u }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd ||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d!}||k    }	|	sªt          j        d|	fd"||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d!}||k    }	|	sªt          j        d|	fd#||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d$}||k    }	|	sªt          j        d|	fd%||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d$}||k    }	|	sªt          j        d|	fd&||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d'}||k    }	|	sªt          j        d|	fd(||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d)}||k    }	|	sªt          j        d|	fd*||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}d
d
d
¦  «         n# 1 swxY w Y   ˆfd+„}t	          d|¬	¦  «        5  t          j        |¦  «        }d
}||u}|s—t          j        d|fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d
x}}|j        }d}||u }	|	sªt          j        d|	fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d-}||k    }	|	sªt          j        d|	fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d-}||k    }	|	sªt          j        d|	fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d.}||k    }	|	sªt          j        d|	fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d.}||k    }	|	sªt          j        d|	fd||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d/}||k    }	|	sªt          j        d|	fd"||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d/}||k    }	|	sªt          j        d|	fd#||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d)}||k    }	|	sªt          j        d|	fd%||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d)}||k    }	|	sªt          j        d|	fd&||f¦  «        d,t          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd,t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}d
d
d
¦  «         d
S # 1 swxY w Y   d
S )0uI  
    Kiá»ƒm tra _detect_via_winocr:
    1. VÃ¹ng crop chuáº©n má»›i: Left (0, 0.65*h, 0.26*w, 0.88*h), Right (0.74*w, 0.66*h, w, 0.88*h).
    2. Nháº­n diá»‡n ngá»¯ nghÄ©a khi Life 1/1, Shield 2,843/2,843, Ward 826/826, Rage 45/50.
    3. CI Invariant: current_hp = 1, max_hp = 1.
    4. Fallback khi khÃ´ng cÃ³ nhÃ£n chá»¯.
    r   ©r   r{   ©ra   rb   ©r   r   r   ç      „@c              “   ó‚   •K  — t          ¦   «         }| j        d         ‰t          d¦  «        fv rd|_        nd|_        |S )Nr   çÍÌÌÌÌÌ„@z+Life: 1/1
Shield: 2,843/2,843
Ward: 826/826z+Spirit: 100/100
Mana: 350 / 350
Rage: 45/50©r   Úsizerc   r  ©ÚcropÚlangr¿   Úexpected_w_ls      €r0   Úfake_recognizezJtest_optical_sensor_winocr_semantic_regex_and_crop.<locals>.fake_recognize™  sC   øè è € Ý‰kŒkˆØŒ9�QŒ<˜L­#¨kÑ*:Ô*:Ð;Ð;Ð;ØFˆCŒHˆHàFˆCŒHØˆ
r2   úwinocr.recognize_pilrj   Nrú   ©z%(py0)s is not %(py3)srl  rY   r[   r   Tr6   rk  r   r   r   rz   r   rm  rn  é  ro  rp  é:  ©z4%(py2)s
{%(py2)s = %(py0)s.current_ward
} == %(py5)s©z0%(py2)s
{%(py2)s = %(py0)s.max_ward
} == %(py5)sé^  rq  rr  rB   ©z6%(py2)s
{%(py2)s = %(py0)s.current_spirit
} == %(py5)s©z2%(py2)s
{%(py2)s = %(py0)s.max_spirit
} == %(py5)sé-   ©z4%(py2)s
{%(py2)s = %(py0)s.current_rage
} == %(py5)srF   ©z0%(py2)s
{%(py2)s = %(py0)s.max_rage
} == %(py5)sc              “   óh   •K  — t          ¦   «         }| j        d         ‰k    rd|_        nd|_        |S )Nr   z510 / 510
80 / 80z340 / 340
50 / 50)r   rî  r  rï  s      €r0   Úfake_recognize_fallbackzStest_optical_sensor_winocr_semantic_regex_and_crop.<locals>.fake_recognize_fallback³  s6   øè è € Ý‰kŒkˆØŒ9�QŒ<˜<Ò'Ð'Ø+ˆCŒHˆHà+ˆCŒHØˆ
r2   Ú	vitals_fbiþ  éP   rh   )ÚPILr   r’   rc   r   r   Ú_detect_via_winocrr   r    r!   r"   r#   r$   r%   r&   rz  r  rß   r{  r|  Úcurrent_wardÚmax_wardr  r  Úcurrent_spiritÚ
max_spiritÚcurrent_rageÚmax_rage)r   Útest_imgró  rl  ro   r+   rp   r.   r,   r-   r/   r  r  rò  s                @r0   Ú2test_optical_sensor_winocr_semantic_regex_and_cropr  �  s;  ø€ ð ÐÐÐÐÐØˆuŒy˜ ¨iÑ8Ô8€HÝ�{Ñ#Ô#€Lðð ð ð ð õ 
Ð%°>Ð	BÑ	BÔ	Bð %ð %Ý Ô3°HÑ=Ô=ˆØ!Ð!ˆv˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆv˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!ØÔ!Ð) TÐ)Ð! TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð! TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Ð)Õ)Ô)Ð!Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÔ Ð% AÐ%Ð  AÒ%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%Ð  AÐ%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Ð%Õ%Ô%Ð Ñ%Ô%Õ%Ô% AÑ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØŒ}Ð! Ð!ˆ} Ò!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ} Ð!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Ð!Õ!Ô!ˆ}Ñ!Ô!Õ!Ô! Ñ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØÔ$Ð,¨Ð,Ð$¨Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð$¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆvÑ,Ô,Ð,Õ,Ô,ˆvÑ,Ô,Ð,Ð,Õ,Ô,Ð$Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ Ð( DÐ(Ð  DÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð  DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Ð(Õ(Ô(Ð Ñ(Ô(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÔ"Ð) cÐ)Ð" cÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð" cÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Ð)Õ)Ô)Ð"Ñ)Ô)Õ)Ô) cÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØŒÐ% #Ð%ˆ #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆ #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Ð%Õ%Ô%ˆÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÔ"Ð) cÐ)Ð" cÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð" cÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Ð)Õ)Ô)Ð"Ñ)Ô)Õ)Ô) cÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØŒÐ% #Ð%ˆ #Ò%Ð%Ð%Ð%Õ%Ô%Ð%Ð%Ð%Ð%ˆ #Ð%Ñ%Ô%Ð%Õ%Ô%Ñ%Ô%Ð%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Õ%Ô%ˆvÑ%Ô%Ð%Ð%Õ%Ô%ˆÑ%Ô%Õ%Ô% #Ñ%Ô%Ð%Ð%Ñ%Ð%Ð%Ð%Ð%Ð%Ñ%Ð%Õ%Õ%Ô%Ð%Ñ%Ô%Ñ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%Ð%ØÔ$Ð+¨Ð+Ð$¨Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð$¨Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Ð+Õ+Ô+Ð$Ñ+Ô+Õ+Ô+¨Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÔ Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÔ"Ð( bÐ(Ð" bÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð" bÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Ð(Õ(Ô(Ð"Ñ(Ô(Õ(Ô( bÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØŒÐ$ "Ð$ˆ "Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆ "Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆvÑ$Ô$Ð$Õ$Ô$ˆvÑ$Ô$Ð$Ð$Õ$Ô$ˆÑ$Ô$Õ$Ô$ "Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð$ð ð ð ð õ 
Ð%Ð3JÐ	KÑ	KÔ	Kð *ð *Ý#Ô6°xÑ@Ô@ˆ	Ø $Ð$ˆy Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$ˆy Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Õ$Ô$ˆyÑ$Ô$Ð$Ð$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$ØÔ$Ð,¨Ð,Ð$¨Ð,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð$¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Ð,Õ,Ô,Ð$Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ#Ð* sÐ*Ð# sÒ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð# sÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆyÑ*Ô*Ð*Õ*Ô*ˆyÑ*Ô*Ð*Ð*Õ*Ô*Ð#Ñ*Ô*Õ*Ô* sÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔÐ& 3Ð&Ð 3Ò&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð 3Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆyÑ&Ô&Ð&Õ&Ô&ˆyÑ&Ô&Ð&Ð&Õ&Ô&ÐÑ&Ô&Õ&Ô& 3Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÔ'Ð-¨2Ð-Ð'¨2Ò-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð'¨2Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆyÑ-Ô-Ð-Õ-Ô-ˆyÑ-Ô-Ð-Ð-Õ-Ô-Ð'Ñ-Ô-Õ-Ô-¨2Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÔ#Ð) rÐ)Ð# rÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð# rÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Ð)Õ)Ô)Ð#Ñ)Ô)Õ)Ô) rÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØÔ%Ð,¨Ð,Ð%¨Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð%¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Õ,Ô,ˆyÑ,Ô,Ð,Ð,Õ,Ô,Ð%Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ!Ð( SÐ(Ð! SÒ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð! SÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆyÑ(Ô(Ð(Õ(Ô(ˆyÑ(Ô(Ð(Ð(Õ(Ô(Ð!Ñ(Ô(Õ(Ô( SÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ØÔ'Ð-¨2Ð-Ð'¨2Ò-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð'¨2Ð-Ñ-Ô-Ð-Õ-Ô-Ñ-Ô-Ð-Ð-Õ-Ô-ˆyÑ-Ô-Ð-Õ-Ô-ˆyÑ-Ô-Ð-Ð-Õ-Ô-Ð'Ñ-Ô-Õ-Ô-¨2Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ØÔ#Ð) rÐ)Ð# rÒ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð# rÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Õ)Ô)ˆyÑ)Ô)Ð)Ð)Õ)Ô)Ð#Ñ)Ô)Õ)Ô) rÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s*   ¿jkëkëkë/]?AI;ÁI;AI?ÁJAI?c            	      óŒ  — t          ¦   «         } ddlm}  |ddddddd¬	¦  «        }t          d
¦  «        5 }t	          ¦   «         }||j        _        ||_        |                      ddi¦  «        }d}||v }|s—t          j	        d|fd||f¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j
        |¦  «        nddœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}}|                     d¦  «        }
||
dz            }d}||k    }|slt          j	        d|fd||f¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}d}||v }|s—t          j	        d|fd||f¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j
        |¦  «        nddœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}}|                     d¦  «        }||dz            }d}||k    }|slt          j	        d|fd||f¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}d}||v }|s—t          j	        d|fd||f¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j        |¦  «        rt          j
        |¦  «        nddœz  }dd|iz  }	t          t          j        |	¦  «        ¦  «        ‚dx}}|                     d¦  «        }||dz            }d}||k    }|slt          j	        d|fd||f¦  «        t          j
        |¦  «        t          j
        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}ddd¦  «         dS # 1 swxY w Y   dS ) uË   
    Kiá»ƒm tra CoreController:
    Khi max_hp == 0 (Auto), optical_inject_max_hp máº·c Ä‘á»‹nh True:
    Tá»± Ä‘á»™ng truyá»�n --max-hp, --max-mana, --max-es tá»« káº¿t quáº£ quÃ©t OpticalHPSensor.
    r   rœ  rb  rc  r@   rE   rg  T©r  rß   r{  r|  r  r  rz  rž  r   rô   rÕ   rÖ   rØ   ÚcmdrÚ   r[   r   Nrz   r�  r   rÜ   rÝ   rÞ   r:   rš  r›  ú--max-esÚ200)r
   r:  r�  r   r   ry  rT   rç   r   r    r$   r!   r"   r#   r%   r&   rè   )ré   r�  r¡  r¢  r£  r  rê   ro   rp   r.   Úidx_hpr-   rì   rr   Úidx_mpÚidx_ess                   r0   Ú6test_core_controller_auto_detect_optical_es_mana_flagsr  É  sg  € õ 
Ñ	Ô	€BØBÐBÐBÐBÐBÐBØ�-ØØØØØØØðñ ô €Kõ 
ÐCÑ	DÔ	Dð (ÈÝ‘K”Kˆ	Ø;Fˆ	Ô+Ô8Ø'0ˆÔ$ð �lŠlÐ-¨vÐ6Ñ7Ô7ˆØÐ ˆz˜SÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆz˜SÐ Ñ Ô Õ Ô ˆzÑ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˜SÑ Ô Ð Õ Ô ˜SÑ Ô Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ø—’˜:Ñ&Ô&ˆØ�6˜A‘:ŒÐ' %Ð'ˆ %Ò'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ %Ð'Ñ'Ô'Õ'Ô'ˆÑ'Ô'Õ'Ô' %Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àÐ"ˆ|˜sÐ"Ð"Ð"Ð"Õ"Ô"Ð"Ð"Ð"Ð"ˆ|˜sÐ"Ñ"Ô"Õ"Ô"ˆ|Ñ"Ô"Ð"Õ"Ô"Ñ"Ô"Ð"Ð"Õ"Ô"˜sÑ"Ô"Ð"Õ"Ô"˜sÑ"Ô"Ð"Ð"Ð"Ð"Ñ"Ð"Ð"Ð"Ð"Ð"Ñ"Ð"Õ"Õ"Ô"Ð"Ñ"Ô"Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ø—’˜<Ñ(Ô(ˆØ�6˜A‘:ŒÐ' %Ð'ˆ %Ò'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ %Ð'Ñ'Ô'Õ'Ô'ˆÑ'Ô'Õ'Ô' %Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àÐ ˆz˜SÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆz˜SÐ Ñ Ô Õ Ô ˆzÑ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˜SÑ Ô Ð Õ Ô ˜SÑ Ô Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ø—’˜:Ñ&Ô&ˆØ�6˜A‘:ŒÐ' %Ð'ˆ %Ò'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'ˆ %Ð'Ñ'Ô'Õ'Ô'ˆÑ'Ô'Õ'Ô' %Ñ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ð#(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   ¶O6P9Ð9P=Ñ P=c                  ó–
  — ddl m}  ddlm} ddlm} ddlm} ddlm	} ddl
m} t          j        | d¦  «        5  t          j        | d	d
di¬¦  «        5   | ¦   «         }	 |                     ¦   «           |¦   «         }t          j        |j        d|¬¦  «        5  ||j        _        |                     ¦   «         }|d         }	d}
|	|
k    }|slt%          j        d|fd|	|
f¦  «        t%          j        |	¦  «        t%          j        |
¦  «        dœz  }dd|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}	x}}
d}	|	|v }|s—t%          j        d|fd|	|f¦  «        t%          j        |	¦  «        dt/          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        nddœz  }dd|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}	}|d         }	d}
|	|
u }|slt%          j        d|fd|	|
f¦  «        t%          j        |	¦  «        t%          j        |
¦  «        dœz  }dd|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}	x}}
ddd¦  «         n# 1 swxY w Y    |d d!d"d#d$d$dd%¬&¦  «        }t          j        |j        d|¬¦  «        5  t5          ¦   «         }||_        |                     ¦   «          |j                             d!d$d#¦  «         ddd¦  «         n# 1 swxY w Y    |¦   «         } |d'¦  «        } ||¬(¦  «        }t5          ¦   «         } |||||¬)¦  «        }	 t          j        |j        d|¬¦  «        5  |                     ¦   «          |j                             d!d$d#¦  «         d*}	|j         }|j!        }d+} ||¦  «        }|	|v }|sãt%          j        d|fd,|	|f¦  «        t%          j        |	¦  «        d-t/          j        ¦   «         v st%          j        |¦  «        rt%          j        |¦  «        nd-t%          j        |¦  «        t%          j        |¦  «        t%          j        |¦  «        t%          j        |¦  «        d.œz  }d/d0|iz  }t+          t%          j        |¦  «        ¦  «        ‚dx}	x}x}x}x}}ddd¦  «         n# 1 swxY w Y   | "                    ¦   «          n# | "                    ¦   «          w xY w	 | #                    ¦   «          n# | #                    ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )1uH  
    Kiá»ƒm tra ControlCenterApp:
    1. _collect_config(): khÃ´ng cÃ²n sá»‘ cá»©ng 189, cÃ³ detected_max_es, optical_inject_max_hp lÃ  True.
    2. _on_auto_detect_vitals_clicked(): truyá»�n target_es sang send_recalibrate_vitals.
    3. overlay_gui._on_vitals_quick_set(): truyá»�n target_es sang send_recalibrate_vitals.
    r   rð   r´  r¶  r¸  rœ  rº  rò   ró   r   rô   rS   ry  r  r   rÜ   rÝ   rÞ   r:   NÚdetected_max_esrÖ   rØ   r  rÚ   r[   r   râ   Tr6   )z%(py1)s is %(py4)srb  rc  rB   rV   rg  Úwinocr_screen©r  rß   r{  r|  r  r  rz  r©  r¼  r½  r¿  z150 ESr  rÄ  rÃ  r§  rf   r=   )$r  rñ   rÈ  rµ  rÉ  r·  rÊ  r¹  r:  r�  rË  r»  r   r  r   rõ   r¯  r#  r   r    r$   r%   r&   r!   r"   r#   r   r¬  r­  r®  rÉ   rÂ  rÌ  r%  rÏ  r)  )rñ   rµ  r·  r¹  r�  r»  rø   Úempty_vitalsr  rê   r-   ro   rì   rr   rp   r.   r¡  r°  rÐ  rÑ  rÒ  Úmock_bridge_overlayrÃ  r,   rq   ru   r@  rv   rN   s                                r0   Ú<test_control_center_collect_config_and_target_es_calibrationr  î  sµ  € ð CÐBÐBÐBÐBÐBØ;Ð;Ð;Ð;Ð;Ð;Ø9Ð9Ð9Ð9Ð9Ð9Ø?Ð?Ð?Ð?Ð?Ð?ØBÐBÐBÐBÐBÐBØ9Ð9Ð9Ð9Ð9Ð9å	ŒÐ&Ð(=Ñ	>Ô	>ð -ð -Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hð-ð -àÐÑ Ô ˆð*	Ø�JŠJ‰LŒLˆLà(˜=™?œ?ˆLÝ”˜cÔ0Ð2MÐ\hÐiÑiÔið <ð <Ø:F�Ô"Ô7Ø×)Ò)Ñ+Ô+�Ø˜:”Ð+¨!Ð+�¨!Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+�¨!Ð+Ñ+Ô+Õ+Ô+�Ñ+Ô+Õ+Ô+¨!Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø(Ð/Ð(¨CÐ/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð(¨CÐ/Ñ/Ô/Õ/Ô/Ð(Ñ/Ô/Ð/Õ/Ô/Ñ/Ô/Ð/Ð/Õ/Ô/¨CÑ/Ô/Ð/Õ/Ô/¨CÑ/Ô/Ð/Ð/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ØÐ2Ô3Ð;°tÐ;Ð3°tÐ;Ð;Ð;Ð;Õ;Ô;Ð;Ð;Ð;Ð;Ð3°tÐ;Ñ;Ô;Õ;Ô;Ð3Ñ;Ô;Õ;Ô;°tÑ;Ô;Ð;Ð;Ñ;Ð;Ð;Ð;Ð;Ð;Ñ;Ð;Õ;Õ;Ô;Ð;Ñ;Ô;Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð (˜-ØØØ"ØØ ØØ Ø!0ð	ñ 	ô 	ˆKõ ”˜cÔ0Ð2MÐ\gÐhÑhÔhð [ð [Ý'™kœk�Ø"-�”Ø×2Ò2Ñ4Ô4Ð4ØÔ3×KÒKÈCÐQTÐVYÑZÔZÐZð	[ð [ð [ñ [ô [ð [ð [ð [ð [ð [ð [øøøð [ð [ð [ð [ð �‘”ˆBØ�˜KÑ(Ô(ˆBØ�¨BÐ/Ñ/Ô/ˆBÝ"+¡+¤+ÐØ�*¨"¸"ÈRÐ]pÐqÑqÔqˆCðÝ”\ #Ô"4Ð6QÐ`kÐlÑlÔlð Jð JØ×,Ò,Ñ.Ô.Ð.Ø'Ô?×WÒWÐX[Ð]`ÐbeÑfÔfÐfØ#ÐI sÔ'<ÐIÐ'<Ô'AÐIÀ&ÐIÐ'AÐ'AÀ&Ñ'IÔ'IÐI˜8Ð'IÐIÐIÐIÐIÕIÔIÐIÐIÐIÐI˜8Ð'IÐIÑIÔIÕIÔI˜8ÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔI sÑIÔIÐIÕIÔI sÑIÔIÐIÐIÕIÔIÐ'<ÑIÔIÕIÔIÐ'AÑIÔIÕIÔIÀ&ÑIÔIÕIÔIÐ'IÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð
 —’‘”��ø�—’‘”��øøø�à�NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐð[-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -sÕ   ºT>ÁT&Á :T ÂG
I0É$T É0I4É4T É7I4É82T Ê*AK<Ë0T Ë<L Ì T ÌL ÌAT ÍSÍ"ER1Ò%SÒ1R5Ò5SÒ8R5Ò9SÒ<T ÓS'Ó'T Ó+T&Ô TÔT&ÔT>Ô&T*	Ô*T>Ô-T*	Ô.T>Ô>UÕUc                  ó#  — ddl m}   | j        ddd¦  «        }d„ }t          d|¬¦  «        5  t	          j        |¦  «        }d	}||u}|s—t          j        d
|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}}|j        }d}||u }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd ||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d!}||k    }	|	sªt          j        d|	fd"||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d#}||k    }	|	sªt          j        d|	fd$||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}t	          ¦   «         }|                     |¬%¦  «        }d	}||u}|s—t          j        d
|fd||f¦  «        d&t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd&t          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        d&t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd&t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        d&t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd&t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        d&t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd&t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}|j        }d!}||k    }	|	sªt          j        d|	fd"||f¦  «        d&t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd&t          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d	x}x}	}t1          ¦   «         }t          j        |d'|¬(¦  «        5  t          d)|¬(¦  «        5  |                     d*d+i¦  «        }d,                     |¦  «        }d-}||v }|s—t          j        d.|fd/||f¦  «        t          j        |¦  «        d0t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd0d1œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}}d2}||v }|s—t          j        d.|fd/||f¦  «        t          j        |¦  «        d3t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd3d1œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}}||                     d2¦  «        d4z            }d5}	||	k    }|slt          j        d|fd6||	f¦  «        t          j        |¦  «        t          j        |	¦  «        d7œz  }d8d9|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}x}}	d:}||v }|s—t          j        d.|fd/||f¦  «        t          j        |¦  «        d3t          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        nd3d1œz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}}||                     d;¦  «        d4z            }d<}	||	k    }|slt          j        d|fd6||	f¦  «        t          j        |¦  «        t          j        |	¦  «        d7œz  }d8d9|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}x}}	||                     d=¦  «        d4z            }d>}	||	k    }|slt          j        d|fd6||	f¦  «        t          j        |¦  «        t          j        |	¦  «        d7œz  }d8d9|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}x}}	||                     d?¦  «        d4z            }d@}	||	k    }|slt          j        d|fd6||	f¦  «        t          j        |¦  «        t          j        |	¦  «        d7œz  }d8d9|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}x}}	|                     d*d+i¦  «        }d-}d,}	|	j        } ||¦  «        }||v }|sÐt          j        d.|fdA||f¦  «        t          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        dBt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndBt          j        |¦  «        dCœz  }dDdE|iz  }t          t          j        |¦  «        ¦  «        ‚d	x}x}x}	x}}d	d	d	¦  «         n# 1 swxY w Y   d	d	d	¦  «         n# 1 swxY w Y   d	d	d	¦  «         d	S # 1 swxY w Y   d	S )Fuî  
    Kiá»ƒm tra nháº­n diá»‡n Vitals nhÃ¢n váº­t Level 41 tá»« thá»±c táº¿:
    - áº¢nh giáº£ láº­p vá»›i text 'Life 781/781 Shield 204/317' bÃªn trÃ¡i vÃ  'Mana Spirit 373/373 91/418' bÃªn pháº£i.
    - Kháº³ng Ä‘á»‹nh _detect_via_winocr() vÃ  detect_vitals_from_screen() nháº­n diá»‡n chÃ­nh xÃ¡c:
      max_hp = 781, max_shield = 317, max_mana = 373, max_spirit = 418.
    - Kiá»ƒm tra core_controller truyá»�n cá»� --primary-skill rmb --ranged --max-hp 781 --max-mana 373 --max-es 317.
    r   rç  r{   rè  ré  c              “   óš   K  — t          ¦   «         }| j        d         t          d¦  «        t          d¦  «        fv rd|_        nd|_        |S )Nr   rê  rì  zLife 781/781 Shield 204/317úMana Spirit 373/373 91/418rí  )rð  rñ  r¿   s      r0   Úfake_recognize_lv41zXtest_level_41_vitals_winocr_detection_and_ranged_core_flags.<locals>.fake_recognize_lv418  sJ   è è € Ý‰kŒkˆàŒ9�QŒ<�C Ñ,Ô,­c°+Ñ.>Ô.>Ð?Ð?Ð?Ø4ˆCŒHˆHà3ˆCŒHØˆ
r2   rô  rj   Nrú   rõ  Úvitals_winocrrY   r[   r   Tr6   rk  r   r   r   é  r   rn  rm  é=  rp  éÌ   ro  éu  rr  rq  i¢  rü  é[   rû  ©ÚimgÚvitals_screenry  rS   rž  r   rô   ú zE--primary-skill rmb --ranged --max-hp 781 --max-mana 373 --max-es 317rÖ   rØ   Úcmd_strrÚ   z--primary-skillr  rz   ÚrmbrÜ   rÝ   rÞ   r:   z--rangedrÕ   Ú781rš  Ú373r  Ú317)zJ%(py1)s in %(py9)s
{%(py9)s = %(py6)s
{%(py6)s = %(py4)s.join
}(%(py7)s)
}Ú	cmd_alias)r…   r9   r:   r   r†   r‡   rˆ   )r  r   r’   r   r   r  r   r    r!   r"   r#   r$   r%   r&   rz  rß   r  r|  r{  r  r  r	  r  ry  r
   r  rç   Újoinrè   Úbuild_command)r   r  r!  r"  ro   r+   rp   r.   r,   r-   r/   r   r*  ré   r  r,  rê   rì   rr   r1  rI   ru   r£   rv   s                           r0   Ú;test_level_41_vitals_winocr_detection_and_ranged_core_flagsr4  -  s˜  € ð ÐÐÐÐÐØˆuŒy˜ ¨iÑ8Ô8€Hðð ð õ 
Ð%Ð3FÐ	GÑ	GÔ	Gð *rð *rå'Ô:¸8ÑDÔDˆØ$(Ð(ˆ} DÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ} DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Ð(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÔ(Ð0¨DÐ0Ð(¨DÐ0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð(¨DÐ0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0ˆ}Ñ0Ô0Ð0Õ0Ô0ˆ}Ñ0Ô0Ð0Ð0Õ0Ô0Ð(Ñ0Ô0Õ0Ô0¨DÑ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÔ#Ð* sÐ*Ð# sÒ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð# sÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆ}Ñ*Ô*Ð*Õ*Ô*ˆ}Ñ*Ô*Ð*Ð*Õ*Ô*Ð#Ñ*Ô*Õ*Ô* sÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÔ+Ð2¨sÐ2Ð+¨sÒ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð+¨sÐ2Ñ2Ô2Ð2Õ2Ô2Ñ2Ô2Ð2Ð2Õ2Ô2ˆ}Ñ2Ô2Ð2Õ2Ô2ˆ}Ñ2Ô2Ð2Ð2Õ2Ô2Ð+Ñ2Ô2Õ2Ô2¨sÑ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ØÔ%Ð,¨Ð,Ð%¨Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð%¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆ}Ñ,Ô,Ð,Õ,Ô,ˆ}Ñ,Ô,Ð,Ð,Õ,Ô,Ð%Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ)Ð0¨SÐ0Ð)¨SÒ0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð)¨SÐ0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0ˆ}Ñ0Ô0Ð0Õ0Ô0ˆ}Ñ0Ô0Ð0Ð0Õ0Ô0Ð)Ñ0Ô0Õ0Ô0¨SÑ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÔ+Ð1¨rÐ1Ð+¨rÒ1Ð1Ð1Ð1Õ1Ô1Ð1Ð1Ð1Ð1Ð+¨rÐ1Ñ1Ô1Ð1Õ1Ô1Ñ1Ô1Ð1Ð1Õ1Ô1ˆ}Ñ1Ô1Ð1Õ1Ô1ˆ}Ñ1Ô1Ð1Ð1Õ1Ô1Ð+Ñ1Ô1Õ1Ô1¨rÑ1Ô1Ð1Ð1Ñ1Ð1Ð1Ð1Ð1Ð1Ñ1Ð1Õ1Õ1Ô1Ð1Ñ1Ô1Ñ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1Ð1õ !Ñ"Ô"ˆØ×8Ò8¸XÐ8ÑFÔFˆØ$(Ð(ˆ} DÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ} DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Ð(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÔ#Ð* sÐ*Ð# sÒ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð# sÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆ}Ñ*Ô*Ð*Õ*Ô*ˆ}Ñ*Ô*Ð*Ð*Õ*Ô*Ð#Ñ*Ô*Õ*Ô* sÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ØÔ%Ð,¨Ð,Ð%¨Ò,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð%¨Ð,Ñ,Ô,Ð,Õ,Ô,Ñ,Ô,Ð,Ð,Õ,Ô,ˆ}Ñ,Ô,Ð,Õ,Ô,ˆ}Ñ,Ô,Ð,Ð,Õ,Ô,Ð%Ñ,Ô,Õ,Ô,¨Ñ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÔ'Ð.¨3Ð.Ð'¨3Ò.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð'¨3Ð.Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Õ.Ô.ˆ}Ñ.Ô.Ð.Ð.Õ.Ô.Ð'Ñ.Ô.Õ.Ô.¨3Ñ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.õ ÑÔˆÝŒ\˜&Ð"=ÈMÐZÑZÔZð 	rð 	rÝÐGÐV\Ð]Ñ]Ô]ð	rð 	rà—,’,Ð 1°6Ð:Ñ;Ô;ˆCØ—h’h˜s‘m”mˆGØZÐeÐZÐ^eÐeÐeÐeÐeÕeÔeÐeÐeÐeÐeÐZÐ^eÐeÑeÔeÕeÔeÐZÑeÔeÐeÕeÔeÑeÔeÐeÐeÕeÔeÐ^eÑeÔeÐeÕeÔeÐ^eÑeÔeÐeÐeÐeÐeÑeÐeÐeÐeÐeÐeÑeÐeÕeÕeÔeÐeÑeÔeÑeÔeÐeÐeÐeÐeÐeð %Ð+Ð$¨Ð+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð$¨Ð+Ñ+Ô+Õ+Ô+Ð$Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+¨Ñ+Ô+Ð+Õ+Ô+¨Ñ+Ô+Ð+Ð+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ø�s—y’yÐ!2Ñ3Ô3°aÑ7Ô8ÐA¸EÐAÐ8¸EÒAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ8¸EÐAÑAÔAÕAÔAÐ8ÑAÔAÕAÔA¸EÑAÔAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAØÐ$�: Ð$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$�: Ð$Ñ$Ô$Õ$Ô$�:Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ Ñ$Ô$Ð$Õ$Ô$ Ñ$Ô$Ð$Ð$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ø�s—y’y Ñ,Ô,¨qÑ0Ô1Ð:°UÐ:Ð1°UÒ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð1°UÐ:Ñ:Ô:Õ:Ô:Ð1Ñ:Ô:Õ:Ô:°UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø�s—y’y Ñ.Ô.°Ñ2Ô3Ð<°uÐ<Ð3°uÒ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ø�s—y’y Ñ,Ô,¨qÑ0Ô1Ð:°UÐ:Ð1°UÒ:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð:Ð1°UÐ:Ñ:Ô:Õ:Ô:Ð1Ñ:Ô:Õ:Ô:°UÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð ×(Ò(Ð*;¸VÐ)DÑEÔEˆIØZÐqÐ^aÐqÐ^aÔ^fÐqÐ^fÐ^fÐgpÑ^qÔ^qÐqÐZÐ^qÐqÐqÐqÐqÕqÔqÐqÐqÐqÐqÐZÐ^qÐqÑqÔqÕqÔqÐZÑqÔqÕqÔqÐ^aÑqÔqÕqÔqÐ^fÑqÔqÐqÕqÔqÑqÔqÐqÐqÕqÔqÐgpÑqÔqÐqÕqÔqÐgpÑqÔqÐqÐqÕqÔqÐ^qÑqÔqÐqÐqÑqÐqÐqÐqÐqÐqÑqÐqÕqÕqÔqÐqÑqÔqÑqÔqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqÐqð!	rð 	rð 	rñ 	rô 	rð 	rð 	rð 	rð 	rð 	rð 	røøøð 	rð 	rð 	rð 	rð 	rð 	rð 	rñ 	rô 	rð 	rð 	rð 	rð 	rð 	rð 	røøøð 	rð 	rð 	rð 	rð5*rð *rð *rñ *rô *rð *rð *rð *rð *rð *rð *rð *røøøð *rð *rð *rð *rð *rð *rsv   ­m/AE4îAEî.VAEÁD9AEÁEAE	ÁE	AEÁEAE	ÁEAEÁEAE4ÁEAE 	ÁE AE4ÁE#AE 	ÁE$AE4ÁE4AE8ÁE;AE8c                  óŽ	  ‡— ddl m}   | j        ddd¦  «        }dŠˆfd„}t          d|¬	¦  «        5  t	          j        |¦  «        }d
}||u}|s—t          j        d|fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚d
x}}|j        }d}||u }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}|j        }d}||k    }	|	sªt          j        d|	fd||f¦  «        dt          j	        ¦   «         v st          j
        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }dd|iz  }
t          t          j        |
¦  «        ¦  «        ‚d
x}x}	}d
d
d
¦  «         d
S # 1 swxY w Y   d
S )uï   
    Kiá»ƒm tra chuá»—i OCR thá»±c táº¿ khi cÃ³ chat box vÃ  kÃ½ tá»± mÃ©o:
    'i 3#FreezySni c plantsactu .11, 793/793 shjeIdAt3ji/3j7'
    Kháº³ng Ä‘á»‹nh nháº­n diá»‡n chÃ­nh xÃ¡c: max_hp = 793, current_hp = 793, max_shield = 317.
    r   rç  r{   rè  ré  z7i 3#FreezySni c plantsactu .11, 793/793 shjeIdAt3ji/3j7c              “   óœ   •K  — t          ¦   «         }| j        d         t          d¦  «        t          d¦  «        fv r‰|_        nd|_        |S )Nr   rê  rì  r   rí  )rð  rñ  r¿   Úreal_ocr_snippets      €r0   ró  zBtest_distorted_chat_ocr_vitals_recognition.<locals>.fake_recognizey  sK   øè è € Ý‰kŒkˆàŒ9�QŒ<�C Ñ,Ô,­c°+Ñ.>Ô.>Ð?Ð?Ð?Ø'ˆCŒHˆHà3ˆCŒHØˆ
r2   rô  rj   Nrú   rõ  rl  rY   r[   r   Tr6   rk  r   r   r   é  r   rn  rm  r$  rp  é7  ro  )r  r   r’   r   r   r  r   r    r!   r"   r#   r$   r%   r&   rz  rß   r  r|  r{  )r   r  ró  rl  ro   r+   rp   r.   r,   r-   r/   r7  s              @r0   Ú*test_distorted_chat_ocr_vitals_recognitionr:  n  sø  ø€ ð ÐÐÐÐÐØˆuŒy˜ ¨iÑ8Ô8€HàPÐðð ð ð ð õ 
Ð%°>Ð	BÑ	BÔ	Bð ,ð ,Ý Ô3°HÑ=Ô=ˆØ!Ð!ˆv˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆv˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Õ!Ô!ˆvÑ!Ô!Ð!Ð!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!ØÔ!Ð) TÐ)Ð! TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð! TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Ð)Õ)Ô)Ð!Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØŒ}Ð# Ð#ˆ} Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#ˆ} Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆvÑ#Ô#Ð#Õ#Ô#ˆvÑ#Ô#Ð#Ð#Õ#Ô#ˆ}Ñ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØÔ Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÔ Ð' CÐ'Ð  CÒ'Ð'Ð'Ð'Õ'Ô'Ð'Ð'Ð'Ð'Ð  CÐ'Ñ'Ô'Ð'Õ'Ô'Ñ'Ô'Ð'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Õ'Ô'ˆvÑ'Ô'Ð'Ð'Õ'Ô'Ð Ñ'Ô'Õ'Ô' CÑ'Ô'Ð'Ð'Ñ'Ð'Ð'Ð'Ð'Ð'Ñ'Ð'Õ'Õ'Ô'Ð'Ñ'Ô'Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'ØÔ$Ð+¨Ð+Ð$¨Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð$¨Ð+Ñ+Ô+Ð+Õ+Ô+Ñ+Ô+Ð+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Õ+Ô+ˆvÑ+Ô+Ð+Ð+Õ+Ô+Ð$Ñ+Ô+Õ+Ô+¨Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   ²Q;R:Ò:R>ÓR>c                  óÔ  — ddl m}  ddlm}m} ddlm} | j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}| j        }d}d} |||¦  «        }d}||u }	|	sãt          j	        d|	fd||f¦  «        d	t          j        ¦   «         v st          j        | ¦  «        rt          j        | ¦  «        nd	t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d
œz  }
dd|
iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}	}t!          j        | d¦  «        5  t!          j        | dddi¬¦  «        5   | ¦   «         }	 t%          ¦   «         }d|j        _         |d |dddddd¬¦  «        ¬ ¦  «        |_        ||_         |ddd!ddddd"¬#¦  «        }t!          j        |j        d$|¬¦  «        5  d%|_        |                     ¦   «          |j                             ddd¦  «         |j        }|j        } |¦   «         }d&}||k    }|sÐt          j	        d'|fd(||f¦  «        d)t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd)t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d*œz  }d+d,|iz  }
t          t          j        |
¦  «        ¦  «        ‚dx}x}x}x}}ddd¦  «         n# 1 swxY w Y   |                     ¦   «           |ddd!dddd¬-¦  «        }t!          j        |j        d$|¬¦  «        5  d%|_        |                     ¦   «          |j                             ¦   «          ddd¦  «         n# 1 swxY w Y   |                      ¦   «          n# |                      ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS ).uY  
    Kiá»ƒm tra tÃ­nh há»£p lÃ½ cá»§a Vitals vÃ  gá»­i lá»‡nh recalibrate khi max_hp thay Ä‘á»•i há»£p lá»‡ (781 -> 793):
    1. is_valid_vitals tá»« chá»‘i < 50, > 30000, current > max, vÃ  láº·p báº¥t thÆ°á»�ng 7793/778/779.
    2. Khi phÃ¡t hiá»‡n max_hp thay Ä‘á»•i há»£p lá»‡ (781 -> 793), gá»­i send_recalibrate_vitals(793, mana, es).
    r   rð   r  rœ  r8  Tr6   )z_%(py8)s
{%(py8)s = %(py2)s
{%(py2)s = %(py0)s.is_valid_vitals
}(%(py4)s, %(py6)s)
} is %(py11)srñ   )r   r   r9   r:   r;   rˆ   rf   r=   Nr#  é1   Fi¸ˆ  r‰   i   iq  r†  i  rò   ró   r   rô   rS   r&  r%  r$  ©r  rß   r  r  Ú
current_esÚmax_esr  r9  r  r  ry  r   Ú793r   rª  rø   r  r‡   rˆ   r  )!r  rñ   r&  r  r  r:  r�  Úis_valid_vitalsr   r    r!   r"   r#   r$   r%   r&   r   r  r   Úis_connectedrT   Úlast_snapshotr¬  rõ   Ú_last_optical_crosscheckÚ_periodic_taskr®  rÉ   rý   r$  Ú
reset_mockÚassert_not_calledr)  )rñ   r  r  r�  r+   r-   rI   rJ   r@  rK   rv   rN   rø   r°  Ú
new_vitalsru   r£   Úgarbage_vitalss                     r0   Ú;test_control_center_vitals_validation_and_valid_recalibraterJ  Œ  s£  € ð CÐBÐBÐBÐBÐBØYÐYÐYÐYÐYÐYÐYÐYØBÐBÐBÐBÐBÐBð Ô+Ð=¨CÐ=°Ð=Ð+Ð+¨C°Ñ5Ô5Ð=¸Ð=Ð5¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð5¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ÐÑ=Ô=Ð=Õ=Ô=ÐÑ=Ô=Ð=Ð=Õ=Ô=Ð+Ñ=Ô=Õ=Ô=¨CÑ=Ô=Õ=Ô=°Ñ=Ô=Õ=Ô=Ð5Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÔ+Ð=¨CÐ=°Ð=Ð+Ð+¨C°Ñ5Ô5Ð=¸Ð=Ð5¸Ð=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð5¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=ÐÑ=Ô=Ð=Õ=Ô=ÐÑ=Ô=Ð=Ð=Õ=Ô=Ð+Ñ=Ô=Õ=Ô=¨CÑ=Ô=Õ=Ô=°Ñ=Ô=Õ=Ô=Ð5Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÔ+Ð<¨BÐ<°Ð<Ð+Ð+¨B°Ñ3Ô3Ð<°uÐ<Ð3°uÐ<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð3°uÐ<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<ÐÑ<Ô<Ð<Õ<Ô<ÐÑ<Ô<Ð<Ð<Õ<Ô<Ð+Ñ<Ô<Õ<Ô<¨BÑ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð3Ñ<Ô<Õ<Ô<°uÑ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ØÔ+ÐA¨EÐA°4ÐAÐ+Ð+¨E°4Ñ8Ô8ÐA¸EÐAÐ8¸EÐAÐAÐAÐAÕAÔAÐAÐAÐAÐAÐ8¸EÐAÑAÔAÐAÕAÔAÑAÔAÐAÐAÕAÔAÐÑAÔAÐAÕAÔAÐÑAÔAÐAÐAÕAÔAÐ+ÑAÔAÕAÔA¨EÑAÔAÕAÔA°4ÑAÔAÕAÔAÐ8ÑAÔAÕAÔA¸EÑAÔAÐAÐAÑAÐAÐAÐAÐAÐAÑAÐAÕAÕAÔAÐAÑAÔAÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAÐAØÔ+Ð>¨CÐ>°Ð>Ð+Ð+¨C°Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ÐÑ>Ô>Ð>Õ>Ô>ÐÑ>Ô>Ð>Ð>Õ>Ô>Ð+Ñ>Ô>Õ>Ô>¨CÑ>Ô>Õ>Ô>°Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÔ+Ð@¨DÐ@°$Ð@Ð+Ð+¨D°$Ñ7Ô7Ð@¸5Ð@Ð7¸5Ð@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð7¸5Ð@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@ÐÑ@Ô@Ð@Õ@Ô@ÐÑ@Ô@Ð@Ð@Õ@Ô@Ð+Ñ@Ô@Õ@Ô@¨DÑ@Ô@Õ@Ô@°$Ñ@Ô@Õ@Ô@Ð7Ñ@Ô@Õ@Ô@¸5Ñ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ØÔ+Ð>¨CÐ>°Ð>Ð+Ð+¨C°Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ÐÑ>Ô>Ð>Õ>Ô>ÐÑ>Ô>Ð>Ð>Õ>Ô>Ð+Ñ>Ô>Õ>Ô>¨CÑ>Ô>Õ>Ô>°Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÔ+Ð>¨CÐ>°Ð>Ð+Ð+¨C°Ñ5Ô5Ð>¸Ð>Ð5¸Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð5¸Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ÐÑ>Ô>Ð>Õ>Ô>ÐÑ>Ô>Ð>Ð>Õ>Ô>Ð+Ñ>Ô>Õ>Ô>¨CÑ>Ô>Õ>Ô>°Ñ>Ô>Õ>Ô>Ð5Ñ>Ô>Õ>Ô>¸Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>õ 
ŒÐ&Ð(=Ñ	>Ô	>ð -ð -Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hð-ð -àÐÑ Ô ˆð*	Ý#™+œ+ˆKØ48ˆKÔ$Ô1Ø(=Ð(=ØØ&�°#¸cÐPSÐ^aÐnqÐz}Ð~Ñ~Ô~ð)ñ )ô )ˆKÔ%ð *ˆCŒOð '˜ØØØ"ØØ ØØ Ø!0ð	ñ 	ô 	ˆJõ ”˜cÔ0Ð2MÐ\fÐgÑgÔgð 7ð 7Ø/2�Ô,Ø×"Ò"Ñ$Ô$Ð$ØÔ3×KÒKÈCÐQTÐVYÑZÔZÐZØÔ'Ð6Ð'Ô+Ð6Ð+Ð+Ñ-Ô-Ð6°Ð6Ð-°Ò6Ð6Ð6Ð6Õ6Ô6Ð6Ð6Ð6Ð6Ð-°Ð6Ñ6Ô6Ð6Õ6Ô6Ñ6Ô6Ð6Ð6Õ6Ô6�sÑ6Ô6Ð6Õ6Ô6�sÑ6Ô6Ð6Ð6Õ6Ô6Ð'Ñ6Ô6Õ6Ô6Ð+Ñ6Ô6Õ6Ô6Ð-Ñ6Ô6Õ6Ô6°Ñ6Ô6Ð6Ð6Ñ6Ð6Ð6Ð6Ð6Ð6Ñ6Ð6Õ6Õ6Ô6Ð6Ñ6Ô6Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð	7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð ×"Ò"Ñ$Ô$Ð$Ø*˜]ØØØ"ØØ ØØ ðñ ô ˆNõ ”˜cÔ0Ð2MÐ\jÐkÑkÔkð Hð HØ/2�Ô,Ø×"Ò"Ñ$Ô$Ð$ØÔ3×EÒEÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð
 �NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐð[-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s™   âmâ4mã A1lä1D4i1é%lé1i5é5lé8i5é9Alê>5k?ë3lë?lìlìlìlì
mìl5ì5mì9mím		í	mím		ímím!í$m!c                  óò  — ddl m} m}  | ¦   «         }|j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd	|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}} |ddd¬¦  «        }t          j        |d|¬¦  «        5  |                     d¬¦  «         |j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd	|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}}g }|j        }d
}	||	u}
|
}|
r|j        }|j        } |¦   «         }|}|�srt	          j        d|
fd||	f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |	¦  «        dœz  }dd|iz  }|                     |¦  «         |
r’ddt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |¦  «        dœz  }|                     |¦  «         t	          j        |d¦  «        i z  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}x}x}
x}	x}x}}t'          j        d¦  «         |j        }|j        }d}	||	u }
|
s½t	          j        d|
fd||	f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |	¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}x}
}	|j        }|j        }d}	||	k    }
|
s½t	          j        d |
fd!||	f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        t	          j	        |	¦  «        dœz  }dd|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}x}
}	|                     d"¬#¦  «         |j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd	|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}}|j        }d
}||u }|sªt	          j        d|fd$||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        dœz  }dd	|iz  }t          t	          j        |¦  «        ¦  «        ‚d
x}x}}d
d
d
¦  «         d
S # 1 swxY w Y   d
S )%ud   Kiá»ƒm tra luá»“ng quÃ©t ngáº§m báº¥t Ä‘á»“ng bá»™ (Background OCR / Slit Sensor worker thread 2Hz).r   )r   r�  Fr6   )z3%(py2)s
{%(py2)s = %(py0)s._bg_running
} is %(py5)sr   r   r   r   Nrb  rc  T)r  rß   rz  ry  rS   gš™™™™™©?)Úintervalrú   )z6%(py4)s
{%(py4)s = %(py2)s._bg_thread
} is not %(py7)s©r   r9   r   ú%(py9)sr†   zc%(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s
{%(py13)s = %(py11)s._bg_thread
}.is_alive
}()
})rˆ   r=   r?   r  zassert %(py20)sÚpy20g¸…ëQ¸¾?)z]%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.last_detected_vitals
}.is_detected
} is %(py7)s)r   r   r9   r   zassert %(py9)sr   )zX%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.last_detected_vitals
}.max_hp
} == %(py7)sr�   )Útimeout)z2%(py2)s
{%(py2)s = %(py0)s._bg_thread
} is %(py5)s)r:  r   r�  Ú_bg_runningr   r    r!   r"   r#   r$   r%   r&   r   r  Ústart_background_workerÚ
_bg_threadÚis_aliver±   r(  r¯   Úsleepr¯  rz  rß   Ústop_background_worker)r   r�  r   r+   r,   r-   r.   r/   r¡  rq   rI   rê   rL   Ú@py_assert14Ú@py_assert16r£   r-  Ú@py_format19Ú@py_format21s                      r0   Ú%test_optical_sensor_background_workerr[  Ñ  s„  € àSÐSÐSÐSÐSÐSÐSÐSàˆ_ÑÔ€FØÔÐ& Ð&Ð Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&Ð Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ6Ñ&Ô&Ð&Õ&Ô&ˆ6Ñ&Ô&Ð&Ð&Õ&Ô&ÐÑ&Ô&Õ&Ô& Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&à�-¨3°sÈÐMÑMÔM€KÝ	Œ�fÐ9ÈÐ	TÑ	TÔ	Tð )ð )Ø×&Ò&°Ð&Ñ5Ô5Ð5ØÔ!Ð) TÐ)Ð! TÐ)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð! TÐ)Ñ)Ô)Ð)Õ)Ô)Ñ)Ô)Ð)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Õ)Ô)ˆvÑ)Ô)Ð)Ð)Õ)Ô)Ð!Ñ)Ô)Õ)Ô) TÑ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ØMÐMˆvÔ ÐM¨ÐMÐ ¨Ð,ÐMÐMÐMÐMÐM°Ô1BÐMÐ1BÔ1KÐMÐ1KÐ1KÑ1MÔ1MÐMÐ1MÐMÐMÑMÕMÔMÐMÐMÐMÐMÐ ¨ÐMÑMÔMÐMÕMÔMÑMÔMÐMÐMÕMÔMˆvÑMÔMÐMÕMÔMˆvÑMÔMÐMÐMÕMÔMÐ ÑMÔMÕMÔM¨ÑMÔMÐMÐMÑMÐMÐMÐMÐMÐMÑMÐMÐM×MÒMÐMÑMÔMÐMÐMÐMÐMÐMÕMÔMÑMÔMÐMÐMÕMÔM°ÑMÔMÐMÕMÔM°ÑMÔMÐMÐMÕMÔMÐ1BÑMÔMÕMÔMÐ1KÑMÔMÕMÔMÐ1MÑMÔMÐMÐMÑMÐMÐM×MÒMÐMÑMÔMÐMÕMÔMÐMÐMÑMÔMÐMÑMÐMÐMÐMÐMÐMÑMÐMÕMÕMÔMÐMÑMÔMÑMÔMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMÐMõ 	Œ
�4ÑÔÐØÔ*Ð>Ð*Ô6Ð>¸$Ð>Ð6¸$Ð>Ð>Ð>Ð>Õ>Ô>Ð>Ð>Ð>Ð>Ð6¸$Ð>Ñ>Ô>Ð>Õ>Ô>Ñ>Ô>Ð>Ð>Õ>Ô>ˆvÑ>Ô>Ð>Õ>Ô>ˆvÑ>Ô>Ð>Ð>Õ>Ô>Ð*Ñ>Ô>Õ>Ô>Ð6Ñ>Ô>Õ>Ô>¸$Ñ>Ô>Ð>Ð>Ñ>Ð>Ð>Ð>Ð>Ð>Ñ>Ð>Õ>Õ>Ô>Ð>Ñ>Ô>Ñ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>ØÔ*Ð8Ð*Ô1Ð8°SÐ8Ð1°SÒ8Ð8Ð8Ð8Õ8Ô8Ð8Ð8Ð8Ð8Ð1°SÐ8Ñ8Ô8Ð8Õ8Ô8Ñ8Ô8Ð8Ð8Õ8Ô8ˆvÑ8Ô8Ð8Õ8Ô8ˆvÑ8Ô8Ð8Ð8Õ8Ô8Ð*Ñ8Ô8Õ8Ô8Ð1Ñ8Ô8Õ8Ô8°SÑ8Ô8Ð8Ð8Ñ8Ð8Ð8Ð8Ð8Ð8Ñ8Ð8Õ8Õ8Ô8Ð8Ñ8Ô8Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8à×%Ò%¨cÐ%Ñ2Ô2Ð2ØÔ!Ð* UÐ*Ð! UÐ*Ð*Ð*Ð*Õ*Ô*Ð*Ð*Ð*Ð*Ð! UÐ*Ñ*Ô*Ð*Õ*Ô*Ñ*Ô*Ð*Ð*Õ*Ô*ˆvÑ*Ô*Ð*Õ*Ô*ˆvÑ*Ô*Ð*Ð*Õ*Ô*Ð!Ñ*Ô*Õ*Ô* UÑ*Ô*Ð*Ð*Ñ*Ð*Ð*Ð*Ð*Ð*Ñ*Ð*Õ*Õ*Ô*Ð*Ñ*Ô*Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔ Ð( DÐ(Ð  DÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(Ð  DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Õ(Ô(ˆvÑ(Ô(Ð(Ð(Õ(Ô(Ð Ñ(Ô(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   Ã7W([,Û,[0Û3[0c                  óØF  — ddl m}   | ¦   «         }|                     d¬¦  «        }|j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     d¬¦  «        }|j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     d¬¦  «        }	|	j        }d}||u }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|	j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|	j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|	j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|	j        }d}||k    }|sªt	          j        d|fd||f¦  «        dt          j        ¦   «         v st	          j        |	¦  «        rt	          j	        |	¦  «        ndt	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     d¬¦  «        }
|
j        }d}||u }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d!}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d!}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d"}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d"}||k    }|sªt	          j        d|fd||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d#}||k    }|sªt	          j        d|fd$||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d#}||k    }|sªt	          j        d|fd%||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d&}||k    }|sªt	          j        d|fd'||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|
j        }d(}||k    }|sªt	          j        d|fd)||f¦  «        d t          j        ¦   «         v st	          j        |
¦  «        rt	          j	        |
¦  «        nd t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|                     d*¬¦  «        }|j        }d}||u }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d,}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d,}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d-}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d-}||k    }|sªt	          j        d|fd||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}g }|j        }d}||k    }|}|s|j        }d}||u }|}|�s~t	          j        d|fd.||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d/œz  }d0d1|iz  }|                     |¦  «         |sžt	          j        d|fd2||f¦  «        d+t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd+t	          j	        |¦  «        t	          j	        |¦  «        d3œz  }d4d5|iz  }|                     |¦  «         t	          j        |d¦  «        i z  }d6d7|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}x}x}x}x}x}}|                     d8¬¦  «        }|j        }d}||u }|sªt	          j        d|fd||f¦  «        d9t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd9t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d,}||k    }|sªt	          j        d|fd||f¦  «        d9t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd9t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d-}||k    }|sªt	          j        d|fd||f¦  «        d9t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd9t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d:}||k    }|sªt	          j        d|fd||f¦  «        d9t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd9t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}|j        }d:}||k    }|sªt	          j        d|fd||f¦  «        d9t          j        ¦   «         v st	          j        |¦  «        rt	          j	        |¦  «        nd9t	          j	        |¦  «        t	          j	        |¦  «        d	œz  }d
d|iz  }t          t	          j        |¦  «        ¦  «        ‚dx}x}}dS );ut  
    Kiá»ƒm tra nháº­n diá»‡n Vitals cá»§a nhÃ¢n váº­t build Chaos Inoculation (CI) vÃ  sá»‘ cÃ³ dáº¥u pháº©y hÃ ng nghÃ¬n:
    - 'Shield Ward 2,402/2,402 826/826' -> HP=1/1, Shield=2402/2402, Ward=826/826.
    - 'Life Shield Ward 2,402/2,402 826/826' -> HP=1/1, Shield=2402/2402, Ward=826/826.
    - 'Life: 1,250/1,250 | Mana: 820/820' -> HP=1250/1250, Mana=820/820.
    r   r   zShield Ward 2,402/2,402 826/826ri  Tr6   rk  Úv1r   r   r   Nrz   r   rm  rn  éb	  ro  rp  r÷  rø  rù  z$Life Shield Ward 2,402/2,402 826/826Úv2z!Life: 1,250/1,250 | Mana: 820/820Úv3iâ  é4  rq  rr  zULife: 1/1
Shield: 2,843/2,843
Ward: 826/826
Mana: 350/350
Spirit: 100/100
Rage: 45/50Úv4rö  rú  rB   rû  rü  rý  rþ  rF   rÿ  z+Life: 1/1
Shield: 4,284/4,284
Ward: 241/241Úv5i¼  éñ   )z4%(py4)s
{%(py4)s = %(py2)s.current_mana
} == %(py7)srM  rN  r†   )z8%(py13)s
{%(py13)s = %(py11)s.current_mana
} is %(py16)s)rˆ   r=   rt  z%(py18)sÚpy18zassert %(py21)sÚpy21z9Life: 1/1
Shield: 4,284/4,284
Ward: 241/241
Mana: 897/897Úv6i�  )r:  r   ry  rz  r   r    r!   r"   r#   r$   r%   r&   r  rß   r{  r|  r  r  r  r  r  r	  r
  r  r±   r(  )r   r   r]  r+   r,   r-   r.   r/   r_  r`  rb  rc  rq   rI   rê   rL   Ú@py_assert15rW  r£   rƒ  rY  Ú@py_format20Ú@py_format22rg  s                           r0   Ú6test_ci_optical_vitals_parsing_and_thousand_separatorsrk  è  s )  € ð EÐDÐDÐDÐDÐDàˆ_ÑÔ€Fð 
×	)Ò	)Ð4UÐ	)Ñ	VÔ	V€BØŒ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ=Ð˜AÐˆ=˜AÒÐÐÐÕÔÐÐÐÐˆ=˜AÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ=ÑÔÕÔ˜AÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ9Ð˜Ðˆ9˜Š>ÐÐÐÕÔÐÐÐÐˆ9˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ9ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØŒ=Ð ˜DÐ ˆ=˜DÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐð 
×	)Ò	)Ð4ZÐ	)Ñ	[Ô	[€BØŒ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ=Ð˜AÐˆ=˜AÒÐÐÐÕÔÐÐÐÐˆ=˜AÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ=ÑÔÕÔ˜AÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ9Ð˜Ðˆ9˜Š>ÐÐÐÕÔÐÐÐÐˆ9˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ9ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØŒ=Ð ˜DÐ ˆ=˜DÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐð 
×	)Ò	)Ð4WÐ	)Ñ	XÔ	X€BØŒ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ=Ð ˜DÐ ˆ=˜DÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ9Ð˜Ðˆ9˜ÒÐÐÐÕÔÐÐÐÐˆ9˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ9ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐð 
×	)Ò	)Ønð 
*ñ 
ô 
€Bð Œ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ=Ð˜AÐˆ=˜AÒÐÐÐÕÔÐÐÐÐˆ=˜AÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ=ÑÔÕÔ˜AÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ9Ð˜Ðˆ9˜Š>ÐÐÐÕÔÐÐÐÐˆ9˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ9ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØŒ=Ð ˜DÐ ˆ=˜DÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ# Ð#Ð Ò#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð Ð#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ2Ñ#Ô#Ð#Õ#Ô#ˆ2Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô# Ñ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØŒ=Ð˜CÐˆ=˜CÒÐÐÐÕÔÐÐÐÐˆ=˜CÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ=ÑÔÕÔ˜CÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ?Ð ˜bÐ ˆ?˜bÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ?˜bÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ?Ñ Ô Õ Ô ˜bÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ;Ð˜"Ðˆ;˜"ÒÐÐÐÕÔÐÐÐÐˆ;˜"ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜"ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐð 
×	)Ò	)ØAð 
*ñ 
ô 
€Bð Œ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ=Ð˜AÐˆ=˜AÒÐÐÐÕÔÐÐÐÐˆ=˜AÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ=ÑÔÕÔ˜AÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ9Ð˜Ðˆ9˜Š>ÐÐÐÕÔÐÐÐÐˆ9˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ9ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØŒ=Ð ˜DÐ ˆ=˜DÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ2Ñ Ô Ð Õ Ô ˆ2Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØ:Ð:ˆ2Œ?Ð:˜aÐ:ˆ?˜aÒÐ:Ð:Ð:Ð:Ð: 2¤?Ð:°dÐ: ?°dÐ#:Ð:Ð:Ð:Ð:Ñ:Õ:Ô:Ð:Ð:Ð:Ð:ˆ?˜aÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô:ˆ2Ñ:Ô:Ð:Õ:Ô:ˆ2Ñ:Ô:Ð:Ð:Õ:Ô:ˆ?Ñ:Ô:Õ:Ô:˜aÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Ð:Ð:Õ:Ô:Ð:Ð:Ð:Ð: ?°dÐ:Ñ:Ô:Ð:Õ:Ô:Ñ:Ô:Ð:Ð:Õ:Ô: 2Ñ:Ô:Ð:Õ:Ô: 2Ñ:Ô:Ð:Ð:Õ:Ô: ?Ñ:Ô:Õ:Ô:°dÑ:Ô:Ð:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Ð:×:Ò:Ð:Ñ:Ô:Ð:Õ:Ô:Ð:Ð:Ñ:Ô:Ð:Ñ:Ð:Ð:Ð:Ð:Ð:Ñ:Ð:Õ:Õ:Ô:Ð:Ñ:Ô:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð 
×	)Ò	)ØPð 
*ñ 
ô 
€Bð Œ>Ð!˜TÐ!ˆ>˜TÐ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ>˜TÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ>Ñ!Ô!Õ!Ô!˜TÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØÔÐ$ Ð$Ð Ò$Ð$Ð$Ð$Õ$Ô$Ð$Ð$Ð$Ð$Ð Ð$Ñ$Ô$Ð$Õ$Ô$Ñ$Ô$Ð$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Õ$Ô$ˆ2Ñ$Ô$Ð$Ð$Õ$Ô$ÐÑ$Ô$Õ$Ô$ Ñ$Ô$Ð$Ð$Ñ$Ð$Ð$Ð$Ð$Ð$Ñ$Ð$Õ$Õ$Ô$Ð$Ñ$Ô$Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ?Ð!˜cÐ!ˆ?˜cÒ!Ð!Ð!Ð!Õ!Ô!Ð!Ð!Ð!Ð!ˆ?˜cÐ!Ñ!Ô!Ð!Õ!Ô!Ñ!Ô!Ð!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Õ!Ô!ˆ2Ñ!Ô!Ð!Ð!Õ!Ô!ˆ?Ñ!Ô!Õ!Ô!˜cÑ!Ô!Ð!Ð!Ñ!Ð!Ð!Ð!Ð!Ð!Ñ!Ð!Õ!Õ!Ô!Ð!Ñ!Ô!Ñ!Ô!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØŒ;Ð˜#Ðˆ;˜#ÒÐÐÐÕÔÐÐÐÐˆ;˜#ÐÑÔÐÕÔÑÔÐÐÕÔˆ2ÑÔÐÕÔˆ2ÑÔÐÐÕÔˆ;ÑÔÕÔ˜#ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐÐÐr2   c                  óX	  — ddl m}  ddlm}m} ddlm} t          j        | d¦  «        5  t          j        | dddi¬	¦  «        5   | ¦   «         }	 t          ¦   «         }d
|j
        _         |d
 |dddddd¬¦  «        ¬¦  «        |_        ||_        t          d
¬	¦  «        |j        _         |ddddddddd
d¬¦
  «
        }t          j        |j        d|¬	¦  «        5  d|_        |                     ¦   «          |j                             ddd¦  «         |j        }|j        } |¦   «         }	d}
|	|
k    }|sÐt/          j        d|fd|	|
f¦  «        dt3          j        ¦   «         v st/          j        |¦  «        rt/          j        |¦  «        ndt/          j        |¦  «        t/          j        |¦  «        t/          j        |	¦  «        t/          j        |
¦  «        dœz  }dd|iz  }t;          t/          j        |¦  «        ¦  «        ‚dx}x}x}	x}}
d}|j        }|j         }d}
 ||
¦  «        }||v }|sãt/          j        d|fd ||f¦  «        t/          j        |¦  «        dt3          j        ¦   «         v st/          j        |¦  «        rt/          j        |¦  «        ndt/          j        |¦  «        t/          j        |¦  «        t/          j        |
¦  «        t/          j        |¦  «        d!œz  }d"d#|iz  }t;          t/          j        |¦  «        ¦  «        ‚dx}x}x}x}x}
}d}|j!        }|j         }d}
 ||
¦  «        }||v }|sãt/          j        d|fd$||f¦  «        t/          j        |¦  «        dt3          j        ¦   «         v st/          j        |¦  «        rt/          j        |¦  «        ndt/          j        |¦  «        t/          j        |¦  «        t/          j        |
¦  «        t/          j        |¦  «        d!œz  }d"d#|iz  }t;          t/          j        |¦  «        ¦  «        ‚dx}x}x}x}x}
}ddd¦  «         n# 1 swxY w Y   | "                    ¦   «          n# | "                    ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )%uJ  
    Kiá»ƒm tra tá»± Ä‘á»™ng hiá»‡u chuáº©n CI (HP=1, max_shield > 0) vÃ  cáº­p nháº­t giao diá»‡n GUI:
    - Gá»­i opcode 98: send_recalibrate_vitals(1, optical_mana, optical_max_shield).
    - Ã” entry_max_hp hiá»ƒn thá»‹ 'CI'.
    - Badge vÃ  Label hiá»ƒn thá»‹ '[CI] Shield={optical_max_shield}, Ward={optical_max_ward}'.
    r   rð   r  rœ  rò   ró   r   rô   rS   Tr=  r  rz   r^  r÷  ra  r  )
r  rß   r{  r|  r  r  r  r  rz  r©  ry  r   ÚCIr   rª  rø   r  r‡   rˆ   Nz[CI] Shield=2402, Ward=826r  rÖ   ©zh%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lbl_hp
}.cget
}(%(py9)s)
}r§  rf   r=   ©zu%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lbl_hp_sensor_badge
}.cget
}(%(py9)s)
})#r  rñ   r&  r  r  r:  r�  r   r  r   rB  rT   rC  r¬  Úcore_controllerÚ
is_runningrõ   rD  rE  r®  rÉ   rý   r$  r   r    r!   r"   r#   r$   r%   r&   rY  r%  r  r)  )rñ   r  r  r�  rø   r°  Ú	ci_vitalsr+   r-   rI   ru   rJ   r£   rv   rê   r,   rq   r@  ro   rN   s                       r0   Ú%test_ci_recalibration_and_gui_displayrs  :  sn  € ð CÐBÐBÐBÐBÐBØYÐYÐYÐYÐYÐYÐYÐYØBÐBÐBÐBÐBÐBå	ŒÐ&Ð(=Ñ	>Ô	>ð $ð $Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hð$ð $àÐÑ Ô ˆð!	Ý#™+œ+ˆKØ48ˆKÔ$Ô1Ø(=Ð(=ØØ&�°!¸AÈAÐXYÐfgÐpqÐrÑrÔrð)ñ )ô )ˆKÔ%ð *ˆCŒOÝ-6ÀDÐ-IÑ-IÔ-IˆCÔÔ*à%˜ØØØ#ØØ ØØ ØØ Ø!0ðñ ô ˆIõ ”˜cÔ0Ð2MÐ\eÐfÑfÔfð \ð \Ø/2�Ô,Ø×"Ò"Ñ$Ô$Ð$ð Ô3×KÒKÈAÈsÐTXÑYÔYÐYØÔ'Ð5Ð'Ô+Ð5Ð+Ð+Ñ-Ô-Ð5°Ð5Ð-°Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð-°Ð5Ñ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5�sÑ5Ô5Ð5Õ5Ô5�sÑ5Ô5Ð5Ð5Õ5Ô5Ð'Ñ5Ô5Õ5Ô5Ð+Ñ5Ô5Õ5Ô5Ð-Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø3ÐN°s´zÐN°z´ÐNÀvÐN°°ÀvÑ7NÔ7NÐNÐ3Ð7NÐNÐNÐNÐNÕNÔNÐNÐNÐNÐNÐ3Ð7NÐNÑNÔNÕNÔNÐ3ÑNÔNÐNÕNÔNÑNÔNÐNÐNÕNÔN°sÑNÔNÐNÕNÔN°sÑNÔNÐNÐNÕNÔN°zÑNÔNÕNÔN°ÑNÔNÕNÔNÀvÑNÔNÕNÔNÐ7NÑNÔNÐNÐNÑNÐNÐNÐNÐNÐNÑNÐNÕNÕNÔNÐNÑNÔNÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNØ3Ð[°sÔ7NÐ[Ð7NÔ7SÐ[ÐTZÐ[Ð7SÐ7SÐTZÑ7[Ô7[Ð[Ð3Ð7[Ð[Ð[Ð[Ð[Õ[Ô[Ð[Ð[Ð[Ð[Ð3Ð7[Ð[Ñ[Ô[Õ[Ô[Ð3Ñ[Ô[Ð[Õ[Ô[Ñ[Ô[Ð[Ð[Õ[Ô[°sÑ[Ô[Ð[Õ[Ô[°sÑ[Ô[Ð[Ð[Õ[Ô[Ð7NÑ[Ô[Õ[Ô[Ð7SÑ[Ô[Õ[Ô[ÐTZÑ[Ô[Õ[Ô[Ð7[Ñ[Ô[Ð[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Õ[Õ[Ô[Ð[Ñ[Ô[Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[ð\ð \ð \ñ \ô \ð \ð \ð \ð \ð \ð \øøøð \ð \ð \ð \ð �NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐðI$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $ss   ªRÁRÁBQ!ÃMQÐ5Q!ÑQÑQ!ÑQÑ	Q!ÑRÑ!Q7Ñ7RÑ;RÒR	ÒRÒR	ÒRÒR#Ò&R#c                  óÂ(  — ddl } ddlm} ddlm} ddlm} ddlm}m	} | j
                             | j
                             | j
                             t          ¦  «        ddd	¦  «        ¦  «        }| j
        }|j        } ||¦  «        }	|	sôt!          j        d
|› �¦  «        dz   dt%          j        ¦   «         v st!          j        | ¦  «        rt!          j        | ¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |	¦  «        dœz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}	 |j        |¦  «        }|j        }d}||k    }|s¿t!          j        d|fd||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }t!          j        d¦  «        dz   d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}} |¦   «         }|                     |¬¦  «        }d}||u}|s—t!          j        d|fd||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        dœz  }dd|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}}|j        }d}||u }|sªt!          j        d|fd ||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j        }d"}||k    }|sªt!          j        d|fd#||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j        }d$}||k    }|sªt!          j        d|fd%||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j        }d$}||k    }|sªt!          j        d|fd&||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j         }d'}||k    }|sªt!          j        d|fd(||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j!        }d'}||k    }|sªt!          j        d|fd)||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j"        }d*}||k    }|sªt!          j        d|fd+||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j#        }d*}||k    }|sªt!          j        d|fd,||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j$        }d-}||k    }|sªt!          j        d|fd.||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j%        }d-}||k    }|sªt!          j        d|fd/||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j&        }d0}||k    }|sªt!          j        d|fd1||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j'        }d2}||k    }|sªt!          j        d|fd3||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j(        }d}||k    }|sªt!          j        d|fd4||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}|j)        }d5}||k    }|sªt!          j        d|fd6||f¦  «        dt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndt!          j        |¦  «        t!          j        |¦  «        dœz  }d!d|iz  }
t-          t!          j        |
¦  «        ¦  «        ‚dx}x}}tU          j+        |d7¦  «        5  tU          j+        |d8d9d:i¬;¦  «        5   |¦   «         }	 tY          ¦   «         }d|j-        _.         |d |dddddd¬<¦  «        ¬=¦  «        |_/        ||_0        tY          d¬;¦  «        |j1        _2        tU          j+        |j3        d>|¬;¦  «        5  d?|_4        | 5                    ¦   «          |j6         7                    d$d-d'¦  «         |j8        }|j9        } |¦   «         }d@}||k    }|sÐt!          j        d|fdA||f¦  «        dBt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndBt!          j        |¦  «        t!          j        |¦  «        t!          j        |¦  «        t!          j        |¦  «        dCœz  }dDdE|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}x}x}x}}dF}|j:        }|j;        }	dG} |	|¦  «        }||v }|sãt!          j        dH|fdI||f¦  «        t!          j        |¦  «        dBt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndBt!          j        |¦  «        t!          j        |	¦  «        t!          j        |¦  «        t!          j        |¦  «        dJœz  }dKdL|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}x}x}x}	x}}dF}|j<        }|j;        }	dG} |	|¦  «        }||v }|sãt!          j        dH|fdM||f¦  «        t!          j        |¦  «        dBt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndBt!          j        |¦  «        t!          j        |	¦  «        t!          j        |¦  «        t!          j        |¦  «        dJœz  }dKdL|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}x}x}x}	x}}dN}|j=        }|j;        }	dG} |	|¦  «        }||v }|sãt!          j        dH|fdO||f¦  «        t!          j        |¦  «        dBt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndBt!          j        |¦  «        t!          j        |	¦  «        t!          j        |¦  «        t!          j        |¦  «        dJœz  }dKdL|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}x}x}x}	x}}dP}|j=        }|j;        }	dG} |	|¦  «        }||v }|sãt!          j        dH|fdO||f¦  «        t!          j        |¦  «        dBt%          j        ¦   «         v st!          j        |¦  «        rt!          j        |¦  «        ndBt!          j        |¦  «        t!          j        |	¦  «        t!          j        |¦  «        t!          j        |¦  «        dJœz  }dKdL|iz  }t-          t!          j        |¦  «        ¦  «        ‚dx}x}x}x}	x}}ddd¦  «         n# 1 swxY w Y   | >                    ¦   «          n# | >                    ¦   «          w xY w	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )Qu¡  
    Kiá»ƒm tra nháº­n diá»‡n Vitals tá»« áº£nh chá»¥p in-game tháº­t captures/after_restoring_2_0.png (16:9 standard 2560x1440):
    - Kháº³ng Ä‘á»‹nh nháº­n diá»‡n chÃ­nh xÃ¡c 100%: Life 1/1, Shield 5656/5656, Ward 240/240, Mana 876/876, Spirit 7/147, Rage 0/30.
    - Kháº³ng Ä‘á»‹nh tÃ­ch há»£p Control Center: Ã´ entry_max_hp hiá»ƒn thá»‹ 'CI', gá»­i IPC recalibrate (1, 876, 5656), badge hiá»ƒn thá»‹ [CI].
    r   Nrç  r   rð   r  r	   Úcaptureszafter_restoring_2_0.pngu'   KhÃ´ng tÃ¬m tháº¥y tá»‡p áº£nh tháº­t: zd
>assert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py5)s)
}ÚosÚimg_path)r   r   r9   r   r   rè  r   )z,%(py2)s
{%(py2)s = %(py0)s.size
} == %(py5)sr)  r   u9   áº¢nh khÃ´ng Ä‘Ãºng kÃ­ch thÆ°á»›c chuáº©n 16:9 2560x1440z
>assert %(py7)sr   r(  rú   rõ  ÚvrY   r[   r   Tr6   rk  r   r  )z8%(py2)s
{%(py2)s = %(py0)s.detection_method
} == %(py5)srz   rm  rn  i  ro  rp  éð   rø  rù  il  rq  rr  é   rû  é“   rü  rþ  r5   rÿ  rò   ró   r   rô   rS   r=  r  ry  r   rm  rª  rø   r  r‡   rˆ   z[CI] Shield=5656, Ward=240r  rÖ   rn  r§  rf   r=   ro  z	5656/5656)zt%(py1)s in %(py11)s
{%(py11)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lbl_vitals_es_ward
}.cget
}(%(py9)s)
}z240/240)?rv  r  r   r:  r   r  rñ   r&  r  r  ÚpathÚabspathr2  ÚdirnameÚ__file__Úexistsr   r¶   r!   r"   r#   r$   r%   r&   Úopenrî  r    ry  rz  r©  r  rß   r{  r|  r  r  r  r  r  r	  r
  r  r   r  r   rB  rT   rC  r¬  rp  rq  rõ   rD  rE  r®  rÉ   rý   r$  rY  r%  r  Úlbl_vitals_es_wardr)  )rv  r   r   rñ   r  r  rw  r+   r-   rq   r/   r)  r,   r.   r   rx  ro   rp   rø   r°  rI   ru   rJ   r£   rv   rê   r@  rN   s                               r0   Ú9test_authentic_16_9_vitals_extraction_after_restoring_2_0rƒ  l  s!  € ð €I€I€IØÐÐÐÐÐØDÐDÐDÐDÐDÐDØBÐBÐBÐBÐBÐBØYÐYÐYÐYÐYÐYÐYÐYàŒw�Š˜rœwŸ|š|¨B¬G¯OªO½HÑ,EÔ,EÀtÈZÐYrÑsÔsÑtÔt€HØŒ7ÐYˆ7Œ>ÐYˆ>ˆ>˜(Ñ#Ô#ÐYÐ#ÐYÕYÔYÐ%YÈxÐ%YÐ%YÑYÔYÐYÑYÐYÕYÔYÑYÔYÐYÐYÕYÔYˆ2ÑYÔYÐYÕYÔYˆ2ÑYÔYÐYÐYÕYÔYˆ7ÑYÔYÕYÔYˆ>ÑYÔYÐYÕYÔYÑYÔYÐYÐYÕYÔY˜(ÑYÔYÐYÕYÔY˜(ÑYÔYÐYÐYÕYÔYÐ#ÑYÔYÐYÐYÑYÐYÕYÕYÔYÐYÑYÔYÑYÔYÐYÐYÐYÐYÐYÐYÐYà
ˆ%Œ*�XÑ
Ô
€CØŒ8Ð`�|Ð`ˆ8�|Ò#Ð`Ð`Ð`Õ`Ô`Ð`Ð`Ð`Ð`ˆ8�|Ð`Ñ`Ô`Ð`Õ`Ô`Ñ`Ô`Ð`Ð`Õ`Ô`ˆ3Ñ`Ô`Ð`Õ`Ô`ˆ3Ñ`Ô`Ð`Ð`Õ`Ô`ˆ8Ñ`Ô`Õ`Ô`�|Ñ`Ô`Ð`Ð`Ñ`Ð`Õ`Ô`Ð%`Ñ`Ô`Ð`Ñ`Ð`Ð`Ð`Ñ`Ð`Õ`Õ`Ô`Ð`Ñ`Ô`Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`Ð`àˆ_ÑÔ€FØ×(Ò(¨SÐ(Ñ1Ô1€AàÐˆ1�Dˆ=ÐÐÐÕÔÐÐÐÐˆ1�DÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔ�DÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐØŒ=Ð ˜DÐ ˆ=˜DÐ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ=˜DÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ1Ñ Ô Ð Õ Ô ˆ1Ñ Ô Ð Ð Õ Ô ˆ=Ñ Ô Õ Ô ˜DÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØÔÐ0 Ð0Ð Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð Ð0Ñ0Ô0Ð0Õ0Ô0Ñ0Ô0Ð0Ð0Õ0Ô0ˆ1Ñ0Ô0Ð0Õ0Ô0ˆ1Ñ0Ô0Ð0Ð0Õ0Ô0ÐÑ0Ô0Õ0Ô0 Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ØŒ<Ð˜1Ðˆ<˜1ÒÐÐÐÕÔÐÐÐÐˆ<˜1ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ<ÑÔÕÔ˜1ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ8Ð�qÐˆ8�qŠ=ÐÐÐÕÔÐÐÐÐˆ8�qÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ8ÑÔÕÔ�qÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ#˜tÐ#Ð˜tÒ#Ð#Ð#Ð#Õ#Ô#Ð#Ð#Ð#Ð#Ð˜tÐ#Ñ#Ô#Ð#Õ#Ô#Ñ#Ô#Ð#Ð#Õ#Ô#ˆ1Ñ#Ô#Ð#Õ#Ô#ˆ1Ñ#Ô#Ð#Ð#Õ#Ô#ÐÑ#Ô#Õ#Ô#˜tÑ#Ô#Ð#Ð#Ñ#Ð#Ð#Ð#Ð#Ð#Ñ#Ð#Õ#Õ#Ô#Ð#Ñ#Ô#Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ØŒ<Ð˜4Ðˆ<˜4ÒÐÐÐÕÔÐÐÐÐˆ<˜4ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ<ÑÔÕÔ˜4ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ>Ð ˜SÐ ˆ>˜SÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ>˜SÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ1Ñ Ô Ð Õ Ô ˆ1Ñ Ô Ð Ð Õ Ô ˆ>Ñ Ô Õ Ô ˜SÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ:Ð˜Ðˆ:˜ÒÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ>Ð ˜SÐ ˆ>˜SÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð ˆ>˜SÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ1Ñ Ô Ð Õ Ô ˆ1Ñ Ô Ð Ð Õ Ô ˆ>Ñ Ô Õ Ô ˜SÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ:Ð˜Ðˆ:˜ÒÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØÔÐ ˜qÐ Ð˜qÒ Ð Ð Ð Õ Ô Ð Ð Ð Ð Ð˜qÐ Ñ Ô Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆ1Ñ Ô Ð Õ Ô ˆ1Ñ Ô Ð Ð Õ Ô ÐÑ Ô Õ Ô ˜qÑ Ô Ð Ð Ñ Ð Ð Ð Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ð Ð ØŒ<Ð˜3Ðˆ<˜3ÒÐÐÐÕÔÐÐÐÐˆ<˜3ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ<ÑÔÕÔ˜3ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ>Ð˜QÐˆ>˜QÒÐÐÐÕÔÐÐÐÐˆ>˜QÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ>ÑÔÕÔ˜QÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐØŒ:Ð˜Ðˆ:˜ÒÐÐÐÕÔÐÐÐÐˆ:˜ÐÑÔÐÕÔÑÔÐÐÕÔˆ1ÑÔÐÕÔˆ1ÑÔÐÐÕÔˆ:ÑÔÕÔ˜ÑÔÐÐÑÐÐÐÐÐÑÐÕÕÔÐÑÔÑÔÐÐÐÐÐÐÐõ 
ŒÐ&Ð(=Ñ	>Ô	>ð ð Ý	ŒÐ&Ð(=ÐM^Ð`fÐLgÐ	hÑ	hÔ	hðð àÐÑ Ô ˆð	Ý#™+œ+ˆKØ48ˆKÔ$Ô1Ø(=Ð(=ØØ&�°!¸AÈAÐXYÐfgÐpqÐrÑrÔrð)ñ )ô )ˆKÔ%ð *ˆCŒOÝ-6ÀDÐ-IÑ-IÔ-IˆCÔÔ*å”˜cÔ0Ð2MÐ\]Ð^Ñ^Ô^ð 	Hð 	HØ/2�Ô,Ø×"Ò"Ñ$Ô$Ð$àÔ3×KÒKÈAÈsÐTXÑYÔYÐYØÔ'Ð5Ð'Ô+Ð5Ð+Ð+Ñ-Ô-Ð5°Ð5Ð-°Ò5Ð5Ð5Ð5Õ5Ô5Ð5Ð5Ð5Ð5Ð-°Ð5Ñ5Ô5Ð5Õ5Ô5Ñ5Ô5Ð5Ð5Õ5Ô5�sÑ5Ô5Ð5Õ5Ô5�sÑ5Ô5Ð5Ð5Õ5Ô5Ð'Ñ5Ô5Õ5Ô5Ð+Ñ5Ô5Õ5Ô5Ð-Ñ5Ô5Õ5Ô5°Ñ5Ô5Ð5Ð5Ñ5Ð5Ð5Ð5Ð5Ð5Ñ5Ð5Õ5Õ5Ô5Ð5Ñ5Ô5Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ð5Ø3ÐN°s´zÐN°z´ÐNÀvÐN°°ÀvÑ7NÔ7NÐNÐ3Ð7NÐNÐNÐNÐNÕNÔNÐNÐNÐNÐNÐ3Ð7NÐNÑNÔNÕNÔNÐ3ÑNÔNÐNÕNÔNÑNÔNÐNÐNÕNÔN°sÑNÔNÐNÕNÔN°sÑNÔNÐNÐNÕNÔN°zÑNÔNÕNÔN°ÑNÔNÕNÔNÀvÑNÔNÕNÔNÐ7NÑNÔNÐNÐNÑNÐNÐNÐNÐNÐNÑNÐNÕNÕNÔNÐNÑNÔNÑNÔNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNÐNØ3Ð[°sÔ7NÐ[Ð7NÔ7SÐ[ÐTZÐ[Ð7SÐ7SÐTZÑ7[Ô7[Ð[Ð3Ð7[Ð[Ð[Ð[Ð[Õ[Ô[Ð[Ð[Ð[Ð[Ð3Ð7[Ð[Ñ[Ô[Õ[Ô[Ð3Ñ[Ô[Ð[Õ[Ô[Ñ[Ô[Ð[Ð[Õ[Ô[°sÑ[Ô[Ð[Õ[Ô[°sÑ[Ô[Ð[Ð[Õ[Ô[Ð7NÑ[Ô[Õ[Ô[Ð7SÑ[Ô[Õ[Ô[ÐTZÑ[Ô[Õ[Ô[Ð7[Ñ[Ô[Ð[Ð[Ñ[Ð[Ð[Ð[Ð[Ð[Ñ[Ð[Õ[Õ[Ô[Ð[Ñ[Ô[Ñ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ð[Ø"ÐI cÔ&<ÐIÐ&<Ô&AÐIÀ&ÐIÐ&AÐ&AÀ&Ñ&IÔ&IÐI�{Ð&IÐIÐIÐIÐIÕIÔIÐIÐIÐIÐI�{Ð&IÐIÑIÔIÕIÔI�{ÑIÔIÐIÕIÔIÑIÔIÐIÐIÕIÔI cÑIÔIÐIÕIÔI cÑIÔIÐIÐIÕIÔIÐ&<ÑIÔIÕIÔIÐ&AÑIÔIÕIÔIÀ&ÑIÔIÕIÔIÐ&IÑIÔIÐIÐIÑIÐIÐIÐIÐIÐIÑIÐIÕIÕIÔIÐIÑIÔIÑIÔIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIØ ÐG CÔ$:ÐGÐ$:Ô$?ÐGÀÐGÐ$?Ð$?ÀÑ$GÔ$GÐG�yÐ$GÐGÐGÐGÐGÕGÔGÐGÐGÐGÐG�yÐ$GÐGÑGÔGÕGÔG�yÑGÔGÐGÕGÔGÑGÔGÐGÐGÕGÔG CÑGÔGÐGÕGÔG CÑGÔGÐGÐGÕGÔGÐ$:ÑGÔGÕGÔGÐ$?ÑGÔGÕGÔGÀÑGÔGÕGÔGÐ$GÑGÔGÐGÐGÑGÐGÐGÐGÐGÐGÑGÐGÕGÕGÔGÐGÑGÔGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð �NŠNÑÔÐÐøˆC�NŠNÑÔÐÐøøøÐð1ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s–   ÷AQ÷*AP<÷6A8APù.U<AO6ÁO*APÁO6AO:ÁO:APÁO=AO:ÁO>APÁPAP<ÁPAP,ÁP,AP<ÁP0AQÁP<AQ 	ÁQ AQÁQAQ 	ÁQAQÁQAQÁQAQÚ__main__uS   
âœ… Táº¤T Cáº¢ TEST OPTICAL HP SENSOR & BACKGROUND WORKER Ä�á»€U VÆ¯á»¢T QUA 100%!)9Ú__doc__Úbuiltinsr!   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter   rv  Úsysr¯   Úunittest.mockr   r   r  r   r   r÷   Ústdoutr   r|  r"  r}  r2  r~  r  Ú"src.assistant_tool.core_controllerr
   r:  r   r1   rP   rw   r¦   r»   rÓ   rî   r.  rC  r`  r„  r•  r¤  r²  rÔ  rå  r  r  r  r4  r:  rJ  r[  rk  rs  rƒ  Ú__name__rµ   © r2   r0   ú<module>r�     sh  ððð ð € € € € € € € € € € € € €	€	€	€	Ø 
€
€
€
Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à
€7ˆ3Œ:�}Ñ%Ô%ð -Ø„J×Ò GÐÑ,Ô,Ð,à „‡‚��2”7—?’? 2¤7§<¢<°´·²ÀÑ0IÔ0IÈ4Ñ#PÔ#PÑQÔQÑ RÔ RÐ Rà =Ð =Ð =Ð =Ð =Ð =Ø @Ð @Ð @Ð @Ð @Ð @ð
$ð 
$ð 
$ð=ð =ð =ð$#ð #ð #ðL.+ð .+ð .+ðb]ð ]ð ]ð."Lð "Lð "LðJ"ð "ð "ð.*ð *ð *ðZ!ð !ð !ðHeð eð eðP%?ð %?ð %?ðP&ð &ð &ðR 2ð  2ð  2ðF/ð /ð /ðd.ð .ð .ðbð ð ð89*ð 9*ð 9*ðx"(ð "(ð "(ðJ;ð ;ð ;ð~>rð >rð >rðB,ð ,ð ,ð<Bð Bð BðJ)ð )ð )ð.Oð Oð Oðd/ð /ð /ðd>ð >ð >ðB ˆzÒÑØ&Ð&Ñ(Ô(Ð(ØÐÑÔÐØÐÑ Ô Ð Ø/Ð/Ñ1Ô1Ð1ØÐÑ Ô Ð Ø#Ð#Ñ%Ô%Ð%Ø4Ð4Ñ6Ô6Ð6Ø-Ð-Ñ/Ô/Ð/Ø6Ð6Ñ8Ô8Ð8Ø7Ð7Ñ9Ô9Ð9Ø3Ð3Ñ5Ô5Ð5Ø,Ð,Ñ.Ô.Ð.Ø5Ð5Ñ7Ô7Ð7Ø=Ð=Ñ?Ô?Ð?Ø<Ð<Ñ>Ô>Ð>Ø+Ð+Ñ-Ô-Ð-Ø6Ð6Ñ8Ô8Ð8Ø:Ð:Ñ<Ô<Ð<Ø@Ð@ÑBÔBÐBØ?Ð?ÑAÔAÐAØ.Ð.Ñ0Ô0Ð0Ø?Ð?ÑAÔAÐAØ)Ð)Ñ+Ô+Ð+Ø:Ð:Ñ<Ô<Ð<Ø)Ð)Ñ+Ô+Ð+Ø=Ð=Ñ?Ô?Ð?Ø	€EÐ
`ÑaÔaÐaÐaÐað7 Ðr2   