usLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267063 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267066 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Stack trace: [Mon Jul 21 16:15:42.267069 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267073 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267078 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267081 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Stack trace: [Mon Jul 21 16:15:42.267084 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267088 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267106 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fopen(./LogosArochi/MAR-130914.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267116 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:42.267120 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267124 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267122 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267131 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:42.267131 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267135 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:42.267136 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267138 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267140 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267142 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267147 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267147 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267150 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:42.267153 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:42.267162 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267164 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267165 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267167 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267193 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267196 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:42.267200 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267203 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267235 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267245 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:42.267243 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267250 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267252 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:42.267254 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267258 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267260 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267262 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267264 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:42.267268 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267269 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267271 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267272 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:42.267276 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267276 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267285 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267286 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:42.267290 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267291 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267293 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267294 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:42.267298 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267302 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267376 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267383 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:42.267387 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267384 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267336 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267392 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:42.267391 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267397 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267400 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267401 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267403 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:42.267407 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267408 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267410 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267412 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:42.267422 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267422 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267425 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:42.267427 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267429 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267432 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267432 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267437 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:42.267440 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267437 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267440 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Stack trace: [Mon Jul 21 16:15:42.267443 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267445 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Stack trace: [Mon Jul 21 16:15:42.267448 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267451 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267452 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267455 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267459 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267461 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267463 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Stack trace: [Mon Jul 21 16:15:42.267465 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Stack trace: [Mon Jul 21 16:15:42.267467 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267469 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267470 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267476 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267482 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267485 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP Stack trace: [Mon Jul 21 16:15:42.267488 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267491 2025] [php7:notice] [pid 2890108] [client 136.143.176.60:44114] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267512 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267519 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Stack trace: [Mon Jul 21 16:15:42.267524 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267521 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fopen(./LogosArochi/MAR-130917.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267527 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267529 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:42.267533 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267535 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267537 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Stack trace: [Mon Jul 21 16:15:42.267539 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267541 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267544 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267545 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267549 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:42.267549 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267552 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267552 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP Stack trace: [Mon Jul 21 16:15:42.267556 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267557 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267565 2025] [php7:notice] [pid 2889414] [client 136.143.177.44:58210] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267565 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267570 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:42.267573 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267573 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267576 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267578 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Stack trace: [Mon Jul 21 16:15:42.267581 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267584 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267647 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267655 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Stack trace: [Mon Jul 21 16:15:42.267659 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267662 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267668 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267667 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267675 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Stack trace: [Mon Jul 21 16:15:42.267678 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Stack trace: [Mon Jul 21 16:15:42.267681 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267685 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267685 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267690 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267692 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267694 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Warning: fopen(./LogosArochi/MAR-130916.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267699 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP Stack trace: [Mon Jul 21 16:15:42.267698 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267702 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Stack trace: [Mon Jul 21 16:15:42.267703 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267705 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Stack trace: [Mon Jul 21 16:15:42.267708 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267708 2025] [php7:notice] [pid 2891128] [client 136.143.177.43:48100] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267710 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267712 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267715 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267718 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267720 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267722 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Stack trace: [Mon Jul 21 16:15:42.267723 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP Stack trace: [Mon Jul 21 16:15:42.267725 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267727 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267729 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267731 2025] [php7:notice] [pid 2890618] [client 136.143.177.43:44662] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267734 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267737 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP Stack trace: [Mon Jul 21 16:15:42.267741 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267744 2025] [php7:notice] [pid 2885380] [client 136.143.177.61:54892] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267786 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Warning: fopen(./LogosArochi/MAR-130918.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267797 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Stack trace: [Mon Jul 21 16:15:42.267801 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267805 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267810 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267813 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Stack trace: [Mon Jul 21 16:15:42.267810 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267817 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267818 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Stack trace: [Mon Jul 21 16:15:42.267821 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267821 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Warning: fopen(./LogosArochi/MAR-130923.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267826 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267826 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267841 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Stack trace: [Mon Jul 21 16:15:42.267843 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP Stack trace: [Mon Jul 21 16:15:42.267845 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267847 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267847 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267851 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267852 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267852 2025] [php7:notice] [pid 2885033] [client 136.143.177.61:57162] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267856 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Stack trace: [Mon Jul 21 16:15:42.267858 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267860 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267861 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Stack trace: [Mon Jul 21 16:15:42.267869 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267870 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267874 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267874 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267878 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP Stack trace: [Mon Jul 21 16:15:42.267879 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267881 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267882 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP Stack trace: [Mon Jul 21 16:15:42.267885 2025] [php7:notice] [pid 2890659] [client 136.143.176.44:40186] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267886 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267890 2025] [php7:notice] [pid 2885037] [client 136.143.176.60:32878] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.267957 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.267965 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Stack trace: [Mon Jul 21 16:15:42.267969 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267973 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.267979 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.267983 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Stack trace: [Mon Jul 21 16:15:42.267986 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.267990 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.267995 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.267997 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP Stack trace: [Mon Jul 21 16:15:42.268001 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268004 2025] [php7:notice] [pid 2890695] [client 136.143.176.44:55330] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.268162 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.268172 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Stack trace: [Mon Jul 21 16:15:42.268177 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268181 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.268188 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.268191 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Stack trace: [Mon Jul 21 16:15:42.268194 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268197 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.268202 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.268205 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP Stack trace: [Mon Jul 21 16:15:42.268208 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268211 2025] [php7:notice] [pid 2891149] [client 136.143.177.43:56798] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:42.268533 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:42.268549 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Stack trace: [Mon Jul 21 16:15:42.268555 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268559 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:42.268567 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:42.268570 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Stack trace: [Mon Jul 21 16:15:42.268574 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268577 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:42.268583 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:42.268586 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP Stack trace: [Mon Jul 21 16:15:42.268589 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:42.268592 2025] [php7:notice] [pid 2890624] [client 136.143.177.44:52298] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267163 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Warning: fopen(./LogosArochi/MAR-130913.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267192 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Stack trace: [Mon Jul 21 16:15:44.267200 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267193 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267204 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267196 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Warning: fopen(./LogosArochi/MAR-130915.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267212 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Stack trace: [Mon Jul 21 16:15:44.267220 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Stack trace: [Mon Jul 21 16:15:44.267220 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267224 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267225 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Stack trace: [Mon Jul 21 16:15:44.267227 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267229 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267230 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267236 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267237 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267241 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267241 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267244 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP Stack trace: [Mon Jul 21 16:15:44.267247 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Stack trace: [Mon Jul 21 16:15:44.267248 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267249 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267251 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267252 2025] [php7:notice] [pid 2885034] [client 136.143.177.61:58506] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267253 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Stack trace: [Mon Jul 21 16:15:44.267269 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267273 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267277 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267276 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267281 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP Stack trace: [Mon Jul 21 16:15:44.267283 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267284 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267286 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP Stack trace: [Mon Jul 21 16:15:44.267288 2025] [php7:notice] [pid 2888105] [client 136.143.177.61:41580] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267290 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267294 2025] [php7:notice] [pid 2885031] [client 136.143.177.61:58654] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267313 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267321 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Stack trace: [Mon Jul 21 16:15:44.267326 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267330 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267335 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267338 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Stack trace: [Mon Jul 21 16:15:44.267342 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267345 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267350 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267353 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP Stack trace: [Mon Jul 21 16:15:44.267356 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267370 2025] [php7:notice] [pid 2887211] [client 136.143.177.62:38746] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267395 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267398 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fopen(./LogosArochi/MAR-130914.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267404 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:44.267407 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:44.267412 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267414 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267417 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267418 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267424 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267425 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267427 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:44.267429 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:44.267431 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267432 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267435 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267436 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267441 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267442 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267444 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP Stack trace: [Mon Jul 21 16:15:44.267445 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP Stack trace: [Mon Jul 21 16:15:44.267448 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267454 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267461 2025] [php7:notice] [pid 2890623] [client 136.143.176.44:48174] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267466 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:44.267471 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267475 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267449 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267481 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267482 2025] [php7:notice] [pid 2885036] [client 136.143.177.62:60644] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267484 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:44.267488 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267491 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267496 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267493 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267499 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP Stack trace: [Mon Jul 21 16:15:44.267502 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:44.267503 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267507 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267507 2025] [php7:notice] [pid 2890719] [client 136.143.176.44:53764] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267511 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267517 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267520 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:44.267524 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267527 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267532 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267543 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP Stack trace: [Mon Jul 21 16:15:44.267553 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267556 2025] [php7:notice] [pid 2890380] [client 136.143.177.43:49112] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267595 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267604 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:44.267609 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267612 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267618 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267621 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:44.267625 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267630 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267637 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267642 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP Stack trace: [Mon Jul 21 16:15:44.267645 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267648 2025] [php7:notice] [pid 2889415] [client 136.143.177.61:53128] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267668 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267675 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:44.267679 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267682 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267688 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267691 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:44.267695 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267698 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267703 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267709 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP Stack trace: [Mon Jul 21 16:15:44.267712 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267715 2025] [php7:notice] [pid 2887282] [client 136.143.176.60:50878] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267722 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fopen(./LogosArochi/MAR-130917.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267730 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:44.267735 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267733 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Warning: fopen(./LogosArochi/MAR-130925.png): failed to open stream: Permission denied in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 188 [Mon Jul 21 16:15:44.267739 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267742 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Stack trace: [Mon Jul 21 16:15:44.267746 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267747 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267749 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:44.267751 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 2. fopen() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:188 [Mon Jul 21 16:15:44.267753 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267756 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267757 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Warning: fwrite() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 189 [Mon Jul 21 16:15:44.267761 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP Stack trace: [Mon Jul 21 16:15:44.267761 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Warning: fclose() expects parameter 1 to be resource, bool given in /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php on line 190 [Mon Jul 21 16:15:44.267764 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267765 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP Stack trace: [Mon Jul 21 16:15:44.267769 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 1. {main}() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:0 [Mon Jul 21 16:15:44.267772 2025] [php7:notice] [pid 2890694] [client 136.143.177.44:52780] PHP 2. fwrite() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:189 [Mon Jul 21 16:15:44.267772 2025] [php7:notice] [pid 2885032] [client 136.143.176.60:50598] PHP 2. fclose() /var/www/html/imagenesAptusLegal/arochi/wsImageSave_v3.php:190 [Mon Jul 21 16:15:44.267779 2025] [php7:notice] [pid 2890694] [client 136.143.1770323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:42:53) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:42:54) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:42:55) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:42:55) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:42:55) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:42:55) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:42:55) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:42:55) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:42:55) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:42:55) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:42:55) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:42:55) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:42:55) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:42:55) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:42:55) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:42:55) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:42:55) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:42:55) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:42:55) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:42:55) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:42:55) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:42:55) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:42:55) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:42:55) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:42:55) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:42:55) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:42:55) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:42:55) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:42:55) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:42:55) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:42:56) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:42:57) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:42:57) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:42:57) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:42:57) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:42:57) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:42:57) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:42:57) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:42:57) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:42:57) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:42:57) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:42:57) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:42:57) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:42:57) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:42:57) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:42:57) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:42:57) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:42:57) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:42:57) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:42:57) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:42:57) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:42:57) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:42:57) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:42:57) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:42:57) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:42:57) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:42:57) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:42:57) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:42:57) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:42:58) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:42:59) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:42:59) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:42:59) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:42:59) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:42:59) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:42:59) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:42:59) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:42:59) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:42:59) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:42:59) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:42:59) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:42:59) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:42:59) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:42:59) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:42:59) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:42:59) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:42:59) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:42:59) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:42:59) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:42:59) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:42:59) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:42:59) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:42:59) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:42:59) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:42:59) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:42:59) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:42:59) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:42:59) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:00) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:01) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:01) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:01) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:01) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:01) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:01) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:01) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:01) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:01) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:01) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:01) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:01) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:01) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:01) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:01) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:01) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:01) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:01) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:01) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:01) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:01) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:01) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:01) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:01) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:01) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:01) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:01) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:01) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:02) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:03) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:03) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:03) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:03) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:03) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:03) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:03) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:03) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:03) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:03) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:03) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:03) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:03) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:03) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:03) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:03) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:03) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:03) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:03) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:03) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:03) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:03) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:03) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:03) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:03) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:03) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:03) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:03) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:04) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:05) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:05) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:05) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:05) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:05) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:05) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:05) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:05) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:05) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:05) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:05) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:05) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:05) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:05) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:05) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:05) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:05) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:05) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:05) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:05) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:05) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:05) - Error al guardar imagen localmente [rochilindner.com"} [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:49) - Tokens generados: 1000.d02e05469e24946938abe02c0daf011a.e8c946c90c6a234f1401fd732742029a [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:50) - Intento 0 el registro no contiene foto asociada [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:50) - ERROR al obtener imagen, intento: 1 , respuesta: null [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:52) - Intento 1 el registro no contiene foto asociada [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:52) - ERROR al obtener imagen, intento: 2 , respuesta: null [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:54) - Intento 2 el registro no contiene foto asociada [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:54) - ERROR al obtener imagen, intento: 3 , respuesta: null [d30b2072-aa82-459e-897a-b989fdb2d49c](2024-05-22 11:05:56) - No se pudo encontrar una imagen asociada a registro de CRM \n [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:01) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122139","MarcaId":"4597192000175555376","user":"uzaldivar@arochilindner.com"} [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:08) - Tokens generados: 1000.d02e05469e24946938abe02c0daf011a.e8c946c90c6a234f1401fd732742029a [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:08) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:08) - Imagen guardada localmente de manera exitosa [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:09) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2024-05-22T10:11:09-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2024-05-22T10:05:41-06:00", "id": "4597192000175555376", "Created_By": { "name": "Ulises Zaldivar", "id": "4597192000143282101" } }, "message": "record updated", "status": "success" } ] } [267122a3-8666-4477-8851-7e460a4c751c](2024-05-22 11:11:09) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-122139.png [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:36) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122140","MarcaId":"4597192000175524606","user":"gbringas@arochilindner.com"} [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:43) - Tokens generados: 1000.a97826ad6bf24c2607ccb3b57282ba31.c33165a13c3a845b784bc1993772aa16 [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:44) - Intento 0 el registro no contiene foto asociada [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:44) - ERROR al obtener imagen, intento: 1 , respuesta: null [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:46) - Intento 1 el registro no contiene foto asociada [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:46) - ERROR al obtener imagen, intento: 2 , respuesta: null [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:49) - Intento 2 el registro no contiene foto asociada [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:49) - ERROR al obtener imagen, intento: 3 , respuesta: null [d66948e5-37d6-4d99-b18c-d7d75badff1d](2024-05-22 14:44:51) - No se pudo encontrar una imagen asociada a registro de CRM \n [06a21980-32b0-4dcd-b845-4135edffda63](2024-05-22 14:47:07) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122141","MarcaId":"4597192000175524670","user":"gbringas@arochilindner.com"} [06a21980-32b0-4dcd-b845-4135edffda63](2024-05-22 14:47:14) - Tokens generados: 1000.a97826ad6bf24c2607ccb3b57282ba31.c33165a13c3a845b784bc1993772aa16 [06a21980-32b0-4dcd-b845-4135edffdux-signatures-nvidia-5.15.0-1051-aws (= 5.15.0-1051.56~20.04.1+2), linux-objects-nvidia-470-5.15.0-1051-aws (= 5.15.0-1051.56~20.04.1+2), nvidia-kernel-common-470 (>= 470.223.02) Filename: pool/restricted/l/linux-restricted-modules-aws-5.15/linux-modules-nvidia-470-5.15.0-1051-aws_5.15.0-1051.56~20.04.1+2_amd64.deb Size: 8884 MD5sum: 5ef8e5ec224ffef5560270d8f51ac35c SHA1: 3753fb23907fee3404ace3a67b408ff58a2d016c SHA256: 2295bf6d847670f0734bd5b76c9d4fed2609b2d95c9a99088782024cc0e53a1f SHA512: c8004212f341e74f6b46692cc815864eb570eaf6078dd7c35a2fa589ba18f3d7efc4000065fe298fe2a8fa0da2104d96a6554126d7f4e322795c7168209bc399 Description: Linux kernel nvidia modules for version 5.15.0-1051 Description-md5: 693f15d773ab95ed0d9d837e1fe05544 Package: linux-modules-nvidia-470-5.15.0-1051-azure Architecture: amd64 Version: 5.15.0-1051.59~20.04.1+1 Priority: optional Section: restricted/kernel Source: linux-restricted-modules-azure-5.15 Origin: Ubuntu Maintainer: Canonical Kernel Team Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 28 Depends: debconf (>= 0.5) | debconf-2.0, linux-image-5.15.0-1051-azure | linux-image-unsigned-5.15.0-1051-azure, linux-signatures-nvidia-5.15.0-1051-azure (= 5.15.0-1051.59~20.04.1+1), linux-objects-nvidia-470-5.15.0-1051-azure (= 5.15.0-1051.59~20.04.1+1), nvidia-kernel-common-470 (>= 470.223.02) Filename: pool/restricted/l/linux-restricted-modules-azure-5.15/linux-modules-nvidia-470-5.15.0-1051-azure_5.15.0-1051.59~20.04.1+1_amd64.deb Size: 8976 MD5sum: bc6f211350196a27211ff24f9901502d SHA1: 3e23a9c2af9a7c07874eca63cfa02ee01061bc94 SHA256: b932597e3451c6c89077fc8f9ebe5f97d1cedb04c37f7380bc76370c9047ca75 SHA512: 9e02aeb2ea355cf2557d8d508608b6744e6af7c5121e8b9f0d9fb66ad75213cf7beea19a9b9dc41e6df496fac771a845f82291b098f08e01ec1f52b8e0eb9f43 Description: Linux kernel nvidia modules for version 5.15.0-1051 Description-md5: 12fc231d7fba780033d568f1ac8f9125 Package: linux-modules-nvidia-470-5.15.0-1051-gcp Architecture: amd64 Version: 5.15.0-1051.59~20.04.1 Priority: optional Section: restricted/kernel Source: linux-restricted-modules-gcp-5.15 Origin: Ubuntu Maintainer: Canonical Kernel Team Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 32 Depends: debconf (>= 0.5) | debconf-2.0, linux-image-5.15.0-1051-gcp | linux-image-unsigned-5.15.0-1051-gcp, linux-signatures-nvidia-5.15.0-1051-gcp (= 5.15.0-1051.59~20.04.1), linux-objects-nvidia-470-5.15.0-1051-gcp (= 5.15.0-1051.59~20.04.1), nvidia-kernel-common-470 (>= 470.223.02) Filename: pool/restricted/l/linux-restricted-modules-gcp-5.15/linux-modules-nvidia-470-5.15.0-1051-gcp_5.15.0-1051.59~20.04.1_amd64.deb Size: 7148 MD5sum: c9f94704e0eed1ab2557819a7f96ab30 SHA1: 3d7a7797afcc70eb84527d7483688013ac93435c SHA256: 8c9472b7f78bc9ab020549641878f98d59b1f0561e02a2e30366c5fa6a4f7870 SHA512: 4ffe5be5d3740b078bdf701ed2c668528c3c549f7ecc7da0abdcbeab66a613a1b26ecbb1aabcb34de61b71a85b020c2675a9a5ba0bcdf9933617ead59ce98656 Description: Linux kernel nvidia modules for version 5.15.0-1051 Description-md5: 74a6fe9ba133e03ee30d1451eb44478e Package: linux-modules-nvidia-470-5.15.0-1051-intel-iotg Architecture: amd64 Version: 5.15.0-1051.57~20.04.1+1 Priority: optional Section: restricted/kernel Source: linux-restricted-modules-intel-iotg-5.15 Origin: Ubuntu Maintainer: Canonical Kernel Team Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 34 Depends: debconf (>= 0.5) | debconf-2.0, linux-image-5.15.0-1051-intel-iotg | linux-image-unsigned-5.15.0-1051-intel-iotg, linux-signatures-nvidia-5.15.0-1051-intel-iotg (= 5.15.0-1051.57~20.04.1+1), linux-objects-nvidia-470-5.15.0-1051-intel-iotg (= 5.15.0-1051.57~20.04.1+1), nvidia-kernel-common-470 (>= 470.239.06) Filename: pool/restricted/l/linux-restricted-modules-intel-iotg-5.15/linux-modules-nvidia-470-5.15.0-1051-intel-iotg_5.15.0-1051.57~20.04.1+1_amd64.deb Size: 15392 MD5sum: 65f2ec3c32a08dbb8264be1198424006 SHA1: ac27676b41005fb56be291132b0227933383096b SHA256: f4fb53d61ffc4eda4e46fdfbbe0-4272-9357-8ecb215eff21](2025-07-21 15:42:21) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:21) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 15:42:21) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:21) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 15:42:21) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:21) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:21) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:21) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 15:42:21) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:21) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:21) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:21) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:21) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:21) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:21) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:21) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:21) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 15:42:21) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 15:42:21) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:21) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:21) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:21) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:21) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:21) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:21) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:22) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 15:42:23) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:23) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 15:42:23) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 15:42:23) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:23) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 15:42:23) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:23) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:23) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:23) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:23) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 15:42:23) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:23) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:23) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:23) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:23) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:23) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:23) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:23) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:23) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 15:42:23) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 15:42:23) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 15:42:23) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:23) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:23) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:23) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:23) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:23) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:23) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:24) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:25) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:25) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 15:42:25) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:25) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 15:42:25) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:25) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 15:42:25) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:25) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 15:42:25) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:25) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:25) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 15:42:25) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:25) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:25) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:25) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:25) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 15:42:25) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:25) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:25) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:25) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 15:42:25) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 15:42:25) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:25) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:25) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:25) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:25) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:25) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:25) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:26) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:glevel = g;\n this.charset = this._charsets[g];\n }\n\n public setgCharset(g: number, charset: ICharset | undefined): void {\n this._charsets[g] = charset;\n if (this.glevel === g) {\n this.charset = charset;\n }\n }\n}\n", "/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CHAR_DATA_CODE_INDEX, NULL_CELL_CODE, WHITESPACE_CELL_CODE } from 'common/buffer/Constants';\nimport { IBufferService } from 'common/services/Services';\n\nexport function updateWindowsModeWrappedState(bufferService: IBufferService): void {\n // Winpty does not support wraparound mode which means that lines will never\n // be marked as wrapped. This causes issues for things like copying a line\n // retaining the wrapped new line characters or if consumers are listening\n // in on the data stream.\n //\n // The workaround for this is to listen to every incoming line feed and mark\n // the line as wrapped if the last character in the previous line is not a\n // space. This is certainly not without its problems, but generally on\n // Windows when text reaches the end of the terminal it's likely going to be\n // wrapped.\n const line = bufferService.buffer.lines.get(bufferService.buffer.ybase + bufferService.buffer.y - 1);\n const lastChar = line?.get(bufferService.cols - 1);\n\n const nextLine = bufferService.buffer.lines.get(bufferService.buffer.ybase + bufferService.buffer.y);\n if (nextLine && lastChar) {\n nextLine.isWrapped = (lastChar[CHAR_DATA_CODE_INDEX] !== NULL_CELL_CODE && lastChar[CHAR_DATA_CODE_INDEX] !== WHITESPACE_CELL_CODE);\n }\n}\n", "/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/**\n * C0 control codes\n * See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes\n */\nexport namespace C0 {\n /** Null (Caret = ^@, C = \\0) */\n export const NUL = '\\x00';\n /** Start of Heading (Caret = ^A) */\n export const SOH = '\\x01';\n /** Start of Text (Caret = ^B) */\n export const STX = '\\x02';\n /** End of Text (Caret = ^C) */\n export const ETX = '\\x03';\n /** End of Transmission (Caret = ^D) */\n export const EOT = '\\x04';\n /** Enquiry (Caret = ^E) */\n export const ENQ = '\\x05';\n /** Acknowledge (Caret = ^F) */\n export const ACK = '\\x06';\n /** Bell (Caret = ^G, C = \\a) */\n export const BEL = '\\x07';\n /** Backspace (Caret = ^H, C = \\b) */\n export const BS = '\\x08';\n /** Character Tabulation, Horizontal Tabulation (Caret = ^I, C = \\t) */\n export const HT = '\\x09';\n /** Line Feed (Caret = ^J, C = \\n) */\n export const LF = '\\x0a';\n /** Line Tabulation, Vertical Tabulation (Caret = ^K, C = \\v) */\n export const VT = '\\x0b';\n /** Form Feed (Caret = ^L, C = \\f) */\n export const FF = '\\x0c';\n /** Carriage Return (Caret = ^M, C = \\r) */\n export const CR = '\\x0d';\n /** Shift Out (Caret = ^N) */\n export const SO = '\\x0e';\n /** Shift In (Caret = ^O) */\n export const SI = '\\x0f';\n /** Data Link Escape (Caret = ^P) */\n export const DLE = '\\x10';\n /** Device Control One (XON) (Caret = ^Q) */\n export const DC1 = '\\x11';\n /** Device Control Two (Caret = ^R) */\n export const DC2 = '\\x12';\n /** Device Control Three (XOFF) (Caret = ^S) */\n export const DC3 = '\\x13';\n /** Device Control Four (Caret = ^T) */\n export const DC4 = '\\x14';\n /** Negative Acknowledge (Caret = ^U) */\n export const NAK = '\\x15';\n /** Synchronous Idle (Caret = ^V) */\n export const SYN = '\\x16';\n /** End of Transmission Block (Caret = ^W) */\n export const ETB = '\\x17';\n /** Cancel (Caret = ^X) */\n export const CAN = '\\x18';\n /** End of Medium (Caret = ^Y) */\n export const EM = '\\x19';\n /** Substitute (Caret = ^Z) */\n export const SUB = '\\x1a';\n /** Escape (Caret = ^[, C = \\e) */\n export const ESC = '\\x1b';\n /** File Separator (Caret = ^\\) */\n export const FS = '\\x1c';\n /** Group Separator (Caret = ^]) */\n export const GS = '\\x1d';\n /** Record Separator (Caret = ^^) */\n export const RS = '\\x1e';\n /** Unit Separator (Caret = ^_) */\n export const US = '\\x1f';\n /** Space */\n export const SP = '\\x20';\n /** Delete (Caret = ^?) */\n export const DEL = '\\x7f';\n}\n\n/**\n * C1 control codes\n * See = https://en.wikipedia.org/wiki/C0_and_C1_control_codes\n */\nexport namespace C1 {\n /** padding character */\n export const PAD = '\\x80';\n /** High Octet Preset */\n export const HOP = '\\x81';\n /** Break Permitted Here */\n export const BPH = '\\x82';\n /** No Break Here */\n export const NBH = '\\x83';\n /** Index */\n export const IND = '\\x84';\n /** Next Line */\n export const NEL = '\\x85';\n /** Start of Selected Area */\n export const SSA = '\\x86';\n /** End of Selected Area */\n export const ESA = '\\x87';\n /** Horizontal Tabulation Set */\n export const HTS = '\\x88';\n /** Horizontal Tabulation With Justification */\n export const HTJ = '\\x89';\n /** Vertical Tabulation Set */\n export const VTS = '\\x8a';\n /** Partial Line Down */\n export const PLD = '\\x8b';\n /** Partial Line Up */\n export const PLU = '\\x8c';\n /** Reverse Index */\n export const RI = '\\x8d';\n /** Single-Shift 2 */\n export const SS2 = '\\x8e';\n /** Single-Shift 3 */\n export const SS3 = '\\x8f';\n /** Device Control String */\n export const DCS = '\\x90';\n /** Private Use 1 */\n export const PU1 = '\\x91';\n /** Private Use 2 */\n export const PU2 = '\\x92';\n /** Set Transmit State */\n export const STS = '\\x93';\n /** Destructive backspace, intended to eliminate ambiguity about meaning of BS. */\n export const CCH = '\\x94';\n /** Message Waiting */\n export const MW = '\\x95';\n /** Start of Protected Area */\n export const SPA = '\\x96';\n /** End of Protected Area */\n export const EPA = '\\x97';\n /** Start of String */\n export const SOS = '\\x98';\n /** Single Graphic Character Introducer */\n export const SGCI = '\\x99';\n /** Single Character Introducer */\n export const SCI = '\\x9a';\n /** Control Sequence Introducer */\n export const CSI = '\\x9b';\n /** String Terminator */\n export const ST = '\\x9c';\n /** Operating System Command */\n export const OSC = '\\x9d';\n /** Privacy Message */\n export const PM = '\\x9e';\n /** Application Program Command */\n export const APC = '\\x9f';\n}\nexport namespace C1_ESCAPED {\n export const ST = `${C0.ESC}\\\\`;\n}\n", "/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IParams, ParamsArray } from 'common/parser/Types';\n\n// max value supported for a single param/subparam (clamped to positive int32 range)\nconst MAX_VALUE = 0x7FFFFFFF;\n// max allowed subparams for a single sequence (hardcoded limitation)\nconst MAX_SUBPARAMS = 256;\n\n/**\n * Params storage class.\n * This type is used by the parser to accumulate sequence parameters and sub parameters\n * and transmit them to the input handler actions.\n *\n * NOTES:\n * - params object for action handlers is borrowed, use `.toArray` or `.clone` to get a copy\n * - never read beyond `params.length - 1` (likely to contain arbitrary data)\n * - `.getSubParams` returns a borrowed typed array, use `.getSubParamsAll` for cloned sub params\n * - hardcoded limitations:\n * - max. value for a single (sub) param is 2^31 - 1 (greater values are clamped to that)\n * - max. 256 sub params possible\n * - negative values are not allowed beside -1 (placeholder for default value)\n *\n * About ZDM (Zero Default Mode):\n * ZDM is not orchestrated by this class. If the parser is in ZDM,\n * it should add 0 for empty params, otherwise -1. This does not apply\n * to subparams, empty subparams should always be added with -1.\n */\nexport class Params implements IParams {\n // params store and length\n public params: Int32Array;\n public length: number;\n\n // sub params store and length\n protected _subParams: Int32Array;\n protected _subParamsLength: number;\n\n // sub params offsets from param: param idx --> [start, end] offset\n private _subParamsIdx: Uint16Array;\n private _rejectDigits: boolean;\n private _rejectSubDigits: boolean;\n private _digitIsSub: boolean;\n\n /**\n * Create a `Params` type from JS array representation.\n */\n public static fromArray(values: ParamsArray): Params {\n const params = new Params();\n if (!values.length) {\n return params;\n }\n // skip leading sub params\n for (let i = (Array.isArray(values[0])) ? 1 : 0; i < values.length; ++i) {\n const value = values[i];\n if (Array.isArray(value)) {\n for (let k = 0; k < value.length; ++k) {\n params.addSubParam(value[k]);\n }\n } else {\n params.addParam(value);\n }\n }\n return params;\n }\n\n /**\n * @param maxLength max length of storable parameters\n * @param maxSubParamsLength max length of storable sub parameters\n */\n constructor(public maxLength: number = 32, public maxSubParamsLength: number = 32) {\n if (maxSubParamsLength > MAX_SUBPARAMS) {\n throw new Error('maxSubParamsLength must not be greater than 256');\n }\n this.params = new Int32Array(maxLength);\n this.length = 0;\n this._subParams = new Int32Array(maxSubParamsLength);\n this._subParamsLength = 0;\n this._subParamsIdx = new Uint16Array(maxLength);\n this._rejectDigits = false;\n this._rejectSubDigits = false;\n this._digitIsSub = false;\n }\n\n /**\n * Clone object.\n */\n public clone(): Params {\n const newParams = new Params(this.maxLength, this.maxSubParamsLength);\n newParams.params.set(this.params);\n newParams.length = this.length;\n newParams._subParams.set(this._subParams);\n newParams._subParamsLength = this._subParamsLength;\n newParams._subParamsIdx.set(this._subParamsIdx);\n newParams._rejectDigits = this._rejectDigits;\n newParams._rejectSubDigits = this._rejectSubDigits;\n newParams._digitIsSub = this._digitIsSub;\n return newParams;\n }\n\n /**\n * Get a JS array representation of the current parameters and sub parameters.\n * The array is structured as follows:\n * sequence: \"1;2:3:4;5::6\"\n * array : [1, 2, [3, 4], 5, [-1, 6]]\n */\n public toArray(): ParamsArray {\n const res: ParamsArray = [];\n for (let i = 0; i < this.length; ++i) {\n res.push(this.params[i]);\n const start = this._subParamsIdx[i] >> 8;\n const end = this._subParamsIdx[i] & 0xFF;\n if (end - start > 0) {\n res.push(Array.prototype.slice.call(this._subParams, start, end));\n }\n }\n return res;\n }\n\n /**\n * Reset to initial empty state.\n */\n public reset(): void {\n this.length = 0;\n this._subParamsLength = 0;\n this._rejectDigits = false;\n this._rejectSubDigits = false;\n this._digitIsSub = false;\n }\n\n /**\n * Add a parameter value.\n * `Params` only stores up to `maxLength` parameters, any later\n * parameter will be ignored.\n * Note: VT devices only stored up to 16 values, xterm seems to\n * store up to 30.\n */\n public addParam(value: number): void {\n this._digitIsSub = false;\n if (this.length >= this.maxLength) {\n this._rejectDigits = true;\n return;\n }\n if (value < -1) {\n throw new Error('values lesser than -1 are not allowed');\n }\n this._subParamsIdx[this.length] = this._subParamsLength << 8 | this._subParamsLength;\n this.params[this.length++] = value > MAX_VALUE ? MAX_VALUE : value;\n }\n\n /**\n * Add a sub parameter value.\n * The sub parameter is automatically associated with the last parameter value.\n * Thus it is not possible to add a subparameter without any parameter added yet.\n * `Params` only stores up to `subParamsLength` sub parameters, any later\n * sub parameter will be ignored.\n */\n public addSubParam(value: number): void {\n this._digitIsSub = true;\n if (!this.length) {\n return;\n }\n if (this._rejectDigits || this._subParamsLength >= this.maxSubParamsLength) {\n this._rejectSubDigits = true;\n return;\n }\n if (value < -1) {\n throw new Error('values lesser than -1 are not allowed');\n }\n this._subParams[this._subParamsLength++] = value > MAX_VALUE ? MAX_VALUE : value;\n this._subParamsIdx[this.length - 1]++;\n }\n\n /**\n * Whether parameter at index `idx` has sub parameters.\n */\n public hasSubParams(idx: number): boolean {\n return ((this._subParamsIdx[idx] & 0xFF) - (this._subParamsIdx[idx] >> 8) > 0);\n }\n\n /**\n * Return sub parameters for parameter at index `idx`.\n * Note: The values are borrowed, thus you need to copy\n * the values if you need to hold them in nonlocal scope.\n */\n public getSubParams(idx: number): Int32Array | null {\n const start = this._subParamsIdx[idx] >> 8;\n const end = this._subParamsIdx[idx] & 0xFF;\n if (end - start > 0) {\n return this._subParams.subarray(start, end);\n }\n return null;\n }\n\n /**\n * Return all sub parameters as {idx: subparams} mapping.\n * Note: The values are not borrowed.\n */\n public getSubParamsAll(): {[idx: number]: Int32Array} {\n const result: {[idx: number]: Int32Array} = {};\n for (let i = 0; i < this.length; ++i) {\n const start = this._subParamsIdx[i] >> 8;\n const end = this._subParamsIdx[i] & 0xFF;\n if (end - start > 0) {\n result[i] = this._subParams.slice(start, end);\n }\n }\n return result;\n }\n\n /**\n * Add a single digit value to current parameter.\n * This is used by the parser to account digits on a char by char basis.\n */\n public addDigit(value: number): void {\n let length;\n if (this._rejectDigits\n || !(length = this._digitIsSub ? this._subParamsLength : this.length)\n || (this._digitIsSub && this._rejectSubDigits)\n ) {\n return;\n }\n\n const store = this._digitIsSub ? this._subParams : this.params;\n const cur = store[length - 1];\n store[length - 1] = ~cur ? Math.min(cur * 10 + value, MAX_VALUE) : value;\n }\n}\n", "/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IOscHandler, IHandlerCollection, OscFallbackHandlerType, IOscParser, ISubParserStackState } from 'common/parser/Types';\nimport { OscState, PAYLOAD_LIMIT } from 'common/parser/Constants';\nimport { utf32ToString } from 'common/input/TextDecoder';\nimport { IDisposable } from 'common/Types';\n\nconst EMPTY_HANDLERS: IOscHandler[] = [];\n\nexport class OscParser implements IOscParser {\n private _state = OscState.START;\n private _active = EMPTY_HANDLERS;\n private _id = -1;\n private _handlers: IHandlerCollection = Object.create(null);\n private _handlerFb: OscFallbackHandlerType = () => { };\n private _stack: ISubParserStackState = {\n paused: false,\n loopPosition: 0,\n fallThrough: false\n };\n\n public registerHandler(ident: number, handler: IOscHandler): IDisposable {\n if (this._handlers[ident] === undefined) {\n this._handlers[ident] = [];\n }\n const handlerList = this._handlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearHandler(ident: number): void {\n if (this._handlers[ident]) delete this._handlers[ident];\n }\n public setHandlerFallback(handler: OscFallbackHandlerType): void {\n this._handlerFb = handler;\n }\n\n public dispose(): void {\n this._handlers = Object.create(null);\n this._handlerFb = () => { };\n this._active = EMPTY_HANDLERS;\n }\n\n public reset(): void {\n // force cleanup handlers if payload was already sent\n if (this._state === OscState.PAYLOAD) {\n for (let j = this._stack.paused ? this._stack.loopPosition - 1 : this._active.length - 1; j >= 0; --j) {\n this._active[j].end(false);\n }\n }\n this._stack.paused = false;\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = OscState.START;\n }\n\n private _start(): void {\n this._active = this._handlers[this._id] || EMPTY_HANDLERS;\n if (!this._active.length) {\n this._handlerFb(this._id, 'START');\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].start();\n }\n }\n }\n\n private _put(data: Uint32Array, start: number, end: number): void {\n if (!this._active.length) {\n this._handlerFb(this._id, 'PUT', utf32ToString(data, start, end));\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].put(data, start, end);\n }\n }\n }\n\n public start(): void {\n // always reset leftover handlers\n this.reset();\n this._state = OscState.ID;\n }\n\n /**\n * Put data to current OSC command.\n * Expects the identifier of the OSC command in the form\n * OSC id ; payload ST/BEL\n * Payload chunks are not further processed and get\n * directly passed to the handlers.\n */\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._state === OscState.ABORT) {\n return;\n }\n if (this._state === OscState.ID) {\n while (start < end) {\n const code = data[start++];\n if (code === 0x3b) {\n this._state = OscState.PAYLOAD;\n this._start();\n break;\n }\n if (code < 0x30 || 0x39 < code) {\n this._state = OscState.ABORT;\n return;\n }\n if (this._id === -1) {\n this._id = 0;\n }\n this._id = this._id * 10 + code - 48;\n }\n }\n if (this._state === OscState.PAYLOAD && end - start > 0) {\n this._put(data, start, end);\n }\n }\n\n /**\n * Indicates end of an OSC command.\n * Whether the OSC got aborted or finished normally\n * is indicated by `success`.\n */\n public end(success: boolean, promiseResult: boolean = true): void | Promise {\n if (this._state === OscState.START) {\n return;\n }\n // do nothing if command was faulty\n if (this._state !== OscState.ABORT) {\n // if we are still in ID state and get an early end\n // means that the command has no payload thus we still have\n // to announce START and send END right after\n if (this._state === OscState.ID) {\n this._start();\n }\n\n if (!this._active.length) {\n this._handlerFb(this._id, 'END', success);\n } else {\n let handlerResult: boolean | Promise = false;\n let j = this._active.length - 1;\n let fallThrough = false;\n if (this._stack.paused) {\n j = this._stack.loopPosition - 1;\n handlerResult = promiseResult;\n fallThrough = this._stack.fallThrough;\n this._stack.paused = false;\n }\n if (!fallThrough && handlerResult === false) {\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(success);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = false;\n return handlerResult;\n }\n }\n j--;\n }\n // cleanup left over handlers\n // we always have to call .end for proper cleanup,\n // here we use `success` to indicate whether a handler should execute\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(false);\n if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = true;\n return handlerResult;\n }\n }\n }\n\n }\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = OscState.START;\n }\n}\n\n/**\n * Convenient class to allow attaching string based handler functions\n * as OSC handlers.\n */\nexport class OscHandler implements IOscHandler {\n private _data = '';\n private _hitLimit: boolean = false;\n\n constructor(private _handler: (data: string) => boolean | Promise) { }\n\n public start(): void {\n this._data = '';\n this._hitLimit = false;\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._hitLimit) {\n return;\n }\n this._data += utf32ToString(data, start, end);\n if (this._data.length > PAYLOAD_LIMIT) {\n this._data = '';\n this._hitLimit = true;\n }\n }\n\n public end(success: boolean): boolean | Promise {\n let ret: boolean | Promise = false;\n if (this._hitLimit) {\n ret = false;\n } else if (success) {\n ret = this._handler(this._data);\n if (ret instanceof Promise) {\n // need to hold data until `ret` got resolved\n // dont care for errors, data will be freed anyway on next start\n return ret.then(res => {\n this._data = '';\n this._hitLimit = false;\n return res;\n });\n }\n }\n this._data = '';\n this._hitLimit = false;\n return ret;\n }\n}\n", "/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\nimport { IDcsHandler, IParams, IHandlerCollection, IDcsParser, DcsFallbackHandlerType, ISubParserStackState } from 'common/parser/Types';\nimport { utf32ToString } from 'common/input/TextDecoder';\nimport { Params } from 'common/parser/Params';\nimport { PAYLOAD_LIMIT } from 'common/parser/Constants';\n\nconst EMPTY_HANDLERS: IDcsHandler[] = [];\n\nexport class DcsParser implements IDcsParser {\n private _handlers: IHandlerCollection = Object.create(null);\n private _active: IDcsHandler[] = EMPTY_HANDLERS;\n private _ident: number = 0;\n private _handlerFb: DcsFallbackHandlerType = () => { };\n private _stack: ISubParserStackState = {\n paused: false,\n loopPosition: 0,\n fallThrough: false\n };\n\n public dispose(): void {\n this._handlers = Object.create(null);\n this._handlerFb = () => { };\n this._active = EMPTY_HANDLERS;\n }\n\n public registerHandler(ident: number, handler: IDcsHandler): IDisposable {\n if (this._handlers[ident] === undefined) {\n this._handlers[ident] = [];\n }\n const handlerList = this._handlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n\n public clearHandler(ident: number): void {\n if (this._handlers[ident]) delete this._handlers[ident];\n }\n\n public setHandlerFallback(handler: DcsFallbackHandlerType): void {\n this._handlerFb = handler;\n }\n\n public reset(): void {\n // force cleanup leftover handlers\n if (this._active.length) {\n for (let j = this._stack.paused ? this._stack.loopPosition - 1 : this._active.length - 1; j >= 0; --j) {\n this._active[j].unhook(false);\n }\n }\n this._stack.paused = false;\n this._active = EMPTY_HANDLERS;\n this._ident = 0;\n }\n\n public hook(ident: number, params: IParams): void {\n // always reset leftover handlers\n this.reset();\n this._ident = ident;\n this._active = this._handlers[ident] || EMPTY_HANDLERS;\n if (!this._active.length) {\n this._handlerFb(this._ident, 'HOOK', params);\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].hook(params);\n }\n }\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (!this._active.length) {\n this._handlerFb(this._ident, 'PUT', utf32ToString(data, start, end));\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].put(data, start, end);\n }\n }\n }\n\n public unhook(success: boolean, promiseResult: boolean = true): void | Promise {\n if (!this._active.length) {\n this._handlerFb(this._ident, 'UNHOOK', success);\n } else {\n let handlerResult: boolean | Promise = false;\n let j = this._active.length - 1;\n let fallThrough = false;\n if (this._stack.paused) {\n j = this._stack.loopPosition - 1;\n handlerResult = promiseResult;\n fallThrough = this._stack.fallThrough;\n this._stack.paused = false;\n }\n if (!fallThrough && handlerResult === false) {\n for (; j >= 0; j--) {\n handlerResult = this._active[j].unhook(success);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = false;\n return handlerResult;\n }\n }\n j--;\n }\n // cleanup left over handlers (fallThrough for async)\n for (; j >= 0; j--) {\n handlerResult = this._active[j].unhook(false);\n if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = true;\n return handlerResult;\n }\n }\n }\n this._active = EMPTY_HANDLERS;\n this._ident = 0;\n }\n}\n\n// predefine empty params as [0] (ZDM)\nconst EMPTY_PARAMS = new Params();\nEMPTY_PARAMS.addParam(0);\n\n/**\n * Convenient class to create a DCS handler from a single callback function.\n * Note: The payload is currently limited to 50 MB (hardcoded).\n */\nexport class DcsHandler implements IDcsHandler {\n private _data = '';\n private _params: IParams = EMPTY_PARAMS;\n private _hitLimit: boolean = false;\n\n constructor(private _handler: (data: string, params: IParams) => boolean | Promise) { }\n\n public hook(params: IParams): void {\n // since we need to preserve params until `unhook`, we have to clone it\n // (only borrowed from parser and spans multiple parser states)\n // perf optimization:\n // clone only, if we have non empty params, otherwise stick with default\n this._params = (params.length > 1 || params.params[0]) ? params.clone() : EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._hitLimit) {\n return;\n }\n this._data += utf32ToString(data, start, end);\n if (this._data.length > PAYLOAD_LIMIT) {\n this._data = '';\n this._hitLimit = true;\n }\n }\n\n public unhook(success: boolean): boolean | Promise {\n let ret: boolean | Promise = false;\n if (this._hitLimit) {\n ret = false;\n } else if (success) {\n ret = this._handler(this._data, this._params);\n if (ret instanceof Promise) {\n // need to hold data and params until `ret` got resolved\n // dont care for errors, data will be freed anyway on next start\n return ret.then(res => {\n this._params = EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n return res;\n });\n }\n }\n this._params = EMPTY_PARAMS;\n this._data = '';\n this._hitLimit = false;\n return ret;\n }\n}\n", "/**\n * Copyright (c) 2025 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IApcHandler, IHandlerCollection, ApcFallbackHandlerType, IApcParser, ISubParserStackState } from 'common/parser/Types';\nimport { ApcState, PAYLOAD_LIMIT } from 'common/parser/Constants';\nimport { utf32ToString } from 'common/input/TextDecoder';\nimport { IDisposable } from 'common/Types';\n\nconst EMPTY_HANDLERS: IApcHandler[] = [];\n\n/**\n * APC Parser for handling Application Program Command sequences.\n * APC sequences use the format: ESC _ ESC \\\n *\n * Unlike OSC which uses numeric identifiers (e.g., OSC 1337),\n * APC uses the first character as the identifier (e.g., 'G' for Kitty graphics).\n * The identifier is the character code of the first byte after ESC _.\n */\nexport class ApcParser implements IApcParser {\n private _state = ApcState.START;\n private _active = EMPTY_HANDLERS;\n private _id = -1;\n private _handlers: IHandlerCollection = Object.create(null);\n private _handlerFb: ApcFallbackHandlerType = () => { };\n private _stack: ISubParserStackState = {\n paused: false,\n loopPosition: 0,\n fallThrough: false\n };\n\n /**\n * Register an APC handler for a specific identifier.\n * @param ident The character code of the first byte (e.g., 0x47 for 'G')\n * @param handler The handler to register\n */\n public registerHandler(ident: number, handler: IApcHandler): IDisposable {\n if (this._handlers[ident] === undefined) {\n this._handlers[ident] = [];\n }\n const handlerList = this._handlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n\n public clearHandler(ident: number): void {\n if (this._handlers[ident]) delete this._handlers[ident];\n }\n\n public setHandlerFallback(handler: ApcFallbackHandlerType): void {\n this._handlerFb = handler;\n }\n\n public dispose(): void {\n this._handlers = Object.create(null);\n this._handlerFb = () => { };\n this._active = EMPTY_HANDLERS;\n }\n\n public reset(): void {\n // force cleanup handlers if payload was already sent\n if (this._state === ApcState.PAYLOAD) {\n for (let j = this._stack.paused ? this._stack.loopPosition - 1 : this._active.length - 1; j >= 0; --j) {\n this._active[j].end(false);\n }\n }\n this._stack.paused = false;\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = ApcState.START;\n }\n\n private _start(): void {\n this._active = this._handlers[this._id] || EMPTY_HANDLERS;\n if (!this._active.length) {\n this._handlerFb(this._id, 'START');\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].start();\n }\n }\n }\n\n private _put(data: Uint32Array, start: number, end: number): void {\n if (!this._active.length) {\n this._handlerFb(this._id, 'PUT', utf32ToString(data, start, end));\n } else {\n for (let j = this._active.length - 1; j >= 0; j--) {\n this._active[j].put(data, start, end);\n }\n }\n }\n\n public start(): void {\n // always reset leftover handlers\n this.reset();\n this._state = ApcState.ID;\n }\n\n /**\n * Put data to current APC command.\n * For APC, the first character is used as the identifier.\n * Format: ESC _ ESC \\\n * Example: ESC _ G f=100,a=T;... ESC \\ (Kitty graphics, identifier='G')\n */\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._state === ApcState.ABORT) {\n return;\n }\n if (this._state === ApcState.ID) {\n // The first character is the identifier\n if (start < end) {\n this._id = data[start++];\n this._state = ApcState.PAYLOAD;\n this._start();\n }\n }\n if (this._state === ApcState.PAYLOAD && end - start > 0) {\n this._put(data, start, end);\n }\n }\n\n /**\n * Indicates end of an APC command.\n * Whether the APC got aborted or finished normally\n * is indicated by `success`.\n */\n public end(success: boolean, promiseResult: boolean = true): void | Promise {\n if (this._state === ApcState.START) {\n return;\n }\n // do nothing if command was faulty\n if (this._state !== ApcState.ABORT) {\n // if we are still in ID state and get an early end\n // means we got an empty APC sequence with no identifier,\n // which is invalid - just reset and return\n if (this._state === ApcState.ID) {\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = ApcState.START;\n return;\n }\n\n if (!this._active.length) {\n this._handlerFb(this._id, 'END', success);\n } else {\n let handlerResult: boolean | Promise = false;\n let j = this._active.length - 1;\n let fallThrough = false;\n if (this._stack.paused) {\n j = this._stack.loopPosition - 1;\n handlerResult = promiseResult;\n fallThrough = this._stack.fallThrough;\n this._stack.paused = false;\n }\n if (!fallThrough && handlerResult === false) {\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(success);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = false;\n return handlerResult;\n }\n }\n j--;\n }\n // cleanup left over handlers\n // we always have to call .end for proper cleanup,\n // here we use `success` to indicate whether a handler should execute\n for (; j >= 0; j--) {\n handlerResult = this._active[j].end(false);\n if (handlerResult instanceof Promise) {\n this._stack.paused = true;\n this._stack.loopPosition = j;\n this._stack.fallThrough = true;\n return handlerResult;\n }\n }\n }\n\n }\n this._active = EMPTY_HANDLERS;\n this._id = -1;\n this._state = ApcState.START;\n }\n}\n\n/**\n * Convenient class to allow attaching string based handler functions\n * as APC handlers.\n */\nexport class ApcHandler implements IApcHandler {\n private _data = '';\n private _hitLimit: boolean = false;\n\n constructor(private _handler: (data: string) => boolean | Promise) { }\n\n public start(): void {\n this._data = '';\n this._hitLimit = false;\n }\n\n public put(data: Uint32Array, start: number, end: number): void {\n if (this._hitLimit) {\n return;\n }\n this._data += utf32ToString(data, start, end);\n if (this._data.length > PAYLOAD_LIMIT) {\n this._data = '';\n this._hitLimit = true;\n }\n }\n\n public end(success: boolean): boolean | Promise {\n let ret: boolean | Promise = false;\n if (this._hitLimit) {\n ret = false;\n } else if (success) {\n ret = this._handler(this._data);\n if (ret instanceof Promise) {\n // need to hold data until `ret` got resolved\n // dont care for errors, data will be freed anyway on next start\n return ret.then(res => {\n this._data = '';\n this._hitLimit = false;\n return res;\n });\n }\n }\n this._data = '';\n this._hitLimit = false;\n return ret;\n }\n}\n", "/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IParsingState, IDcsHandler, IEscapeSequenceParser, IParams, IOscHandler, IHandlerCollection, CsiHandlerType, OscFallbackHandlerType, IOscParser, EscHandlerType, IDcsParser, DcsFallbackHandlerType, IFunctionIdentifier, ExecuteFallbackHandlerType, CsiFallbackHandlerType, EscFallbackHandlerType, PrintHandlerType, PrintFallbackHandlerType, ExecuteHandlerType, IParserStackState, ParserStackType, ResumableHandlersType, IApcHandler, IApcParser, ApcFallbackHandlerType } from 'common/parser/Types';\nimport { ParserState, ParserAction } from 'common/parser/Constants';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IDisposable } from 'common/Types';\nimport { Params } from 'common/parser/Params';\nimport { OscParser } from 'common/parser/OscParser';\nimport { DcsParser } from 'common/parser/DcsParser';\nimport { ApcParser } from 'common/parser/ApcParser';\n\n/**\n * Table values are generated like this:\n * index: currentState << TableValue.INDEX_STATE_SHIFT | charCode\n * value: action << TableValue.TRANSITION_ACTION_SHIFT | nextState\n */\nconst enum TableAccess {\n TRANSITION_ACTION_SHIFT = 8,\n TRANSITION_STATE_MASK = 255,\n INDEX_STATE_SHIFT = 8\n}\n\n/**\n * Transition table for EscapeSequenceParser.\n */\nexport class TransitionTable {\n public table: Uint16Array;\n\n constructor(length: number) {\n this.table = new Uint16Array(length);\n }\n\n /**\n * Set default transition.\n * @param action default action\n * @param next default next state\n */\n public setDefault(action: ParserAction, next: ParserState): void {\n this.table.fill(action << TableAccess.TRANSITION_ACTION_SHIFT | next);\n }\n\n /**\n * Add a transition to the transition table.\n * @param code input character code\n * @param state current parser state\n * @param action parser action to be done\n * @param next next parser state\n */\n public add(code: number, state: ParserState, action: ParserAction, next: ParserState): void {\n this.table[state << TableAccess.INDEX_STATE_SHIFT | code] = action << TableAccess.TRANSITION_ACTION_SHIFT | next;\n }\n\n /**\n * Add transitions for multiple input character codes.\n * @param codes input character code array\n * @param state current parser state\n * @param action parser action to be done\n * @param next next parser state\n */\n public addMany(codes: number[], state: ParserState, action: ParserAction, next: ParserState): void {\n for (let i = 0; i < codes.length; i++) {\n this.table[state << TableAccess.INDEX_STATE_SHIFT | codes[i]] = action << TableAccess.TRANSITION_ACTION_SHIFT | next;\n }\n }\n}\n\n\n// Pseudo-character placeholder for printable non-ascii characters (unicode).\nconst NON_ASCII_PRINTABLE = 0xA0;\n\n\n/**\n * VT500 compatible transition table.\n * Taken from https://vt100.net/emu/dec_ansi_parser.\n */\nexport const VT500_TRANSITION_TABLE = (function (): TransitionTable {\n const table: TransitionTable = new TransitionTable(4095);\n\n // range macro for byte\n const BYTE_VALUES = 256;\n const blueprint = Array.apply(null, Array(BYTE_VALUES)).map((unused: any, i: number) => i);\n const r = (start: number, end: number): number[] => blueprint.slice(start, end);\n\n // Default definitions.\n const PRINTABLES = r(0x20, 0x7f); // 0x20 (SP) included, 0x7F (DEL) excluded\n const EXECUTABLES = r(0x00, 0x18);\n EXECUTABLES.push(0x19);\n EXECUTABLES.push.apply(EXECUTABLES, r(0x1c, 0x20));\n\n const states: number[] = r(ParserState.GROUND, ParserState.STATE_LENGTH);\n let state: any;\n\n // set default transition\n table.setDefault(ParserAction.ERROR, ParserState.GROUND);\n // printables\n table.addMany(PRINTABLES, ParserState.GROUND, ParserAction.PRINT, ParserState.GROUND);\n // global anywhere rules\n for (state in states) {\n table.addMany([0x18, 0x1a, 0x99, 0x9a], state, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(r(0x80, 0x90), state, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(r(0x90, 0x98), state, ParserAction.EXECUTE, ParserState.GROUND);\n table.add(0x9c, state, ParserAction.IGNORE, ParserState.GROUND); // ST as terminator\n table.add(0x1b, state, ParserAction.CLEAR, ParserState.ESCAPE); // ESC\n table.add(0x9d, state, ParserAction.OSC_START, ParserState.OSC_STRING); // OSC\n table.addMany([0x98, 0x9e], state, ParserAction.IGNORE, ParserState.SOS_PM_STRING); // SOS, PM\n table.add(0x9f, state, ParserAction.APC_START, ParserState.APC_STRING); // APC\n table.add(0x9b, state, ParserAction.CLEAR, ParserState.CSI_ENTRY); // CSI\n table.add(0x90, state, ParserAction.CLEAR, ParserState.DCS_ENTRY); // DCS\n }\n // rules for executables and 7f\n table.addMany(EXECUTABLES, ParserState.GROUND, ParserAction.EXECUTE, ParserState.GROUND);\n table.addMany(EXECUTABLES, ParserState.ESCAPE, ParserAction.EXECUTE, ParserState.ESCAPE);\n table.add(0x7f, ParserState.ESCAPE, ParserAction.IGNORE, ParserState.ESCAPE);\n table.addMany(EXECUTABLES, ParserState.OSC_STRING, ParserAction.IGNORE, ParserState.OSC_STRING);\n table.addMany(EXECUTABLES, ParserState.CSI_ENTRY, ParserAction.EXECUTE, ParserState.CSI_ENTRY);\n table.add(0x7f, ParserState.CSI_ENTRY, ParserAction.IGNORE, ParserState.CSI_ENTRY);\n table.addMany(EXECUTABLES, ParserState.CSI_PARAM, ParserAction.EXECUTE, ParserState.CSI_PARAM);\n table.add(0x7f, ParserState.CSI_PARAM, ParserAction.IGNORE, ParserState.CSI_PARAM);\n table.addMany(EXECUTABLES, ParserState.CSI_IGNORE, ParserAction.EXECUTE, ParserState.CSI_IGNORE);\n table.addMany(EXECUTABLES, ParserState.CSI_INTERMEDIATE, ParserAction.EXECUTE, ParserState.CSI_INTERMEDIATE);\n table.add(0x7f, ParserState.CSI_INTERMEDIATE, ParserAction.IGNORE, ParserState.CSI_INTERMEDIATE);\n table.addMany(EXECUTABLES, ParserState.ESCAPE_INTERMEDIATE, ParserAction.EXECUTE, ParserState.ESCAPE_INTERMEDIATE);\n table.add(0x7f, ParserState.ESCAPE_INTERMEDIATE, ParserAction.IGNORE, ParserState.ESCAPE_INTERMEDIATE);\n // osc\n table.add(0x5d, ParserState.ESCAPE, ParserAction.OSC_START, ParserState.OSC_STRING);\n table.addMany(PRINTABLES, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.add(0x7f, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.addMany([0x9c, 0x1b, 0x18, 0x1a, 0x07], ParserState.OSC_STRING, ParserAction.OSC_END, ParserState.GROUND);\n table.addMany(r(0x1c, 0x20), ParserState.OSC_STRING, ParserAction.IGNORE, ParserState.OSC_STRING);\n // sos/pm\n table.addMany([0x58, 0x5e], ParserState.ESCAPE, ParserAction.IGNORE, ParserState.SOS_PM_STRING);\n table.addMany(PRINTABLES, ParserState.SOS_PM_STRING, ParserAction.IGNORE, ParserState.SOS_PM_STRING);\n table.addMany(EXECUTABLES, ParserState.SOS_PM_STRING, ParserAction.IGNORE, ParserState.SOS_PM_STRING);\n table.add(0x9c, ParserState.SOS_PM_STRING, ParserAction.IGNORE, ParserState.GROUND);\n table.add(0x7f, ParserState.SOS_PM_STRING, ParserAction.IGNORE, ParserState.SOS_PM_STRING);\n // apc\n table.add(0x5f, ParserState.ESCAPE, ParserAction.APC_START, ParserState.APC_STRING);\n table.addMany(PRINTABLES, ParserState.APC_STRING, ParserAction.APC_PUT, ParserState.APC_STRING);\n table.addMany(EXECUTABLES, ParserState.APC_STRING, ParserAction.IGNORE, ParserState.APC_STRING);\n table.add(0x7f, ParserState.APC_STRING, ParserAction.IGNORE, ParserState.APC_STRING);\n table.addMany([0x1b, 0x9c, 0x18, 0x1a], ParserState.APC_STRING, ParserAction.APC_END, ParserState.GROUND);\n // csi entries\n table.add(0x5b, ParserState.ESCAPE, ParserAction.CLEAR, ParserState.CSI_ENTRY);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_ENTRY, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x30, 0x3c), ParserState.CSI_ENTRY, ParserAction.PARAM, ParserState.CSI_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.CSI_ENTRY, ParserAction.COLLECT, ParserState.CSI_PARAM);\n table.addMany(r(0x30, 0x3c), ParserState.CSI_PARAM, ParserAction.PARAM, ParserState.CSI_PARAM);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_PARAM, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.CSI_PARAM, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x20, 0x40), ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.add(0x7f, ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.GROUND);\n table.addMany(r(0x20, 0x30), ParserState.CSI_ENTRY, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.CSI_INTERMEDIATE, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n table.addMany(r(0x30, 0x40), ParserState.CSI_INTERMEDIATE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.CSI_INTERMEDIATE, ParserAction.CSI_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x20, 0x30), ParserState.CSI_PARAM, ParserAction.COLLECT, ParserState.CSI_INTERMEDIATE);\n // esc_intermediate\n table.addMany(r(0x20, 0x30), ParserState.ESCAPE, ParserAction.COLLECT, ParserState.ESCAPE_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.ESCAPE_INTERMEDIATE, ParserAction.COLLECT, ParserState.ESCAPE_INTERMEDIATE);\n table.addMany(r(0x30, 0x7f), ParserState.ESCAPE_INTERMEDIATE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x30, 0x50), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x51, 0x58), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany([0x59, 0x5a, 0x5c], ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n table.addMany(r(0x60, 0x7f), ParserState.ESCAPE, ParserAction.ESC_DISPATCH, ParserState.GROUND);\n // dcs entry\n table.add(0x50, ParserState.ESCAPE, ParserAction.CLEAR, ParserState.DCS_ENTRY);\n table.addMany(EXECUTABLES, ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.add(0x7f, ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_ENTRY, ParserAction.IGNORE, ParserState.DCS_ENTRY);\n table.addMany(r(0x20, 0x30), ParserState.DCS_ENTRY, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x30, 0x3c), ParserState.DCS_ENTRY, ParserAction.PARAM, ParserState.DCS_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.DCS_ENTRY, ParserAction.COLLECT, ParserState.DCS_PARAM);\n table.addMany(EXECUTABLES, ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x20, 0x80), ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(EXECUTABLES, ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.add(0x7f, ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_PARAM);\n table.addMany(r(0x30, 0x3c), ParserState.DCS_PARAM, ParserAction.PARAM, ParserState.DCS_PARAM);\n table.addMany([0x3c, 0x3d, 0x3e, 0x3f], ParserState.DCS_PARAM, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x20, 0x30), ParserState.DCS_PARAM, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(EXECUTABLES, ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.add(0x7f, ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x1c, 0x20), ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x20, 0x30), ParserState.DCS_INTERMEDIATE, ParserAction.COLLECT, ParserState.DCS_INTERMEDIATE);\n table.addMany(r(0x30, 0x40), ParserState.DCS_INTERMEDIATE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_INTERMEDIATE, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_PARAM, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(r(0x40, 0x7f), ParserState.DCS_ENTRY, ParserAction.DCS_HOOK, ParserState.DCS_PASSTHROUGH);\n table.addMany(EXECUTABLES, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n table.addMany(PRINTABLES, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n table.add(0x7f, ParserState.DCS_PASSTHROUGH, ParserAction.IGNORE, ParserState.DCS_PASSTHROUGH);\n table.addMany([0x1b, 0x9c, 0x18, 0x1a], ParserState.DCS_PASSTHROUGH, ParserAction.DCS_UNHOOK, ParserState.GROUND);\n // special handling of unicode chars\n table.add(NON_ASCII_PRINTABLE, ParserState.GROUND, ParserAction.PRINT, ParserState.GROUND);\n table.add(NON_ASCII_PRINTABLE, ParserState.OSC_STRING, ParserAction.OSC_PUT, ParserState.OSC_STRING);\n table.add(NON_ASCII_PRINTABLE, ParserState.CSI_IGNORE, ParserAction.IGNORE, ParserState.CSI_IGNORE);\n table.add(NON_ASCII_PRINTABLE, ParserState.DCS_IGNORE, ParserAction.IGNORE, ParserState.DCS_IGNORE);\n table.add(NON_ASCII_PRINTABLE, ParserState.DCS_PASSTHROUGH, ParserAction.DCS_PUT, ParserState.DCS_PASSTHROUGH);\n table.add(NON_ASCII_PRINTABLE, ParserState.APC_STRING, ParserAction.APC_PUT, ParserState.APC_STRING);\n return table;\n})();\n\n\n/**\n * EscapeSequenceParser.\n * This class implements the ANSI/DEC compatible parser described by\n * Paul Williams (https://vt100.net/emu/dec_ansi_parser).\n *\n * To implement custom ANSI compliant escape sequences it is not needed to\n * alter this parser, instead consider registering a custom handler.\n * For non ANSI compliant sequences change the transition table with\n * the optional `transitions` constructor argument and\n * reimplement the `parse` method.\n *\n * This parser is currently hardcoded to operate in ZDM (Zero Default Mode)\n * as suggested by the original parser, thus empty parameters are set to 0.\n * This this is not in line with the latest ECMA-48 specification\n * (ZDM was part of the early specs and got completely removed later on).\n *\n * Other than the original parser from vt100.net this parser supports\n * sub parameters in digital parameters separated by colons. Empty sub parameters\n * are set to -1 (no ZDM for sub parameters).\n *\n * About prefix and intermediate bytes:\n * This parser follows the assumptions of the vt100.net parser with these restrictions:\n * - only one prefix byte is allowed as first parameter byte, byte range 0x3c .. 0x3f\n * - max. two intermediates are respected, byte range 0x20 .. 0x2f\n * Note that this is not in line with ECMA-48 which does not limit either of those.\n * Furthermore ECMA-48 allows the prefix byte range at any param byte position. Currently\n * there are no known sequences that follow the broader definition of the specification.\n *\n * TODO: implement error recovery hook via error handler return values\n */\nexport class EscapeSequenceParser extends Disposable implements IEscapeSequenceParser {\n public initialState: number;\n public currentState: number;\n public precedingJoinState: number; // UnicodeJoinProperties\n\n // buffers over several parse calls\n protected _params: Params;\n protected _collect: number;\n\n // handler lookup containers\n protected _printHandler: PrintHandlerType;\n protected _executeHandlers: { [flag: number]: ExecuteHandlerType };\n protected _csiHandlers: IHandlerCollection;\n protected _escHandlers: IHandlerCollection;\n protected readonly _oscParser: IOscParser;\n protected readonly _dcsParser: IDcsParser;\n protected readonly _apcParser: IApcParser;\n protected _errorHandler: (state: IParsingState) => IParsingState;\n\n // fallback handlers\n protected _printHandlerFb: PrintFallbackHandlerType;\n protected _executeHandlerFb: ExecuteFallbackHandlerType;\n protected _csiHandlerFb: CsiFallbackHandlerType;\n protected _escHandlerFb: EscFallbackHandlerType;\n protected _errorHandlerFb: (state: IParsingState) => IParsingState;\n\n // parser stack save for async handler support\n protected _parseStack: IParserStackState = {\n state: ParserStackType.NONE,\n handlers: [],\n handlerPos: 0,\n transition: 0,\n chunkPos: 0\n };\n\n constructor(\n protected readonly _transitions: TransitionTable = VT500_TRANSITION_TABLE\n ) {\n super();\n\n this.initialState = ParserState.GROUND;\n this.currentState = this.initialState;\n this._params = new Params(); // defaults to 32 storable params/subparams\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingJoinState = 0;\n\n // set default fallback handlers and handler lookup containers\n this._printHandlerFb = (data, start, end): void => { };\n this._executeHandlerFb = (code: number): void => { };\n this._csiHandlerFb = (ident: number, params: IParams): void => { };\n this._escHandlerFb = (ident: number): void => { };\n this._errorHandlerFb = (state: IParsingState): IParsingState => state;\n this._printHandler = this._printHandlerFb;\n this._executeHandlers = Object.create(null);\n this._csiHandlers = Object.create(null);\n this._escHandlers = Object.create(null);\n this._register(toDisposable(() => {\n this._csiHandlers = Object.create(null);\n this._executeHandlers = Object.create(null);\n this._escHandlers = Object.create(null);\n }));\n this._oscParser = this._register(new OscParser());\n this._dcsParser = this._register(new DcsParser());\n this._apcParser = this._register(new ApcParser());\n this._errorHandler = this._errorHandlerFb;\n\n // swallow 7bit ST (ESC+\\)\n this.registerEscHandler({ final: '\\\\' }, () => true);\n }\n\n protected _identifier(id: IFunctionIdentifier, finalRange: number[] = [0x40, 0x7e]): number {\n let res = 0;\n if (id.prefix) {\n if (id.prefix.length > 1) {\n throw new Error('only one byte as prefix supported');\n }\n res = id.prefix.charCodeAt(0);\n if (res && 0x3c > res || res > 0x3f) {\n throw new Error('prefix must be in range 0x3c .. 0x3f');\n }\n }\n if (id.intermediates) {\n if (id.intermediates.length > 2) {\n throw new Error('only two bytes as intermediates are supported');\n }\n for (let i = 0; i < id.intermediates.length; ++i) {\n const intermediate = id.intermediates.charCodeAt(i);\n if (0x20 > intermediate || intermediate > 0x2f) {\n throw new Error('intermediate must be in range 0x20 .. 0x2f');\n }\n res <<= 8;\n res |= intermediate;\n }\n }\n if (id.final.length !== 1) {\n throw new Error('final must be a single byte');\n }\n const finalCode = id.final.charCodeAt(0);\n if (finalRange[0] > finalCode || finalCode > finalRange[1]) {\n throw new Error(`final must be in range ${finalRange[0]} .. ${finalRange[1]}`);\n }\n res <<= 8;\n res |= finalCode;\n\n return res;\n }\n\n public identToString(ident: number): string {\n const res: string[] = [];\n while (ident) {\n res.push(String.fromCharCode(ident & 0xFF));\n ident >>= 8;\n }\n return res.reverse().join('');\n }\n\n public setPrintHandler(handler: PrintHandlerType): void {\n this._printHandler = handler;\n }\n public clearPrintHandler(): void {\n this._printHandler = this._printHandlerFb;\n }\n\n public registerEscHandler(id: IFunctionIdentifier, handler: EscHandlerType): IDisposable {\n const ident = this._identifier(id, [0x30, 0x7e]);\n if (this._escHandlers[ident] === undefined) {\n this._escHandlers[ident] = [];\n }\n const handlerList = this._escHandlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearEscHandler(id: IFunctionIdentifier): void {\n if (this._escHandlers[this._identifier(id, [0x30, 0x7e])]) delete this._escHandlers[this._identifier(id, [0x30, 0x7e])];\n }\n public setEscHandlerFallback(handler: EscFallbackHandlerType): void {\n this._escHandlerFb = handler;\n }\n\n public setExecuteHandler(flag: string, handler: ExecuteHandlerType): void {\n this._executeHandlers[flag.charCodeAt(0)] = handler;\n }\n public clearExecuteHandler(flag: string): void {\n if (this._executeHandlers[flag.charCodeAt(0)]) delete this._executeHandlers[flag.charCodeAt(0)];\n }\n public setExecuteHandlerFallback(handler: ExecuteFallbackHandlerType): void {\n this._executeHandlerFb = handler;\n }\n\n public registerCsiHandler(id: IFunctionIdentifier, handler: CsiHandlerType): IDisposable {\n const ident = this._identifier(id);\n if (this._csiHandlers[ident] === undefined) {\n this._csiHandlers[ident] = [];\n }\n const handlerList = this._csiHandlers[ident];\n handlerList.push(handler);\n return {\n dispose: () => {\n const handlerIndex = handlerList.indexOf(handler);\n if (handlerIndex !== -1) {\n handlerList.splice(handlerIndex, 1);\n }\n }\n };\n }\n public clearCsiHandler(id: IFunctionIdentifier): void {\n if (this._csiHandlers[this._identifier(id)]) delete this._csiHandlers[this._identifier(id)];\n }\n public setCsiHandlerFallback(callback: (ident: number, params: IParams) => void): void {\n this._csiHandlerFb = callback;\n }\n\n public registerDcsHandler(id: IFunctionIdentifier, handler: IDcsHandler): IDisposable {\n return this._dcsParser.registerHandler(this._identifier(id), handler);\n }\n public clearDcsHandler(id: IFunctionIdentifier): void {\n this._dcsParser.clearHandler(this._identifier(id));\n }\n public setDcsHandlerFallback(handler: DcsFallbackHandlerType): void {\n this._dcsParser.setHandlerFallback(handler);\n }\n\n public registerOscHandler(ident: number, handler: IOscHandler): IDisposable {\n return this._oscParser.registerHandler(ident, handler);\n }\n public clearOscHandler(ident: number): void {\n this._oscParser.clearHandler(ident);\n }\n public setOscHandlerFallback(handler: OscFallbackHandlerType): void {\n this._oscParser.setHandlerFallback(handler);\n }\n\n public registerApcHandler(ident: number, handler: IApcHandler): IDisposable {\n return this._apcParser.registerHandler(ident, handler);\n }\n public clearApcHandler(ident: number): void {\n this._apcParser.clearHandler(ident);\n }\n public setApcHandlerFallback(handler: ApcFallbackHandlerType): void {\n this._apcParser.setHandlerFallback(handler);\n }\n\n public setErrorHandler(callback: (state: IParsingState) => IParsingState): void {\n this._errorHandler = callback;\n }\n public clearErrorHandler(): void {\n this._errorHandler = this._errorHandlerFb;\n }\n\n /**\n * Reset parser to initial values.\n *\n * This can also be used to lift the improper continuation error condition\n * when dealing with async handlers. Use this only as a last resort to silence\n * that error when the terminal has no pending data to be processed. Note that\n * the interrupted async handler might continue its work in the future messing\n * up the terminal state even further.\n */\n public reset(): void {\n this.currentState = this.initialState;\n this._oscParser.reset();\n this._dcsParser.reset();\n this._apcParser.reset();\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingJoinState = 0;\n // abort pending continuation from async handler\n // Here the RESET type indicates, that the next parse call will\n // ignore any saved stack, instead continues sync with next codepoint from GROUND\n if (this._parseStack.state !== ParserStackType.NONE) {\n this._parseStack.state = ParserStackType.RESET;\n this._parseStack.handlers = []; // also release handlers ref\n }\n }\n\n /**\n * Async parse support.\n */\n protected _preserveStack(\n state: ParserStackType,\n handlers: ResumableHandlersType,\n handlerPos: number,\n transition: number,\n chunkPos: number\n ): void {\n this._parseStack.state = state;\n this._parseStack.handlers = handlers;\n this._parseStack.handlerPos = handlerPos;\n this._parseStack.transition = transition;\n this._parseStack.chunkPos = chunkPos;\n }\n\n /**\n * Parse UTF32 codepoints in `data` up to `length`.\n *\n * Note: For several actions with high data load the parsing is optimized\n * by using local read ahead loops with hardcoded conditions to\n * avoid costly table lookups. Make sure that any change of table values\n * will be reflected in the loop conditions as well and vice versa.\n * Affected states/actions:\n * - GROUND:PRINT\n * - CSI_PARAM:PARAM\n * - DCS_PARAM:PARAM\n * - OSC_STRING:OSC_PUT\n * - DCS_PASSTHROUGH:DCS_PUT\n *\n * Note on asynchronous handler support:\n * Any handler returning a promise will be treated as asynchronous.\n * To keep the in-band blocking working for async handlers, `parse` pauses execution,\n * creates a stack save and returns the promise to the caller.\n * For proper continuation of the paused state it is important\n * to await the promise resolving. On resolve the parse must be repeated\n * with the same chunk of data and the resolved value in `promiseResult`\n * until no promise is returned.\n *\n * Important: With only sync handlers defined, parsing is completely synchronous as well.\n * As soon as an async handler is involved, synchronous parsing is not possible anymore.\n *\n * Boilerplate for proper parsing of multiple chunks with async handlers:\n *\n * ```typescript\n * async function parseMultipleChunks(chunks: Uint32Array[]): Promise {\n * for (const chunk of chunks) {\n * let result: void | Promise;\n * let prev: boolean | undefined;\n * while (result = parser.parse(chunk, chunk.length, prev)) {\n * prev = await result;\n * }\n * }\n * // finished parsing all chunks...\n * }\n * ```\n */\n public parse(data: Uint32Array, length: number, promiseResult?: boolean): void | Promise {\n let code = 0;\n let transition = 0;\n let start = 0;\n let handlerResult: void | boolean | Promise;\n\n // resume from async handler\n if (this._parseStack.state) {\n // allow sync parser reset even in continuation mode\n // Note: can be used to recover parser from improper continuation error below\n if (this._parseStack.state === ParserStackType.RESET) {\n this._parseStack.state = ParserStackType.NONE;\n start = this._parseStack.chunkPos + 1; // continue with next codepoint in GROUND\n } else {\n if (promiseResult === undefined || this._parseStack.state === ParserStackType.FAIL) {\n /**\n * Reject further parsing on improper continuation after pausing. This is a really bad\n * condition with screwed up execution order and prolly messed up terminal state,\n * therefore we exit hard with an exception and reject any further parsing.\n *\n * Note: With `Terminal.write` usage this exception should never occur, as the top level\n * calls are guaranteed to handle async conditions properly. If you ever encounter this\n * exception in your terminal integration it indicates, that you injected data chunks to\n * `InputHandler.parse` or `EscapeSequenceParser.parse` synchronously without waiting for\n * continuation of a running async handler.\n *\n * It is possible to get rid of this error by calling `reset`. But dont rely on that, as\n * the pending async handler still might mess up the terminal later. Instead fix the\n * faulty async handling, so this error will not be thrown anymore.\n */\n this._parseStack.state = ParserStackType.FAIL;\n throw new Error('improper continuation due to previous async handler, giving up parsing');\n }\n\n // we have to resume the old handler loop if:\n // - return value of the promise was `false`\n // - handlers are not exhausted yet\n const handlers = this._parseStack.handlers;\n let handlerPos = this._parseStack.handlerPos - 1;\n switch (this._parseStack.state) {\n case ParserStackType.CSI:\n if (promiseResult === false && handlerPos > -1) {\n for (; handlerPos >= 0; handlerPos--) {\n handlerResult = (handlers as CsiHandlerType[])[handlerPos](this._params);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._parseStack.handlerPos = handlerPos;\n return handlerResult;\n }\n }\n }\n this._parseStack.handlers = [];\n break;\n case ParserStackType.ESC:\n if (promiseResult === false && handlerPos > -1) {\n for (; handlerPos >= 0; handlerPos--) {\n handlerResult = (handlers as EscHandlerType[])[handlerPos]();\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._parseStack.handlerPos = handlerPos;\n return handlerResult;\n }\n }\n }\n this._parseStack.handlers = [];\n break;\n case ParserStackType.DCS:\n code = data[this._parseStack.chunkPos];\n handlerResult = this._dcsParser.unhook(code !== 0x18 && code !== 0x1a, promiseResult);\n if (handlerResult) {\n return handlerResult;\n }\n if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n case ParserStackType.OSC:\n code = data[this._parseStack.chunkPos];\n handlerResult = this._oscParser.end(code !== 0x18 && code !== 0x1a, promiseResult);\n if (handlerResult) {\n return handlerResult;\n }\n if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n case ParserStackType.APC:\n code = data[this._parseStack.chunkPos];\n handlerResult = this._apcParser.end(code !== 0x18 && code !== 0x1a, promiseResult);\n if (handlerResult) {\n return handlerResult;\n }\n if (code === 0x1b) this._parseStack.transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n }\n // cleanup before continuing with the main sync loop\n this._parseStack.state = ParserStackType.NONE;\n start = this._parseStack.chunkPos + 1;\n this.precedingJoinState = 0;\n this.currentState = this._parseStack.transition & TableAccess.TRANSITION_STATE_MASK;\n }\n }\n\n // continue with main sync loop\n\n // process input string\n for (let i = start; i < length; ++i) {\n code = data[i];\n\n // normal transition & action lookup\n transition = this._transitions.table[this.currentState << TableAccess.INDEX_STATE_SHIFT | (code < 0xa0 ? code : NON_ASCII_PRINTABLE)];\n switch (transition >> TableAccess.TRANSITION_ACTION_SHIFT) {\n case ParserAction.PRINT:\n // read ahead with loop unrolling\n // Note: 0x20 (SP) is included, 0x7F (DEL) is excluded\n for (let j = i + 1; ; ++j) {\n if (j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n if (++j >= length || (code = data[j]) < 0x20 || (code > 0x7e && code < NON_ASCII_PRINTABLE)) {\n this._printHandler(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.EXECUTE:\n if (this._executeHandlers[code]) this._executeHandlers[code]();\n else this._executeHandlerFb(code);\n this.precedingJoinState = 0;\n break;\n case ParserAction.IGNORE:\n break;\n case ParserAction.ERROR:\n const inject: IParsingState = this._errorHandler(\n {\n position: i,\n code,\n currentState: this.currentState,\n collect: this._collect,\n params: this._params,\n abort: false\n });\n if (inject.abort) return;\n // inject values: currently not implemented\n break;\n case ParserAction.CSI_DISPATCH:\n // Trigger CSI Handler\n const handlers = this._csiHandlers[this._collect << 8 | code];\n let j = handlers ? handlers.length - 1 : -1;\n for (; j >= 0; j--) {\n // true means success and to stop bubbling\n // a promise indicates an async handler that needs to finish before progressing\n handlerResult = handlers[j](this._params);\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._preserveStack(ParserStackType.CSI, handlers, j, transition, i);\n return handlerResult;\n }\n }\n if (j < 0) {\n this._csiHandlerFb(this._collect << 8 | code, this._params);\n }\n this.precedingJoinState = 0;\n break;\n case ParserAction.PARAM:\n // inner loop: digits (0x30 - 0x39) and ; (0x3b) and : (0x3a)\n do {\n switch (code) {\n case 0x3b:\n this._params.addParam(0); // ZDM\n break;\n case 0x3a:\n this._params.addSubParam(-1);\n break;\n default: // 0x30 - 0x39\n this._params.addDigit(code - 48);\n }\n } while (++i < length && (code = data[i]) > 0x2f && code < 0x3c);\n i--;\n break;\n case ParserAction.COLLECT:\n this._collect <<= 8;\n this._collect |= code;\n break;\n case ParserAction.ESC_DISPATCH:\n const handlersEsc = this._escHandlers[this._collect << 8 | code];\n let jj = handlersEsc ? handlersEsc.length - 1 : -1;\n for (; jj >= 0; jj--) {\n // true means success and to stop bubbling\n // a promise indicates an async handler that needs to finish before progressing\n handlerResult = handlersEsc[jj]();\n if (handlerResult === true) {\n break;\n } else if (handlerResult instanceof Promise) {\n this._preserveStack(ParserStackType.ESC, handlersEsc, jj, transition, i);\n return handlerResult;\n }\n }\n if (jj < 0) {\n this._escHandlerFb(this._collect << 8 | code);\n }\n this.precedingJoinState = 0;\n break;\n case ParserAction.CLEAR:\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n break;\n case ParserAction.DCS_HOOK:\n this._dcsParser.hook(this._collect << 8 | code, this._params);\n break;\n case ParserAction.DCS_PUT:\n // inner loop - exit DCS_PUT: 0x18, 0x1a, 0x1b, 0x7f, 0x80 - 0x9f\n // unhook triggered by: 0x1b, 0x9c (success) and 0x18, 0x1a (abort)\n for (let j = i + 1; ; ++j) {\n if (j >= length || (code = data[j]) === 0x18 || code === 0x1a || code === 0x1b || (code > 0x7f && code < NON_ASCII_PRINTABLE)) {\n this._dcsParser.put(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.DCS_UNHOOK:\n handlerResult = this._dcsParser.unhook(code !== 0x18 && code !== 0x1a);\n if (handlerResult) {\n this._preserveStack(ParserStackType.DCS, [], 0, transition, i);\n return handlerResult;\n }\n if (code === 0x1b) transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingJoinState = 0;\n break;\n case ParserAction.OSC_START:\n this._oscParser.start();\n break;\n case ParserAction.OSC_PUT:\n // inner loop: 0x20 (SP) included, 0x7F (DEL) included\n for (let j = i + 1; ; j++) {\n if (j >= length || (code = data[j]) < 0x20 || (code > 0x7f && code < NON_ASCII_PRINTABLE)) {\n this._oscParser.put(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.OSC_END:\n handlerResult = this._oscParser.end(code !== 0x18 && code !== 0x1a);\n if (handlerResult) {\n this._preserveStack(ParserStackType.OSC, [], 0, transition, i);\n return handlerResult;\n }\n if (code === 0x1b) transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingJoinState = 0;\n break;\n case ParserAction.APC_START:\n this._apcParser.start();\n break;\n case ParserAction.APC_PUT:\n // inner loop - exit APC_PUT: 0x18, 0x1a, 0x1b, 0x9c\n for (let j = i + 1; ; ++j) {\n if (j >= length || (code = data[j]) === 0x18 || code === 0x1a || code === 0x1b || code === 0x9c || (code > 0x7f && code < NON_ASCII_PRINTABLE)) {\n this._apcParser.put(data, i, j);\n i = j - 1;\n break;\n }\n }\n break;\n case ParserAction.APC_END:\n handlerResult = this._apcParser.end(code !== 0x18 && code !== 0x1a);\n if (handlerResult) {\n this._preserveStack(ParserStackType.APC, [], 0, transition, i);\n return handlerResult;\n }\n if (code === 0x1b) transition |= ParserState.ESCAPE;\n this._params.reset();\n this._params.addParam(0); // ZDM\n this._collect = 0;\n this.precedingJoinState = 0;\n break;\n }\n this.currentState = transition & TableAccess.TRANSITION_STATE_MASK;\n }\n }\n}\n", "/**\n * Copyright (c) 2021 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n\n// 'rgb:' rule - matching: r/g/b | rr/gg/bb | rrr/ggg/bbb | rrrr/gggg/bbbb (hex digits)\nconst RGB_REX = /^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/;\n// '#...' rule - matching any hex digits\nconst HASH_REX = /^[\\da-f]+$/;\n\n/**\n * Parse color spec to RGB values (8 bit per channel).\n * See `man xparsecolor` for details about certain format specifications.\n *\n * Supported formats:\n * - rgb:// with , , in h | hh | hhh | hhhh\n * - #RGB, #RRGGBB, #RRRGGGBBB, #RRRRGGGGBBBB\n *\n * All other formats like rgbi: or device-independent string specifications\n * with float numbering are not supported.\n */\nexport function parseColor(data: string): [number, number, number] | undefined {\n if (!data) return;\n // also handle uppercases\n let low = data.toLowerCase();\n if (low.indexOf('rgb:') === 0) {\n // 'rgb:' specifier\n low = low.slice(4);\n const m = RGB_REX.exec(low);\n if (m) {\n const base = m[1] ? 15 : m[4] ? 255 : m[7] ? 4095 : 65535;\n return [\n Math.round(parseInt(m[1] || m[4] || m[7] || m[10], 16) / base * 255),\n Math.round(parseInt(m[2] || m[5] || m[8] || m[11], 16) / base * 255),\n Math.round(parseInt(m[3] || m[6] || m[9] || m[12], 16) / base * 255)\n ];\n }\n } else if (low.indexOf('#') === 0) {\n // '#' specifier\n low = low.slice(1);\n if (HASH_REX.exec(low) && [3, 6, 9, 12].includes(low.length)) {\n const adv = low.length / 3;\n const result: [number, number, number] = [0, 0, 0];\n for (let i = 0; i < 3; ++i) {\n const c = parseInt(low.slice(adv * i, adv * i + adv), 16);\n result[i] = adv === 1 ? c << 4 : adv === 2 ? c : adv === 3 ? c >> 4 : c >> 8;\n }\n return result;\n }\n }\n\n // Named colors are currently not supported due to the large addition to the xterm.js bundle size\n // they would add. In order to support named colors, we would need some way of optionally loading\n // additional payloads so startup/download time is not bloated (see #3530).\n}\n\n// pad hex output to requested bit width\nfunction pad(n: number, bits: number): string {\n const s = n.toString(16);\n const s2 = s.length < 2 ? '0' + s : s;\n switch (bits) {\n case 4:\n return s[0];\n case 8:\n return s2;\n case 12:\n return (s2 + s2).slice(0, 3);\n default:\n return s2 + s2;\n }\n}\n\n/**\n * Convert a given color to rgb:../../.. string of `bits` depth.\n */\nexport function toRgbString(color: [number, number, number], bits: number = 16): string {\n const [r, g, b] = color;\n return `rgb:${pad(r, bits)}/${pad(g, bits)}/${pad(b, bits)}`;\n}\n", "/**\n * Copyright (c) 2025 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n/**\n * The xterm.js version. This is updated by the publish script from package.json.\n */\nexport const XTERM_VERSION = '6.0.0';\n", "/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n */\n\nimport { IInputHandler, IAttributeData, IDisposable, IWindowOptions, IColorEvent, IParseStack, ColorIndex, ColorRequestType, SpecialColorIndex } from 'common/Types';\nimport { C0, C1 } from 'common/data/EscapeSequences';\nimport { CHARSETS, DEFAULT_CHARSET } from 'common/data/Charsets';\nimport { EscapeSequenceParser } from 'common/parser/EscapeSequenceParser';\nimport { Disposable } from 'vs/base/common/lifecycle';\nimport { StringToUtf32, stringFromCodePoint, Utf8ToUtf32 } from 'common/input/TextDecoder';\nimport { BufferLine, DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';\nimport { IParsingState, IEscapeSequenceParser, IParams, IFunctionIdentifier } from 'common/parser/Types';\nimport { NULL_CELL_CODE, NULL_CELL_WIDTH, Attributes, FgFlags, BgFlags, Content, UnderlineStyle } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { AttributeData } from 'common/buffer/AttributeData';\nimport { ICoreService, IBufferService, IOptionsService, ILogService, ICoreMouseService, ICharsetService, IUnicodeService, LogLevelEnum, IOscLinkService } from 'common/services/Services';\nimport { UnicodeService } from 'common/services/UnicodeService';\nimport { OscHandler } from 'common/parser/OscParser';\nimport { DcsHandler } from 'common/parser/DcsParser';\nimport { ApcHandler } from 'common/parser/ApcParser';\nimport { IBuffer } from 'common/buffer/Types';\nimport { parseColor } from 'common/input/XParseColor';\nimport { Emitter } from 'vs/base/common/event';\nimport { XTERM_VERSION } from 'common/Version';\n\n/**\n * Map collect to glevel. Used in `selectCharset`.\n */\nconst GLEVEL: { [key: string]: number } = { '(': 0, ')': 1, '*': 2, '+': 3, '-': 1, '.': 2 };\n\n/**\n * VT commands done by the parser - FIXME: move this to the parser?\n */\n// @vt: #Y ESC CSI \"Control Sequence Introducer\" \"ESC [\" \"Start of a CSI sequence.\"\n// @vt: #Y ESC OSC \"Operating System Command\" \"ESC ]\" \"Start of an OSC sequence.\"\n// @vt: #Y ESC DCS \"Device Control String\" \"ESC P\" \"Start of a DCS sequence.\"\n// @vt: #Y ESC ST \"String Terminator\" \"ESC \\\" \"Terminator used for string type sequences.\"\n// @vt: #Y ESC PM \"Privacy Message\" \"ESC ^\" \"Start of a privacy message.\"\n// @vt: #Y ESC APC \"Application Program Command\" \"ESC _\" \"Start of an APC sequence.\"\n// @vt: #Y C1 CSI \"Control Sequence Introducer\" \"\\x9B\" \"Start of a CSI sequence.\"\n// @vt: #Y C1 OSC \"Operating System Command\" \"\\x9D\" \"Start of an OSC sequence.\"\n// @vt: #Y C1 DCS \"Device Control String\" \"\\x90\" \"Start of a DCS sequence.\"\n// @vt: #Y C1 ST \"String Terminator\" \"\\x9C\" \"Terminator used for string type sequences.\"\n// @vt: #Y C1 PM \"Privacy Message\" \"\\x9E\" \"Start of a privacy message.\"\n// @vt: #Y C1 APC \"Application Program Command\" \"\\x9F\" \"Start of an APC sequence.\"\n// @vt: #Y C0 NUL \"Null\" \"\\0, \\x00\" \"NUL is ignored.\"\n// @vt: #Y C0 ESC \"Escape\" \"\\e, \\x1B\" \"Start of a sequence. Cancels any other sequence.\"\n\n/**\n * Document xterm VT features here that are currently unsupported\n */\n// @vt: #E[Supported via @xterm/addon-image.] DCS SIXEL \"SIXEL Graphics\" \"DCS Ps ; Ps ; Ps ; q \tPt ST\" \"Draw SIXEL image.\"\n// @vt: #N DCS DECUDK \"User Defined Keys\" \"DCS Ps ; Ps \\| Pt ST\" \"Definitions for user-defined keys.\"\n// @vt: #N DCS XTGETTCAP \"Request Terminfo String\" \"DCS + q Pt ST\" \"Request Terminfo String.\"\n// @vt: #N DCS XTSETTCAP \"Set Terminfo Data\" \"DCS + p Pt ST\" \"Set Terminfo Data.\"\n// @vt: #N OSC 1 \"Set Icon Name\" \"OSC 1 ; Pt BEL\" \"Set icon name.\"\n\n/**\n * Max length of the UTF32 input buffer. Real memory consumption is 4 times higher.\n */\nconst MAX_PARSEBUFFER_LENGTH = 131072;\n\n/**\n * Limit length of title and icon name stacks.\n */\nconst STACK_LIMIT = 10;\n\n// map params to window option\nfunction paramToWindowOption(n: number, opts: IWindowOptions): boolean {\n if (n > 24) {\n return opts.setWinLines || false;\n }\n switch (n) {\n case 1: return !!opts.restoreWin;\n case 2: return !!opts.minimizeWin;\n case 3: return !!opts.setWinPosition;\n case 4: return !!opts.setWinSizePixels;\n case 5: return !!opts.raiseWin;\n case 6: return !!opts.lowerWin;\n case 7: return !!opts.refreshWin;\n case 8: return !!opts.setWinSizeChars;\n case 9: return !!opts.maximizeWin;\n case 10: return !!opts.fullscreenWin;\n case 11: return !!opts.getWinState;\n case 13: return !!opts.getWinPosition;\n case 14: return !!opts.getWinSizePixels;\n case 15: return !!opts.getScreenSizePixels;\n case 16: return !!opts.getCellSizePixels;\n case 18: return !!opts.getWinSizeChars;\n case 19: return !!opts.getScreenSizeChars;\n case 20: return !!opts.getIconTitle;\n case 21: return !!opts.getWinTitle;\n case 22: return !!opts.pushTitle;\n case 23: return !!opts.popTitle;\n case 24: return !!opts.setWinLines;\n }\n return false;\n}\n\nexport enum WindowsOptionsReportType {\n GET_WIN_SIZE_PIXELS = 0,\n GET_CELL_SIZE_PIXELS = 1\n}\n\n// create a warning log if an async handler takes longer than the limit (in ms)\nconst SLOW_ASYNC_LIMIT = 5000;\n\n// Work variables to avoid garbage collection\nlet $temp = 0;\n\n/**\n * The terminal's standard implementation of IInputHandler, this handles all\n * input from the Parser.\n *\n * Refer to http://invisible-island.net/xterm/ctlseqs/ctlseqs.html to understand\n * each function's header comment.\n */\nexport class InputHandler extends Disposable implements IInputHandler {\n private _parseBuffer: Uint32Array = new Uint32Array(4096);\n private _stringDecoder: StringToUtf32 = new StringToUtf32();\n private _utf8Decoder: Utf8ToUtf32 = new Utf8ToUtf32();\n private _windowTitle = '';\n private _iconName = '';\n private _dirtyRowTracker: IDirtyRowTracker;\n protected _windowTitleStack: string[] = [];\n protected _iconNameStack: string[] = [];\n\n private _curAttrData: IAttributeData = DEFAULT_ATTR_DATA.clone();\n public getAttrData(): IAttributeData { return this._curAttrData; }\n private _eraseAttrDataInternal: IAttributeData = DEFAULT_ATTR_DATA.clone();\n\n private _activeBuffer: IBuffer;\n\n private readonly _onRequestBell = this._register(new Emitter());\n public readonly onRequestBell = this._onRequestBell.event;\n private readonly _onRequestRefreshRows = this._register(new Emitter<{ start: number, end: number } | undefined>());\n public readonly onRequestRefreshRows = this._onRequestRefreshRows.event;\n private readonly _onRequestReset = this._register(new Emitter());\n public readonly onRequestReset = this._onRequestReset.event;\n private readonly _onRequestSendFocus = this._register(new Emitter());\n public readonly onRequestSendFocus = this._onRequestSendFocus.event;\n private readonly _onRequestSyncScrollBar = this._register(new Emitter());\n public readonly onRequestSyncScrollBar = this._onRequestSyncScrollBar.event;\n private readonly _onRequestWindowsOptionsReport = this._register(new Emitter());\n public readonly onRequestWindowsOptionsReport = this._onRequestWindowsOptionsReport.event;\n\n private readonly _onA11yChar = this._register(new Emitter());\n public readonly onA11yChar = this._onA11yChar.event;\n private readonly _onA11yTab = this._register(new Emitter());\n public readonly onA11yTab = this._onA11yTab.event;\n private readonly _onCursorMove = this._register(new Emitter());\n public readonly onCursorMove = this._onCursorMove.event;\n private readonly _onLineFeed = this._register(new Emitter());\n public readonly onLineFeed = this._onLineFeed.event;\n private readonly _onScroll = this._register(new Emitter());\n public readonly onScroll = this._onScroll.event;\n private readonly _onTitleChange = this._register(new Emitter());\n public readonly onTitleChange = this._onTitleChange.event;\n private readonly _onColor = this._register(new Emitter());\n public readonly onColor = this._onColor.event;\n\n private _parseStack: IParseStack = {\n paused: false,\n cursorStartX: 0,\n cursorStartY: 0,\n decodedLength: 0,\n position: 0\n };\n\n constructor(\n private readonly _bufferService: IBufferService,\n private readonly _charsetService: ICharsetService,\n private readonly _coreService: ICoreService,\n private readonly _logService: ILogService,\n private readonly _optionsService: IOptionsService,\n private readonly _oscLinkService: IOscLinkService,\n private readonly _coreMouseService: ICoreMouseService,\n private readonly _unicodeService: IUnicodeService,\n private readonly _parser: IEscapeSequenceParser = new EscapeSequenceParser()\n ) {\n super();\n this._register(this._parser);\n this._dirtyRowTracker = new DirtyRowTracker(this._bufferService);\n\n // Track properties used in performance critical code manually to avoid using slow getters\n this._activeBuffer = this._bufferService.buffer;\n this._register(this._bufferService.buffers.onBufferActivate(e => this._activeBuffer = e.activeBuffer));\n\n /**\n * custom fallback handlers\n */\n this._parser.setCsiHandlerFallback((ident, params) => {\n this._logService.debug('Unknown CSI code: ', { identifier: this._parser.identToString(ident), params: params.toArray() });\n });\n this._parser.setEscHandlerFallback(ident => {\n this._logService.debug('Unknown ESC code: ', { identifier: this._parser.identToString(ident) });\n });\n this._parser.setExecuteHandlerFallback(code => {\n this._logService.debug('Unknown EXECUTE code: ', { code });\n });\n this._parser.setOscHandlerFallback((identifier, action, data) => {\n this._logService.debug('Unknown OSC code: ', { identifier, action, data });\n });\n this._parser.setDcsHandlerFallback((ident, action, payload) => {\n if (action === 'HOOK') {\n payload = payload.toArray();\n }\n this._logService.debug('Unknown DCS code: ', { identifier: this._parser.identToString(ident), action, payload });\n });\n\n /**\n * print handler\n */\n this._parser.setPrintHandler((data, start, end) => this.print(data, start, end));\n\n /**\n * CSI handler\n */\n this._parser.registerCsiHandler({ final: '@' }, params => this.insertChars(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: '@' }, params => this.scrollLeft(params));\n this._parser.registerCsiHandler({ final: 'A' }, params => this.cursorUp(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: 'A' }, params => this.scrollRight(params));\n this._parser.registerCsiHandler({ final: 'B' }, params => this.cursorDown(params));\n this._parser.registerCsiHandler({ final: 'C' }, params => this.cursorForward(params));\n this._parser.registerCsiHandler({ final: 'D' }, params => this.cursorBackward(params));\n this._parser.registerCsiHandler({ final: 'E' }, params => this.cursorNextLine(params));\n this._parser.registerCsiHandler({ final: 'F' }, params => this.cursorPrecedingLine(params));\n this._parser.registerCsiHandler({ final: 'G' }, params => this.cursorCharAbsolute(params));\n this._parser.registerCsiHandler({ final: 'H' }, params => this.cursorPosition(params));\n this._parser.registerCsiHandler({ final: 'I' }, params => this.cursorForwardTab(params));\n this._parser.registerCsiHandler({ final: 'J' }, params => this.eraseInDisplay(params, false));\n this._parser.registerCsiHandler({ prefix: '?', final: 'J' }, params => this.eraseInDisplay(params, true));\n this._parser.registerCsiHandler({ final: 'K' }, params => this.eraseInLine(params, false));\n this._parser.registerCsiHandler({ prefix: '?', final: 'K' }, params => this.eraseInLine(params, true));\n this._parser.registerCsiHandler({ final: 'L' }, params => this.insertLines(params));\n this._parser.registerCsiHandler({ final: 'M' }, params => this.deleteLines(params));\n this._parser.registerCsiHandler({ final: 'P' }, params => this.deleteChars(params));\n this._parser.registerCsiHandler({ final: 'S' }, params => this.scrollUp(params));\n this._parser.registerCsiHandler({ final: 'T' }, params => this.scrollDown(params));\n this._parser.registerCsiHandler({ final: 'X' }, params => this.eraseChars(params));\n this._parser.registerCsiHandler({ final: 'Z' }, params => this.cursorBackwardTab(params));\n this._parser.registerCsiHandler({ final: '^' }, params => this.scrollDown(params));\n this._parser.registerCsiHandler({ final: '`' }, params => this.charPosAbsolute(params));\n this._parser.registerCsiHandler({ final: 'a' }, params => this.hPositionRelative(params));\n this._parser.registerCsiHandler({ final: 'b' }, params => this.repeatPrecedingCharacter(params));\n this._parser.registerCsiHandler({ final: 'c' }, params => this.sendDeviceAttributesPrimary(params));\n this._parser.registerCsiHandler({ prefix: '>', final: 'c' }, params => this.sendDeviceAttributesSecondary(params));\n this._parser.registerCsiHandler({ final: 'd' }, params => this.linePosAbsolute(params));\n this._parser.registerCsiHandler({ final: 'e' }, params => this.vPositionRelative(params));\n this._parser.registerCsiHandler({ final: 'f' }, params => this.hVPosition(params));\n this._parser.registerCsiHandler({ final: 'g' }, params => this.tabClear(params));\n this._parser.registerCsiHandler({ final: 'h' }, params => this.setMode(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'h' }, params => this.setModePrivate(params));\n this._parser.registerCsiHandler({ final: 'l' }, params => this.resetMode(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'l' }, params => this.resetModePrivate(params));\n this._parser.registerCsiHandler({ final: 'm' }, params => this.charAttributes(params));\n this._parser.registerCsiHandler({ final: 'n' }, params => this.deviceStatus(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'n' }, params => this.deviceStatusPrivate(params));\n this._parser.registerCsiHandler({ intermediates: '!', final: 'p' }, params => this.softReset(params));\n this._parser.registerCsiHandler({ prefix: '>', final: 'q' }, params => this.sendXtVersion(params));\n this._parser.registerCsiHandler({ intermediates: ' ', final: 'q' }, params => this.setCursorStyle(params));\n this._parser.registerCsiHandler({ final: 'r' }, params => this.setScrollRegion(params));\n this._parser.registerCsiHandler({ final: 's' }, params => this.saveCursor(params));\n this._parser.registerCsiHandler({ final: 't' }, params => this.windowOptions(params));\n this._parser.registerCsiHandler({ final: 'u' }, params => this.restoreCursor(params));\n this._parser.registerCsiHandler({ intermediates: '\\'', final: '}' }, params => this.insertColumns(params));\n this._parser.registerCsiHandler({ intermediates: '\\'', final: '~' }, params => this.deleteColumns(params));\n this._parser.registerCsiHandler({ intermediates: '\"', final: 'q' }, params => this.selectProtected(params));\n this._parser.registerCsiHandler({ intermediates: '$', final: 'p' }, params => this.requestMode(params, true));\n this._parser.registerCsiHandler({ prefix: '?', intermediates: '$', final: 'p' }, params => this.requestMode(params, false));\n\n // Kitty keyboard protocol handlers\n this._parser.registerCsiHandler({ prefix: '=', final: 'u' }, params => this.kittyKeyboardSet(params));\n this._parser.registerCsiHandler({ prefix: '?', final: 'u' }, params => this.kittyKeyboardQuery(params));\n this._parser.registerCsiHandler({ prefix: '>', final: 'u' }, params => this.kittyKeyboardPush(params));\n this._parser.registerCsiHandler({ prefix: '<', final: 'u' }, params => this.kittyKeyboardPop(params));\n\n /**\n * execute handler\n */\n this._parser.setExecuteHandler(C0.BEL, () => this.bell());\n this._parser.setExecuteHandler(C0.LF, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.VT, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.FF, () => this.lineFeed());\n this._parser.setExecuteHandler(C0.CR, () => this.carriageReturn());\n this._parser.setExecuteHandler(C0.BS, () => this.backspace());\n this._parser.setExecuteHandler(C0.HT, () => this.tab());\n this._parser.setExecuteHandler(C0.SO, () => this.shiftOut());\n this._parser.setExecuteHandler(C0.SI, () => this.shiftIn());\n // FIXME: What do to with missing? Old code just added those to print.\n\n this._parser.setExecuteHandler(C1.IND, () => this.index());\n this._parser.setExecuteHandler(C1.NEL, () => this.nextLine());\n this._parser.setExecuteHandler(C1.HTS, () => this.tabSet());\n\n /**\n * OSC handler\n */\n // 0 - icon name + title\n this._parser.registerOscHandler(0, new OscHandler(data => { this.setTitle(data); this.setIconName(data); return true; }));\n // 1 - icon name\n this._parser.registerOscHandler(1, new OscHandler(data => this.setIconName(data)));\n // 2 - title\n this._parser.registerOscHandler(2, new OscHandler(data => this.setTitle(data)));\n // 3 - set property X in the form \"prop=value\"\n // 4 - Change Color Number\n this._parser.registerOscHandler(4, new OscHandler(data => this.setOrReportIndexedColor(data)));\n // 5 - Change Special Color Number\n // 6 - Enable/disable Special Color Number c\n // 7 - current directory? (not in xterm spec, see https://gitlab.com/gnachman/iterm2/issues/3939)\n // 8 - create hyperlink (not in xterm spec, see https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda)\n this._parser.registerOscHandler(8, new OscHandler(data => this.setHyperlink(data)));\n // 10 - Change VT100 text foreground color to Pt.\n this._parser.registerOscHandler(10, new OscHandler(data => this.setOrReportFgColor(data)));\n // 11 - Change VT100 text background color to Pt.\n this._parser.registerOscHandler(11, new OscHandler(data => this.setOrReportBgColor(data)));\n // 12 - Change text cursor color to Pt.\n this._parser.registerOscHandler(12, new OscHandler(data => this.setOrReportCursorColor(data)));\n // 13 - Change mouse foreground color to Pt.\n // 14 - Change mouse background color to Pt.\n // 15 - Change Tektronix foreground color to Pt.\n // 16 - Change Tektronix background color to Pt.\n // 17 - Change highlight background color to Pt.\n // 18 - Change Tektronix cursor color to Pt.\n // 19 - Change highlight foreground color to Pt.\n // 46 - Change Log File to Pt.\n // 50 - Set Font to Pt.\n // 51 - reserved for Emacs shell.\n // 52 - Manipulate Selection Data.\n // 104 ; c - Reset Color Number c.\n this._parser.registerOscHandler(104, new OscHandler(data => this.restoreIndexedColor(data)));\n // 105 ; c - Reset Special Color Number c.\n // 106 ; c; f - Enable/disable Special Color Number c.\n // 110 - Reset VT100 text foreground color.\n this._parser.registerOscHandler(110, new OscHandler(data => this.restoreFgColor(data)));\n // 111 - Reset VT100 text background color.\n this._parser.registerOscHandler(111, new OscHandler(data => this.restoreBgColor(data)));\n // 112 - Reset text cursor color.\n this._parser.registerOscHandler(112, new OscHandler(data => this.restoreCursorColor(data)));\n // 113 - Reset mouse foreground color.\n // 114 - Reset mouse background color.\n // 115 - Reset Tektronix foreground color.\n // 116 - Reset Tektronix background color.\n // 117 - Reset highlight color.\n // 118 - Reset Tektronix cursor color.\n // 119 - Reset highlight foreground color.\n\n /**\n * ESC handlers\n */\n this._parser.registerEscHandler({ final: '7' }, () => this.saveCursor());\n this._parser.registerEscHandler({ final: '8' }, () => this.restoreCursor());\n this._parser.registerEscHandler({ final: 'D' }, () => this.index());\n this._parser.registerEscHandler({ final: 'E' }, () => this.nextLine());\n this._parser.registerEscHandler({ final: 'H' }, () => this.tabSet());\n this._parser.registerEscHandler({ final: 'M' }, () => this.reverseIndex());\n this._parser.registerEscHandler({ final: '=' }, () => this.keypadApplicationMode());\n this._parser.registerEscHandler({ final: '>' }, () => this.keypadNumericMode());\n this._parser.registerEscHandler({ final: 'c' }, () => this.fullReset());\n this._parser.registerEscHandler({ final: 'n' }, () => this.setgLevel(2));\n this._parser.registerEscHandler({ final: 'o' }, () => this.setgLevel(3));\n this._parser.registerEscHandler({ final: '|' }, () => this.setgLevel(3));\n this._parser.registerEscHandler({ final: '}' }, () => this.setgLevel(2));\n this._parser.registerEscHandler({ final: '~' }, () => this.setgLevel(1));\n this._parser.registerEscHandler({ intermediates: '%', final: '@' }, () => this.selectDefaultCharset());\n this._parser.registerEscHandler({ intermediates: '%', final: 'G' }, () => this.selectDefaultCharset());\n for (const flag in CHARSETS) {\n this._parser.registerEscHandler({ intermediates: '(', final: flag }, () => this.selectCharset('(' + flag));\n this._parser.registerEscHandler({ intermediates: ')', final: flag }, () => this.selectCharset(')' + flag));\n this._parser.registerEscHandler({ intermediates: '*', final: flag }, () => this.selectCharset('*' + flag));\n this._parser.registerEscHandler({ intermediates: '+', final: flag }, () => this.selectCharset('+' + flag));\n this._parser.registerEscHandler({ intermediates: '-', final: flag }, () => this.selectCharset('-' + flag));\n this._parser.registerEscHandler({ intermediates: '.', final: flag }, () => this.selectCharset('.' + flag));\n this._parser.registerEscHandler({ intermediates: '/', final: flag }, () => this.selectCharset('/' + flag)); // TODO: supported?\n }\n this._parser.registerEscHandler({ intermediates: '#', final: '8' }, () => this.screenAlignmentPattern());\n\n /**\n * error handler\n */\n this._parser.setErrorHandler((state: IParsingState) => {\n this._logService.error('Parsing error: ', state);\n return state;\n });\n\n /**\n * DCS handler\n */\n this._parser.registerDcsHandler({ intermediates: '$', final: 'q' }, new DcsHandler((data, params) => this.requestStatusString(data, params)));\n }\n\n /**\n * Async parse support.\n */\n private _preserveStack(cursorStartX: number, cursorStartY: number, decodedLength: number, position: number): void {\n this._parseStack.paused = true;\n this._parseStack.cursorStartX = cursorStartX;\n this._parseStack.cursorStartY = cursorStartY;\n this._parseStack.decodedLength = decodedLength;\n this._parseStack.position = position;\n }\n\n private _logSlowResolvingAsync(p: Promise): void {\n // log a limited warning about an async handler taking too long\n if (this._logService.logLevel <= LogLevelEnum.WARN) {\n Promise.race([p, new Promise((res, rej) => setTimeout(() => rej('#SLOW_TIMEOUT'), SLOW_ASYNC_LIMIT))])\n .catch(err => {\n if (err !== '#SLOW_TIMEOUT') {\n throw err;\n }\n console.warn(`async parser handler taking longer than ${SLOW_ASYNC_LIMIT} ms`);\n });\n }\n }\n\n private _getCurrentLinkId(): number {\n return this._curAttrData.extended.urlId;\n }\n\n /**\n * Parse call with async handler support.\n *\n * Whether the stack state got preserved for the next call, is indicated by the return value:\n * - undefined (void):\n * all handlers were sync, no stack save, continue normally with next chunk\n * - Promise\\:\n * execution stopped at async handler, stack saved, continue with same chunk and the promise\n * resolve value as `promiseResult` until the method returns `undefined`\n *\n * Note: This method should only be called by `Terminal.write` to ensure correct execution order\n * and proper continuation of async parser handlers.\n */\n public parse(data: string | Uint8Array, promiseResult?: boolean): void | Promise {\n let result: void | Promise;\n let cursorStartX = this._activeBuffer.x;\n let cursorStartY = this._activeBuffer.y;\n let start = 0;\n const wasPaused = this._parseStack.paused;\n\n if (wasPaused) {\n // assumption: _parseBuffer never mutates between async calls\n if (result = this._parser.parse(this._parseBuffer, this._parseStack.decodedLength, promiseResult)) {\n this._logSlowResolvingAsync(result);\n return result;\n }\n cursorStartX = this._parseStack.cursorStartX;\n cursorStartY = this._parseStack.cursorStartY;\n this._parseStack.paused = false;\n if (data.length > MAX_PARSEBUFFER_LENGTH) {\n start = this._parseStack.position + MAX_PARSEBUFFER_LENGTH;\n }\n }\n\n // Log debug data, the log level gate is to prevent extra work in this hot path\n if (this._logService.logLevel <= LogLevelEnum.DEBUG) {\n this._logService.debug(`parsing data ${typeof data === 'string' ? ` \"${data}\"` : ` \"${Array.prototype.map.call(data, e => String.fromCharCode(e)).join('')}\"`}`);\n }\n if (this._logService.logLevel === LogLevelEnum.TRACE) {\n this._logService.trace(`parsing data (codes)`, typeof data === 'string'\n ? data.split('').map(e => e.charCodeAt(0))\n : data\n );\n }\n\n // resize input buffer if needed\n if (this._parseBuffer.length < data.length) {\n if (this._parseBuffer.length < MAX_PARSEBUFFER_LENGTH) {\n this._parseBuffer = new Uint32Array(Math.min(data.length, MAX_PARSEBUFFER_LENGTH));\n }\n }\n\n // Clear the dirty row service so we know which lines changed as a result of parsing\n // Important: do not clear between async calls, otherwise we lost pending update information.\n if (!wasPaused) {\n this._dirtyRowTracker.clearRange();\n }\n\n // process big data in smaller chunks\n if (data.length > MAX_PARSEBUFFER_LENGTH) {\n for (let i = start; i < data.length; i += MAX_PARSEBUFFER_LENGTH) {\n const end = i + MAX_PARSEBUFFER_LENGTH < data.length ? i + MAX_PARSEBUFFER_LENGTH : data.length;\n const len = (typeof data === 'string')\n ? this._stringDecoder.decode(data.substring(i, end), this._parseBuffer)\n : this._utf8Decoder.decode(data.subarray(i, end), this._parseBuffer);\n if (result = this._parser.parse(this._parseBuffer, len)) {\n this._preserveStack(cursorStartX, cursorStartY, len, i);\n this._logSlowResolvingAsync(result);\n return result;\n }\n }\n } else {\n if (!wasPaused) {\n const len = (typeof data === 'string')\n ? this._stringDecoder.decode(data, this._parseBuffer)\n : this._utf8Decoder.decode(data, this._parseBuffer);\n if (result = this._parser.parse(this._parseBuffer, len)) {\n this._preserveStack(cursorStartX, cursorStartY, len, 0);\n this._logSlowResolvingAsync(result);\n return result;\n }\n }\n }\n\n if (this._activeBuffer.x !== cursorStartX || this._activeBuffer.y !== cursorStartY) {\n this._onCursorMove.fire();\n }\n\n // Refresh any dirty rows accumulated as part of parsing, fire only for rows within the\n // _viewport_ which is relative to ydisp, not relative to ybase.\n const viewportEnd = this._dirtyRowTracker.end + (this._bufferService.buffer.ybase - this._bufferService.buffer.ydisp);\n const viewportStart = this._dirtyRowTracker.start + (this._bufferService.buffer.ybase - this._bufferService.buffer.ydisp);\n if (viewportStart < this._bufferService.rows) {\n this._onRequestRefreshRows.fire({\n start: Math.min(viewportStart, this._bufferService.rows - 1),\n end: Math.min(viewportEnd, this._bufferService.rows - 1)\n });\n }\n }\n\n public print(data: Uint32Array, start: number, end: number): void {\n let code: number;\n let chWidth: number;\n const charset = this._charsetService.charset;\n const screenReaderMode = this._optionsService.rawOptions.screenReaderMode;\n const cols = this._bufferService.cols;\n const wraparoundMode = this._coreService.decPrivateModes.wraparound;\n const insertMode = this._coreService.modes.insertMode;\n const curAttr = this._curAttrData;\n let bufferRow = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y);\n\n // Defensive check: bufferRow can be undefined if a resize occurred mid-write due to async\n // scheduling gaps in WriteBuffer. See https://github.com/xtermjs/xterm.js/issues/5597\n if (!bufferRow) {\n return;\n }\n\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n\n // handle wide chars: reset start_cell-1 if we would overwrite the second cell of a wide char\n if (this._activeBuffer.x && end - start > 0 && bufferRow.getWidth(this._activeBuffer.x - 1) === 2) {\n bufferRow.setCellFromCodepoint(this._activeBuffer.x - 1, 0, 1, curAttr);\n }\n\n let precedingJoinState = this._parser.precedingJoinState;\n for (let pos = start; pos < end; ++pos) {\n code = data[pos];\n\n // Soft hyphen's (U+00AD) behavior is ambiguous and differs across terminals. We opt to treat\n // it as a zero-width hint to text layout engines and simply ignore it.\n if (code === 0xAD) {\n continue;\n }\n\n // get charset replacement character\n // charset is only defined for ASCII, therefore we only\n // search for an replacement char if code < 127\n if (code < 127 && charset) {\n const ch = charset[String.fromCharCode(code)];\n if (ch) {\n code = ch.charCodeAt(0);\n }\n }\n\n const currentInfo = this._unicodeService.charProperties(code, precedingJoinState);\n chWidth = UnicodeService.extractWidth(currentInfo);\n const shouldJoin = UnicodeService.extractShouldJoin(currentInfo);\n const oldWidth = shouldJoin ? UnicodeService.extractWidth(precedingJoinState) : 0;\n precedingJoinState = currentInfo;\n\n if (screenReaderMode) {\n this._onA11yChar.fire(stringFromCodePoint(code));\n }\n if (this._getCurrentLinkId()) {\n this._oscLinkService.addLineToLink(this._getCurrentLinkId(), this._activeBuffer.ybase + this._activeBuffer.y);\n }\n\n // goto next line if ch would overflow\n // NOTE: To avoid costly width checks here,\n // the terminal does not allow a cols < 2.\n if (this._activeBuffer.x + chWidth - oldWidth > cols) {\n // autowrap - DECAWM\n // automatically wraps to the beginning of the next line\n if (wraparoundMode) {\n const oldRow = bufferRow;\n let oldCol = this._activeBuffer.x - oldWidth;\n this._activeBuffer.x = oldWidth;\n this._activeBuffer.y++;\n if (this._activeBuffer.y === this._activeBuffer.scrollBottom + 1) {\n this._activeBuffer.y--;\n this._bufferService.scroll(this._eraseAttrData(), true);\n } else {\n if (this._activeBuffer.y >= this._bufferService.rows) {\n this._activeBuffer.y = this._bufferService.rows - 1;\n }\n // The line already exists (eg. the initial viewport), mark it as a\n // wrapped line\n this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!.isWrapped = true;\n }\n // row changed, get it again\n bufferRow = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y);\n if (!bufferRow) {\n return;\n }\n if (oldWidth > 0 && bufferRow instanceof BufferLine) {\n // Combining character widens 1 column to 2.\n // Move old character to next line.\n bufferRow.copyCellsFrom(oldRow as BufferLine,\n oldCol, 0, oldWidth, false);\n }\n // clear left over cells to the right\n while (oldCol < cols) {\n oldRow.setCellFromCodepoint(oldCol++, 0, 1, curAttr);\n }\n } else {\n this._activeBuffer.x = cols - 1;\n if (chWidth === 2) {\n // FIXME: check for xterm behavior\n // What to do here? We got a wide char that does not fit into last cell\n continue;\n }\n }\n }\n\n // insert combining char at last cursor position\n // this._activeBuffer.x should never be 0 for a combining char\n // since they always follow a cell consuming char\n // therefore we can test for this._activeBuffer.x to avoid overflow left\n if (shouldJoin && this._activeBuffer.x) {\n const offset = bufferRow.getWidth(this._activeBuffer.x - 1) ? 1 : 2;\n // if empty cell after fullwidth, need to go 2 cells back\n // it is save to step 2 cells back here\n // since an empty cell is only set by fullwidth chars\n bufferRow.addCodepointToCell(this._activeBuffer.x - offset,\n code, chWidth);\n for (let delta = chWidth - oldWidth; --delta >= 0;) {\n bufferRow.setCellFromCodepoint(this._activeBuffer.x++, 0, 0, curAttr);\n }\n continue;\n }\n\n // insert mode: move characters to right\n if (insertMode) {\n // right shift cells according to the width\n bufferRow.insertCells(this._activeBuffer.x, chWidth - oldWidth, this._activeBuffer.getNullCell(curAttr));\n // test last cell - since the last cell has only room for\n // a halfwidth char any fullwidth shifted there is lost\n // and will be set to empty cell\n if (bufferRow.getWidth(cols - 1) === 2) {\n bufferRow.setCellFromCodepoint(cols - 1, NULL_CELL_CODE, NULL_CELL_WIDTH, curAttr);\n }\n }\n\n // write current char to buffer and advance cursor\n bufferRow.setCellFromCodepoint(this._activeBuffer.x++, code, chWidth, curAttr);\n\n // fullwidth char - also set next cell to placeholder stub and advance cursor\n // for graphemes bigger than fullwidth we can simply loop to zero\n // we already made sure above, that this._activeBuffer.x + chWidth will not overflow right\n if (chWidth > 0) {\n while (--chWidth) {\n // other than a regular empty cell a cell following a wide char has no width\n bufferRow.setCellFromCodepoint(this._activeBuffer.x++, 0, 0, curAttr);\n }\n }\n }\n\n this._parser.precedingJoinState = precedingJoinState;\n\n // handle wide chars: reset cell to the right if it is second cell of a wide char\n if (this._activeBuffer.x < cols && end - start > 0 && bufferRow.getWidth(this._activeBuffer.x) === 0 && !bufferRow.hasContent(this._activeBuffer.x)) {\n bufferRow.setCellFromCodepoint(this._activeBuffer.x, 0, 1, curAttr);\n }\n\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Forward registerCsiHandler from parser.\n */\n public registerCsiHandler(id: IFunctionIdentifier, callback: (params: IParams) => boolean | Promise): IDisposable {\n if (id.final === 't' && !id.prefix && !id.intermediates) {\n // security: always check whether window option is allowed\n return this._parser.registerCsiHandler(id, params => {\n if (!paramToWindowOption(params.params[0], this._optionsService.rawOptions.windowOptions)) {\n return true;\n }\n return callback(params);\n });\n }\n return this._parser.registerCsiHandler(id, callback);\n }\n\n /**\n * Forward registerDcsHandler from parser.\n */\n public registerDcsHandler(id: IFunctionIdentifier, callback: (data: string, param: IParams) => boolean | Promise): IDisposable {\n return this._parser.registerDcsHandler(id, new DcsHandler(callback));\n }\n\n /**\n * Forward registerEscHandler from parser.\n */\n public registerEscHandler(id: IFunctionIdentifier, callback: () => boolean | Promise): IDisposable {\n return this._parser.registerEscHandler(id, callback);\n }\n\n /**\n * Forward registerOscHandler from parser.\n */\n public registerOscHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this._parser.registerOscHandler(ident, new OscHandler(callback));\n }\n\n /**\n * Forward registerApcHandler from parser.\n */\n public registerApcHandler(ident: number, callback: (data: string) => boolean | Promise): IDisposable {\n return this._parser.registerApcHandler(ident, new ApcHandler(callback));\n }\n\n /**\n * BEL\n * Bell (Ctrl-G).\n *\n * @vt: #Y C0 BEL \"Bell\" \"\\a, \\x07\" \"Ring the bell.\"\n * The behavior of the bell is further customizable with `ITerminalOptions.bellStyle`\n * and `ITerminalOptions.bellSound`.\n */\n public bell(): boolean {\n this._onRequestBell.fire();\n return true;\n }\n\n /**\n * LF\n * Line Feed or New Line (NL). (LF is Ctrl-J).\n *\n * @vt: #Y C0 LF \"Line Feed\" \"\\n, \\x0A\" \"Move the cursor one row down, scrolling if needed.\"\n * Scrolling is restricted to scroll margins and will only happen on the bottom line.\n *\n * @vt: #Y C0 VT \"Vertical Tabulation\" \"\\v, \\x0B\" \"Treated as LF.\"\n * @vt: #Y C0 FF \"Form Feed\" \"\\f, \\x0C\" \"Treated as LF.\"\n */\n public lineFeed(): boolean {\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n if (this._optionsService.rawOptions.convertEol) {\n this._activeBuffer.x = 0;\n }\n this._activeBuffer.y++;\n if (this._activeBuffer.y === this._activeBuffer.scrollBottom + 1) {\n this._activeBuffer.y--;\n this._bufferService.scroll(this._eraseAttrData());\n } else if (this._activeBuffer.y >= this._bufferService.rows) {\n this._activeBuffer.y = this._bufferService.rows - 1;\n } else {\n // There was an explicit line feed (not just a carriage return), so clear the wrapped state of\n // the line. This is particularly important on conpty/Windows where revisiting lines to\n // reprint is common, especially on resize. Note that the windowsMode wrapped line heuristics\n // can mess with this so windowsMode should be disabled, which is recommended on Windows build\n // 21376 and above.\n this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!.isWrapped = false;\n }\n // If the end of the line is hit, prevent this action from wrapping around to the next line.\n if (this._activeBuffer.x >= this._bufferService.cols) {\n this._activeBuffer.x--;\n }\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n\n this._onLineFeed.fire();\n return true;\n }\n\n /**\n * CR\n * Carriage Return (Ctrl-M).\n *\n * @vt: #Y C0 CR \"Carriage Return\" \"\\r, \\x0D\" \"Move the cursor to the beginning of the row.\"\n */\n public carriageReturn(): boolean {\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * BS\n * Backspace (Ctrl-H).\n *\n * @vt: #Y C0 BS \"Backspace\" \"\\b, \\x08\" \"Move the cursor one position to the left.\"\n * By default it is not possible to move the cursor past the leftmost position.\n * If `reverse wrap-around` (`CSI ? 45 h`) is set, a previous soft line wrap (DECAWM)\n * can be undone with BS within the scroll margins. In that case the cursor will wrap back\n * to the end of the previous row. Note that it is not possible to peek back into the scrollbuffer\n * with the cursor, thus at the home position (top-leftmost cell) this has no effect.\n */\n public backspace(): boolean {\n // reverse wrap-around is disabled\n if (!this._coreService.decPrivateModes.reverseWraparound) {\n this._restrictCursor();\n if (this._activeBuffer.x > 0) {\n this._activeBuffer.x--;\n }\n return true;\n }\n\n // reverse wrap-around is enabled\n // other than for normal operation mode, reverse wrap-around allows the cursor\n // to be at x=cols to be able to address the last cell of a row by BS\n this._restrictCursor(this._bufferService.cols);\n\n if (this._activeBuffer.x > 0) {\n this._activeBuffer.x--;\n } else {\n /**\n * reverse wrap-around handling:\n * Our implementation deviates from xterm on purpose. Details:\n * - only previous soft NLs can be reversed (isWrapped=true)\n * - only works within scrollborders (top/bottom, left/right not yet supported)\n * - cannot peek into scrollbuffer\n * - any cursor movement sequence keeps working as expected\n */\n if (this._activeBuffer.x === 0\n && this._activeBuffer.y > this._activeBuffer.scrollTop\n && this._activeBuffer.y <= this._activeBuffer.scrollBottom\n && this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)?.isWrapped) {\n this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!.isWrapped = false;\n this._activeBuffer.y--;\n this._activeBuffer.x = this._bufferService.cols - 1;\n // find last taken cell - last cell can have 3 different states:\n // - hasContent(true) + hasWidth(1): narrow char - we are done\n // - hasWidth(0): second part of wide char - we are done\n // - hasContent(false) + hasWidth(1): empty cell due to early wrapping wide char, go one\n // cell further back\n const line = this._activeBuffer.lines.get(this._activeBuffer.ybase + this._activeBuffer.y)!;\n if (line.hasWidth(this._activeBuffer.x) && !line.hasContent(this._activeBuffer.x)) {\n this._activeBuffer.x--;\n // We do this only once, since width=1 + hasContent=false currently happens only once\n // before early wrapping of a wide char.\n // This needs to be fixed once we support graphemes taking more than 2 cells.\n }\n }\n }\n this._restrictCursor();\n return true;\n }\n\n /**\n * TAB\n * Horizontal Tab (HT) (Ctrl-I).\n *\n * @vt: #Y C0 HT \"Horizontal Tabulation\" \"\\t, \\x09\" \"Move the cursor to the next character tab stop.\"\n */\n public tab(): boolean {\n if (this._activeBuffer.x >= this._bufferService.cols) {\n return true;\n }\n const originalX = this._activeBuffer.x;\n this._activeBuffer.x = this._activeBuffer.nextStop();\n if (this._optionsService.rawOptions.screenReaderMode) {\n this._onA11yTab.fire(this._activeBuffer.x - originalX);\n }\n return true;\n }\n\n /**\n * SO\n * Shift Out (Ctrl-N) -> Switch to Alternate Character Set. This invokes the\n * G1 character set.\n *\n * @vt: #P[Only limited ISO-2022 charset support.] C0 SO \"Shift Out\" \"\\x0E\" \"Switch to an alternative character set.\"\n */\n public shiftOut(): boolean {\n this._charsetService.setgLevel(1);\n return true;\n }\n\n /**\n * SI\n * Shift In (Ctrl-O) -> Switch to Standard Character Set. This invokes the G0\n * character set (the default).\n *\n * @vt: #Y C0 SI \"Shift In\" \"\\x0F\" \"Return to regular character set after Shift Out.\"\n */\n public shiftIn(): boolean {\n this._charsetService.setgLevel(0);\n return true;\n }\n\n /**\n * Restrict cursor to viewport size / scroll margin (origin mode).\n */\n private _restrictCursor(maxCol: number = this._bufferService.cols - 1): void {\n this._activeBuffer.x = Math.min(maxCol, Math.max(0, this._activeBuffer.x));\n this._activeBuffer.y = this._coreService.decPrivateModes.origin\n ? Math.min(this._activeBuffer.scrollBottom, Math.max(this._activeBuffer.scrollTop, this._activeBuffer.y))\n : Math.min(this._bufferService.rows - 1, Math.max(0, this._activeBuffer.y));\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Set absolute cursor position.\n */\n private _setCursor(x: number, y: number): void {\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n if (this._coreService.decPrivateModes.origin) {\n this._activeBuffer.x = x;\n this._activeBuffer.y = this._activeBuffer.scrollTop + y;\n } else {\n this._activeBuffer.x = x;\n this._activeBuffer.y = y;\n }\n this._restrictCursor();\n this._dirtyRowTracker.markDirty(this._activeBuffer.y);\n }\n\n /**\n * Set relative cursor position.\n */\n private _moveCursor(x: number, y: number): void {\n // for relative changes we have to make sure we are within 0 .. cols/rows - 1\n // before calculating the new position\n this._restrictCursor();\n this._setCursor(this._activeBuffer.x + x, this._activeBuffer.y + y);\n }\n\n /**\n * CSI Ps A\n * Cursor Up Ps Times (default = 1) (CUU).\n *\n * @vt: #Y CSI CUU \"Cursor Up\" \"CSI Ps A\" \"Move cursor `Ps` times up (default=1).\"\n * If the cursor would pass the top scroll margin, it will stop there.\n */\n public cursorUp(params: IParams): boolean {\n // stop at scrollTop\n const diffToTop = this._activeBuffer.y - this._activeBuffer.scrollTop;\n if (diffToTop >= 0) {\n this._moveCursor(0, -Math.min(diffToTop, params.params[0] || 1));\n } else {\n this._moveCursor(0, -(params.params[0] || 1));\n }\n return true;\n }\n\n /**\n * CSI Ps B\n * Cursor Down Ps Times (default = 1) (CUD).\n *\n * @vt: #Y CSI CUD \"Cursor Down\" \"CSI Ps B\" \"Move cursor `Ps` times down (default=1).\"\n * If the cursor would pass the bottom scroll margin, it will stop there.\n */\n public cursorDown(params: IParams): boolean {\n // stop at scrollBottom\n const diffToBottom = this._activeBuffer.scrollBottom - this._activeBuffer.y;\n if (diffToBottom >= 0) {\n this._moveCursor(0, Math.min(diffToBottom, params.params[0] || 1));\n } else {\n this._moveCursor(0, params.params[0] || 1);\n }\n return true;\n }\n\n /**\n * CSI Ps C\n * Cursor Forward Ps Times (default = 1) (CUF).\n *\n * @vt: #Y CSI CUF \"Cursor Forward\" \"CSI Ps C\" \"Move cursor `Ps` times forward (default=1).\"\n */\n public cursorForward(params: IParams): boolean {\n this._moveCursor(params.params[0] || 1, 0);\n return true;\n }\n\n /**\n * CSI Ps D\n * Cursor Backward Ps Times (default = 1) (CUB).\n *\n * @vt: #Y CSI CUB \"Cursor Backward\" \"CSI Ps D\" \"Move cursor `Ps` times backward (default=1).\"\n */\n public cursorBackward(params: IParams): boolean {\n this._moveCursor(-(params.params[0] || 1), 0);\n return true;\n }\n\n /**\n * CSI Ps E\n * Cursor Next Line Ps Times (default = 1) (CNL).\n * Other than cursorDown (CUD) also set the cursor to first column.\n *\n * @vt: #Y CSI CNL \"Cursor Next Line\" \"CSI Ps E\" \"Move cursor `Ps` times down (default=1) and to the first column.\"\n * Same as CUD, additionally places the cursor at the first column.\n */\n public cursorNextLine(params: IParams): boolean {\n this.cursorDown(params);\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * CSI Ps F\n * Cursor Previous Line Ps Times (default = 1) (CPL).\n * Other than cursorUp (CUU) also set the cursor to first column.\n *\n * @vt: #Y CSI CPL \"Cursor Backward\" \"CSI Ps F\" \"Move cursor `Ps` times up (default=1) and to the first column.\"\n * Same as CUU, additionally places the cursor at the first column.\n */\n public cursorPrecedingLine(params: IParams): boolean {\n this.cursorUp(params);\n this._activeBuffer.x = 0;\n return true;\n }\n\n /**\n * CSI Ps G\n * Cursor Character Absolute [column] (default = [row,1]) (CHA).\n *\n * @vt: #Y CSI CHA \"Cursor Horizontal Absolute\" \"CSI Ps G\" \"Move cursor to `Ps`-th column of the active row (default=1).\"\n */\n public cursorCharAbsolute(params: IParams): boolean {\n this._setCursor((params.params[0] || 1) - 1, this._activeBuffer.y);\n return true;\n }\n\n /**\n * CSI Ps ; Ps H\n * Cursor Position [row;column] (default = [1,1]) (CUP).\n *\n * @vt: #Y CSI CUP \"Cursor Position\" \"CSI Ps ; Ps H\" \"Set cursor to position [`Ps`, `Ps`] (default = [1, 1]).\"\n * If ORIGIN mode is set, places the cursor to the absolute position within the scroll margins.\n * If ORIGIN mode is not set, places the cursor to the absolute position within the viewport.\n * Note that the coordinates are 1-based, thus the top left position starts at `1 ; 1`.\n */\n public cursorPosition(params: IParams): boolean {\n this._setCursor(\n // col\n (params.length >= 2) ? (params.params[1] || 1) - 1 : 0,\n // row\n (params.params[0] || 1) - 1\n );\n return true;\n }\n\n /**\n * CSI Pm ` Character Position Absolute\n * [column] (default = [row,1]) (HPA).\n * Currently same functionality as CHA.\n *\n * @vt: #Y CSI HPA \"Horizontal Position Absolute\" \"CSI Ps ` \" \"Same as CHA.\"\n */\n public charPosAbsolute(params: IParams): boolean {\n this._setCursor((params.params[0] || 1) - 1, this._activeBuffer.y);\n return true;\n }\n\n /**\n * CSI Pm a Character Position Relative\n * [columns] (default = [row,col+1]) (HPR)\n *\n * @vt: #Y CSI HPR \"Horizontal Position Relative\" \"CSI Ps a\" \"Same as CUF.\"\n */\n public hPositionRelative(params: IParams): boolean {\n this._moveCursor(params.params[0] || 1, 0);\n return true;\n }\n\n /**\n * CSI Pm d Vertical Position Absolute (VPA)\n * [row] (default = [1,column])\n *\n * @vt: #Y CSI VPA \"Vertical Position Absolute\" \"CSI Ps d\" \"Move cursor to `Ps`-th row (default=1).\"\n */\n public linePosAbsolute(params: IParams): boolean {\n this._setCursor(this._activeBuffer.x, (params.params[0] || 1) - 1);\n return true;\n }\n\n /**\n * CSI Pm e Vertical Position Relative (VPR)\n * [rows] (default = [row+1,column])\n * reuse CSI Ps B ?\n *\n * @vt: #Y CSI VPR \"Vertical Position Relative\" \"CSI Ps e\" \"Move cursor `Ps` times down (default=1).\"\n */\n public vPositionRelative(params: IParams): boolean {\n this._moveCursor(0, params.params[0] || 1);\n return true;\n }\n\n /**\n * CSI Ps ; Ps f\n * Horizontal and Vertical Position [row;column] (default =\n * [1,1]) (HVP).\n * Same as CUP.\n *\n * @vt: #Y CSI HVP \"Horizontal and Vertical Position\" \"CSI Ps ; Ps f\" \"Same as CUP.\"\n */\n public hVPosition(params: IParams): boolean {\n this.cursorPosition(params);\n return true;\n }\n\n /**\n * CSI Ps g Tab Clear (TBC).\n * Ps = 0 -> Clear Current Column (default).\n * Ps = 3 -> Clear All.\n * Potentially:\n * Ps = 2 -> Clear Stops on Line.\n * http://vt100.net/annarbor/aaa-ug/section6.html\n *\n * @vt: #Y CSI TBC \"Tab Clear\" \"CSI Ps g\" \"Clear tab stops at current position (0) or all (3) (default=0).\"\n * Clearing tabstops off the active row (Ps = 2, VT100) is currently not supported.\n */\n public tabClear(params: IParams): boolean {\n const param = params.params[0];\n if (param === 0) {\n delete this._activeBuffer.tabs[this._activeBuffer.x];\n } else if (param === 3) {\n this._activeBuffer.tabs = {};\n }\n return true;\n }\n\n /**\n * CSI Ps I\n * Cursor Forward Tabulation Ps tab stops (default = 1) (CHT).\n *\n * @vt: #Y CSI CHT \"Cursor Horizontal Tabulation\" \"CSI Ps I\" \"Move cursor `Ps` times tabs forward (default=1).\"\n */\n public cursorForwardTab(params: IParams): boolean {\n if (this._activeBuffer.x >= this._bufferService.cols) {\n return true;\n }\n let param = params.params[0]3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:05) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:05) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:05) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:05) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:05) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:05) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:06) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:07) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:07) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:07) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:07) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:07) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:07) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:07) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:07) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:07) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:07) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:07) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:07) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:07) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:07) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:07) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:07) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:07) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:07) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:07) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:07) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:07) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:07) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:07) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:07) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:07) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:07) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:07) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:07) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:08) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:09) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:09) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:09) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:09) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:09) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:09) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:09) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:09) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:09) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:09) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:09) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:09) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:09) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:09) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:09) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:09) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:09) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:09) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:09) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:09) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:09) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:09) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:09) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:09) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:09) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:09) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:09) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:09) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:10) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:11) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:11) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:11) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:11) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:11) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:11) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:11) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:11) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:11) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:11) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:11) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:11) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:11) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:11) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:11) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:11) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:11) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:11) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:11) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:11) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:11) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:11) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:11) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:11) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:11) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:11) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:11) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:11) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:12) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:13) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:13) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:13) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:13) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:13) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:13) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:13) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:13) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:13) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:13) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:13) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:13) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:13) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:13) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:13) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:13) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:13) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:13) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:13) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:13) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:13) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:13) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:13) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:13) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:13) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:13) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:13) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:13) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:14) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:15) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:15) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:15) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:15) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:15) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:15) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:15) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:15) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:15) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:15) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:15) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:15) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:15) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 16:43:15) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:15) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:15) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 16:43:15) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:15) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 16:43:15) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:15) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 16:43:15) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 16:43:15) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 16:43:15) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 16:43:15) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 16:43:15) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 16:43:15) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 16:43:15) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 16:43:15) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 16:43:16) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 16:43:17) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 16:43:17) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 16:43:17) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 16:43:17) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 16:43:17) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 16:43:17) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 16:43:17) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 16:43:17) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 16:43:17) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 16:43:17) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 16:43:17) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 16:43:17) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 16:43:17) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 16:43:17) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 16:43:17) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 16:43:17) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 16:43:17) - Error al guardar imagen loc44abd33129a7](2025-07-21 15:42:35) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:35) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:35) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:35) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:35) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:35) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:35) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 15:42:35) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 15:42:35) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:35) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:35) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:35) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:35) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:35) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:35) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:35) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:35) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:36) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:37) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 15:42:37) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:37) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:37) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:37) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:37) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:37) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:37) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 15:42:37) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:37) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 15:42:37) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:37) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:37) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:37) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 15:42:37) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:37) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:37) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:37) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 15:42:37) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:37) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 15:42:37) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:37) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 15:42:37) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 15:42:37) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:37) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:37) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:37) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:37) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:38) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:39) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:39) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:39) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:39) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:39) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 15:42:39) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:39) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:39) - Error al guardar imagen localmente [1420098f-7c6e-45e2-bef7-7d5bdcc635ce](2025-07-21 15:42:39) - Error al guardar imagen localmente [c9ee19b1-8d22-4287-8a4b-8b2871a025f8](2025-07-21 15:42:39) - Error al guardar imagen localmente [a76f7e2c-3402-4a31-9159-113caf79e74a](2025-07-21 15:42:39) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:39) - Error al guardar imagen localmente [c843d5ee-c72a-4bc1-8475-5441b6bcd252](2025-07-21 15:42:39) - Error al guardar imagen localmente [cccf617a-2597-4ad9-8777-75837142678f](2025-07-21 15:42:39) - Error al guardar imagen localmente [f35a3267-552b-473f-809b-9bf14f7ce90f](2025-07-21 15:42:39) - Error al guardar imagen localmente [80ffadb9-f0ab-4097-ae33-d6410ea8db02](2025-07-21 15:42:39) - Error al guardar imagen localmente [cd2abea0-1753-4af2-8b0e-e804d76d80c4](2025-07-21 15:42:39) - Error al guardar imagen localmente [3e413fd5-a509-4cfc-a85c-10770e6336d8](2025-07-21 15:42:39) - Error al guardar imagen localmente [de3c9fa2-e498-41d2-9dd8-8d52da0652c7](2025-07-21 15:42:39) - Error al guardar imagen localmente [3a762715-e8fd-4dc7-9dba-5ad78812b938](2025-07-21 15:42:39) - Error al guardar imagen localmente [a850bd11-0323-4ee6-9b9b-caff24b9c0d3](2025-07-21 15:42:39) - Error al guardar imagen localmente [25acc7cb-a177-438f-aab4-0f5931574fa3](2025-07-21 15:42:39) - Error al guardar imagen localmente [61986b90-0678-4584-b6a1-006d2ab163ac](2025-07-21 15:42:39) - Error al guardar imagen localmente [30389993-7b9f-4de6-ac7a-44abd33129a7](2025-07-21 15:42:39) - Error al guardar imagen localmente [a885505a-8391-4017-999c-0ba4461cf884](2025-07-21 15:42:39) - Error al guardar imagen localmente [d5207ff8-ce5d-4b8f-a775-f9606db3599a](2025-07-21 15:42:39) - Error al guardar imagen localmente [947c9bb4-4129-44b6-bbe2-aa0ab6787a40](2025-07-21 15:42:39) - Error al guardar imagen localmente [4a97f8a1-31ad-44d1-8d6b-0afdd73c7f16](2025-07-21 15:42:39) - Error al guardar imagen localmente [30dc3b5f-79d8-4697-8bba-4b6d46ca4455](2025-07-21 15:42:40) - Error al guardar imagen localmente [2a3956e0-1157-4767-93cc-b74c920d8b22](2025-07-21 15:42:41) - Error al guardar imagen localmente [4e605981-8099-4dc4-b141-93b83d309104](2025-07-21 15:42:41) - Error al guardar imagen localmente [dd1b1361-7c29-455c-8b17-62fbd84dc9f9](2025-07-21 15:42:41) - Error al guardar imagen localmente [7a1308ca-d8ca-4b5d-a5f6-1bdfdec227af](2025-07-21 15:42:41) - Error al guardar imagen localmente [d679c8d0-51d7-4364-ab0f-dd9afb22c86b](2025-07-21 15:42:41) - Error al guardar imagen localmente [33875973-46e6-47d9-82f3-2e7f15a0100d](2025-07-21 15:42:41) - Error al guardar imagen localmente [46ae9520-bec4-4029-b7d0-87d6c43e2f68](2025-07-21 15:42:41) - Error al guardar imagen localmente [c2d2ce1d-36e0-4272-9357-8ecb215eff21](2025-07-21 15:42:41) - Error al guardar imagen localmente [52569634-b01c-4a94-8732-4a86bc217515](2025-07-21 15:42:41) - Error a ERROR al obtener imagen, intento: 3 , respuesta: null [d8a898c3-0d22-43eb-b8e0-ef25d4dfe27e](2024-05-22 14:57:06) - No se pudo encontrar una imagen asociada a registro de CRM \n [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:01:52) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122145","MarcaId":"4597192000175524976","user":"gbringas@arochilindner.com"} [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:01:59) - Tokens generados: 1000.a97826ad6bf24c2607ccb3b57282ba31.c33165a13c3a845b784bc1993772aa16 [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:00) - Intento 0 el registro no contiene foto asociada [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:00) - ERROR al obtener imagen, intento: 1 , respuesta: null [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:02) - Intento 1 el registro no contiene foto asociada [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:02) - ERROR al obtener imagen, intento: 2 , respuesta: null [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:04) - Intento 2 el registro no contiene foto asociada [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:04) - ERROR al obtener imagen, intento: 3 , respuesta: null [0a3ad0e2-009a-4ce2-9a32-ecb6d41a9d09](2024-05-22 15:02:06) - No se pudo encontrar una imagen asociada a registro de CRM \n [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:17) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122145","MarcaId":"4597192000175524976","user":"gbringas@arochilindner.com"} [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:24) - Tokens generados: 1000.a97826ad6bf24c2607ccb3b57282ba31.c33165a13c3a845b784bc1993772aa16 [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:25) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:25) - Imagen guardada localmente de manera exitosa [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:26) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2024-05-22T14:04:26-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2024-05-22T14:01:51-06:00", "id": "4597192000175524976", "Created_By": { "name": "German Bringas Cadena", "id": "4597192000053432501" } }, "message": "record updated", "status": "success" } ] } [44840768-236c-4e3b-95eb-fac0fae0e253](2024-05-22 15:04:26) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-122145.png [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:12) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-122146","MarcaId":"4597192000175555825","user":"uzaldivar@arochilindner.com"} [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:20) - Tokens generados: 1000.04009608c31509030bad720d47e63ee7.14d3b22c60597c24b03f4549f6e2a77f [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:20) - Intento 0 el registro no contiene foto asociada [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:20) - ERROR al obtener imagen, intento: 1 , respuesta: null [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:23) - Intento 1 el registro no contiene foto asociada [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:23) - ERROR al obtener imagen, intento: 2 , respuesta: null [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:25) - Intento 2 el registro no contiene foto asociada [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:25) - ERROR al obtener imagen, intento: 3 , respuesta: null [63d90bec-be6d-428d-996a-9869625317b3](2024-05-22 15:51:27) - No se pudo encontrar una imagen asociada a registro de CRM \n [0a02b1bc-d391-43c1