matrice-analytics 0.1.46__tar.gz → 0.1.48__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of matrice-analytics might be problematic. Click here for more details.
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/PKG-INFO +1 -1
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/PKG-INFO +1 -1
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/face_recognition.py +29 -11
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/face_recognition_client.py +1 -1
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/LICENSE.txt +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/README.md +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/SOURCES.txt +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/dependency_links.txt +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/not-zip-safe +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/top_level.txt +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/pyproject.toml +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/setup.cfg +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/setup.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/README.md +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/boundary_drawing_internal.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/boundary_drawing_tool.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/boundary_tool_template.html +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/example_usage.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/usage/README.md +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/usage/boundary_drawer_launcher.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/boundary_drawing_internal/usage/simple_boundary_launcher.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/README.md +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/README.md +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/base.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/kalman_filter.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/matching.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/strack.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/advanced_tracker/tracker.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/core/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/core/base.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/core/config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/core/config_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/compare_similarity.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/embedding_manager.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/face_reg/people_activity_logging.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/easyocr_extractor.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/cli.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/dataset_stats.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/export.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/train.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/valid.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/validate_dataset.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/visualize_augmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/cli/visualize_predictions.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/core/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/core/process.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/core/types.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/core/utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/inference/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/inference/config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/inference/hub.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/inference/plate_recognizer.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/py.typed +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/data/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/data/augmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/data/dataset.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/layers.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/loss.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/metric.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/model_builders.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/model/model_schema.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/utilities/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/utilities/backend_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/fast_plate_ocr_py38/train/utilities/utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/postprocessing.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/ocr/preprocessing.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/post_processor.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/run_tests.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_advanced_customer_service.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_basic_counting_tracking.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_comprehensive.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_config.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_customer_service.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_data_generators.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_people_counting.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_processor.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_usecases.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_utilities.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/test_cases/test_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/Histopathological_Cancer_Detection_img.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/abandoned_object_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/advanced_customer_service.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/age_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/age_gender_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/anti_spoofing_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/assembly_line_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/banana_defect_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/basic_counting_tracking.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/blood_cancer_detection_img.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/car_damage_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/car_part_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/car_service.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/cardiomegaly_classification.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/cell_microscopy_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/chicken_pose_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/child_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/merges.txt +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/preprocessor_config.json +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/special_tokens_map.json +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer.json +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/tokenizer_config.json +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/clip_processor/vocab.json +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/color_map_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color/color_mapper.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/color_map_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/concrete_crack_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/crop_weed_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/customer_service.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/defect_detection_products.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/distracted_driver_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/drone_traffic_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/drowsy_driver_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/dwell_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/emergency_vehicle_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/face_emotion.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/face_recognition.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/fashion_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/field_mapping.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/fire_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/flare_analysis.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/flower_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/gas_leak_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/gender_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/human_activity_recognition.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/intrusion_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/leaf.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/leaf_disease.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/leak_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/license_plate_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/license_plate_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/litter_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/mask_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/natural_disaster.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/parking.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/parking_space_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/pcb_defect_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/pedestrian_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/people_counting.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/people_counting_bckp.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/people_tracking.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/pipeline_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/plaque_segmentation_img.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/pothole_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/ppe_compliance.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/price_tag_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/proximity_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/road_lane_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/road_traffic_density.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/road_view_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/shelf_inventory_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/shoplifting_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/shopping_cart_analysis.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/skin_cancer_classification_img.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/smoker_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/solar_panel.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/suspicious_activity_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/template_usecase.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/theft_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/traffic_sign_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/underground_pipeline_defect_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/underwater_pollution_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/vehicle_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/warehouse_object_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/waterbody_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/weapon_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/weld_defect_detection.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/wildlife_monitoring.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/windmill_maintenance.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/usecases/wound_segmentation.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/__init__.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/advanced_counting_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/advanced_helper_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/advanced_tracking_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/alerting_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/category_mapping_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/color_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/counting_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/filter_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/format_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/geometry_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/smoothing_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/post_processing/utils/tracking_utils.py +0 -0
- {matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/src/matrice_analytics/py.typed +0 -0
|
@@ -126,6 +126,7 @@ class TemporalIdentityManager:
|
|
|
126
126
|
if not emb or not isinstance(emb, list):
|
|
127
127
|
return None, "Unknown", 0.0, None, {}, "unknown"
|
|
128
128
|
try:
|
|
129
|
+
st10=time.time()
|
|
129
130
|
resp = await self.face_client.search_similar_faces(
|
|
130
131
|
face_embedding=emb,
|
|
131
132
|
threshold=0.01, # low threshold to always get top-1
|
|
@@ -134,6 +135,10 @@ class TemporalIdentityManager:
|
|
|
134
135
|
location=location,
|
|
135
136
|
timestamp=timestamp,
|
|
136
137
|
)
|
|
138
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY----------------------------")
|
|
139
|
+
print("LATENCY:",(time.time() - st10)*1000,"| Throughput fps:",(1.0 / (time.time() - st10)) if (time.time() - st10) > 0 else None)
|
|
140
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY----------------------------")
|
|
141
|
+
|
|
137
142
|
except Exception as e:
|
|
138
143
|
self.logger.error(f"API ERROR: Failed to search similar faces in _compute_best_identity: {e}", exc_info=True)
|
|
139
144
|
return None, "Unknown", 0.0, None, {}, "unknown"
|
|
@@ -226,11 +231,19 @@ class TemporalIdentityManager:
|
|
|
226
231
|
stable_employee_id = s.get("stable_employee_id")
|
|
227
232
|
stable_score = float(s.get("stable_score", 0.0))
|
|
228
233
|
stable_staff_details = s.get("stable_staff_details", {}) if isinstance(s.get("stable_staff_details"), dict) else {}
|
|
234
|
+
st7=time.time()
|
|
235
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - STABLE VALUES----------------------------")
|
|
236
|
+
print("LATENCY:",(time.time() - st7)*1000,"| Throughput fps:",(1.0 / (time.time() - st7)) if (time.time() - st7) > 0 else None)
|
|
237
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - STABLE VALUES----------------------------")
|
|
229
238
|
|
|
230
239
|
if eligible_for_recognition and emb:
|
|
240
|
+
st8=time.time()
|
|
231
241
|
staff_id, person_name, inst_score, employee_id, staff_details, det_type = await self._compute_best_identity(
|
|
232
242
|
emb, location=location, timestamp=timestamp
|
|
233
243
|
)
|
|
244
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY----------------------------")
|
|
245
|
+
print("LATENCY:",(time.time() - st8)*1000,"| Throughput fps:",(1.0 / (time.time() - st8)) if (time.time() - st8) > 0 else None)
|
|
246
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY----------------------------")
|
|
234
247
|
|
|
235
248
|
is_inst_known = staff_id is not None and inst_score >= self.threshold
|
|
236
249
|
if is_inst_known:
|
|
@@ -290,7 +303,12 @@ class TemporalIdentityManager:
|
|
|
290
303
|
return stable_staff_id, stable_person_name or "Unknown", float(inst_score), stable_employee_id, stable_staff_details, "known"
|
|
291
304
|
|
|
292
305
|
# Fallback: use prototype from history
|
|
306
|
+
st9=time.time()
|
|
293
307
|
fb_staff_id, fb_name, fb_score, fb_employee_id, fb_details, fb_type = await self._compute_best_identity_from_history(s, location=location, timestamp=timestamp)
|
|
308
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY FROM HISTORY----------------------------")
|
|
309
|
+
print("LATENCY:",(time.time() - st9)*1000,"| Throughput fps:",(1.0 / (time.time() - st9)) if (time.time() - st9) > 0 else None)
|
|
310
|
+
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE - COMPUTE BEST IDENTITY FROM HISTORY----------------------------")
|
|
311
|
+
|
|
294
312
|
if fb_staff_id is not None and fb_score >= max(0.0, self.threshold - self.fallback_margin):
|
|
295
313
|
s["label_votes"][fb_staff_id] += 1 # type: ignore
|
|
296
314
|
s["stable_staff_id"] = fb_staff_id
|
|
@@ -883,7 +901,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
883
901
|
"""Process face recognition for each detection with embeddings"""
|
|
884
902
|
|
|
885
903
|
# Initialize face client only when needed and if credentials are available
|
|
886
|
-
|
|
904
|
+
st0=time.time()
|
|
887
905
|
if not self.face_client:
|
|
888
906
|
try:
|
|
889
907
|
self.face_client = self._get_facial_recognition_client(config)
|
|
@@ -894,7 +912,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
894
912
|
# No client available, return empty list (no results)
|
|
895
913
|
return []
|
|
896
914
|
print("------------------FACE RECOG CLIENT INIT----------------------------")
|
|
897
|
-
print("LATENCY:",(time.time() -
|
|
915
|
+
print("LATENCY:",(time.time() - st0)*1000,"| Throughput fps:",(1.0 / (time.time() - st0)) if (time.time() - st0) > 0 else None)
|
|
898
916
|
print("------------------FACE RECOG CLIENT INIT----------------------------")
|
|
899
917
|
|
|
900
918
|
# Initialize unknown faces storage if not exists
|
|
@@ -938,14 +956,14 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
938
956
|
for detection in detections:
|
|
939
957
|
|
|
940
958
|
# Process each detection sequentially with await to preserve order
|
|
941
|
-
|
|
959
|
+
st1=time.time()
|
|
942
960
|
processed_detection = await self._process_face(
|
|
943
961
|
detection, current_frame, location, current_timestamp, config,
|
|
944
962
|
current_recognized_count, current_unknown_count,
|
|
945
963
|
recognized_persons, current_frame_staff_details
|
|
946
964
|
)
|
|
947
965
|
print("------------------WHOLE FACE RECOG PROCESSING DETECTION----------------------------")
|
|
948
|
-
print("LATENCY:",(time.time() -
|
|
966
|
+
print("LATENCY:",(time.time() - st1)*1000,"| Throughput fps:",(1.0 / (time.time() - st1)) if (time.time() - st1) > 0 else None)
|
|
949
967
|
print("------------------FACE RECOG PROCESSING DETECTION----------------------------")
|
|
950
968
|
|
|
951
969
|
# Include both known and unknown faces in final detections (maintains original order)
|
|
@@ -977,7 +995,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
977
995
|
) -> Dict:
|
|
978
996
|
|
|
979
997
|
# Extract and validate embedding using EmbeddingManager
|
|
980
|
-
|
|
998
|
+
st2=time.time()
|
|
981
999
|
detection, embedding = self.embedding_manager.extract_embedding_from_detection(detection)
|
|
982
1000
|
if not embedding:
|
|
983
1001
|
return None
|
|
@@ -985,7 +1003,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
985
1003
|
# Internal tracker-provided ID (from AdvancedTracker; ignore upstream IDs entirely)
|
|
986
1004
|
track_id = detection.get("track_id")
|
|
987
1005
|
print("------------------FACE RECOG EMBEDDING EXTRACTION----------------------------")
|
|
988
|
-
print("LATENCY:",(time.time() -
|
|
1006
|
+
print("LATENCY:",(time.time() - st2)*1000,"| Throughput fps:",(1.0 / (time.time() - st2)) if (time.time() - st2) > 0 else None)
|
|
989
1007
|
print("------------------FACE RECOG EMBEDDING EXTRACTION----------------------------")
|
|
990
1008
|
|
|
991
1009
|
# Determine if detection is eligible for recognition (similar to compare_similarity gating)
|
|
@@ -1049,7 +1067,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
1049
1067
|
except Exception:
|
|
1050
1068
|
pass
|
|
1051
1069
|
else: #if eligible for recognition
|
|
1052
|
-
|
|
1070
|
+
st3=time.time()
|
|
1053
1071
|
staff_id, person_name, similarity_score, employee_id, staff_details, detection_type = await self.temporal_identity_manager.update(
|
|
1054
1072
|
track_id=track_key,
|
|
1055
1073
|
emb=embedding,
|
|
@@ -1058,7 +1076,7 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
1058
1076
|
timestamp=current_timestamp,
|
|
1059
1077
|
)
|
|
1060
1078
|
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE----------------------------")
|
|
1061
|
-
print("LATENCY:",(time.time() -
|
|
1079
|
+
print("LATENCY:",(time.time() - st3)*1000,"| Throughput fps:",(1.0 / (time.time() - st3)) if (time.time() - st3) > 0 else None)
|
|
1062
1080
|
print("------------------FACE RECOG TEMPORAL IDENTITY MANAGER UPDATE----------------------------")
|
|
1063
1081
|
except Exception as e:
|
|
1064
1082
|
self.logger.warning(f"TemporalIdentityManager update failed: {e}")
|
|
@@ -1133,21 +1151,21 @@ class FaceRecognitionEmbeddingUseCase(BaseProcessor):
|
|
|
1133
1151
|
and employee_id
|
|
1134
1152
|
and not str(employee_id).startswith("unknown_")
|
|
1135
1153
|
):
|
|
1136
|
-
|
|
1154
|
+
st4=time.time()
|
|
1137
1155
|
await self.people_activity_logging.enqueue_detection(
|
|
1138
1156
|
detection=detection,
|
|
1139
1157
|
current_frame=current_frame,
|
|
1140
1158
|
location=location,
|
|
1141
1159
|
)
|
|
1142
1160
|
print("------------------FACE RECOG ENQUEUEING DETECTION FOR ACTIVITY LOGGING----------------------------")
|
|
1143
|
-
print("LATENCY:",(time.time() -
|
|
1161
|
+
print("LATENCY:",(time.time() - st4)*1000,"| Throughput fps:",(1.0 / (time.time() - st4)) if (time.time() - st4) > 0 else None)
|
|
1144
1162
|
print("------------------FACE RECOG ENQUEUEING DETECTION FOR ACTIVITY LOGGING----------------------------")
|
|
1145
1163
|
|
|
1146
1164
|
self.logger.debug(f"Enqueued known face detection for activity logging: {detection.get('person_name', 'Unknown')}")
|
|
1147
1165
|
except Exception as e:
|
|
1148
1166
|
self.logger.error(f"Error enqueueing detection for activity logging: {e}")
|
|
1149
1167
|
print("------------------FACE RECOG ENQUEUEING DETECTION FOR ACTIVITY LOGGING----------------------------")
|
|
1150
|
-
print("LATENCY:",(time.time() -
|
|
1168
|
+
print("LATENCY:",(time.time() - st2)*1000,"| Throughput fps:",(1.0 / (time.time() - st2)) if (time.time() - st2) > 0 else None)
|
|
1151
1169
|
print("------------------FACE RECOG ENQUEUEING DETECTION FOR ACTIVITY LOGGING----------------------------")
|
|
1152
1170
|
|
|
1153
1171
|
return detection
|
|
@@ -447,7 +447,7 @@ class FacialRecognitionClient:
|
|
|
447
447
|
)
|
|
448
448
|
|
|
449
449
|
embeddings_count = 0
|
|
450
|
-
if response
|
|
450
|
+
if response: #.get('success', False):
|
|
451
451
|
data = response.get('data', [])
|
|
452
452
|
embeddings_count = len(data) if isinstance(data, list) else 0
|
|
453
453
|
self.logger.info(f"API RESPONSE: Retrieved {embeddings_count} staff embeddings")
|
|
File without changes
|
|
File without changes
|
{matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{matrice_analytics-0.1.46 → matrice_analytics-0.1.48}/matrice_analytics.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|