>_ rehablogger
Система работает
← Все сессии
СЕССИЯ УСТРОЙСТВА

rehabapp_2026-09-04_17-47-33

Подключение…
Rehab Logger console · история загружается порциями по 250 записей
INFO [console] AML_verticalAngles: 112.20942033382012
INFO [console] AML_verticalAngles: 111.84729363142972
INFO [console] AML_EXE: 94.00589979764764
INFO [console] AML_EXE: 91.75589979764764
INFO [console] AML_EXE: 89.50589979764764
INFO [console] AML_verticalAngles: 112.67698973624385
INFO [console] AML_verticalAngles: 113.29730701549352
INFO [console] AML_verticalAngles: 115.08485701549358
INFO [console] AML_verticalAngles: 112.83485701549358
INFO [console] [DIO]
INFO [console] [DIO] *** Response ***
INFO [console] [DIO] uri: https://rehabilitation.most.team/api/v1/patient/workout/detailed-exercises?unit_id=1000&rehabilitation_day_id=2776&workout_id
INFO [console] [DIO] statusCode: 200
INFO [console] [DIO] statusMessage: OK
INFO [console] [DIO] headers:
INFO [console] [DIO] x-served-by: rehabilitation.most.team
INFO [console] [DIO] access-control-allow-credentials: true
INFO [console] [DIO] connection: keep-alive
INFO [console] [DIO] cache-control: no-cache, private
INFO [console] [DIO] date: Fri, 04 Sep 2026 14:50:32 GMT
INFO [console] [DIO] transfer-encoding: chunked
INFO [console] [DIO] access-control-allow-origin: http://localhost:3000
INFO [console] [DIO] content-type: application/json
INFO [console] [DIO] server: openresty
INFO [console] [DIO] Response Text:
INFO [console] [DIO] {"success":true,"meta":{"timestamp":"2026-09-04T14:50:32.833334Z","request_id":"b52ca32a-0fe0-41e1-95f8-f55d508126b1","version":"v1"},"data":{"unit_id":1000,"workout_duration_start":5,"workout_duration_end":10,"body_side":"left","exercises":[{"id":35,"sequence_number":1,"is_monitored":true,"name":"Сгибание и разгибание в голеностопных суставах","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":10,"execution_time":null,"instruction":{"exercise_name":"Сгибание и разгибание в голеностопных суставах","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov","inventory":null,"warning":"Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх)","general_description":"Исходное положение - лёжа на спине боком к камере, ноги выпрямлены в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде.","steps":[{"exercise_id":35,"sequence_number":1,"step_text":"Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере"},{"exercise_id":35,"sequence_number":2,"step_text":"Выпрямите обе ноги в коленях"},{"exercise_id":35,"sequence_number":3,"step_text":"Стопы расположите параллельно друг другу на ширине таза"},{"exercise_id":35,"sequence_number":4,"step_text":"Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости"},{"exercise_id":35,"sequence_number":5,"step_text":"Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами"},{"exercise_id":35,"sequence_number":6,"step_text":"На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области"},{"exercise_id":35,"sequence_number":7,"step_text":"От себя: Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на \"цыпочки\", ощущая напряжение в икрах"},{"exercise_id":35,"sequence_number":8,"step_text":"Движение должно быть ритмичным, без рывков, в спокойном темпе"}]},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Сгибайте и разгибайте стопы","left_main_command":null,"calibration_parameters":[{"id":41,"name":"Калибровка угла в колене","sequence_number":1,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":53,"component_side":"right","segment_type":null,"parts":[{"id":126,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":127,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":128,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":54,"component_side":"left","segment_type":null,"parts":[{"id":129,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":130,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":131,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":54,"command_side":"right","position_number":1,"position_message":"Лягте на спину правым боком к камере, ноги лежат на полу, колени держите выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колени выпрямленными"},{"id":55,"command_side":"left","position_number":1,"position_message":"Лягте на спину левым боком к камере, ноги лежат на полу, колени держите выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колени выпрямленными"}]},{"id":42,"name":"Калибровка амплитуды рабочего угла","sequence_number":2,"calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":55,"component_side":"right","segment_type":null,"parts":[{"id":132,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":133,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":134,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":56,"component_side":"left","segment_type":null,"parts":[{"id":135,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":136,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":137,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":56,"command_side":"right","position_number":1,"position_message":"Оставайтесь лежать правым боком камере, потяните носки стоп на себя","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Вращайте стопы в большей амплитуде"},{"id":57,"command_side":"left","position_number":1,"position_message":"Оставайтесь лежать левым боком камере, потяните носки стоп на себя","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Вращайте стопы в большей амплитуде"},{"id":58,"command_side":"right","position_number":2,"position_message":"Теперь потяните носки от себя, положение должно быть комфортным","fixation_message":"Фиксируем значение, держите стопы от себя","error_message":"Вращайте стопы в большей амплитуде"},{"id":59,"command_side":"left","position_number":2,"position_message":"Теперь потяните носки от себя, положение должно быть комфортным","fixation_message":"Фиксируем значение, держите стопы от себя","error_message":"Вращайте стопы в большей амплитуде"}]}]},{"id":97,"sequence_number":2,"is_monitored":true,"name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","image":"https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":10,"execution_time":null,"instruction":{"exercise_name":"[тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку","video":"https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov","inventory":null,"warning":"Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу","general_description":"Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра.","steps":[{"exercise_id":97,"sequence_number":1,"step_text":"Лягте на бок так, чтобы рабочая нога была сверху"},{"exercise_id":97,"sequence_number":2,"step_text":"Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке"},{"exercise_id":97,"sequence_number":3,"step_text":"Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости"},{"exercise_id":97,"sequence_number":4,"step_text":"Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем"},{"exercise_id":97,"sequence_number":5,"step_text":"Положите верхнюю руку на талию или на матрас перед собой для равновесия"},{"exercise_id":97,"sequence_number":6,"step_text":"На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине"},{"exercise_id":97,"sequence_number":7,"step_text":"В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице"},{"exercise_id":97,"sequence_number":8,"step_text":"На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах"},{"exercise_id":97,"sequence_number":9,"step_text":"Повторите необходимое количество раз "}]},"camera_orientation":"horizontal","neural_network_type":"mediapipe","base_main_command":"Поднимайте и опускайте правую ногу","left_main_command":null,"calibration_parameters":[{"id":146,"name":"Калибровка сегмента ноги","sequence_number":1,"calibration_parameter_type":"one_segment","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":215,"component_side":"right","segment_type":null,"parts":[{"id":582,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":583,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":216,"component_side":"left","segment_type":null,"parts":[{"id":584,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":585,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":232,"command_side":"right","position_number":1,"position_message":"Лягте на левый бок, левую ногу согните для устойчивости. Правая нога должна лежать на другой ноге и быть продолжением корпуса","fixation_message":"Фиксируем длину ноги, оставайтесь в нужном положении","error_message":"Не заваливайте ногу в сторону"},{"id":233,"command_side":"left","position_number":1,"position_message":"Лягте на правый бок, правую ногу согните для устойчивости. Левая нога должна лежать на другой ноге и быть продолжением корпуса","fixation_message":"Фиксируем длину ноги, оставайтесь в нужном положении","error_message":"Не заваливайте ногу в сторону"}]},{"id":147,"name":"Калибровка рабочего угла (угол между прямой таза и ногой)","sequence_number":2,"calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":217,"component_side":"right","segment_type":null,"parts":[{"id":586,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":587,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":588,"sequence_number":3,"body_point":null,"line_type":"vertical","part_type":"line"}]},{"id":218,"component_side":"left","segment_type":null,"parts":[{"id":589,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":590,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":591,"sequence_number":3,"body_point":null,"line_type":"vertical","part_type":"line"}]}],"commands":[{"id":234,"command_side":"right","position_number":1,"position_message":"Оставайтесь лежать на боку, правая нога - продолжение туловища","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайте ногу на необходимый уровень"},{"id":235,"command_side":"left","position_number":1,"position_message":"Оставайтесь лежать на боку, левая нога - продолжение туловища","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайте ногу на необходимый уровень"},{"id":236,"command_side":"right","position_number":2,"position_message":"Теперь поднимите правую ногу вверх до комфортной вам рабочей высоты","fixation_message":"Фиксируем значение, не опускайте ногу","error_message":"Поднимайте ногу на необходимый уровень"},{"id":237,"command_side":"left","position_number":2,"position_message":"Теперь поднимите левую ногу вверх до комфортной вам рабочей высоты","fixation_message":"Фиксируем значение, не опускайте ногу","error_message":"Поднимайте ногу на необходимый уровень"}]}]},{"id":85,"sequence_number":3,"is_monitored":true,"name":"Тренировка икроножных мышц стоя","image":"https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png","by_body_side":"not_by_side","execution_order_type":null,"approaches_count":2,"execution_count":7,"execution_time":null,"instruction":{"exercise_name":"Тренировка икроножных мышц стоя","video":"https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov","inventory":"Опора (стул, подоконник, стена)","warning":"Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами\nСледите, чтобы спина была прямая\nНе уводите таз вперед/назад\nКолени держите выпрямленными","general_description":"В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени.","steps":[{"exercise_id":85,"sequence_number":1,"step_text":"Встаньте прямо, лицом к устойчивой опоре (спинка стула, стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере"},{"exercise_id":85,"sequence_number":2,"step_text":"Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу"},{"exercise_id":85,"sequence_number":3,"step_text":"Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела"},{"exercise_id":85,"sequence_number":4,"step_text":"Спина прямая, живот слегка подтянут, взгляд направлен вперёд"},{"exercise_id":85,"sequence_number":5,"step_text":"Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп"},{"exercise_id":85,"sequence_number":6,"step_text":"Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке"},{"exercise_id":85,"sequence_number":7,"step_text":"Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение"},{"exercise_id":85,"sequence_number":8,"step_text":"Выполните поднятие на носки необходимое количество раз"}]},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Поднимайтесь и опускайтесь на носках","left_main_command":null,"calibration_parameters":[{"id":107,"name":" Калибровка угла в колене","sequence_number":1,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":147,"component_side":"right","segment_type":null,"parts":[{"id":394,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":395,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":396,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":148,"component_side":"left","segment_type":null,"parts":[{"id":397,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":398,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":399,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":158,"command_side":"right","position_number":1,"position_message":"Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите рабочее колено выпрямленным"},{"id":159,"command_side":"left","position_number":1,"position_message":"Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите рабочее колено выпрямленным"}]},{"id":108,"name":"Калибровка угла в тазе","sequence_number":2,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":149,"component_side":"right","segment_type":null,"parts":[{"id":400,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":401,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":402,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":150,"component_side":"left","segment_type":null,"parts":[{"id":403,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":404,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":405,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":160,"command_side":"right","position_number":1,"position_message":"Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны","fixation_message":"Фиксируем угол в тазу, оставайтесь в нужном положении","error_message":"Держите спину прямой"},{"id":161,"command_side":"left","position_number":1,"position_message":"Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны","fixation_message":"Фиксируем угол в тазу, оставайтесь в нужном положении","error_message":"Держите спину прямой"}]},{"id":109,"name":"Калибровка амплитуды рабочего угла","sequence_number":3,"calibration_parameter_type":"angle_amplitude","fixation_type":"alternate","fixation_order":"min_at_first","deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":151,"component_side":"right","segment_type":null,"parts":[{"id":406,"sequence_number":1,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":407,"sequence_number":2,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"},{"id":408,"sequence_number":3,"body_point":{"id":33,"mediapipe_index":32,"movenet_index":null},"line_type":null,"part_type":"point"}]},{"id":152,"component_side":"left","segment_type":null,"parts":[{"id":409,"sequence_number":1,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":410,"sequence_number":2,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"},{"id":411,"sequence_number":3,"body_point":{"id":32,"mediapipe_index":31,"movenet_index":null},"line_type":null,"part_type":"point"}]}],"commands":[{"id":162,"command_side":"right","position_number":1,"position_message":"Стойте боком оперированной ноги к камере, стопы на полу","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайтесь на необходимую высоту"},{"id":163,"command_side":"left","position_number":1,"position_message":"Стойте боком оперированной ноги к камере, стопы на полу","fixation_message":"Фиксируем значение, оставайтесь в нужном положении","error_message":"Поднимайтесь на необходимую высоту"},{"id":164,"command_side":"right","position_number":2,"position_message":"Теперь поднимитесь на носки до максимальной комфортной вам высоты","fixation_message":"Фиксируем значение, не опускайтесь","error_message":"Поднимайтесь на необходимую высоту"},{"id":165,"command_side":"left","position_number":2,"position_message":"Теперь поднимитесь на носки до максимальной комфортной вам высоты","fixation_message":"Фиксируем значение, не опускайтесь","error_message":"Поднимайтесь на необходимую высоту"}]}]},{"id":47,"sequence_number":4,"is_monitored":true,"name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","image":"https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png","by_body_side":"by_side","execution_order_type":"isolated","approaches_count":2,"execution_count":null,"execution_time":20,"instruction":{"exercise_name":"Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге","video":"https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov","inventory":"Возвышенность (стул и т.п.)","warning":"Не допускайте разворота/заваливания поднятой ноги","general_description":"Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; \nстопа и колено поднятой ноги не должны \"заваливаться\" наружу (отсутствие ротации); \nнаклон выполняется за счёт сгибания в тазобедренном суставе, а не округления спины; \nдыхание свободное, без задержек; \nощущение растяжения должно быть комфортным, без острой боли.","steps":[{"exercise_id":47,"sequence_number":1,"step_text":"Встаньте боком растягиваемой ноги к камере"},{"exercise_id":47,"sequence_number":2,"step_text":"Поставьте рабочую ногу на возвышенность, другая нога опорная"},{"exercise_id":47,"sequence_number":3,"step_text":"Держите спину прямой"},{"exercise_id":47,"sequence_number":4,"step_text":"Стопа поднятой ноги смотрит на себя"},{"exercise_id":47,"sequence_number":5,"step_text":"Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной"},{"exercise_id":47,"sequence_number":6,"step_text":"В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время"}]},"camera_orientation":"vertical","neural_network_type":"mediapipe","base_main_command":"Наклонитесь к правой ноге","left_main_command":null,"calibration_parameters":[{"id":64,"name":"Калибровка угла в колене","sequence_number":1,"calibration_parameter_type":"angle","fixation_type":"max_value","fixation_order":null,"deviation_critical":10,"deviation_uncritical":null,"check_on_next_calibrations":true,"has_division_by_side":true,"is_monitored":false,"components":[{"id":99,"component_side":"right","segment_type":null,"parts":[{"id":256,"sequence_number":1,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":257,"sequence_number":2,"body_point":{"id":27,"mediapipe_index":26,"movenet_index":14},"line_type":null,"part_type":"point"},{"id":258,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":100,"component_side":"left","segment_type":null,"parts":[{"id":259,"sequence_number":1,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":260,"sequence_number":2,"body_point":{"id":26,"mediapipe_index":25,"movenet_index":13},"line_type":null,"part_type":"point"},{"id":261,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":120,"command_side":"right","position_number":1,"position_message":"Встаньте правым боком к камере и положите правую ногу на возвышенность, колено прямое","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колено выпрямленным"},{"id":121,"command_side":"left","position_number":1,"position_message":"Встаньте левым боком к камере и положите левую ногу на возвышенность, колено прямое","fixation_message":"Фиксируем угол в колене, оставайтесь в нужном положении","error_message":"Держите колено выпрямленным"}]},{"id":106,"name":"Калибровка рабочего угла","sequence_number":2,"calibration_parameter_type":"angle","fixation_type":"min_value","fixation_order":null,"deviation_critical":20,"deviation_uncritical":10,"check_on_next_calibrations":false,"has_division_by_side":true,"is_monitored":true,"components":[{"id":145,"component_side":"right","segment_type":null,"parts":[{"id":388,"sequence_number":1,"body_point":{"id":13,"mediapipe_index":12,"movenet_index":6},"line_type":null,"part_type":"point"},{"id":389,"sequence_number":2,"body_point":{"id":25,"mediapipe_index":24,"movenet_index":12},"line_type":null,"part_type":"point"},{"id":390,"sequence_number":3,"body_point":{"id":29,"mediapipe_index":28,"movenet_index":16},"line_type":null,"part_type":"point"}]},{"id":146,"component_side":"left","segment_type":null,"parts":[{"id":391,"sequence_number":1,"body_point":{"id":12,"mediapipe_index":11,"movenet_index":5},"line_type":null,"part_type":"point"},{"id":392,"sequence_number":2,"body_point":{"id":24,"mediapipe_index":23,"movenet_index":11},"line_type":null,"part_type":"point"},{"id":393,"sequence_number":3,"body_point":{"id":28,"mediapipe_index":27,"movenet_index":15},"line_type":null,"part_type":"point"}]}],"commands":[{"id":156,"command_side":"right","position_number":1,"position_message":"Наклонитесь к правой ноге до ощущения комфортного растяжения","fixation_message":"Фиксируем угол наклона, оставайтесь в нужном положении","error_message":"Опускайте корпус ниже"},{"id":157,"command_side":"left","position_number":1,"position_message":"Наклонитесь к левой ноге до ощущения комфортного растяжения","fixation_message":"Фиксируем угол наклона, оставайтесь в нужном положении","error_message":"Опускайте корпус ниже"}]}]}]}}
INFO [console] ✅ RAW RESPONSE: {success: true, meta: {timestamp: 2026-09-04T14:50:32.833334Z, request_id: b52ca32a-0fe0-41e1-95f8-f55d508126b1, version: v1}, data: {unit_id: 1000, workout_duration_start: 5, workout_duration_end: 10, body_side: left, exercises: [{id: 35, sequence_number: 1, is_monitored: true, name: Сгибание и разгибание в голеностопных суставах, image: https://rehabilitation.most.team/storage/exercise/photos/01KQ9W7XPDJ63N5ZHWXP8PT0AK.png, by_body_side: not_by_side, execution_order_type: null, approaches_count: 2, execution_count: 10, execution_time: null, instruction: {exercise_name: Сгибание и разгибание в голеностопных суставах, video: https://rehabilitation.most.team/storage/exercise/videos/01KQ9W7XPHKNMR9R7HF5YSZY9E.mov, inventory: null, warning: Во время выполнения колени должны оставаться выпрямленными, стопы не должны разворачиваться внутрь или наружу (большой палец направлен строго вверх), general_description: Исходное положение - лёжа на спине боком к камере, ноги выпрямлен
INFO [console] ы в коленях. Выполнять движения стопами на себя и от себя в максимально доступной амплитуде., steps: [{exercise_id: 35, sequence_number: 1, step_text: Примите положение лёжа на спине (на полу, коврике или тренировочной скамье), боком к камере}, {exercise_id: 35, sequence_number: 2, step_text: Выпрямите обе ноги в коленях}, {exercise_id: 35, sequence_number: 3, step_text: Стопы расположите параллельно друг другу на ширине таза}, {exercise_id: 35, sequence_number: 4, step_text: Руки свободно лежат вдоль туловища ладонями вниз или слегка разведены в стороны для устойчивости}, {exercise_id: 35, sequence_number: 5, step_text: Сохраняя прямое, вытянутое положение обеих ног в коленных суставах, начните выполнять одновременное движение стопами}, {exercise_id: 35, sequence_number: 6, step_text: На себя: Плавно потяните носки стоп максимально на себя (тыльное сгибание), ощущая растяжение в задней поверхности голени и подколенной области}, {exercise_id: 35, sequence_number: 7, step_text: От себя:
INFO [console] Затем так же плавно потяните носки стоп максимально от себя (подошвенное сгибание), как будто хотите встать на "цыпочки", ощущая напряжение в икрах}, {exercise_id: 35, sequence_number: 8, step_text: Движение должно быть ритмичным, без рывков, в спокойном темпе}]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Сгибайте и разгибайте стопы, left_main_command: null, calibration_parameters: [{id: 41, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 53, component_side: right, segment_type: null, parts: [{id: 126, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 127, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14},
INFO [console] line_type: null, part_type: point}, {id: 128, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 54, component_side: left, segment_type: null, parts: [{id: 129, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 130, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 131, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 54, command_side: right, position_number: 1, position_message: Лягте на спину правым боком к камере, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}, {id: 55, command_side: left, position_number: 1, position_message: Лягте на спину левым боком к каме
INFO [console] ре, ноги лежат на полу, колени держите выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колени выпрямленными}]}, {id: 42, name: Калибровка амплитуды рабочего угла, sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 55, component_side: right, segment_type: null, parts: [{id: 132, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 133, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 134, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 56, component_side: left, segment_type: null, parts:
INFO [console] [{id: 135, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 136, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 137, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 56, command_side: right, position_number: 1, position_message: Оставайтесь лежать правым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 57, command_side: left, position_number: 1, position_message: Оставайтесь лежать левым боком камере, потяните носки стоп на себя, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Вращайте стопы в большей амплитуде}, {id: 58, command_side: right, position_number: 2, position_message: Теперь потянит
INFO [console] е носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}, {id: 59, command_side: left, position_number: 2, position_message: Теперь потяните носки от себя, положение должно быть комфортным, fixation_message: Фиксируем значение, держите стопы от себя, error_message: Вращайте стопы в большей амплитуде}]}]}, {id: 97, sequence_number: 2, is_monitored: true, name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, image: https://rehabilitation.most.team/storage/exercise/photos/01M07H082ZHTXW5YEE3WYQ188J.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: 10, execution_time: null, instruction: {exercise_name: [тестовый] Подъём прямой ноги в сторону - В и.п. лёжа на боку, video: https://rehabilitation.most.team/storage/exercise/videos/01M07H0833AV7J7QJSJ7MK1402.mov, inventory: null, warning: Верхняя нога не должна сильно сгибаться
INFO [console] в бедре, т.е. отклоняться вперёд к животу, general_description: Лёжа на боку отвести верхнюю ногу в сторону (поднять). Верхняя нога не должна сильно сгибаться в бедре, т.е. отклоняться вперёд к животу. Представьте, что вы лежите на боку и прижимаетесь спиной к стене, а далее скользите пяткой верхней ноги по стене вверх. Цель – тренировка мышц абдукторов/аддукторов бедра., steps: [{exercise_id: 97, sequence_number: 1, step_text: Лягте на бок так, чтобы рабочая нога была сверху}, {exercise_id: 97, sequence_number: 2, step_text: Убедитесь, что вы лежите ровно. Голова может лежать на руке или на подушке}, {exercise_id: 97, sequence_number: 3, step_text: Нижнюю ногу слегка согните в колене и тазобедренном суставе для устойчивости}, {exercise_id: 97, sequence_number: 4, step_text: Верхнюю ногу полностью выпрямите. Она должна находиться строго над нижней ногой, образуя одну линию с туловищем}, {exercise_id: 97, sequence_number: 5, step_text: Положите верхнюю руку на талию или на матрас перед
INFO [console] собой для равновесия}, {exercise_id: 97, sequence_number: 6, step_text: На выдохе: Медленно поднимите (отведите) прямую ногу вверх. Движение должно происходить строго в плоскости тела, как будто вы отводите ногу в сторону. Нога не должна сгибаться в тазобедренном суставе и отклоняться вперёд по направлению к животу или назад по направлению к спине}, {exercise_id: 97, sequence_number: 7, step_text: В верхней точке задержитесь на 1-2 секунды, сохраняя ногу прямой и чувствуя напряжение в боковой поверхности бедра и ягодице}, {exercise_id: 97, sequence_number: 8, step_text: На вдохе: Плавно, без рывка, опустите ногу в исходное положение. Старайтесь не класть ногу полностью на нижнюю, а остановитесь чуть выше, чтобы сохранить напряжение в мышцах}, {exercise_id: 97, sequence_number: 9, step_text: Повторите необходимое количество раз }]}, camera_orientation: horizontal, neural_network_type: mediapipe, base_main_command: Поднимайте и опускайте правую ногу, left_main_command: null, calibration_
INFO [console] parameters: [{id: 146, name: Калибровка сегмента ноги, sequence_number: 1, calibration_parameter_type: one_segment, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 215, component_side: right, segment_type: null, parts: [{id: 582, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 583, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 216, component_side: left, segment_type: null, parts: [{id: 584, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 585, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 232, command_side: right, position
INFO [console] _number: 1, position_message: Лягте на левый бок, левую ногу согните для устойчивости. Правая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}, {id: 233, command_side: left, position_number: 1, position_message: Лягте на правый бок, правую ногу согните для устойчивости. Левая нога должна лежать на другой ноге и быть продолжением корпуса, fixation_message: Фиксируем длину ноги, оставайтесь в нужном положении, error_message: Не заваливайте ногу в сторону}]}, {id: 147, name: Калибровка рабочего угла (угол между прямой таза и ногой), sequence_number: 2, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 217, component_side: right, segment_type: null, parts: [{id:
INFO [console] 586, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 587, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 588, sequence_number: 3, body_point: null, line_type: vertical, part_type: line}]}, {id: 218, component_side: left, segment_type: null, parts: [{id: 589, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 590, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 591, sequence_number: 3, body_point: null, line_type: vertical, part_type: line}]}], commands: [{id: 234, command_side: right, position_number: 1, position_message: Оставайтесь лежать на боку, правая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необх
INFO [console] одимый уровень}, {id: 235, command_side: left, position_number: 1, position_message: Оставайтесь лежать на боку, левая нога - продолжение туловища, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайте ногу на необходимый уровень}, {id: 236, command_side: right, position_number: 2, position_message: Теперь поднимите правую ногу вверх до комфортной вам рабочей высоты, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}, {id: 237, command_side: left, position_number: 2, position_message: Теперь поднимите левую ногу вверх до комфортной вам рабочей высоты, fixation_message: Фиксируем значение, не опускайте ногу, error_message: Поднимайте ногу на необходимый уровень}]}]}, {id: 85, sequence_number: 3, is_monitored: true, name: Тренировка икроножных мышц стоя, image: https://rehabilitation.most.team/storage/exercise/photos/01KSM578DSDH215A8W6P26RXEH.png, by_body_side: not_by_side, execution_o
INFO [console] rder_type: null, approaches_count: 2, execution_count: 7, execution_time: null, instruction: {exercise_name: Тренировка икроножных мышц стоя, video: https://rehabilitation.most.team/storage/exercise/videos/01KRJHJR20X1FNE739BG0QDYN4.mov, inventory: Опора (стул, подоконник, стена), warning: Следите за положением пяток и стоп. Пятки не должны заваливаться внутрь (это признак неправильной нагрузки). Стопы должны оставаться параллельными на протяжении всего движения, для более наглядного контроля вы можете положить кубик для йоги между стопами Следите, чтобы спина была прямая Не уводите таз вперед/назад Колени держите выпрямленными, general_description: В исходном положении стоя, ноги на ширине таза, руками опереться на спинку стула или стол, выполнить подъём на носки. Следить за тем, чтобы пятки не уходили внутрь, и стопы оставались параллельными. Цель – тренировка мышц голени., steps: [{exercise_id: 85, sequence_number: 1, step_text: Встаньте прямо, лицом к устойчивой опоре (спинка стула
INFO [console] , стол, подоконник, стена). Вы должны находиться боком оперированной ноги к камере}, {exercise_id: 85, sequence_number: 2, step_text: Поставьте ноги на ширине таза (примерно на расстоянии 10-15 см друг от друга). Стопы должны быть параллельны друг другу}, {exercise_id: 85, sequence_number: 3, step_text: Слегка обопритесь руками на опору для сохранения равновесия. Не переносите на руки весь вес тела}, {exercise_id: 85, sequence_number: 4, step_text: Спина прямая, живот слегка подтянут, взгляд направлен вперёд}, {exercise_id: 85, sequence_number: 5, step_text: Медленно и плавно поднимитесь как можно выше на носки, перенося вес тела на передние части стоп}, {exercise_id: 85, sequence_number: 6, step_text: Движение должно быть контролируемым. Максимально напрягите икроножные мышцы в верхней точке}, {exercise_id: 85, sequence_number: 7, step_text: Также под контролем медленно опустите пятки на пол, возвращаясь в исходное положение}, {exercise_id: 85, sequence_number: 8, step_text: Выполните
INFO [console] поднятие на носки необходимое количество раз}]}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Поднимайтесь и опускайтесь на носках, left_main_command: null, calibration_parameters: [{id: 107, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 147, component_side: right, segment_type: null, parts: [{id: 394, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 395, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 396, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 148, component_side: left, segment_
INFO [console] type: null, parts: [{id: 397, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 398, sequence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 399, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 158, command_side: right, position_number: 1, position_message: Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямленным}, {id: 159, command_side: left, position_number: 1, position_message: Примите исходную позицию. Встаньте боком оперированной ноги к камере, держите ноги выпрямленными, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите рабочее колено выпрямле
INFO [console] нным}]}, {id: 108, name: Калибровка угла в тазе, sequence_number: 2, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 149, component_side: right, segment_type: null, parts: [{id: 400, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 401, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 402, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 150, component_side: left, segment_type: null, parts: [{id: 403, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 404, sequence_number: 2, body_point: {id: 24, mediapipe_index:
INFO [console] 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 405, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 160, command_side: right, position_number: 1, position_message: Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны, fixation_message: Фиксируем угол в тазу, оставайтесь в нужном положении, error_message: Держите спину прямой}, {id: 161, command_side: left, position_number: 1, position_message: Теперь выпрямите спину, она должна быть продолжением ног. Не заваливайте ее в стороны, fixation_message: Фиксируем угол в тазу, оставайтесь в нужном положении, error_message: Держите спину прямой}]}, {id: 109, name: Калибровка амплитуды рабочего угла, sequence_number: 3, calibration_parameter_type: angle_amplitude, fixation_type: alternate, fixation_order: min_at_first, deviation_critical: 20, deviation_uncritical: 10, check_on_next_calibrations: false, has_
INFO [console] division_by_side: true, is_monitored: true, components: [{id: 151, component_side: right, segment_type: null, parts: [{id: 406, sequence_number: 1, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 407, sequence_number: 2, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}, {id: 408, sequence_number: 3, body_point: {id: 33, mediapipe_index: 32, movenet_index: null}, line_type: null, part_type: point}]}, {id: 152, component_side: left, segment_type: null, parts: [{id: 409, sequence_number: 1, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 410, sequence_number: 2, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}, {id: 411, sequence_number: 3, body_point: {id: 32, mediapipe_index: 31, movenet_index: null}, line_type: null, part_type: point}]}], commands: [{id: 162, command_side: right, pos
INFO [console] ition_number: 1, position_message: Стойте боком оперированной ноги к камере, стопы на полу, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайтесь на необходимую высоту}, {id: 163, command_side: left, position_number: 1, position_message: Стойте боком оперированной ноги к камере, стопы на полу, fixation_message: Фиксируем значение, оставайтесь в нужном положении, error_message: Поднимайтесь на необходимую высоту}, {id: 164, command_side: right, position_number: 2, position_message: Теперь поднимитесь на носки до максимальной комфортной вам высоты, fixation_message: Фиксируем значение, не опускайтесь, error_message: Поднимайтесь на необходимую высоту}, {id: 165, command_side: left, position_number: 2, position_message: Теперь поднимитесь на носки до максимальной комфортной вам высоты, fixation_message: Фиксируем значение, не опускайтесь, error_message: Поднимайтесь на необходимую высоту}]}]}, {id: 47, sequence_number: 4, is_monitored: true, nam
INFO [console] e: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, image: https://rehabilitation.most.team/storage/exercise/photos/01KQCHWY0J06QHXQ4P2BH5VD3A.png, by_body_side: by_side, execution_order_type: isolated, approaches_count: 2, execution_count: null, execution_time: 20, instruction: {exercise_name: Растяжка мышц задней поверхности бедра - В и.п. стоя на одной ноге, video: https://rehabilitation.most.team/storage/exercise/videos/01KQCHWY0PXRQ1HM420M2W892Q.mov, inventory: Возвышенность (стул и т.п.), warning: Не допускайте разворота/заваливания поднятой ноги, general_description: Стоя на одной ноге, другая нога выпрямлена в колене и расположена на возвышенности (стул, скамейка, ступенька). Корпус наклонён вперёд, руки тянутся к стопе поднятой ноги. Удерживать это положение заданное количество времени. Важно: колено поднятой ноги должно оставаться выпрямленным; стопа и колено поднятой ноги не должны "заваливаться" наружу (отсутствие ротации); наклон выполняется за счёт сг
INFO [console] ибания в тазобедренном суставе, а не округления спины; дыхание свободное, без задержек; ощущение растяжения должно быть комфортным, без острой боли., steps: [{exercise_id: 47, sequence_number: 1, step_text: Встаньте боком растягиваемой ноги к камере}, {exercise_id: 47, sequence_number: 2, step_text: Поставьте рабочую ногу на возвышенность, другая нога опорная}, {exercise_id: 47, sequence_number: 3, step_text: Держите спину прямой}, {exercise_id: 47, sequence_number: 4, step_text: Стопа поднятой ноги смотрит на себя}, {exercise_id: 47, sequence_number: 5, step_text: Потянитесь пальцами рук к стопе поднятой ноги. Ваша задача - не обязательно обхватить стопу, а максимально растянуться с прямой спиной}, {exercise_id: 47, sequence_number: 6, step_text: В точке максимального комфортного натяжения в задней поверхности бедра и под коленями зафиксируйте положение. Удерживайте его заданное время}]}, camera_orientation: vertical, neural_network_type: mediapipe, base_main_command: Наклонитесь к
INFO [console] правой ноге, left_main_command: null, calibration_parameters: [{id: 64, name: Калибровка угла в колене, sequence_number: 1, calibration_parameter_type: angle, fixation_type: max_value, fixation_order: null, deviation_critical: 10, deviation_uncritical: null, check_on_next_calibrations: true, has_division_by_side: true, is_monitored: false, components: [{id: 99, component_side: right, segment_type: null, parts: [{id: 256, sequence_number: 1, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 257, sequence_number: 2, body_point: {id: 27, mediapipe_index: 26, movenet_index: 14}, line_type: null, part_type: point}, {id: 258, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 100, component_side: left, segment_type: null, parts: [{id: 259, sequence_number: 1, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 260, s
INFO [console] equence_number: 2, body_point: {id: 26, mediapipe_index: 25, movenet_index: 13}, line_type: null, part_type: point}, {id: 261, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], commands: [{id: 120, command_side: right, position_number: 1, position_message: Встаньте правым боком к камере и положите правую ногу на возвышенность, колено прямое, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленным}, {id: 121, command_side: left, position_number: 1, position_message: Встаньте левым боком к камере и положите левую ногу на возвышенность, колено прямое, fixation_message: Фиксируем угол в колене, оставайтесь в нужном положении, error_message: Держите колено выпрямленным}]}, {id: 106, name: Калибровка рабочего угла, sequence_number: 2, calibration_parameter_type: angle, fixation_type: min_value, fixation_order: null, deviation_critical: 20, deviation_uncritical:
INFO [console] 10, check_on_next_calibrations: false, has_division_by_side: true, is_monitored: true, components: [{id: 145, component_side: right, segment_type: null, parts: [{id: 388, sequence_number: 1, body_point: {id: 13, mediapipe_index: 12, movenet_index: 6}, line_type: null, part_type: point}, {id: 389, sequence_number: 2, body_point: {id: 25, mediapipe_index: 24, movenet_index: 12}, line_type: null, part_type: point}, {id: 390, sequence_number: 3, body_point: {id: 29, mediapipe_index: 28, movenet_index: 16}, line_type: null, part_type: point}]}, {id: 146, component_side: left, segment_type: null, parts: [{id: 391, sequence_number: 1, body_point: {id: 12, mediapipe_index: 11, movenet_index: 5}, line_type: null, part_type: point}, {id: 392, sequence_number: 2, body_point: {id: 24, mediapipe_index: 23, movenet_index: 11}, line_type: null, part_type: point}, {id: 393, sequence_number: 3, body_point: {id: 28, mediapipe_index: 27, movenet_index: 15}, line_type: null, part_type: point}]}], command
INFO [console] s: [{id: 156, command_side: right, position_number: 1, position_message: Наклонитесь к правой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}, {id: 157, command_side: left, position_number: 1, position_message: Наклонитесь к левой ноге до ощущения комфортного растяжения, fixation_message: Фиксируем угол наклона, оставайтесь в нужном положении, error_message: Опускайте корпус ниже}]}]}]}}
INFO [console] AML_EXE: 83.13654242388536
INFO [console] AML_EXE: 80.88654242388536
INFO [console] AML_EXE: 79.16469242388516
INFO [console] AML_verticalAngles: 114.31848073770512
INFO [console] AML_verticalAngles: 110.37179323298963
INFO [console] AML_verticalAngles: 109.81848073770512
INFO [console] AML_verticalAngles: 112.06848073770512
INFO [console] AML_EXE: 67.13802498414013
INFO [console] AML_EXE: 68.29107498413995
INFO [console] AML_EXE: 70.42662498414016
INFO [console] AML_verticalAngles: 124.0875946375799
INFO [console] AML_verticalAngles: 124.4323837637198
INFO [console] AML_verticalAngles: 126.13758277047367
INFO [console] AML_verticalAngles: 125.12355024107701
INFO [console] AML_verticalAngles: 124.2261155539517
INFO [console] AML_EXE: 70.61161742388512
INFO [console] AML_EXE: 68.48690801281548
INFO [console] AML_EXE: 67.1344626557836
INFO [console] AML_verticalAngles: 128.86916343018413
INFO [console] AML_verticalAngles: 127.3275029733994
INFO [console] AML_verticalAngles: 122.9814539631468
INFO [console] AML_verticalAngles: 125.17257896314686
INFO [console] AML_verticalAngles: 127.42257896314686
INFO [console] AML_EXE: 77.36161742388512
INFO [console] AML_EXE: 75.11161742388512
INFO [console] AML_EXE: 72.86161742388512
INFO [console] AML_verticalAngles: 116.56848073770512
INFO [console] AML_verticalAngles: 118.81848073770512
INFO [console] AML_verticalAngles: 120.7314539631468
INFO [console] [DIO]
INFO [console] AML_verticalAngles: 96.0339016634971
INFO [console] AML_verticalAngles: 98.2839016634971
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: 93.97471301681563
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: 94.8947828491039
INFO [console] AML_verticalAngles: 93.22597950850079
INFO [console] AML_verticalAngles: 93.80870351890105
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: 93.88681912833943
INFO [console] AML_verticalAngles: 93.76463215725124
INFO [console] AML_verticalAngles: 93.50846152170497
INFO [console] AML_EXE: 89.72483418852528
INFO [console] AML_EXE: 91.97483418852528
INFO [console] AML_EXE: 94.17615918852516
INFO [console] AML_verticalAngles: 96.13681912833943
INFO [console] AML_verticalAngles: 102.88681912833943
INFO [console] AML_verticalAngles: 100.63681912833943
INFO [console] AML_verticalAngles: 98.38681912833943
INFO [console] AML_EXE: 82.97483418852528
INFO [console] AML_EXE: 85.22483418852528
INFO [console] AML_EXE: 87.47483418852528
INFO [console] AML_verticalAngles: 103.06870290262304
INFO [console] AML_verticalAngles: 98.48661855600089
INFO [console] AML_verticalAngles: 99.67909334247402
INFO [console] AML_verticalAngles: 100.87324334247427
INFO [console] AML_EXE: null
INFO [console] AML_EXE: 78.47483418852528
INFO [console] AML_EXE: 80.72483418852528
INFO [console] AML_verticalAngles: 94.9730439604467
INFO [console] AML_verticalAngles: 94.84511676394851
INFO [console] AML_verticalAngles: 96.23661855600089
INFO [console] AML_EXE: 72.03915918852537
INFO [console] AML_EXE: 74.28915918852537
INFO [console] AML_EXE: 76.22483418852528
INFO [console] AML_verticalAngles: 98.65948747629517
INFO [console] AML_verticalAngles: 97.2230439604467
INFO [console] AML_verticalAngles: 103.34241974897706
INFO [console] AML_verticalAngles: 102.0464197489771
INFO [console] AML_verticalAngles: 100.17524474897715
INFO [console] AML_EXE: 65.3367091885254
INFO [console] AML_EXE: 67.53915918852537
INFO [console] AML_EXE: 69.78915918852537
INFO [console] AML_verticalAngles: 108.86017824548856
INFO [console] AML_verticalAngles: 107.41637646637575
INFO [console] AML_verticalAngles: 105.59241974897706
INFO [console] AML_EXE: 58.90927545082792
INFO [console] AML_EXE: 60.836709188525404
INFO [console] AML_EXE: 63.086709188525404
INFO [console] AML_verticalAngles: 109.78762678760748
INFO [console] AML_verticalAngles: 111.66626414119096
INFO [console] AML_verticalAngles: 111.46048232839547
INFO [console] AML_verticalAngles: 110.89144250194616
INFO [console] AML_EXE: 65.65927545082792
INFO [console] AML_EXE: 63.40927545082792
INFO [console] AML_EXE: 61.15927545082792
INFO [console] AML_verticalAngles: 113.33209453206054
INFO [console] AML_verticalAngles: 112.41712075611419
INFO [console] AML_verticalAngles: 116.81084489299343
INFO [console] AML_verticalAngles: 115.91552518536393
INFO [console] AML_verticalAngles: 114.65112581713683
INFO [console] AML_EXE: 72.40927545082792
INFO [console] AML_EXE: 70.15927545082792
INFO [console] AML_EXE: 67.90927545082792
INFO [console] AML_verticalAngles: 121.89449947188534
INFO [console] AML_verticalAngles: 120.03639048377615
INFO [console] AML_verticalAngles: 118.24861548377612
INFO [console] AML_EXE: 77.6993004101211
INFO [console] AML_EXE: 75.4493004101211
INFO [console] AML_EXE: 73.1993004101211
INFO [console] AML_verticalAngles: 125.53874947188504
INFO [console] AML_verticalAngles: 123.28874947188504
INFO [console] AML_verticalAngles: 130.66812266353648
INFO [console] AML_verticalAngles: 128.82199822825748
INFO [console] AML_verticalAngles: 127.78874947188504
INFO [console] AML_EXE: 79.61069582340888
INFO [console] AML_EXE: 79.19982814315169
INFO [console] AML_EXE: 78.65064621602997
INFO [console] AML_verticalAngles: 131.93643998251508
INFO [console] AML_verticalAngles: 130.68455275561269
INFO [console] AML_verticalAngles: 130.65235724156247
INFO [console] AML_verticalAngles: 132.90235724156247
INFO [console] AML_EXE: 77.46697378273487
INFO [console] AML_EXE: 78.96588316580369
INFO [console] AML_EXE: 79.92057533497324
INFO [console] AML_verticalAngles: 130.1043883530691
INFO [console] AML_verticalAngles: 128.01048378774092
INFO [console] AML_verticalAngles: 128.27440407946148
INFO [console] AML_verticalAngles: 129.01939756473138
INFO [console] AML_EXE: 72.37917498414009
INFO [console] AML_EXE: 73.65982204713015
INFO [console] AML_EXE: 75.693598782735
INFO [console] AML_verticalAngles: 125.61744563011467
INFO [console] AML_verticalAngles: 126.51883875751506
INFO [console] AML_verticalAngles: 127.83154079792541
INFO [console] PoseEstimator: worker isolate up (accelerator=gpu, precision=fp16, fallback=none, model=pose_landmarks_detector_full.tflite (6287 KB), crop=native, cores=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=7))
INFO [console] PosePreparer: isolate up (affinity=attached [6,7] (inherited) ok (source=cpu_capacity, selected=[6,7], currentCpu=7), crop=native)
INFO [console] PoseEstimator: pipelined preprocessing enabled (gpu inference + CPU prepare isolate, crop=native)
INFO [console] ANGLE_RESEARCH: recording to /storage/emulated/0/Android/data/ru.erds.app/files/angle_research/angles_E2_right_C00_R1_2026-09-04T17-50-38.csv
INFO [console] AML_verticalAngles: 98.29022938654722
INFO [console] AML_verticalAngles: 98.761419631096
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: 99.45846146743713
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: null
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=384x806
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=384x806
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=384x806
INFO [console] POSE_DIAG: sensorOrient=270 deviceOrient=DeviceOrientation.portraitUp rotDeg=270 imgSize=720 x 480 -> upright=480x720 imgFormat=35 planes=3 pixelStride=1 rowStride=768 screenSize=384x806
INFO [console] PASSPORT_WHY: hint=holdStill frontal=0.75(min 0.4) lean=0.7deg(max 20.0) speed=n/a(max 0.06) armsDown=true armsAside=true(2.80 of min 1.15)
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] BODY_POINT_ENGINE: first geometry event — points=33 isCalibrated=false
INFO [console] AML_EXE: 118.92615918852516
INFO [console] AML_EXE: 121.17615918852516
INFO [console] AML_EXE: 123.42615918852516
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: null
INFO [console] POSE_METRICS: received=31(30.2fps) processed=19(18.5fps) replaced=10(9.7fps) buildMs=2.93 estimatorMs=46.93 (pre=23.8 infer=35.4 det=71.0) roiAgeMs=114.4/max=455.8 stale=15.6fps detRuns=18.5fps resets=0.0fps totalMs=1.00 lagMs=90.0 predLatMs=72.9 actualFps=18.5
INFO [console] AML_EXE: 137.57243418852505
INFO [console] AML_EXE: 139.6168591885251
INFO [console] AML_EXE: 141.8668591885251
INFO [console] AML_verticalAngles: null
INFO [console] AML_EXE: 131.68973418852522
INFO [console] AML_EXE: 133.93973418852522
INFO [console] AML_EXE: 135.32243418852505
INFO [console] AML_verticalAngles: null
INFO [console] AML_EXE: 125.67615918852516
INFO [console] AML_EXE: 127.92615918852516
INFO [console] AML_EXE: 129.43973418852522
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: null
INFO [console] AML_verticalAngles: null
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] PASSPORT_WHY: hint=ready frontal=0.75(min 0.4) lean=0.2deg(max 20.0) speed=0.004(max 0.06) armsDown=true armsAside=true(2.65 of min 1.15)
INFO [console] POSE_METRICS: received=30(29.8fps) processed=26(25.8fps) replaced=5(5.0fps) buildMs=1.55 estimatorMs=34.85 (pre=8.9 infer=26.0 det=71.0) roiAgeMs=79.7/max=132.1 stale=23.9fps detRuns=25.8fps resets=0.0fps totalMs=0.81 lagMs=60.9 predLatMs=59.7 actualFps=25.8
INFO [console] PASSPORT_WHY: hint=ready frontal=0.76(min 0.4) lean=0.5deg(max 20.0) speed=0.003(max 0.06) armsDown=true armsAside=true(2.60 of min 1.15)
INFO [console] POSE_METRICS: received=28(27.7fps) processed=21(20.8fps) replaced=7(6.9fps) buildMs=2.91 estimatorMs=42.16 (pre=12.7 infer=32.8 det=71.0) roiAgeMs=87.8/max=135.5 stale=19.8fps detRuns=20.8fps resets=0.0fps totalMs=1.55 lagMs=72.3 predLatMs=54.4 actualFps=20.8
INFO [console] PASSPORT_STATE: phase=collecting hint=lowerArms
INFO [console] PASSPORT_STATE: phase=waitingReady hint=lowerArms
INFO [console] PASSPORT_WHY: hint=lowerArms frontal=0.74(min 0.4) lean=0.9deg(max 20.0) speed=0.048(max 0.06) armsDown=false armsAside=n/a(n/a of min 1.15)
INFO [console] POSE_METRICS: received=28(26.9fps) processed=24(23.1fps) replaced=4(3.8fps) buildMs=2.26 estimatorMs=36.86 (pre=10.3 infer=31.1 det=71.0) roiAgeMs=85.8/max=134.7 stale=21.2fps detRuns=23.1fps resets=0.0fps totalMs=1.36 lagMs=67.1 predLatMs=57.5 actualFps=23.1
INFO [console] PASSPORT_STATE: phase=waitingReady hint=ready
INFO [console] BODY_POINT_ENGINE: isCalibrated → true (event #101)
INFO [console] LEG_SKEL_L: i23=(0.111,0.001,0.014) v=1.000 p=1.000 i25=(0.113,0.428,-0.052) v=0.984 p=1.000 i27=(0.130,0.784,0.007) v=0.980 p=1.000
INFO [console] LEG_SKEL_R: i24=(-0.112,-0.001,-0.009) v=1.000 p=1.000 i26=(-0.110,0.390,-0.050) v=0.986 p=1.000 i28=(-0.128,0.775,0.018) v=0.987 p=1.000
INFO [console] PASSPORT_WHY: hint=holdStill frontal=0.77(min 0.4) lean=0.2deg(max 20.0) speed=0.061(max 0.06) armsDown=true armsAside=true(2.86 of min 1.15)
INFO [console] POSE_METRICS: received=28(26.9fps) processed=21(20.2fps) replaced=6(5.8fps) buildMs=2.97 estimatorMs=39.37 (pre=14.2 infer=29.3 det=71.0) roiAgeMs=93.3/max=173.6 stale=17.3fps detRuns=20.2fps resets=0.0fps totalMs=2.15 lagMs=77.6 predLatMs=59.1 actualFps=20.2
INFO [console] PASSPORT_STATE: phase=collecting hint=ready
INFO [console] LEG_SKEL_L: i23=(0.113,0.005,0.010) v=1.000 p=1.000 i25=(0.103,0.419,-0.037) v=0.989 p=1.000 i27=(0.116,0.788,0.042) v=0.989 p=1.000
INFO [console] LEG_SKEL_R: i24=(-0.115,-0.005,-0.006) v=1.000 p=1.000 i26=(-0.142,0.387,-0.026) v=0.993 p=1.000 i28=(-0.194,0.765,0.051) v=0.993 p=1.000
INFO [console] PASSPORT_WHY: hint=ready frontal=0.76(min 0.4) lean=1.0deg(max 20.0) speed=0.026(max 0.06) armsDown=true armsAside=true(2.54 of min 1.15)
INFO [console] POSE_METRICS: received=30(29.9fps) processed=23(22.9fps) replaced=7(7.0fps) buildMs=1.90 estimatorMs=39.19 (pre=12.1 infer=31.6 det=71.0) roiAgeMs=84.4/max=110.2 stale=21.9fps detRuns=22.9fps resets=0.0fps totalMs=1.65 lagMs=70.4 predLatMs=59.6 actualFps=22.9
INFO [console] AML_EXE: 163.30951169015373
INFO [console] AML_EXE: 161.8120213463959
INFO [console] AML_EXE: 160.5773610190278
INFO [console] AML_EXE: 161.29956896298035
INFO [console] AML_EXE: 161.95333522415575
INFO [console] AML_EXE: 162.1209153781019
INFO [console] AML_EXE: 163.08402332287233
INFO [console] PASSPORT_STATE: phase=collecting hint=holdStill
INFO [console] AML_EXE: 164.77985877043557
INFO [console] AML_EXE: 164.65322209464227
INFO [console] AML_EXE: 164.7700222013513
INFO [console] PASSPORT_STATE: phase=waitingReady hint=holdStill
INFO [console] AML_EXE: 165.0863341561573
INFO [console] AML_EXE: 165.34862299391443
$
250 строкUTF-8LIVE