boneio 1.5.0.dev6__tar.gz → 1.5.0.dev7__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.
- {boneio-1.5.0.dev6/boneio.egg-info → boneio-1.5.0.dev7}/PKG-INFO +1 -1
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/runner.py +82 -0
- boneio-1.5.0.dev7/boneio/version.py +2 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7/boneio.egg-info}/PKG-INFO +1 -1
- boneio-1.5.0.dev6/boneio/version.py +0 -2
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/LICENSE +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/MANIFEST.in +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/README.md +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/output_32_5.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.5/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.5/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.5/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.5/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.6/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.6/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.6/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.6/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/input.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/output_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/output_32_10.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/output_48_4.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/output_cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/boards/1.0/output_cover_mix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/bonecli.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/cover/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/cover/cover.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/cover/time_based.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/cover/venetian.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/group/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/group/output_group.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/binary_sensor.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/detectors.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/event.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/remote/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/remote/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/input/remote/esphome.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/irrigation/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/irrigation/controller.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/irrigation/water_source.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/basic.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/buzzer.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/mcp.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/pca.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/pcf.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/output/remote.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/sensor/virtual_energy.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/template/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/template/alarm_panel.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/template/gate_cover.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/components/template/thermostat.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/const.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/data/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/data/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/registration.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/cloud/secrets.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/config_helper.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/migrations/v1_proxy_port.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/migrations/v2_transition.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/package-lock.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/package.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/schema_converter.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/config/yaml_util.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/discovery.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/events/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/events/bus.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/action_conditions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/canopen.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/covers.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/display.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/inputs.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/irrigation.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/manager.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/modbus.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/outputs.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/remote.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/remote_input_registrar.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/sensors.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/templates/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/templates/alarm.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/templates/gate_cover.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/templates/thermostat.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/templates.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/manager/update.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/basic.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/basic_mqtt.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/composite.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/local.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/lox.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/mqtt.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/messaging/queue.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/can.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/esphome.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/mqtt.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/remote/wled.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/sensor/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/sensor/system.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/state/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/state/manager.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/system/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/system/host_data.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/system/monitor.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/async_updater.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/conditions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/filter.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/font_util.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/logger.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/timeperiod.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/core/utils/util.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/config.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/event.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/mqtt.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/24x16/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/config.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/event.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/mqtt.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/32x10/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/config.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/event.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/mqtt.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/48x4/output48x4A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/can_master.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/can_slave.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/config.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/event.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/mqtt.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover/outputCover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/config.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/cover.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/event.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/event_all.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/exceptions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/analog/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/analog/adc.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/bridge.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/client.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/interface.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/node.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/node_id.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/can/test_od.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/display/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/display/early_oled.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/display/fonts/danube__.ttf +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/display/oled.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/expanders/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/input/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/input/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/gpio/input/manager.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/bus.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/ina219.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/ina219_driver.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/mcp9808.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/i2c/pct2075.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/onewire/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/onewire/bus.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/onewire/dallas.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/onewire/ds2482.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/sensor/temperature/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/sensor/temperature/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/integration/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/integration/homeassistant.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/integration/interlock.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/integration/lox_template.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/actions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/MANIFEST.sha256 +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/daemon.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/nodered/caddy/502.html +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/nodered/caddy/init-certs.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/nodered/docker-compose.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/nodered/nginx/default.conf +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/docker/nodered/node-red/settings.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/journald/journald.conf +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/mosquitto/boneio.conf +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/sudoers/boneio +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/systemd/boneio-oled-boot.service +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/systemd/boneio-oled-shutdown.service +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/systemd/boneio.service +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/systemd/set-hostname-once.service +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/usr-local-bin/set-hostname-once.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/usr-sbin/oled_boot_splash.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/usr-sbin/oled_boot_splash.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/usr-sbin/oled_msg.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/assets/usr-sbin/oled_msg.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/bootstrap/boneio-migrate +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/bootstrap/install-helper.sh +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/bootstrap/sudoers-migrate +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_3_0_baseline.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_3_1_fix_oled_boot.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_3_2_cleanup_can_sudoers.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_4_0_fix_mqtt_sudoers.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_4_3_oled_shutdown.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_4_4_caddy.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_5_0_fix_oled_fifo_permissions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/migrations/versions/v1_5_1_ufw_lox_udp.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/cli.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/client.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/coordinator.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/dts1964_3f.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/hvac/eht-topventil-plus.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/hvac/thessla.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/hvac/ventclear.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/hvac/wanas415.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/inverters/sofar.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/other/esp32_relay_x4_modbus.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/other/n4dsc08.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/other/r4dcb08.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/boneio-edge-temp.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/cwt.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/gdfs.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/gdfx.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/pt100.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/sht20.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/devices/sensors/sht30.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/base.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/derived/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/derived/numeric.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/derived/select.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/derived/switch.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/derived/text.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/sensor/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/sensor/binary.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/sensor/numeric.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/sensor/text.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/writeable/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/writeable/binary.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/entities/writeable/numeric.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/mock_coordinator.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/modbus/utils.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/actions.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/events.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/files.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/logs.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/mqtt.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/models/state.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/runner.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/actions.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/actions_sensor.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/actions_switch.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/condition.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/filters.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/filters_adc.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/id.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/remote_devices.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/remote_inputs.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/remote_outputs.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/schema.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/temp_unit.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/schema/update_interval.yaml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/action_validation.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/app.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/dashboard_cards.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/ConfigEditor-DbZgmkmq.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/aiWizardPrompt-BubjUKaK.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/css.worker-CvXBzhp8.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/editor.worker-Cn2oRESe.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/html.worker-BO6WuOEO.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/index-D6g-vdBv.css +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/index-qx3gjAAI.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/json.worker-BkJRGcCJ.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/monaco-61yH0vfd.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/monaco-Br_kD0ds.css +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/rolldown-runtime-QTnfLwEv.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/ts.worker-B0J26iPs.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/vendor-pmGLHP0_.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/assets/yaml.worker-BKRoXlmz.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/boneio-192.png +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/boneio-512.png +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/boneio.svg +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/index.html +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/sw.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/frontend-dist/workbox-4918f2f6.js +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/hvac_svg_templates.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/middleware/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/middleware/auth.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/modbus_card_templates.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/auth.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/caddy.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/can.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/config.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/covers.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/dashboard.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/dev_fake_device.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/irrigation.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/migrations.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/modbus.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/outputs.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/remote_devices.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/sensors.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/system.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/templates.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/timezone_sudoers.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/tools.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/routes/update.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/adc.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/areas.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/binary_sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/boneio.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/can.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/config.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/cover.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/dallas.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/ds2482.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/event.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/ina219.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/irrigation.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/lm75.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/logger.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/lox_udp.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/mcp23017.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/mcp9808.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/modbus.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/modbus_devices.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/mqtt.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/oled.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/output.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/output_group.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/pca9685.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/pcf8575.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/remote_devices.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/remote_inputs.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/remote_outputs.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/template.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/schema/web.schema.json +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/services/__init__.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/services/logs.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/web_server.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio/webui/websocket_manager.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio.egg-info/SOURCES.txt +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio.egg-info/dependency_links.txt +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio.egg-info/entry_points.txt +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio.egg-info/requires.txt +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/boneio.egg-info/top_level.txt +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/pyproject.toml +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/setup.cfg +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/setup.py +0 -0
- {boneio-1.5.0.dev6 → boneio-1.5.0.dev7}/tests/test_py313_compatibility.py +0 -0
|
@@ -14,6 +14,7 @@ Flow:
|
|
|
14
14
|
|
|
15
15
|
from __future__ import annotations
|
|
16
16
|
|
|
17
|
+
import hashlib
|
|
17
18
|
import importlib
|
|
18
19
|
import importlib.util
|
|
19
20
|
import json
|
|
@@ -155,6 +156,7 @@ class MigrationRunner:
|
|
|
155
156
|
self.status = MigrationStatus.BOOTSTRAP_REQUIRED
|
|
156
157
|
return self.status
|
|
157
158
|
|
|
159
|
+
self._ensure_helper_up_to_date()
|
|
158
160
|
self._apply_pending(pending)
|
|
159
161
|
|
|
160
162
|
except Exception as exc:
|
|
@@ -184,6 +186,7 @@ class MigrationRunner:
|
|
|
184
186
|
self.status = MigrationStatus.OK
|
|
185
187
|
return True
|
|
186
188
|
|
|
189
|
+
self._ensure_helper_up_to_date()
|
|
187
190
|
return self._apply_pending(pending, progress_callback=progress_callback)
|
|
188
191
|
|
|
189
192
|
def get_status_dict(self) -> dict[str, Any]:
|
|
@@ -282,6 +285,85 @@ class MigrationRunner:
|
|
|
282
285
|
"""Return True when the helper binary exists and is executable."""
|
|
283
286
|
return os.path.isfile(HELPER_PATH) and os.access(HELPER_PATH, os.X_OK)
|
|
284
287
|
|
|
288
|
+
def _ensure_helper_up_to_date(self) -> None:
|
|
289
|
+
"""Auto-update /usr/sbin/boneio-migrate if the bundled version differs.
|
|
290
|
+
|
|
291
|
+
Compares SHA256 of the installed helper vs the one shipped in the
|
|
292
|
+
package. If they differ, sends an ``install_file`` action to the
|
|
293
|
+
currently installed helper to overwrite itself with the new version.
|
|
294
|
+
This works because ``sudo -n /usr/sbin/boneio-migrate`` is already
|
|
295
|
+
allowed in sudoers on all systems.
|
|
296
|
+
"""
|
|
297
|
+
if not BOOTSTRAP_HELPER_SRC.exists():
|
|
298
|
+
return
|
|
299
|
+
if not self._helper_installed():
|
|
300
|
+
return
|
|
301
|
+
|
|
302
|
+
try:
|
|
303
|
+
installed_hash = hashlib.sha256(
|
|
304
|
+
Path(HELPER_PATH).read_bytes()
|
|
305
|
+
).hexdigest()
|
|
306
|
+
bundled_hash = hashlib.sha256(
|
|
307
|
+
BOOTSTRAP_HELPER_SRC.read_bytes()
|
|
308
|
+
).hexdigest()
|
|
309
|
+
|
|
310
|
+
if installed_hash == bundled_hash:
|
|
311
|
+
_LOGGER.debug("boneio-migrate helper is up to date.")
|
|
312
|
+
return
|
|
313
|
+
|
|
314
|
+
_LOGGER.info(
|
|
315
|
+
"boneio-migrate helper outdated (installed=%s, bundled=%s). Updating...",
|
|
316
|
+
installed_hash[:12],
|
|
317
|
+
bundled_hash[:12],
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
# Copy the new helper to assets dir so install_file can find it
|
|
321
|
+
update_asset = ASSETS_DIR / "_helper_update"
|
|
322
|
+
update_asset.mkdir(parents=True, exist_ok=True)
|
|
323
|
+
update_src = update_asset / "boneio-migrate"
|
|
324
|
+
update_src.write_bytes(BOOTSTRAP_HELPER_SRC.read_bytes())
|
|
325
|
+
|
|
326
|
+
# Send install_file action to the old helper to overwrite itself
|
|
327
|
+
plan_payload = {
|
|
328
|
+
"version": "_helper_update",
|
|
329
|
+
"actions": [
|
|
330
|
+
{
|
|
331
|
+
"action": "install_file",
|
|
332
|
+
"src": "_helper_update/boneio-migrate",
|
|
333
|
+
"dst": HELPER_PATH,
|
|
334
|
+
"mode": 0o755,
|
|
335
|
+
"owner": "root",
|
|
336
|
+
"group": "root",
|
|
337
|
+
"template_vars": {},
|
|
338
|
+
"expected_sha256": bundled_hash,
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"assets_base": str(ASSETS_DIR),
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
result = subprocess.run(
|
|
345
|
+
["sudo", "-n", HELPER_PATH],
|
|
346
|
+
input=json.dumps(plan_payload),
|
|
347
|
+
capture_output=True,
|
|
348
|
+
text=True,
|
|
349
|
+
timeout=15,
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
# Clean up temp asset
|
|
353
|
+
update_src.unlink(missing_ok=True)
|
|
354
|
+
update_asset.rmdir()
|
|
355
|
+
|
|
356
|
+
if result.returncode == 0:
|
|
357
|
+
_LOGGER.info("boneio-migrate helper updated successfully.")
|
|
358
|
+
else:
|
|
359
|
+
_LOGGER.warning(
|
|
360
|
+
"Helper self-update failed (rc=%d): %s",
|
|
361
|
+
result.returncode,
|
|
362
|
+
result.stderr.strip(),
|
|
363
|
+
)
|
|
364
|
+
except Exception as exc:
|
|
365
|
+
_LOGGER.warning("Could not check/update boneio-migrate helper: %s", exc)
|
|
366
|
+
|
|
285
367
|
def _load_manifest(self) -> None:
|
|
286
368
|
"""Load MANIFEST.sha256 from the assets directory."""
|
|
287
369
|
if not MANIFEST_PATH.exists():
|
|
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
|