[INFO] cloning repository https://github.com/Cazpar/Bevy_Epic_Shooter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Cazpar/Bevy_Epic_Shooter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCazpar%2FBevy_Epic_Shooter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCazpar%2FBevy_Epic_Shooter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a8b59dcb1bbb99366684f6a00b494768b286a84d
[INFO] checking Cazpar/Bevy_Epic_Shooter against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCazpar%2FBevy_Epic_Shooter" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  23% (1346/5777)
Updating files:  24% (1387/5777)
Updating files:  25% (1445/5777)
Updating files:  26% (1503/5777)
Updating files:  27% (1560/5777)
Updating files:  28% (1618/5777)
Updating files:  29% (1676/5777)
Updating files:  30% (1734/5777)
Updating files:  31% (1791/5777)
Updating files:  32% (1849/5777)
Updating files:  33% (1907/5777)
Updating files:  34% (1965/5777)
Updating files:  35% (2022/5777)
Updating files:  36% (2080/5777)
Updating files:  37% (2138/5777)
Updating files:  38% (2196/5777)
Updating files:  39% (2254/5777)
Updating files:  40% (2311/5777)
Updating files:  41% (2369/5777)
Updating files:  42% (2427/5777)
Updating files:  43% (2485/5777)
Updating files:  44% (2542/5777)
Updating files:  45% (2600/5777)
Updating files:  45% (2619/5777)
Updating files:  46% (2658/5777)
Updating files:  47% (2716/5777)
Updating files:  48% (2773/5777)
Updating files:  49% (2831/5777)
Updating files:  50% (2889/5777)
Updating files:  51% (2947/5777)
Updating files:  52% (3005/5777)
Updating files:  53% (3062/5777)
Updating files:  54% (3120/5777)
Updating files:  55% (3178/5777)
Updating files:  56% (3236/5777)
Updating files:  57% (3293/5777)
Updating files:  58% (3351/5777)
Updating files:  59% (3409/5777)
Updating files:  60% (3467/5777)
Updating files:  61% (3524/5777)
Updating files:  62% (3582/5777)
Updating files:  63% (3640/5777)
Updating files:  64% (3698/5777)
Updating files:  65% (3756/5777)
Updating files:  66% (3813/5777)
Updating files:  67% (3871/5777)
Updating files:  68% (3929/5777)
Updating files:  69% (3987/5777)
Updating files:  69% (4014/5777)
Updating files:  70% (4044/5777)
Updating files:  71% (4102/5777)
Updating files:  72% (4160/5777)
Updating files:  73% (4218/5777)
Updating files:  74% (4275/5777)
Updating files:  75% (4333/5777)
Updating files:  76% (4391/5777)
Updating files:  77% (4449/5777)
Updating files:  78% (4507/5777)
Updating files:  79% (4564/5777)
Updating files:  80% (4622/5777)
Updating files:  81% (4680/5777)
Updating files:  82% (4738/5777)
Updating files:  83% (4795/5777)
Updating files:  84% (4853/5777)
Updating files:  85% (4911/5777)
Updating files:  86% (4969/5777)
Updating files:  87% (5026/5777)
Updating files:  88% (5084/5777)
Updating files:  89% (5142/5777)
Updating files:  90% (5200/5777)
Updating files:  91% (5258/5777)
Updating files:  92% (5315/5777)
Updating files:  92% (5344/5777)
Updating files:  93% (5373/5777)
Updating files:  94% (5431/5777)
Updating files:  95% (5489/5777)
Updating files:  96% (5546/5777)
Updating files:  97% (5604/5777)
Updating files:  98% (5662/5777)
Updating files:  99% (5720/5777)
Updating files: 100% (5777/5777)
Updating files: 100% (5777/5777), done.
[INFO] started tweaking git repo https://github.com/Cazpar/Bevy_Epic_Shooter
[INFO] finished tweaking git repo https://github.com/Cazpar/Bevy_Epic_Shooter
[INFO] tweaked toml for git repo https://github.com/Cazpar/Bevy_Epic_Shooter written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Cazpar/Bevy_Epic_Shooter on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Cazpar/Bevy_Epic_Shooter already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded blake3 v1.6.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 855288f042fffc9fedb76635eee48079108c32ace3f96f3eb91f7e9ba02dced7
[INFO] running `Command { std: "docker" "start" "-a" "855288f042fffc9fedb76635eee48079108c32ace3f96f3eb91f7e9ba02dced7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "855288f042fffc9fedb76635eee48079108c32ace3f96f3eb91f7e9ba02dced7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "855288f042fffc9fedb76635eee48079108c32ace3f96f3eb91f7e9ba02dced7", kill_on_drop: false }`
[INFO] [stdout] 855288f042fffc9fedb76635eee48079108c32ace3f96f3eb91f7e9ba02dced7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b95e7b9e0972599e98fdbd99fc5987cfbe87160424a3fc9548839518899b4678
[INFO] running `Command { std: "docker" "start" "-a" "b95e7b9e0972599e98fdbd99fc5987cfbe87160424a3fc9548839518899b4678", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.170
[INFO] [stderr]    Compiling serde v1.0.218
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking nonmax v0.5.5
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking bevy_ptr v0.12.1
[INFO] [stderr]     Checking tracing-log v0.1.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking lock_api v0.4.12
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking async-executor v1.13.1
[INFO] [stderr]     Checking pp-rs v0.2.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling blake3 v1.6.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.3
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]     Checking miniz_oxide v0.8.5
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]    Compiling thiserror-core v1.0.50
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]     Checking flate2 v1.1.0
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]     Checking unicode-ident v1.0.17
[INFO] [stderr]     Checking const_panic v0.2.12
[INFO] [stderr]     Checking radsort v0.1.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling toml_edit v0.20.7
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]     Checking svg_fmt v0.4.4
[INFO] [stderr]    Compiling serde_json v1.0.139
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking rectangle-pack v0.4.2
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking grid v0.10.0
[INFO] [stderr]     Checking glyph_brush_layout v0.2.4
[INFO] [stderr]     Checking taffy v0.3.19
[INFO] [stderr]     Checking memmap2 v0.9.5
[INFO] [stderr]     Checking khronos-egl v4.1.0
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking bevy_tasks v0.12.1
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking sysinfo v0.29.11
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]    Compiling bevy_macro_utils v0.12.1
[INFO] [stderr]    Compiling encase_derive_impl v0.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.218
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.12.1
[INFO] [stderr]    Compiling bevy_reflect_derive v0.12.1
[INFO] [stderr]    Compiling bevy_ecs_macros v0.12.1
[INFO] [stderr]    Compiling bevy_derive v0.12.1
[INFO] [stderr]    Compiling thiserror-core-impl v1.0.50
[INFO] [stderr]    Compiling bevy_asset_macros v0.12.1
[INFO] [stderr]    Compiling encase_derive v0.6.1
[INFO] [stderr]    Compiling bevy_encase_derive v0.12.1
[INFO] [stderr]    Compiling bevy_render_macros v0.12.1
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking accesskit_winit v0.15.0
[INFO] [stderr]     Checking ruzstd v0.4.0
[INFO] [stderr]     Checking bytemuck v1.21.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking ahash v0.8.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]     Checking bitflags v2.8.0
[INFO] [stderr]     Checking erased-serde v0.3.31
[INFO] [stderr]     Checking naga v0.13.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking wgpu-types v0.17.0
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking bevy_utils v0.12.1
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking gilrs-core v0.5.15
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]     Checking rodio v0.17.3
[INFO] [stderr]     Checking bevy_math v0.12.1
[INFO] [stderr]     Checking hexasphere v9.1.0
[INFO] [stderr]     Checking bevy_mikktspace v0.12.1
[INFO] [stderr]     Checking encase v0.6.1
[INFO] [stderr]     Checking bevy_reflect v0.12.1
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking wgpu-hal v0.17.2
[INFO] [stderr]     Checking naga_oil v0.10.1
[INFO] [stderr]     Checking bevy_ecs v0.12.1
[INFO] [stderr]     Checking wgpu-core v0.17.1
[INFO] [stderr]     Checking wgpu v0.17.2
[INFO] [stderr]     Checking bevy_app v0.12.1
[INFO] [stderr]     Checking bevy_log v0.12.1
[INFO] [stderr]     Checking bevy_core v0.12.1
[INFO] [stderr]     Checking bevy_input v0.12.1
[INFO] [stderr]     Checking bevy_a11y v0.12.1
[INFO] [stderr]     Checking bevy_time v0.12.1
[INFO] [stderr]     Checking bevy_asset v0.12.1
[INFO] [stderr]     Checking bevy_hierarchy v0.12.1
[INFO] [stderr]     Checking bevy_diagnostic v0.12.1
[INFO] [stderr]     Checking bevy_transform v0.12.1
[INFO] [stderr]     Checking bevy_window v0.12.1
[INFO] [stderr]     Checking bevy_gilrs v0.12.1
[INFO] [stderr]     Checking bevy_winit v0.12.1
[INFO] [stderr]     Checking bevy_render v0.12.1
[INFO] [stderr]     Checking bevy_audio v0.12.1
[INFO] [stderr]     Checking bevy_core_pipeline v0.12.1
[INFO] [stderr]     Checking bevy_scene v0.12.1
[INFO] [stderr]     Checking bevy_animation v0.12.1
[INFO] [stderr]     Checking bevy_sprite v0.12.1
[INFO] [stderr]     Checking bevy_pbr v0.12.1
[INFO] [stderr]     Checking bevy_text v0.12.1
[INFO] [stderr]     Checking bevy_ui v0.12.1
[INFO] [stderr]     Checking bevy_gizmos v0.12.1
[INFO] [stderr]     Checking bevy_gltf v0.12.1
[INFO] [stderr]     Checking bevy_internal v0.12.1
[INFO] [stderr]     Checking bevy v0.12.1
[INFO] [stderr]     Checking bevy_epic_shooter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::components::animation::AnimationState`
[INFO] [stdout]  --> src/systems/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::components::animation::AnimationState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ObstacleType`
[INFO] [stdout]  --> src/systems/weapon.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::components::obstacle::{Obstacle, ObstacleType};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `resources::game_state::GameState`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use resources::game_state::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::components::animation::AnimationState`
[INFO] [stdout]  --> src/systems/player.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::components::animation::AnimationState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ObstacleType`
[INFO] [stdout]  --> src/systems/weapon.rs:6:45
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::components::obstacle::{Obstacle, ObstacleType};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `resources::game_state::GameState`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use resources::game_state::GameState;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 resolution: (1280.0, 720.0).into(),
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the type as `f32`: `1280.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 resolution: (1280.0, 720.0).into(),
[INFO] [stdout]    |                                      ^^^^^ help: explicitly specify the type as `f32`: `720.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:17:30
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 resolution: (1280.0, 720.0).into(),
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the type as `f32`: `1280.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon`
[INFO] [stdout]    --> src/plugins/ui.rs:562:28
[INFO] [stdout]     |
[INFO] [stdout] 562 |         if let Ok((player, weapon, upgrades)) = player_query.get_single() {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/main.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 |                 resolution: (1280.0, 720.0).into(),
[INFO] [stdout]    |                                      ^^^^^ help: explicitly specify the type as `f32`: `720.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:626:35
[INFO] [stdout]     |
[INFO] [stdout] 626 |     for (mut animation, mut text, mut style) in title_query.iter_mut() {
[INFO] [stdout]     |                                   ----^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]    --> src/plugins/ui.rs:626:35
[INFO] [stdout]     |
[INFO] [stdout] 626 |     for (mut animation, mut text, mut style) in title_query.iter_mut() {
[INFO] [stdout]     |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/plugins/ui.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:844:5
[INFO] [stdout]     |
[INFO] [stdout] 844 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/plugins/ui.rs:844:5
[INFO] [stdout]     |
[INFO] [stdout] 844 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/plugins/ui.rs:852:10
[INFO] [stdout]     |
[INFO] [stdout] 852 |     for (entity, mut transform, bg, mut movement) in query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/systems/player.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 |     if let Ok((mut transform, mut player, mut sprite)) = query.get_single_mut() {
[INFO] [stdout]    |                               ----^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actual_attack_speed`
[INFO] [stdout]   --> src/systems/weapon.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let actual_attack_speed = weapon.attack_speed * attack_speed_multiplier;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actual_attack_speed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/systems/weapon.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |     for (attack_entity, attack_transform, attack, parent) in melee_query.iter_mut() {
[INFO] [stdout]     |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OnUpdate` is never constructed
[INFO] [stdout]    --> src/plugins/player.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct OnUpdate(pub GameState);
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chunk_x` and `chunk_y` are never read
[INFO] [stdout]   --> src/plugins/map.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct MapChunk {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 33 |     chunk_x: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     chunk_y: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `half_height` is never used
[INFO] [stdout]    --> src/plugins/ui.rs:831:4
[INFO] [stdout]     |
[INFO] [stdout] 831 | fn half_height(window: &Window) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `direction` is never read
[INFO] [stdout]  --> src/plugins/camera.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct MainMenuCamera {
[INFO] [stdout]   |        -------------- field in this struct
[INFO] [stdout] 8 |     timer: Timer,
[INFO] [stdout] 9 |     direction: Vec2,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rotation` is never read
[INFO] [stdout]  --> src/components/player.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Player {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub rotation: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage` is never read
[INFO] [stdout]  --> src/components/enemy.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub damage: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `angle` and `width` are never read
[INFO] [stdout]   --> src/components/weapon.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct MeleeAttack {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub angle: f32,    // Attack angle in radians
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 65 |     pub width: f32,    // Width of the attack arc
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StaminaBoost` and `ArmorBoost` are never constructed
[INFO] [stdout]   --> src/components/pickup.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum PickupType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     StaminaBoost,   // Increase stamina/energy
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     ArmorBoost,     // Damage reduction
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PickupType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play`, `pause`, and `reset` are never used
[INFO] [stdout]   --> src/components/animation.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl SpriteAnimation {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `increment_score` are never used
[INFO] [stdout]   --> src/resources/game_state.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl GameData {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn increment_score(&mut self, points: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_animation_frames_custom` is never used
[INFO] [stdout]   --> src/systems/animation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn load_animation_frames_custom(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `weapon`
[INFO] [stdout]    --> src/plugins/ui.rs:562:28
[INFO] [stdout]     |
[INFO] [stdout] 562 |         if let Ok((player, weapon, upgrades)) = player_query.get_single() {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_weapon`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:626:35
[INFO] [stdout]     |
[INFO] [stdout] 626 |     for (mut animation, mut text, mut style) in title_query.iter_mut() {
[INFO] [stdout]     |                                   ----^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style`
[INFO] [stdout]    --> src/plugins/ui.rs:626:35
[INFO] [stdout]     |
[INFO] [stdout] 626 |     for (mut animation, mut text, mut style) in title_query.iter_mut() {
[INFO] [stdout]     |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/plugins/ui.rs:676:9
[INFO] [stdout]     |
[INFO] [stdout] 676 |     let mut rng = rand::thread_rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/plugins/ui.rs:844:5
[INFO] [stdout]     |
[INFO] [stdout] 844 |     mut commands: Commands,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commands`
[INFO] [stdout]    --> src/plugins/ui.rs:844:5
[INFO] [stdout]     |
[INFO] [stdout] 844 |     mut commands: Commands,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/plugins/ui.rs:852:10
[INFO] [stdout]     |
[INFO] [stdout] 852 |     for (entity, mut transform, bg, mut movement) in query.iter_mut() {
[INFO] [stdout]     |          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/systems/player.rs:14:31
[INFO] [stdout]    |
[INFO] [stdout] 14 |     if let Ok((mut transform, mut player, mut sprite)) = query.get_single_mut() {
[INFO] [stdout]    |                               ----^^^^^^
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `actual_attack_speed`
[INFO] [stdout]   --> src/systems/weapon.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let actual_attack_speed = weapon.attack_speed * attack_speed_multiplier;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_actual_attack_speed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/systems/weapon.rs:121:51
[INFO] [stdout]     |
[INFO] [stdout] 121 |     for (attack_entity, attack_transform, attack, parent) in melee_query.iter_mut() {
[INFO] [stdout]     |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OnUpdate` is never constructed
[INFO] [stdout]    --> src/plugins/player.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct OnUpdate(pub GameState);
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `chunk_x` and `chunk_y` are never read
[INFO] [stdout]   --> src/plugins/map.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct MapChunk {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 33 |     chunk_x: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     chunk_y: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `half_height` is never used
[INFO] [stdout]    --> src/plugins/ui.rs:831:4
[INFO] [stdout]     |
[INFO] [stdout] 831 | fn half_height(window: &Window) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `direction` is never read
[INFO] [stdout]  --> src/plugins/camera.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct MainMenuCamera {
[INFO] [stdout]   |        -------------- field in this struct
[INFO] [stdout] 8 |     timer: Timer,
[INFO] [stdout] 9 |     direction: Vec2,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rotation` is never read
[INFO] [stdout]  --> src/components/player.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Player {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub rotation: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage` is never read
[INFO] [stdout]  --> src/components/enemy.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Enemy {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub damage: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `angle` and `width` are never read
[INFO] [stdout]   --> src/components/weapon.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct MeleeAttack {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub angle: f32,    // Attack angle in radians
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 65 |     pub width: f32,    // Width of the attack arc
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StaminaBoost` and `ArmorBoost` are never constructed
[INFO] [stdout]   --> src/components/pickup.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum PickupType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     StaminaBoost,   // Increase stamina/energy
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 13 |     ArmorBoost,     // Damage reduction
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PickupType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `play`, `pause`, and `reset` are never used
[INFO] [stdout]   --> src/components/animation.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl SpriteAnimation {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn play(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn pause(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `increment_score` are never used
[INFO] [stdout]   --> src/resources/game_state.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl GameData {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn increment_score(&mut self, points: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_animation_frames_custom` is never used
[INFO] [stdout]   --> src/systems/animation.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn load_animation_frames_custom(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.12s
[INFO] running `Command { std: "docker" "inspect" "b95e7b9e0972599e98fdbd99fc5987cfbe87160424a3fc9548839518899b4678", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b95e7b9e0972599e98fdbd99fc5987cfbe87160424a3fc9548839518899b4678", kill_on_drop: false }`
[INFO] [stdout] b95e7b9e0972599e98fdbd99fc5987cfbe87160424a3fc9548839518899b4678
